JPH03182937A - マルチタスクシステムのタスク管理機構 - Google Patents

マルチタスクシステムのタスク管理機構

Info

Publication number
JPH03182937A
JPH03182937A JP32204589A JP32204589A JPH03182937A JP H03182937 A JPH03182937 A JP H03182937A JP 32204589 A JP32204589 A JP 32204589A JP 32204589 A JP32204589 A JP 32204589A JP H03182937 A JPH03182937 A JP H03182937A
Authority
JP
Japan
Prior art keywords
task
execution time
time
tasks
tsn
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
JP32204589A
Other languages
English (en)
Inventor
Noboru Tamura
昇 田邑
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 JP32204589A priority Critical patent/JPH03182937A/ja
Publication of JPH03182937A publication Critical patent/JPH03182937A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本願各発明は、マルチタスクシステムのタスク管理機構
に関し、詳細には、複数のタスクを常に起動された順序
に実行させることを目的としたマルチタスクシステムの
タスク管理機構に関する。
(従来の技術) コンピュータにおいては、コンピュータを効率的に使用
するために、コンピュータの資源を複数のプログラムで
共有するいわゆるマルチタスクシステムが採用されてい
る。
このマルチタスクシステムで処理される複数のプログラ
ムはそれぞれ自律的な非同期プログラムであり、タスク
とよばれている。マルチタスクシステムでは複数のタス
クにCPUを割り当てて使用するが、CPUの使用時間
を分割した複数のタスクに割り当てる機能をスケジュー
ラ−という。
スケジューラ−のアルゴリズムには、タイムスライス方
式(ラウントロピン方式)と優先順位方式とがある。タ
イムスライス方式はすべてのタスクにCPUの使用時間
を均等に割り当て、それぞれのタスクを順番に実行する
。したがって、タイムスライス方式では実行中のタスク
は そのタイムスライスの間だけ実行でき、タイムスラ
イスを使いきったタスクは、たとえ実行中であっても実
行を打ち切る。タイムスライスを使いきったタスクは待
ち行列の最後尾に移され、他の全てのタスクがそれぞれ
のタイムスライスを使いきるまで待った後、次のタイム
スライスを受は取ることができる。また、優先順位方式
はそれぞれのタスクに優先順位を割り付け、最も優先順
位の高いタスクがCPUの使用権を持つ。優先順位が同
じであるタスクが複数あるときは、タイムスライス方式
が併用されることがある。
ところが、印刷をするシステムのように、タスク間の同
期をとって処理させる必要のある場合がある。このよう
な場合、従来のマルチタスクシステムのタスク管理機構
においては、セフオマやメールボックスを利用した方法
がある。この七フオマは一時に一つのタスクしか共有資
源を使えないように制御するソフトウェア機構であり、
メールボックスはメソセージの保留場所となったキュー
をもち、タスク間でメソセージの受は渡しをするソフト
ウェア機構である。例えば、セフオマを使用した方法を
タスクに組み込み、タスクからの資源占有要求と資源返
却要求を受は付けることにより資源の管理を行う。
(発明が解決しようとする課題) しかしながら、このような従来のマルチタスクシステム
のタスク管理機構にあっては、タスク間の同期方法とし
て、セフオマやメールボックス等が使用されていたため
、セフオマを使用した方法を、タスクに組み込む必要が
あり、プログラムが複雑になるとともに、セフォマを使
用した処理時間が余分にかかり、システム全体の処理時
間が長くなる。また、セフォマ等を使用した場合、先に
起動したタスクが資源を解放するまで、他のタスクはス
トップし、システム全体の処理時間が長くなるという問
題があった。
(発明の目的) そこで、本発明は、複数のタスクを常に起動した順に実
行させる必要がある場合、各タスクの実際の実行時間か
ら各タスクにCPUを使用させる有効実行時間を演算し
て設定し、設定した有効実行時間内で他のタスクにCP
Uの使用権を切り換える手段をスケジューラ−に入れる
ことにより、タスクに変更を加える処理を省き、システ
ム全体の処理速度を向上させるとともに、起動したタス
クの実行時間を適切な有効実行時間に設定して、起動順
にタスクを実行させるとともに、システム全体の処理速
度を向上させることを目的としている。
(課題を解決するための手段) 上記目的を遠戚するため、本発明は、プログラムやデー
タを記憶するメモリと、メモリにあるプログラムを実行
するCPUと、一定時間毎にCPUに時間を知らせるタ
イマと、を備えたデータ処理装置を、複数のプログラム
で共有するマルチタスクシステムのタスク管理機構にお
いて、プログラムにCPUを使用する有効実行時間を設
定する有効実行時間設定手段と、プログラムに設定する
有効実行時間を各プログラムの実際の実行時間から計算
する有効時間演算手段と、プログラムの実行時間を有効
実行時間を越えないように監視する監視手段と、実行時
間が有効実行時間を越えるまえにCPUの使用権を他の
プログラムに切り換えるスイッチ手段と、を設け、複数
のプログラムを常に起動された順序で実行させることを
特徴としている。
以下、本発明の実施例に基づいて具体的に説明する。
第1図〜第9図は本発明の一実施例を示す図である。
第1図は本発明のマルチタスクシステムのタスク管理機
構の適用されるデータ処理装置1のブロック図であり、
データ処理袋W1は、CPU2、メモリ3およびタイマ
4等を有している。
メモリ3はプログラムやデータを記憶し、このメモリ3
内に後述する本発明のマルチタスクシステムのタスク管
理機構が構成される。
CPU2はCPU2の使用権を与えられたタスクを処理
することにより、メモリ3内のプログラムを実行する。
タイマ4は時間を計時し、一定時間毎にCPU2に時間
を通知する。
上記メモリ3内には、第2図に示すようなマルチタスク
システムのタスク管理機構10が構成され、マルチタス
クシステムのタスク管理機構10はマルチタスク本体1
1、スケジューラ−12およびタイムアウト13等を有
している。マルチタスク本体11は、複数のタスクTS
I−TSnの切り換え、タスクTSI〜TSn間の同期
制御およびシステムコールの実行等を行う機能であり、
スケジューラ−12はCPU2を複数のタスクTSI〜
TSnに割り当てる機能である。スケジューラ−12は
各タスクTSI ”TSnへのCPU2の割り当てを原
則としてタスクTSI〜TSnの優先順位に基づいて行
い、タイムスライス方式によりタスクスイッチを行う。
このスケジューラ−12に、プログラムにCPUを使用
する有効実行時間を設定する有効実行時間設定手段と、
プログラムに設定する有効実行時間を各プログラムの実
際の実行時間から計算する有効時間演算手段と、プログ
ラムの実行時間を有効実行時間を越えないように監視す
る監視手段と、有効実行時間を越えるまえにCPUの使
用権を他のプログラムに切り換えるスイッチ手段と、を
付与し、タスクに変更を加える処理を行うことなく、ま
た、タスクの実行時間を適切に配分する。タイムアウト
13は第1図のタイマ4から通知される時間を監視し、
一定時間が経つと、設定された処理を実行する。
マルチタスクシステムのタスク管理機構10のタスクT
SI〜TSnを制御するデータ構成は、第3図のように
示され、優先順位を管理する優先順位テーブル21が用
意されている。優先順位テーブル21には、タスクTS
I〜TSnの優先順位に従った各タスクTSI =TS
nのタスクコントロールブロック22のポインタがはい
っており、優先順位テーブル21のもっとも優先順位の
高いタスクコントロールブロック22のタスクTSI〜
TSnが次に実行されるタスクTSI〜TSnである。
各タスクコントロールブロック22にはタスクTSI〜
TSnのポインタ31、グループ32、タイム33、お
よびID34等が入っている。ポインタ31は同一グル
ープ内のタスクTSI〜TSnの次のタスクコントロー
ルブロック22を指tポインタであり、グループ32は
他のグループを指すポインタである。タイム33はこの
タスクコントロールブロック22が指しているタスクT
SI ”TSnの実際の実行時間RTが入っており、実
行時間RTはタスクTSI〜TSnがCPU2を使用し
ている時間をタイマ4で測定してスケジューリング時に
、順次加算される。実行時間RTは、タスクTSI〜T
Snの起動時には、′0”に初期化される。ID33は
タスクTSI〜TSnの起動順に付けられる番号であり
、起動するごとに増える。ID33は、スケジューリン
グ時に、起動順序の判定に使用される。
次に作用について説明する。
データ処理装置1ばメモリ3に構成されたマルチタスク
システムのタスク管理機構10によりタスクTSI〜T
Snのマルチ処理を行う。この際、スケジューラ−12
は、通常、複数のタスクTSI〜TSnに優先順位方式
によりCPU2の使用権を与えてタスクTSI〜TSn
の実行を行わせ、タイムアウト13が作動すると、タス
クスイッチが起き、優先順位方式により次のタスクTS
I〜TSnに使用権が移る。
ところが、例えば、印刷処理のようにタスクを起動順序
に実行処理する必要のある場合がある。
このような場合に従来のスケジューラ−のセフォマやメ
ールボックス等により対応しようとすると、前述のよう
にタスクに変更処理を加える必要が生じたり、不適切な
待ち時間が生じ、システム全体としての処理速度が遅く
なる。
そこで、本実施例では、スケジューラ−12に、上記プ
ログラム(タスク)にCPUを使用する有効実行時間を
設定する有効実行時間設定手段と、プログラムに設定す
る有効実行時間を各プログラムの実際の実行時間から計
算する有効時間演算手段と、プログラムの実行時間を有
効実行時間を越えないように監視する監視手段と、実行
時間が有0 効実行時間を越えるまえにCPUの使用権を他のプログ
ラムに切り換えるスイ・ノチ手段と、を設けることによ
り、タスクTSI〜TSnへの変更処理を省き、また、
タスクTSI〜TSnの不必要な待ち時間を無くし、シ
ステム全体の処理速度を向上させている。
すなわち、第4図に示すように、マルチタスク本体11
のテーブルによりポインタで実行するタスクT31′〜
TSnのタスクコントロールブロック22が指定される
と、そのタスクコントロールプロ・ツク22のタスクT
SI〜TSnを次に実行するタスクTSI〜TSnとし
て設定する(ステ・ノブPI)。次に実行するタスクT
SI〜TSnが設定されると、そのタスクTSI〜TS
nの所属する同一グループ内でタスクTSI〜TSnの
起動順序が1つ手前のタスクTSI〜TSn(すなわち
、次に実行するタスクTSI ”TSnと同一グループ
内で次に実行するタスクTSI〜TSnのID33に一
番近くて最も小さいID33のタスクTSI〜TSn>
をタスクコントロールプロ・ツク22のID33から探
す(ステップP2、P3)。ここ■ ( で、グループとは、タスクTSI〜TSnの制御を処理
内容に応して分類したもので、各グループ毎に本発明の
タスク管理処理を設定することができ、また、本発明の
タスク管理処理を設定しなし)こともできる。起動順序
が一つ手前のタスクTSI −TSnが見つかると、有
効実行時間ATを演算する(ステップP4)。この有効
実行時間ATは次に実行するタスクTSI〜TSnがC
PU2を使用できる最大時間を意味しており、次式より
求められる。
有効実行時間へT= (、次に実行するタスクの実行時
間RT) −(同一グループ内の最もIDの小さいタス
クの実行時間RT)ここで、実行時間RTは、前述のよ
うに、そのタスクTSI〜TSnの実行時間(実際にC
PU2を使用した時間)の積算値であり、そのタスクT
SI〜TSnの起動時には“O”が設定される。有効実
行時間へTの演算が終了すると、グループおよびタスク
TSI〜TSnのつなぎ換えを行い(ステ・ノブP5)
、有効実行時間ATが“0”かどうかチエ・ツクする2 (ステップP6)。グループおよびタスクのつなぎ換え
は第5図(A)(B)および第6図(A)(B)のよう
に行い、グループとタスクのつなぎ換えは同時に行う。
すなわち、グループは、第5図(A)に示すように、タ
スクコントロールブロック22のグループ32によりポ
インタで示されたタスクコントロールブロック22につ
ながれ、先頭のグループ32が選択されると、第5図(
B)に示すように、最後尾のグループ32と選択された
先頭のグループ32とがつながれる。このグループ32
のつなぎ換えと同時に、第6図(A)に示すようにつな
がれたタスクTSI〜TSnは、第6図(B)にしめず
ように、先頭のタスクTSI =TSnと最後尾のタス
クがつながれる。グループ32およびタスクTS1〜T
Snのつなぎ換えが終了すると、有効実行時間へTが“
0”かどうかチエツクし、有効実行時間ATが“O”で
あると、有効実行時間ATが割り当てられていないので
、そのタスクTSI −TSnを実行することなく、ス
テップP1に戻って、次のタスクTSI〜TSnの設定
を行う。有効実行時間訂が有3 るときには、ステップPiで設定したタスクTSI〜T
SnをCPU2で実行しくステップP7)、CPU2は
所定時間毎に実行中のタスクTSI〜TSnを中断して
タスクTSI〜TSnの今回の実行時間が有効実行時間
ATに達したかどうかチエツクする(ステップP8 、
P9)。今回の実行時間が有効実行時間ATに達してい
ないときには、ステップP7に戻ってステップP1で設
定したタスクTSI〜TSnの実行を継続し、今回の実
行時間が有効実行時間ATに達したときには、割り当て
られた有効実行時間ATを全て使い果たしたので、ステ
ップP1に戻ってスケジューラ−12により次に実行す
るタスクTS1=TSnを設定する。このとき実行する
タスクTS1〜TSnはステップP5でつなぎ換えられ
た次のグループ32のタスクTS1〜TSnである。ま
た、ステップP3で同一グループ32内で最小のIDの
タスクTSI〜TSnが見つからないとき、すなわち、
当該タスクTSI〜TSnがそのグループで最優先のタ
スクTSI〜TSnのとき、には、有効実行時間ATの
演算を行うことなく、グループ32およびタスク4 TSI =TSnのつなぎ換えを行い(ステップP10
)、ステップP7に移行してステップP1で設定したタ
スク]゛S1〜TSnの実行を行う。このときのタスク
スインチは、タイムスライス方式による所定の時間等に
より行う。
上記作用をさらに具体的に説明すると、例えば、印刷処
理を行う場合、タスク間の同期を取らない場合、第7図
に示すように、−枚目のタスクが、TIの時点で起動し
、二枚口のタスクが、T2の時点で起動した場合、図中
矢印の−L部に記載されている時間だけ各タスクが実行
され、T3の各時点でタスクの切り換えが行われる。そ
の後、二枚口のタスクが、T4の時点で終了し、−枚目
のタスクが、T5の時点で終了するという、タスクの起
動順序と終了順序が逆転する現象の生しることがある。
そこで、従来、セフォマ等の方法を用い、タスク間の同
期をとって起動順にタスクを実行させて、起動順に終了
させていた。この場合、例えば、第8図に示すように、
−枚目のタスクが、TIの時点で起動し、二枚口のタス
クが、T2の時点で起動した5 場合、T3の各時点でタスクの切り換えが行われ、−枚
目のタスクがT4の時点で終了し、二枚口のタスクが、
その後のT5の時点で終了すると、各タスクが起動順に
実行されて起動順に終了する。しかし、セフォマ等の方
法を用いると、上述のように、システム全体の処理速度
が低下する等の問題があった。そこで、本発明では、ス
ケジューラ−12に上記各手段を設け、タスクの実行可
能な時間として有効実行時間ATを設定し、タスクへの
変更処理を行うことな(、タスク間の同期をとっている
したがって、第9図に示すように、−枚目のタスクが、
T1の時点で起動し、二枚口のタスクが、T2の時点で
起動すると、いま、初期起動であるから、まず、二枚口
のタスクの有効実行時間ATが一枚目のタスクの実行時
間RTから演算されて設定される。
二枚口のタスクがこの有効実行時間ATだけ実行すると
、T3の時点でタスクの切り換えが行われ、次いで、当
該グループで最優先の一枚目のタスクがタイムスライス
方式による実行時間RTの間実行すると、T4の時点で
タスクスインチが生じる。二枚6 目のタスクの有効実行時間ATを一枚目の実行時間RT
から二枚口の実行時間RTを減算して求め、演算結果の
有効実行時間^Tだけ二枚口のタスクを実行し、有効実
行時間ATが経過して、T5の時点で、タスクスインチ
が生しると、−枚目のタスクを実行する。T6の時点で
、−枚目のタスクの全ての処理を終了して、タスクスイ
ンチが生しると、二枚口のタスクの処理を実行し、二枚
口のタスクの全ての処理が、T7の時点で終了する。し
たがって、各タスクが起動順位に実行され、起動順位に
終了する。その結果、印刷処理において、ページ順位が
狂うことなく、かつ、速やかに処理を実行させることが
できる。
このように、スケジューラ−12において、各グループ
32毎に各タスクTSI ”TSnの実行時間を有効実
行時間ATとして割り当て、この有効実行時間ATを、
上記式のように、次の実行タスクTSI〜TSnの実行
時間RTから同一グループ32内の最小IDのタスクT
SI〜TSnの実行時間RTを減算して求めているので
、従来のように、セフォマ等を使用した] 7 方法をタスクTSI〜TSnに組み込むためにタスクT
SI〜TSnに変更を加える必要がなく、タスクTS1
〜TSnの同期をとってタスクTSI〜TSnを起動し
た順序に実行させることができるとともに、各タスクT
SI ”TSnの実行できる時間を有効実行時間ATと
して最大限に確保することができる。その結果、システ
ム全体の処理時間を向上させることができる。また、上
記実施例においては、タスクTSI〜TSnを制御グル
ープにわけて行っているため、本発明のタスク管理機能
をグループ毎に設定することができるとともに、本発明
のタスク管理機能を必要としない場合にはそれらを別の
グループとすることができる。
(効果) 本発明によれば、タスクへの変更処理を行うことなく、
タスクの同期をとることができ、また、各タスクの実行
できる時間を最大限に確保することができる。したがっ
て、タスク間の同期をとる必要がある場合にも、システ
ム全体の処理速度を向上させることができる。
【図面の簡単な説明】
第1図〜第8図は本発明のマルチタスクシステムのタス
ク管理機構の一実施例を示す図であり、第1図はそのマ
ルチタスクシステムのタスク管理機構を適用したデータ
処理装置のブロック図、第2図はそのマルチタスクシス
テムのタスク管理機構の構成図、第3図はそのタスクコ
ントロールブロックの構成図、第4図はそのタスク管理
処理のフローチャート、第5図(A)(B)はそのグル
ープのつなぎ換えの説明図、第6図(A)(B)はその
タスクのつなぎ換えの説明図、第7図は印刷処理におけ
る非同期時のタスクの実行状態を示す図、第8図は印刷
処理における従来の同期処理のタスクの実行状態を示す
図、第9図は印刷処理における本発明のタスク管理機構
による同期処理のタスクの実行状態を示す図である。 l・・・・・・データ処理装置、 2・・・・・・cpu。 3・・・・・・メモリ、 4・・・・・・タイマ、 9 11・・・・・・マルチタスク本体、 12・・・・・・スケジューラ− 13・・・・・・タイムアウト、 21・・・・・・テーブル、 22・・・・・・タスクコントロールブロック、TSI
 〜TSn・・・・・・タスク。

Claims (1)

    【特許請求の範囲】
  1. プログラムやデータを記憶するメモリと、メモリにある
    プログラムを実行するCPUと、一定時間毎にCPUに
    時間を知らせるタイマと、を備えたデータ処理装置を、
    複数のプログラムで共有するマルチタスクシステムのタ
    スク管理機構において、プログラムにCPUを使用する
    有効実行時間を設定する有効実行時間設定手段と、プロ
    グラムに設定する有効実行時間を各プログラムの実際の
    実行時間から計算する有効時間演算手段と、プログラム
    の実行時間を有効実行時間を越えないように監視する監
    視手段と、実行時間が有効実行時間を越えるまえにCP
    Uの使用権を他のプログラムに切り換えるスイッチ手段
    と、を設け、複数のプログラムを常に起動された順序で
    実行させることを特徴とするマルチタスクシステムのタ
    スク管理機構。
JP32204589A 1989-12-12 1989-12-12 マルチタスクシステムのタスク管理機構 Pending JPH03182937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32204589A JPH03182937A (ja) 1989-12-12 1989-12-12 マルチタスクシステムのタスク管理機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32204589A JPH03182937A (ja) 1989-12-12 1989-12-12 マルチタスクシステムのタスク管理機構

Publications (1)

Publication Number Publication Date
JPH03182937A true JPH03182937A (ja) 1991-08-08

