JPH05313923A - 共有資源の排他制御装置 - Google Patents

共有資源の排他制御装置

Info

Publication number
JPH05313923A
JPH05313923A JP11384292A JP11384292A JPH05313923A JP H05313923 A JPH05313923 A JP H05313923A JP 11384292 A JP11384292 A JP 11384292A JP 11384292 A JP11384292 A JP 11384292A JP H05313923 A JPH05313923 A JP H05313923A
Authority
JP
Japan
Prior art keywords
resource
task
exclusive control
acquisition
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
Application number
JP11384292A
Other languages
English (en)
Inventor
Jun Sasaki
潤 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP11384292A priority Critical patent/JPH05313923A/ja
Publication of JPH05313923A publication Critical patent/JPH05313923A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 タスクによって発行される資源獲得要求に優
先順位を付加することにより、資源獲得の追い越し処理
が可能となる共有資源の排他制御装置を提供することを
目的としている。 【構成】 共有資源排他制御テーブル11は、複数のタ
スクA、B、…、nによって共有される資源に対して、
各タスクから発行される資源獲得要求をその発行順に受
け付けて待ち行列を作成する。ここで、前記資源獲得要
求にはその発行時点でタスクにより優先順位が付加され
ており、この優先順位に従って共有資源排他制御処理部
12は資源獲得要求の排他制御を実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えば計算機システム
やマルチプロセッサシステム等において、1つまたは複
数の共有資源(例えばメモリ)に対して複数のタスク
(例えばプロセッサ)が同時にアクセスすることを排除
する共有資源の排他制御装置に関し、特に複数のタスク
間で共有するメモリエリア管理や、複数のタスクによる
同一デバイスへのアクセスに好適な共有資源の排他制御
装置に関する。
【0002】
【従来の技術】従来、同一の共有資源に対して複数のタ
スクが同時にアクセスしないように、共有資源の排他制
御装置が多用されている。従来のこの種の共有資源の排
他制御装置としては、例えば特開平3−116261号
公報、特開平3−141458号公報等に記載されたも
のがあり、排他制御により、複数のタスクで共有される
資源(例えばメモリや各種デバイス等)に対して順次ア
クセスを実現している。
【0003】ここで、一般に知られている共有資源の排
他制御は次のようなものである。ある特定のタスクが資
源獲得要求を発行し、その資源が空いていれば(他のタ
スクにより獲得されていなければ)、資源獲得要求を発
行したタスクに資源が渡され、空いていなければ資源獲
得要求を発行したタスクは資源獲得待ちとなる。資源獲
得待ちは、通常FIFO(First-in First-out)形式の
待ち行列(キューイング)によって規定され、FIFO
登録された順番に資源がタスクに渡される。このような
待ち行列を規定したうえで、例えば現在資源を獲得して
いるタスクがその資源を解放すれば、待ち行列の先頭の
タスクに資源が渡される。
【0004】通常、以上のような処理により資源が共有
使用され、複数のタスクによって同時に資源にアクセス
しないよう排他制御される。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の共有資源の排他制御装置にあっては、必ず資
源獲得要求を発行した順に発行元タスクに資源が渡され
るので、最後に獲得要求を発行したタスクは、待ち行列
の最後尾にキューイングされ、このタスクに資源が割当
てられるまで時間がかかる。また、最後尾にキューイン
グされたタスクに資源が割当てられるまでの時間は、現
在資源を獲得しているタスクや前列にキューイングされ
ているタスクの処理により左右され、その時間が変化す
る。
【0006】ここで、実際のシステムでは、種々のケー
スの発生が予想され、あるケースではFIFO順位によ
らない資源獲得が要求される場合がある。例えば、通常
ならばタスクA、タスクBの順に資源が使用されるとこ
ろでも、一旦エラーが発生したときにはタスクB、タス
クAの順に資源を渡したい場合がある。ところが、従来
の方式では後列にキューイングされたタスクが前列にキ
ューイングされたタスクを追い越すことができず、この
ような処理の実現は不可能であった。
【0007】そこで、請求項1記載の発明は、タスクに
よって発行される資源獲得要求に優先順位を付加するこ
とにより、資源獲得の追い越し処理が可能となる共有資
源の排他制御装置を提供することを目的としている。次
に、資源獲得要求に優先順位を付加した場合、異なるタ
スクで同じ優先順位が付加される懸念がある。この場
合、どちらを優先させるかの判断基準が必要になる。
【0008】そこで、請求項2記載の発明は、資源獲得
要求の発行順に従って同一優先順位における資源獲得要
求の排他制御を実行することにより、キューサーチの時
間短縮を可能とする共有資源の排他制御装置を提供する
ことを目的としている。次に、従来の資源管理では周期
的な資源割当は行われておらず、周期的にデータをサン
プリングするようなときに不都合が発生していた。
【0009】そこで、請求項3記載の発明は、資源獲得
要求に周期的な時間要素を付加することにより、特定の
タスクに周期的に資源を割り当てることができる共有資
源の排他制御装置を提供することを目的としている。次
に、従来の制御方式では、何らかのエラーが発生し速や
かに資源の初期化処理、再スタート処理等を行う必要が
あっても、資源が獲得できるまで時間がかかり速やかに
処理できない事態が発生したり、エラーの発生によって
あるタスクが資源を獲得したままダウンするような事態
が発生しており、このような事態に対処して資源の強制
獲得や強制解放が望まれる。
【0010】そこで、請求項4記載の発明は、資源獲得
強制モードを設けることにより、速やかな復旧処理を可
能とする共有資源の排他制御装置を提供することを目的
としている。また、請求項5記載の発明は、資源解放強
制モードを設けることにより、速やかな復旧処理を可能
とする共有資源の排他制御装置を提供することを目的と
している。
【0011】
【課題を解決するための手段】請求項1記載の発明は、
上記目的を達成するために、複数のタスクによって共有
される資源に対して各タスクから発行される資源獲得要
求をその発行順に受け付けて待ち行列を作成する共有資
源排他制御テーブルと、この待ち行列に従って1つの共
有資源に対する複数タスクの同時アクセスを排除する共
有資源排他制御処理部と、を備えた共有資源の排他制御
装置において、前記資源獲得要求にその発行時点で優先
順位を付加し、この優先順位に従って資源獲得要求の排
他制御を実行することを特徴とする。
【0012】また、請求項2記載の発明は、上記目的を
達成するために、請求項1記載の共有資源の排他制御装
置において、前記資源獲得要求の発行順に従って同一優
先順位における資源獲得要求の排他制御を実行すること
を特徴とする。また、請求項3記載の発明は、上記目的
を達成するために、請求項1または2記載の共有資源の
排他制御装置において、前記資源獲得要求にその発行時
点で資源獲得周期時間を付加し、この資源獲得周期時間
に従ってその資源獲得要求を発行したタスクに周期的に
資源を獲得させる資源獲得処理部を備えたことを特徴と
する。
【0013】また、請求項4記載の発明は、上記目的を
達成するために、請求項1または2記載の共有資源の排
他制御装置において、前記資源獲得要求を発行したタス
クに強制的に資源を獲得させる資源獲得強制モードを設
け、この強制モードでの資源獲得要求がいずれかのタス
クから発行された場合に現在資源を獲得しているタスク
を中断し前記共有資源排他制御テーブルの待ち行列の筆
頭に該中断タスクを設定する資源獲得処理部を備えたこ
とを特徴とする。
【0014】また、請求項5記載の発明は、上記目的を
達成するために、請求項1または2記載の共有資源の排
他制御装置において、資源をタスクから強制的に解放す
る資源解放強制モードを設け、この強制モードでの資源
解放要求がいずれかのタスクから発行された場合に現在
獲得されている資源を強制的に解放させて前記共有資源
排他制御テーブルの待ち行列を初期化する資源解放処理
部を備えたことを特徴とする。
【0015】
【作用】上記構成を有する請求項1記載の発明において
は、資源獲得要求にその発行時点で優先順位を付加し、
この優先順位に従って共有資源排他制御処理部が資源獲
得要求の排他制御を実行する。また、上記構成を有する
請求項2記載の発明においては、資源獲得要求の発行順
に従って共有資源排他制御処理部が同一優先順位におけ
る資源獲得要求の排他制御を実行する。
【0016】また、上記構成を有する請求項3記載の発
明においては、資源獲得要求にその発行時点で資源獲得
周期時間が付加されており、この資源獲得周期時間に従
って資源獲得処理部がその資源獲得要求を発行したタス
クに周期的に資源を獲得させる。また、上記構成を有す
る請求項4記載の発明においては、資源獲得要求を発行
したタスクに強制的に資源を獲得させる資源獲得強制モ
ードが設けられており、この強制モードでの資源獲得要
求がいずれかのタスクから発行された場合に、資源獲得
処理部は、現在資源を獲得しているタスクを中断し、共
有資源排他制御テーブルの待ち行列の筆頭に該中断タス
クを設定する。
【0017】また、上記構成を有する請求項5記載の発
明においては、資源をタスクから強制的に解放する資源
解放強制モードが設けられており、この強制モードでの
資源解放要求がいずれかのタスクから発行された場合
に、資源解放処理部は、現在獲得されている資源を強制
的に解放させて、共有資源排他制御テーブルの待ち行列
を初期化する。
【0018】
【実施例】以下、本発明を実施例に基づいて説明する。
図1は請求項1〜5いずれかに記載された発明の一実施
例に係る共有資源の排他制御装置を示す図であり、同図
(a)はそのブロック構成図、同図(b)は同図(a)
に示す共有資源排他制御テーブルの構成図である。
【0019】まず、構成を説明する。図1(a)におい
て、タスクA、B、…、nは、例えばメモリ等の共有資
源を使用するために、共有資源の獲得/解放を行う例え
ばプロセッサ群を示している。共有資源排他制御テーブ
ル11は、複数のタスクA、B、…、nによって共有さ
れる資源に対して、各タスクから発行される資源獲得要
求をその発行順に受け付けて待ち行列を作成する。共有
資源排他制御処理部12は、この待ち行列に従って1つ
の共有資源に対する複数タスクの同時アクセスを排除す
る。なお、本実施例では共有資源排他制御処理部12に
テーブル11を内蔵しているが、処理部12とテーブル
11を別構成としても構わない。
【0020】資源獲得処理部13は、各タスクから資源
獲得要求が発行された時、共有資源排他制御処理部12
を用いて共有資源排他制御テーブル11に資源獲得情報
を設定し、資源獲得を制御する。資源解放処理部14
は、各タスクからの資源解放要求が発行された時、共有
資源排他制御処理部12を用いて共有資源排他制御テー
ブル11に資源解放情報を設定し、資源解放を制御す
る。なお、共有資源排他制御処理部12は、資源獲得処
理部13および資源解放処理部14からの共有資源排他
制御要求に対してその要求を解析し、共有資源排他制御
テーブル11に各種情報を設定する。
【0021】ここで、前記資源獲得要求にはその発行時
点でタスクにより優先順位が付加されており、この優先
順位に従って共有資源排他制御処理部12は資源獲得要
求の排他制御を実行する。また、前記資源獲得要求の発
行順に従って共有資源排他制御処理部12は同一優先順
位における資源獲得要求の排他制御を実行する。
【0022】次に、前記資源獲得要求にはその発行時点
でタスクにより資源獲得周期時間を付加することがで
き、ここで付加された資源獲得周期時間に従って資源獲
得処理部13はその資源獲得要求を発行したタスクに周
期的に資源を獲得させる。また、前記資源獲得要求を発
行したタスクに強制的に資源を獲得させる資源獲得強制
モードが設けられており、この強制モードでの資源獲得
要求がいずれかのタスクから発行された場合に、資源獲
得処理部13は現在資源を獲得しているタスクを中断
し、前記共有資源排他制御テーブル11の待ち行列の筆
頭に該中断タスクを設定する。
【0023】また、資源をタスクから強制的に解放する
資源解放強制モードが設けられており、この強制モード
での資源解放要求がいずれかのタスクから発行された場
合に、資源解放処理部14は現在獲得されている資源を
強制的に解放させて、前記共有資源排他制御テーブル1
1の待ち行列を初期化する。共有資源排他制御テーブル
11の管理項目が図1(b)に示される。このテーブル
11は、資源名をキーとして各資源毎に項目データを管
理する。図示のように、資源名に対応させて、使用中優
先順位、最新高優先順位、資源獲得モード、資源占有時
間、資源獲得周期時間、資源獲得優先順位、資源獲得待
ちタスクキュー、周期獲得待ちタスクキュー、の各管理
項目が設定されており、各々次に説明する目的のために
使用される。
【0024】資源名:R 複数資源の管理を行う時の識別子として用いる。このた
め、共有資源排他制御テーブル11は、資源名毎に資源
数に応じて複数作成される。 使用中優先順位:P 現在資源を獲得しているタスクの資源獲得優先順位を格
納し、後から要求される資源獲得優先順位との比較のた
めに使用する。また、この使用中優先順位が設定されて
いるか否かによって、資源の使用中(=使用中優先順位
≠初期値)/未使用(初期値=例えば「0」)を判別す
る。
【0025】最新高優先順位:HP 資源が使用中の時に、他のタスクから要求された資源獲
得優先順位と使用中タスクの優先順位を比較し、より高
い方の優先順位を格納する。すなわち、使用中の資源が
解放された時、次に資源を割当てるタスクの優先順位を
示す。 資源獲得モード:M 通常獲得モード、周期獲得モード、強制獲得モード等の
識別に用いる。ここで、強制モードでの資源獲得要求が
いずれかのタスクから発行された場合に、資源獲得処理
部13は現在資源を獲得しているタスクを中断し、前記
共有資源排他制御テーブル11の待ち行列の筆頭に該中
断タスクを設定する。そして、前記資源獲得要求を発行
したタスクに強制的に資源を獲得させる。また、強制モ
ードでの資源解放要求がいずれかのタスクから発行され
た場合に、資源解放処理部14は現在獲得されている資
源をタスクから強制的に解放させて、前記共有資源排他
制御テーブル11の待ち行列を初期化する。
【0026】資源占有時間:OT 資源獲得要求を発行したタスクの最大資源占有時間を設
定する。いかなるタスクもこの占有時間を越えて資源を
保持することはできない。この占有時間を越えたとき
は、このタスクによって使用されている資源を解放し
て、次の待ち行列(キュー)に繋がれているタスクに資
源を割当てる。なお、占有時間を越えたタスクは要求を
発行した時点のモードで新たに待ち行列ににリンクされ
る。
【0027】資源獲得周期時間:CT 資源の周期獲得を行う時の周期時間を設定する。すなわ
ち、この資源獲得周期時間に従って、資源獲得処理部1
3はその資源獲得要求を発行したタスクに周期的に資源
を獲得させる。 資源獲得優先順位:RP 優先順位は1〜mの番号で示され、番号が小さいほど優
先順位が高い。ただし、RP=1の最高位優先順位番号
は強制獲得モードで使用するものとし、通常は2〜mの
番号が使用される。なお、RP=1の場合、必然的に前
記資源獲得モード(M)は強制モードの識別子が設定さ
れる。前記共有資源排他制御処理部12は、この優先順
位に従って資源獲得要求の排他制御を実行する。
【0028】資源獲得待ちタスクキュー:RQ 同一の資源獲得優先順位を有する他のタスクが既に資源
を獲得している時、通常獲得モード要求を発行したタス
クがこのキューにリンク(エンキュー)される。共有資
源排他制御処理部12は、本資源獲得待ちタスクキュー
に従って、同一優先順位における資源獲得要求の発行順
に排他制御を実行する。
【0029】周期獲得待ちタスクキュー:CQ 同一の資源獲得優先順位を有する他のタスクが既に資源
を獲得している時、周期獲得モード要求(CT)を発行
したタスクがこのキューにリンク(エンキュー)され
る。そして、資源解放後に資源獲得処理部13によって
CQのタスクが資源を獲得し、結果的にCQのタスクが
周期的に資源を獲得する。
【0030】次に、作用を説明する。まず、図2〜図4
を参照しながら図1に示した共有資源排他制御テーブル
の使用状況を示す動作例を説明する。なお、図2〜図4
は連続した動作を示す。図2(a)はシステムスタート
アップ時の初期化状態を示し、資源名R1以外は「0」
または「無し」の初期値がセットされている。
【0031】ここで、例えばA〜Dの各タスクから次の
(1)〜(4)の順で各要求が発行されると、(1)タ
スクAが資源獲得要求(獲得モード:通常、占有時間:
10、優先順位:2)を発行、(2)タスクBが資源獲
得要求(獲得モード:周期、占有時間:20、優先順
位:3、周期時間:50)を発行、(3)タスクCが資
源獲得要求(獲得モード:通常、占有時間:30、優先
順位:2)を発行、(4)タスクDが資源獲得要求(獲
得モード:通常、占有時間:40、優先順位:3)を発
行。
【0032】図2(b)に示すように、要求の発行順に
まずタスクAが資源R1を獲得し、使用中優先順位〜資
源獲得周期時間までの項目にそれぞれタスクAの要求デ
ータがセットされる。次いで、資源獲得優先順位に従っ
て、優先順位:2にタスクCが、また優先順位:3にタ
スクBおよびDが、それぞれ資源獲得待ちタスクキュー
としてセットされる。
【0033】その後、タスクAが処理を終了し、資源解
放要求(解放モード:通常)を発行すると、図2(b)
の資源獲得待ちタスクキューの先頭にキューイングされ
たタスクCが資源R1を獲得し、図2(c)に示すよう
に、使用中優先順位〜資源獲得周期時間までの項目にそ
れぞれタスクCの要求データがセットされる。次いで、
資源獲得優先順位に従って、優先順位:3のタスクBお
よびDが、そのまま資源獲得待ちタスクキューとしてセ
ットされる。
【0034】その後、タスクCが処理を終了し、資源解
放要求(解放モード:通常)を発行すると、図2(c)
の資源獲得待ちタスクキューの先頭にキューイングされ
たタスクBが資源R1を獲得し、図3(a)に示すよう
に、使用中優先順位〜資源獲得周期時間までの項目にそ
れぞれタスクBの要求データがセットされる。次いで、
資源獲得優先順位に従って、優先順位:3のタスクDが
資源獲得待ちタスクキューとしてセットされる。なお、
タスクDに先行してタスクBが資源R1を獲得した理由
は、その要求発行順による。
【0035】その後、タスクBが処理を終了し、資源解
放要求(解放モード:通常)を発行すると、図3(a)
の資源獲得待ちタスクキューの先頭にキューイングされ
たタスクDが資源R1を獲得し、図3(b)に示すよう
に、使用中優先順位〜資源獲得周期時間までの項目にそ
れぞれタスクDの要求データがセットされる。この時点
で資源獲得待ちタスクキューとしてセットされるタスク
は無くなる。しかし、タスクBは資源獲得周期時間:5
0がセットされているので、優先順位:3の周期獲得待
ちタスクキューにセットされ、また資源獲得周期時間:
50はそのままとされる。
【0036】その後、タスクDの処理中(資源占有時
間:40内)に、タスクBの資源獲得周期時間:50が
オーバーすると、図3(c)に示すように、優先順位:
3においてタスクBが周期獲得待ちタスクキューから資
源獲得待ちタスクキューに変更される。なお、この時点
ではタスクDが資源R1を保持したままとなる。本実施
例は周期時間がセットされているタスクBが資源獲得待
ちタスクキューにセットされた時点で、タスクBとタス
クDが入れ替わり、タスクBの周期的資源獲得を可能と
するものであるが、この周期的資源獲得よりも優先する
のが強制獲得モードである。
【0037】すなわち、図3(c)の状態でタスクAが
強制モードによる資源獲得要求(占有時間:60)を発
行すると、図4(a)に示すように、タスクAが資源R
1を獲得し、タスクDが処理を中断してタスクBの前列
にキューイングされる。一方、図3(c)の状態で順当
にタスクBが資源を獲得した状態が図4(b)に示され
る。すなわち、タスクBとタスクDが入れ替わり、周期
的にタスクBが資源R1を獲得する。
【0038】なお、強制モードでの資源解放要求がいず
れかのタスクから発行された場合は、共有資源排他制御
テーブル11がどのような状態にあっても、図2(a)
に示した状態に初期化される。次に、図5〜図12を参
照しながら図1に示す排他制御装置の各処理を説明す
る。なお、以下の説明では、本発明の特徴である共有資
源排他制御処理部12(共有資源排他制御テーブル11
の動作を中心に説明する。
【0039】図5は図1に示す排他制御装置のメイン処
理を示すフローチャートであり、同図(a)はタスクか
らの要求に基づいて実処理を選択するフロー、同図
(b)は占有時間や周期時間の監視対象時間がタイムオ
ーバーした時に起動される実処理の選択フローである。
図5(a)において、タスクから獲得または解放の資源
制御要求が発行されるのを待機し(ステップS1)、要
求があると、共有資源排他制御処理部12は、タスクに
よって要求された資源名をキーとして共有資源排他制御
テーブル11をサーチする(ステップS2)。テーブル
を特定すると、タスクからの要求内容を解析し(ステッ
プS3)、優先順位により資源を獲得する通常獲得処理
(ステップS4)、周期時間により資源を獲得する周期
獲得処理(ステップS5)、強制モードにより資源を獲
得する強制獲得処理(ステップS6)、現在資源を獲得
しているタスクからの要求により資源を解放する通常解
放処理(ステップS7)、または強制モードにより資源
を解放する強制解放処理(ステップS8)、いずれかを
選択する。
【0040】図5(a)に示す要求発行順の処理選択と
共に、図5(b)に示す時間監視による処理選択が行わ
れる。すなわち、監視時間のタイムオーバーを待機し
(ステップT1)、タイムオーバーになると、その監視
時間の種別を判断する(ステップT2)。ここで、監視
時間が占有時間である場合は、現在タスクにより獲得さ
れている資源を時間切れにより解放する占有時間オーバ
ー処理(ステップT3)、を実行する。また、監視時間
が周期時間である場合は、現在資源を獲得しているタス
クから周期要求タスクに引き渡す周期時間オーバー処理
(ステップT4)、を実行する。
【0041】図6は図5(a)のステップS4に示す通
常獲得処理の動作フローである。通常獲得処理は、ある
タスクが通常獲得モードで資源獲得要求を発行した時に
起動される。タスクからの資源獲得要求は、資源獲得処
理部13で認識され、共有資源排他制御処理部12で解
析される。共有資源排他制御処理部12では、要求資源
名と同一の共有資源排他制御テーブル11を捜し出し、
使用中優先順位を調べる(ステップP1)。ここで、使
用中優先順位P=初期値すなわち資源が未使用ならば、
共有資源排他制御テーブル11の使用中優先順位Pおよ
び最新高優先順位HP両方に、タスクから要求された資
源獲得優先順位RPを設定し(ステップP2)、資源獲
得モードおよび資源占有時間には各々の要求値を設定し
て(ステップP3、P4)、要求発行元のタスクに資源
を割当てる。
【0042】一方、ステップP1の判断で使用中優先順
位P≠初期値すなわち資源が使用中であれば、要求され
た資源獲得優先順位RPと使用中優先順位Pを比較し
(ステップP5)、より高い方の優先順位を最新高優先
順位HPに設定し(ステップP6、P7)、要求された
資源獲得優先順位RPが示す資源獲得待ちタスクキュー
RQの最後に要求発行元のタスクをエンキューして資源
獲得待ち状態とする(ステップP8)。
【0043】ここで、要求発行元のタスクがエンキュー
される待ち行列は、その資源獲得優先順位RPの値によ
り規定され、仮に低い優先順位RPのタスクが先に発行
されていても、この低優先順位のタスクを飛び越した位
置にエンキューされる。このように、請求項1記載の実
施例においては、優先順位により資源が獲得されるの
で、後から要求を発行したタスクでも処理の優先度によ
って先に要求を発行したタスクを追い越して資源を獲得
することが可能となる。
【0044】また、同一優先順位のタスクは要求の発行
順に待ち行列にエンキューされる。このように、請求項
2記載の実施例においては、優先順位毎のプライオリテ
ィキューイングにより、資源獲得/解放等の一連のテー
ブルサーチ処理の高速化が可能となる。図7は図5
(a)のステップS5に示す周期獲得処理の動作フロー
である。
【0045】周期獲得処理は、あるタスクが周期獲得モ
ードで資源獲得要求を発行した時に起動される。図6の
処理と同様に、タスクからの資源獲得要求は、資源獲得
処理部13で認識され、共有資源排他制御処理部12で
解析される。共有資源排他制御処理部12では、要求資
源名と同一の共有資源排他制御テーブル11を捜し出
し、使用中優先順位を調べる(ステップQ1)。ここ
で、使用中優先順位P=初期値すなわち資源が未使用な
らば、共有資源排他制御テーブル11の使用中優先順位
Pおよび最新高優先順位HP両方に、タスクから要求さ
れた資源獲得優先順位RPを設定し(ステップQ2)、
資源獲得モードおよび資源占有時間には各々の要求値を
設定する(ステップQ3、Q4)。さらに、資源獲得周
期時間CTに周期時間を設定して(ステップQ5)、要
求発行元のタスクに資源を割当てる。
【0046】一方、ステップQ1の判断で使用中優先順
位P≠初期値すなわち資源が使用中であれば、要求され
た資源獲得優先順位RPと使用中優先順位Pを比較し
(ステップQ6)、より高い方の優先順位を最新高優先
順位HPに設定し(ステップQ7、Q8)、要求された
資源獲得優先順位RPが示す資源獲得待ちタスクキュー
RQの最後に要求発行元のタスクをエンキューして資源
獲得待ち状態とする(ステップQ9)。
【0047】このように、請求項3記載の実施例におい
ては、資源獲得周期時間CTによる資源管理により、タ
スクは優先順位に従って周期的に資源を獲得することが
できるので、周期的に資源を獲得して処理するデータサ
ンプリング等が可能となる。図8は図5(a)のステッ
プS6に示す強制獲得処理の動作フローである。強制獲
得処理は、あるタスクが強制獲得モードで資源獲得要求
を発行した時に起動される。図6の処理と同様に、タス
クからの資源獲得要求は、資源獲得処理部13で認識さ
れ、共有資源排他制御処理部12で解析される。共有資
源排他制御処理部12では、要求資源名と同一の共有資
源排他制御テーブル11を捜し出し、使用中優先順位を
調べる(ステップR1)。ここで、使用中優先順位P=
初期値すなわち資源が未使用ならば、共有資源排他制御
テーブル11の使用中優先順位Pおよび最新高優先順位
HP両方に、タスクから要求された資源獲得優先順位R
P=1(最高優先順位)を設定し(ステップR2)、資
源獲得モードおよび資源占有時間には各々の要求値を設
定して(ステップR3、R4)、要求発行元のタスクに
資源を割当てる。
【0048】一方、ステップR1の判断で使用中優先順
位P≠初期値すなわち資源が使用中であれば、現在資源
を獲得しているタスクをその使用中優先順位Pにて示さ
れる該当優先順位の資源獲得待ちタスクキューの先頭へ
エンキューして資源獲得待ち状態とする(ステップR
5)。次に、資源排他制御テーブル11の使用中優先順
位に「1」を設定し(ステップR6)、資源獲得モード
および資源占有時間には各々の要求値を設定して要求発
行元のタスクに資源を割当てる(ステップR7、R
8)。
【0049】このように、請求項4記載の実施例におい
ては、資源獲得強制モードによる資源獲得により、資源
獲得の待ち時間無しに資源を獲得することができ、資源
に対する迅速な処理が可能となる。図9は図5(a)の
ステップS7に示す通常解放処理の動作フローである。
通常解放処理は、あるタスクが通常解放モードで資源解
放要求を発行した時に起動される。タスクからの資源解
放要求は、資源解放処理部14で認識され、共有資源排
他制御処理部12で解析される。共有資源排他制御処理
部12では、要求資源名と同一の資源排他制御テーブル
11を捜し出す。次に、最新高優先順位HPが示す資源
獲得優先順位から優先順位の低い方へ資源獲得待ちタス
クキューをサーチし(ステップU1)、サーチした待ち
行列に獲得待ちしているタスクがあるか否かを判断する
(ステップU2)。
【0050】ここで、獲得待ちしているタスクがある場
合は、その待ちキューから先頭のタスクを抽出し(ステ
ップU3)、この抽出したタスクに資源を割当てる(ス
テップU4)。すなわち、資源を割り当てられた抽出タ
スクをサーチした場所の資源獲得優先順位RPを、使用
中優先順位Pと最新高優先順位HP両方に設定する。次
に、抽出タスクが要求を発行した時点での要求モードを
判定し(ステップU5)、通常獲得モードであれば、資
源獲得モードMに「通常」を(ステップU6)、また資
源占有時間OTに要求値を設定する(ステップU7)。
【0051】一方、ステップU5の判定で周期獲得モー
ドであれば、資源獲得モードMに「周期」を(ステップ
U8)、資源占有時間OTに要求値を(ステップU
9)、また資源獲得周期時間CTにその周期時間を設定
する(ステップU10)。ただし、ステップU2の判断
で待ちキューに繋がれているタスクが無い時は、使用中
優先順位Pを初期化して(ステップU11)、処理を終
了する。
【0052】図10は図5(a)のステップS8に示す
強制解放処理の動作フローである。強制解放処理は、あ
るタスクが強制解放モードで資源解放要求を発行した時
に起動される。図9の処理と同様に、タスクからの資源
解放得要求は、資源解放処理部14、共有資源排他制御
処理部12で認識、解析される。共有資源排他制御処理
部12では、要求資源名の資源排他制御テーブル11を
捜し出し(ステップV1)、その資源排他制御テーブル
11にタスクがリンクされているか否かを判断する(ス
テップV2)。ここで、テーブル11にタスクがリンク
されている場合は、リンクされている全てのタスクに対
し資源が強制解放されたことを通知し、この資源排他制
御テーブル11を初期化する(ステップV3)。
【0053】一方、ステップV2の判断で、テーブル1
1にタスクがリンクされていない場合は、即座に資源排
他制御テーブル11を初期化する(ステップV4)。こ
のように、請求項5記載の実施例においては、資源解放
強制モードによる資源解放により、あるタスクが資源を
獲得したままダウンしたような場合のエラーリカバリー
が可能となる。
【0054】図11は図5(b)のステップT3に示す
占有時間オーバー処理の動作フローである。占有時間オ
ーバー処理は、資源を獲得しているタスクの資源占有時
間OTがオーバーした時に起動される。資源占有時間O
Tをオーバーしたタスクには、資源占有時間がオーバー
したことを通知し(ステップW1)、このタスクを資源
獲得要求を発行した時点のモードで待ちキューの最後に
エンキューする(ステップW2)。
【0055】次に、最新高優先順位HPが示す資源獲得
優先順位から優先順位の低い方へ資源獲得待ちまたは周
期獲得待ちのタスクに繋がれているタスクをサーチし
(ステップW3)、待ちキューから先頭のタスクを抽出
して(ステップW4)、このタスクに資源を割当てる
(ステップW5)。すなわち、資源を割り当てられた抽
出タスクをサーチした場所の資源獲得優先順位RPを、
使用中優先順位Pと最新高優先順位HP両方に設定す
る。
【0056】次に、抽出タスクが要求を発行した時点で
の要求モードを判定し(ステップW6)、通常獲得モー
ドであれば、資源獲得モードMに「通常」を(ステップ
W7)、また資源占有時間OTに要求値を設定する(ス
テップW8)。一方、ステップW6の判定で周期獲得モ
ードであれば、資源獲得モードMに「周期」を(ステッ
プW9)、資源占有時間OTに要求値を(ステップW1
0)、また資源獲得周期時間CTにその周期時間を設定
する(ステップW11)。
【0057】図12は図5(b)のステップT4に示す
周期時間オーバー処理の動作フローである。周期時間オ
ーバー処理は、資源を周期獲得モードで使用するタスク
の資源獲得周期時間がオーバーした時に起動される。ま
ず、該当する排他制御テーブル11の使用中優先順位P
を調べ(ステップX1)、P=初期値すなわち資源が未
使用ならば、共有資源排他制御テーブル11の使用中優
先順位Pおよび最新高優先順位HP両方に、タスクが要
求を発行した時点での資源獲得優先順位RPを設定し
(ステップX2)、資源獲得モードおよび資源占有時間
には各々の要求値を設定する(ステップX3、X4)。
さらに、資源獲得周期時間CTに要求値を設定して(ス
テップX5)、周期獲得要求の発行元であるタスクに資
源を割当てる。
【0058】一方、ステップX1の判断で使用中優先順
位P≠初期値すなわち資源が使用中であれば、周期獲得
待ちタスクキューCQに繋がれている該タスクを抽出し
(ステップX6)、資源獲得待ちタスクキューRQにエ
ンキューして(ステップX7)、資源が割当てられるの
を待つ。また、このとき抽出したタスクを周期獲得待ち
タスクキューCQの最後にエンキューして次の周期起動
待ちとする。
【0059】
【発明の効果】以上説明したように、請求項1記載の発
明に係る共有資源の排他制御装置によれば、資源獲得要
求にその発行時点で優先順位を付加し、この優先順位に
従って共有資源排他制御処理部が資源獲得要求の排他制
御を実行するので、後から要求を発行したタスクでも処
理の優先度によって先に要求を発行したタスクを追い越
して資源を獲得することが可能となる。このため、共有
資源の排他制御における資源の獲得/解放が迅速かつ確
実に行われるようになり、従来システムで発生していた
資源獲得待ちのための応答遅延やシステムダウンを最小
限にとどめ共有資源の効率の良い逐次制御が可能とな
る。
【0060】また、請求項2記載の発明に係る共有資源
の排他制御装置によれば、資源獲得要求の発行順に従っ
て共有資源排他制御処理部が同一優先順位における資源
獲得要求の排他制御を実行するので、資源獲得/解放等
の一連のテーブルサーチ処理の高速化が可能となる。ま
た、請求項3記載の発明に係る共有資源の排他制御装置
によれば、資源獲得要求にその発行時点で資源獲得周期
時間が付加されており、この資源獲得周期時間に従って
資源獲得処理部がその資源獲得要求を発行したタスクに
周期的に資源を獲得させるので、タスクは優先順位に従
って周期的に資源を獲得することができ、周期的に資源
を獲得して処理するデータサンプリング等が可能とな
る。
【0061】また、請求項4記載の発明に係る共有資源
の排他制御装置によれば、資源獲得要求を発行したタス
クに強制的に資源を獲得させる資源獲得強制モードが設
けられており、この強制モードでの資源獲得要求がいず
れかのタスクから発行された場合に、資源獲得処理部
は、現在資源を獲得しているタスクを中断し、共有資源
排他制御テーブルの待ち行列の筆頭に該中断タスクを設
定するので、資源獲得の待ち時間無しに資源を獲得する
ことができ、資源に対する迅速な処理が可能となる。
【0062】また、請求項5記載の発明に係る共有資源
の排他制御装置によれば、資源をタスクから強制的に解
放する資源解放強制モードが設けられており、この強制
モードでの資源解放要求がいずれかのタスクから発行さ
れた場合に、資源解放処理部は、現在獲得されている資
源を強制的に解放させて、共有資源排他制御テーブルの
待ち行列を初期化するので、あるタスクが資源を獲得し
たままダウンしたような場合のエラーリカバリーが可能
となる。
【図面の簡単な説明】
【図1】請求項1〜5いずれかに記載された発明の一実
施例に係る共有資源の排他制御装置を示す図であり、同
図(a)はそのブロック構成図、同図(b)は同図
(a)に示す共有資源排他制御テーブルの構成図であ
る。
【図2】図1に示した共有資源排他制御テーブルの使用
状況を示す管理項目の変遷図であり、同図(a)はシス
テムスタートアップ時の初期化状態、同図(b)は初期
化状態から発行順にタスクAが資源を獲得した状態、同
図(c)はタスクAから優先順位によりタスクCが資源
を獲得した状態を示す。
【図3】図2に続く管理項目の変遷図であり、同図
(a)はタスクCから優先順位および発行順によりタス
クBが資源を獲得した状態、同図(b)はタスクBから
発行順によりタスクDが資源を獲得した状態、同図
(c)は周期時間オーバーによりタスクBのキューが変
更された状態を示す。
【図4】図3に続く管理項目の変遷図であり、同図
(a)は図3(c)におけるタスクAによる資源の強制
獲得状態を示し、同図(b)は図3(c)におけるタス
クBの資源の周期的獲得状態を示す。
【図5】図1に示す排他制御装置のメイン処理を示すフ
ローチャートであり、同図(a)はタスクからの要求に
基づいて実処理を選択するフロー、同図(b)は占有時
間や周期時間の監視対象時間がタイムオーバーした時に
起動される実処理の選択フローである。
【図6】図5(a)のステップS4に示す通常獲得処理
の動作フローである。
【図7】図5(a)のステップS5に示す周期獲得処理
の動作フローである。
【図8】図5(a)のステップS6に示す強制獲得処理
の動作フローである。
【図9】図5(a)のステップS7に示す通常解放処理
の動作フローである。
【図10】図5(a)のステップS8に示す強制解放処
理の動作フローである。
【図11】図5(b)のステップT3に示す占有時間オ
ーバー処理の動作フローである。
【図12】図5(b)のステップT4に示す周期時間オ
ーバー処理の動作フローである。
【符号の説明】
11 共有資源排他制御テーブル 12 共有資源排他制御処理部 13 資源獲得処理部 14 資源解放処理部

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】複数のタスクによって共有される資源に対
    して各タスクから発行される資源獲得要求をその発行順
    に受け付けて待ち行列を作成する共有資源排他制御テー
    ブルと、 この待ち行列に従って1つの共有資源に対する複数タス
    クの同時アクセスを排除する共有資源排他制御処理部
    と、を備えた共有資源の排他制御装置において、 前記資源獲得要求にその発行時点で優先順位を付加し、
    この優先順位に従って資源獲得要求の排他制御を実行す
    ることを特徴とする共有資源の排他制御装置。
  2. 【請求項2】請求項1記載の共有資源の排他制御装置に
    おいて、 前記資源獲得要求の発行順に従って同一優先順位におけ
    る資源獲得要求の排他制御を実行することを特徴とする
    共有資源の排他制御装置。
  3. 【請求項3】請求項1または2記載の共有資源の排他制
    御装置において、 前記資源獲得要求にその発行時点で資源獲得周期時間を
    付加し、この資源獲得周期時間に従ってその資源獲得要
    求を発行したタスクに周期的に資源を獲得させる資源獲
    得処理部を備えたことを特徴とする共有資源の排他制御
    装置。
  4. 【請求項4】請求項1または2記載の共有資源の排他制
    御装置において、 前記資源獲得要求を発行したタスクに強制的に資源を獲
    得させる資源獲得強制モードを設け、 この強制モードでの資源獲得要求がいずれかのタスクか
    ら発行された場合に現在資源を獲得しているタスクを中
    断し前記共有資源排他制御テーブルの待ち行列の筆頭に
    該中断タスクを設定する資源獲得処理部を備えたことを
    特徴とする共有資源の排他制御装置。
  5. 【請求項5】請求項1または2記載の共有資源の排他制
    御装置において、 資源をタスクから強制的に解放する資源解放強制モード
    を設け、 この強制モードでの資源解放要求がいずれかのタスクか
    ら発行された場合に現在獲得されている資源を強制的に
    解放させて前記共有資源排他制御テーブルの待ち行列を
    初期化する資源解放処理部を備えたことを特徴とする共
    有資源の排他制御装置。
JP11384292A 1992-05-07 1992-05-07 共有資源の排他制御装置 Pending JPH05313923A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11384292A JPH05313923A (ja) 1992-05-07 1992-05-07 共有資源の排他制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11384292A JPH05313923A (ja) 1992-05-07 1992-05-07 共有資源の排他制御装置

Publications (1)

Publication Number Publication Date
JPH05313923A true JPH05313923A (ja) 1993-11-26

Family

ID=14622424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11384292A Pending JPH05313923A (ja) 1992-05-07 1992-05-07 共有資源の排他制御装置

Country Status (1)

Country Link
JP (1) JPH05313923A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286068B1 (en) 1994-10-03 2001-09-04 International Business Machines Corporation Queued arbitration mechanism for data processing system
US7647441B2 (en) 1998-11-13 2010-01-12 Sonics, Inc. Communications system and method with multilevel connection identification
JP2011145761A (ja) * 2010-01-12 2011-07-28 Ricoh Co Ltd 画像処理デバイス排他制御装置、制御方法、プログラム及び記録媒体
JP2013214331A (ja) * 2013-07-22 2013-10-17 Panasonic Corp コンパイラ
WO2014103072A1 (ja) * 2012-12-28 2014-07-03 楽天株式会社 アクセス制御システム、アクセス制御方法、携帯端末、携帯端末の制御方法、携帯端末の制御プログラムが記録された記録媒体、及び携帯端末の制御プログラム
JP5608308B1 (ja) * 2012-12-28 2014-10-15 楽天株式会社 情報アクセス装置、コンピュータプログラム、アクセス制御システム、携帯端末、携帯端末の制御方法、及び携帯端末の制御プログラム
JP2015032080A (ja) * 2013-08-01 2015-02-16 日本電信電話株式会社 実行制御装置及び実行制御方法
JP2015102973A (ja) * 2013-11-22 2015-06-04 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286068B1 (en) 1994-10-03 2001-09-04 International Business Machines Corporation Queued arbitration mechanism for data processing system
US7647441B2 (en) 1998-11-13 2010-01-12 Sonics, Inc. Communications system and method with multilevel connection identification
JP2011145761A (ja) * 2010-01-12 2011-07-28 Ricoh Co Ltd 画像処理デバイス排他制御装置、制御方法、プログラム及び記録媒体
WO2014103072A1 (ja) * 2012-12-28 2014-07-03 楽天株式会社 アクセス制御システム、アクセス制御方法、携帯端末、携帯端末の制御方法、携帯端末の制御プログラムが記録された記録媒体、及び携帯端末の制御プログラム
WO2014103543A1 (ja) * 2012-12-28 2014-07-03 楽天株式会社 情報アクセス装置、コンピュータプログラム、情報処理システム、アクセス制御システム、携帯端末、携帯端末の制御方法、及び携帯端末の制御プログラム
JP5608308B1 (ja) * 2012-12-28 2014-10-15 楽天株式会社 情報アクセス装置、コンピュータプログラム、アクセス制御システム、携帯端末、携帯端末の制御方法、及び携帯端末の制御プログラム
JP2013214331A (ja) * 2013-07-22 2013-10-17 Panasonic Corp コンパイラ
JP2015032080A (ja) * 2013-08-01 2015-02-16 日本電信電話株式会社 実行制御装置及び実行制御方法
JP2015102973A (ja) * 2013-11-22 2015-06-04 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Similar Documents

Publication Publication Date Title
JP3678414B2 (ja) 多重プロセッサ・システム
US5274823A (en) Interrupt handling serialization for process level programming
US6779182B1 (en) Real time thread dispatcher for multiprocessor applications
US5452452A (en) System having integrated dispatcher for self scheduling processors to execute multiple types of processes
EP0644487B1 (en) Scalable system interrupt structure for a multiprocessing system
JP4042945B2 (ja) 共用資源を非同期的に更新するためのインターフェース・システムおよび方法
US6269391B1 (en) Multi-processor scheduling kernel
CA2704269C (en) Uniform synchronization between multiple kernels running on single computer systems
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
EP1241580B1 (en) Memory manager for a common memory
US8707315B2 (en) Method and system for implementing realtime spinlocks
JPS60128537A (ja) 多重プログラミング・システム
US6473820B1 (en) Method and apparatus for user level monitor implementation
JPH05313923A (ja) 共有資源の排他制御装置
US7984444B1 (en) Composite abortable locks
JP2003196152A (ja) メモリプール管理方式
JP3644042B2 (ja) マルチタスク処理装置
JP2692647B2 (ja) マルチタスク制御方法および制御システム
JPH0877026A (ja) 情報処理方法とその装置
JPH05120039A (ja) タスクスケジユーリング方式
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JPH09330241A (ja) デッドロック防止排他制御方式
JP2535568B2 (ja) アプリケ―ションプログラムでの動的バッファ管理方式
JPH05113894A (ja) 仮想計算機システムにおけるフアイル資源管理方式
JPH0586574B2 (ja)