JPH1069392A - プロセスの実行方法 - Google Patents
プロセスの実行方法Info
- Publication number
- JPH1069392A JPH1069392A JP22640496A JP22640496A JPH1069392A JP H1069392 A JPH1069392 A JP H1069392A JP 22640496 A JP22640496 A JP 22640496A JP 22640496 A JP22640496 A JP 22640496A JP H1069392 A JPH1069392 A JP H1069392A
- Authority
- JP
- Japan
- Prior art keywords
- abort
- function
- prohibition
- preemption
- processing
- 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.)
- Granted
Links
Abstract
周期駆動性を損なわずに、共有資源を使用するマルチプ
ロセシングを行うためのプロセス実行方法を提供するこ
とにある。 【解決手段】プロセスは最初にアボート禁止関数21を
用いて自プロセスをアボート禁止にする。その後、プリ
エンプト禁止部30を用いてプリエンプト禁止にし、共
有資源を利用する処理に入る。共有資源に対する処理を
終了したら、直ちにプリエンプト禁止部30を用いてプ
リエンプト可能状態にする。すべての処理が終了したら
最後にアボート禁止解除関数22を使ってアボート禁止
を解除する。アボート禁止中に当該プロセスの強制終了
が発生した場合、アボート禁止が解除されるまでは当該
プロセスの実行を継続し、アボート禁止が解除された後
にプロセスの強制終了処理を実行する。
Description
ペレーティング・システムにおけるプロセスの実行方法
に係り、特に、マルチプロセシング環境を提供するオペ
レーティング・システムにおける共有資源を使用するプ
ロセスの実行方法に関する。
割で並列に実行するマルチプロセシング環境を提供する
オペレーティング・システムでは、プロセス間で共有す
る資源(共有資源)が複数のプロセスに同時に割り当て
られないように排他制御を行ないながらプロセスを実行
する必要がある。この排他制御を実現するために、オペ
レーティング・システム(OS)においてロック制御と
呼ばれる手法が広く使用されている。
有資源が使用中であることを示すフラグを設ける。プロ
セスが共有資源に対する処理を行う際には、このフラグ
が他のプロセスによりセットされているかを調べる。そ
して、他のプロセスによりフラグがセットされた状態で
なければ、このプロセスによりフラグをセットして資源
を占有する(これを「ロック」すると言う)。そして、
この共有資源に対する処理の終了とともにプロセスがフ
ラグをリセットして資源を解放する(これを「アンロッ
ク」すると言う)。一方、他のプロセスによりフラグが
セットされた状態ならば、OSはこの共有資源がアンロ
ックされるまで、このプロセスを待ち状態にする。
プロセス1と優先度の高いプロセス2が存在し、二つの
プロセスが共有する資源Aがあるとする。いま、プロセ
ス1がCPU占有中に共有資源Aをロックし、共有資源A
をロックしたまま休眠状態に入ったとする。この場合、
CPUの使用権が割り当てられたプロセス2が共有資源A
を使用しようとしても、共有資源Aが他のプロセスによ
りロックされているため、プロセス2は共有資源Aを使
用できない。このためプロセス2は、実行継続不能とな
る。
ているロックのために、優先度の高いプロセスが実行継
続不能となることを優先度逆転問題という。従来のオペ
レーティング・システムでは、優先度逆転問題が発生し
た場合は、ロックを取ったまま休眠している優先度の低
いプロセスを最優先で実行させることにより、優先度の
低いプロセスが獲得している資源を解放させ、優先度の
高いプロセスをできるだけ早く実行できるようにしてい
る。
は、動画データなどのデータを処理するプロセスの動作
に周期性が生ずる。この性質を利用したプロセス・スケ
ジューリング方法を特願平8−73673で提供した。
たプロセス・スケジューリング方法に対しても悪影響を
及ぼす。例えば、連続メディア処理を行うプロセス1、
プロセス2が存在し、二つのプロセスの間で共有する資
源Aがあるとする。プロセス1とプロセス2がこの共有
資源Aをロックを使って排他制御する場合、優先度逆転
問題を発生させる可能性があり、発生すればプロセスの
周期駆動性を損なうことになる。
ると、その原因となったロックを持っているプロセスが
最優先にスケジュールされるため、そのロックとは関係
なく連続メディア処理を行っている別のプロセスの周期
駆動性にまで影響を与えることである。
では、優先度逆転問題を回避するために最初から一切ロ
ックを用いずに計算機システムを構築する方法が考えら
れる。そのような計算機システムにおいて排他制御を行
う方法として、共有資源使用中はプロセスにCPUを占有
させる、すなわち、共有資源使用中は他のプロセスがス
ケジューリングされないプロセス制御方法が考えられ
る。これは、特願平8−97997の発明で提供したプ
リエンプト制御方法を使用することで実現可能である。
プリエンプト制御方法とは、実行中プロセスの実行が一
時中断される(これを「プリエンプト」されると言う)
ことを防ぐために「プリエンプト禁止」及び「プリエン
プト禁止解除」のインタフェースを用意し、プリエンプ
ト禁止にされてからプリエンプト禁止が解除されるまで
の間(これを「プリエンプト禁止区間」と呼ぶ)は他の
プロセスのスケジューリング要求が発行されても、実行
中プロセスはプリエンプトされずに実行を続ける方法で
ある。このような制御を行うことによって、共有資源を
使用しているプロセスは常に1個であることが保証でき
るため、排他制御が実現できる。
ロセス走行区間が長時間に渡る場合には他のプロセスの
周期駆動性を損なってしまう。
能な資源をキューイングするフリーリストから資源を取
り出し、これを初期化して、あるプロセスの資源割当て
リストに繋ぐ処理を考える。ここで排他制御が必要な共
有資源となるのは、フリーリストと資源割当てリストで
ある。
けで行う場合、プリエンプト禁止区間は「フリーリスト
に触る前」から「資源割当てリストに資源を繋ぎおわ
る」まで設定する必要がある。すなわち、 (1)プリエンプト禁止の設定を行う (2)フリーリストから資源を取り出す (3)資源の初期化を行う (4)資源をプロセスの資源割当てリストに繋ぐ (5)プリエンプト禁止の設定を解除する となる。ここで、資源の初期化に要する時間は短いとは
限らない。実際、オペレーティング・システム内でメモ
リを割り当てる際のメモリの初期化等では数十msを要
する。そのような場合に上記の様にプリエンプト禁止区
間の設定だけで排他制御を行うと、一つのプロセスが長
時間CPUを占有することになる。この結果、リアルタ
イム応答性が悪くなり、連続メディア処理の周期駆動性
に影響を与えることになる。
ば、排他制御という点でのみ見れば、必要条件を満たし
ている。しかも、プリエンプト禁止区間の長さは10μ
s程度に抑えられ、(4)の処理中はCPU使用権を他
のプロセスに移すことができるので、リアルタイム応答
性が良くなる。ところが、(4)の処理をしている途中
に、この処理を行っているプロセスが外部から強制終了
させられた場合に問題が生ずる。
暴走に備えて、外部からプロセスを強制的に停止・消滅
させる機能を備えている。この機能を使って上記処理を
行っているプロセスが他のプロセス等から強制終了させ
られた場合、(4)で初期化している資源がどの管理リ
ストにも属さない所属不明の資源となる可能性がある。
この結果、オペレーティング・システムがプロセスを消
滅させる際に資源の回収ができず、その資源は永久に使
用できなくなる可能性がある。これを回避するために
は、フリーリスト、あるいは資源割り当てリストに資源
を繋いだ状態で資源を初期化する方法が考えられるが、
この方法では、前の例の処理全体をプリエンプト禁止区
間で覆う方法とプリエンプト禁止区間の長さがほとんど
変わらなくなる。別の方法として、初期化中の資源を管
理するリストを別に用意し、(4)の処理中はこのリス
トに繋ぐ方法もあるが、リストの繋ぎ換え処理が多くな
るため、初期化処理のオーバヘッドが大きくなる。
短時間に抑えることができない場合にも、上記の方法は
使用できない。
を利用して、連続メディア処理の周期駆動性に影響を与
えずに共有資源の処理を行うことができるプロセス実行
方法を発明した。
処理を行う計算機システムの共有資源を使用するプロセ
スの実行方法を提供することにある。
共有資源を使用する際には、予め自プロセスが強制終了
させられない(これを「アボート」されないと言い、ア
ボートされないようにすることを「アボート禁止」にす
ると言う)ように宣言を行う。その上で,自プロセスの
処理が中断されないように「プリエンプト禁止」にす
る。そして、共有資源の使用が終了した際にはプリエン
プト禁止の解除を行う。共有資源に対するすべての処理
が終了したら、自プロセスが強制終了させられてもよい
(これを「アボート禁止解除」と呼ぶ)ことを宣言す
る。このアボート禁止を宣言してからアボート禁止解除
を宣言するまでのプロセスが強制終了させられない区間
のことをアボート禁止区間と呼び、このアボート禁止区
間内に当該プロセスの強制終了要求が入った場合は、ア
ボート禁止区間が終了するまでプロセスの実行を継続
し、アボート禁止解除が行われた時点で、当該プロセス
を強制終了させる。
いては、システム内にその処理を専門に行うプロセスを
1個だけ用意し、更に、そのプロセスに要求を送るため
のキューを用意する。そして、他の連続メディア処理を
行うプロセスは、周期駆動を開始する前に専用プロセス
に処理を依頼し、共有資源への処理が完了した後、周期
駆動に入る。処理要求は先のキューに入れる。専用プロ
セス内では、共有資源に対する処理を行うプロセスがシ
ステム内で1個であることが保証されるため、プリエン
プト可能状態のまま共有資源に対する処理を行うことが
でき、周期駆動プロセスと並行して動作することができ
る。
せることで、複数のプロセスが並列に動作するマルチプ
ロセシング環境において、他の周期駆動を行っているプ
ロセスに影響を与えずに、共有資源を使用する複数のプ
ロセスを実行させることが可能となる。
説明する。
図1に示す。
ためのテーブルであり、この中にアボート要求フラグ1
1、アボート禁止フラグ12、アボート禁止のネストを
カウントするためのカウンタ13を保持している。ま
た、20はプロセスを管理するプロセス管理部、21は
アボート禁止を行うためのインタフェース関数、22は
アボート禁止を解除にするためのインタフェース関数で
あり、200は共有資源の処理を必要としているプロセ
スである。なお、プロセス200内の共用資源を使用す
る関数40は作業領域23及び37を保持している。更
に、30は特願平8−97997に基づくプリエンプト
制御部であり、スケジューラ31、プリエンプト禁止関
数32、プリエンプト禁止解除関数33、スケジューリ
ング要求フラグ34、プリエンプト禁止フラグ35、プ
リエンプト禁止のネストをカウントするためのカウンタ
36を保持している。
ート禁止、プリエンプト禁止の制御の流れを図2に示
す。共有資源に関わる処理を行う場合、その処理を行う
プロセス200内の関数40は最初にアボート禁止関数
21を用いて自プロセスをアボート禁止にする(10
1)。そして、共有資源を使用する直前に自プロセスを
プリエンプト禁止部30内のプリエンプト禁止関数32
を用いてプリエンプト禁止にし(102)、共有資源を
利用する処理に入る(103)。共有資源に対する処理
を終了したら、直ちにプリエンプト禁止部30内のプリ
エンプト禁止解除関数33を用いてプリエンプト禁止を
解除する(104)。ここで、プリエンプト禁止から禁
止解除までの間(102〜104)のプリエンプト禁止
区間が設定できるのは、周期駆動性に影響を与えない時
間、例えば周期駆動を管理する最小単位時間の10%以
下の時間で終了する共有資源への処理に限られる。次の
プリエンプト禁止を宣言するまでの間はプリエンプト可
能状態で、割り当て資源に対する初期化等、処理に長い
時間を必要とする処理を行う(105)。この間は他の
プロセスがスケジュールされ、プロセス200の実行が
一時中断されてもよい。そして再び共有資源への処理が
必要になった場合は、再度プロセス200は自プロセス
をプリエンプト禁止状態にする(106)。そして、共
有資源への処理(107)を行った後、プリエンプト禁
止を解除する(108)。すべての処理が終了したら最
後にアボート禁止解除関数22を使ってアボート禁止を
解除する(109)。
禁止解除までの間に2回のプリエンプト禁止区間が存在
するが、実際に存在するプリエンプト禁止区間の数は3
個以上でもよい。
101の内部処理を詳細に示したフローチャートであ
る。図3の処理は図1に示したアボート禁止関数21が
行う。まず、アボート禁止関数21は、プロセス200
を管理しているプロセス管理テーブル10内のアボート
禁止フラグ12がOFFの状態かどうかを調べる(12
0)。アボート禁止フラグ12がOFFであるならば、
これをONにする(121)。その後、カウンタ13の
値を1上げる(122)。図3の処理は、全体を不可分
に行う。
続き102及び106の内部処理を詳細に示したフロー
チャートである。図4の処理は図1に示したプリエンプ
ト禁止関数31が行う。まず、プリエンプト禁止関数3
1は、プリエンプト制御部30内のプリエンプト禁止フ
ラグ35がOFFの状態かどうかを調べる(130)。
アボート禁止フラグ35がOFFであるならば、これを
ONにする(131)。その後、カウンタ36の値を1
上げる(132)。図4の処理は、全体を不可分に行
う。
の手続き104及び108の内部処理を詳細に示したフ
ローチャートである。図5の処理は図1に示したプリエ
ンプト禁止解除関数32が行う。まず、プリエンプト禁
止解除関数32は、第1引数で渡される関数のネストの
値(後述)がカウンタ36の値と一致してるか非かを調
べる(140)。もし、一致していないければ異常処理
を行う。一致している場合は、プリエンプト制御部30
内のカウンタ36の値を1減らす(141)。その結
果、カウンタ36の値が正の値ならば、そのまま処理を
終了する(142)。0又は負の値になったならば、プ
リエンプト禁止フラグをOFFにする(143)。次
に、プリエンプト制御部30内のスケジューリング要求
フラグ34を調べる(144)。OFFならば処理を終
了する。ONならばスケジューラ31を起動し(14
5)、プロセスのスケジューリング処理に入る。
続き109の内部処理を詳細に示したフローチャートで
ある。図6の処理は図1に示したアボート禁止解除関数
22が行う。まずアボート禁止解除関数22は、第1引
数で渡される関数のネストの値(後述)がカウンタ13
の値と一致してるか非かを調べる(150)。もし、一
致していないければ異常処理を行う。一致している場合
は、プロセス200を管理しているプロセス管理テーブ
ル10内のカウンタ13の値を1減らす(151)。そ
の結果、カウンタ13の値が正の値ならば、そのまま処
理を終了する(152)。0又は負の値になったなら
ば、アボート禁止フラグをOFFにする(153)。次
に、プロセス管理テーブル10内のアボート要求フラグ
11を調べる(154)。OFFならば処理を終了す
る。ONならばプロセス管理部20が起動し、プロセス
200のアボート処理に入る(155)。
11がOFFの状態で処理が終了した場合、プロセス管
理部20はプリエンプト禁止部30内のスケジューラ3
1を起動し、プロセスの再スケジューリングを行う。
ONになっている間、すなわち、アボート禁止関数21
が呼び出されてアボート禁止フラグ12がONにされて
から、アボート禁止解除関数22が呼び出されてアボー
ト禁止フラグ12がOFFにされるまでの間がアボート
禁止区間となる。アボート禁止フラグ12はプロセス生
成時にはOFFになっており、アボート禁止関数21が
呼び出されることによって初めてONになる。プロセス
200がアボート禁止関数21を呼び出してアボート禁
止フラグ12をONにした後、アボート禁止区間内、す
なわち、アボート禁止フラグ12がONになっている間
にプロセス200の強制終了が発生した場合、プロセス
管理部20はアボート要求フラグ11をONにする処理
だけを行い、プロセス200の処理は続行させる。そし
て、プロセス200がアボート禁止解除関数22を呼び
出してアボート禁止フラグをOFFにした時に、プロセ
ス200の強制終了を行う。
ラグ35がONになっている間、すなわち、プリエンプ
ト禁止関数32が呼び出されてプリエンプト禁止フラグ
35がONにされてから、プリエンプト禁止解除関数3
3が呼び出されてプリエンプト禁止フラグ35がOFF
にされるまでの間がプリエンプト禁止区間となる。プリ
エンプト禁止フラグ35はシステム起動時にはOFFに
なっており、プリエンプト禁止関数32が呼び出される
ことによって初めてONになる。プロセス200がプリ
エンプト禁止関数32を呼び出してプリエンプト禁止フ
ラグをONにした後、プリエンプト禁止フラグ35がO
Nになっている間に他のプロセスへのスケジューリング
要求が発生した場合、スケジューラ31はスケジューリ
ング要求フラグ34をONにする処理だけを行い、他の
プロセスのスケジューリングは行わず、プロセス200
の処理を続行させる。そして、プロセス200がプリエ
ンプト禁止解除関数33を呼び出してプリエンプト禁止
フラグ35をOFFにした時に、スケジューラ31はス
ケジューリング要求フラグをOFFにし、プロセス20
0の実行を中断させ、他のプロセスをスケジュールす
る。
〜108の間はプリエンプト禁止区間となり、CPU使用
権が他のプロセスへ移ることはないので、共有資源を使
用するのは走行中のプロセスだけとなる。したがって、
他のプロセスが共有資源を使用することはなく、資源の
排他処理が実現でき、共有資源を使用する連続メディア
処理のマルチプロセシングを行うことができる。また、
101〜109の間はアボート禁止区間となるため、強
制終了によってプロセスが資源を獲得したまま消滅し、
資源が永久に使用不能になることもない。
ぞれ以下のインタフェースにより行う。
ストの深さが返される。
ボート禁止状態に遷移させる。本関数を発行してアボー
ト禁止状態に遷移してから関数abort_enalbeを発行して
アボート可能状態に復帰するまでの区間で、本関数と関
数abort_enableを対にして発行してもよい。すなわち、
本関数と関数abort_enableの対はネスト可能である。ネ
ストの内側で発行される本関数と関数abort_enableで
は、アボート禁止状態とアボート可能状態との間の状態
遷移は行わない。引数levelには、このネストの深さが
返る。
スト・レベルを指定する。
ボート可能状態に復帰させる。関数abort_disableを発
行してアボート禁止状態に遷移してから本関数を発行し
てアボート可能状態に復帰するまでの区間で、関数abor
t_disableと本関数を対にして発行してもよい。すなわ
ち、関数abort_disableと本関数の対はネスト可能であ
る。ネストの内側で発行される関数abort_disableと本
関数では、アボート禁止状態とアボート可能状態との間
の状態遷移は行わない。引数levelには、このネストの
深さ、すなわち対となる関数abort_disableの発行によ
り得られたlevelの値を指定する。オペレーティング・
システム側でもこの値を保持しており、引数で指定され
たネストの深さと一致しない場合、エラーリターンす
る。
止関数21を使用する際には、アボート禁止関数21よ
り返される現在のネストの深さを自関数内の作業領域2
3に格納する。そして、アボート禁止解除関数22を発
行する際に、その作業領域に格納されている値を同関数
の引数として指定する。アボート禁止解除関数では、こ
の値と現在のネストの深さを比較し、両者が一致しない
場合はエラーリターンする。この機能により、アボート
禁止関数と対になるべきアボート禁止解除関数が存在し
ないというプログラムミスを容易に検出することができ
る。
止解除の処理は、特願平8−97997において発明さ
れているプリエンプト禁止、プリエンプト禁止解除のイ
ンタフェースを使用して行う。すなわち、次のインタフ
ェースを使用する。
のネストの深さが返される。
プト禁止状態に遷移させる。本関数を発行しプリエンプ
ト禁止状態に遷移してから、関数 preempt_enable を発
行してプリエンプト可能状態に復帰するまでの区間で、
本関数と関数preempt_enableを対にして発行しても良
い。すなわち、本関数と関数 preempt_enable の対はネ
スト可能である。ネストの内側で発行される本関数と関
数 preempt_enable は、プリエンプト禁止状態とプリエ
ンプト可能状態との間の状態遷移は行なわない。level
には、このネストの深さが返る。
たネスト・レベルを指定する。
プト可能状態に復帰させる。関数 preempt_disable を
発行しプリエンプト禁止状態に遷移してから、本関数を
発行してプリエンプト可能状態に復帰するまでの区間
で、関数 preempt_disable と本関数を対にして発行し
ても良い。すなわち、関数 preempt_disable と本関数
の対はネスト可能である。ネストの内側で発行される関
数 preempt_disable と本関数は、プリエンプト禁止状
態とプリエンプト可能状態との間の状態遷移は行なわな
い。level には、このネストの深さ、すなわち対となる
関数 preempt_enable の発行により得られた level の
値を指定する。カーネルもこのネストの深さを保持して
おり、引数で指定されたネストの深さと一致しない場合
には、エラーリターンする。
ト禁止関数31を使用する際には、プリエンプト禁止関
数31より返される現在のネストの深さを自関数内の作
業領域37に格納する。そして、プリエンプト禁止解除
関数32を発行する際に、その作業領域に格納されてい
る値を同関数の引数として指定する。プリエンプト禁止
解除関数では、この値と現在のネストの深さを比較し、
両者が一致しない場合はエラーリターンする。この機能
により、プリエンプト禁止関数と対になるべきプリエン
プト禁止解除関数が存在しないというプログラムミスを
容易に検出することができる。
共有資源を使用するプロセスの実行方法の実施形態につ
いて説明する。
期駆動を行うプロセスは、周期駆動開始前の周期駆動を
行っていない状態の時に、次に説明するプロセス実行方
法を用いて必要な資源の獲得等を行い、その処理が完了
した後、自プロセスの周期駆動を開始する。周期駆動開
始後は、次に説明するプロセス実行方法では資源の獲得
は行わない。
す。
使用したいプロセスであり、220は特定の共有資源に
処理を行うことができる唯一のプロセスである。このプ
ロセスを以下逐次化プロセスと呼ぶ。逐次化プロセス2
20はシステム内に常駐している。300はプロセス2
10〜212の処理要求を逐次化プロセス220に通知
するための処理要求通知部であり、逐次化プロセス22
0に対してただ1個だけ存在し、逐次化プロセス220
と同様常にシステム内に常駐している。310〜312
はプロセス220からの処理完了通知をプロセス210
〜212に通知するための処理完了通知部であり、プロ
セス210〜212の生成時、または処理要求の発生時
に割り当てられる。処理要求通知部300及び処理完了
通知部310〜312はそれぞれ内部に待ち行列40
0、410〜412を持っている。
ャートを使って説明する。
るプロセス210〜212の処理を説明したフローチャ
ートである。プロセス210〜212はその共有資源に
処理を行うことができるプロセス220に処理を要求す
るため、処理要求通知部300に処理要求の通知を行う
(160)。通知終了後、通知を行ったプロセス210
〜212は直ちに処理完了受理待ちになる(161)。
処理完了通知部310〜312から処理完了が通知され
たら(161)、処理完了通知部310〜312内の待
ち行列410〜412から処理終了通知を受理し(16
2)、共有資源に対する処理を終了する。
明したフローチャートである。処理要求通知部300は
常に処理要求通知の受信待ちになっている(171)。
そして、処理要求の通知を受け取ったら(170)、受
け付け順に処理要求を待ち行列400に入れ(17
1)、処理要求が発生したことをプロセス220に通知
する(172)。
きる逐次化プロセス220の処理を説明したフローチャ
ートである。逐次化プロセス220も処理要求通知部3
00と同様、常に処理要求通知の受信待ちになっている
(180)。処理要求通知部300から処理要求発生の
通知を受けると(180)、処理要求通知部300内の
待ち行列400から処理要求を受理し(181)、要求
に応じた共有資源に対する処理を行う(182)。処理
終了後、プロセス220は処理を要求したプロセス21
0〜212の処理完了通知部310〜312に処理完了
及び処理結果の通知を行う(183)。逐次化プロセス
220は、次の要求が通知されているかを調べ、通知さ
れている場合は次の要求処理を行う。通知がない場合は
次の要求受理待ちになる(180)。
の処理を説明したフローチャートである。処理完了通知
部310〜312は、プロセス210〜212が処理要
求を発行したと同時に完了通知受信待ちになる(19
0)。そして、逐次化プロセス220から処理完了を受
信したら(190)、受理した処理完了通知と処理結果
を待ち行列410〜412に入れ(191)、プロセス
210〜212に処理完了を通知する(192)。
プロセスが3個であったが、2個以下または4個以上の
場合でも処理は同じである。
プリエンプト可能状態のまま動作する。
処理(図8)を周期駆動開始前、すなわち、周期駆動に
関係のない状態の時に行い、上記処理の完了によって資
源の獲得等が完了した後、周期駆動を開始させる。
ス実行方法を用いると、共有資源に直接処理を行うプロ
セスが逐次化プロセスただ1個であるため、共有資源の
排他制御を行う必要がない。また、共有資源に対する処
理を専用の独立したプリエンプト可能なプロセスが行う
ため、他の連続メディア処理を行うプロセスの周期駆動
性に影響を与えないプロセス実行が可能である。
有資源を使用するマルチプロセシングの環境において、
連続メディア処理等を行うプロセスの周期駆動性に影響
を与えずに、プロセス間で共有資源を使用できる。
成図である。
である。
を示すフローチャートである。
手順を示すフローチャートである。
処理手順を示すフローチャートである。
手順を示すフローチャートである。
ある。
順を示すフローチャートである。
を示すフローチャートである。
順を示すフローチャートである。
の処理手順を示すフローチャートである。
フラグ、12……アボート禁止フラグ、20……プロセ
ス管理部、21……アボート禁止関数、22……アボー
ト禁止解除関数、30……プリエンプト制御部、31…
…スケジューラ、32……プリエンプト禁止関数、33
……プリエンプト禁止解除関数、34……スケジューリ
ング要求フラグ、35……プリエンプト禁止フラグ、2
20……逐次化プロセス
Claims (2)
- 【請求項1】複数のプロセスが並列に動作する計算機シ
ステムにおいて、共有資源を獲得し、資源を操作し、資
源を解放するプロセスの実行方法であって、 前記プロセスをアボート禁止にするとともにプリエンプ
ト禁止にした後、当該プロセスが使用する共有資源を獲
得し、 当該プロセスのプリエンプト禁止を解除するとともに共
有資源の操作を行った後、当該プロセスをプリエンプト
禁止にし、 当該プロセスが前記共有資源を解放した後、当該プロセ
スのプリエンプト禁止を解除するとともにアボート禁止
を解除し、 アボート禁止中に発生した当該プロセスの強制終了要求
をアボート禁止解除後に実行することを特徴とするプロ
セスの実行方法。 - 【請求項2】共有資源の操作を行うプロセスの実行完了
後、当該プロセスに関連する処理を周期的に駆動するマ
ルチプロセシング環境の計算機システムにおけるプロセ
スの実行方法であって、 前記共有資源の操作を要求するプロセスのキューを設
け、 前記共有資源に対する処理を要求する前記キューの先頭
のプロセスをマルチプロセシング環境で実行し、 前記プロセスの実行完了後、当該プロセスに関連する処
理を周期的に駆動すると共に、前記キューに登録された
プロセスを順次実行することを特徴とするプロセスの実
行方法。
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22640496A JP3724075B2 (ja) | 1996-08-28 | 1996-08-28 | プロセスの実行方法 |
| EP97114394A EP0834806B1 (en) | 1996-08-28 | 1997-08-20 | Process executing method and resource accessing method in computer system |
| CA002213371A CA2213371C (en) | 1996-08-28 | 1997-08-20 | Process executing method and resource accessing method in computer system |
| DE69738646T DE69738646T2 (de) | 1996-08-28 | 1997-08-20 | Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System |
| US08/917,477 US6253225B1 (en) | 1996-08-28 | 1997-08-26 | Process executing method and resource accessing method in computer system |
| US09/838,767 US6848102B2 (en) | 1996-08-28 | 2001-04-20 | Process executing method and resource accessing method in computer system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22640496A JP3724075B2 (ja) | 1996-08-28 | 1996-08-28 | プロセスの実行方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1069392A true JPH1069392A (ja) | 1998-03-10 |
| JP3724075B2 JP3724075B2 (ja) | 2005-12-07 |
Family
ID=16844596
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22640496A Expired - Lifetime JP3724075B2 (ja) | 1996-08-28 | 1996-08-28 | プロセスの実行方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3724075B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006127524A (ja) * | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 物理リソースに対するアクセスを管理する方法、装置、およびプログラム |
| US7191443B2 (en) | 2001-01-25 | 2007-03-13 | Matsushita Electric Industrial Co., Ltd. | Digital device, task management method and program therefor |
-
1996
- 1996-08-28 JP JP22640496A patent/JP3724075B2/ja not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7191443B2 (en) | 2001-01-25 | 2007-03-13 | Matsushita Electric Industrial Co., Ltd. | Digital device, task management method and program therefor |
| EP2256631A2 (en) | 2001-01-25 | 2010-12-01 | Panasonic Corporation | Task management device, method and program therefor |
| JP2006127524A (ja) * | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 物理リソースに対するアクセスを管理する方法、装置、およびプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3724075B2 (ja) | 2005-12-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Brandenburg | Multiprocessor real-time locking protocols | |
| CA2213371C (en) | Process executing method and resource accessing method in computer system | |
| JP2650965B2 (ja) | 計算機システムおよびそのタスクスケジュール方法 | |
| JP2866241B2 (ja) | コンピュータシステムおよびスケジューリング方法 | |
| US8612982B2 (en) | Multi-tasking method according to simple priority inheritance scheme and embedded system therefor | |
| JP3318455B2 (ja) | 解放された同期メカニズムの所有権を管理するための方法及びシステム | |
| US20080072228A1 (en) | System and method for delayed priority boost | |
| JP5347451B2 (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
| JP3717951B2 (ja) | デッドロック回避システムおよび方法 | |
| JPH0468461A (ja) | 資源管理方式 | |
| JPH11212810A (ja) | タイム・クアンタム共有方法および装置 | |
| US9792419B2 (en) | Starvationless kernel-aware distributed scheduling of software licenses | |
| JPH1069392A (ja) | プロセスの実行方法 | |
| CN111989651B (zh) | 在多核系统中管理内核服务的方法和装置 | |
| JP2597283B2 (ja) | 割込みにおけるスケジューリング方式 | |
| Bordoloi | Scheduling with shared resources | |
| US20130042247A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses | |
| Wu et al. | Response Time Analysis of CIL-EDF Scheduling for ROS2 Multi-Threaded Executors | |
| JP2001256065A (ja) | 排他制御方法及び計算機システム | |
| CN119576489A (zh) | 一种任务运行方法、装置、设备及存储介质 | |
| JP2023091314A (ja) | 半導体装置、半導体装置の制御方法及びプログラム | |
| JPH05233561A (ja) | 共有資源管理方式 | |
| Stankovic et al. | EDF Scheduling for Shared Resources | |
| JPH1063514A (ja) | 情報処理装置 | |
| JPH064323A (ja) | マルチプロセッサシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041108 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050221 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050830 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050912 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080930 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090930 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090930 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100930 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100930 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110930 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120930 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120930 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130930 Year of fee payment: 8 |
|
| EXPY | Cancellation because of completion of term |