JPH10222380A - スケジューリング方式 - Google Patents

スケジューリング方式

Info

Publication number
JPH10222380A
JPH10222380A JP2873297A JP2873297A JPH10222380A JP H10222380 A JPH10222380 A JP H10222380A JP 2873297 A JP2873297 A JP 2873297A JP 2873297 A JP2873297 A JP 2873297A JP H10222380 A JPH10222380 A JP H10222380A
Authority
JP
Japan
Prior art keywords
task
priority
tasks
instruction
priority level
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
JP2873297A
Other languages
English (en)
Inventor
Tomihisa Hatano
富久 幡野
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2873297A priority Critical patent/JPH10222380A/ja
Publication of JPH10222380A publication Critical patent/JPH10222380A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】タスク切り換えマクロ命令によってタスク切り
換えを行う場合でも、タスク間で優先順位が出るようし
たスケジューリング方式を提供する。 【解決手段】タスク切り換えマクロ命令でタスク切り換
えするタスクの中で最高優先レベルを持つタスクの優先
レベルを管理し、周期的に起こるタイマ割り込みの発生
タイミングで、優先順位の低いタスクから優先順位の高
いタスクに制御を渡すことによって、タスク間で優先順
位が出るようしたスケジューリング方式。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はスケジューリング方
式に関する。
【0002】
【従来の技術】パーソナルコンピュータなどの小型コン
ピュータシステムでも、マルチタスクOSが採用されつ
つある。マルチタスクOSによって、ワードプロセッ
サ、作表プログラム、通信ソフトウェアなど複数のアプ
リケーションプログラムが、それぞれ独立したタスクと
して、同一のパーソナルコンピュータ上で、並列実行で
きるようになった。
【0003】これらのアプリケーションプログラムは、
キー操作による指令の入力のためのキー入力ループ処
理、通信回線からのデータ受信要求を検知するセンスル
ープ処理などを持っている。
【0004】このようなループ処理を持つタスクを並列
実行させる技術として、タスク切り換えマクロ命令によ
って、タスク切り換えを行う方式(特開昭63−163
640号公報)が知られている。
【0005】従来の、タスク切り換えマクロ命令によっ
て、タスク切り換えを行う方式では、タスク切り換えマ
クロ命令の発行回数、タスク切り換えマクロ命令を発行
する間隔によってタスクの動きが変わってくる。
【0006】自タスクのセンスループの実行頻度を他の
タスクより大きくしたいと考えても、他のタスクがタス
ク切り換えマクロ命令を発行しない限り、自タスクに制
御が戻ってこない。また、自タスクでタスク切り換えマ
クロ命令を多用すると自タスクの実行時間が小さくなっ
てしまうという問題があった。このためシステム設計が
難しかった。
【0007】
【発明が解決しようとする課題】通信ソフトウェアとワ
ードプロセッサを並列実行させる場合、通信ソフトウェ
アの方をワードプロセッサより優先的に実行させ、リア
ルタイム性を出したい。すなわち、タスク切り換えマク
ロ命令で一旦優先順位の低いタスクへ制御を渡したとし
ても、すぐに自タスクに制御が戻って来るようにした
い。
【0008】本発明の目的は、タスク切り換えマクロ命
令によって、タスク切り換えを行う場合にも、タスク間
で優先順位が出るようしたスケジューリング方式を提供
することにある。
【0009】
【課題を解決するための手段】上記課題は、次の手段に
より解決できる。
【0010】(1)アプリケーションプログラムが発行
するタスク切り換えマクロ命令。
【0011】(2)タスク切り換えマクロ命令が発生し
たタイミングで、次のタスク(一般には優先順位が低い
タスク)に制御を順番に渡すスケジューリング機構。
【0012】(3)タスク切り換え命令を発行するタス
クの中で最高優先レベルを持つタスクの優先レベルを記
憶しておく手段。
【0013】(4)タイマ割り込みが発生したタイミン
グで、優先順位の低いタスクから優先順位の高いタスク
に制御を渡すスケジューリング機構。
【0014】
【発明の実施の形態】本発明の実施例を図面を用いて説
明する。
【0015】図1に本発明の一実施例のブロック図を示
す。100はOSマクロ命令、200はタイマ割り込み
処理部、300はタスク切り換えマクロ命令(UPR命
令と呼ぶ)、400はタスク切り換え判定処理、500
はスケジューラ1/2、600はタスク群である。通信
ソフトウェア、ワードプロセッサ、作表プログラム等が
タスクとして登録され、マルチタスクOSの下で並列に
実行される。
【0016】各タスクには優先レベルが与えられてお
り、これに応じてタスクの優先順位が決定される。
【0017】図2にCPU待ち行列の説明図、図3にシ
ステムに登録されたアプリケーションプログラムをタス
クとして管理するTCBの説明図を示す。TCB800
は、タスク毎に作成され、タスクの動作状態(TCB−
TASKSTATUS)、優先レベル(TCB−PRI
ORITY),UPRフラグ(TCB−UPRF)など
の情報を格納している。
【0018】CPU待ち行列は700a,700b,7
00iのように、優先レベルに対応して構成されてい
る。システムに登録されたタスクを管理するTCBは当
該タスクの優先レベルに対応したCPU待ち行列に、登
録された順につながる。
【0019】優先順位はタスクの優先レベルとCPU待
ち行列につながった順序で決まる。ここでは、数字の小
さいレベルの方が優先度が高いとする。この優先順位に
従って、実行可能なタスクが検索され、順番に実行され
る。
【0020】CURLVL710とREQLVL720
はスケジューリングを制御するための情報である。CU
RLVL710は現在実行中のタスクの優先レベルを格
納している。REQLVL720は現在実行中のタスク
が動作している間に、新たに実行要求されたタスクの優
先レベルを格納している。
【0021】図1、図2で全体の制御の流れを説明す
る。最初はタスクAが実行中だったと仮定する。実行中
のタスクAがUPR命令300を発行すると、スケジュ
ーラ500へリンクする。スケジューラ500ではCP
U待ち行列で、現在実行中タスクAの次のタスクBから
検索を開始する。動作可能タスクが見つかった場合その
タスクBに切り換える。切り換わったタスクBがUPR
命令300を発行すると、スケジューラ500はタスク
Bの次のタスクを探す。CPU待ち行列の最後尾の場
合、次の優先レベルのCPU待ち行列を探し、タスクC
を検出しそのタスクCに切り換える。この動作を繰り返
し最低優先レベルのCPU待ち行列の最後尾のタスクD
まで到達した後は、最高優先レベルのCPU待ち行列に
戻り検索を繰り返す。
【0022】ここで、UPR命令でタスク切り換えする
タスクの中で最高優先レベルを持つタスクの優先レベル
をREQLVL720に記憶しておく。一定周期でタイ
マ割り込みが発生するとタイマ割り込み処理200を経
由してタスク切り換え判定処理400が動作する。ここ
では、現在実行中タスクの優先レベルCURLVL71
0とREQLVL720を比較する。CURLVLの方
が高優先の場合には、現在実行中タスクをそのまま続け
て実行する。一方、REQLVLの方が高優先の場合に
は、タスクを切り換えるためにスケジューラ500へリ
ンクする。この場合スケジューラ500はREQLVL
に対応するCPU待ち行列から検索を開始して、次に実
行するタスクを決定する。
【0023】このようにして、タイマ割り込みが発生す
るタイミングで、UPR命令でタスク切り換えするタス
クの中で最高優先レベルを持つタスクへ制御を戻す。
【0024】図4にUPR命令300のフローチャート
を示す。まずタスクのTCB内のTCB−UPRFに1
を設定(ステップ301)し、UPR命令を発行したこ
とを記録しておく。そしてステップ301でSET−R
EQLVLサブルーチンを呼び出して、タスクの優先レ
ベルとREQLVLを比較し、高優先レベルの方の値を
REQLVLに設定する(ステップ901)。すなわ
ち、UPR命令でタスク切り換えするタスクの中で最高
優先レベルを持つタスクの優先レベルをREQLVL7
20に記憶しておく。
【0025】図5にSET−REQLVLサブルーチン
900のフローチャートを示す。
【0026】図6にスケジューラ500のフローチャー
トを示す。このスケジューラは入口を二つもっている。
スケジューラ500aはタスク切り換え判定400から
リンクし、スケジューラ500bはUPR命令300か
らリンクする。
【0027】スケジューラ500aではREQLVLに
対応するCPU待ち行列から検索を開始する(ステップ
501)。そしてREQLVLに0FFhを設定して初
期化しておく(ステップ502)。ステップ503、5
04、505のループでTCBを探す。全てのCPU待
ち行列を探し終わった場合、ステップ506でREQL
VLを調べ、初期値(0FFh)のままならば実行要求
しているタスクは無いとみなしアイドル実行する(ステ
ップ507)。初期値以外の優先レベルが設定されてい
るならばステップ501へ戻って再びREQLVLに対
応するCPU待ち行列から検索を開始する。
【0028】スケジューラ2では現在実行中タスクの次
のTCBから検索を開始する(ステップ550)。
【0029】ステップ503でTCBを見つけたなら
ば、そのタスクが動作可能状態か否か調べる。動作可能
状態の場合、ステップ511、512、513でUPR
命令に関わる処理をおこなう。検出したタスクのTCB
−UPRFフラグが1かどうか調べる(ステップ51
1)。TCB−UPRFフラグが1の場合、タスクはU
PR命令を発行したタスクである。UPR命令を発行し
たタスクを直ちに実行すると動作回数が多くなり過ぎる
ので、1回動作を休ませることにする。すなわち、TC
B−UPRFフラグを0クリアし(ステップ512)、
いずれ再びスケジューリングされるようにSET−RE
QLVLサブルーチンを呼び出して、REQLVLを更
新しておく(ステップ513)。そして、ステップ51
4にリンクして次のTCBを探す。
【0030】ステップ511にてTCB−UPRFフラ
グが0であった場合、検索したタスクの優先レベルをC
URLVLに設定し(ステップ515)、検索したタス
クを実行させる(ステップ516)。
【0031】図7にタスク切り換え判定400のフロー
チャートを示す。図1に示したように、この処理はOS
マクロ命令100やタイマ割り込み処理200が実行さ
れた後に実行される。タスク切り換え判定400では、
現在実行中タスクの優先レベルCURLVL710とR
EQLVL720を比較する(ステップ401)。CU
RLVLの方が高優先の場合には、現在実行中タスクを
そのまま続けて実行する(ステップ403)。一方RE
QLVLの方が高優先の場合には、タスクを切り換える
ためにスケジューラ500aへリンクする。
【0032】
【発明の効果】本発明によれば、タスク切り換えマクロ
命令によって、タスク切り換えを行う場合でも、タスク
切り換えマクロ命令でタスク切り換えするタスクの中で
最高優先レベルを持つタスクの優先レベルを管理し、周
期的に起こるタイマ割り込みの発生タイミングで、優先
順位の低いタスクから優先順位の高いタスクに制御を渡
すことによって、タスク間で優先順位が出るようしたス
ケジューリング方式を可能とする。
【図面の簡単な説明】
【図1】本発明の一実施例のブロック図。
【図2】CPU待ち行列の説明図。
【図3】TCBの説明図。
【図4】UPR命令のフローチャート。
【図5】SET−REQLVLサブルーチンのフローチ
ャート。
【図6】スケジューラのフローチャート。
【図7】タスク切り換え判定のフローチャート。
【符号の説明】
100…OSマクロ命令、 200…タイマ割り込み処理部、 300…タスク切り換えマクロ命令、 400…タスク切り換え判定処理、 500…スケジューラ1/2、 600…タスク群。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】マルチタスクOSにおいて、現在実行中の
    タスクから次の実行可能なタスクに制御を切り換えるこ
    とをOSに要求するタスク切り換えマクロ命令、上記タ
    スク切り換えマクロ命令が発生したタイミングで、現行
    タスクの次の優先順位のタスクに制御を順番に渡すスケ
    ジューリング機構、タスク切り換え命令を発行するタス
    クの中で最高優先レベルを持つタスクの優先レベルを記
    憶しておく手段、及びタイマ割り込みが発生したタイミ
    ングで、優先順位の低い現行タスクから優先順位の高い
    タスクに制御を渡すスケジューリング機構により、上記
    タスク切り換えマクロ命令によって、タスク切り換えを
    行う場合にも、タスク間で優先順位が出るようしたこと
    を特徴とするスケジューリング方式。
  2. 【請求項2】請求項1において、上記タスク切り換えマ
    クロ命令でタスク切り換えるタスクの中で最高優先レベ
    ルを持つタスクの優先レベルを記憶しておく手段、及び
    その記憶した情報に従って、定期的にあるいは不定期的
    に低優先レベルの現行タスクから高優先レベルのタスク
    へタスク切り換えするスケジューリング方式。
  3. 【請求項3】請求項1において、タスクがタスク切り換
    え命令を発行したことを記憶しておく手段、及びその記
    憶した情報に従って、タスク切り換え命令を発行したタ
    スクの実行を1回以上スキップするスケジューリング方
    式。
JP2873297A 1997-02-13 1997-02-13 スケジューリング方式 Pending JPH10222380A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2873297A JPH10222380A (ja) 1997-02-13 1997-02-13 スケジューリング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2873297A JPH10222380A (ja) 1997-02-13 1997-02-13 スケジューリング方式

Publications (1)

Publication Number Publication Date
JPH10222380A true JPH10222380A (ja) 1998-08-21

Family

ID=12256618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2873297A Pending JPH10222380A (ja) 1997-02-13 1997-02-13 スケジューリング方式

Country Status (1)

Country Link
JP (1) JPH10222380A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036993A (ko) * 2002-10-25 2004-05-04 주식회사 디지털앤디지털 시스템 타이머를 이용한 스케쥴링 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036993A (ko) * 2002-10-25 2004-05-04 주식회사 디지털앤디지털 시스템 타이머를 이용한 스케쥴링 장치 및 방법

Similar Documents

Publication Publication Date Title
JP5324934B2 (ja) 情報処理装置および情報処理方法
JP3037182B2 (ja) タスク管理方式
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
JP2000347883A (ja) 仮想計算機装置
Roy et al. Condor and preemptive resume scheduling
US8423681B2 (en) Control apparatus for process input-output device
JPH10222380A (ja) スケジューリング方式
JPH04257010A (ja) システムクロック切り替え機構
CN1890641B (zh) 任务管理系统和任务管理方法
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
JPH11312148A (ja) バリア同期方法及び装置
JP2636722B2 (ja) マルチタスク実行管理方式
JP2002099435A (ja) マルチタスク制御方法および情報処理装置
JP3576437B2 (ja) マルチプロセッサタスク制御方法及びタスク制御装置
JP2597283B2 (ja) 割込みにおけるスケジューリング方式
JPH10340197A (ja) キャッシング制御方法及びマイクロコンピュータ
JP7322797B2 (ja) リアルタイム演算処理装置
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法
JPH06214811A (ja) スケジューリング方式
JPH04367942A (ja) システムの動作管理処理装置
JP2553526B2 (ja) マルチタスク処理装置
JP2822728B2 (ja) コンピュータシステム
JPH0836553A (ja) マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法
JPH08314740A (ja) プロセスディスパッチ方法
KR100321408B1 (ko) 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법