[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH08314740A - プロセスディスパッチ方法 - Google Patents

プロセスディスパッチ方法

Info

Publication number
JPH08314740A
JPH08314740A JP7117386A JP11738695A JPH08314740A JP H08314740 A JPH08314740 A JP H08314740A JP 7117386 A JP7117386 A JP 7117386A JP 11738695 A JP11738695 A JP 11738695A JP H08314740 A JPH08314740 A JP H08314740A
Authority
JP
Japan
Prior art keywords
time
executed
real
execution
sharing
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
JP7117386A
Other languages
English (en)
Inventor
Kazuo Yorichika
和夫 頼近
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP7117386A priority Critical patent/JPH08314740A/ja
Publication of JPH08314740A publication Critical patent/JPH08314740A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 実時間プロセスを起動すべき所定の事象の発
生によるオーバヘッドの増大を抑制する。 【構成】 (C)に示すように、CPU1で時分割プロ
セスAを実行しており、CPU2で時分割プロセスBを
予め設定された繰越し境界時間T2以上実行している状
況で実時間プロセスを起動すべきイベントが発生した場
合、プロセスBの実行を中断して実時間プロセスを起動
する。実時間プロセスの実行が終了した後は、プロセス
Bに続いて実行すべき時分割プロセスCをCPU2で実
行させ、プロセスBのタイムスライス時間の不足分Xは
次回に繰り越し、次にプロセスBが起動((C)の) さ
れた際には、プロセスBのタイムスライス時間T1と不
足分Xとの和に相当する時間だけプロセスBを実行す
る。これにより、(B)に示す従来方式と比較してプロ
セスのディスパッチの回数を少なくできる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプロセスディスパッチ方
法に係り、特に、所定の事象が発生した場合に実行すべ
きプロセス、及び定期的に実行すべきプロセスを各々実
行するプロセスディスパッチ方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】情報処
理装置において、CPUを複数のプロセスに順に割り当
ててマルチタスクで処理を行う場合には、各プロセスの
実行においてイベント発生待ち(例えばデータの入力や
データの出力完了に伴う割込み信号の入力待ち、特定の
資源の解放待ち等)となる回数が多いか少ないか等によ
り、各プロセスをイベントが発生した場合に起動・実行
するプロセス(以下、実時間プロセスという)と、定期
的に予め定められた所定時間だけ実行するプロセス(以
下、時分割プロセスという)と、に予め区分すると共
に、各プロセスに対して実行の優先度を定めておき、実
行中のプロセスのCPU使用時間やイベントの発生の有
無や各プロセスの優先度等に応じて、CPUを割り当て
るプロセスを切替えるディスパッチ方式が知られてい
る。
【0003】上記方式において、実時間プロセスを起動
すべきイベントが発生していない場合には、一例として
図14(A)にも示すように複数の時分割プロセスが順
次実行される。図14(A)には時分割プロセスA〜C
(優先度はプロセスC>プロセスB>プロセスAとす
る)を実行する際の動作の一例を示しており、プロセス
Cを所定時間実行するとプロセスBが起動(ディスパッ
チ)され(図14(A)の)、プロセスBを所定時間
実行するとプロセスAが起動され(図14(A)の
)、プロセスAを所定時間実行するとプロセスCが再
び起動される(図14(A)の)。
【0004】図14(A)からも明らかなように、各プ
ロセスに対しCPUを割当てる時間(各プロセスの実行
時間)は、プロセスの優先度が高くなるに従って長くな
るように設定されており、何れかのプロセスが自発的に
イベント発生待ち等の待ち状態にならない限りは、プロ
セスC→B→Aの順に、各プロセスの優先度に応じた時
間だけ繰り返し実行される。
【0005】また、実時間プロセスを起動すべきイベン
トが発生した場合には、一例として図14(B)に示す
ように実時間プロセスが実行される。図14(B)には
実時間プロセスD〜F(優先度はプロセスF>プロセス
E>プロセスDとする)を実行する際の動作の一例を示
しており、プロセスD実行中にプロセスEを起動すべき
イベント1が発生すると直ちにプロセスEが起動され
(図14(B)の)、プロセスEで他のプロセスの起
動要求やイベントの設定が行われなければ、プロセスE
が自発的に待ち状態に移行したときに、直前に実行して
いたプロセス(図14(B)ではプロセスD)が再び起
動される(図14(B)の)。また同様に、プロセス
Eの起動を促すイベント2、プロセスFの起動を促すイ
ベント3が連続して発生すると(図14(B)の、
)、イベントが発生する毎に実行中のプロセスが直ち
に中断されて対応するプロセスが起動される。
【0006】実時間プロセスは、イベントの発生に対し
高い応答性を確保するため、対応するイベントが発生す
ると直ちに起動される代わりに、CPUを長時間に亘っ
て占有することがないようにCPU使用時間が制限され
ていることが一般的である。図14(B)においても、
イベントの発生により起動された実時間プロセスは、他
のプロセスを起動すべきイベントが発生しなくても比較
的短時間実行された後に自発的に待ち状態に移行し、他
のプロセスが起動されている(図14(B)の、及
び)。
【0007】また、時分割プロセスと実時間プロセスと
が混在した場合の動作の一例を図14(C)に示す。図
14(C)に示した例では、時分割プロセスCが所定時
間実行されることにより時分割プロセスBが起動され
(図14(C)の)てから、比較的短い時間が経過し
た後に実時間プロセスEを起動すべきイベント4が発生
しており(図14(C)の)、このイベント4の発生
により時分割プロセスBの実行が中断されて実時間プロ
セスEが直ちに起動される。時分割プロセスBは実時間
プロセスEが自発的に待ち状態に移行した時点で再起動
され(図14(C)の)、実行中断前のCPU使用時
間(図14(C)の〜の時間)と、実行再開後のC
PU使用時間(図14(C)の以降の時間)との合計
が所定時間に達すると、次に実行すべき時分割プロセス
Cが起動される(図14(C)の)。
【0008】ところで、CPUを割り当てるプロセスの
切替えは、実行中のプロセスからOS(オペレーティン
グシステム)へCPUが明け渡され、OSにより、実行
していたプロセスのキューへの繋ぎ替え、次に実行すべ
きプロセスの判断、判断したプロセスのキューからの取
出し等が行われた後に、OSから前記キューから取出さ
れたプロセスへCPUが明け渡される等の一連の処理に
より実現される。このプロセスの切替えは、マルチタス
クで処理を行う場合に必須の処理であるが、プロセスの
実行のようにCPUで実行すべき本質的な処理ではな
く、情報処理装置のオーバヘッドである。情報処理装置
の実質的な処理能力を向上させるにはオーバヘッドをな
るべく小さくすることが望ましい。
【0009】先に説明した図14(A)〜(C)では、
プロセスの切替えが行われるタイミングを丸付き数字及
び矢印で示しているが、図14からも明らかなように、
前述したディスパッチ方式では、時分割プロセス実行中
にイベントが発生し実時間プロセスの起動が必要となっ
た場合(図14(C))に、時分割プロセスのみを実行
している場合及び実時間プロセスのみを実行している場
合と比較してプロセスの切替え回数が増加し、オーバヘ
ッドが増大して情報処理装置の実質的な処理能力が低下
する、という問題があった。
【0010】また、上記に関連して特開平2-156337号公
報には、各プロセスに適切な優先度を設定するために、
ファジイ関数を用い応答要求の度合い及びI/O要求の
度合いを考慮して各プロセスの優先度を決定する技術が
示されている。また、特開平6-12263号公報には、装置
全体のスループットを向上させるために、CPU使用率
やI/O使用率を考慮してプロセスの優先順位を動的に
変更する方式が示されている。しかし、上記何れの公報
に記載の技術についても、前述の問題に関して何ら考慮
されておらず、時分割プロセス実行中に実時間プロセス
を起動すべきイベントが発生した場合のオーバヘッドの
増大を回避できない。
【0011】本発明は上記事実を考慮して成されたもの
で、実時間プロセスを起動すべき所定の事象の発生によ
りオーバヘッドが増大することを抑制できるプロセスデ
ィスパッチ方法を得ることが目的である。
【0012】
【課題を解決するための手段】上記目的を達成するため
に請求項1記載の発明は、定期的に実行すべき複数の時
分割プロセス及び所定の事象が発生した場合に実行すべ
き実時間プロセスを各々実行するにあたり、前記複数の
時分割プロセスの各々に対し、通常実行時間及び該通常
実行時間よりも短い繰越し境界時間を予め定めておき、
前記所定の事象が発生していない場合は、前記複数の時
分割プロセスの各々を、各時分割プロセスの通常実行時
間だけ順にかつ繰返し実行し、所定の事象の発生に伴い
実時間プロセスを起動するために実行中の所定の時分割
プロセスの実行を中断する場合は、前記所定の時分割プ
ロセスの実行を開始してからの経過時間が前記所定の時
分割プロセスの繰越し境界時間以上であれば、前記所定
の時分割プロセスの実行を中断して前記実時間プロセス
を起動し、時分割プロセスを実行可能な状態となったと
きには前記所定の時分割プロセスに続いて実行すべき別
の時分割プロセスを実行すると共に、前記実行の中断に
より生じた前記所定の時分割プロセスの通常実行時間の
不足分を、前記所定の時分割プロセスを再び実行する際
へ繰り越すことを特徴としている。
【0013】請求項2記載の発明は、所定の事象が発生
した場合に実行すべき実時間プロセスを含む多数のプロ
セスを各々実行するにあたり、前記所定の事象が発生し
た場合に、予め設定した許容遅延時間内に現在実行中の
プロセスが待機状態になるか否かを判断し、現在実行中
のプロセスが許容遅延時間内に待機状態となると判断し
た場合には、前記プロセスが待機状態となったときに前
記実時間プロセスを起動することを特徴としている。
【0014】請求項3記載の発明は、所定の事象が発生
した場合に実行すべき実時間プロセスを含む多数のプロ
セスを各々実行するにあたり、前記所定の事象が発生し
た場合に、現在実行中のプロセスが待機状態になるか、
又は前記所定の事象が発生してからの経過時間が予め設
定した許容遅延時間となったときに前記実時間プロセス
を起動することを特徴としている。
【0015】請求項4記載の発明は、請求項2又は請求
項3記載の発明において、前記多数のプロセスには、定
期的に実行すべき複数の時分割プロセスが含まれてお
り、前記複数の時分割プロセスの各々に対し、通常実行
時間及び該通常実行時間よりも短い繰越し境界時間を定
めておき、前記所定の事象が発生していない場合は、前
記複数の時分割プロセスの各々を、各時分割プロセスの
通常実行時間だけ順にかつ繰返し実行し、前記所定の事
象が発生した場合に、実行中でかつ実行を開始してから
前記繰越し境界時間以上経過した所定の時分割プロセス
が有れば、前記所定の時分割プロセスの実行を中断して
前記実時間プロセスを起動し、時分割プロセスを実行可
能な状態となったときには前記所定の時分割プロセスに
続いて実行すべき別の時分割プロセスを実行すると共
に、前記実行の中断により生じた前記所定の時分割プロ
セスの通常実行時間の不足分を、前記所定の時分割プロ
セスを再び実行する際へ繰り越すことを特徴としてい
る。
【0016】請求項5記載の発明は、請求項1又は請求
項4記載の発明において、過去に所定の時分割プロセス
の実行を中断することにより生じた通常実行時間の不足
分を繰り越して前記所定の時分割プロセスを実行してい
るときには、前記所定の時分割プロセスの優先度を通常
時よりも高くすることを特徴としている。
【0017】請求項6記載の発明は、請求項1又は請求
項4記載の発明において、複数の処理部で複数のプロセ
スを並列に実行する場合に、前記複数の処理部のうちの
少なくとも1つの処理部で実行される前記時分割プロセ
スの繰越し境界時間を、他の処理部における時分割プロ
セスの実行状況に応じて変更することを特徴としてい
る。
【0018】
【作用】一般に時分割プロセス、特に優先度の低い時分
割プロセスを要求通りに実行するには、所定期間当りの
実行率(所定期間に占める特定の時分割プロセスのCP
U使用時間の割合)が規定値を満たすようにすることが
重要であり、実行単位の大きさ(1回当りの実行時間)
はそれ程重要ではない。そして、所定期間当りの実行率
が規定値を満たしていれば、実行単位を大きくして実行
回数を少なくした方がオーバヘッドが小さくて済む。本
願発明者は上記事実に想到して本発明を成すに至った。
【0019】このため請求項1記載の発明では、所定の
事象の発生に伴い実時間プロセスを起動するために実行
中の所定の時分割プロセスの実行を中断する場合は、所
定の時分割プロセスの実行を開始してからの経過時間が
所定の時分割プロセスの繰越し境界時間以上であれば、
所定の時分割プロセスの実行を中断して実時間プロセス
を起動し、時分割プロセスを実行可能な状態となったと
きには所定の時分割プロセスに続いて実行すべき別の時
分割プロセスを実行すると共に、前記実行の中断により
生じた所定の時分割プロセスの通常実行時間の不足分
を、所定の時分割プロセスを再び実行する際へ繰り越す
ようにしている。
【0020】上記によれば、時分割プロセスの実行を開
始してからの経過時間が繰越し境界時間以上のとき、す
なわち時分割プロセスの実行時間の残りが少ないときに
は、実時間プロセスを実行した後に中断していた時分割
プロセスの再開を行わないので、時分割プロセスの実行
時間の残りが少ないにも拘わらず時分割プロセスの実行
を再開するために無駄にプロセスの切替え(ディスパッ
チ)を行うことがなくなり、プロセスのディスパッチを
行う回数が従来よりも少なくて済む。これにより、実時
間プロセスを起動すべき所定の事象の発生によりオーバ
ヘッドが増大することを抑制できる。
【0021】また上記では、実時間プロセスを起動した
後に、時分割プロセスを実行可能な状態となったときに
は実行が中断された所定の時分割プロセスに続いて実行
すべき別の時分割プロセスを実行するので、所定の事象
の発生により実行が中断された時分割プロセスの実行率
は一時的に低下することになるが、実行の中断により生
じた時分割プロセスの通常実行時間の不足分は、時分割
プロセスを再び実行する際に繰り越され、再び実行され
る際には通常実行時間よりも長い時間実行されることに
なるので、前記時分割プロセスの実行率の平均値は一定
値に維持されることになる。
【0022】ところで、実時間プロセスを起動すべき所
定の事象が発生した場合、従来は図14にも示すよう
に、直ちに実行中のプロセスを中断して実時間プロセス
を起動することが通例であり、これに伴いプロセスの切
替え回数の増加、オーバヘッドの増大を招いていた。し
かし、所定の事象はプロセスの実行と非同期に発生する
ので、所定の事象が発生してから比較的短時間で、実行
中のプロセスの実行が終了する可能性がある。
【0023】このため請求項2記載の発明では、実時間
プロセスを起動すべき所定の事象が発生した場合に予め
設定した許容遅延時間内に現在実行中のプロセスが待機
状態になるか否かを判断し、現在実行中のプロセスが許
容遅延時間内に待機状態となると判断した場合には、前
記プロセスが待機状態となったときに実時間プロセスを
起動するようにしている。上記によれば、所定の事象が
発生したとしても、予め設定した許容遅延時間内に現在
実行中のプロセスが待機状態になる場合には他のプロセ
スの実行を中断しないので、上記場合におけるプロセス
のディスパッチの回数が少なくて済むので、実時間プロ
セスを起動すべき所定の事象の発生によりオーバヘッド
が増大することを抑制できる。
【0024】なお、時分割プロセスは通常は予め設定さ
れた時間だけ実行されるので、時分割プロセスが実行中
の場合には、該時分割プロセスの実行を開始してからの
経過時間に基づいて、前記待機状態になるか否かの判断
を行うことができる。また、実時間プロセスについては
待機状態となる時間を予め検知することは困難である
が、例えば起動してから自発的に待機状態となる迄の最
大時間を予め計測しておく等により、時分割プロセスが
実行中の場合に該時分割プロセスが待機状態になるか否
かの判断を行うことは可能である。
【0025】また、請求項3記載の発明では、実時間プ
ロセスを起動すべき所定の事象が発生した場合に、現在
実行中のプロセスが待機状態になるか、又は所定の事象
が発生してからの経過時間が予め設定した許容遅延時間
となったときに実時間プロセスを起動するようにしてい
る。前述したように、実時間プロセス或いは時分割プロ
セスについても自発的に待機状態となる時間を予め検知
することは困難であるが、上記によれば、実行中のプロ
セスが許容遅延時間内に待機状態となった場合には、待
機状態となったプロセスに続いて実時間プロセスを実行
することができ、他のプロセスの実行を中断せずに済
む。従って、プロセスのディスパッチの回数が少なくて
済み、実時間プロセスを起動すべき所定の事象の発生に
よりオーバヘッドが増大することを抑制できる。
【0026】また請求項4に記載したように、請求項2
又は請求項3においても、所定の事象が発生した場合
に、実行中でかつ実行を開始してから繰越し境界時間以
上経過した所定の時分割プロセスが有れば、所定の時分
割プロセスの実行を中断して実時間プロセスを起動し、
時分割プロセスを実行可能な状態となったときには所定
の時分割プロセスに続いて実行すべき別の時分割プロセ
スを実行すると共に、実行の中断により生じた前記所定
の時分割プロセスの通常実行時間の不足分を、所定の時
分割プロセスを再び実行する際へ繰り越すことが好まし
い。
【0027】上記によれば、実行中でかつ実行を開始し
てから繰越し境界時間以上経過した所定の時分割プロセ
スが有れば、所定の事象の発生から直ちに実時間プロセ
スが起動されるので、所定の事象の発生に対する実時間
プロセス起動の応答性が向上する。また請求項1と同様
に、所定の事象が発生した際に、実行中の時分割プロセ
スの実行時間の残りが少ないにも拘わらず時分割プロセ
スの実行を再開するために無駄にプロセスのディスパッ
チを行うことがなくなり、プロセスのディスパッチを行
う回数が従来よりも少なくて済むので、実時間プロセス
を起動すべき所定の事象の発生によりオーバヘッドが増
大することを抑制できる。
【0028】ところで、所定の時分割プロセスの実行を
中断し、該中断により生じた通常実行時間の不足分を繰
り越した場合、該不足分を通常実行時間に加えて前記所
定の時分割プロセスを実行している際に、再び所定の事
象の発生等により所定の時分割プロセスの実行が中断さ
れることがある。この場合、所定の時分割プロセスの実
行率が大きく低下することになるので好ましくない。
【0029】上記を考慮すると、請求項5にも記載した
ように、過去に所定の時分割プロセスの実行を中断する
ことにより生じた通常実行時間の不足分を繰り越して所
定の時分割プロセスを実行しているときには、記所定の
時分割プロセスの優先度を通常時よりも高くすることが
好ましい。これにより、特定の時分割プロセスの実行が
短い時間間隔で複数回中断されることにより、該特定の
時分割プロセスの実行率が大きく低下することを回避す
ることができる。
【0030】また、請求項1又は請求項4において、時
分割プロセス実行中に実時間プロセスを実行すべき所定
の事象が発生した場合、時分割プロセスを実行可能な状
態となったときに、実行を中断した時分割プロセスを再
起動するよりも、時分割プロセスの実行時間の不足分を
繰り越した方がディスパッチを行う回数が少なくなり、
オーバヘッドの増大を抑制できる。しかし、時分割プロ
セスの通常実行時間の不足分の繰り越しを行うか否か
は、時分割プロセスの実行を開始してから所定の事象が
発生する迄の時間が繰越し境界時間以上か否かに依存す
る。
【0031】このため、繰越し境界時間として比較的大
きな値が設定されている時分割プロセスを実行している
ときには、所定の事象が発生した場合に、実行が中断さ
れた時分割プロセスに対し通常実行時間の不足分の繰越
しを行わず、従来と同様に、オーバヘッドが増大する可
能性が高い。特に、複数の処理部で複数のプロセスを並
列に実行する際に、各処理部で実行されているプロセス
が繰越し境界時間として比較的大きな値が設定された時
分割プロセスであった場合には、所定の事象の発生に伴
ってオーバヘッドが増大する可能性が非常に高い。
【0032】上記のような状況を考慮すると、請求項6
にも記載したように、複数の処理部で複数のプロセスを
並列に実行する場合に、複数の処理部のうちの少なくと
も1つの処理部で実行される時分割プロセスの繰越し境
界時間を、他の処理部における時分割プロセスの実行状
況に応じて変更することが好ましい。これにより、例え
ば上記のように各々繰越し境界時間として比較的大きな
値が設定された複数の時分割プロセスを複数の処理部で
並列に実行する等の状況において、例えば少なくとも何
れか1つの時分割プロセスの繰越し境界時間を小さい値
に変更する等により、所定の事象の発生に伴うオーバヘ
ッドの増大を回避できる可能性が高くなる。従って、時
分割プロセスの実行状況に拘わらず所定の事象の発生に
伴うオーバヘッドの増大を回避できる。
【0033】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。なお、以下では本発明に支障のない数値を
用いて説明するが、本発明は以下に記載した数値に限定
されるものではない。
【0034】図1には本発明を適用可能な情報処理装置
10の概略構成図が示されている。情報処理装置10は
n個のCPU1、CPU2、…、CPUnを備えてお
り、各CPUは各々バス14に接続されている。バス1
4には図示しない各種周辺装置(例えばキーボード、デ
ィスプレイ、プリンタ、通信制御装置等)が接続されて
いる。またバス14には、各CPUの主記憶装置として
機能する共有メモリ16が接続されている。共有メモリ
16の記憶領域には、プロセスディスパッチ制御プログ
ラム18及びシステムデータベース20を含む各種情報
が予め記憶されている。
【0035】本実施例に係る情報処理装置10は、CP
U1、CPU2、…、CPUnが互いに並列に動作し、
かつマスタスレーブシステムのように各CPUの役割分
担が定められていない、所謂対称型のマルチプロセッサ
システムとされている。このため、情報処理装置10で
実行すべき多数のプロセスが各々何れのCPUで実行さ
れるかは不定とされており、前述したプロセスディスパ
ッチ制御プログラム18は、各CPUにおいて実行する
プロセスを切替える等の場合に実行される。
【0036】図2に示すように、システムデータベース
20は、時分割クラス待ち行列20A、実時間クラス待
ち行列20B、起動遅延テーブル20C、実行中プロセ
ステーブル20D等の各種情報を含んで構成されてい
る。
【0037】情報処理装置10で実行すべき多数のプロ
セスは、定期的に実行すべきプロセス(時分割プロセ
ス)のグループ(時分割クラス)、又は所定のイベント
が発生した場合に実行すべきプロセス(実時間プロセ
ス)のグループ(実時間クラス)に各々予め区分されて
おり、各々実行の優先度が予め付与されている。共有メ
モリ16上には、各プロセスに対応して各プロセスの実
行に必要な各種情報を設定するためのタスクコントロー
ルブロック(以下「TCB」と称する)が設けられてい
る。時分割クラス待ち行列20Aには実行待ち状態の時
分割プロセスのTCBがプロセスの実行順にリンクされ
ており、実時間クラス待ち行列20Bには実時間プロセ
スのTCBが優先度の降順にリンクされている。
【0038】図3に示すように、TCBにはプロセスの
名称、サイズ、クラス(時分割プロセスか実時間プロセ
スか)等の情報で構成されるプロセス情報(1)、プロ
セスの実行に際して使用される共有メモリ16上の所定
領域の位置を表すマッピング情報等で構成されるプロセ
ス情報(2)、プロセス毎に予め定められたプロセス優
先度等の情報が予め設定されている。また、時分割プロ
セスのTCBについては、タイムスライス時間T1(本
発明の通常実行時間に相当)及び繰越し境界時間T2も
設定されている。
【0039】更に、TCBにはプロセス情報(3)、繰
越し処理フラグ、及び繰越し時間T3(本発明の通常実
行時間の不足分に相当)又は実行残時間Tsを設定する
ためのフィールドが設けられている。プロセス情報
(3)のフィールドは、先にプロセスの実行が終了又は
中断された際にCPUのレジスタやプログラムカウンタ
等に保持されていた情報を退避するための領域とされて
いる。繰越し処理フラグ、繰越し時間T3、実行残時間
Tsについては後述するが、時分割プロセスのTCBに
のみ設定される。
【0040】また起動遅延テーブル20Cは、次の表1
にも示すように、実時間プロセスを起動すべきイベント
が発生してから対応する実時間プロセスを起動するまで
の許容遅延時間をプロセスの優先度及びCPU毎に定め
たものである。なお本実施例では、表1からも明らかな
ようにプロセス優先度を160種類のレベルに分け、最
も低いレベルから順に1〜160の符号を付して各レベ
ルを区別している。
【0041】
【表1】
【0042】また実行中プロセステーブル20Dは、次
の表2にも示すように、各CPUで現在実行中のプロセ
スの情報を登録するためのテーブルであり、各CPUで
新たなプロセスを起動する毎に「クラス」「優先度」等
の情報が書替えられる。また起動するプロセスが時分割
プロセスの場合は、「タイムスライス時間」「繰越し境
界時間」等の情報も設定される。また「CPU使用時
間」は実行中のプロセスによるCPU使用時間を表して
おり、後述するCPU消費時間計測/保持部32により
時間の経過に伴って徐々に値が増加するように更新され
ると共に、各CPUで新たなプロセスが起動される毎に
値がリセットされる。
【0043】
【表2】
【0044】図2には、各CPUが備えている各種機能
のうち、各CPUでプロセスディスパッチ制御プログラ
ム18が実行されることにより実現される、プロセスの
ディスパッチに関連する機能がブロックに分けて示され
ている。
【0045】タイマ26は現在の時刻を保持しており、
CPU消費時間検出部28はタイマ26に保持されてい
る時刻の変化を監視し、一定時間が経過する毎にプロセ
スディスパッチ制御部30にタイマ割込み信号を出力す
る。プロセスディスパッチ制御部30のCPU消費時間
計測/保持部32では、タイマ割込み信号が入力される
と前述のように実行中プロセステーブル20DのCPU
使用時間を更新し、CPUで新たなプロセスが起動され
る毎に値をリセットする(0に戻す)。
【0046】また外部イベント検出部34は、データの
入力、データの出力完了、資源の解放等の外部イべント
の発生に伴って入力される割込み信号を検出し、プロセ
スディスパッチ制御部30のプロセス選択制御部36に
外部イベントの発生を通知する。プロセス選択制御部3
6では、外部イベントの発生に伴って実行すべきプロセ
スをどのCPUで実行するかを選択する。
【0047】選択されたCPUでは、実行すべきプロセ
スが実時間プロセスであれば、実時間プロセスディスパ
ッチ制御部38により前記実行すべき実時間プロセスの
ディスパッチが行われ、実行すべきプロセスが時分割プ
ロセスの場合には、時分割プロセスディスパッチ制御部
40により前記実行すべき時分割プロセスのディスパッ
チが行われる。また何らイベントが発生していない状況
では、時分割プロセスディスパッチ制御部40により時
分割プロセスのディスパッチが行われる。
【0048】またタイムスライス値変更部42は、時分
割プロセスの起動時に、起動される時分割プロセスの繰
越し境界時間T2を変更すべきか否かをプロセスの実行
状況に基づいて判断し、変更すべきと判断した場合には
繰越し境界時間T2の変更を行う。優先度変更部44
は、後述する繰越し処理を適用する時分割プロセスに対
し優先度の変更を行う。
【0049】次に本実施例の作用を説明する。まず図4
のフローチャートを参照し、イベントが発生した場合に
実行されるイベント受付処理について説明する。なお、
イベント受付処理は前述のプロセス選択制御部36及び
実時間プロセスディスパッチ制御部38に対応する処理
である。また、本実施例に係る情報処理装置10は対称
型マルチプロセッサシステムであるので、以下で説明す
るイベント受付処理がCPU1〜CPUnの何れで行わ
れるかは不定であり、イベント受付処理を実行するCP
Uはオペレーティングシステム(OS)によって決定さ
れる。
【0050】ステップ100では、発生したイベントが
実時間プロセスを起動すべきイベントか否か判定する。
時分割プロセスであっても所定のイベントの発生を待っ
ている状態に移行することはあり、発生したイベントが
時分割プロセスを起動すべきイベントであった場合には
前記判定が否定され、ステップ102で発生したイベン
トに対応する時分割プロセスを起動する時分割クラスイ
ベント処理を行った後に処理を終了する。また、判定が
肯定された場合にはステップ104へ移行し、CPU1
〜CPUnで実行中のプロセスのうち、実行を開始して
から繰越し境界時間T2以上経過している(すなわちC
PU使用時間≧繰越し境界時間T2)時分割プロセスが
有るか否か判定する。
【0051】判定が肯定された場合にはステップ106
へ移行し、前記時分割プロセスを実行しているCPUに
おいて実時間プロセスへの切替え処理を起動させ、処理
を終了する。この切替え処理の詳細については後述する
が、実行中の時分割プロセスの処理が中断され前記発生
したイベントに対応する実時間プロセスが起動されると
共に、(CPU使用時間≧繰越し境界時間T2)の条件
を満足しているので、実行が中断された時分割プロセス
に対し繰越し処理が適用されることになる。
【0052】一方、ステップ104の判定が否定された
場合にはステップ108へ移行し、CPU1〜CPUn
で実行中のプロセスのうち、許容遅延時間内にタイムス
ライス時間T1満了(すなわちCPU使用時間=タイム
スライス時間T1)となる時分割プロセスが有るか否か
判定する。この判定は、より詳しくは起動すべき実時間
プロセスの優先度をキーとして起動遅延テーブル20C
を参照し、各CPUにおける許容遅延時間を取込むと共
に、時分割プロセスを実行中のCPUの各々に対し、実
行中プロセステーブル20Dに設定されているタイムス
ライス時間T1からCPU使用時間を減じた値(タイム
スライス満了迄の時間)を演算し、演算した値と前記取
り込んだ許容遅延時間を各々比較することにより行われ
る。
【0053】上記判定が肯定された場合には、タイムス
ライス時間が満了し時分割プロセスの処理が停止された
後に、この時分割プロセスを実行していたCPUで実時
間プロセスを実行させるために、ステップ112でイベ
ントが発生したことを情報として記憶し、処理を終了す
る。また、上記判定が否定された場合にも、許容遅延時
間内に実行中のプロセスが自発的に待ち状態に移行する
か、又は実行中の時分割プロセスによるCPU使用時間
が繰越し境界時間T2以上となる可能性があるため、ス
テップ110で所定の許容遅延時間が経過するとタイム
アウトするプロセス切替えタイマをスタートさせ、ステ
ップ112でイベントが発生したことを情報として記憶
して処理を終了する。
【0054】上記ステップ110でスタートさせたプロ
セス切替えタイマは、実行中のプロセスが自発的に待ち
状態に移行する等により前記発生したイベントに対応す
る実時間プロセスが許容遅延時間内に起動されたときに
は停止されるが、それ以外の場合にはタイムアウトし、
このタイムアウトに伴ってプロセス切替え要求タイマタ
イムアウト受付処理(図5参照)が実行される。以下、
図5を参照してプロセス切替え要求タイマタイムアウト
受付処理について説明する。なお、この処理も前述のプ
ロセス選択制御部36及び実時間プロセスディスパッチ
制御部38に対応する処理である。また、この処理につ
いてもCPU1〜CPUnの何れで行われるか不定であ
り、この処理を行うCPUはオペレーティングシステム
(OS)によって決定される。
【0055】ステップ120では実行中プロセステーブ
ル20Dを読込み、ステップ122ではCPU1〜CP
Unで実行中のプロセスのうち、実行を開始してから繰
越し境界時間T2以上経過している時分割プロセスが有
るか否かを前記読込んだ情報に基づいて判定する。判定
が肯定された場合にはステップ128へ移行し、前記と
同様に、前記時分割プロセスを実行しているCPUにお
いて実時間プロセスへの切替え処理を起動させる。この
場合、実時間プロセスの起動に伴って処理が中断される
時分割プロセスは(CPU使用時間≧繰越し境界時間T
2)の条件を満足しているので、該時分割プロセスに対
し繰越し処理が適用される。そして次のステップ130
では、先のイベント受付処理で記憶した、イベントが発
生したことを表す情報を消去し、処理を終了する。
【0056】またステップ122の判定が否定された場
合には、ステップ124で実行中プロセステーブル20
Dから読込んだ情報に基づいて、CPU1〜CPUnの
少なくとも何れかで時分割プロセスが実行されているか
否か判定する。判定が肯定された場合には、前記と同様
にステップ128、130の処理が行われる。この場合
に実時間プロセスへの切替え処理による実時間プロセス
の起動に伴って処理が中断される時分割プロセスは、
(CPU使用時間≧繰越し境界時間T2)の条件を満足
していないので、該時分割プロセスに対しては繰越し処
理は適用されない。なお、複数のCPUで時分割プロセ
スが実行されている場合、ステップ128では最も優先
度の低い時分割プロセスを実行しているCPUにおい
て、実時間プロセスへの切替え処理を起動させる。
【0057】またステップ124の判定が否定された場
合は、CPU1〜CPUnで実行されているプロセスは
全て実時間プロセスであるので、ステップ126におい
て、CPU1〜CPUnで実行中の実時間プロセスのう
ち、発生したことが記憶されているイベントに対応する
実時間プロセス(起動すべき実時間プロセス)よりも優
先度の低い実時間プロセスが有るか否か判定する。上記
判定が肯定された場合には、前記と同様にステップ12
8、130の処理が行われ、実行中の実時間プロセスの
うちの何れか(優先度の低い実行中の実時間プロセスが
複数存在している場合には、最も優先度の低い実時間プ
ロセス)の処理が中断され、より優先度の高い実時間プ
ロセスが実行されることになる。
【0058】また、CPU1〜CPUnで実行されてい
る実時間プロセスの優先度が何れも高い場合には、ステ
ップ126の判定も否定されてステップ132へ移行
し、プロセス切替えタイマを再スタートさせて処理を終
了する。これは優先度の高い実時間プロセスを起動すべ
きイベントの発生が輻輳した等のように極めて稀なケー
スであるが、実行中の実時間プロセスの何れかが自発的
に待ち状態に移行するか、またはプロセス切替えタイマ
が再びタイムアウトする迄、起動待ち状態となっている
実時間プロセスの起動は保留される。
【0059】次に、図4のステップ106又は図5のス
テップ128における処理に伴って対応するCPUで実
行される実時間プロセスへの切替え処理について、図6
のフローチャートを参照して説明する。なお、この処理
は実時間プロセスディスパッチ制御部38に対応する処
理である。ステップ140では実行中のプロセスの処理
を停止し、ステップ142では処理を停止したプロセス
の情報(レジスタに設定されている情報等)を対応する
TCBに設定する。次のステップ144ではプロセスの
実行を中断していることを表すプロセス実行中断情報を
TCBに設定し、ステップ146では、実行中プロセス
テーブル20Dから対応する情報(今迄処理を行ってい
たプロセスの情報)を消去する。
【0060】次のステップ148では、先のステップ1
40で処理を停止したプロセスが時分割プロセスか否か
判定する。判定が否定された場合にはステップ166へ
移行するが、判定が肯定された場合にはステップ150
で処理を停止した時分割プロセスによるCPU使用時間
tを取込む。ステップ152では取り込んだCPU使用
時間が、前記時分割プロセスのTCBに設定されている
繰越し境界時間T2以上か否か判定する。判定が肯定さ
れた場合にはステップ154へ移行する。
【0061】ステップ154では、前記処理を停止した
時分割プロセスに対し繰越し処理を適用するために、次
回に該時分割プロセスが実行される際の繰越し時間T3
(タイムスライス満了迄の時間)を次の(1)式に従っ
て演算する。
【0062】 繰越し時間T3=タイムスライス値T1−CPU使用時間t …(1) ステップ156では処理を停止した時分割プロセスのT
CBに、上記で演算した繰越し時間T3を設定すると共
に、繰越し処理フラグをセットする。そして次のステッ
プ158では上記で情報を設定したTCBを、時分割ク
ラス待ち行列20Aの末尾にリンクし、ステップ166
へ移行する。一方、ステップ152の判定が否定された
場合には、ステップ160でタイムスライス残時間Ts
(タイムスライス満了迄の時間)を次の(2)式に従っ
て演算する。
【0063】 残時間Ts=タイムスライス値T1−CPU使用時間t …(2) ステップ162では、処理を停止した時分割プロセスの
TCBに上記で演算した残時間Tsを設定し、次のステ
ップ164では残時間Tsを設定したTCBを時分割ク
ラス待ち行列20Aの先頭にリンクし、ステップ166
へ移行する。
【0064】ステップ166では、起動する実時間プロ
セスに関する情報を対応するTCBから取込み、次のス
テップ168ではこれから起動する実時間プロセスにつ
いての必要情報を実行中プロセステーブルに登録する。
そしてステップ170で実時間プロセスの処理を開始す
ることにより、実時間プロセスへの切替え処理を終了す
る。
【0065】次に実行していた実時間プロセスが自発的
に待ち状態に移行することにより、該実時間プロセスを
実行していたCPUで実行される実時間プロセス終了処
理について、図7のフローチャートを参照して説明す
る。なお、この処理はプロセス実行CPU選択制御部3
6、実時間プロセスディスパッチ制御部38及び時分割
プロセスディスパッチ制御部40に対応する処理であ
る。ステップ180では前記待ち状態に移行することに
より処理を終了した実時間プロセスの情報を対応するT
CBに設定し、ステップ182では実行中プロセステー
ブル20Dから対応する情報(今迄処理を行っていた実
時間プロセスの情報)を消去する。
【0066】ステップ184では他の実時間プロセスに
割り込まれて実行中断中の実時間プロセスが存在してい
るか否か判定する。この判定は、実時間クラス待ち行列
に20Bにリンクされている複数のTCBの中に、プロ
セス実行中断情報が設定されているTCBが有るか否か
を判断することにより行われる。
【0067】判定が肯定された場合には、ステップ18
6でイベントが発生したことを表す情報が記憶されてい
るか否か判定する。判定が否定された場合にはステップ
190へ移行するが、判定が肯定された場合にはステッ
プ188において、先のステップ184で発見された実
行中断中の実時間プロセスより、発生したことが記憶さ
れているイベントに対応する実時間プロセスの方が優先
度が高いか否か判定する。
【0068】判定が肯定された場合には前記イベントに
対応する実時間プロセスを起動すべきであると判断して
ステップ198へ移行するが、前記判定が否定された場
合には実行中断中の実時間プロセスを起動すべきである
と判断し、ステップ190へ移行する。ステップ190
では実行中断中の実時間プロセスに関する情報を対応す
るTCBから取込み、次のステップ192では、これか
ら起動する実時間プロセスについての必要情報を実行中
プロセステーブルに登録する。そしてステップ194で
実時間プロセスの処理を開始することにより、実時間プ
ロセス終了処理を終了する。
【0069】一方、実行中断中の実時間プロセスが無か
った場合にはステップ184の判定が否定され、ステッ
プ196でイベントが発生したことが記憶されているか
否か判定する。判定が肯定された場合はイベントは発生
したものの対応する実時間プロセスは未だ起動されてい
ない場合であり、ステップ198以降では記憶されてい
るイベントに対応する実時間プロセスの起動を行うが、
複数種類のイベントの発生が記憶されている場合には、
各イベントに対応する実時間プロセスのうち最も優先度
の高い実時間プロセス、或いは最も速く発生したイベン
トに対応する実時間プロセスを対象として、以下の処理
が行われる。
【0070】ステップ198では起動する実時間プロセ
スに対応するプロセス切替え要求タイマが作動していれ
ば、このタイマの作動を停止させる。このプロセス切替
え要求タイマは、前記実時間プロセスに対応するイベン
トが発生した際に行われたイベント受付処理においてス
テップ108(図4参照)の判定が否定されていた場合
に作動されている。次のステップ200では、これから
起動する実時間プロセスに関する情報を対応するTCB
から取込み、ステップ202では、これから起動する実
時間プロセスについての必要情報を実行中プロセステー
ブルに登録する。次のステップ204ではこれから起動
する実時間プロセスに対応するイベントが発生したこと
を表す情報を消去し、ステップ206で実時間プロセス
の処理を開始することにより、実時間プロセス終了処理
を終了する。
【0071】また、実行中断中の実時間プロセスが無
く、イベントの発生も記憶されていなかった場合には、
ステップ196の判定が否定されてステップ208へ移
行し、時分割プロセス起動処理を行った後に、実時間プ
ロセス終了処理を終了する。なお、前記時分割プロセス
起動処理については後述する。
【0072】次に、実行していた時分割プロセスのタイ
ムスライス時間T1が満了するか、又は時分割プロセス
が自発的に待ち状態に移行することにより、該時分割プ
ロセスを実行していたCPUで実行される時分割プロセ
ス終了処理について、図8のフローチャートを参照して
説明する。なお、この処理もプロセス実行CPU選択制
御部36、実時間プロセスディスパッチ制御部38及び
時分割プロセスディスパッチ制御部40に対応する処理
である。ステップ220では処理を終了した時分割プロ
セスの情報を対応するTCBに設定し、ステップ222
では前記情報を設定したTCBを時分割クラス待ち行列
20Aの末尾にリンクする。ステップ224では実行中
プロセステーブル20Dから対応する情報(今迄処理を
行っていた時分割プロセスの情報)を消去する。
【0073】次のステップ226以降の処理は、先に説
明した実時間プロセス終了処理のステップ184〜20
8(図7参照)と同じである。すなわち、ステップ22
6では他の実時間プロセスに割り込まれて実行を中断中
の実時間プロセスが存在しているか否か判定し、判定が
肯定された場合には、ステップ228でイベントが発生
したことを表す情報が記憶されているか否か判定する。
判定が否定された場合にはステップ232へ移行する
が、判定が肯定された場合にはステップ230で、発見
された実行中断中の実時間プロセスより、発生したこと
が記憶されているイベントに対応する実時間プロセスの
方が優先度が高いか否か判定する。
【0074】判定が否定された場合にはステップ232
へ移行し、実行中断中の実時間プロセスに関する情報を
対応するTCBから取込み、ステップ234ではこれか
ら起動する実時間プロセスについての必要情報を実行中
プロセステーブルに登録した後に、ステップ234で実
時間プロセスを再起動し、時分割プロセス終了処理を終
了する。
【0075】一方、ステップ226の判定が否定された
場合には、ステップ238でイベントが発生したことが
記憶されているか否か判定する。判定が肯定された場合
はステップ240へ移行し、これから起動する実時間プ
ロセスに対応するプロセス切替え要求タイマが作動して
いれば、このタイマの作動を停止させる。次のステップ
242では、これから起動する実時間プロセスに関する
情報を対応するTCBから取込み、ステップ244で
は、これから起動する実時間プロセスについての必要情
報を実行中プロセステーブルに登録する。次のステップ
246ではこれから起動する実時間プロセスに対応する
イベントが発生したことを表す情報を消去し、ステップ
206で実時間プロセスの処理を開始することにより、
時分割プロセス終了処理を終了する。また、ステップ2
38の判定が否定された場合には、ステップ250で時
分割プロセス起動処理を行った後に、時分割プロセス終
了処理を終了する。
【0076】次に図9のフローチャートを参照し、図7
のステップ208又は図8のステップ250で行われる
時分割プロセス起動処理について説明する。なお、この
処理は時分割プロセスディスパッチ制御部40に対応す
る処理である。ステップ260では時分割クラス待ち行
列20Aの先頭にリンクされているTCBを取出し、次
のステップ262では、前記取り出したTCBにプロセ
ス実行中断情報が設定されているか否かに基づいて、取
り出したTCBに対応する時分割プロセス(これから起
動する時分割プロセス)が、前回の実行がタイムスライ
ス時間T1満了前に中断されたか否か判定する。判定が
否定された場合には、ステップ264で今回のタイムス
ライス値(これから起動する時分割プロセスのタイムス
ライス値)Tとして、TCBに設定されているタイムス
ライス時間T1を設定し、ステップ282へ移行する。
【0077】また、ステップ262の判定が肯定された
場合にはステップ266へ移行し、前記取り出したTC
Bに繰越し処理フラグがセットされているか否かに基づ
いて、これから起動する時分割プロセスが繰越し処理を
適用する時分割プロセスか否か判定する。判定が肯定さ
れた場合には、ステップ268で今回のタイムスライス
値Tとして、TCBに設定されている残時間Tsを設定
する。ステップ270でTCBからプロセス実行中断情
報を消去し、ステップ272でTCBに設定されている
残時間Tsをリセットした後に、ステップ282へ移行
する。
【0078】また、ステップ266の判定が肯定された
場合にはステップ274へ移行し、今回のタイムスライ
ス値Tとして、TCBに設定されているタイムスライス
値T1と繰越し時間T3の和を設定する。次のステップ
276では前記繰越し時間T3が経過するとタイムアウ
トする繰越し時間経過タイマをスタートさせる。ステッ
プ278ではこれから起動する時分割プロセスに対し、
繰越し処理用の優先度(通常時よりも高い優先度)を設
定する。このステップ278は優先度変更部44に対応
しており、請求項5に対応する処理である。
【0079】これにより、これから起動する時分割プロ
セスを実行している最中に実時間プロセスを起動すべき
イベントが発生したとしても、他のCPUで他の時分割
プロセスを実行していれば、該他の時分割プロセスの実
行が中断される可能性が高くなる。従って、繰越し処理
適用中の時分割プロセスが、イベントの発生により実行
が中断される可能性は低くなる。次のステップ280で
はTCBからプロセス実行中断情報を消去し、TCBに
設定されている繰越し時間T3をリセットした後に、ス
テップ282へ移行する。
【0080】ステップ282ではこれから起動する時分
割プロセスについての必要情報を実行中プロセステーブ
ルに登録し、次のステップ284では実行中プロセステ
ーブルに登録されている情報を読み込む。そして、ステ
ップ286では読み込んだ情報に基づいて、これから起
動する時分割プロセスの繰越し境界時間T2の変更が必
要か否か判定する。
【0081】一例として、他のCPUで実行中の全ての
時分割プロセスにおいて、繰越し境界時間T2が経過す
る迄の残時間が比較的長い場合には、現時点から比較的
短い期間内にイベントが発生すると、許容遅延時間経過
後に時分割プロセスの実行を中断して実時間プロセスを
起動したとしても、前記実行を中断した時分割プロセス
に対し繰越し処理が適用されない可能性が高く、繰越し
処理を適用する場合と比較してプロセスディスパッチ回
数の増加によるオーバヘッドの増大を招くことになる。
【0082】実行中の他の時分割プロセスの優先度にも
よるが、上記のような場合にはステップ286の判定が
肯定され、ステップ288でこれから起動する時分割プ
ロセスの繰越し境界時間T2が小さな値となるように繰
越し境界時間T2を変更設定した後にステップ290へ
移行する。これにより、イベントが発生し実時間プロセ
スを起動するために実行が中断された時分割プロセスに
対し繰越し処理が適用される可能性が高くなるので、プ
ロセスディスパッチ回数の増加によるオーバヘッドの増
大を回避することができる。
【0083】なお、ステップ228で繰越し境界時間T
2を変更設定する対象としての時分割プロセスは、これ
から実行を開始する時分割プロセスのみに限定されるも
のではなく、実行中の他の時分割プロセスの繰越し境界
時間T2を変更設定するようにしてもよい。例えば、こ
れから実行を開始する時分割プロセスよりも優先度の低
い時分割プロセスが実行中であった場合には、該優先度
の低い時分割プロセスの繰越し境界時間T2を変更設定
するようにしてもよい。上記ステップ286、288は
タイムスライス値変更部42に対応しており、請求項6
に対応する処理である。
【0084】またステップ286の判定が否定された場
合にはステップ290へ移行する。ステップ290では
時分割プロセスの処理を開始し、時分割プロセス起動処
理を終了する。
【0085】また、繰越し時間経過タイマがタイムアウ
トすると、図10に示す繰越し時間経過タイマタイムア
ウト受付処理が実行される。すなわち、ステップ300
ではタイムアウトした繰越し時間経過タイマに対応する
時分割プロセスの実行が継続されているか否か判定す
る。判定が否定された場合は、繰越し処理を適用して起
動した時分割プロセスが、イベントの発生に伴う実時間
プロセスの起動により、繰越し時間T3が経過する前に
中断された場合であるので、何ら処理を行うことなく終
了する。
【0086】一方、ステップ300の判定が肯定された
場合には、繰越し処理を適用して起動した時分割プロセ
スが繰越し時間T3以上実行されているので、ステップ
302で該時分割プロセスの優先度として元の値(TC
Bに設定されている値)を設定する。なお、このステッ
プ302は優先度変更部44に対応している。次のステ
ップ304ではTCBの繰越し処理フラグをリセット
し、処理を終了する。
【0087】次に図11を参照し、上記で説明したディ
スパッチ制御処理によるディスパッチ動作の一例を、従
来方式によるディスパッチ動作と対比して説明する。な
お図11では説明を簡単にするため、CPUを2個(C
PU1とCPU2)とし、時分割プロセスとして、プロ
セスA〜プロセスDの合計4個の時分割プロセスが設定
されている場合を例として示しており、各プロセスのタ
イムスライス時間T1は、一例としてプロセスAが30m
s、プロセスBが20ms、プロセスCが10ms、プロセスD
が 5msとされており、プロセスBの繰越し境界時間T2
は10msとされている。また図11において括弧内の数値
は各プロセスの実行時間を表している。
【0088】図11(A)に示すようにイベントの発生
が無い場合には、各プロセスはタイムスライス時間T1
が満了する迄CPU1又はCPU2で実行され、タイム
スライス時間が満了すると時分割クラス待ち行列20A
の先頭にリンクされているTCBに対応する他の時分割
プロセスがディスパッチされる。図11(A)におい
て、プロセスA〜プロセスDを各々2回実行する間の
(すなわち2サイクル当りの)プロセスのディスパッチ
回数は8回である。
【0089】また実時間プロセスを起動すべきイベント
が発生した場合には、従来のディスパッチ方式では、図
11(B)に示すように所定の時分割プロセスの実行を
中断し(図11ではプロセスB)実時間プロセスを起動
した後に、実時間プロセスが自発的に待ち状態に移行す
ると、前記実行を中断した時分割プロセスの実行を再開
する。この場合、プロセスのディスパッチ回数は2サイ
クル当り10回と増加することになる。
【0090】これに対し本実施例では、図11(C)に
も示すように、イベントが発生した時点でのプロセスB
の実行時間がプロセスBの繰越し境界時間T2以上であ
れば、イベント受付処理(図4)のステップ104の判
定が肯定され、プロセスBを実行していたCPU2にお
いて実時間プロセスへの切替え処理(図6)が起動され
る。実時間プロセスへの切替え処理ではステップ152
の判定が肯定され、繰越し時間T3の演算、演算した繰
越し時間T3のTCBへの設定、繰越し処理実行フラグ
のセットが行われた後に、該TCBが時分割クラス待ち
行列20Aの末尾にリンクされる。
【0091】これにより、実時間プロセスが自発的に待
ち状態に移行した後には、次のプロセスCが実行され
る。また、CPU1におけるプロセスDのタイムスライ
ス時間の満了(図11(C)の)に伴いCPU1で実
行される時分割プロセス起動処理(図9)では、時分割
クラス待ち行列20Aの先頭迄移動したプロセスBのT
CBが取り出され、このTCBにプロセス実行中断情報
及び繰越し処理フラグが設定されていることからステッ
プ262、266の判定が肯定される。従って、プロセ
スBに対し繰越し処理が適用され、タイムスライス時間
T1と繰越し時間T3の和に相当する時間(図11
(C)では「20+X」として示す)だけプロセスBが
実行されることになる。この場合のプロセスのディスパ
ッチ回数は2サイクル当り9回であり、従来方式と比較
してイベントの発生に伴うオーバヘッドの増大が抑制さ
れることが理解できる。
【0092】次に図12を参照し、前述のディスパッチ
制御処理によるディスパッチ動作の一例を、従来方式に
よるディスパッチ動作と対比して更に説明する。従来方
式では、イベントが発生すると直ちに対応する実時間プ
ロセスを起動する。このため一例として図12(A)に
も示すように、実行中のプロセスの処理がごく短い時間
経過後に終了する(図12(A)では時分割プロセスB
のタイムスライス満了)としても該プロセスの実行が中
断され、実時間プロセスの処理が終了した後に、ごく短
いタイムスライス残時間分実行するために前記中断され
た時分割プロセスが再起動されるので、効率が悪くディ
スパッチの回数も多い。
【0093】これに対し本実施例では、図12(B)に
も示すように、イベントの発生から許容遅延時間が経過
するまでの期間内に実行中の時分割プロセスBがタイム
スライス満了となる場合には、イベント受付処理(図
4)のステップ108の判定が肯定され、発生したイベ
ントに対応する実時間プロセスCの起動が保留される。
そして、時分割プロセスBのタイムスライス満了に伴
い、時分割プロセスBを実行していたCPUで時分割プ
ロセス終了処理(図8)が起動されると、実行中断中の
実時間プロセスが無ければステップ238の判定が肯定
され、起動を保留していた実時間プロセスCが起動され
る。これにより、時分割プロセスを短時間実行するため
にディスパッチを行うことが防止されるので、効率が向
上しディスパッチの回数も少なくなる。
【0094】また、本実施例では表1にも示すように、
実時間プロセスの優先度が高くなるに従って許容遅延時
間の値を小さくしているので、優先度の高い実時間プロ
セスについては、イベントが発生するとごく短い時間で
実時間プロセスが起動されることになり、高い応答性が
確保される。
【0095】また、図13(A)にも示すように、CP
U2でタイムスライス時間の長い時分割プロセスBを既
に実行しており、かつ他のCPUが無い、或いは他のC
PUが実時間プロセスを継続的に実行している状況で、
CPU1においてもタイムスライス時間及び繰越し境界
時間の比較的長い(タイムスライス時間はT1、繰越し
境界時間はT2として示す)時分割プロセスAを起動し
た場合、イベントの発生により実行が中断された時分割
プロセスに対し繰越し処理が適用されない期間(図13
に示す期間L)が長くなる。従って、イベントが発生
し、実時間プロセスの起動を許容遅延時間だけ遅延させ
たとしても、実行が中断された時分割プロセスに対し繰
越し処理が適用されない可能性が高い。
【0096】これに対し上記実施例では、CPU1で時
分割プロセスAを起動するために実行される時分割プロ
セス起動処理(図9)において、ステップ286の判定
が肯定されることにより、ステップ288で時分割プロ
セスAの繰越し境界時間が短く(図9(B)に示すT
2’)されるので、実行が中断された時分割プロセスに
対し繰越し処理が適用されない期間Lも短くなり、イベ
ントが発生し実行が中断された時分割プロセスに対し繰
越し処理が適用される可能性が高くなる。繰越し処理が
適用された場合には、繰越し処理が適用されなかった場
合と比較してディスパッチの回数が少なくて済むので、
イベントの発生に伴うオーバヘッドの増大を更に抑制で
きる可能性が高い。
【0097】なお、図4に示したイベント受付処理で
は、イベント発生時に許容遅延時間内にタイムスライス
満了となる時分割プロセスがあったとしても、CPU使
用時間が繰越し境界時間T2以上となっている時分割プ
ロセスがあれば、該時分割プロセスの実行を中断し実時
間プロセスを遅延させるようにしていたが、これに限定
されるものではない。例えば、ステップ104の判定よ
り前にステップ108の判定を行うようにした場合に
は、CPU使用時間が繰越し境界時間T2以上となって
いる時分割プロセスがあったとしても、イベント発生時
に許容遅延時間内にタイムスライス満了となる時分割プ
ロセスがあれば実時間プロセスの起動が遅延されるの
で、実時間プロセスの起動に伴う時分割プロセスの一時
的な実行率の低下を少なくすることができる。また、起
動すべき実時間プロセスの優先度に応じて上記2つの判
定の実行順序を変更するようにしてもよい。
【0098】また、上記では実行が中断された所定の時
分割プロセスに対し繰越し処理を適用する場合、繰越し
時間T3を、前記所定の時分割プロセスを次回実行する
際に繰り越す(今回のタイムスライス時間Tとしてタイ
ムスライス時間T1と繰越し時間T3の和を設定)よう
にしていたが、これに限定されるものではなく、繰越し
時間T3を複数回に分けて繰り越す(例えばT3を
3 ’とt3 ”とに分割し(但しT3=t3 ’+
3 ”)、所定の時分割プロセスの次回のタイムスライ
ス時間TをT1+t3 ’、更に次の回のタイムスライス
時間TをT1+t3 ”とする等)ようにしてもよい。
【0099】なお、上記では本発明を適応可能な情報処
理装置の一例として、対称型マルチプロセッサシステム
である情報処理装置10を説明したが、これに限定され
るものではなく、非対称型のマルチプロセッサシステム
や、単一のプロセッサのみを備えマルチタスクで処理を
行うシステムにも適用可能であることは言うまでもな
い。
【0100】
【発明の効果】以上説明したように請求項1記載の発明
は、所定の事象の発生に伴い実時間プロセスを起動する
ために実行中の所定の時分割プロセスの実行を中断する
場合は、所定の時分割プロセスの実行を開始してからの
経過時間が所定の時分割プロセスの繰越し境界時間以上
であれば、所定の時分割プロセスの実行を中断して実時
間プロセスを起動し、時分割プロセスを実行可能な状態
となったときには所定の時分割プロセスに続いて実行す
べき別の時分割プロセスを実行すると共に、実行の中断
により生じた所定の時分割プロセスの通常実行時間の不
足分を、所定の時分割プロセスを再び実行する際へ繰り
越すようにしたので、実時間プロセスを起動すべき所定
の事象の発生によりオーバヘッドが増大することを抑制
できる、という優れた効果を有する。
【0101】請求項2記載の発明は、実時間プロセスを
起動すべき所定の事象が発生した場合に、予め設定した
許容遅延時間内に現在実行中のプロセスが待機状態にな
るか否かを判断し、現在実行中のプロセスが許容遅延時
間内に待機状態となると判断した場合には、前記プロセ
スが待機状態となったときに実時間プロセスを起動する
ようにしたので、実時間プロセスを起動すべき所定の事
象の発生によりオーバヘッドが増大することを抑制でき
る、という優れた効果を有する。
【0102】請求項3記載の発明は、実時間プロセスを
起動すべき所定の事象が発生した場合に、現在実行中の
プロセスが待機状態になるか、又は所定の事象が発生し
てからの経過時間が予め設定した許容遅延時間となった
ときに実時間プロセスを起動する実時間プロセスを起動
すべき所定の事象の発生によりオーバヘッドが増大する
ことを抑制できる、という優れた効果を有する。
【0103】請求項4記載の発明は、請求項2又は請求
項3記載の発明において、実時間プロセスを起動すべき
所定の事象が発生した場合に、実行中でかつ実行を開始
してから繰越し境界時間以上経過した所定の時分割プロ
セスが有れば、所定の時分割プロセスの実行を中断して
実時間プロセスを起動し、時分割プロセスを実行可能な
状態となったときには所定の時分割プロセスに続いて実
行すべき別の時分割プロセスを実行すると共に、実行の
中断により生じた所定の時分割プロセスの通常実行時間
の不足分を、所定の時分割プロセスを再び実行する際へ
繰り越すようにしたので、上記効果に加え、所定の事象
の発生に対する実時間プロセス起動の応答性が向上す
る、という効果を有する。
【0104】請求項5記載の発明は、請求項1又は請求
項4記載の発明において、過去に所定の時分割プロセス
の実行を中断することにより生じた通常実行時間の不足
分を繰り越して前記所定の時分割プロセスを実行してい
るときには、所定の時分割プロセスの優先度を通常時よ
りも高くするようにしたので、上記効果に加え、特定の
時分割プロセスの実行率が大きく低下することを回避す
ることができる、という効果を有する。
【0105】請求項6記載の発明は、請求項1又は請求
項4記載の発明において、複数の処理部で複数のプロセ
スを並列に実行する場合に、少なくとも1つの処理部で
実行される時分割プロセスの繰越し境界時間を、他の処
理部における時分割プロセスの実行状況に応じて変更す
るようにしたので、上記効果に加え、時分割プロセスの
実行状況に拘わらず所定の事象の発生に伴うオーバヘッ
ドの増大を回避できる、という効果を有する。
【図面の簡単な説明】
【図1】本実施例に係る情報処理装置の概略構成を示す
ブロック図である。
【図2】システムデータベースの内容の概略を示すと共
に、各CPUによって実現される機能を機能ブロックと
して示す概略図である。
【図3】TCBの内容を示す概念図である。
【図4】イベント受付処理の内容を説明するフローチャ
ートである。
【図5】プロセス切替要求タイマタイムアウト受付処理
の内容を説明するフローチャートである。
【図6】実時間プロセスへの切替処理の内容を説明する
フローチャートである。
【図7】実時間プロセス終了処理の内容を説明するフロ
ーチャートである。
【図8】時分割プロセス終了処理の内容を説明するフロ
ーチャートである。
【図9】時分割プロセス起動処理の内容を説明するフロ
ーチャートである。
【図10】繰越し時間経過タイマタイムアウト受付処理
の内容を説明するフローチャートである。
【図11】(A)はイベントの発生が無い場合のディス
パッチ動作の一例、(B)はイベントが発生した場合の
従来方式によるディスパッチ動作の一例、(C)は本発
明の方式において(B)と同じ条件でのディスパッチ動
作の一例を各々示す概念図である。
【図12】実時間プロセスの起動を遅延させることによ
る作用を説明するための、(A)は従来方式におけるデ
ィスパッチ動作の一例、(B)は本発明の方式における
ディスパッチ動作の一例を各々示す概念図である。
【図13】(A)はタイムスライス時間の長い時分割プ
ロセスが並行して実行された場合の問題点、(B)は繰
越し境界時間を動的に変更する場合の作用を各々説明す
るための概念図である。
【図14】従来のプロセスのディスパッチ方式として、
(A)は時分割プロセスのみ実行しているとき、(B)
は実時間プロセスのみ実行しているとき、(C)は時分
割プロセス及び実時間プロセスを実行しているときの、
ディスパッチの動作の一例を示す概念図である。
【符号の説明】
10 情報処理装置 16 共有メモリ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 定期的に実行すべき複数の時分割プロセ
    ス及び所定の事象が発生した場合に実行すべき実時間プ
    ロセスを各々実行するにあたり、 前記複数の時分割プロセスの各々に対し、通常実行時間
    及び該通常実行時間よりも短い繰越し境界時間を予め定
    めておき、 前記所定の事象が発生していない場合は、前記複数の時
    分割プロセスの各々を、各時分割プロセスの通常実行時
    間だけ順にかつ繰返し実行し、 所定の事象の発生に伴い実時間プロセスを起動するため
    に実行中の所定の時分割プロセスの実行を中断する場合
    は、前記所定の時分割プロセスの実行を開始してからの
    経過時間が前記所定の時分割プロセスの繰越し境界時間
    以上であれば、前記所定の時分割プロセスの実行を中断
    して前記実時間プロセスを起動し、時分割プロセスを実
    行可能な状態となったときには前記所定の時分割プロセ
    スに続いて実行すべき別の時分割プロセスを実行すると
    共に、前記実行の中断により生じた前記所定の時分割プ
    ロセスの通常実行時間の不足分を、前記所定の時分割プ
    ロセスを再び実行する際へ繰り越すことを特徴とするプ
    ロセスディスパッチ方法。
  2. 【請求項2】 所定の事象が発生した場合に実行すべき
    実時間プロセスを含む多数のプロセスを各々実行するに
    あたり、 前記所定の事象が発生した場合に、予め設定した許容遅
    延時間内に現在実行中のプロセスが待機状態になるか否
    かを判断し、現在実行中のプロセスが許容遅延時間内に
    待機状態となると判断した場合には、前記プロセスが待
    機状態となったときに前記実時間プロセスを起動するこ
    とを特徴とするプロセスディスパッチ方法。
  3. 【請求項3】 所定の事象が発生した場合に実行すべき
    実時間プロセスを含む多数のプロセスを各々実行するに
    あたり、 前記所定の事象が発生した場合に、現在実行中のプロセ
    スが待機状態になるか、又は前記所定の事象が発生して
    からの経過時間が予め設定した許容遅延時間となったと
    きに前記実時間プロセスを起動することを特徴とするプ
    ロセスディスパッチ方法。
  4. 【請求項4】 前記多数のプロセスには、定期的に実行
    すべき複数の時分割プロセスが含まれており、 前記複数の時分割プロセスの各々に対し、通常実行時間
    及び該通常実行時間よりも短い繰越し境界時間を定めて
    おき、 前記所定の事象が発生していない場合は、前記複数の時
    分割プロセスの各々を、各時分割プロセスの通常実行時
    間だけ順にかつ繰返し実行し、 前記所定の事象が発生した場合に、実行中でかつ実行を
    開始してから前記繰越し境界時間以上経過した所定の時
    分割プロセスが有れば、前記所定の時分割プロセスの実
    行を中断して前記実時間プロセスを起動し、時分割プロ
    セスを実行可能な状態となったときには前記所定の時分
    割プロセスに続いて実行すべき別の時分割プロセスを実
    行すると共に、前記実行の中断により生じた前記所定の
    時分割プロセスの通常実行時間の不足分を、前記所定の
    時分割プロセスを再び実行する際へ繰り越すことを特徴
    とする請求項2又は請求項3記載のプロセスディスパッ
    チ方法。
  5. 【請求項5】 過去に所定の時分割プロセスの実行を中
    断することにより生じた通常実行時間の不足分を繰り越
    して前記所定の時分割プロセスを実行しているときに
    は、前記所定の時分割プロセスの優先度を通常時よりも
    高くすることを特徴とする請求項1又は請求項4記載の
    プロセスディスパッチ方法。
  6. 【請求項6】 複数の処理部で複数のプロセスを並列に
    実行する場合に、前記複数の処理部のうちの少なくとも
    1つの処理部で実行される前記時分割プロセスの繰越し
    境界時間を、他の処理部における時分割プロセスの実行
    状況に応じて変更することを特徴とする請求項1又は請
    求項4記載のプロセスディスパッチ方法。
JP7117386A 1995-05-16 1995-05-16 プロセスディスパッチ方法 Pending JPH08314740A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7117386A JPH08314740A (ja) 1995-05-16 1995-05-16 プロセスディスパッチ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7117386A JPH08314740A (ja) 1995-05-16 1995-05-16 プロセスディスパッチ方法

Publications (1)

Publication Number Publication Date
JPH08314740A true JPH08314740A (ja) 1996-11-29

Family

ID=14710371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7117386A Pending JPH08314740A (ja) 1995-05-16 1995-05-16 プロセスディスパッチ方法

Country Status (1)

Country Link
JP (1) JPH08314740A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316960A (ja) * 2004-03-29 2005-11-10 Matsushita Electric Ind Co Ltd 処理端末、受信端末及び受信データ処理システム
JP2008108075A (ja) * 2006-10-25 2008-05-08 Matsushita Electric Ind Co Ltd タスク切替え制御方法及びコンピュータシステム
JP2010205046A (ja) * 2009-03-04 2010-09-16 Toyota Motor Corp 情報処理装置
JP2015507808A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 警告追跡割り込みファシリティ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316960A (ja) * 2004-03-29 2005-11-10 Matsushita Electric Ind Co Ltd 処理端末、受信端末及び受信データ処理システム
JP4504236B2 (ja) * 2004-03-29 2010-07-14 パナソニック株式会社 処理端末、受信端末及び受信データ処理システム
JP2008108075A (ja) * 2006-10-25 2008-05-08 Matsushita Electric Ind Co Ltd タスク切替え制御方法及びコンピュータシステム
JP2010205046A (ja) * 2009-03-04 2010-09-16 Toyota Motor Corp 情報処理装置
JP2015507808A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 警告追跡割り込みファシリティ

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US9870252B2 (en) Multi-threaded processing with reduced context switching
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
EP1365328A1 (en) Method for executing parallel process, and multi-processor computer
US20120260257A1 (en) Scheduling threads in multiprocessor computer
US20010034751A1 (en) Real-time OS simulator
JPH06250853A (ja) プロセス・スケジューリングの管理方法およびシステム
US10271326B2 (en) Scheduling function calls
US6408324B1 (en) Operating system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of processes with the system
CN111897637A (zh) 作业调度方法、装置、主机及存储介质
Atlas et al. Design and implementation of statistical rate monotonic scheduling in KURT Linux
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
JPH08314740A (ja) プロセスディスパッチ方法
Horowitz A run-time execution model for referential integrity maintenance
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2009048358A (ja) 情報処理装置及びスケジューリング方法
CN112114967B (zh) 一种基于服务优先级的gpu资源预留方法
JP3005562B1 (ja) タスク管理装置及びタスクスケジューリング方法
JPH10177489A (ja) タスクのスケジュール方法
CN114035926A (zh) 应用线程调度方法、装置、存储介质及电子设备
CN115981829B (zh) 一种物联网中的调度方法及系统
WO1992003783A1 (en) Method of implementing kernel functions
CN116932227B (zh) 一种基于单线程的任务调度方法及装置
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees