JPH0969060A - 計算機システムおよびファイルアクセス制御方法 - Google Patents
計算機システムおよびファイルアクセス制御方法Info
- Publication number
- JPH0969060A JPH0969060A JP7223824A JP22382495A JPH0969060A JP H0969060 A JPH0969060 A JP H0969060A JP 7223824 A JP7223824 A JP 7223824A JP 22382495 A JP22382495 A JP 22382495A JP H0969060 A JPH0969060 A JP H0969060A
- Authority
- JP
- Japan
- Prior art keywords
- file
- thread
- access control
- control block
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】ファイル記述子をプロセス単位の資源として扱
うとともに、このファイル記述子を排他せずに使用する
ことのできる計算機システムを提供する。 【解決手段】プロセス9がファイル8のオープンを要求
したときに、ファイル9にファイル記述子を割り当て
て、そのファイル記述子を要求元のプロセス9に返送
し、プロセス9のいずれかのスレッドがそのファイル記
述子を用いてファイル8へのアクセスを初めて要求した
ときに、ポインタを含むファイル8に関するアクセス制
御情報を保持するアクセス制御ブロック7a〜7cをそ
のスレッドに対応させてメモリに確保することにより、
ファイル記述子をプロセス単位の資源として扱うととも
に、スレッドそれぞれが個別にアクセス制御ブロック7
a〜7cをもつことによって、同一プロセス内のスレッ
ドすべてがファイル記述子を排他することなく使用する
ことを特徴とする。
うとともに、このファイル記述子を排他せずに使用する
ことのできる計算機システムを提供する。 【解決手段】プロセス9がファイル8のオープンを要求
したときに、ファイル9にファイル記述子を割り当て
て、そのファイル記述子を要求元のプロセス9に返送
し、プロセス9のいずれかのスレッドがそのファイル記
述子を用いてファイル8へのアクセスを初めて要求した
ときに、ポインタを含むファイル8に関するアクセス制
御情報を保持するアクセス制御ブロック7a〜7cをそ
のスレッドに対応させてメモリに確保することにより、
ファイル記述子をプロセス単位の資源として扱うととも
に、スレッドそれぞれが個別にアクセス制御ブロック7
a〜7cをもつことによって、同一プロセス内のスレッ
ドすべてがファイル記述子を排他することなく使用する
ことを特徴とする。
Description
【0001】
【発明の属する技術分野】本発明は、マルチスレッド環
境を提供する計算機システムおよび同計算機システムに
適用して好適なファイルアクセス制御方法に係り、特に
ファイル記述子をプロセス単位の資源として扱うととも
に、同一プロセス内のスレッドすべてがファイル記述子
を排他することなく使用することを可能とする計算機シ
ステムおよびファイルアクセス制御方法に関する。
境を提供する計算機システムおよび同計算機システムに
適用して好適なファイルアクセス制御方法に係り、特に
ファイル記述子をプロセス単位の資源として扱うととも
に、同一プロセス内のスレッドすべてがファイル記述子
を排他することなく使用することを可能とする計算機シ
ステムおよびファイルアクセス制御方法に関する。
【0002】
【従来の技術】近年の計算機システムの普及は目覚まし
いものがあり、また、この普及に伴って処理の高速化が
ますます要求されてきている。そして、この高速化を実
現するものの一つとして、複数のプロセッサを有する並
列計算機システムが存在し、この並列計算機システム上
で主に提供される環境としてマルチスレッド環境が存在
する。
いものがあり、また、この普及に伴って処理の高速化が
ますます要求されてきている。そして、この高速化を実
現するものの一つとして、複数のプロセッサを有する並
列計算機システムが存在し、この並列計算機システム上
で主に提供される環境としてマルチスレッド環境が存在
する。
【0003】このマルチスレッド環境で実行されるプロ
セス、すなわちアプリケーションは、プロセッサへの割
り付け単位となるスレッドを複数もつことが可能であ
り、したがって、同一プロセス内のスレッドが別々のプ
ロセッサで並列に実行することができるため、処理の高
速化が図られることになる。
セス、すなわちアプリケーションは、プロセッサへの割
り付け単位となるスレッドを複数もつことが可能であ
り、したがって、同一プロセス内のスレッドが別々のプ
ロセッサで並列に実行することができるため、処理の高
速化が図られることになる。
【0004】ここで、図6を参照して従来のマルチスレ
ッド環境下でのファイルアクセスの制御原理について説
明する。プロセス(AP)17が生成されたとき、シス
テムは、プロセス制御ブロック(PCB)およびアサイ
ンテーブル(ASGN)をメモリに確保して、このプロ
セス制御ブロックをシステム制御ブロック(SCB)1
1に登録する。ここでは、プロセス制御ブロック12a
およびアサインテーブル13がプロセス17に対応して
確保されたものとする。
ッド環境下でのファイルアクセスの制御原理について説
明する。プロセス(AP)17が生成されたとき、シス
テムは、プロセス制御ブロック(PCB)およびアサイ
ンテーブル(ASGN)をメモリに確保して、このプロ
セス制御ブロックをシステム制御ブロック(SCB)1
1に登録する。ここでは、プロセス制御ブロック12a
およびアサインテーブル13がプロセス17に対応して
確保されたものとする。
【0005】このシステム制御ブロック11は、システ
ム上で稼働するプロセス全体を制御するために用いられ
るものである。また、プロセス制御ブロック12a〜1
2cおよびアサインテーブル13は、生成されたプロセ
スそれぞれに確保されるものである。そして、プロセス
制御ブロックは、そのプロセスの状態管理などに用いら
れるものであり、アサインテーブルは、後述するアクセ
ス制御ブロック(ACB)を管理するために用いられる
ものである。
ム上で稼働するプロセス全体を制御するために用いられ
るものである。また、プロセス制御ブロック12a〜1
2cおよびアサインテーブル13は、生成されたプロセ
スそれぞれに確保されるものである。そして、プロセス
制御ブロックは、そのプロセスの状態管理などに用いら
れるものであり、アサインテーブルは、後述するアクセ
ス制御ブロック(ACB)を管理するために用いられる
ものである。
【0006】ここで、このプロセス17がファイル16
のオープンを要求すると、システムは、そのファイル1
6に対応させてアクセス制御ブロック14をメモリに確
保して、このアクセス制御ブロック14をアサインテー
ブル13のいずれかのエントリに設定する。そして、こ
の設定したエントリをファイル記述子(fdes)とし
てプロセス17に返送する。
のオープンを要求すると、システムは、そのファイル1
6に対応させてアクセス制御ブロック14をメモリに確
保して、このアクセス制御ブロック14をアサインテー
ブル13のいずれかのエントリに設定する。そして、こ
の設定したエントリをファイル記述子(fdes)とし
てプロセス17に返送する。
【0007】このアクセス制御ブロック14には、有編
成ファイルにおけるアクセスポインタやレコードロック
情報、無編成ファイルにおけるカレントアクセス位置な
どといったアクセス制御情報が保持される。なお、この
ようなシステムでは、ファイルそれぞれにファイル制御
ブロック(FCB)を必要に応じてメモリに確保し、こ
のファイル制御ブロックにファイルの制御情報を保持し
ている。そして、アクセス制御ブロックは、このファイ
ル制御ブロックを参照するためのアドレスなどを保持し
ている。
成ファイルにおけるアクセスポインタやレコードロック
情報、無編成ファイルにおけるカレントアクセス位置な
どといったアクセス制御情報が保持される。なお、この
ようなシステムでは、ファイルそれぞれにファイル制御
ブロック(FCB)を必要に応じてメモリに確保し、こ
のファイル制御ブロックにファイルの制御情報を保持し
ている。そして、アクセス制御ブロックは、このファイ
ル制御ブロックを参照するためのアドレスなどを保持し
ている。
【0008】そして、プロセス17のスレッドそれぞれ
は、前述のオープン時にシステムから受けとったファイ
ル記述子を用いてファイル16へのアクセス要求を発行
する。
は、前述のオープン時にシステムから受けとったファイ
ル記述子を用いてファイル16へのアクセス要求を発行
する。
【0009】これによりシステムは、アクセス制御ブロ
ック14に基づいたファイルアクセスを実施することが
できる。このように、マルチスレッド環境で実行される
プロセスでは、一つのファイルに対し、各スレッドが同
じファイル記述子を用いてアクセスを行なうため、ファ
イル記述子をプロセス単位の資源(プロセスコンテクス
ト)として扱うことができ、ファイルのオープンおよび
クローズを、プロセス単位の処理としてそれぞれ初期処
理および終了処理で一括して行なうなどの構造化プログ
ラミングを可能としていた。
ック14に基づいたファイルアクセスを実施することが
できる。このように、マルチスレッド環境で実行される
プロセスでは、一つのファイルに対し、各スレッドが同
じファイル記述子を用いてアクセスを行なうため、ファ
イル記述子をプロセス単位の資源(プロセスコンテクス
ト)として扱うことができ、ファイルのオープンおよび
クローズを、プロセス単位の処理としてそれぞれ初期処
理および終了処理で一括して行なうなどの構造化プログ
ラミングを可能としていた。
【0010】しかしながら、各プロセスが、アクセス制
御ブロックを一つのファイルに対して一つしか確保して
いないために、スレッド相互間でファイル記述子を排他
して用いなければならず、したがって、ファイル記述子
の排他を考慮したプログラミングを行なわなければなら
なかった。
御ブロックを一つのファイルに対して一つしか確保して
いないために、スレッド相互間でファイル記述子を排他
して用いなければならず、したがって、ファイル記述子
の排他を考慮したプログラミングを行なわなければなら
なかった。
【0011】一方、ファイルのオープンおよびクローズ
を、プロセス単位の処理として行なうのではなく、各ス
レッドが、アクセスするファイルについて独自にオープ
ンおよびクローズを行ない、アクセス制御ブロックをス
レッドそれぞれに確保するといった方法も存在する。
を、プロセス単位の処理として行なうのではなく、各ス
レッドが、アクセスするファイルについて独自にオープ
ンおよびクローズを行ない、アクセス制御ブロックをス
レッドそれぞれに確保するといった方法も存在する。
【0012】しかしながら、ファイルのオープンおよび
クローズを、スレッド単位の処理として行なうと、同一
ファイルについてファイル記述子が複数設定されてしま
うこととなり、ファイル記述子をプロセス単位の資源と
して扱うことができなくなるために、プログラム構造を
いたずらに複雑にしてしまうとともに、その生産性を著
しく低下させてしまう。
クローズを、スレッド単位の処理として行なうと、同一
ファイルについてファイル記述子が複数設定されてしま
うこととなり、ファイル記述子をプロセス単位の資源と
して扱うことができなくなるために、プログラム構造を
いたずらに複雑にしてしまうとともに、その生産性を著
しく低下させてしまう。
【0013】
【発明が解決しようとする課題】前述したように、従来
のマルチスレッド環境下におけるファイルアクセス制御
では、複数のスレッドが単一のアクセス制御ブロックを
使用するために、プロセス内のスレッドそれぞれが、フ
ァイル記述子を排他的に使用しなければならなかった。
のマルチスレッド環境下におけるファイルアクセス制御
では、複数のスレッドが単一のアクセス制御ブロックを
使用するために、プロセス内のスレッドそれぞれが、フ
ァイル記述子を排他的に使用しなければならなかった。
【0014】また、複数のアクセス制御ブロックを確保
する場合には、スレッドごとに同一ファイルをオープン
し、スレッドごとに異なるファイル記述子を使用しなけ
ればならないため、ファイル記述子がプロセスコンテキ
スト、すなわちプロセス単位の資源として扱うことはで
きなかった。
する場合には、スレッドごとに同一ファイルをオープン
し、スレッドごとに異なるファイル記述子を使用しなけ
ればならないため、ファイル記述子がプロセスコンテキ
スト、すなわちプロセス単位の資源として扱うことはで
きなかった。
【0015】本発明は、このような実情に鑑みてなされ
たものであり、ファイル記述子をプロセス単位の資源と
して扱うとともに、同一プロセス内のスレッドすべてが
ファイル記述子を排他することなく使用することを可能
とする計算機システムおよびファイルアクセス制御方法
を提供することを目的とする。
たものであり、ファイル記述子をプロセス単位の資源と
して扱うとともに、同一プロセス内のスレッドすべてが
ファイル記述子を排他することなく使用することを可能
とする計算機システムおよびファイルアクセス制御方法
を提供することを目的とする。
【0016】
【課題を解決するための手段】本発明の計算機システム
は、一つのプロセスがCPUへの割り付け単位となるス
レッドを複数もつことのできるマルチスレッド環境を提
供する計算機システムであって、前記スレッドそれぞれ
が、ファイルそれぞれに固有に割り当てられたファイル
記述子を用いてファイルへのアクセスを行なう計算機シ
ステムにおいて、前記プロセスがファイルのオープンを
要求したときに、そのオープンの要求されたファイルに
ファイル記述子を割り当てて、そのファイル記述子を前
記要求元のプロセスに返送する手段と、前記プロセスの
いずれかのスレッドが前記割り当てられたファイル記述
子を用いてそのファイルへのアクセスを初めて要求した
ときに、アクセスポインタを含むそのファイルに関する
アクセス制御情報を保持するアクセス制御ブロックをそ
のスレッドに対応させて前記メモリに確保する手段とを
具備し、前記ファイル記述子をプロセス単位の資源とし
て扱うとともに、前記スレッドそれぞれが個別にアクセ
ス制御ブロックをもつことによって、同一プロセス内の
スレッドすべてが前記ファイル記述子を排他することな
く使用することを特徴とする。
は、一つのプロセスがCPUへの割り付け単位となるス
レッドを複数もつことのできるマルチスレッド環境を提
供する計算機システムであって、前記スレッドそれぞれ
が、ファイルそれぞれに固有に割り当てられたファイル
記述子を用いてファイルへのアクセスを行なう計算機シ
ステムにおいて、前記プロセスがファイルのオープンを
要求したときに、そのオープンの要求されたファイルに
ファイル記述子を割り当てて、そのファイル記述子を前
記要求元のプロセスに返送する手段と、前記プロセスの
いずれかのスレッドが前記割り当てられたファイル記述
子を用いてそのファイルへのアクセスを初めて要求した
ときに、アクセスポインタを含むそのファイルに関する
アクセス制御情報を保持するアクセス制御ブロックをそ
のスレッドに対応させて前記メモリに確保する手段とを
具備し、前記ファイル記述子をプロセス単位の資源とし
て扱うとともに、前記スレッドそれぞれが個別にアクセ
ス制御ブロックをもつことによって、同一プロセス内の
スレッドすべてが前記ファイル記述子を排他することな
く使用することを特徴とする。
【0017】また、本発明のファイルアクセス制御方法
は、一つのプロセスがCPUへの割り付け単位となるス
レッドを複数もつことのできるマルチスレッド環境を提
供する計算機システムであって、これらのスレッドそれ
ぞれがファイルそれぞれに固有に割り当てられたファイ
ル記述子を用いてファイルへのアクセスを行なう計算機
システムのファイルアクセス制御方法において、前記プ
ロセスがファイルのオープンを要求したときに、そのオ
ープンの要求されたファイルにファイル記述子を割り当
てて、そのファイル記述子を前記要求元のプロセスに返
送するステップと、前記プロセスのいずれかのスレッド
が前記割り当てられたファイル記述子を用いてそのファ
イルへのアクセスを初めて要求したときに、アクセスポ
インタを含むそのファイルに関するアクセス制御情報を
保持するアクセス制御ブロックをそのスレッドに対応さ
せて前記メモリに確保するステップとを具備し、前記フ
ァイル記述子をプロセス単位の資源として扱うととも
に、前記スレッドそれぞれが個別にアクセス制御ブロッ
クをもつことによって、同一プロセス内のスレッドすべ
てが前記ファイル記述子を排他することなく使用するこ
とを特徴とする。
は、一つのプロセスがCPUへの割り付け単位となるス
レッドを複数もつことのできるマルチスレッド環境を提
供する計算機システムであって、これらのスレッドそれ
ぞれがファイルそれぞれに固有に割り当てられたファイ
ル記述子を用いてファイルへのアクセスを行なう計算機
システムのファイルアクセス制御方法において、前記プ
ロセスがファイルのオープンを要求したときに、そのオ
ープンの要求されたファイルにファイル記述子を割り当
てて、そのファイル記述子を前記要求元のプロセスに返
送するステップと、前記プロセスのいずれかのスレッド
が前記割り当てられたファイル記述子を用いてそのファ
イルへのアクセスを初めて要求したときに、アクセスポ
インタを含むそのファイルに関するアクセス制御情報を
保持するアクセス制御ブロックをそのスレッドに対応さ
せて前記メモリに確保するステップとを具備し、前記フ
ァイル記述子をプロセス単位の資源として扱うととも
に、前記スレッドそれぞれが個別にアクセス制御ブロッ
クをもつことによって、同一プロセス内のスレッドすべ
てが前記ファイル記述子を排他することなく使用するこ
とを特徴とする。
【0018】本発明によれば、プロセスがファイルのオ
ープンを要求してきたときに、システムは、そのファイ
ルにファイル記述子を割り当てるとともに、そのファイ
ル記述子を要求元のプロセスに返送する。したがって、
この時点では、アクセス制御ブロックの確保は行なわれ
ない。
ープンを要求してきたときに、システムは、そのファイ
ルにファイル記述子を割り当てるとともに、そのファイ
ル記述子を要求元のプロセスに返送する。したがって、
この時点では、アクセス制御ブロックの確保は行なわれ
ない。
【0019】次に、プロセス内のスレッドがそのファイ
ル記述子を用いて初めてアクセスを行なった際、システ
ムは、このスレッドに対応させて、そのファイルについ
てのアクセス制御ブロックを確保する。すなわち、各ス
レッドは、それぞれ固有のアクセス制御ブロックをもつ
ことになる。
ル記述子を用いて初めてアクセスを行なった際、システ
ムは、このスレッドに対応させて、そのファイルについ
てのアクセス制御ブロックを確保する。すなわち、各ス
レッドは、それぞれ固有のアクセス制御ブロックをもつ
ことになる。
【0020】これにより、ファイル記述子をプロセス単
位の資源として取り扱うことができ、かつ各スレッド相
互間でこのファイル記述子を排他して使用するといった
ことが不要となる。
位の資源として取り扱うことができ、かつ各スレッド相
互間でこのファイル記述子を排他して使用するといった
ことが不要となる。
【0021】
【発明の実施の形態】以下、図面を参照して本発明の一
実施形態を説明する。図1は同実施形態におけるファイ
ルアクセスの制御原理について説明するための概念図で
ある。
実施形態を説明する。図1は同実施形態におけるファイ
ルアクセスの制御原理について説明するための概念図で
ある。
【0022】同実施形態において、プロセス(AP)9
が生成されると、システムは、プロセス制御ブロック
(PCB)2およびプロセスアサインテーブル(P−A
SGN)3をメモリに確保して、このプロセス制御ブロ
ック2をシステム制御ブロック(SCB)1に登録す
る。
が生成されると、システムは、プロセス制御ブロック
(PCB)2およびプロセスアサインテーブル(P−A
SGN)3をメモリに確保して、このプロセス制御ブロ
ック2をシステム制御ブロック(SCB)1に登録す
る。
【0023】このシステム制御ブロック1は、システム
上で稼働するプロセス全体を制御するために用いられる
ものである。また、プロセス制御ブロック2は、プロセ
ス9の状態管理などに用いられものであり、プロセスア
サインテーブル3は、ファイル制御ブロック(FCB)
4を参照するときに用いられるものである。なお、ファ
イル制御ブロックとは、ファイルそれぞれに対応して必
要に応じてメモリに確保されるものであり、ファイルの
属性などを含む制御情報を保持するものである。
上で稼働するプロセス全体を制御するために用いられる
ものである。また、プロセス制御ブロック2は、プロセ
ス9の状態管理などに用いられものであり、プロセスア
サインテーブル3は、ファイル制御ブロック(FCB)
4を参照するときに用いられるものである。なお、ファ
イル制御ブロックとは、ファイルそれぞれに対応して必
要に応じてメモリに確保されるものであり、ファイルの
属性などを含む制御情報を保持するものである。
【0024】また、プロセス9によりスレッドが生成さ
れると、システムは、スレッド制御ブロック5a〜5c
およびスレッドアサインテーブル6a〜6cをメモリに
確保して、このスレッド制御ブロック5a〜5cをプロ
セス制御ブロック2に登録する。なお、このスレッド制
御ブロック5a〜5cおよびスレッドアサインテーブル
6a〜6cは、それぞれ一対にして確保され、各スレッ
ド制御ブロック5a〜5cは、それぞれに対応したスレ
ッドアサインテーブル6a〜6cのアドレスを保持して
いる。
れると、システムは、スレッド制御ブロック5a〜5c
およびスレッドアサインテーブル6a〜6cをメモリに
確保して、このスレッド制御ブロック5a〜5cをプロ
セス制御ブロック2に登録する。なお、このスレッド制
御ブロック5a〜5cおよびスレッドアサインテーブル
6a〜6cは、それぞれ一対にして確保され、各スレッ
ド制御ブロック5a〜5cは、それぞれに対応したスレ
ッドアサインテーブル6a〜6cのアドレスを保持して
いる。
【0025】次に、このプロセス9がファイル8のオー
プンを要求すると、システムは、そのファイル8に対応
したファイル制御ブロック4のアドレスをプロセスアサ
インテーブル3のいずれかのエントリに設定し、この設
定したエントリをファイル記述子としてプロセス9に返
送する。
プンを要求すると、システムは、そのファイル8に対応
したファイル制御ブロック4のアドレスをプロセスアサ
インテーブル3のいずれかのエントリに設定し、この設
定したエントリをファイル記述子としてプロセス9に返
送する。
【0026】そして、プロセス9のスレッドが、このフ
ァイル記述子を用いてファイル8へのアクセスを要求す
ると、システムは、このファイル記述子が、そのスレッ
ドに対応して設けられたスレッドアサインテーブル(こ
こでは6aとする)内で有効であるかどうかを判定す
る。
ァイル記述子を用いてファイル8へのアクセスを要求す
ると、システムは、このファイル記述子が、そのスレッ
ドに対応して設けられたスレッドアサインテーブル(こ
こでは6aとする)内で有効であるかどうかを判定す
る。
【0027】このスレッドアサインテーブル6aの検索
は、以下の手順で行なわれる。すなわち、スレッドから
のアサイン要求が発生すると、システムは、プロセスI
DとスレッドIDとを取得して、まずプロセスIDから
プロセス制御ブロック2を知得する。次に、このプロセ
ス制御ブロック2とスレッドIDとからスレッド制御ブ
ロック5aを知得する。そして、このスレッド制御ブロ
ック5aの保持するスレッドアサインテーブル6aのア
ドレスによりスレッドアサインテーブル6aを検索す
る。
は、以下の手順で行なわれる。すなわち、スレッドから
のアサイン要求が発生すると、システムは、プロセスI
DとスレッドIDとを取得して、まずプロセスIDから
プロセス制御ブロック2を知得する。次に、このプロセ
ス制御ブロック2とスレッドIDとからスレッド制御ブ
ロック5aを知得する。そして、このスレッド制御ブロ
ック5aの保持するスレッドアサインテーブル6aのア
ドレスによりスレッドアサインテーブル6aを検索す
る。
【0028】そして、システムは、この検索したスレッ
ドアサインテーブル6aにアクセスの要求されたファイ
ル8に対応したアクセス制御ブロック7aが存在するか
どうかを検査することにより、そのファイル記述子が、
そのスレッドアサインテーブル6a内で有効であるかど
うかを判定する。
ドアサインテーブル6aにアクセスの要求されたファイ
ル8に対応したアクセス制御ブロック7aが存在するか
どうかを検査することにより、そのファイル記述子が、
そのスレッドアサインテーブル6a内で有効であるかど
うかを判定する。
【0029】なお、このアクセス制御ブロックとは、有
編成ファイルにおけるアクセスポインタやレコードロッ
ク情報、無編成ファイルにおけるカレントアクセス位置
などといったアクセス制御情報を保持するものであり、
各ファイルに対応して確保されるものである。また、ア
クセス制御ブロックは、ファイル制御ブロックを参照す
るためのアドレスなども保持している。
編成ファイルにおけるアクセスポインタやレコードロッ
ク情報、無編成ファイルにおけるカレントアクセス位置
などといったアクセス制御情報を保持するものであり、
各ファイルに対応して確保されるものである。また、ア
クセス制御ブロックは、ファイル制御ブロックを参照す
るためのアドレスなども保持している。
【0030】ここで、このファイル記述子が有効であっ
た場合には、そのスレッドアサインテーブル6aに設定
されたアクセス制御ブロック7aに基づいて、アクセス
処理を実施する。一方、ファイル記述子が有効でなかっ
た場合には、さらにそのファイル記述子がプロセスアサ
インテーブル3内で有効であるかどうかを判定する。
た場合には、そのスレッドアサインテーブル6aに設定
されたアクセス制御ブロック7aに基づいて、アクセス
処理を実施する。一方、ファイル記述子が有効でなかっ
た場合には、さらにそのファイル記述子がプロセスアサ
インテーブル3内で有効であるかどうかを判定する。
【0031】ここで、このファイル記述子がプロセスア
サインテーブル3内で有効でない場合には、ファイルの
オープンが行なわれていないこととなるため、エラーと
してプロセス9にその旨を返答する。
サインテーブル3内で有効でない場合には、ファイルの
オープンが行なわれていないこととなるため、エラーと
してプロセス9にその旨を返答する。
【0032】一方、このファイル記述子がプロセスアサ
インテーブル3内で有効であった場合には、アクセス制
御ブロック7aをメモリに確保してスレッドアサインテ
ーブル6aに設定するとともに、そのアクセス制御ブロ
ック7aを用いてアクセス処理を実施する。
インテーブル3内で有効であった場合には、アクセス制
御ブロック7aをメモリに確保してスレッドアサインテ
ーブル6aに設定するとともに、そのアクセス制御ブロ
ック7aを用いてアクセス処理を実施する。
【0033】すなわち、各スレッドがアクセス制御ブロ
ックをそれぞれにもつために、ファイル記述子をプロセ
ス単位の資源として扱うことができ、かつファイル記述
子の排他をまったく意識する必要がない。
ックをそれぞれにもつために、ファイル記述子をプロセ
ス単位の資源として扱うことができ、かつファイル記述
子の排他をまったく意識する必要がない。
【0034】次に図2乃至図5を参照して同実施形態の
動作手順を説明する。図2は同実施形態のプロセスが生
成されたときの動作を説明するフローチャートである。
動作手順を説明する。図2は同実施形態のプロセスが生
成されたときの動作を説明するフローチャートである。
【0035】プロセス9が生成されると、システムは、
プロセス制御ブロック2をメモリに確保して(図2のス
テップA1)、ついでプロセスアサインテーブル3をメ
モリに確保する(図2のステップA2)。
プロセス制御ブロック2をメモリに確保して(図2のス
テップA1)、ついでプロセスアサインテーブル3をメ
モリに確保する(図2のステップA2)。
【0036】図3は同実施形態のプロセスによりスレッ
ドが生成されたときの動作を説明するフローチャートで
ある。プロセス9によりスレッドが生成されると、シス
テムは、スレッド制御ブロック5a〜5cをメモリに確
保して(図3のステップB1)、ついでこれらスレッド
制御ブロック5a〜5cそれぞれと一対にしてスレッド
アサインテーブル6a〜6cをメモリに確保する(図3
のステップB2)。
ドが生成されたときの動作を説明するフローチャートで
ある。プロセス9によりスレッドが生成されると、シス
テムは、スレッド制御ブロック5a〜5cをメモリに確
保して(図3のステップB1)、ついでこれらスレッド
制御ブロック5a〜5cそれぞれと一対にしてスレッド
アサインテーブル6a〜6cをメモリに確保する(図3
のステップB2)。
【0037】図4は同実施形態のプロセスがファイルの
オープンを要求しときの動作を説明するフローチャート
である。プロセス9が、ファイル8のオープンを要求す
ると、システムは、プロセスIDからプロセス制御ブロ
ック2を知得し、さらにこのプロセス制御ブロック2か
らプロセスアサインテーブル3を知得する(図4のステ
ップC1)。そして、システムは、このオープン要求の
あったファイル8に対応するファイル制御ブロック4が
メモリに確保されているかどうかを判定し(図4のステ
ップC2)、確保されていないときに、ファイル制御ブ
ロック4をメモリ上に確保する(図4のステップC
3)。
オープンを要求しときの動作を説明するフローチャート
である。プロセス9が、ファイル8のオープンを要求す
ると、システムは、プロセスIDからプロセス制御ブロ
ック2を知得し、さらにこのプロセス制御ブロック2か
らプロセスアサインテーブル3を知得する(図4のステ
ップC1)。そして、システムは、このオープン要求の
あったファイル8に対応するファイル制御ブロック4が
メモリに確保されているかどうかを判定し(図4のステ
ップC2)、確保されていないときに、ファイル制御ブ
ロック4をメモリ上に確保する(図4のステップC
3)。
【0038】次に、システムは、プロセスアサインテー
ブル3のいずれかのエントリを確保して(図4のステッ
プC4)、ファイル制御ブロック4をこのエントリに設
定するともに、プロセス9により指定されたオープンモ
ードを格納する(図4のステップC5)。そして、この
確保したエントリのエントリ番号をファイル記述子とし
て、プロセス9に返送する(図4のステップC6)。
ブル3のいずれかのエントリを確保して(図4のステッ
プC4)、ファイル制御ブロック4をこのエントリに設
定するともに、プロセス9により指定されたオープンモ
ードを格納する(図4のステップC5)。そして、この
確保したエントリのエントリ番号をファイル記述子とし
て、プロセス9に返送する(図4のステップC6)。
【0039】図5は同実施形態のスレッドがファイル記
述子を用いてファイルのアクセスを要求したときの動作
を説明するフローチャートである。プロセス9のスレッ
ドが、ファイル記述子を用いてファイル8へのアクセス
を要求すると、システムは、まずプロセスIDからプロ
セス制御ブロック2を知得し、さらにこのプロセス制御
ブロック2からプロセスアサインテーブル3を知得する
(図5のステップD1)。次にシステムは、スレッドI
Dからスレッド制御ブロック5aを知得し、さらにこの
スレッド制御ブロック5aからスレッドアサインテーブ
ル6aを知得する(図5のステップD2)。
述子を用いてファイルのアクセスを要求したときの動作
を説明するフローチャートである。プロセス9のスレッ
ドが、ファイル記述子を用いてファイル8へのアクセス
を要求すると、システムは、まずプロセスIDからプロ
セス制御ブロック2を知得し、さらにこのプロセス制御
ブロック2からプロセスアサインテーブル3を知得する
(図5のステップD1)。次にシステムは、スレッドI
Dからスレッド制御ブロック5aを知得し、さらにこの
スレッド制御ブロック5aからスレッドアサインテーブ
ル6aを知得する(図5のステップD2)。
【0040】ここでシステムは、ファイル記述子が、そ
のスレッドアサインテーブル6a内で有効であるかどう
かを判定し(図5のステップD3)、有効でない場合に
は、さらにそのファイル記述子がプロセスアサインテー
ブル3内で有効であるかどうかを判定する(図5のステ
ップD4)。
のスレッドアサインテーブル6a内で有効であるかどう
かを判定し(図5のステップD3)、有効でない場合に
は、さらにそのファイル記述子がプロセスアサインテー
ブル3内で有効であるかどうかを判定する(図5のステ
ップD4)。
【0041】ここで、このファイル記述子がプロセスア
サインテーブル3内で有効でない場合には、ファイルの
オープンが行なわれていないこととなるため、エラーと
してプロセス9にその旨を返答する。
サインテーブル3内で有効でない場合には、ファイルの
オープンが行なわれていないこととなるため、エラーと
してプロセス9にその旨を返答する。
【0042】一方、このファイル記述子がプロセスアサ
インテーブル3内で有効であった場合には、アクセス制
御ブロック7aをメモリに確保してスレッドアサインテ
ーブル6aに設定するとともに(図5のステップD5〜
ステップD6)、そのアクセス制御ブロック7aを用い
てアクセス処理を実施する(図5のステップD7)。こ
れにより、ファイル記述子をプロセス単位の資源として
扱うことができ、かつファイル記述子の排他をまったく
意識する必要がない。
インテーブル3内で有効であった場合には、アクセス制
御ブロック7aをメモリに確保してスレッドアサインテ
ーブル6aに設定するとともに(図5のステップD5〜
ステップD6)、そのアクセス制御ブロック7aを用い
てアクセス処理を実施する(図5のステップD7)。こ
れにより、ファイル記述子をプロセス単位の資源として
扱うことができ、かつファイル記述子の排他をまったく
意識する必要がない。
【0043】
【発明の効果】以上詳述したように、本発明によれば、
ファイル記述子をプロセス単位の資源として扱えるとと
もに、スレッドそれぞれが個別にアクセス制御ブロック
をもつことによって、同一プロセス内のスレッドすべて
がファイル記述子を排他することなく使用することがで
きることとなる。
ファイル記述子をプロセス単位の資源として扱えるとと
もに、スレッドそれぞれが個別にアクセス制御ブロック
をもつことによって、同一プロセス内のスレッドすべて
がファイル記述子を排他することなく使用することがで
きることとなる。
【図1】本発明の実施形態におけるファイルアクセスの
制御原理について説明するための概念図。
制御原理について説明するための概念図。
【図2】同実施形態のプロセスが生成されたときの動作
を説明するフローチャート。
を説明するフローチャート。
【図3】同実施形態のプロセスによりスレッドが生成さ
れたときの動作を説明するフローチャート。
れたときの動作を説明するフローチャート。
【図4】同実施形態のプロセスがファイルのオープンを
要求しときの動作を説明するフローチャート。
要求しときの動作を説明するフローチャート。
【図5】同実施形態のスレッドがファイル記述子を用い
てファイルのアクセスを要求しときの動作を説明するフ
ローチャート。
てファイルのアクセスを要求しときの動作を説明するフ
ローチャート。
【図6】従来のマルチスレッド環境下でのファイルアク
セスの制御原理を説明するための概念図。
セスの制御原理を説明するための概念図。
1…システム制御ブロック、2…プロセス制御ブロッ
ク、3…プロセスアサインテーブル、4…ファイル制御
ブロック、5a,5b,5c…スレッド制御ブロック、
6a,6b,6c…スレッドアサインテーブル、7a,
7b,7c…アクセス制御ブロック、8…ファイル、9
…プロセス。
ク、3…プロセスアサインテーブル、4…ファイル制御
ブロック、5a,5b,5c…スレッド制御ブロック、
6a,6b,6c…スレッドアサインテーブル、7a,
7b,7c…アクセス制御ブロック、8…ファイル、9
…プロセス。
Claims (2)
- 【請求項1】 一つのプロセスがCPUへの割り付け単
位となるスレッドを複数もつことのできるマルチスレッ
ド環境を提供する計算機システムであって、前記スレッ
ドそれぞれが、ファイルそれぞれに固有に割り当てられ
たファイル記述子を用いてファイルへのアクセスを行な
う計算機システムにおいて、 前記プロセスがファイルのオープンを要求したときに、
そのオープンの要求されたファイルにファイル記述子を
割り当てて、そのファイル記述子を前記要求元のプロセ
スに返送する手段と、 前記プロセスのいずれかのスレッドが前記割り当てられ
たファイル記述子を用いてそのファイルへのアクセスを
初めて要求したときに、アクセスポインタを含むそのフ
ァイルに関するアクセス制御情報を保持するアクセス制
御ブロックをそのスレッドに対応させて前記メモリに確
保する手段とを具備し、 前記ファイル記述子をプロセス単位の資源として扱うと
ともに、前記スレッドそれぞれが個別にアクセス制御ブ
ロックをもつことによって、同一プロセス内のスレッド
すべてが前記ファイル記述子を排他することなく使用す
ることを特徴とする計算機システム。 - 【請求項2】 一つのプロセスがCPUへの割り付け単
位となるスレッドを複数もつことのできるマルチスレッ
ド環境を提供する計算機システムであって、これらのス
レッドそれぞれがファイルそれぞれに固有に割り当てら
れたファイル記述子を用いてファイルへのアクセスを行
なう計算機システムのファイルアクセス制御方法におい
て、 前記プロセスがファイルのオープンを要求したときに、
そのオープンの要求されたファイルにファイル記述子を
割り当てて、そのファイル記述子を前記要求元のプロセ
スに返送するステップと、 前記プロセスのいずれかのスレッドが前記割り当てられ
たファイル記述子を用いてそのファイルへのアクセスを
初めて要求したときに、アクセスポインタを含むそのフ
ァイルに関するアクセス制御情報を保持するアクセス制
御ブロックをそのスレッドに対応させて前記メモリに確
保するステップとを具備し、 前記ファイル記述子をプロセス単位の資源として扱うと
ともに、前記スレッドそれぞれが個別にアクセス制御ブ
ロックをもつことによって、同一プロセス内のスレッド
すべてが前記ファイル記述子を排他することなく使用す
ることを特徴とするファイルアクセス制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7223824A JPH0969060A (ja) | 1995-08-31 | 1995-08-31 | 計算機システムおよびファイルアクセス制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7223824A JPH0969060A (ja) | 1995-08-31 | 1995-08-31 | 計算機システムおよびファイルアクセス制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0969060A true JPH0969060A (ja) | 1997-03-11 |
Family
ID=16804302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7223824A Pending JPH0969060A (ja) | 1995-08-31 | 1995-08-31 | 計算機システムおよびファイルアクセス制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0969060A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928492B1 (en) | 1999-09-09 | 2005-08-09 | Japan Science And Technology Agency | Computer I/O device access method |
CN110532121A (zh) * | 2019-08-20 | 2019-12-03 | 新华三大数据技术有限公司 | 业务模块定位方法及装置 |
CN113342721A (zh) * | 2021-07-06 | 2021-09-03 | 无锡众星微系统技术有限公司 | 存储控制器dma设计方法 |
-
1995
- 1995-08-31 JP JP7223824A patent/JPH0969060A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928492B1 (en) | 1999-09-09 | 2005-08-09 | Japan Science And Technology Agency | Computer I/O device access method |
CN110532121A (zh) * | 2019-08-20 | 2019-12-03 | 新华三大数据技术有限公司 | 业务模块定位方法及装置 |
CN110532121B (zh) * | 2019-08-20 | 2022-08-26 | 新华三大数据技术有限公司 | 业务模块定位方法及装置 |
CN113342721A (zh) * | 2021-07-06 | 2021-09-03 | 无锡众星微系统技术有限公司 | 存储控制器dma设计方法 |
CN113342721B (zh) * | 2021-07-06 | 2022-09-23 | 无锡众星微系统技术有限公司 | 存储控制器dma设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7356655B2 (en) | Methods, systems, and media for managing dynamic storage | |
US6341338B1 (en) | Protocol for coordinating the distribution of shared memory | |
US6505286B1 (en) | User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture | |
US5581765A (en) | System for combining a global object identifier with a local object address in a single object pointer | |
US6412053B2 (en) | System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system | |
US5386536A (en) | Apparatus and method for managing memory allocation | |
US5802590A (en) | Method and system for providing secure access to computer resources | |
CA1296432C (en) | Controlled dynamic load balancing for a multiprocessor system | |
US6272491B1 (en) | Method and system for mastering locks in a multiple server database system | |
JP3778593B2 (ja) | システム資源管理装置および管理方法 | |
US20040098544A1 (en) | Method and apparatus for managing a memory system | |
US20090300638A1 (en) | Memory allocators corresponding to processor resources | |
US9552225B2 (en) | Data processing system with data transmit capability | |
JPH0969060A (ja) | 計算機システムおよびファイルアクセス制御方法 | |
JP3639366B2 (ja) | アドレス空間共有システム | |
JPH0713823A (ja) | 仮想計算機システムにおけるファイル資源管理方式 | |
US6912640B2 (en) | Method to partition large code across multiple e-caches | |
US20030061462A1 (en) | Memory expansion and enhanced system interaction using network-distributed memory mapping | |
JP2522161B2 (ja) | 仮想計算機システムにおけるボリュ―ム資源管理方式 | |
JP2003248620A (ja) | 動的メモリ管理方法及び動的メモリ管理情報処理装置 | |
US6886063B1 (en) | Systems, devices, structures, and methods to share resources among entities | |
JP3693311B2 (ja) | 分散処理システム | |
JPH04321136A (ja) | マルチタスク制御方法および制御装置 | |
JPH08292956A (ja) | データベース管理装置及びデータベース管理方法 | |
JPH07175709A (ja) | オブジェクト指向分散処理装置及びその制御方法 |