JPH02247738A - マルチタスクシステム - Google Patents

マルチタスクシステム

Info

Publication number
JPH02247738A
JPH02247738A JP6885089A JP6885089A JPH02247738A JP H02247738 A JPH02247738 A JP H02247738A JP 6885089 A JP6885089 A JP 6885089A JP 6885089 A JP6885089 A JP 6885089A JP H02247738 A JPH02247738 A JP H02247738A
Authority
JP
Japan
Prior art keywords
task
time
queue
waiting time
wait
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
JP6885089A
Other languages
English (en)
Inventor
Masanobu Nakajima
中島 正信
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6885089A priority Critical patent/JPH02247738A/ja
Publication of JPH02247738A publication Critical patent/JPH02247738A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 【産業上の利用分野】
この発明は、1つの中央演算処理装置(以下CPUとい
う)で複数個の固有の目的を持つプログラム(以下タス
クという)を実行するマルチタスクシステムに関するも
のである。
【従来の技術】
一般に、マルチタスクシステムは複数個のタスクの実行
を制御するモニタと呼ばれる特別なプログラムを、タス
クとは別に設けている。 第7図は、例えば電子雑誌「インターフェース」「Nα
9B、 P220−228.1987発行)に示された
従来のマルチタスクシステムを示すシステム構成図であ
り、1はタスクを実行するCPU、2は前記モニタ及び
タスクを格納するメモリ、3は前記CPU1に割込みを
発生させるタイマー装置、4はモニタ、5はシステムコ
ール処理部、6はタイマー装置3が発生した割込みの処
理をするタイマー割込み処理部、7は前記CPUIで実
行するタスクを選択するタスクスケジューラ、8はシス
テムが稼動すると最初に実行される初期化プログラム、
9は9−1〜9−nのn個のタスクであり、上述した4
〜9はメモリ2に格納されているプログラム又はテーブ
ルである。 また第8図はこのマルチタスクシステムにおけるタスク
9の処理状態を示す状態遷移図であり、図において、3
1はタスクが存在していない未登録状態、32はタスク
は存在しているが起動されていない登録状態、33はタ
スクがいつでも実行されるよう準備されているレディ状
態、34は実行中のタスクを示すラン状態、35はタス
クが事象の発生(起動指示)を待っているウェイト状態
、36はタスクが中断要求を受けた中断状態を示す。 次にモニタの動作について説明する。 なお、この発明に特に関与しない中断状態36について
は説明を省略する。 まず初めは、n個のタスク9−1〜9−nがすべて未登
録状態31になっているものとする。 マルチタスクシステムが起動すると、初期化プログラム
8が動作し、n個のタスク9−1〜9−nに対してタス
ク登録のシステムコールを行い、すべて登録状態になる
。 次に初期化プログラム8がタスク起動のシステムコール
を行って第1のタスク(仮にタスク9−1とする)を起
動させることで(通常初めに起動するタスクをイニシャ
ルタスクという)、第1のタスク9−1はレディ状態3
3、n−1個のタスク9−2〜9−nは登録状態32と
なる。 次に初期化プログラム8が終了すると、タスクスケジュ
ーラ7が起動し、レディ状B33のタスク(第1のタス
ク9−1)が1つしかないので、このタスクをラン状態
34へ移行させ、第1のタスク9−1の実行が始まる。 次に第1のタスク9−1又はタイマー割込み処理部6は
第2のタスク(仮にタスク9−2とする)を要求するシ
ステムコールを発生させ、第2のタスク9−2をレディ
状態へ移行させる。ただし、ここで第1のタスク9−1
はラン状態34、第2のタスク9−2はレディ状B、3
3であるが、いずれのタスクを実行させるかはタスクス
ケジューラの処理による。 以上のように従来のマルチタスクシステムは、各タスク
をタスクの終了、あるいはシステムコール等によって、
第3図の各状態を遷移させ、マルチタスク処理を実現し
ている。 次にウェイト状態35について説明する。 あるタスク(仮にタスク9−1とする)がラン状態34
にあるとき、自タスクへのメツセージ到着、一定時間の
経過等の事象が発生するまで処理をする必要がない場合
が生じる。このときタスク9−1は自らウェイト状N4
35になるようにシステムコールを発生し、モニタ4に
通知する。モニタ4内ではシステムコール処理部5で該
システムコールを判断し、その内容に従ってタスクスケ
ジューラ7はラン状w434のタスク9−1をウェイト
状態35にし、レディ状a33のタスク中量も優先度の
高いタスクをラン状態34にして、このタスクへ制御を
移す。ここでウェイト状態35になったタスク9−1は
要求した事象が実現されるまでウェイト状1!35を維
持し、事象が実現されるとモニタ4によってレディ状態
33へ移される。 タスクがウェイト状1135にあるとき、再度起動され
る事象には主に以下の3つがある。 ■ 他タスクから起動指示がある(メツセージの到着等
)。 ■ ウェイト状態35での設定した待ち時間が経過する
。 ■ 前記■と■の事象を指定し、どちらかが満足される
のを待つ。 ここでは、事象■についてウェイト状[35での処理を
説明する。まずラン状態34にあるタスクは、待ち時間
を指定して自分がウェイト状1135に入って他タスク
からの起動を待つシステムコールをする。このとき待ち
時間は、−iにシステム内のタイマー装置3が発生する
タイマー割込み間隔の倍数で指定される。いまラン状1
!34にあるタスク(仮にタスク9−1とする)が待ち
時間T。 を指定して、事象■を待つシステムコールをしたとする
。タスクスケジューラ7はタスク9−1をラン状B34
からウェイト状態35にし、タスク9−1の様々な情報
が入っているテーブル(以下TCBという)をウェイト
キュー(−時的にデータを格納する(モニタ4内のテー
ブル)へキューイング(ウェイトキューヘデータを格納
すること)する。第9図(a)に示すように当該TCB
はモニタ4内のテーブルにキューイングされ、該TcB
内に自ら指定した待ち時間TIをモニタ4によって書き
込まれ、ウェイト状態35になる。更に別のタスク(仮
にタスク9−2とする)が待ち時間T2でウェイト状態
35に移るシステムコールをした状態を示した状態図が
第9図(b)である、この図では指定した待ち時間が短
いタスクがウェイトキューの先頭へ配置され、先頭タス
ク以外のタスクのTCB内には、1つ前のタスクが起動
する時間を基準とした待ち時間が格納される。第9図(
C)では、更に別のタスク(仮にタスク9−3とする)
が待ち時間T、を指定し、ウェイト状態35に移るシス
テムコールをして、すでにウェイト状態35にあるタス
ク9−1及びタスク9−2との関係がTs >T。 >Ttになった場合を示す状態図である。第9図(a)
〜(C)のタスクは待ち時間が経過すると順次レディ状
態33になる。次にタイマー装置からのタイマー割込み
が発生した場合、タイマー割込み処理部6起動し、通常
のタイマー割込み処理を行った後、キューイングされて
いる各タスクのTCBの待ち時間をデクリメント(タイ
マー割込み処理にかかった時間を待ち時間から減じる)
し、デクリメントした結果が0以下になれば、該タスク
の待ち時間は終了したと判断し、該タスクをレディ状態
にする。次に待ち時間が終了する前に他タスクから起動
された場合、第9図(C)を例として説明すると、モニ
タ4は別タスクの指示に従って、ウェイト状態35にあ
るタスク(仮にタスク9−1とする)をレディ状態33
にする。このときタスク9−1の次に配置されているタ
スク9−3の待ち時間を、タスク9−1のTCB内に格
納されている時間を加算してタスク9−3のTCB内の
待ち時間の項目を変更する。
【発明が解決しようとする課題】
従来のマルチタスクシステムは以上のように構成されて
いるので、すでにウェイト状態にあるタスク数が増加す
ると、それに比例して次にウェイト状態へ遷移しようと
するタスクのTCBがウェイトキューヘキューイングさ
れる時間も増加し、ひいては全体の処理時間を増加させ
るという課題があった。 この発明は上記のような課題を解消するためになされた
もので、ウェイト状態にあるタスク数が増加しても、T
CBがウェイトキューヘキューイングされる時間が増加
しないマルチタスクシステムを得ることを目的とする。
【課題を解決するための手段】
この発明に係るマルチタスクシステムは、各タスクが指
定する待ち時間の最大待ち時間を設定し、ウェイトキュ
ーを前記最大待ち時間以上のTCBが格納されるキュー
領域と、前記最大待ち時間以下のプログラム情報を各待
ち時間毎に格納するキュー領域とに分割し、割込み毎に
前記キュー領域に格納されたTCBの待ち時間を修正し
、該TCBを該当する待ち時間のキュー領域へ再配置す
るようにしたものである。
【作用】
この発明におけるタスクスケジューラは、ウェイト状態
へ遷移しようとするタスクのTCBを該当するキュー領
域へ格納し、ウェイトキュー更新部でタイマー割込み毎
に該TCBの待ち時間を修正した後、該TCBを該当す
る待ち時間のキュー領域へ再配置することを可能にする
【発明の実施例】
以下、この発明の一実施例を図について説明する。 第1図はこの発明のマルチタスクシステムの構成を示す
ブロック図であり、図において、従来のマルチタスクシ
ステムの構成を示すブロック図(第7図)と同一部分に
ついては同一符号を付して説明を省略する。10はウェ
イトキューに格納されているTCBの待ち時間を変更す
るウェイトキュー更新部である。 第2図は、この発明の一実施例によるウェイトキューの
状態を示す図であり、モニタ内のテープルに、最大待ち
時間Tイ、X以下の待ち時間のタスクのTCBを待ち時
間順にキューイングするための先頭ポインタと、最大待
ち時間T。、を越える待ち時間を持つタスクのTCBを
キューイングするための先頭ポインタを有する。 次に動作について説明する。 システムが起動すると、各タスクがラン状態34あるい
はレディ状態33になるが、ここまでの動作は従来例と
同様である。 ラン状態34にあるタスクが、待ち時間を指定して自分
がウェイト状態35に遷移するとき、仮にタスク9−1
.9−2.9−3がそれぞれ待ち時間をTI。 T、、T、とじ、さらに待ち時間を指定しないタスク9
−4が、タスク9−11タスク9−2.タスク9−3.
タスク9−4の順にウェイト状態になったとする。 このとき各タスクの待ち時間の関係を以下のようにする
と、 Tt<T、<T□8〈T3 T4は待ち時間指定なしく事象待ち)・・−(1)にな
り、ウェイトキューのキューイング状態は第3図のよう
になる。 従来のマルチタスクシステムではタスク9−2あるいは
タスク9−3のTCBをキューイングする際に、ウェイ
トキュ一の先頭からTCBの待ち時間を計算する必要が
あったが、この発明ではその必要はなく、ウェイト状態
35にあるタスクのTCBの数が増加しても、待ち時間
のTCBごとに分割して格納しているのでキューイング
処理速度は一定となる。 次にウェイトキュー更新部10について説明する。 タイマー割込みが発生すると、タイマー割込み処理部6
が起動され、通常のタイマー処理を行った後、待ち時間
lのキュー領域を調査し、該キュー領域にTCBがキュ
ーイングされていれば、該キュー領域に格納されている
全てのTCBをキュー領域から取り出し、該タスクの状
態をレディ状833にする。この処理が終了すると、タ
イマー割込み処理部6はウェイトキュご更新部lOを起
動する。このウェイトキュー更新部は、まず待ち時間1
〜待ち時間T1.、のキュー先頭部分の待ち時間を修正
し、次のタイマー割込みに備える(第4図)0次にT 
a m xを越えるキュー領域に格納されているTCB
をサーチし、そのTCB内の待ち時間を修正する。この
とき1回のタイマー割込みでサーチするタスクのTCB
数は、多(ともシステムに許されているタスク最大数(
ウェイトキューにキューイングされるTCBの最大数)
をNとすると、 である。ここで記号〔〕はN/(キュー領域数)+1を
越えない最大の整数をとる。 さらに、T * m xを越えるキュー領域にn個を越
えるTCBがある場合に備えて、ウェイトキュー更新部
10内にポインタを設定し、次回のタイマー割込み時に
次のTCBから調査するようにする。 TCBがウェイトキューの最後であるなら、ウェイトキ
ューの先頭に戻る。次にTCBを調査するときの処理に
ついて説明する。TCBを調査するときは、まず該TC
B内にある待ち時間を調べ、その内容から該TCBが最
後に調査された時点(まだ1度も調査されていないTC
Bであればキューイングされた時点)から現時点までの
経過時間を滅じて待ち時間を更新する。更新後の待ち時
間がT□8以下になったTCBについては、該キュー領
域からTCBを取り出して待ち時間に対応したキュー領
域にキューイングする。このようにして待ち時間がT、
□を越えるタスクTCBについても必ず待ち時間が1 
”=TIIIIIKのキューへキューイングされること
になる。 なお、ウェイトキュー内で一定時間71111 Xを越
える待ち時間を持つタスクのTCBと時間待ちを行わな
いタスクのTCBを同一のキューにキューイングしてい
たが、これを別々に分けてもよい。 第5図は上記方法での(ウェイトキューのキューイング
)状態を示したものであり、時間待ちなしのタスクのT
CBをキューイングする領域を設けである。 第6図は、ウェイトキューにタスクのTCBがキューイ
ングされている状態を示す図である。このとき、タスク
9−1.9−2.9−3は時間待ちを行うタスク、タス
ク9−4は時間待ちを行わないタスクであり、時間待ち
を行うタスクの各々の待ち時間TI、 Tz 、 Tz
は Tt <T、 <TII□<T。 の関係にあるとすると、各タスクのTCBは第6図に示
すようにキューイングされる。このとき、ウェイトキュ
ー更新部lOの処理は上記実施例とほぼ同一であるが、
キュー領域内の各TCBが時間待ちをするかを判定する
必要がなくなるためより高速になる。
【発明の効果】
以上のようにこの発明によれば、ウェイトキューを各待
ち時間毎のキュー領域と最大待ち時間を越えるキュー領
域に分割し、タイマー割込み毎に該キュー領域に格納さ
れているTCBの待ち時間を修正し、該TCBを該当す
る待ち時間のキュー領域へ再配置するようにしたので、
ウェイト状態にあるタスク数が増加しても、次にウェイ
ト状態へ遷移しようとするタスクのTCBがウェイトキ
ューヘキューイングされる時間を一定にし、全体の処理
時間の遅延を防ぐという効果がある。
【図面の簡単な説明】
第1図はこの発明の一実施例の構成を示すブロック図、
第2図はこの発明の一実施例によるウェイトキューの構
成を示す図、第3図はこの発明の一実施例によるTCB
のキューイング状態を示す説明図、第4図はこの発明の
一実施例によるキュー領域毎に待ち時間の修正をする動
作を示す説明図、第5図及び第6図は、この発明の他の
実施例によるウェイトキューの構成を示す図、第7図は
従来のマルチタスクシステムの構成を示すブロック図、
第8図はタスクの処理状態を示す状態遷移図、第9図は
従来のマルチタスクシステムによるTCBのキューイン
グ状態を示す説明図である。 図において、1はCPU、2はメモリ、3はタンマー装
置である。 なお、図中、同一符号は同一、又は相当部分を示す。 2:jモ1j 第 図 第 図 6゜ 補正の内容 fll明細書をつぎのとおり訂正する。

Claims (1)

    【特許請求の範囲】
  1. プログラムを実行する中央演算処理装置と、前記プログ
    ラムを格納するメモリと、一定時間毎に前記中央演算処
    理装置に対し、割込みを発生させるタイマー装置を有し
    、複数個の前記プログラムを実行するマルチタスクシス
    テムにおいて、プログラムがウェイト状態で待機する待
    ち時間の最大待ち時間を設定し、ウェイト状態のプログ
    ラムの待ち時間情報を含むプログラム情報が格納される
    ウェイトキューを、前記最大待ち時間を越えるプログラ
    ム情報が格納されるキュー領域と、前記最大待ち時間以
    下のプログラム情報を各待ち時間毎に格納する複数のキ
    ュー領域とに分割し、タイマー装置からの割込み毎に前
    記キュー領域に格納されたプログラム情報の待ち時間を
    修正し、該プログラム情報を該当する待ち時間のキュー
    領域へ再配置することを特徴とするマルチタスクシステ
    ム。
JP6885089A 1989-03-20 1989-03-20 マルチタスクシステム Pending JPH02247738A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6885089A JPH02247738A (ja) 1989-03-20 1989-03-20 マルチタスクシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6885089A JPH02247738A (ja) 1989-03-20 1989-03-20 マルチタスクシステム

Publications (1)

Publication Number Publication Date
JPH02247738A true JPH02247738A (ja) 1990-10-03

Family

ID=13385564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6885089A Pending JPH02247738A (ja) 1989-03-20 1989-03-20 マルチタスクシステム

Country Status (1)

Country Link
JP (1) JPH02247738A (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
KR970016979A (ko) 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법
US7590990B2 (en) Computer system
JPH0533410B2 (ja)
JP3644042B2 (ja) マルチタスク処理装置
JPH02247738A (ja) マルチタスクシステム
JP4292705B2 (ja) タスクスケジューリング装置
JPH08297581A (ja) リアルタイム・オペレーティングシステムにおける割り込み管理方式
JP2636722B2 (ja) マルチタスク実行管理方式
JPH05108380A (ja) データ処理システム
JPH01154237A (ja) 時分割タスク実行装置
JPH0895803A (ja) タスクスケジュール方法
JP2607595B2 (ja) キューイングテーブル検索方式
KR100321408B1 (ko) 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법
JPH0540635A (ja) プログラム出口の動的非アクテイブ化方法および装置
JP3063015B2 (ja) 周期処理方法
JPS6125249A (ja) 排他制御方式
JPH07141300A (ja) マルチプロセッサを用いた周期処理方法
JPH07134656A (ja) 割り込み制御方法及びそれを実現するマルチタスクシステム
JPH01216432A (ja) マルチタスクシステム
JPS62271147A (ja) タスク制御方法
JPH01321525A (ja) ハードウェアセマフォ
JPH03116335A (ja) 非特権cpuから特権cpuヘの乗り移り方式
JPH02187841A (ja) メモリバッファ管理方式
JPS63108448A (ja) 入出力要求制御方式
JPH0215354A (ja) I/oスケジューリング方法