Family

ID=18139307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32204589A Pending JPH03182937A (ja) 1989-12-12 1989-12-12 マルチタスクシステムのタスク管理機構

Country Status (1)

Country Link
JP (1) JPH03182937A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202912A (ja) * 1992-09-11 1994-07-22 Internatl Business Mach Corp <Ibm> データ処理方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202912A (ja) * 1992-09-11 1994-07-22 Internatl Business Mach Corp <Ibm> データ処理方法および装置

Similar Documents

Publication Publication Date Title
JP3922070B2 (ja) 分散制御方法及び装置
US6895585B2 (en) Method of mixed workload high performance scheduling
KR20000060827A (ko) 실시간 운영체계 커널(Real-time operating systemKernel)의 이벤트 전달 체계 구현방법
Lehoczky et al. Scheduling periodic and aperiodic tasks using the slack stealing algorithm
CN109189581B (zh) 一种作业调度方法和装置
US20060123421A1 (en) Streamlining cpu utilization by delaying transactions
JP2004517424A (ja) サーバーアーキテクチャー
US11275621B2 (en) Device and method for selecting tasks and/or processor cores to execute processing jobs that run a machine
JPH03182937A (ja) マルチタスクシステムのタスク管理機構
CN108304257A (zh) 基于延迟服务器的强实时混合任务调度方法
CN114661415A (zh) 调度方法及计算机系统
Aijaz et al. Efficient round robin algorithm (ERRA) using the average burst time
JPH08235047A (ja) 排他ウエイト削減制御方法
JP2667575B2 (ja) タスクスケジューリング方式
JPS63300326A (ja) トランザクション実行スケジュ−ル方式
Pirani et al. A comparative review of CPU scheduling algorithms
JPH04162155A (ja) ファイル転送管理システム
JPH11203149A (ja) タスクスケジュール装置およびその方法
JPH0877029A (ja) 負荷率に基づいた処理要求実行順序制御方式
CN110109743B (zh) 一种实时进程调度方法
JPH0644234B2 (ja) タスク管理装置
JPH1074150A (ja) プロセススケジューリング方法ならびにそのためのプロセススケジューリング装置およびプログラム記憶媒体
JPS59146387A (ja) マルチプロセスにおけるスタツク制御方式
JPH09282185A (ja) リアルタイムシステムおよびその資源管理方法
JP3653176B2 (ja) プロセス実行制御方法