JPH05250188A - プロセスのプライオリティ制御方式 - Google Patents
プロセスのプライオリティ制御方式Info
- Publication number
- JPH05250188A JPH05250188A JP4083290A JP8329092A JPH05250188A JP H05250188 A JPH05250188 A JP H05250188A JP 4083290 A JP4083290 A JP 4083290A JP 8329092 A JP8329092 A JP 8329092A JP H05250188 A JPH05250188 A JP H05250188A
- Authority
- JP
- Japan
- Prior art keywords
- priority
- resource
- management table
- control unit
- resources
- 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)【要約】
【目的】 共有資源排他制御において、資源占有プロセ
スのプロセスプライオリティを資源占有期間だけ上げる
ためのプライオリティ操作処理を効率的に行う。 【構成】 プロセス間の共有資源を管理する資源管理テ
ーブル16内に、過去に該資源をアクセスしたプロセス
の最高プライオリティを保持する資源プライオリティ格
納域161を備え、各プロセスのプロセス管理テーブル
18内に各プロセスのベースとなるプロセスプライオリ
ティ格納域181と実行時に用いられる実効プライオリ
ティ格納域182を備え、排他制御部12での資源確保
処理では、資源を確保したプロセスについて、該資源プ
ライオリティ161とプロセスプライオリティ181を
比較し、高い方の値を実効(182)および資源プライ
オリティ(161)とするステップを含み、資源解放処
理では該プロセスの実効プライオリティをプロセスプラ
イオリティに戻すステップを含む。
スのプロセスプライオリティを資源占有期間だけ上げる
ためのプライオリティ操作処理を効率的に行う。 【構成】 プロセス間の共有資源を管理する資源管理テ
ーブル16内に、過去に該資源をアクセスしたプロセス
の最高プライオリティを保持する資源プライオリティ格
納域161を備え、各プロセスのプロセス管理テーブル
18内に各プロセスのベースとなるプロセスプライオリ
ティ格納域181と実行時に用いられる実効プライオリ
ティ格納域182を備え、排他制御部12での資源確保
処理では、資源を確保したプロセスについて、該資源プ
ライオリティ161とプロセスプライオリティ181を
比較し、高い方の値を実効(182)および資源プライ
オリティ(161)とするステップを含み、資源解放処
理では該プロセスの実効プライオリティをプロセスプラ
イオリティに戻すステップを含む。
Description
【0001】
【産業上の利用分野】本発明は、計算機システムのソフ
トウェアに関し、かつ複数のプロセスから共通にアクセ
スされる資源への排他処理時のプロセスのプライオリテ
ィ制御方式に関する。
トウェアに関し、かつ複数のプロセスから共通にアクセ
スされる資源への排他処理時のプロセスのプライオリテ
ィ制御方式に関する。
【0002】
【従来の技術】複数のプロセスを動作させるオペレーテ
ィングシステム(OS)にとって、プロセス間の同期処
理はOSの基本機能の一つである。この同期処理の方法
としては、Dijkstraの考案したセマフォアを使
ったP,V操作がよく知られている(亀田著「オペレー
ティングシステムの基礎」、昭晃堂、昭和60年2月、
など)。
ィングシステム(OS)にとって、プロセス間の同期処
理はOSの基本機能の一つである。この同期処理の方法
としては、Dijkstraの考案したセマフォアを使
ったP,V操作がよく知られている(亀田著「オペレー
ティングシステムの基礎」、昭晃堂、昭和60年2月、
など)。
【0003】二つの基本命令P(S)とV(S)とが、
セマフォア(semaphore)Sに対して次のよう
な操作をする。すなわち、P(S)、V(S)というス
ーパーバイザコールにより、割込み処理プログラムの中
で次の処理が行われる(当然その間は割込み禁止状態で
ある)。 P(S)の処理: S=S−1; if(S<0)then @wait(カレントプロセ
ス); return; すなわち、Sの値を一つ減らす。もし、Sが負でなけれ
ば、現プロセスを実行可能状態にする。もし、Sが負な
ら、現プロセスを停止状態にし、Sにおけるプロセス待
ち行列につける。 V(S)の処理: S=S+1; if(S≦0)then @post(待ちキューの先
頭プロセス); return; すなわち、V(S)の処理は資源開放の宣言であり、S
の値を一つ増やす。もし、Sが正でないなら(待ちプロ
セスの存在を意味する)、Sにおけるプロセス待ち行列
から一つのプロセスを選び実行可能状態にする。
セマフォア(semaphore)Sに対して次のよう
な操作をする。すなわち、P(S)、V(S)というス
ーパーバイザコールにより、割込み処理プログラムの中
で次の処理が行われる(当然その間は割込み禁止状態で
ある)。 P(S)の処理: S=S−1; if(S<0)then @wait(カレントプロセ
ス); return; すなわち、Sの値を一つ減らす。もし、Sが負でなけれ
ば、現プロセスを実行可能状態にする。もし、Sが負な
ら、現プロセスを停止状態にし、Sにおけるプロセス待
ち行列につける。 V(S)の処理: S=S+1; if(S≦0)then @post(待ちキューの先
頭プロセス); return; すなわち、V(S)の処理は資源開放の宣言であり、S
の値を一つ増やす。もし、Sが正でないなら(待ちプロ
セスの存在を意味する)、Sにおけるプロセス待ち行列
から一つのプロセスを選び実行可能状態にする。
【0004】ここでSはセマフォア値で同時アクセス可
能な資源数を意味し、@waitは指定プロセスを待ち
状態におくシステムコールであり、@postは指定プ
ロセスを待ち状態から解放して@waitの次のステッ
プに制御を戻すシステムコールである。このP、V操作
を使った排他資源へのアクセスを含むプロセス処理は次
のようになる。
能な資源数を意味し、@waitは指定プロセスを待ち
状態におくシステムコールであり、@postは指定プ
ロセスを待ち状態から解放して@waitの次のステッ
プに制御を戻すシステムコールである。このP、V操作
を使った排他資源へのアクセスを含むプロセス処理は次
のようになる。
【0005】プロセス処理: 先頭:P(S); クリティカルセクションの処理; V(S); ノンクリティカルセクションの処理; 先頭に戻る; このクリティカルセクション(CS)処理が、排他制御
が必要な共通資源へのアクセス処理であり、ノンクリテ
ィカルセクション(NCS)処理は排他制御を必要とし
ないプロセス個別の処理である。つまりP操作でCS処
理への入り口を閉じ他プロセスの入場を拒み、処理終了
後、V操作で入り口を開くことになる。これにより、複
数プロセスで上記プロセス処理を並列実行した場合の同
期の保証を得ることができる。
が必要な共通資源へのアクセス処理であり、ノンクリテ
ィカルセクション(NCS)処理は排他制御を必要とし
ないプロセス個別の処理である。つまりP操作でCS処
理への入り口を閉じ他プロセスの入場を拒み、処理終了
後、V操作で入り口を開くことになる。これにより、複
数プロセスで上記プロセス処理を並列実行した場合の同
期の保証を得ることができる。
【0006】一例として、プロセスA、B、CがCS処
理を実行する場合について説明する。 プロセスAがC
PU使用権を得て排他制御が必要な共通資源ZへのCS
処理を実行する場合、まず、P(S)処理が行われ、当
初Sが“1”であるとすると、S=S−1の結果が負で
はないのでプロセスAは実行可能状態になり、実行を行
う。この実行が終了するまでにプロセススイッチ(CP
U使用権を他のプロセスに切り換え移す)が起こらなけ
れば、CS処理が終了するとV(S)処理が行われ、S
=S+1の結果は“1”であり、待ちプロセスがないこ
とを示しており、他のプロセスへのCS処理の許可はな
されない。プロセスAのCS処理実行中にプロセススイ
ッチが起これば、プロセスBにCPU使用権が移り、プ
ロセスAは資源を確保したままCPUスケジューリング
待ち(CPU使用権待ち)となる。プロセスBも共通資
源ZへのCS処理を行う場合はP(S)処理が行われ、
S=S−1の結果は“−1”であるから負であり、プロ
セスBは待ち状態になる。次いで、プロセスCがCPU
使用権を得て、共通資源ZへのCS処理を行う場合はP
(S)処理が行われ、S=S−1の結果は“−2”であ
るから負であり、プロセスCも待ち状態になる。再びプ
ロセスAがCPU使用権を得て、中断されたCS処理を
再開して処理を終了すると、V(S)処理が行われ、S
=S+1の結果は“−1”であり、待ちプロセスがある
ことを示しており、プロセスBのCS処理を実行可能状
態にする。 プロセスBがCPU使用権を得られ、CS
処理を実行し、終了すれば、V(S)処理が行われ、S
=S+1の結果は“0”であり、待ちプロセスがあるこ
とを示しており、プロセスCのCS処理を実行可能状態
にする。
理を実行する場合について説明する。 プロセスAがC
PU使用権を得て排他制御が必要な共通資源ZへのCS
処理を実行する場合、まず、P(S)処理が行われ、当
初Sが“1”であるとすると、S=S−1の結果が負で
はないのでプロセスAは実行可能状態になり、実行を行
う。この実行が終了するまでにプロセススイッチ(CP
U使用権を他のプロセスに切り換え移す)が起こらなけ
れば、CS処理が終了するとV(S)処理が行われ、S
=S+1の結果は“1”であり、待ちプロセスがないこ
とを示しており、他のプロセスへのCS処理の許可はな
されない。プロセスAのCS処理実行中にプロセススイ
ッチが起これば、プロセスBにCPU使用権が移り、プ
ロセスAは資源を確保したままCPUスケジューリング
待ち(CPU使用権待ち)となる。プロセスBも共通資
源ZへのCS処理を行う場合はP(S)処理が行われ、
S=S−1の結果は“−1”であるから負であり、プロ
セスBは待ち状態になる。次いで、プロセスCがCPU
使用権を得て、共通資源ZへのCS処理を行う場合はP
(S)処理が行われ、S=S−1の結果は“−2”であ
るから負であり、プロセスCも待ち状態になる。再びプ
ロセスAがCPU使用権を得て、中断されたCS処理を
再開して処理を終了すると、V(S)処理が行われ、S
=S+1の結果は“−1”であり、待ちプロセスがある
ことを示しており、プロセスBのCS処理を実行可能状
態にする。 プロセスBがCPU使用権を得られ、CS
処理を実行し、終了すれば、V(S)処理が行われ、S
=S+1の結果は“0”であり、待ちプロセスがあるこ
とを示しており、プロセスCのCS処理を実行可能状態
にする。
【0007】一方、このセマフォア方式適用時の問題点
としては、CS処理中のプロセススイッチがある。たと
えばデータの一括管理を行うデータベース(DB)管理
プログラムでは、ユーザプロセスからの要求で動きプロ
セス共通の資源である制御表をアクセスするための排他
制御を行う。この要求処理は、ユーザプロセスの延長で
動いているため割込みマスクは開いており、タイマやI
/O割込みなどが起因となってCS処理内でプロセスス
イッチを起こす可能性を持つ。このCS処理内のプロセ
ススイッチは、資源を占有したままのプロセス切り換え
のため、不当な長時間の資源占有となり資源待ちキュー
内のプロセス数の増加を引き起し、更にCS処理後のV
操作で待ち状態のプロセスをpostしても、post
されたプロセスはすぐにCPU使用権が得られて実行状
態に入るとは限らず、資源を確保したまま(上記セマフ
ォア方式ではFIFOの要求順サービスが守られるた
め)CPUスケジューリング待ちという資源の不当占有
が発生する。
としては、CS処理中のプロセススイッチがある。たと
えばデータの一括管理を行うデータベース(DB)管理
プログラムでは、ユーザプロセスからの要求で動きプロ
セス共通の資源である制御表をアクセスするための排他
制御を行う。この要求処理は、ユーザプロセスの延長で
動いているため割込みマスクは開いており、タイマやI
/O割込みなどが起因となってCS処理内でプロセスス
イッチを起こす可能性を持つ。このCS処理内のプロセ
ススイッチは、資源を占有したままのプロセス切り換え
のため、不当な長時間の資源占有となり資源待ちキュー
内のプロセス数の増加を引き起し、更にCS処理後のV
操作で待ち状態のプロセスをpostしても、post
されたプロセスはすぐにCPU使用権が得られて実行状
態に入るとは限らず、資源を確保したまま(上記セマフ
ォア方式ではFIFOの要求順サービスが守られるた
め)CPUスケジューリング待ちという資源の不当占有
が発生する。
【0008】この問題を解決する一手法としてCS処理
期間はこのプロセスのプライオリティを上げ、割込みが
発生してもプロセススイッチをなるべく起こさせない方
式が考えられ、その公知例として特開昭62−6513
7が開示されている(図2)。この方式では、プロセス
(図2ではユーザ21として記載)からの資源の要求処
理で、排他制御部22は資源23を調べ、すでに他のプ
ロセスがその資源を占有している場合には、要求元のプ
ロセスのプライオリティと占有プロセスのプライオリテ
ィを比較し、占有プロセスのプライオリティをどちらか
高い方に上げるという方式である。
期間はこのプロセスのプライオリティを上げ、割込みが
発生してもプロセススイッチをなるべく起こさせない方
式が考えられ、その公知例として特開昭62−6513
7が開示されている(図2)。この方式では、プロセス
(図2ではユーザ21として記載)からの資源の要求処
理で、排他制御部22は資源23を調べ、すでに他のプ
ロセスがその資源を占有している場合には、要求元のプ
ロセスのプライオリティと占有プロセスのプライオリテ
ィを比較し、占有プロセスのプライオリティをどちらか
高い方に上げるという方式である。
【0009】しかし本方式では次のような問題点があ
る。 (1)資源要求のつど、プライオリティの比較処理を必
要とする。 (2)自プロセスから他プロセスのプライオリティを変
更するため、記憶保護の観点よりプライオリティ操作は
カーネル部で行なわなければならず、そのカーネルとの
切り換えオーバーヘッドが生じる。 (3)本公知例では説明されていないが、資源の解放処
理時にも次に資源を握るプロセスに対するプライオリテ
ィ操作が必要となる。これを図3で説明すると、プロセ
スA,B,Cの各プロセスにプライオリティ31が与え
られているとし、その値(1、0、2)の大きい方がプ
ライオリティが高いとする。そして波線がCS処理だと
すると、プロセスAのCS処理の最初32aではプライ
オリティ1で動いているが、プロセスBからのP操作で
はプロセスAの方がプライオリティが高いため変化せ
ず、プロセスCがP操作を要求した時にプライオリティ
2に変更される。そして、その後の処理33aはプライ
オリティ2で動作する。そして資源の解放時にはFIF
Oの原則から、待ちキューの先頭プロセスであるプロセ
スBに制御を渡すがこのプロセスBのプライオリティを
0でなく待ちキュー内の最大プライオリティ2にするに
はキュー制御部24内の待ちキュー25を更にサーチし
最大プライオリティを求めるという、資源の解放処理に
おいてもプライオリティ操作が必要となる。
る。 (1)資源要求のつど、プライオリティの比較処理を必
要とする。 (2)自プロセスから他プロセスのプライオリティを変
更するため、記憶保護の観点よりプライオリティ操作は
カーネル部で行なわなければならず、そのカーネルとの
切り換えオーバーヘッドが生じる。 (3)本公知例では説明されていないが、資源の解放処
理時にも次に資源を握るプロセスに対するプライオリテ
ィ操作が必要となる。これを図3で説明すると、プロセ
スA,B,Cの各プロセスにプライオリティ31が与え
られているとし、その値(1、0、2)の大きい方がプ
ライオリティが高いとする。そして波線がCS処理だと
すると、プロセスAのCS処理の最初32aではプライ
オリティ1で動いているが、プロセスBからのP操作で
はプロセスAの方がプライオリティが高いため変化せ
ず、プロセスCがP操作を要求した時にプライオリティ
2に変更される。そして、その後の処理33aはプライ
オリティ2で動作する。そして資源の解放時にはFIF
Oの原則から、待ちキューの先頭プロセスであるプロセ
スBに制御を渡すがこのプロセスBのプライオリティを
0でなく待ちキュー内の最大プライオリティ2にするに
はキュー制御部24内の待ちキュー25を更にサーチし
最大プライオリティを求めるという、資源の解放処理に
おいてもプライオリティ操作が必要となる。
【0010】
【発明が解決しようとする課題】上記のごとく、複数プ
ロセスからアクセスされる資源の排他制御において、従
来方式では資源の使用でぶつかりが発生するたびに、資
源要求プロセスと資源保有プロセス両者のプライオリテ
ィ比較を行い、場合により保有プロセスのプライオリテ
ィ変更を行うためのシステムコール処理など行ってい
た。そのため、並列プロセス数が増加すると、排他制御
処理部の処理時間を増加させるという問題があった。
ロセスからアクセスされる資源の排他制御において、従
来方式では資源の使用でぶつかりが発生するたびに、資
源要求プロセスと資源保有プロセス両者のプライオリテ
ィ比較を行い、場合により保有プロセスのプライオリテ
ィ変更を行うためのシステムコール処理など行ってい
た。そのため、並列プロセス数が増加すると、排他制御
処理部の処理時間を増加させるという問題があった。
【0011】本発明は、上記の問題を解決することを目
的としている。
的としている。
【0012】
【課題を解決するための手段】図1に本発明の原理構成
を示す。図1の構成要素を図2の従来技術のものと簡単
に対比する。プロセス群11は、資源の確保要求を出す
プロセスであり、図2のユーザ21に相当する。排他制
御部12は、図2の排他制御部22に相当するが、従来
技術で述べたようにP,V操作を行うものとする。P,
V操作により発行される@waitや@postのシス
テムコールはOSカーネル部の待ちキュー制御部13で
処理され、要求元プロセスの実行を抑止したり、待ち状
態のプロセスを実行可能状態にし、CPUスケジューラ
14でCPUのディスパッチングを行う。この待ちキュ
ー制御部13は図2のキュー制御部24に相当するが、
CPUスケジューラ14は図2には含まれていない。図
2のキュー制御部24内の資源23と利用者26および
要求者プロセス25を、図1ではメモリ15内に配置さ
れた管理テーブルとして表しており、資源23が資源管
理テーブル16に相当し、使用中のユーザプロセス26
がプロセス管理テーブル18aに相当し、要求者キュー
のプロセス群25が資源待ちプロセスキュー内のプロセ
ス18b,18cに相当する。プロセス管理テーブル1
8は、要求元プロセス11のメモリ上の実体である。
を示す。図1の構成要素を図2の従来技術のものと簡単
に対比する。プロセス群11は、資源の確保要求を出す
プロセスであり、図2のユーザ21に相当する。排他制
御部12は、図2の排他制御部22に相当するが、従来
技術で述べたようにP,V操作を行うものとする。P,
V操作により発行される@waitや@postのシス
テムコールはOSカーネル部の待ちキュー制御部13で
処理され、要求元プロセスの実行を抑止したり、待ち状
態のプロセスを実行可能状態にし、CPUスケジューラ
14でCPUのディスパッチングを行う。この待ちキュ
ー制御部13は図2のキュー制御部24に相当するが、
CPUスケジューラ14は図2には含まれていない。図
2のキュー制御部24内の資源23と利用者26および
要求者プロセス25を、図1ではメモリ15内に配置さ
れた管理テーブルとして表しており、資源23が資源管
理テーブル16に相当し、使用中のユーザプロセス26
がプロセス管理テーブル18aに相当し、要求者キュー
のプロセス群25が資源待ちプロセスキュー内のプロセ
ス18b,18cに相当する。プロセス管理テーブル1
8は、要求元プロセス11のメモリ上の実体である。
【0013】本発明では以下の手段を設けている。これ
により本発明は従来技術とは相違する。 (1)本発明では資源管理テーブル16内に資源プライ
オリティ(初期値は0または最低プライオリティ)の格
納域161を設け、更に排他制御部12には、(2)資
源の占有が確定した時点(要求時に資源が空いている、
または資源待ち状態から解除された時点)で、該資源プ
ライオリティと資源占有プロセス(自プロセス)のプロ
セス(基本)プライオリティ181を比較し、高い方の
プライオリティを実効プライオリティ182および新た
な資源プライオリティとするステップと、(3)資源の
解放時点(V操作)には、実効プライオリティを元のプ
ロセスプライオリティに戻すステップを備える。これに
より、従来資源要求元プロセスから資源要求時に図2の
優先制御部で行われていた資源占有プロセスのプライオ
リティ操作を、本発明では資源占有プロセスが資源を受
け取った時に排他制御部により自らのプライオリティ
を、過去の該資源にアクセスしたプロセスの最高プライ
オリティにすることができ、他プロセスのプライオリテ
ィ変更といった記憶保護の問題も起きず、さらにCS処
理に入ってから発生する従来のプライオリティ操作処理
(図3の34)を省くことができる。
により本発明は従来技術とは相違する。 (1)本発明では資源管理テーブル16内に資源プライ
オリティ(初期値は0または最低プライオリティ)の格
納域161を設け、更に排他制御部12には、(2)資
源の占有が確定した時点(要求時に資源が空いている、
または資源待ち状態から解除された時点)で、該資源プ
ライオリティと資源占有プロセス(自プロセス)のプロ
セス(基本)プライオリティ181を比較し、高い方の
プライオリティを実効プライオリティ182および新た
な資源プライオリティとするステップと、(3)資源の
解放時点(V操作)には、実効プライオリティを元のプ
ロセスプライオリティに戻すステップを備える。これに
より、従来資源要求元プロセスから資源要求時に図2の
優先制御部で行われていた資源占有プロセスのプライオ
リティ操作を、本発明では資源占有プロセスが資源を受
け取った時に排他制御部により自らのプライオリティ
を、過去の該資源にアクセスしたプロセスの最高プライ
オリティにすることができ、他プロセスのプライオリテ
ィ変更といった記憶保護の問題も起きず、さらにCS処
理に入ってから発生する従来のプライオリティ操作処理
(図3の34)を省くことができる。
【0014】また、さらに(4)資源管理テーブル16
中に、該資源に与えうる最高プライオリティの領域16
2を設け、(5)資源占有処理の終了時(V操作時)
に、該資源プライオリティ161を最高プライオリティ
162の範囲内に収めるステップを上記排他制御部12
に設けることにより、無制限に資源プライオリティ16
1が増加していくことを抑えることができる。
中に、該資源に与えうる最高プライオリティの領域16
2を設け、(5)資源占有処理の終了時(V操作時)
に、該資源プライオリティ161を最高プライオリティ
162の範囲内に収めるステップを上記排他制御部12
に設けることにより、無制限に資源プライオリティ16
1が増加していくことを抑えることができる。
【0015】
【作用】上記手段の(1)は、過去(システムが起動さ
れて)から現在までの該資源へのアクセスを行ったプロ
セスの最高プライオリティを資源プライオリティとして
保持するためのものであり、上記手段(2)のステップ
でこの最高プライオリティを資源を占有したプロセスの
プライオリティにすることで資源占有中のプロセスプラ
イオリティを上げることができる。さらに、上記手段
(3)のステップで、プロセスのプライオリティを元に
戻すことができる。また(2)のステップでプロセスの
プライオリティが資源プライオリティより大きい場合
は、資源プライオリティをプロセスプライオリティの値
に変更するため、資源プライオリティは常に過去のアク
セスの最高プライオリティを保持することができる。ま
た、上記手段の(4)では、資源毎に資源最高プライオ
リティを保持する手段を与え、上記手段の(5)でプロ
セスプライオリティの引下げ時、同時に資源プライオリ
ティも資源最高プライオリティの値に引下げることで、
該資源をアクセスするプロセスがむやみに最高位のプラ
イオリティにならないように制御することができる。
れて)から現在までの該資源へのアクセスを行ったプロ
セスの最高プライオリティを資源プライオリティとして
保持するためのものであり、上記手段(2)のステップ
でこの最高プライオリティを資源を占有したプロセスの
プライオリティにすることで資源占有中のプロセスプラ
イオリティを上げることができる。さらに、上記手段
(3)のステップで、プロセスのプライオリティを元に
戻すことができる。また(2)のステップでプロセスの
プライオリティが資源プライオリティより大きい場合
は、資源プライオリティをプロセスプライオリティの値
に変更するため、資源プライオリティは常に過去のアク
セスの最高プライオリティを保持することができる。ま
た、上記手段の(4)では、資源毎に資源最高プライオ
リティを保持する手段を与え、上記手段の(5)でプロ
セスプライオリティの引下げ時、同時に資源プライオリ
ティも資源最高プライオリティの値に引下げることで、
該資源をアクセスするプロセスがむやみに最高位のプラ
イオリティにならないように制御することができる。
【0016】
【実施例】以下、実施例により説明する。図1に本発明
の原理構成を示す。プロセス群11は、資源の確保要求
を出すプロセスであり、排他制御部12は、従来技術で
述べたようにP,V操作を行うものとする。P,V操作
により発行される@waitや@postのシステムコ
ールはOSカーネル部の待ちキュー制御部13で処理さ
れ、要求元プロセスの実行を抑止したり、待ち状態のプ
ロセスを実行可能状態にし、CPUスケジューラ14で
CPUのディスパッチングを行う。
の原理構成を示す。プロセス群11は、資源の確保要求
を出すプロセスであり、排他制御部12は、従来技術で
述べたようにP,V操作を行うものとする。P,V操作
により発行される@waitや@postのシステムコ
ールはOSカーネル部の待ちキュー制御部13で処理さ
れ、要求元プロセスの実行を抑止したり、待ち状態のプ
ロセスを実行可能状態にし、CPUスケジューラ14で
CPUのディスパッチングを行う。
【0017】メモリ15には資源管理テーブル(RC
B)16およびプロセス管理テーブル18(18a、1
8b、18c)が格納されている。プロセス管理テーブ
ルは、ローディングされたプロセスについてOSのプロ
セス生成部により作成され、メモリ15に格納される。
B)16およびプロセス管理テーブル18(18a、1
8b、18c)が格納されている。プロセス管理テーブ
ルは、ローディングされたプロセスについてOSのプロ
セス生成部により作成され、メモリ15に格納される。
【0018】待ちキュー制御部13は、待ち状態に入っ
たプロセスのプロセス管理テーブルを資源待ちプロセス
キューに入れ、資源待ちキューポインタを付与し、ま
た、待ち状態から実行可能状態に移ったプロセスのプロ
セス管理テーブルを資源占有状態にし、アクティブプロ
セスポインタを付与する。
たプロセスのプロセス管理テーブルを資源待ちプロセス
キューに入れ、資源待ちキューポインタを付与し、ま
た、待ち状態から実行可能状態に移ったプロセスのプロ
セス管理テーブルを資源占有状態にし、アクティブプロ
セスポインタを付与する。
【0019】資源管理テーブル16には資源プライオリ
ティの格納域161および該資源に与えうる最高プライ
オリティである資源最高プライオリティの領域162を
設け、プロセス管理テーブル18にはプロセスプライオ
リティの格納域181および実効プライオリティの格納
域182を設ける。
ティの格納域161および該資源に与えうる最高プライ
オリティである資源最高プライオリティの領域162を
設け、プロセス管理テーブル18にはプロセスプライオ
リティの格納域181および実効プライオリティの格納
域182を設ける。
【0020】図4は、図1の資源管理テーブル(RC
B)16とプロセス管理テーブル(PCB)18の関係
を詳述したものである。資源管理テーブル16は、少な
くとも以下の領域を備えている。 (1)資源プライオリティ161:該資源にアクセスし
たプロセスの過去最高のプライオリティ。初期値はゼロ
または最低プライオリティ。 (2)アクティブプロセスポインタ163:現在資源を
保有しているプロセス(プロセス管理テーブル)へのポ
インタ。 (3)資源待ちキューポインタ164:資源待ちのプロ
セスがキューイングされているところの先頭プロセスへ
のポインタ。更に請求項2に記載した資源別の最高プラ
イオリティ制御を行うには、以下の領域を用いる。 (4)資源最高プライオリティ162:該資源に与える
最高プライオリティを指定し、この指定がある場合には
上記の資源プライオリティ161の値は、プロセスの最
高プライオリティでなく、該資源最高プライオリティに
抑えることができる。これは、例えば一つのデータベー
ス資源へのアクセスにおいて、アプリケーションプロセ
ス別に1〜10のプライオリティが設けられており、そ
れ以外にシステム管理のためのプライオリティ15のD
B制御プロセスが存在するとする。この時、該資源最高
プライオリティを10にセットしておくことで、プライ
オリティ15で動いていたDB制御プロセス処理の終了
時には、資源プライオリティを15でなく10に戻すこ
とでき、プロセスプライオリティのむやみな増加を抑え
ることができる。
B)16とプロセス管理テーブル(PCB)18の関係
を詳述したものである。資源管理テーブル16は、少な
くとも以下の領域を備えている。 (1)資源プライオリティ161:該資源にアクセスし
たプロセスの過去最高のプライオリティ。初期値はゼロ
または最低プライオリティ。 (2)アクティブプロセスポインタ163:現在資源を
保有しているプロセス(プロセス管理テーブル)へのポ
インタ。 (3)資源待ちキューポインタ164:資源待ちのプロ
セスがキューイングされているところの先頭プロセスへ
のポインタ。更に請求項2に記載した資源別の最高プラ
イオリティ制御を行うには、以下の領域を用いる。 (4)資源最高プライオリティ162:該資源に与える
最高プライオリティを指定し、この指定がある場合には
上記の資源プライオリティ161の値は、プロセスの最
高プライオリティでなく、該資源最高プライオリティに
抑えることができる。これは、例えば一つのデータベー
ス資源へのアクセスにおいて、アプリケーションプロセ
ス別に1〜10のプライオリティが設けられており、そ
れ以外にシステム管理のためのプライオリティ15のD
B制御プロセスが存在するとする。この時、該資源最高
プライオリティを10にセットしておくことで、プライ
オリティ15で動いていたDB制御プロセス処理の終了
時には、資源プライオリティを15でなく10に戻すこ
とでき、プロセスプライオリティのむやみな増加を抑え
ることができる。
【0021】また、各プロセス(プロセス管理テーブル
PCB)には、通常のプロセス(基本)プライオリティ
181と実行時に使われる実効プライオリティ182を
持ち、180はポインタである。図4では、プロセス1
8aが資源を占有している状態にあり、プロセス18
b、18cが待ち状態にある。この時の資源プライオリ
ティを’5’とすると、資源占有プロセス18aの実効
プライオリティは’5’になる。該プロセス18aの処
理が終了すると、実効プライオリティは’5’はプロセ
スプライオリティの4に戻される。そして待ち状態の先
頭プロセス18bが資源占有プロセスになる。この時プ
ロセス18bのプロセスプライオリティの値と同じであ
る実効プライオリティは’3’から’5’になり、資源
の占有が終了すると’3’に戻される。更に、次のプロ
セス18cが資源を受け取ると、このプロセスのプロセ
スプライオリティは’7’で資源プライオリティ’5’
より高いため、’7’が新しい資源プライオリティにな
り、プロセス18cの実効プライオリティは’7’にな
る。
PCB)には、通常のプロセス(基本)プライオリティ
181と実行時に使われる実効プライオリティ182を
持ち、180はポインタである。図4では、プロセス1
8aが資源を占有している状態にあり、プロセス18
b、18cが待ち状態にある。この時の資源プライオリ
ティを’5’とすると、資源占有プロセス18aの実効
プライオリティは’5’になる。該プロセス18aの処
理が終了すると、実効プライオリティは’5’はプロセ
スプライオリティの4に戻される。そして待ち状態の先
頭プロセス18bが資源占有プロセスになる。この時プ
ロセス18bのプロセスプライオリティの値と同じであ
る実効プライオリティは’3’から’5’になり、資源
の占有が終了すると’3’に戻される。更に、次のプロ
セス18cが資源を受け取ると、このプロセスのプロセ
スプライオリティは’7’で資源プライオリティ’5’
より高いため、’7’が新しい資源プライオリティにな
り、プロセス18cの実効プライオリティは’7’にな
る。
【0022】従来方式では、プロセスが資源を取りにい
く時に、プライオリティ操作を行うため、図4の状況で
はプロセス18cが資源待ちキューにキューイングされ
る時に、資源占有プロセス18aの実効プライオリティ
が’7’に更新されることになる。本発明では、プロセ
スが資源を占有したときにプライオリティ操作を行うた
め、他のプロセスに影響を与える必要がないし、資源要
求のたびにプライオリティ操作を行う必要がない。
く時に、プライオリティ操作を行うため、図4の状況で
はプロセス18cが資源待ちキューにキューイングされ
る時に、資源占有プロセス18aの実効プライオリティ
が’7’に更新されることになる。本発明では、プロセ
スが資源を占有したときにプライオリティ操作を行うた
め、他のプロセスに影響を与える必要がないし、資源要
求のたびにプライオリティ操作を行う必要がない。
【0023】以下、本発明の排他制御部12の処理を図
5と図6で説明する。図5はP操作の処理概要であり、
ステップ51、52、53、54は従来技術のP操作で
あり、ステップ55に制御が渡って来た時には、資源は
該プロセスに占有されている状態である。このステップ
55では、自プロセスのプロセスプライオリティ181
と資源プライオリティ161を比較し(’:’は比較を
意味する)、プロセスプライオリティが高ければ、該プ
ロセスプライオリティを資源プライオリティとし(ステ
ップ56)、そして資源プライオリティ161を実効プ
ライオリティ182にセットする(ステップ57)。ス
テップ55で資源プライオリティの方が高ければ、その
まま資源プライオリティを実効プライオリティにする。
そしてP操作を終了する。これにより、実行中のプロセ
スの実効プライオリティ182は、過去に該資源にアク
セスしたプロセスの最高のプライオリティが与えられ
る。
5と図6で説明する。図5はP操作の処理概要であり、
ステップ51、52、53、54は従来技術のP操作で
あり、ステップ55に制御が渡って来た時には、資源は
該プロセスに占有されている状態である。このステップ
55では、自プロセスのプロセスプライオリティ181
と資源プライオリティ161を比較し(’:’は比較を
意味する)、プロセスプライオリティが高ければ、該プ
ロセスプライオリティを資源プライオリティとし(ステ
ップ56)、そして資源プライオリティ161を実効プ
ライオリティ182にセットする(ステップ57)。ス
テップ55で資源プライオリティの方が高ければ、その
まま資源プライオリティを実効プライオリティにする。
そしてP操作を終了する。これにより、実行中のプロセ
スの実効プライオリティ182は、過去に該資源にアク
セスしたプロセスの最高のプライオリティが与えられ
る。
【0024】また、ステップ53でプロセスが待ち状態
にされると、P操作処理は中断される。そして、V操作
処理により待ち状態にある先頭のプロセスが待ち状態か
ら解放されると、P操作処理は、wait解除により処
理を再開し、待ち状態から解放されたプロセスに対する
ステップ55以降のプライオリティ処理を行なう。
にされると、P操作処理は中断される。そして、V操作
処理により待ち状態にある先頭のプロセスが待ち状態か
ら解放されると、P操作処理は、wait解除により処
理を再開し、待ち状態から解放されたプロセスに対する
ステップ55以降のプライオリティ処理を行なう。
【0025】次にV操作の処理を図6に示す。V操作で
はステップ62、63、64、65が従来のV操作処理
と同じであり、これらの処理の前に実効プライオリティ
を戻す処理(ステップ61)が加わる。これにより、排
他資源の利用が終わった時にプロセスのプライオリティ
を戻す事が出来る。
はステップ62、63、64、65が従来のV操作処理
と同じであり、これらの処理の前に実効プライオリティ
を戻す処理(ステップ61)が加わる。これにより、排
他資源の利用が終わった時にプロセスのプライオリティ
を戻す事が出来る。
【0026】次に、第二の実施例として、資源別の最高
プライオリティ制御を行う場合のV操作処理を図7に示
す。この場合、P操作処理は図5と同じである。図7の
ステップ61で資源占有プロセスの実効プライオリティ
を戻すと、次に該資源の資源プライオリティをチェック
(ステップ71)し、該資源プライオリティが資源最高
プライオリティより高ければ、該資源最高プライオリテ
ィを資源プライオリティにセットする(ステップ7
2)。これによりアクセスしたプロセスのプライオリテ
ィにより増加していく資源プライオリティの上限を抑止
することができる。以下のステップ62、63、64、
65は従来のV操作処理と同じである。
プライオリティ制御を行う場合のV操作処理を図7に示
す。この場合、P操作処理は図5と同じである。図7の
ステップ61で資源占有プロセスの実効プライオリティ
を戻すと、次に該資源の資源プライオリティをチェック
(ステップ71)し、該資源プライオリティが資源最高
プライオリティより高ければ、該資源最高プライオリテ
ィを資源プライオリティにセットする(ステップ7
2)。これによりアクセスしたプロセスのプライオリテ
ィにより増加していく資源プライオリティの上限を抑止
することができる。以下のステップ62、63、64、
65は従来のV操作処理と同じである。
【0027】また、図5、6、7におけるプライオリテ
ィ操作処理(ステップ55、56、57、61、71、
72)は従来のP,V操作にはさまれた処理となるた
め、プライオリティ変更に伴う資源管理テーブル16へ
のアクセスはシリアライズされることが保証される。
ィ操作処理(ステップ55、56、57、61、71、
72)は従来のP,V操作にはさまれた処理となるた
め、プライオリティ変更に伴う資源管理テーブル16へ
のアクセスはシリアライズされることが保証される。
【0028】
【発明の効果】以上のように本発明の適用により、プロ
セスの共有資源を排他使用する上で行われていた資源占
有プロセスのプライオリティ操作を、従来方式のように
資源要求プロセスからの資源要求時に行なうのではな
く、資源要求プロセスが資源を確保した段階行なうよう
にしたため、プライオリティ操作の余分な処理(資源要
求毎のプライオリティ操作と、相手プロセスのプライオ
リティ変更処理に必要なシステムコール処理)を省く事
が出来、資源待ちプロセスの増加時には、資源排他制御
部の処理を効果的に削減できる。
セスの共有資源を排他使用する上で行われていた資源占
有プロセスのプライオリティ操作を、従来方式のように
資源要求プロセスからの資源要求時に行なうのではな
く、資源要求プロセスが資源を確保した段階行なうよう
にしたため、プライオリティ操作の余分な処理(資源要
求毎のプライオリティ操作と、相手プロセスのプライオ
リティ変更処理に必要なシステムコール処理)を省く事
が出来、資源待ちプロセスの増加時には、資源排他制御
部の処理を効果的に削減できる。
【図1】本発明の構成を示す図である。
【図2】従来技術の構成を示す図である。
【図3】従来技術でのプライオリティ操作の例を示す図
である。
である。
【図4】本発明における資源管理テーブルとプロセス管
理テーブルの関連を示す図である。
理テーブルの関連を示す図である。
【図5】排他資源の確保処理のフローチャートを示す図
である。
である。
【図6】排他資源の解放処理のフローチャートを示す図
である。
である。
【図7】資源最高プライオリティ操作を行った時の排他
資源の解放処理のフローチャートを示す図である。
資源の解放処理のフローチャートを示す図である。
11 プロセス群 12 排他制御部 13 待ちキュー制御部 14 CPUスケジューラ 15 メモリ 16 資源管理テーブル 161 資源プライオリティ 162 資源最高プライオリティ 163 アクティブプロセスポインタ 164 資源待ちキューポインタ 17 資源待ちプロセスキュー 18 プロセス管理テーブル 180 ポインタ 181 プロセスプライオリティ 182 プロセスの実効プライオリティ
Claims (2)
- 【請求項1】 プロセスにより排他的に利用される共通
資源の占有を、CPUのスケジューリング・プライオリ
ティとしてユーザまたはシステム管理者が指定したプロ
セスプライオリティを有する1以上のプロセスの内の1
つのプロセスに対して、可能とする制御を行なう排他制
御部と、該排他制御部の指示によりプロセスの資源待ち
キューを管理する待ちキュー制御部を備えた計算機シス
テムにおけるプロセスのプライオリティ制御方式であっ
て、 資源プライオリティ領域を有する資源管理テーブルと、
各プロセスごとに用意されプロセスプライオリティ領域
と実効プライオリティ領域を有するプロセス管理テーブ
ルを記憶する記憶装置を備え、 前記排他制御部および待ちキュー制御部の制御の下に資
源占有状態になったプロセスが特定されたとき、前記排
他制御部は、該特定されたプロセスの前記記憶装置上の
プロセス管理テーブルのプロセスプライオリティ領域の
値と前記資源管理テーブルの資源プライオリティ領域の
値とを比較し、プライオリティの高い方の値を前記資源
管理テーブルの資源プライオリティ領域および前記特定
されたプロセス管理テーブルの実効プライオリティ領域
にセットし、 前記排他制御部および待ちキュー制御部の制御の下に資
源占有状態にあったプロセスが資源解放されたとき、前
記排他制御部は、該資源解放されたプロセスの前記記憶
装置上のプロセス管理テーブルの実効プライオリティ領
域の値をプロセスプライオリティ領域の値で書き換える
よう制御することを特徴とするプロセスのプライオリテ
ィ制御方式。 - 【請求項2】 請求項1記載のプロセスのプライオリテ
ィ制御方式において、前記資源管理テーブルに前記共通
資源をアクセスするプロセスの上限となるプライオリテ
ィを保持する資源最高プライオリティ領域を設け、資源
占有状態にあったプロセスが資源解放されたとき、前記
排他制御部は、前記資源管理テーブルの資源プライオリ
ティ領域の値と資源最高プライオリティ領域の値を比較
し、低い方の値を資源プライオリティ領域の値にするよ
う制御することを特徴とするプロセスのプライオリティ
制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4083290A JPH05250188A (ja) | 1992-03-05 | 1992-03-05 | プロセスのプライオリティ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4083290A JPH05250188A (ja) | 1992-03-05 | 1992-03-05 | プロセスのプライオリティ制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05250188A true JPH05250188A (ja) | 1993-09-28 |
Family
ID=13798264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4083290A Pending JPH05250188A (ja) | 1992-03-05 | 1992-03-05 | プロセスのプライオリティ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05250188A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132410A (ja) * | 1998-10-22 | 2000-05-12 | Internatl Business Mach Corp <Ibm> | 動的及び静的なタスクを扱うためのオペレ―ティング・システムを記録したコンピュ―タ可読媒体 |
JP2000284978A (ja) * | 1999-03-25 | 2000-10-13 | Internatl Business Mach Corp <Ibm> | 共用資源を非同期的に更新するためのインターフェース・システムおよび方法 |
EP2287737A2 (en) | 2009-08-11 | 2011-02-23 | Clarion Co., Ltd. | Data processor and data processing method |
JP2012506597A (ja) * | 2008-10-21 | 2012-03-15 | ラリタン アメリカズ,インコーポレイテッド | 認識可能な電力管理を実現する方法 |
US8671294B2 (en) | 2008-03-07 | 2014-03-11 | Raritan Americas, Inc. | Environmentally cognizant power management |
US8713342B2 (en) | 2008-04-30 | 2014-04-29 | Raritan Americas, Inc. | System and method for efficient association of a power outlet and device |
US8737168B2 (en) | 2008-10-20 | 2014-05-27 | Siva Somasundaram | System and method for automatic determination of the physical location of data center equipment |
US8886985B2 (en) | 2008-07-07 | 2014-11-11 | Raritan Americas, Inc. | Automatic discovery of physical connectivity between power outlets and IT equipment |
-
1992
- 1992-03-05 JP JP4083290A patent/JPH05250188A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132410A (ja) * | 1998-10-22 | 2000-05-12 | Internatl Business Mach Corp <Ibm> | 動的及び静的なタスクを扱うためのオペレ―ティング・システムを記録したコンピュ―タ可読媒体 |
JP2000284978A (ja) * | 1999-03-25 | 2000-10-13 | Internatl Business Mach Corp <Ibm> | 共用資源を非同期的に更新するためのインターフェース・システムおよび方法 |
US8671294B2 (en) | 2008-03-07 | 2014-03-11 | Raritan Americas, Inc. | Environmentally cognizant power management |
US10289184B2 (en) | 2008-03-07 | 2019-05-14 | Sunbird Software, Inc. | Methods of achieving cognizant power management |
US8713342B2 (en) | 2008-04-30 | 2014-04-29 | Raritan Americas, Inc. | System and method for efficient association of a power outlet and device |
US8886985B2 (en) | 2008-07-07 | 2014-11-11 | Raritan Americas, Inc. | Automatic discovery of physical connectivity between power outlets and IT equipment |
US8737168B2 (en) | 2008-10-20 | 2014-05-27 | Siva Somasundaram | System and method for automatic determination of the physical location of data center equipment |
JP2012506597A (ja) * | 2008-10-21 | 2012-03-15 | ラリタン アメリカズ,インコーポレイテッド | 認識可能な電力管理を実現する方法 |
EP2287737A2 (en) | 2009-08-11 | 2011-02-23 | Clarion Co., Ltd. | Data processor and data processing method |
US9176771B2 (en) | 2009-08-11 | 2015-11-03 | Clarion Co., Ltd. | Priority scheduling of threads for applications sharing peripheral devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5469571A (en) | Operating system architecture using multiple priority light weight kernel task based interrupt handling | |
JP2514299B2 (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
US5333319A (en) | Virtual storage data processor with enhanced dispatching priority allocation of CPU resources | |
US5448732A (en) | Multiprocessor system and process synchronization method therefor | |
JPH05250188A (ja) | プロセスのプライオリティ制御方式 | |
JPH0877025A (ja) | タスクの優先度制御方法、タスクの優先度制御装置 | |
JP3005562B1 (ja) | タスク管理装置及びタスクスケジューリング方法 | |
JPH1049388A (ja) | 入出力制御装置 | |
JP2597283B2 (ja) | 割込みにおけるスケジューリング方式 | |
JPH05113887A (ja) | コンピユータシステム | |
JPH07319716A (ja) | 計算機システムの資源の排他制御方式 | |
JPH11327921A (ja) | 計算機システムに於けるスレッド優先度制御装置、及びスレッド優先度制御方法 | |
JPS6351288B2 (ja) | ||
JPS63636A (ja) | タスク制御方式 | |
JPH0612394A (ja) | プロセススケジュール方式 | |
JPH03116261A (ja) | マルチプロセッサ制御方式 | |
JPH06161861A (ja) | ファイル処理制御システム | |
JPH0457022B2 (ja) | ||
JPH064323A (ja) | マルチプロセッサシステム | |
US20030225817A1 (en) | Concurrent execution of kernel work and non-kernel work in operating systems with single-threaded kernel | |
JP2822728B2 (ja) | コンピュータシステム | |
JPS63124138A (ja) | 共有資源の占有競合管理方法 | |
JPH03116335A (ja) | 非特権cpuから特権cpuヘの乗り移り方式 | |
JPH03182945A (ja) | 主記憶内データ転送方式 | |
JPH04223533A (ja) | 共有資源排他制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 9 Free format text: PAYMENT UNTIL: 20080319 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090319 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 10 Free format text: PAYMENT UNTIL: 20090319 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100319 Year of fee payment: 11 |
|
EXPY | Cancellation because of completion of term |