JPH09330239A - 排他制御方法 - Google Patents
排他制御方法Info
- Publication number
- JPH09330239A JPH09330239A JP15072896A JP15072896A JPH09330239A JP H09330239 A JPH09330239 A JP H09330239A JP 15072896 A JP15072896 A JP 15072896A JP 15072896 A JP15072896 A JP 15072896A JP H09330239 A JPH09330239 A JP H09330239A
- Authority
- JP
- Japan
- Prior art keywords
- task
- shared
- exclusive
- resource
- request
- 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
Abstract
(57)【要約】
【課題】複数タスクが並行して動作する計算機システム
のタスク間排他制御において、逐次使用資源の共用使用
が頻繁に要求されるとき、排他制御オーバヘッドを削減
して共用使用を高速化する。 【解決手段】逐次使用資源毎に各タスクの使用状態と、
排他的使用要求の数と、共用使用しているタスクの数を
管理し、排他的使用要求がないならば、資源使用状態と
共用使用タスク数を更新して資源の共用使用権を取得、
解放する。
のタスク間排他制御において、逐次使用資源の共用使用
が頻繁に要求されるとき、排他制御オーバヘッドを削減
して共用使用を高速化する。 【解決手段】逐次使用資源毎に各タスクの使用状態と、
排他的使用要求の数と、共用使用しているタスクの数を
管理し、排他的使用要求がないならば、資源使用状態と
共用使用タスク数を更新して資源の共用使用権を取得、
解放する。
Description
【0001】
【発明の属する技術分野】本発明はタスク間の排他制御
方法に関し、特に複数のタスクが頻繁に資源を共用使用
する場合に適した排他制御方法に関する。
方法に関し、特に複数のタスクが頻繁に資源を共用使用
する場合に適した排他制御方法に関する。
【0002】
【従来の技術】従来の排他制御方法として、オペレーテ
ィング・システムへの構造的アプローチ(下巻)第73
6ページから第757ページに記述されているように、
タスクが資源に対して使用要求を出したときに、その要
求を表す要求ブロックを作成してFIFO方式の待ち行
列につなぐことにより、要求順に資源の使用権をタスク
に与える方法がある。
ィング・システムへの構造的アプローチ(下巻)第73
6ページから第757ページに記述されているように、
タスクが資源に対して使用要求を出したときに、その要
求を表す要求ブロックを作成してFIFO方式の待ち行
列につなぐことにより、要求順に資源の使用権をタスク
に与える方法がある。
【0003】この方法は、待ち行列の先頭の要求が排他
的使用であるときは先頭の要求を出したタスクだけに排
他的使用権を与え、先頭が共用使用要求であるときは、
この要求以後、最初に排他的使用が要求されるまでの間
に、共用使用を要求したタスクに共用使用権を与えるも
のである。また、タスクが資源の使用権を解放するとき
に、そのタスクの要求ブロックを待ち行列から外し、要
求ブロック領域を解放し、このとき、資源を使用してい
るタスクがないならば、次のタスクに使用権を与えるも
のである。
的使用であるときは先頭の要求を出したタスクだけに排
他的使用権を与え、先頭が共用使用要求であるときは、
この要求以後、最初に排他的使用が要求されるまでの間
に、共用使用を要求したタスクに共用使用権を与えるも
のである。また、タスクが資源の使用権を解放するとき
に、そのタスクの要求ブロックを待ち行列から外し、要
求ブロック領域を解放し、このとき、資源を使用してい
るタスクがないならば、次のタスクに使用権を与えるも
のである。
【0004】
【発明が解決しようとする課題】上記の従来技術は、資
源の共用使用が頻繁に要求される場合の性能について考
慮されておらず、資源の共用使用だけが連続して複数の
タスクから要求される場合でも、要求ブロックの生成と
待ち行列への追加、及び要求ブロックの待ち行列からの
削除と解放を行うため、共用使用時のオーバヘッドが排
他的使用時と同程度となるという問題があった。本発明
の目的は、排他的使用が要求されていないときの、共用
使用権の取得と解放のオーバヘッドを削減し、逐次使用
資源の共用使用を高速化することにある。
源の共用使用が頻繁に要求される場合の性能について考
慮されておらず、資源の共用使用だけが連続して複数の
タスクから要求される場合でも、要求ブロックの生成と
待ち行列への追加、及び要求ブロックの待ち行列からの
削除と解放を行うため、共用使用時のオーバヘッドが排
他的使用時と同程度となるという問題があった。本発明
の目的は、排他的使用が要求されていないときの、共用
使用権の取得と解放のオーバヘッドを削減し、逐次使用
資源の共用使用を高速化することにある。
【0005】
【課題を解決するための手段】本発明は、複数タスクが
並行して動作する計算機システム上でのタスク間排他制
御方法において、資源毎にタスクの資源使用状態を記録
し、排他的使用要求の数と共用使用しているタスク数を
管理し、資源の排他的使用要求がない場合、タスクの資
源使用状態と共用使用タスク数を更新するだけで資源の
共用使用権を取得、解放するものである。
並行して動作する計算機システム上でのタスク間排他制
御方法において、資源毎にタスクの資源使用状態を記録
し、排他的使用要求の数と共用使用しているタスク数を
管理し、資源の排他的使用要求がない場合、タスクの資
源使用状態と共用使用タスク数を更新するだけで資源の
共用使用権を取得、解放するものである。
【0006】
【発明の実施の形態】次に本発明の一実施例を図面を用
いて詳細に説明する。
いて詳細に説明する。
【0007】図1は本発明を用いたタスク間の排他制御
の動作を示す図である。図2は逐次使用資源を管理する
資源管理テーブルと待ち行列の構成図である。図3はタ
スクの資源使用状態を記録するビットマップ領域の構成
図である。図4は共用使用権を取得する手順、図5は排
他的使用権を取得する手順、図6は使用権を解放する手
順を示すフローチャートである。
の動作を示す図である。図2は逐次使用資源を管理する
資源管理テーブルと待ち行列の構成図である。図3はタ
スクの資源使用状態を記録するビットマップ領域の構成
図である。図4は共用使用権を取得する手順、図5は排
他的使用権を取得する手順、図6は使用権を解放する手
順を示すフローチャートである。
【0008】図1において、1、2はタスクで、10は
資源管理テーブル、20は排他制御処理プログラムであ
る。タスク1が資源Aに対して共用使用を要求すると
(ステップ3)、共用使用権の取得処理30が実行さ
れ、資源Aの使用権解放を要求すると(ステップ4)、
使用権の解放処理50が実行される。同様に、タスク2
が排他的使用を要求すると(ステップ5)、排他的使用
権の取得処理40が実行される。排他制御処理20は指
定された資源Aの管理テーブルを参照、更新して使用権
の取得、解放を実現する。排他制御処理20は資源毎に
逐次的に実行され、同じ資源に対する複数の使用権取得
処理や解放処理が同時に実行されることはない。
資源管理テーブル、20は排他制御処理プログラムであ
る。タスク1が資源Aに対して共用使用を要求すると
(ステップ3)、共用使用権の取得処理30が実行さ
れ、資源Aの使用権解放を要求すると(ステップ4)、
使用権の解放処理50が実行される。同様に、タスク2
が排他的使用を要求すると(ステップ5)、排他的使用
権の取得処理40が実行される。排他制御処理20は指
定された資源Aの管理テーブルを参照、更新して使用権
の取得、解放を実現する。排他制御処理20は資源毎に
逐次的に実行され、同じ資源に対する複数の使用権取得
処理や解放処理が同時に実行されることはない。
【0009】図2において、資源管理テーブル10は、
共用カウンタ11、排他的要求カウンタ12、待ち行列
の先頭ポインタ13、待ち行列の末尾ポインタ14、ビ
ットマップ領域15を持つ。共用カウンタ11は、資源
を共用使用しているタスクの数を記録する。排他的要求
カウンタ12は、資源の排他的使用要求の数、すなわ
ち、資源を排他的に使用しているタスクと排他的使用要
求を出して待ち状態になっているタスクの合計数を記録
する。待ち行列16には、排他的使用を要求した資源が
既に他タスクにより使用されている場合、または、共用
使用を要求した資源が既に他タスクにより排他的に使用
されている場合に、資源の使用権が与えられず待ち状態
になったタスクの使用要求が、要求ブロック161,1
62,...,16nの形で要求順に保持されている。
共用カウンタ11、排他的要求カウンタ12、待ち行列
の先頭ポインタ13、待ち行列の末尾ポインタ14、ビ
ットマップ領域15を持つ。共用カウンタ11は、資源
を共用使用しているタスクの数を記録する。排他的要求
カウンタ12は、資源の排他的使用要求の数、すなわ
ち、資源を排他的に使用しているタスクと排他的使用要
求を出して待ち状態になっているタスクの合計数を記録
する。待ち行列16には、排他的使用を要求した資源が
既に他タスクにより使用されている場合、または、共用
使用を要求した資源が既に他タスクにより排他的に使用
されている場合に、資源の使用権が与えられず待ち状態
になったタスクの使用要求が、要求ブロック161,1
62,...,16nの形で要求順に保持されている。
【0010】図3のビットマップ領域15は各タスクの
資源使用状態を記録する。1つのタスクにつき2ビット
の使用状態ビットが割り当てられている。その2ビット
が00のとき、該タスクは該資源に対して使用も要求も
していないことを、01のとき、共用使用していること
を、10のとき、排他的に使用していることを、11の
とき、該タスクは使用権が与えられるのを待っているこ
とを示している。
資源使用状態を記録する。1つのタスクにつき2ビット
の使用状態ビットが割り当てられている。その2ビット
が00のとき、該タスクは該資源に対して使用も要求も
していないことを、01のとき、共用使用していること
を、10のとき、排他的に使用していることを、11の
とき、該タスクは使用権が与えられるのを待っているこ
とを示している。
【0011】次に資源の使用権を取得する手順、解放す
る手順を図4、図5、図6を用いて説明する。図4の共
用使用権の取得手順では、まず排他的要求カウンタ12
の値を調べ(ステップ31)、その値が0のときは、共
用カウンタ11の値に1を加算して(ステップ32)ビ
ットマップ領域15の該タスクの使用状態ビットを01
にし(ステップ33)、タスクに共用使用権を与える。
排他的要求カウンタ12の値が0でないときは、ビット
マップ領域15の該タスクの使用状態ビットを11にし
(ステップ34)、要求ブロックを作成して(ステップ
35)待ち行列16に登録し(ステップ36)、タスク
を待ち状態とする(ステップ37)。
る手順を図4、図5、図6を用いて説明する。図4の共
用使用権の取得手順では、まず排他的要求カウンタ12
の値を調べ(ステップ31)、その値が0のときは、共
用カウンタ11の値に1を加算して(ステップ32)ビ
ットマップ領域15の該タスクの使用状態ビットを01
にし(ステップ33)、タスクに共用使用権を与える。
排他的要求カウンタ12の値が0でないときは、ビット
マップ領域15の該タスクの使用状態ビットを11にし
(ステップ34)、要求ブロックを作成して(ステップ
35)待ち行列16に登録し(ステップ36)、タスク
を待ち状態とする(ステップ37)。
【0012】図5の排他的使用権の取得手順では、まず
他の要求があるかどうかを調べ(ステップ41)、要求
タスクがないときは、排他的要求カウンタ12の値に1
を加算して(ステップ42)ビットマップ領域15の該
タスクの使用状態ビットを10にし(ステップ43)、
タスクに排他的使用権を与える。要求タスクがあるとき
は、排他的要求カウンタ12の値に1を加算して(ステ
ップ44)ビットマップ領域15の該タスクの使用状態
ビットを11にし(ステップ45)、要求ブロックを作
成して(ステップ46)待ち行列16に登録し(ステッ
プ47)、タスクを待ち状態とする(ステップ48)。
他の要求があるかどうかを調べ(ステップ41)、要求
タスクがないときは、排他的要求カウンタ12の値に1
を加算して(ステップ42)ビットマップ領域15の該
タスクの使用状態ビットを10にし(ステップ43)、
タスクに排他的使用権を与える。要求タスクがあるとき
は、排他的要求カウンタ12の値に1を加算して(ステ
ップ44)ビットマップ領域15の該タスクの使用状態
ビットを11にし(ステップ45)、要求ブロックを作
成して(ステップ46)待ち行列16に登録し(ステッ
プ47)、タスクを待ち状態とする(ステップ48)。
【0013】図6の使用権解放手順では、まずビットマ
ップ領域15の該タスクの使用状態ビットを調べ(ステ
ップ502、504)、それが01の時は、共用カウン
タ11の値から1を減算し(ステップ503)、10の
時は、排他的要求カウンタ12の値から1を減算する
(ステップ505)。その後、使用状態ビットを00に
する(ステップ506)。待ち行列16に要求ブロック
がないときは、これで資源の使用権解放処理が終了す
る。
ップ領域15の該タスクの使用状態ビットを調べ(ステ
ップ502、504)、それが01の時は、共用カウン
タ11の値から1を減算し(ステップ503)、10の
時は、排他的要求カウンタ12の値から1を減算する
(ステップ505)。その後、使用状態ビットを00に
する(ステップ506)。待ち行列16に要求ブロック
がないときは、これで資源の使用権解放処理が終了す
る。
【0014】次に、待ち行列16の先頭要求161を調
べる(ステップ507)。共用使用要求であれば(ステ
ップ508)、その要求を出したタスクに共用使用権を
与えるため、共用カウンタ11の値に1を加算し(ステ
ップ509)、ビットマップ領域15の該タスクの使用
状態ビットを01にする(ステップ510)。その後、
待ち行列16の先頭の要求ブロック161を削除して
(ステップ511)該タスクの実行を再開させる(ステ
ップ512)。これを、待ち行列16に要求ブロックが
なくなるか、または待ち行列16の先頭が排他的使用要
求になるまで繰り返す。
べる(ステップ507)。共用使用要求であれば(ステ
ップ508)、その要求を出したタスクに共用使用権を
与えるため、共用カウンタ11の値に1を加算し(ステ
ップ509)、ビットマップ領域15の該タスクの使用
状態ビットを01にする(ステップ510)。その後、
待ち行列16の先頭の要求ブロック161を削除して
(ステップ511)該タスクの実行を再開させる(ステ
ップ512)。これを、待ち行列16に要求ブロックが
なくなるか、または待ち行列16の先頭が排他的使用要
求になるまで繰り返す。
【0015】待ち行列16の先頭要求が排他的使用の時
は、共用カウンタ11の値を調べ(ステップ513)、
その値が0ならばその要求を出したタスクに排他的使用
権を与える。そのため、ビットマップ領域15の該タス
クの使用状態ビットを10にし(ステップ514)、待
ち行列16の先頭の要求ブロック161を削除して(ス
テップ515)該タスクの実行を再開させる(ステップ
516)。
は、共用カウンタ11の値を調べ(ステップ513)、
その値が0ならばその要求を出したタスクに排他的使用
権を与える。そのため、ビットマップ領域15の該タス
クの使用状態ビットを10にし(ステップ514)、待
ち行列16の先頭の要求ブロック161を削除して(ス
テップ515)該タスクの実行を再開させる(ステップ
516)。
【0016】
【発明の効果】本発明によれば、タスクが逐次使用資源
に対して、排他的使用要求がないときに共用使用を要求
した場合、要求ブロック作成、解放処理と待ち行列操作
処理を行わずに、タスクの使用状態と共用使用タスク数
を更新するだけで資源の共用使用権の取得、解放ができ
るので、資源の共用使用処理が高速になるという効果が
ある。
に対して、排他的使用要求がないときに共用使用を要求
した場合、要求ブロック作成、解放処理と待ち行列操作
処理を行わずに、タスクの使用状態と共用使用タスク数
を更新するだけで資源の共用使用権の取得、解放ができ
るので、資源の共用使用処理が高速になるという効果が
ある。
【図1】本発明を用いたタスク間の排他制御の動作を示
す図である。
す図である。
【図2】本発明に係る逐次使用資源の管理テーブルの構
成図である。
成図である。
【図3】図2におけるビットマップ領域の詳細を示す図
である。
である。
【図4】資源の共用使用権を取得する処理手順の1実施
例を示すフローチャートである。
例を示すフローチャートである。
【図5】資源の排他的使用権を取得する処理手順の1実
施例を示すフローチャートである。
施例を示すフローチャートである。
【図6】資源の使用権を解放する処理手順の1実施例を
示すフローチャートである。
示すフローチャートである。
1,2…タスク、10…資源管理テーブル、20…排他
制御処理、15…ビットマップ領域、
16…待ち行列、161,...,16n…要求ブロッ
ク、 30…共用使用権の取得手順、40…排他的使用
権の取得手順、 50…使用権の解放手順。
制御処理、15…ビットマップ領域、
16…待ち行列、161,...,16n…要求ブロッ
ク、 30…共用使用権の取得手順、40…排他的使用
権の取得手順、 50…使用権の解放手順。
フロントページの続き (72)発明者 ▲高▼山 由人 神奈川県横浜市戸塚区戸塚町5030番地株式 会社日立製作所ソフトウェア開発本部内
Claims (1)
- 【請求項1】複数のタスクが並行して動作することが可
能な計算機システム上でのタスク間排他制御方法におい
て、逐次使用を必要とする資源毎にタスクの資源使用状
態をメモリ上に記録するステップと、資源に対する排他
的使用要求の数と資源を共用使用しているタスクの数を
管理するステップを有し、資源に対する排他的使用要求
がない場合は、前記のタスクの資源使用状態と共用使用
タスク数を更新することにより高速に資源の共用使用権
を取得及び解放するステップを有することを特徴とする
排他制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15072896A JPH09330239A (ja) | 1996-06-12 | 1996-06-12 | 排他制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15072896A JPH09330239A (ja) | 1996-06-12 | 1996-06-12 | 排他制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09330239A true JPH09330239A (ja) | 1997-12-22 |
Family
ID=15503122
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15072896A Pending JPH09330239A (ja) | 1996-06-12 | 1996-06-12 | 排他制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09330239A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002304304A (ja) * | 2001-04-04 | 2002-10-18 | Denso Corp | 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体 |
| CN100380326C (zh) * | 2004-07-08 | 2008-04-09 | 国际商业机器公司 | 用于共享计算机资源的系统和方法 |
-
1996
- 1996-06-12 JP JP15072896A patent/JPH09330239A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002304304A (ja) * | 2001-04-04 | 2002-10-18 | Denso Corp | 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体 |
| US7120913B2 (en) | 2001-04-04 | 2006-10-10 | Denso Corporation | Processing execution apparatus having data reference limiting function |
| CN100380326C (zh) * | 2004-07-08 | 2008-04-09 | 国际商业机器公司 | 用于共享计算机资源的系统和方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6848021B2 (en) | Efficient data backup using a single side file | |
| JPH04229355A (ja) | データアクセス方法及びデータ処理システム | |
| JPH0954754A (ja) | 疎結合並列処理環境における顧客情報制御システム及び方法 | |
| JPH09311839A (ja) | データ共用方式 | |
| JPH07262071A (ja) | データベースシステム及び負荷分散制御方法 | |
| JPH09330239A (ja) | 排他制御方法 | |
| JP3969308B2 (ja) | シングルプロセッサ向けosによる並列処理システム | |
| JPH08329019A (ja) | セマフォのデータ管理方式 | |
| JPS6224355A (ja) | バッファ管理方法 | |
| CN115774521B (zh) | Pcie ssd的数据迁移方法、系统、设备及存储介质 | |
| JPH02245864A (ja) | 多重プロセッサシステム | |
| JP2787107B2 (ja) | バッファ制御方式及び装置 | |
| JPH01126738A (ja) | 多重ジョブの実行におけるデータセット競合制御方式 | |
| JPS62209635A (ja) | 非同期通信におけるシステム管理フアイルアクセス方式 | |
| JPH05113894A (ja) | 仮想計算機システムにおけるフアイル資源管理方式 | |
| JP3047533B2 (ja) | 計算機システムのリソース管理方法 | |
| JPH09319856A (ja) | ストラクチャデータ編集方式 | |
| JPH09330241A (ja) | デッドロック防止排他制御方式 | |
| JP2926873B2 (ja) | 計算機システム | |
| JPH08147203A (ja) | トランザクション処理システム | |
| JPH10320218A (ja) | データ転送処理における連携ジョブ自動起動方法 | |
| JPH11134206A (ja) | 分散共有リソース管理方法ならびに並列処理環境提供システム、及び同方法がプログラムされ記録される記録媒体 | |
| JP3006527B2 (ja) | クライアント/サーバ型データベースシステム | |
| JPH0528421B2 (ja) | ||
| CN121711391A (zh) | 分布式数据同步任务调度方法、系统及介质 |