図面 (/)

技術 タスクの優先度制御方法、タスクの優先度制御装置

出願人 株式会社日立国際電気
発明者 堀井貞義保井毅布村一朗
出願日 1994年9月1日 (26年2ヶ月経過) 出願番号 1994-208746
公開日 1996年3月22日 (24年8ヶ月経過) 公開番号 1996-077025
状態 拒絶査定
技術分野 マルチプログラミング
主要キーワード 半導体制御装置 操作ルーチン 一時変更 継承処理 固定優先度 解除待ち 逆転現象 割り込み可能
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(1996年3月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (5)

目的

オーバヘッドの増加を極力抑えてタスク優先度逆転現象を防止する。

構成

低位優先度タスク7が資源管理手段3を介して共有資源専有使用している最中に、高位優先度のタスク5から同じ共有資源の使用要求発行されると、タスク管理手段2はタスク7の優先度を共有資源の使用終了までの間、タスク5の優先度に一時変更する。

効果

優先度の一時変更により、タスク7の共有資源使用中に中位優先度のタスク6から割り込みが入ってタスク7の処理が後回しになり、結果としてタスク6がより優先度の高いタスク5より先に処理を行うという、逆転現象が防止される。

概要

背景

半導体制御装置などの従来のリアルタイムオペレーティングシステムでは、オペレーティングシステムリアルタイム性補償する手段として、固定優先度スケジューリングサポートしている。すなわち、複数のタスクの各々に予め優先度を定めておいて、高い優先度のタスクを優先して実行するようにしている。

また、オペレーティングシステム資源へのアクセス割り込み可能(Preemption)にする試みも行われている。例えば、Unix System V R4.0,Lynxos などがあり、これらは、オペレーティングシステムの処理を細かく分析し、中断可能なコード部分を見つけてそこで割り込みを行えるようにすることで、オペレーティングシステムの処理中であっても割り込みによりオペレーティングシステム資源を優先度のより高いタスクが優先使用できるようにするものである。

さらに、あるタスクが共有資源を使用して処理を行っているときに、より優先度の高いタスクからの処理要求が発生したとき、その高い優先度を一時的に実行中のタスクに継承させる方式が、カーネギメロン大学のARTS(Advanced Real Time System)や、Real-Time Mach として研究されている。

概要

オーバヘッドの増加を極力抑えてタスク優先度逆転現象を防止する。

低位優先度のタスク7が資源管理手段3を介して共有資源を専有使用している最中に、高位優先度のタスク5から同じ共有資源の使用要求発行されると、タスク管理手段2はタスク7の優先度を共有資源の使用終了までの間、タスク5の優先度に一時変更する。

優先度の一時変更により、タスク7の共有資源使用中に中位優先度のタスク6から割り込みが入ってタスク7の処理が後回しになり、結果としてタスク6がより優先度の高いタスク5より先に処理を行うという、逆転現象が防止される。

目的

本発明の目的は、システムのオーバヘッド無しに優先度の逆転現象を防止することのできる、タスクの優先度制御方法およびその装置を提供するにある。

効果

実績

技術文献被引用数
4件
牽制数
10件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数のタスクの各々にその優先度を予め設定し、より優先度の高いタスクを優先して実行するシステムのタスクの優先度制御方法において、1つのタスクがある共有資源占有して使用している最中に、より優先度の高い別のタスクから上記共有資源の使用要求発行されたとき、上記1つのタスクの優先度を上記別のタスクの優先度に一時変更し、上記1つのタスクによる上記共有資源の使用が終了したとき、上記一時変更した優先度を元の優先度へ戻すことを特徴とするタスクの優先度制御方法。

請求項2

複数のタスクに優先度を設定する第1の手段と、1つのタスクがある共有資源を占有しているときに別のタスクが上記共有資源の使用要求を発行したときに、上記共有資源を占有しているタスクの優先度を検出する第2の手段と、該第2の手段により検出した優先度が上記別のタスクの優先度より低いときに上記1つのタスクの優先度を上記別のタスクの優先度に一時変更する第3の手段と、上記1つのタスクによる上記共有資源の占有使用が終了したときに上記一時変更した1つのタスクの優先度を元へ戻す第4の手段とを備えたことを特徴とするタスクの優先度制御装置

技術分野

0001

本発明は、タスク優先度制御方法およびその装置に係わり、とくに半導体制御装置などのリアルタイム性が要求される制御システムに適したタスクの優先度制御方法に関する。

背景技術

0002

半導体制御装置などの従来のリアルタイムオペレーティングシステムでは、オペレーティングシステムのリアルタイム性を補償する手段として、固定優先度スケジューリングサポートしている。すなわち、複数のタスクの各々に予め優先度を定めておいて、高い優先度のタスクを優先して実行するようにしている。

0003

また、オペレーティングシステム資源へのアクセス割り込み可能(Preemption)にする試みも行われている。例えば、Unix System V R4.0,Lynxos などがあり、これらは、オペレーティングシステムの処理を細かく分析し、中断可能なコード部分を見つけてそこで割り込みを行えるようにすることで、オペレーティングシステムの処理中であっても割り込みによりオペレーティングシステム資源を優先度のより高いタスクが優先使用できるようにするものである。

0004

さらに、あるタスクが共有資源を使用して処理を行っているときに、より優先度の高いタスクからの処理要求が発生したとき、その高い優先度を一時的に実行中のタスクに継承させる方式が、カーネギメロン大学のARTS(Advanced Real Time System)や、Real-Time Mach として研究されている。

発明が解決しようとする課題

0005

固定優先度スケジューリングを行う場合、資源利用競合が生じたときに、優先度の低いタスクが高いタスクより先に実行されてしまうという、優先度の逆転現象が発生することがある。図4はその現象の説明図で、低い優先度のタスク1がある資源Aをロックしているとする(状態S1)。このとき高い優先度のタスク4が起動され、同じ資源Aを要求したとすると、資源Aはすでにタスク1にロックされているため、その解除待ちの状態S2となる。そしてタスク1の処理が続けられる(状態S3)。このときタスク1のロックが解除される前に、中位の優先度のタスク2あるいはタスク3が起動されてその処理状態S3、S4などになると(タスク2、3から資源Aは要求されていないとする)、そのあいだ低い優先度のタスク1は資源Aをロックしたまま待ち状態になる。中位の優先度のタスク2または3などの処理が終わってタスク1の処理状態に戻り、さらにこれが終わって資源Aのロックが解除され、ここで初めてタスク4による資源Aのロック(状態S7)が可能になる。こうしてタスク4より低い優先度のタスク2、3などが、タスク4より先に実行されてしまうという、優先度の逆転現象が生じ、リアルタイム性を損なうことになる。

0006

前記従来技術の内、Unix System V R4.0 などの方法では、オペレーティングシステム資源へのアクセスを割り込み可能にすることはできても、ユーザレベルで使用する資源に関しては関知していない。これは、ユーザレベルで資源の排他を制御しているものに関しては、オペレーティングシステムは関与できないからである。

0007

また、カーネギメロン大学で研究中のARTS などの方法では、オペレーティングシステムはタスクの優先度構成に係わらず、すべての資源の排他制御において、優先度の逆転現象を解消しようと、タスクが排他資源を要求する時点すべてで優先度継承のための処理を行う。しかし、同じ資源を利用するタスクの間に優先度の差異がない場合、あるいは同じ資源を利用する高位の優先度のタスクと、低位の優先度のタスクの間の優先度を持つタスクが存在しない場合には、優先度の継承処理は不要であり、このためシステムのオーバヘッドは増大する。

0008

本発明の目的は、システムのオーバヘッド無しに優先度の逆転現象を防止することのできる、タスクの優先度制御方法およびその装置を提供するにある。

課題を解決するための手段

0009

上記の目的は、複数のタスクの各々にその優先度を予め設定し、より優先度の高いタスクを優先して実行するシステムのタスクの優先度制御方法において、1つのタスクがある共有資源を占有して使用している最中に、より優先度の高い別のタスクから上記共有資源の使用要求発行されたとき、上記1つのタスクの優先度を上記別のタスクの優先度に一時変更し、上記1つのタスクによる上記共有資源の使用が終了したとき、上記一時変更した優先度を元の優先度へ戻すことにより達成される。

0010

1つのタスクがある共有資源を占有している最中に、より優先度の高い別のタスクがその共有資源の使用要求をしたとき、占有中のタスクの優先度を別のタスクの優先度に一時置き換えるから、上記1つのタスクの優先度と別のタスクの優先度の中間の優先度を持つ第3のタスクは割り込めないから、上記1つのタスクの実行を遅らせ、従って上記別のタスクの上記共有資源へのアクセスを遅らせるという、優先度の逆転現象を防止できる。また、優先度の一時変更は、より優先度の高いタスクからの共有資源要求がその共有資源が他のより低い優先度のタスクに占有されているときだけ行われるので、優先度の一時変更のためのオーバヘッド増加は必用最小限に抑えられる。

0011

以下、本発明を実施例により詳細に説明する。図3は、タスクの優先度にもとづいてマルチタスクの制御を行うシステムの機能ブロック図で、処理待ちキューA〜Cを参照し、決められたルールに従って各タスクを起動するスケジューリング手段1、タスク管理テーブルDに各タスクの状態を格納し、また処理待ちキューA〜Cに処理待ち状態を格納するタスク管理手段2、メモリ、装置などのハードウェア資源や、排他制御のためのフラグ領域などのソフト資源を資源管理テーブルEを用いて管理する資源管理手段3、およびタスクインタフェース4などがオペレーティングシステムに含まれる部分で、これらにより各優先度のタスク5〜7の実行順序が制御される。

0012

図1は、本発明の制御方法の一実施例を示すフローチャートで、図3のシステム上で実行される。タスク5〜7には、優先度の設定を行うことができるシステムコール(オペレーティングシステムへのサービス要求を行うこと)setprio と、タスク管理手段2を介して優先度の参照を行うことができるシステムコール getprio と、資源管理手段3により排他制御のためのロックの資源(セマフォと呼ぶ)を作成するシステムコール getsem 、セマフォを操作する(ロック/開放する)ためのシステムコール opsem 、およびセマフォの情報(おもに先にロックしているタスクの番号)を得るためのシステムコール ctrlsem などが用意されていて、次に示すようなアルゴリズムで利用される。

0013

まず図1の資源利用サブルーチンでは、最初に資源に対応したセマフォを操作してウエイトなしのロックを試みる(ステップ101)。即ち、ウエイトなしを指定して opsem を呼び出すと、セマフォをロックできたか、出来ないかに係わらずすぐにリターンして来る。ここで指定するセマフォとは、予め排他制御する資源に対応させて、ロックの資源を getsem によって作成しておいたものである。

0014

リターンの値を参照して(ステップ102)、既に他者がロック中であれば、そのロック中のタスクの番号を ctrlsem で得る(ステップ103)。又ロック中でなければ、資源操作サブルーチンを呼び出す(ステップ110)。ロック中タスク番号を得たときは、そのタスク番号を指定して getprio を呼び出し、ロック中のタスクの優先度を得る(ステップ104)。

0015

次に、ここで得たロック中のタスクの優先度と自分の優先度とを比較し(ステップ105)、ロック中のタスクの優先度の方が高ければ、セマフォを操作してウエイト指定でロックを要求する(ステップ109)。ウエイト指定でロックを要求すると、他者がロックを開放するまで処理の実行はブロックされる。又ロック中のタスクの優先度が自分の優先度よりも低ければ、setprio を呼び出してロック中のタスクの優先度を自分の優先度で置き換える(優先度の継承、ステップ106)。こうしておいてセマフォを操作し、ウエイト指定でロックを要求する(ステップ107)。

0016

こうしてウエイト指定でロックを要求すると、他者がロックを開放するまで、処理の実行はブロックされる。そしてタスクが再度スケジュールされたら、先にロックしていたタスクは、セマフォを開放したことを示すので、先ほど与えた自分の優先度を元の優先度に setprio を呼び出して戻してやる(ステップ108)。その後、資源操作ルーチンを呼び出し、実際の資源への操作を行う(ステップ110)。資源への操作が終了すると、セマフォを開放して(ステップ111)終了する。

0017

同じ資源を利用するタスクの間に優先度の差異がない場合や、同じ資源を利用する高位の優先度のタスクの優先度と低位の優先度のタスクの優先度の間の優先度をもつタスクが存在しない場合などの、優先度継承の機構がいらない場合には、図2に示したような単純な機構で資源を利用すればよい。

発明の効果

0018

本発明によれば、優先度の逆転現象によって不確実となっていたリアルタイム性が保証できるようになる。また、ARTS やReal-Time Mach での、オペレーティングシステム側でタスクの優先度の構成に係わらず、全ての資源の排他制御に於て、タスクが排他資源を要求する時点全てで優先度継承のための機構が動作してしまう方式では、常に5〜8マイクロ秒のオーバヘッドが発生していたが、本方式によればこれを防止できる。

図面の簡単な説明

0019

図1本発明の優先度制御方法の一実施例を示すフローチャートである。
図2優先度継承の必要がないときの優先度制御方法を示すフローチャートである。
図3タスクの優先度に基づいて優先度制御を行うシステムの例を示すブロック図である。
図4優先度逆転現象の説明図である。

--

0020

1スケジューリング手段
2タスク管理手段
3資源管理手段
4タスクインタフェース
5、6、7 タスク

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