JPH05120042A - コンピユータシステム - Google Patents
コンピユータシステムInfo
- Publication number
- JPH05120042A JPH05120042A JP27991991A JP27991991A JPH05120042A JP H05120042 A JPH05120042 A JP H05120042A JP 27991991 A JP27991991 A JP 27991991A JP 27991991 A JP27991991 A JP 27991991A JP H05120042 A JPH05120042 A JP H05120042A
- Authority
- JP
- Japan
- Prior art keywords
- task
- priority
- resource
- resources
- semaphore
- 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)【要約】
【目的】 プライオリティの高いタスクを、資源待ちの
状態においても、短時間の待ち合わせで優先的に資源を
貸し出すことができるプライオリティ管理方式を有する
コンピュータシステムを実現する。 【構成】 プライオリティ管理手段11は、タスクごと
のプライオリティおよび獲得資源数と全体の資源数とを
保存する手段(11a、11c、11d)と、プライオ
リティおよび資源数の比較手段(11e、11f)と、
プライオリティ変更記憶手段11bと、新たにタスクが
資源を獲得しようとする際に、既資源獲得タスクの中か
ら新規資源獲得要求タスクより低いプライオリティを有
しかつ資源数が要求を満たすタスク選択し、この選択さ
れたタスクのプライオリティをプライオリティ変更記憶
手段11bにより上昇させるタスク選択制御手段11g
とを含む。
状態においても、短時間の待ち合わせで優先的に資源を
貸し出すことができるプライオリティ管理方式を有する
コンピュータシステムを実現する。 【構成】 プライオリティ管理手段11は、タスクごと
のプライオリティおよび獲得資源数と全体の資源数とを
保存する手段(11a、11c、11d)と、プライオ
リティおよび資源数の比較手段(11e、11f)と、
プライオリティ変更記憶手段11bと、新たにタスクが
資源を獲得しようとする際に、既資源獲得タスクの中か
ら新規資源獲得要求タスクより低いプライオリティを有
しかつ資源数が要求を満たすタスク選択し、この選択さ
れたタスクのプライオリティをプライオリティ変更記憶
手段11bにより上昇させるタスク選択制御手段11g
とを含む。
Description
【0001】
【産業上の利用分野】本発明は、タスクの動作をプライ
オリティで管理する手段としてのオペレーティングシス
テム(以下、OSという。)を有するコンピュータシス
テムに利用され、特に、資源を獲得している複数または
1つのタスクのプライオリティを変更させるようにした
タスクプライオリティ管理方式に関する。
オリティで管理する手段としてのオペレーティングシス
テム(以下、OSという。)を有するコンピュータシス
テムに利用され、特に、資源を獲得している複数または
1つのタスクのプライオリティを変更させるようにした
タスクプライオリティ管理方式に関する。
【0002】
【従来の技術】従来、この種のタスクプライオリティ管
理方式は、タスクそれぞれにプライオリティと呼ばれる
正の整数を付け、その値が小さい(プライオリティが高
い)ほど処理を優先させるという処理方式になってい
た。従って、プライオリティの値が小さい(プライオリ
ティが高い)タスクとプライオリティの値が大きい(プ
ライオリティが低い)タスクが動作可能な状態であった
場合に、まずプライオリティの高いタスクの処理が実行
され、その処理が終了するかもしくは中断した場合にプ
ライオリティの低いタスクが実行される。また、ある資
源を複数のプライオリティの異なるタスクが待っている
場合には、プライオリティの高いものから優先的に資源
を与える。
理方式は、タスクそれぞれにプライオリティと呼ばれる
正の整数を付け、その値が小さい(プライオリティが高
い)ほど処理を優先させるという処理方式になってい
た。従って、プライオリティの値が小さい(プライオリ
ティが高い)タスクとプライオリティの値が大きい(プ
ライオリティが低い)タスクが動作可能な状態であった
場合に、まずプライオリティの高いタスクの処理が実行
され、その処理が終了するかもしくは中断した場合にプ
ライオリティの低いタスクが実行される。また、ある資
源を複数のプライオリティの異なるタスクが待っている
場合には、プライオリティの高いものから優先的に資源
を与える。
【0003】あるセマフォ(Semaphore)をタ
スクE(プライオリティ100)が獲得した後にタスク
F(プライオリティ1)が要求して待ちになり、その後
タスクEがセマフォを返却してタスクFの待ち状態が解
除になる際の処理を図2、図12、図13、図14
(a)および(b)および図15を参照して説明する。
スクE(プライオリティ100)が獲得した後にタスク
F(プライオリティ1)が要求して待ちになり、その後
タスクEがセマフォを返却してタスクFの待ち状態が解
除になる際の処理を図2、図12、図13、図14
(a)および(b)および図15を参照して説明する。
【0004】図2は、本発明の対象とするコンピュータ
システムの一例を示すブロック構成図で、10はプライ
オリティ管理手段11を有するCPU、20はメモリ、
21はシリアルコントローラ、22は割り込みコントロ
ーラ、23はタイマコントローラ、および24はバスで
ある。
システムの一例を示すブロック構成図で、10はプライ
オリティ管理手段11を有するCPU、20はメモリ、
21はシリアルコントローラ、22は割り込みコントロ
ーラ、23はタイマコントローラ、および24はバスで
ある。
【0005】図12および図13は、それぞれ従来のセ
マフォ獲得および返却の際のフローチャートである。
マフォ獲得および返却の際のフローチャートである。
【0006】図14(a)および(b)は、プライオリ
ティ100のタスクEとプライオリティ1のタスクFの
従来のタスク管理テーブル70と80の初期状態で、7
1はタスクEのコード部を指すポインタ、74はプライ
オリティ、81はタスクFのコード部を指すポインタ、
84はプライオリティである。また、72および82は
先頭を示すリンク情報、73および83は最後尾を示す
リンク情報である。
ティ100のタスクEとプライオリティ1のタスクFの
従来のタスク管理テーブル70と80の初期状態で、7
1はタスクEのコード部を指すポインタ、74はプライ
オリティ、81はタスクFのコード部を指すポインタ、
84はプライオリティである。また、72および82は
先頭を示すリンク情報、73および83は最後尾を示す
リンク情報である。
【0007】図15は、従来のセマフォ資源管理テーブ
ル90で、111および112はそれぞれその先頭を示
すリンク情報および最後尾を示すリンク情報であり、1
40はセマフォ待ちキューである。
ル90で、111および112はそれぞれその先頭を示
すリンク情報および最後尾を示すリンク情報であり、1
40はセマフォ待ちキューである。
【0008】いま、ID=X、資源管理数2のセマフォ
Xが存在していて、タスクEはセマフォXが管理する資
源を2個、タスクFも同じくセマフォXの管理する資源
を1個獲得して処理を進めるものとする。
Xが存在していて、タスクEはセマフォXが管理する資
源を2個、タスクFも同じくセマフォXの管理する資源
を1個獲得して処理を進めるものとする。
【0009】タスクE70がセマフォXが管理する資源
を2つ要求した場合、OSは図12のステップS41で
タスクEの要求したセマフォXの管理する資源か空いて
いるかチェックする。資源が空いているので、資源を2
つタスクEに貸し出す。タスクEは、資源を獲得して次
の処理に移行する。次にタスクFが同じくID=Xで管
理されるセマフォXに対して資源を要求する。図12の
ステップS41で要求された資源が空いているかチェッ
クし、空いていないのでステップS43で待ちキューに
つながれる。タスクFは図15に示すように、タスクE
がセマフォXで管理される資源を返却するまでセマフォ
待ちキュー140につながれたまま待つことになる。
を2つ要求した場合、OSは図12のステップS41で
タスクEの要求したセマフォXの管理する資源か空いて
いるかチェックする。資源が空いているので、資源を2
つタスクEに貸し出す。タスクEは、資源を獲得して次
の処理に移行する。次にタスクFが同じくID=Xで管
理されるセマフォXに対して資源を要求する。図12の
ステップS41で要求された資源が空いているかチェッ
クし、空いていないのでステップS43で待ちキューに
つながれる。タスクFは図15に示すように、タスクE
がセマフォXで管理される資源を返却するまでセマフォ
待ちキュー140につながれたまま待つことになる。
【0010】タスクEは、セマフォXの管理する資源を
利用して処理を行うがプライオリティが低いために、タ
スクEよりもプライオリティの高いタスクが他に存在し
た場合、その処理は後回しとなりタスクEが獲得してい
る資源の返却までには時間がかかる。また、タスクEが
他の資源を要求して待ちの状態となっても、待ちキュー
はプライオリティの高いものから順にリンクされるた
め、資源を獲得するまでに時間がかかる。
利用して処理を行うがプライオリティが低いために、タ
スクEよりもプライオリティの高いタスクが他に存在し
た場合、その処理は後回しとなりタスクEが獲得してい
る資源の返却までには時間がかかる。また、タスクEが
他の資源を要求して待ちの状態となっても、待ちキュー
はプライオリティの高いものから順にリンクされるた
め、資源を獲得するまでに時間がかかる。
【0011】タスクEがセマフォをOSに返却すると図
13のステップS51で空き資源となり資源の返却処理
が終了して、はじめてタスクFがセマフォXの資源を獲
得して起床して処理を続けることができる。
13のステップS51で空き資源となり資源の返却処理
が終了して、はじめてタスクFがセマフォXの資源を獲
得して起床して処理を続けることができる。
【0012】
【発明が解決しようとする課題】前述した従来のコンピ
ュータシステムにおけるタスクプライオリティ管理方式
では、あるタスクが資源を獲得してその資源の空きがな
くなると、その資源が返却されるまでは、その後でどん
なにプライオリティの高いタスクが資源を要求しても待
ちになる。またプライオリティの高いタスクが動作可能
な場合には、後回しになる。よって、資源を獲得したタ
スクのプライオリティが低い場合には、その処理は遅く
なり資源の返却にも時間がかかる。
ュータシステムにおけるタスクプライオリティ管理方式
では、あるタスクが資源を獲得してその資源の空きがな
くなると、その資源が返却されるまでは、その後でどん
なにプライオリティの高いタスクが資源を要求しても待
ちになる。またプライオリティの高いタスクが動作可能
な場合には、後回しになる。よって、資源を獲得したタ
スクのプライオリティが低い場合には、その処理は遅く
なり資源の返却にも時間がかかる。
【0013】従って、資源待ちになっているタスクは、
そのプライオリティに関係なく、資源を獲得しているタ
スクよりも処理が遅くなる。これは、プライオリティの
高いタスクを優先的に実行するというタスクプライオリ
ティ処理方式に反することで、大きな欠点である。
そのプライオリティに関係なく、資源を獲得しているタ
スクよりも処理が遅くなる。これは、プライオリティの
高いタスクを優先的に実行するというタスクプライオリ
ティ処理方式に反することで、大きな欠点である。
【0014】また、プライオリティの低いタスクが資源
を獲得したまま実行待ちであるということは、資源が獲
得されたまま使用されていないということで、資源の有
効活用ができない欠点となる。
を獲得したまま実行待ちであるということは、資源が獲
得されたまま使用されていないということで、資源の有
効活用ができない欠点となる。
【0015】本発明の目的は、前記の欠点を除去するこ
とにより、プライオリティの高いタスクを、資源待ちの
状態の場合にも、短時間の待ち合わせで優先的に資源を
貸し出すことができるタスクプライオリティ管理方式を
有するコンピュータシステムを提供することにある。
とにより、プライオリティの高いタスクを、資源待ちの
状態の場合にも、短時間の待ち合わせで優先的に資源を
貸し出すことができるタスクプライオリティ管理方式を
有するコンピュータシステムを提供することにある。
【0016】
【課題を解決するための手段】本発明は、タスクの動作
をプライオリティで管理するプライオリティ管理手段を
有する中央処理装置と、メモリとを備えたコンピュータ
システムにおいて、前記プライオリティ管理手段は、タ
スクに1対1に対応するプライオリティをプライオリテ
ィ順に保存するプライオリティ保存手段と、プライオリ
ティを変更し変更したプライオリティを記憶するプライ
オリティ変更記憶手段と、資源を獲得したタスクを管理
する資源獲得タスク管理手段と、全体の資源数を保有す
る資源数保有手段と、タスクのプライオリティを比較す
るプライオリティ比較手段と、タスクが獲得している資
源数と新たにタスクが獲得しようとしている資源数とを
比較する資源数比較手段と、新たにタスクが資源を獲得
しようとする際に既資源獲得タスクの中から前記プライ
オリティ比較手段によって新規資源獲得要求タスクより
低いプライオリティのタスクを選び出し、前記資源数比
較手段によってそのうちの要求資源数を獲得しているタ
スクを選択し、前記プライオリティ変更記憶手段により
そのプライオリティを上昇させて記憶するタスク選択制
御手段とを含むことを特徴とする。
をプライオリティで管理するプライオリティ管理手段を
有する中央処理装置と、メモリとを備えたコンピュータ
システムにおいて、前記プライオリティ管理手段は、タ
スクに1対1に対応するプライオリティをプライオリテ
ィ順に保存するプライオリティ保存手段と、プライオリ
ティを変更し変更したプライオリティを記憶するプライ
オリティ変更記憶手段と、資源を獲得したタスクを管理
する資源獲得タスク管理手段と、全体の資源数を保有す
る資源数保有手段と、タスクのプライオリティを比較す
るプライオリティ比較手段と、タスクが獲得している資
源数と新たにタスクが獲得しようとしている資源数とを
比較する資源数比較手段と、新たにタスクが資源を獲得
しようとする際に既資源獲得タスクの中から前記プライ
オリティ比較手段によって新規資源獲得要求タスクより
低いプライオリティのタスクを選び出し、前記資源数比
較手段によってそのうちの要求資源数を獲得しているタ
スクを選択し、前記プライオリティ変更記憶手段により
そのプライオリティを上昇させて記憶するタスク選択制
御手段とを含むことを特徴とする。
【0017】
【作用】タスクに1対1に対応するプライオリティをプ
ライオリティ順に保存しておき、新たにタスクが資源を
獲得しようとするときに、既資源獲得タスクの中からプ
ライオリティ比較手段によって新規資源獲得要求タスク
より低いプライオリティのタスクを選び出し、その中で
資源数比較手段によって必要とする資源数を獲得してい
るタスクを選択し、プライオリティ変更記憶手段によっ
てそのプライオリティを上昇させそれに応じて資源獲得
情報を書き変えることで記憶させる。
ライオリティ順に保存しておき、新たにタスクが資源を
獲得しようとするときに、既資源獲得タスクの中からプ
ライオリティ比較手段によって新規資源獲得要求タスク
より低いプライオリティのタスクを選び出し、その中で
資源数比較手段によって必要とする資源数を獲得してい
るタスクを選択し、プライオリティ変更記憶手段によっ
てそのプライオリティを上昇させそれに応じて資源獲得
情報を書き変えることで記憶させる。
【0018】これにより、プライオリティを上昇させら
れたタスクの処理が優先され、素早く処理を終えて、資
源を返却するので、プライオリティの高いタスクに対し
て、その待ち時間を短くして、優先的に資源を貸し出す
ことが可能となる。
れたタスクの処理が優先され、素早く処理を終えて、資
源を返却するので、プライオリティの高いタスクに対し
て、その待ち時間を短くして、優先的に資源を貸し出す
ことが可能となる。
【0019】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
て説明する。
【0020】図1は本発明の一実施例の要部を示すブロ
ック構成図でCPUを示し、図2はそのシステム全体を
示すブロック構成図である。
ック構成図でCPUを示し、図2はそのシステム全体を
示すブロック構成図である。
【0021】本実施例は、タスクの動作をプライオリテ
ィで管理するOSとしてのプライオリティ管理手段11
を有するCPU10と、メモリ20と、シリアルコント
ローラ21と、割り込みコントローラ22と、タイマコ
ントローラ23と、それらをつなぐバス24とを備えた
コンピュータシステムにおいて、本発明の特徴とすると
ころの、プライオリティ管理手段11は、タスクに1対
1に対応するプライオリティをプライオリティ順に保存
するプライオリティ保存手段11aと、プライオリティ
を変更し変更したプライオリティを記憶するプライオリ
ティ変更記憶手段11bと、資源を獲得したタスクを管
理する資源獲得タスク管理手段11cと、全体の資源数
を保有する資源数保有手段11dと、タスクのプライオ
リティを比較するプライオリティ比較手段11eと、タ
スクが獲得している資源数と新たにタスクが獲得しよう
としている資源数とを比較する資源数比較手段11f
と、新たにタスクが資源を獲得しようとする際に既資源
獲得タスクの中から前記プライオリティ比較手段によっ
て新規資源獲得要求タスクより低いプライオリティのタ
スクを選び出し前記資源数比較手段によってそのうちの
要求資源数を獲得しているタスクを選択しプライオリテ
ィ変更記憶手段11bによりそのプライオリティを変更
記憶するタスク選択制御手段11gとを含んでいる。
ィで管理するOSとしてのプライオリティ管理手段11
を有するCPU10と、メモリ20と、シリアルコント
ローラ21と、割り込みコントローラ22と、タイマコ
ントローラ23と、それらをつなぐバス24とを備えた
コンピュータシステムにおいて、本発明の特徴とすると
ころの、プライオリティ管理手段11は、タスクに1対
1に対応するプライオリティをプライオリティ順に保存
するプライオリティ保存手段11aと、プライオリティ
を変更し変更したプライオリティを記憶するプライオリ
ティ変更記憶手段11bと、資源を獲得したタスクを管
理する資源獲得タスク管理手段11cと、全体の資源数
を保有する資源数保有手段11dと、タスクのプライオ
リティを比較するプライオリティ比較手段11eと、タ
スクが獲得している資源数と新たにタスクが獲得しよう
としている資源数とを比較する資源数比較手段11f
と、新たにタスクが資源を獲得しようとする際に既資源
獲得タスクの中から前記プライオリティ比較手段によっ
て新規資源獲得要求タスクより低いプライオリティのタ
スクを選び出し前記資源数比較手段によってそのうちの
要求資源数を獲得しているタスクを選択しプライオリテ
ィ変更記憶手段11bによりそのプライオリティを変更
記憶するタスク選択制御手段11gとを含んでいる。
【0022】次に、本実施例の動作例(1)について、
図3ないし図10、および表1を参照して説明する。図
3はタスクが資源を獲得する際のフローチャート、図4
は図3のステップS5の処理のプライオリティを上昇さ
せるタスクを決定する際のフローチャート、図5は資源
を返却する際のフローチャート、図6(a)はタスクA
の管理テーブルの初期状態、図6(b)はタスクBの管
理テーブルの初期状態、図6(c)はタスクCの管理テ
ーブルの初期状態、および図6(d)はタスクDの管理
テーブルの初期状態を示す説明図である。また、図7は
タスクDがセマフォXで管理される資源を獲得したとき
の、図8はタスクAとタスクCとがセマフォXで管理す
る資源を獲得したときの、図9はタスクBがセマフォX
に対して資源の獲得要求を出したときの、図10はタス
クBがセマフォXで管理する資源を獲得した際の、セマ
フォキューのそれぞれの状態を示す説明図である。そし
て表1は資源獲得情報の取り得る値を示す。この資源獲
得情報はプライオリティ変更記憶手段の一部を構成して
おり、資源を獲得していないときは0、要求資源獲得時
1、プライオリティ上昇時で他に上昇したタスクの無い
ときは2、他に上昇させたタスクのあるときは3であ
る。
図3ないし図10、および表1を参照して説明する。図
3はタスクが資源を獲得する際のフローチャート、図4
は図3のステップS5の処理のプライオリティを上昇さ
せるタスクを決定する際のフローチャート、図5は資源
を返却する際のフローチャート、図6(a)はタスクA
の管理テーブルの初期状態、図6(b)はタスクBの管
理テーブルの初期状態、図6(c)はタスクCの管理テ
ーブルの初期状態、および図6(d)はタスクDの管理
テーブルの初期状態を示す説明図である。また、図7は
タスクDがセマフォXで管理される資源を獲得したとき
の、図8はタスクAとタスクCとがセマフォXで管理す
る資源を獲得したときの、図9はタスクBがセマフォX
に対して資源の獲得要求を出したときの、図10はタス
クBがセマフォXで管理する資源を獲得した際の、セマ
フォキューのそれぞれの状態を示す説明図である。そし
て表1は資源獲得情報の取り得る値を示す。この資源獲
得情報はプライオリティ変更記憶手段の一部を構成して
おり、資源を獲得していないときは0、要求資源獲得時
1、プライオリティ上昇時で他に上昇したタスクの無い
ときは2、他に上昇させたタスクのあるときは3であ
る。
【0023】
【表1】 プライオリティ管理手段11の下に、図6(a)〜
(d)に示すように、プライオリティ1のタスクAと、
プライオリティ50のタスクBと、プライオリティ10
0のタスクCおよびタスクDと、そのほかにプライオリ
ティ51〜100のタスクとが複数存在し、管理資源数
が5、ID=XのセマフォXが存在している。タスク
A、タスクB、タスクCおよびタスクDはそれぞれセマ
フォXで管理する資源を獲得してその処理を続けるもの
とする。
(d)に示すように、プライオリティ1のタスクAと、
プライオリティ50のタスクBと、プライオリティ10
0のタスクCおよびタスクDと、そのほかにプライオリ
ティ51〜100のタスクとが複数存在し、管理資源数
が5、ID=XのセマフォXが存在している。タスク
A、タスクB、タスクCおよびタスクDはそれぞれセマ
フォXで管理する資源を獲得してその処理を続けるもの
とする。
【0024】なお、プライオリティを上昇させたときに
資源獲得情報が2のタスクよりも資源獲得情報が3のタ
スクを先にキューへつなぎ、その後タスクの起床の順番
は変わらないものとする。
資源獲得情報が2のタスクよりも資源獲得情報が3のタ
スクを先にキューへつなぎ、その後タスクの起床の順番
は変わらないものとする。
【0025】図6(a)〜(d)において、30、4
0、50および60は、それぞれタスクA、B、Cおよ
びDのプライオリティ保存手段としてのタスク管理テー
ブルで、31、41、51および61はタスクのコード
部を示すポインタ、32、33、42、43、52、5
3、62および63はリンクキューで、32、42、5
2および62はそれぞれのタスクの1つ後につながれて
いるタスク管理テーブルを指しており、33、43、5
3および63はそれぞれのタスクの1つ前につながれて
いるタスク管理テーブルを示している。34、44、5
4および64はそれぞれのタスクの現在のプライオリテ
ィの値であり、35、45、55および65はプライオ
リティ上昇時のそれぞれのタスクのプライオリティの値
を表している。36、46、56および66はそのタス
クが要求している資源獲得要求数を、37、47、57
および67はその要求した資源を獲得しているかの資源
獲得情報を示している。
0、50および60は、それぞれタスクA、B、Cおよ
びDのプライオリティ保存手段としてのタスク管理テー
ブルで、31、41、51および61はタスクのコード
部を示すポインタ、32、33、42、43、52、5
3、62および63はリンクキューで、32、42、5
2および62はそれぞれのタスクの1つ後につながれて
いるタスク管理テーブルを指しており、33、43、5
3および63はそれぞれのタスクの1つ前につながれて
いるタスク管理テーブルを示している。34、44、5
4および64はそれぞれのタスクの現在のプライオリテ
ィの値であり、35、45、55および65はプライオ
リティ上昇時のそれぞれのタスクのプライオリティの値
を表している。36、46、56および66はそのタス
クが要求している資源獲得要求数を、37、47、57
および67はその要求した資源を獲得しているかの資源
獲得情報を示している。
【0026】図7で、110はセマフォキューを示し、
101および102はそのリンク情報で、101はキュ
ーの先頭につながっているタスクのタスク管理テーブル
を示し、102はキューの最後につながっているタスク
のタスク管理テーブルを示している。
101および102はそのリンク情報で、101はキュ
ーの先頭につながっているタスクのタスク管理テーブル
を示し、102はキューの最後につながっているタスク
のタスク管理テーブルを示している。
【0027】セマフォXが管理する資源をタスクDが1
つ獲得しようとすると、プライオリティ管理手段11
は、図3のステップS1で要求されたセマフォXに空き
資源が存在するかをチェックする。空き資源が存在する
ので、ステップS3に処理は移り、タスクDにセマフォ
Xの管理する資源を貸し出す。このときに表1により図
6(d)の資源獲得情報67を1に変更して、図7に示
すように、セマフォキュー110に登録する。
つ獲得しようとすると、プライオリティ管理手段11
は、図3のステップS1で要求されたセマフォXに空き
資源が存在するかをチェックする。空き資源が存在する
ので、ステップS3に処理は移り、タスクDにセマフォ
Xの管理する資源を貸し出す。このときに表1により図
6(d)の資源獲得情報67を1に変更して、図7に示
すように、セマフォキュー110に登録する。
【0028】次に、同じくセマフォXが管理する資源に
対しタスクCおよびタスクAが資源の獲得要求を出す
(タスクCが2つ、タスクAが2つ)。プライオリティ
管理手段11は再び図3のステップS1で要求されたセ
マフォXに空き資源が存在するかをチェックし、空き資
源が存在するのでタスクCおよびタスクAにセマフォX
で管理する資源をそれぞれ貸し与え、図8に示すよう
に、それぞれのタスク管理テーブル30および50内の
資源獲得情報37および57を1に変更して、セマフォ
キュー110に登録する。図8において103および1
04はセマフォキュー110のリンク情報で、103は
先頭を示し104は最後を示す。
対しタスクCおよびタスクAが資源の獲得要求を出す
(タスクCが2つ、タスクAが2つ)。プライオリティ
管理手段11は再び図3のステップS1で要求されたセ
マフォXに空き資源が存在するかをチェックし、空き資
源が存在するのでタスクCおよびタスクAにセマフォX
で管理する資源をそれぞれ貸し与え、図8に示すよう
に、それぞれのタスク管理テーブル30および50内の
資源獲得情報37および57を1に変更して、セマフォ
キュー110に登録する。図8において103および1
04はセマフォキュー110のリンク情報で、103は
先頭を示し104は最後を示す。
【0029】さらに、図9に示すように、タスクBがセ
マフォXの管理する資源に対して3つセマフォの獲得要
求を出す。すると、プライオリティ管理手段11は図3
のステップS1で要求されたセマフォXに空き資源が存
在するかどうかをチェックする。しかし、セマフォXで
管理している資源に空き資源は存在しないので、ステッ
プS2に処理は移行して、図9に示すように、セマフォ
の獲得待ちでセマフォキュー110にタスクBを登録す
る。そしてステップS4に移り、セマフォXの管理して
いる資源を獲得しているタスクのうちタスクBよりもプ
ライオリティの低いタスクを選び出す。このときにタス
クBよりもプライオリティの低いタスクがなければ処理
は終了する。この動作例(1)ではタスクCおよびタス
クDが該当する。
マフォXの管理する資源に対して3つセマフォの獲得要
求を出す。すると、プライオリティ管理手段11は図3
のステップS1で要求されたセマフォXに空き資源が存
在するかどうかをチェックする。しかし、セマフォXで
管理している資源に空き資源は存在しないので、ステッ
プS2に処理は移行して、図9に示すように、セマフォ
の獲得待ちでセマフォキュー110にタスクBを登録す
る。そしてステップS4に移り、セマフォXの管理して
いる資源を獲得しているタスクのうちタスクBよりもプ
ライオリティの低いタスクを選び出す。このときにタス
クBよりもプライオリティの低いタスクがなければ処理
は終了する。この動作例(1)ではタスクCおよびタス
クDが該当する。
【0030】さらに、ステップS5のプライオリティを
上昇させるタスクを決める処理へ移る。その際の細かな
処理を図4のフローチャートを用いて説明する。図4の
ステップS11において、セマフォXに関して空き資源
の不足数を計算する。この動作例(1)の場合、セマフ
ォXに空き資源は無く資源の不足数は3つとなる。次
に、ステップS12でプライオリティの低いタスクの中
で1つのタスクが獲得している資源の最大数を求める。
そして、ステップS13において不足数と最大数とを比
較する。この動作例(1)の場合、タスクBよりプライ
オリティが低いタスクで資源を最大個数獲得しているの
は、タスクCの2つである。前記の比較の結果、不足数
の方が多く処理はステップS13からステップS18へ
移行する。
上昇させるタスクを決める処理へ移る。その際の細かな
処理を図4のフローチャートを用いて説明する。図4の
ステップS11において、セマフォXに関して空き資源
の不足数を計算する。この動作例(1)の場合、セマフ
ォXに空き資源は無く資源の不足数は3つとなる。次
に、ステップS12でプライオリティの低いタスクの中
で1つのタスクが獲得している資源の最大数を求める。
そして、ステップS13において不足数と最大数とを比
較する。この動作例(1)の場合、タスクBよりプライ
オリティが低いタスクで資源を最大個数獲得しているの
は、タスクCの2つである。前記の比較の結果、不足数
の方が多く処理はステップS13からステップS18へ
移行する。
【0031】ステップS18においてタスクCのタスク
管理テーブル50内の資源獲得情報57を3に変更す
る。そして、処理をステップS19およびS20に移し
てまだ他にプライオリティの低いタスクがあるかどうか
調べる。このとき他にタスクが存在しなければ、前工程
で選んだタスクCを起床させてその獲得している資源を
返却させても、タスクBは資源を獲得できず起床して処
理を続けることはできないので、先の工程で変更したタ
スクCのタスク管理テーブル50内の資源獲得情報57
を1に戻す。
管理テーブル50内の資源獲得情報57を3に変更す
る。そして、処理をステップS19およびS20に移し
てまだ他にプライオリティの低いタスクがあるかどうか
調べる。このとき他にタスクが存在しなければ、前工程
で選んだタスクCを起床させてその獲得している資源を
返却させても、タスクBは資源を獲得できず起床して処
理を続けることはできないので、先の工程で変更したタ
スクCのタスク管理テーブル50内の資源獲得情報57
を1に戻す。
【0032】ステップS19の処理でタスクCが起床し
て獲得している資源を返却してもまだ不足している資源
の数を求め、その値を新たな不足数として再び、ステッ
プS13の分岐処理に戻る。今度は、不足数1で最大獲
得数はタスクDの1なので、処理はステップS17に移
行する。そしてタスクDのタスク管理テーブル60内の
資源獲得情報67を2に変更する。
て獲得している資源を返却してもまだ不足している資源
の数を求め、その値を新たな不足数として再び、ステッ
プS13の分岐処理に戻る。今度は、不足数1で最大獲
得数はタスクDの1なので、処理はステップS17に移
行する。そしてタスクDのタスク管理テーブル60内の
資源獲得情報67を2に変更する。
【0033】さらに処理は、図3のステップS6に移
り、先の工程までにタスク管理テーブル内の獲得資源情
報を変更されたタスクのプライオリティを上昇させる。
この場合タスクCとタスクDを、タスクBと同等のプラ
イオリティ50まで一時的に上昇させる。そして図10
に示すように、タスクBの資源獲得の際の処理を終了す
る。
り、先の工程までにタスク管理テーブル内の獲得資源情
報を変更されたタスクのプライオリティを上昇させる。
この場合タスクCとタスクDを、タスクBと同等のプラ
イオリティ50まで一時的に上昇させる。そして図10
に示すように、タスクBの資源獲得の際の処理を終了す
る。
【0034】次に、タスクDが資源を返却する際の処理
を、図5のフローチャートを用いて説明する。
を、図5のフローチャートを用いて説明する。
【0035】先のタスクBの資源獲得処理の際、プライ
オリティを上昇させられた、タスクDがセマフォを返却
するとき、図5のステップS31でタスクDより返却さ
れるセマフォを空き資源としてステップS32へ処理を
移す。ここで、タスク管理テーブル内の資源獲得情報が
変更されているか(1でないか)を調べる。もしここ
で、資源獲得情報が1であれば、他のタスクの資源獲得
動作によってそのプライオリティを上昇させられたもの
でないので、そのまま返却操作を終了する。タスクDは
タスクBの資源獲得動作により、プライオリティを上昇
させられたタスクなのでステップS32からステップS
33へ処理を移す。ステップS33へ処理を移したとこ
ろでタスクDが獲得していたセマフォはすでに返却され
ているので、タスクDのプライオリティを元に戻す。
オリティを上昇させられた、タスクDがセマフォを返却
するとき、図5のステップS31でタスクDより返却さ
れるセマフォを空き資源としてステップS32へ処理を
移す。ここで、タスク管理テーブル内の資源獲得情報が
変更されているか(1でないか)を調べる。もしここ
で、資源獲得情報が1であれば、他のタスクの資源獲得
動作によってそのプライオリティを上昇させられたもの
でないので、そのまま返却操作を終了する。タスクDは
タスクBの資源獲得動作により、プライオリティを上昇
させられたタスクなのでステップS32からステップS
33へ処理を移す。ステップS33へ処理を移したとこ
ろでタスクDが獲得していたセマフォはすでに返却され
ているので、タスクDのプライオリティを元に戻す。
【0036】処理はステップS34に移り、資源獲得情
報が3であるかどうか(プライオリティを上昇させられ
たタスクが他に存在するか)判別する。この動作例
(1)において、タスクDの資源獲得情報は3で、他に
プライオリティを上昇させたタスクが存在し、タスクC
のプライオリティも上昇していることがわかる。以上の
ようにしてタスクDの資源返却の際の処理を終了する。
そしてタスクCを起床させてタスクCの処理を行う。
報が3であるかどうか(プライオリティを上昇させられ
たタスクが他に存在するか)判別する。この動作例
(1)において、タスクDの資源獲得情報は3で、他に
プライオリティを上昇させたタスクが存在し、タスクC
のプライオリティも上昇していることがわかる。以上の
ようにしてタスクDの資源返却の際の処理を終了する。
そしてタスクCを起床させてタスクCの処理を行う。
【0037】タスクCの資源返却処理時も同様に、まず
ステップS31でタスクCの獲得しているセマフォを空
き資源とし資源の返却処理を行う。このときにセマフォ
キューよりタスクCを削除する。次に、ステップS32
でタスクCの資源獲得情報が変更されているかを調べ
る。変更されているので処理はステップS33へ移行し
てタスクCのプライオリティを元に戻す。そしてステッ
プS34に移り、プライオリティを変更させられたタス
クが他にも存在するかを調べる。タスクCの資源獲得情
報は2であるので他にプライオリティを上昇させられた
タスクは存在しないことがわかる。よって、この処理
は、ステップS35へ移行して、資源を待っていたタス
クが起床することが可能かどうかを調べる。
ステップS31でタスクCの獲得しているセマフォを空
き資源とし資源の返却処理を行う。このときにセマフォ
キューよりタスクCを削除する。次に、ステップS32
でタスクCの資源獲得情報が変更されているかを調べ
る。変更されているので処理はステップS33へ移行し
てタスクCのプライオリティを元に戻す。そしてステッ
プS34に移り、プライオリティを変更させられたタス
クが他にも存在するかを調べる。タスクCの資源獲得情
報は2であるので他にプライオリティを上昇させられた
タスクは存在しないことがわかる。よって、この処理
は、ステップS35へ移行して、資源を待っていたタス
クが起床することが可能かどうかを調べる。
【0038】以上のようにして、プライオリティを上昇
させたタスクの資源返却処理はすべて終了し、タスクB
の要求していた資源が空いたので、タスクBは資源を獲
得して処理を続けることができる。よって処理は図5の
ステップS35から図3のステップS3へ移行してタス
クBの資源獲得情報を1に変更して資源を貸し与える。
させたタスクの資源返却処理はすべて終了し、タスクB
の要求していた資源が空いたので、タスクBは資源を獲
得して処理を続けることができる。よって処理は図5の
ステップS35から図3のステップS3へ移行してタス
クBの資源獲得情報を1に変更して資源を貸し与える。
【0039】以上の処理によってタスクBは要求した資
源を獲得して処理を続けることができる。
源を獲得して処理を続けることができる。
【0040】次に、図11(a)〜(d)を参照して本
実施例の動作例(2)について説明する。
実施例の動作例(2)について説明する。
【0041】図11(a)は動作例(2)で用いる獲得
資源管理テーブルの初期状態であり、図11(b)はタ
スクCが、図11(C)はタスクA、C、Dが、図11
(d)はタスクA、B、Cが、それぞれセマフォXの資
源を獲得したときの獲得資源管理テーブルの資源獲得状
態を示す説明図である。
資源管理テーブルの初期状態であり、図11(b)はタ
スクCが、図11(C)はタスクA、C、Dが、図11
(d)はタスクA、B、Cが、それぞれセマフォXの資
源を獲得したときの獲得資源管理テーブルの資源獲得状
態を示す説明図である。
【0042】図11(a)〜(b)において、120は
セマフォ管理テーブル、130は獲得資源管理テーブル
で、105はそのテーブルの先頭のポインタ、106は
テーブルの最後尾のポインタおよび131は資源を獲得
しているタスクを登録する領域である。前述の動作例
(1)と同様に、プライオリティ管理手段11の管理下
にプライオリティ1のタスクAと、プライオリティ50
のタスクBと、プライオリティ100のタスクCおよび
タスクDと、そのほかにプライオリティ51〜100の
タスクが複数存在する。そして、資源管理数5、ID=
XのセマフォXが存在する。
セマフォ管理テーブル、130は獲得資源管理テーブル
で、105はそのテーブルの先頭のポインタ、106は
テーブルの最後尾のポインタおよび131は資源を獲得
しているタスクを登録する領域である。前述の動作例
(1)と同様に、プライオリティ管理手段11の管理下
にプライオリティ1のタスクAと、プライオリティ50
のタスクBと、プライオリティ100のタスクCおよび
タスクDと、そのほかにプライオリティ51〜100の
タスクが複数存在する。そして、資源管理数5、ID=
XのセマフォXが存在する。
【0043】前述の動作例(1)と同様に、タスクAは
セマフォXで管理される資源を2つ、タスクCは同セマ
フォXで管理される資源を2つ、タスクDも同セマフォ
Xで管理される資源を1つそれぞれ獲得してその処理を
続けるものとする。なお、動作例(1)と同様にプライ
オリティを上昇させたときに資源獲得情報が2のタスク
よりも資源獲得情報が3のタスクを先にキューにつな
ぎ、その後タスクの起床の順番は変わらないものとす
る。
セマフォXで管理される資源を2つ、タスクCは同セマ
フォXで管理される資源を2つ、タスクDも同セマフォ
Xで管理される資源を1つそれぞれ獲得してその処理を
続けるものとする。なお、動作例(1)と同様にプライ
オリティを上昇させたときに資源獲得情報が2のタスク
よりも資源獲得情報が3のタスクを先にキューにつな
ぎ、その後タスクの起床の順番は変わらないものとす
る。
【0044】前述の動作例(1)と同様に、まず、タス
クCがID=XのセマフォXの管理する資源に対し獲得
要求を出す。プライオリティ管理手段11は前述の動作
例(1)と同様の手順でタスクCにセマフォXで管理す
る資源を貸し与える。ただし、このときにタスクCのタ
スク管理テーブル中の資源獲得情報を表1に従って1に
変更して、獲得資源管理テーブル130にタスクCを登
録する(図11(b))。
クCがID=XのセマフォXの管理する資源に対し獲得
要求を出す。プライオリティ管理手段11は前述の動作
例(1)と同様の手順でタスクCにセマフォXで管理す
る資源を貸し与える。ただし、このときにタスクCのタ
スク管理テーブル中の資源獲得情報を表1に従って1に
変更して、獲得資源管理テーブル130にタスクCを登
録する(図11(b))。
【0045】次に、タスクAがセマフォXで管理される
資源を獲得しようと要求を出す。プライオリティ管理手
段11は再び前述の動作例(1)と同様の手順でセマフ
ォXの管理する資源を貸し与えてタスクAの資源獲得情
報を1と変更して獲得資源管理テーブル130にプライ
オリティ順に登録する。さらに、タスクDがセマフォX
の管理する資源に対して資源獲得要求を出す。プライオ
リティ管理手段11はタスクAの資源獲得の際の処理と
同様の処理を行いタスクDにセマフォXにより管理され
る資源を貸し出して、タスクDの資源獲得情報を1に変
更して獲得資源管理テーブル130に登録する(図11
(c))。
資源を獲得しようと要求を出す。プライオリティ管理手
段11は再び前述の動作例(1)と同様の手順でセマフ
ォXの管理する資源を貸し与えてタスクAの資源獲得情
報を1と変更して獲得資源管理テーブル130にプライ
オリティ順に登録する。さらに、タスクDがセマフォX
の管理する資源に対して資源獲得要求を出す。プライオ
リティ管理手段11はタスクAの資源獲得の際の処理と
同様の処理を行いタスクDにセマフォXにより管理され
る資源を貸し出して、タスクDの資源獲得情報を1に変
更して獲得資源管理テーブル130に登録する(図11
(c))。
【0046】そして、セマフォXで管理される資源に対
してタスクBが資源の獲得要求を出す。するとプライオ
リティ管理手段11は図3のステップS1でタスクBが
要求した数だけセマフォXに空き資源が存在するかどう
かを調べる。しかし、存在しないので、図3のステップ
S2でタスクBを待ち状態へ遷移させてステップS4へ
処理を進める。
してタスクBが資源の獲得要求を出す。するとプライオ
リティ管理手段11は図3のステップS1でタスクBが
要求した数だけセマフォXに空き資源が存在するかどう
かを調べる。しかし、存在しないので、図3のステップ
S2でタスクBを待ち状態へ遷移させてステップS4へ
処理を進める。
【0047】図3のステップS4では、タスクBよりプ
ライオリティの低いタスクが、タスクBが獲得しようと
しているセマフォXで管理される資源を獲得しているか
どうか獲得資源管理テーブル130を調べる。新たに資
源を要求したタスクよりもプライオリティの低いタスク
が存在したならば処理は図3のステップS5へ移行し、
プライオリティの低いタスクが存在しないならば、資源
獲得の際の処理を終了する。この動作例(2)では、タ
スクCとタスクDが存在するので、処理は図3のステッ
プS5のプライオリティを上昇させるタスクを決める処
理である図4のフローチャートへ移行する。
ライオリティの低いタスクが、タスクBが獲得しようと
しているセマフォXで管理される資源を獲得しているか
どうか獲得資源管理テーブル130を調べる。新たに資
源を要求したタスクよりもプライオリティの低いタスク
が存在したならば処理は図3のステップS5へ移行し、
プライオリティの低いタスクが存在しないならば、資源
獲得の際の処理を終了する。この動作例(2)では、タ
スクCとタスクDが存在するので、処理は図3のステッ
プS5のプライオリティを上昇させるタスクを決める処
理である図4のフローチャートへ移行する。
【0048】まず、図4のステップS11において、要
求数から空き資源数を引き資源の不足数を求める。次
に、ステップS12に処理は移行して、タスクBよりも
プライオリティの低いタスクの内、セマフォXの資源を
最も多く獲得しているタスクを1つ探しだしその獲得し
ている資源数を最大数として、ステップS13に移行す
る。
求数から空き資源数を引き資源の不足数を求める。次
に、ステップS12に処理は移行して、タスクBよりも
プライオリティの低いタスクの内、セマフォXの資源を
最も多く獲得しているタスクを1つ探しだしその獲得し
ている資源数を最大数として、ステップS13に移行す
る。
【0049】ステップS13では先に求めた不足数と最
大数を比較する。この動作例(2)の場合、不足数は1
で最大数はタスクCの2であるので処理はステップS1
4へ移行する。ステップS14ではタスクCの次に多く
セマフォXによって管理される資源を獲得していて、タ
スクBよりもプライオリティの低いタスクを探し出す。
この動作例(2)ではタスクDが該当する。タスクDの
獲得しているセマフォXの資源数を新たに最大数とし
て、ステップS15へ移り再び不足数と新たに求めた最
大数を比較する。この不足数と最大数の比較において最
大数の方が多い場合にはステップS14に戻り、再び次
に多くセマフォXの資源を獲得しているタスクを探し出
して最大数を求め直す。もし新たに求めた最大数より不
足数の方が多い場合はステップS16に移り、ステップ
S16では前に探しだしたタスクを再び選び、ステップ
S17に移行してそのタスクの資源獲得情報を更新す
る。この動作例(2)の場合は不足数と新たに求めた最
大数が等しいので、ステップS17に移行して新たに求
めたタスクの資源獲得情報を更新して図3のステップS
6へ移行する。この動作例(2)ではタスクDの資源獲
得情報を2に変更する。
大数を比較する。この動作例(2)の場合、不足数は1
で最大数はタスクCの2であるので処理はステップS1
4へ移行する。ステップS14ではタスクCの次に多く
セマフォXによって管理される資源を獲得していて、タ
スクBよりもプライオリティの低いタスクを探し出す。
この動作例(2)ではタスクDが該当する。タスクDの
獲得しているセマフォXの資源数を新たに最大数とし
て、ステップS15へ移り再び不足数と新たに求めた最
大数を比較する。この不足数と最大数の比較において最
大数の方が多い場合にはステップS14に戻り、再び次
に多くセマフォXの資源を獲得しているタスクを探し出
して最大数を求め直す。もし新たに求めた最大数より不
足数の方が多い場合はステップS16に移り、ステップ
S16では前に探しだしたタスクを再び選び、ステップ
S17に移行してそのタスクの資源獲得情報を更新す
る。この動作例(2)の場合は不足数と新たに求めた最
大数が等しいので、ステップS17に移行して新たに求
めたタスクの資源獲得情報を更新して図3のステップS
6へ移行する。この動作例(2)ではタスクDの資源獲
得情報を2に変更する。
【0050】図3のステップS6では、先のプライオリ
ティを上昇させるタスクを決める工程で、資源獲得情報
を変更されたタスクのプライオリティを上昇させる。こ
のとき、新たに設定するプライオリティは新たにセマフ
ォXで管理される資源を要求したタスクBのプライオリ
ティと同等の50とする。そしてタスクBのセマフォX
で管理される資源の獲得の際の処理を終了する。
ティを上昇させるタスクを決める工程で、資源獲得情報
を変更されたタスクのプライオリティを上昇させる。こ
のとき、新たに設定するプライオリティは新たにセマフ
ォXで管理される資源を要求したタスクBのプライオリ
ティと同等の50とする。そしてタスクBのセマフォX
で管理される資源の獲得の際の処理を終了する。
【0051】タスクDはそのプライオリティが100か
ら50へ上昇したことによって、処理が他の51〜10
0のタスクよりも優先されて処理を行うことができる。
そして、タスクDが獲得しているセマフォXの資源を返
却する処理を行う。その際の処理を図5を用いて説明す
る。
ら50へ上昇したことによって、処理が他の51〜10
0のタスクよりも優先されて処理を行うことができる。
そして、タスクDが獲得しているセマフォXの資源を返
却する処理を行う。その際の処理を図5を用いて説明す
る。
【0052】タスクDが獲得している資源を返却する場
合は、まず図5のステップS31でタスクDから返却さ
れる資源を空き資源とする。このとき、獲得資源管理テ
ーブル130よりタスクDを削除する。そしてステップ
S32に移行して、いま、資源を返却したタスクの資源
獲得情報が変更されているかを調べる。もし、タスクの
資源獲得情報が1のまま変更されていなければ、そのタ
スクの資源返却処理は終了する。この動作例(2)のよ
うに資源獲得情報の値が変更されているタスクDが獲得
している資源を返却しようとしたときは、ステップS3
3へ処理は移り、いま資源を返却したタスクは、他のタ
スクが資源の獲得要求を出したことによってそのプライ
オリティを上げられたタスクなのでタスクのプライオリ
ティを元に戻す。タスクDのもと元のプライオリティは
100なので50から100に戻して、処理をステップ
S34に移行させる。
合は、まず図5のステップS31でタスクDから返却さ
れる資源を空き資源とする。このとき、獲得資源管理テ
ーブル130よりタスクDを削除する。そしてステップ
S32に移行して、いま、資源を返却したタスクの資源
獲得情報が変更されているかを調べる。もし、タスクの
資源獲得情報が1のまま変更されていなければ、そのタ
スクの資源返却処理は終了する。この動作例(2)のよ
うに資源獲得情報の値が変更されているタスクDが獲得
している資源を返却しようとしたときは、ステップS3
3へ処理は移り、いま資源を返却したタスクは、他のタ
スクが資源の獲得要求を出したことによってそのプライ
オリティを上げられたタスクなのでタスクのプライオリ
ティを元に戻す。タスクDのもと元のプライオリティは
100なので50から100に戻して、処理をステップ
S34に移行させる。
【0053】ステップS34では、他にプライオリティ
を上昇させられたタスクが存在するかを調べる。これは
いま資源を返却したタスクの資源獲得情報の値が3であ
れば、他のタスクの資源獲得要求の際にプライオリティ
を上昇させられたタスクが複数存在して、2であればそ
のタスクのほかにプライオリティを上昇させられたタス
クは存在しない。もしプライオリティを上昇させられた
タスクが複数存在するならばそのタスクを起床させる動
作(ステップS36)に移行する。この動作例(2)の
ようにプライオリティを上昇させられたタスクが他に存
在しない場合は、ステップS35に処理は移り、資源待
ちの状態にあるタスクが起床することができるかを調べ
る。タスクBはタスクDがその獲得しているセマフォX
の資源を返却したのでその資源を獲得することが可能
で、起床することができる。
を上昇させられたタスクが存在するかを調べる。これは
いま資源を返却したタスクの資源獲得情報の値が3であ
れば、他のタスクの資源獲得要求の際にプライオリティ
を上昇させられたタスクが複数存在して、2であればそ
のタスクのほかにプライオリティを上昇させられたタス
クは存在しない。もしプライオリティを上昇させられた
タスクが複数存在するならばそのタスクを起床させる動
作(ステップS36)に移行する。この動作例(2)の
ようにプライオリティを上昇させられたタスクが他に存
在しない場合は、ステップS35に処理は移り、資源待
ちの状態にあるタスクが起床することができるかを調べ
る。タスクBはタスクDがその獲得しているセマフォX
の資源を返却したのでその資源を獲得することが可能
で、起床することができる。
【0054】タスクBが起床して資源を獲得するとき
は、ステップS25から図3のステップS3に移行して
タスクBのタスク管理テーブル内の資源獲得情報を1に
変更し、タスクBを獲得資源管理テーブルに登録して処
理を続ける。この状態を図11(d)に示す。
は、ステップS25から図3のステップS3に移行して
タスクBのタスク管理テーブル内の資源獲得情報を1に
変更し、タスクBを獲得資源管理テーブルに登録して処
理を続ける。この状態を図11(d)に示す。
【0055】
【発明の効果】以上説明したように、本発明は、タスク
管理テーブル内に獲得資源数と獲得情報を保存しておく
領域を追加し、さらにタスクが資源を獲得するとキュー
に管理テーブルの情報をそのまま残して、そのタスクよ
りもプライオリティの高いタスクが同じ資源を要求し、
獲得し得なかった場合に、プライオリティの低いタスク
のプライオリティを上昇させる手段を追加することによ
り、資源を獲得していたタスクの処理が優先され、素早
く処理を終えて資源を素早く返却できる。従って、プラ
イオリティの高いタスクが資源待ちの状態になっている
時間が短くなり、資源の有効活用ができる効果がある。
管理テーブル内に獲得資源数と獲得情報を保存しておく
領域を追加し、さらにタスクが資源を獲得するとキュー
に管理テーブルの情報をそのまま残して、そのタスクよ
りもプライオリティの高いタスクが同じ資源を要求し、
獲得し得なかった場合に、プライオリティの低いタスク
のプライオリティを上昇させる手段を追加することによ
り、資源を獲得していたタスクの処理が優先され、素早
く処理を終えて資源を素早く返却できる。従って、プラ
イオリティの高いタスクが資源待ちの状態になっている
時間が短くなり、資源の有効活用ができる効果がある。
【図1】本発明の一実施例の要部を示すブロック構成
図。
図。
【図2】本発明の一実施例のシステム全体を示すブロッ
ク構成図。
ク構成図。
【図3】実施例においてタスクが資源を獲得するときの
処理手順を示すフローチャート。
処理手順を示すフローチャート。
【図4】図3のステップS5におけるプライオリティを
上昇させるタスクを決定する処理のフローチャート。
上昇させるタスクを決定する処理のフローチャート。
【図5】実施例においてタスクが資源を返却するときの
処理手順を示すフローチャート。
処理手順を示すフローチャート。
【図6】実施例のタスク管理テーブルの初期状態を示す
説明図。
説明図。
【図7】タスクDが資源を獲得したときのセマフォキュ
ーの状態を示す説明図。
ーの状態を示す説明図。
【図8】タスクAおよびCが資源を獲得したときのセマ
フォキューの状態を示す説明図。
フォキューの状態を示す説明図。
【図9】タスクBが資源を要求したときのセマフォキュ
ーの状態を示す説明図。
ーの状態を示す説明図。
【図10】タスクBが資源を獲得したときのセマフォキ
ューの状態を示す説明図。
ューの状態を示す説明図。
【図11】実施例の獲得資源管理テーブルとタスクの資
源獲得の状態を示す説明図。
源獲得の状態を示す説明図。
【図12】従来例においてタスクが資源を獲得するとき
の処理手順を示すフローチャート。
の処理手順を示すフローチャート。
【図13】従来例においてタスクが資源を返却するとき
の処理手順を示すフローチャート。
の処理手順を示すフローチャート。
【図14】従来例におけるタスク管理テーブルを示す説
明図。
明図。
【図15】従来例における資源管理テーブルを示す説明
図。
図。
10 CPU 11 プライオリティ管理手段 11a プライオリティ保存手段 11b プライオリティ変更記憶手段 11c 資源獲得タスク管理手段 11d 資源数保有手段 11e プライオリティ比較手段 11f 資源数比較手段 11g タスク選択制御手段 20 メモリ 21 シリアルコントローラ 22 割り込みコントローラ 23 タイマコントローラ 24 バス 30、40、50、60、70、80 タスク管理テ
ーブル 31、41、51、61、71、81、105〜108
ポインタ 32、33、42、43、52、53、62、63 リ
ンクキュー 72、73、82、83、101〜104、111、1
12 リンク情報 34、44、54、64、74、84 プライオリテ
ィ 35、45、55、65 (上昇時の)プライオリテ
ィ 36、46、56、66 資源獲得要求数 37、47、57、67 資源獲得情報 90 資源管理テーブル 110 セマフォキュー 120 セマフォ管理テーブル 130 獲得資源管理テーブル 131 領域 140 セマフォ待ちキュー S1〜S6、S11〜S20、S31〜S36、S41
〜S43、S51ステップ
ーブル 31、41、51、61、71、81、105〜108
ポインタ 32、33、42、43、52、53、62、63 リ
ンクキュー 72、73、82、83、101〜104、111、1
12 リンク情報 34、44、54、64、74、84 プライオリテ
ィ 35、45、55、65 (上昇時の)プライオリテ
ィ 36、46、56、66 資源獲得要求数 37、47、57、67 資源獲得情報 90 資源管理テーブル 110 セマフォキュー 120 セマフォ管理テーブル 130 獲得資源管理テーブル 131 領域 140 セマフォ待ちキュー S1〜S6、S11〜S20、S31〜S36、S41
〜S43、S51ステップ
Claims (1)
- 【請求項1】 タスクの動作をプライオリティで管理す
るプライオリティ管理手段を有する中央処理装置と、メ
モリとを備えたコンピュータシステムにおいて、 前記プライオリティ管理手段は、 タスクに1対1に対応するプライオリティをプライオリ
ティ順に保存するプライオリティ保存手段と、 プライオリティを変更し変更したプライオリティを記憶
するプライオリティ変更記憶手段と、 資源を獲得したタスクを管理する資源獲得タスク管理手
段と、 全体の資源数を保有する資源数保有手段と、 タスクのプライオリティを比較するプライオリティ比較
手段と、 タスクが獲得している資源数と新たにタスクが獲得しよ
うとしている資源数とを比較する資源数比較手段と、 新たにタスクが資源を獲得しようとする際に既資源獲得
タスクの中から前記プライオリティ比較手段によって新
規資源獲得要求タスクより低いプライオリティのタスク
を選び出し、前記資源数比較手段によってそのうちの要
求資源数を獲得しているタスクを選択し、前記プライオ
リティ変更記憶手段によりそのプライオリティを上昇さ
せて記憶するタスク選択制御手段とを含むことを特徴と
するコンピュータシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27991991A JPH05120042A (ja) | 1991-10-25 | 1991-10-25 | コンピユータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27991991A JPH05120042A (ja) | 1991-10-25 | 1991-10-25 | コンピユータシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05120042A true JPH05120042A (ja) | 1993-05-18 |
Family
ID=17617742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27991991A Pending JPH05120042A (ja) | 1991-10-25 | 1991-10-25 | コンピユータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05120042A (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6125249A (ja) * | 1984-07-14 | 1986-02-04 | Fujitsu Ltd | 排他制御方式 |
JPS6265137A (ja) * | 1985-09-17 | 1987-03-24 | Fujitsu Ltd | ユ−ザ・タスクの優先度制御方式 |
JPH0365732A (ja) * | 1989-08-03 | 1991-03-20 | Matsushita Electric Ind Co Ltd | 資源管理方法 |
-
1991
- 1991-10-25 JP JP27991991A patent/JPH05120042A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6125249A (ja) * | 1984-07-14 | 1986-02-04 | Fujitsu Ltd | 排他制御方式 |
JPS6265137A (ja) * | 1985-09-17 | 1987-03-24 | Fujitsu Ltd | ユ−ザ・タスクの優先度制御方式 |
JPH0365732A (ja) * | 1989-08-03 | 1991-03-20 | Matsushita Electric Ind Co Ltd | 資源管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9177027B2 (en) | Database management system and method | |
US8996811B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
US5790851A (en) | Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment | |
CN113778694B (zh) | 一种任务处理方法、装置、设备及介质 | |
US20030037091A1 (en) | Task scheduling device | |
JPH10301793A (ja) | 情報処理装置及びスケジューリング方法 | |
WO2011148553A1 (ja) | 情報処理装置および情報処理方法 | |
US20050066093A1 (en) | Real-time processor system and control method | |
JPH05120042A (ja) | コンピユータシステム | |
CN110851245A (zh) | 一种分布式异步任务调度方法及电子设备 | |
JP2594600B2 (ja) | シングルチップマイクロコンピュータ | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
JPH05120041A (ja) | 資源割り当て管理方式 | |
JP2002073354A (ja) | タスク制御装置とタスク制御方法 | |
JPH05108380A (ja) | データ処理システム | |
JP2693916B2 (ja) | タスクスケジュール方法 | |
JPH04195432A (ja) | タスク管理装置 | |
JP2011248469A (ja) | 情報処理装置および情報処理方法 | |
JPH08314740A (ja) | プロセスディスパッチ方法 | |
JPH0512173A (ja) | 情報処理装置 | |
JPH06202884A (ja) | マルチプログラム実行管理方法 | |
JP2003050709A (ja) | タスクスケジューリング方法および装置 | |
JPH01185734A (ja) | バッファメモリ管理方式 | |
JPH0424828A (ja) | マルチタスク管理方式 | |
JPH04100156A (ja) | タスクプライオリティ管理装置 |