JPH03100831A - タスクスケジューリング方法 - Google Patents

タスクスケジューリング方法

Info

Publication number
JPH03100831A
JPH03100831A JP23732589A JP23732589A JPH03100831A JP H03100831 A JPH03100831 A JP H03100831A JP 23732589 A JP23732589 A JP 23732589A JP 23732589 A JP23732589 A JP 23732589A JP H03100831 A JPH03100831 A JP H03100831A
Authority
JP
Japan
Prior art keywords
task
flag
waiting list
priority
tcb
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.)
Granted
Application number
JP23732589A
Other languages
English (en)
Other versions
JP2554172B2 (ja
Inventor
Yasuo Sekine
康雄 関根
Koichiro Sakuraba
櫻庭 恒一郎
Tomoaki Nakamura
智明 中村
Hirokazu Kasashima
広和 笠嶋
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
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Process Computer Engineering Inc
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, Hitachi Process Computer Engineering Inc filed Critical Hitachi Ltd
Priority to JP1237325A priority Critical patent/JP2554172B2/ja
Publication of JPH03100831A publication Critical patent/JPH03100831A/ja
Application granted granted Critical
Publication of JP2554172B2 publication Critical patent/JP2554172B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンピュータシステムにおけるオペレーティ
ングシステムの処理に係り、特に巡回タスクスケジュー
ルを行うコンピュータシステムで特定のタスクを優先的
に動作させる場合に好適なタスクスケジューリング方法
に関する。
〔従来の技術〕
従来は、特開昭61−223950号に記載のように、
特定のタスクを優先的に動作させるために専用の待ち行
列リストを設け、タスクの属性に応じて異なる待ち行列
につなげ、一定時間ごとのタスク切り換え時に待ち行列
の選択優先度によってタスクを選択する方法をとってい
た。
〔発明が解決しようとする課題〕
上記従来技術は、特定のタスクを優先的に動作させるた
めに、一定時間の優先使用権しか保証しておらず、タス
ク実行時間分の優先使用権を与えていないため、緊急度
の高いタスクの実行が中断されてしまう問題があった。
本発明の目的は、特定のタスクに対して連続して実行権
を与えるようにしたタスクスケジューリング方法を提供
するにある。
〔課題を解決するための手段〕
本発明は、タスク制御ブロックに、設定および削除可能
な巡回スケジュール抑止フラグを設け、タスク中断時に
該フラグを参照し、タスク中断時のスケジュール順序を
選択するようにしたものである。
〔作 用〕
本発明では、連続実行権をタスクに与えたい場合は、巡
回スケジュール抑止フラグをタスク制御ブロック(TC
B)に設定する。巡回スケジュール抑止フラグは、タス
ク切り換えが発生した際にオペレーティングシステムに
よって参照される。
該フラグが設定されているときは、該タスクが連続実行
権を要求していると判断し、最優先で該タスクが選択さ
れるように実行中タスクを実行待ちリストにつなげるか
、あるいはタスク中断を行わないことによって、特定タ
スクの連続実行を実現する。
(実施例〕 第1図は本発明の実施例図である。タスク1は、タスク
毎にタスク制御ブロックTCB2を持つ。
TCB2は、タスク毎に設定されるものであって、タス
クの属性や状態を管理する役割を持つ。各タスクのTC
B毎に優先度3及び巡回スケジュール抑止フラグ4を持
つ、優先度3は数字で示され、数字の低い程に優先度は
高いと定義する。巡回スケジュール抑止フラグ4は、1
ビツトであり、II 1 j#で抑止を示し、tr O
trで非抑止を示す。優先度3及び巡回スケジュール抑
止フラグ4とは、タスクの静的属性としてタスク登録時
に登録するやり方が主であるが、タスク1の動作時に特
定の処理を優先的に実行するためにシステム呼び出しに
よっても設定できる。
実行待ちリスト5は、TCB2を先着順につないだもの
である。即ち、タスク起動要求受付時には、該タスクを
実行待ちリストの最後尾につなぎ、タスク実行時には実
行待ちリストの先頭からタスクを取りはずして実行させ
る0図は、3つのタスクA、B、CをA 4 B + 
(:、の順にリスト化した。
タスクAが先頭待ちタスクであり、タスクCが最後尾待
ちのリストである。リストの作成方法は。
着順以外に、優先度順の作成方法もある。
スケジューラ8は、タスクの処理順序を管理するもので
ある。ディスパッチャ7はスケジューラ8によって起動
されて次に実行するタスクを選択する。選択方法は、待
ち行列リストから、待ちの順位に無関係に、一番高い優
先度のタスクを選択するやり方をとる。但し、一番高い
優先度のタスクが待ち行列リスト中に複数個存在する場
合には、待ちの順位の高いもの、即ち、先頭に最も近い
タスクを次に実行すべきタスクとして選択する。
この他にディスパッチャによる選択方法には、優先度を
考慮せずに待ち行列リストの先頭待ちのタスクを選択す
るやり方、処理時間の短いものから選択するやり方1等
種々存在する。
第1図で実行中タスク6とは、ディスパッチャ7で選択
したタスクを起動し実行させている様子を示す。
さて、全体の動作を説明する。
スケジューラ8は、一定時間が経過した後、又は実行中
タスク6よりも優先度の高いタスクが待ち行列リスト5
につながれた時のいずれかでタスク切り換えのために起
動する。一定時間が経過した後とは、定期的なタイマ割
込みを示し、このタイマ割込み発生時には、タスクの実
行は中断し。
OSプログラムが動作する。OSプログラムでは所定の
タイマ割込みに関する処理を行った後にスケジューラ8
を呼び出し、起動する。後者は、例えば、実行中のタス
クがタスク起動要求システム呼び出しを行うと、OSプ
ログラムは起動されたタスクを実行可能状態にして実行
待ち行列の最後尾につなげる。そのとき起動されたタス
クの優先度が実行中のタスクの優先度よりも高い場合に
は、実行中のタスクを中断し、スケジューラ8を呼び出
し、起動する。
起動されたスケジューラ8は、実行中タスク6を中断さ
せ、然る後、該タスクを実行待ちリスト5につなげてデ
ィスパッチャ7を起動する。
ここで、スケジューラ8の処理内容を第2図に示す。先
ずスケジューラ8が起動される。起動されたスケジュー
ラ8は、実行中のタスク6を中断させた後(ステップ1
0)、該タスクのTCB内に巡回スケジュール抑止フラ
グ4が設定されているか否かを判定する(ステップ20
)。設定されているときは、該タスクを実行待ちリスト
5の先頭につなげる(ステップ30)、フラグが設定さ
れていないときは、該タスクを実行待ちリストの最後尾
につなげる(ステップ40)、この後でディスパッチャ
7は、実行するタスクを選択し、実行する(ステップ5
0)。選択方法は前述したが、優先度を先ずみて、一番
高い優先度のタスクを選択すると共に、一番高い優先度
のタスクが複数個存在する場合には最前列に最も近いタ
スクを選び出す。
巡回スケジュール抑止フラグの設定方法には以下の2つ
がある。
(1)タスク登録時に設定するやり方。
タスク登録手順のパラメータとして巡回スケジュールフ
ラグを指定するやり方である。これにより、タスク自体
の静的属性として他タスクに優先する属性を与えること
ができる。ここで、優先する属性とは、フラグu 1 
##であれば、待ち行列リストの先頭にこのタスクをつ
けることになり、これにより次の実行の順位が高くなっ
たことを示す。
(2)タスク実行時に設定するやり方。
システム呼び出しで巡回スケジュール抑止フラグを設定
するやり方である。これにより、タスクの実行において
特定の処理部を部分的に優先実行が可能となる。
第3図は、タスク切り換えの遷移を説明するための簡略
化した待ち行列リストのモデルを示す図である。第3図
で、A、B、C,Dはタスクを識別するための名称を、
数字はタスクに指定された優先度を、「あり」、rなし
」は巡回スケジュール抑止フラグの指定の有無を示す。
優先度は、数字の低いものが高い優先度と定義しである
初期状態(a)では、実行待ちリストにタスクがA、B
、C,Dの順につながっている。この状態でスケジュー
ラ8からディスパッチャ7が起動されるとタスクAが選
択される。この選択方法は、(a)で優先度の高いタス
クは「5」のA、Dであり、且つAが近い待ちにあるた
め、DではなくAを選択するとのやり方である。このタ
スクAは該リストからはずされて実行されるので、(b
)に示す構成に遷移する。
スケジューラ8は、一定時間経過した後(タイマ割込み
の例とした)、実行中タスクAの実行を中断し、タスク
Aの巡回スケジュール抑止フラグの有無をみる。フラグ
の設定がないとき(b −1)には、(c)に示すよう
にタスクAを実行待ちリストの最後尾につなげる。この
後、ディスパッチャを起動すると、タスクDが選ばれ、
(d)に示す構成に遷移し、タスクDが実行される。タ
スクDが選ばれる理由は、タスクDが最後尾のタスクA
より近い待ちにあるためである。
一方、タスクAに巡回スケジュール抑止フラグが設定さ
れているとき(b−2)は、(e)に示すように、タス
クAを実行待ちリストの先頭につなげる。この後、ディ
スパッチャを起動すると、(f)に示すように、タスク
Aが実行される。
本実施例によれば、タスクに巡回スケジュール抑止フラ
グを設定することによって、該タスクが連続して実行で
きることが保証される。
他の実施例を第4図により説明する。第4図は、他の実
施例におけるスケジューラ8の処理内容を示している。
この実施例は、巡回スケジュール抑止フラグが立ってい
る時には、スケジュールによって具体的な処理はしない
こと、即ち、巡回スケジュール抑止フラグが立っている
時には、当該タスクを連続して実行させることとしたも
のである。
スケジューラ8は、タスク切り換えを行う際、まず現在
実行中タスク6のTCBに巡回スケジュール抑止フラグ
4が設定されているか否かを判定する(ステップ100
)、ここで、該フラグが設定されていなければ、該実行
中タスクを中断させ(ステップ200)、該タスクを実
行待ちリスト5の最後尾につなげた後(ステップ300
)、ディスパッチャ7を起動しくステップ400)、次
に実行するタスクを選択させる。一方、ステップ100
の判定処理で、巡回スケジュール抑止フラグ4が設定さ
れていたときは、何もせず(タスク切り換えを行わず)
に処理を終了する。本実施例によっても、タスクに巡回
スケジュール抑止フラグを設定することによって、該タ
スクが連続して実行できることが保証される。
他の実施例には以下のものがある。
(i)実行待ちリストにタスクをつなげる操作及び該リ
ストからタスクを取りはずす操作に関して、上記実施例
では、前者を最後尾、後者を最前列とした。これはFI
FO(先入れ先出しとの意)の考え方である。しかし1
着順最新のものを最初に取り出すやり方を採用してもよ
い。即ち、FILO(後入れ先出しとの意)の考え方で
ある。即ち、実行待ちリストにタスクをつなげるに際し
ては最上位とし、リストからタスクを取りはずすに際し
ては最上位からとするやり方である。
また、FILOではない別のやり方もある。上記実施例
では、 (イ)タスク起動時は実行待ちリストの最後尾につなぎ
、(ロ)タスク実行時は実行待ちリストの先頭からはず
したタスクを実行し、(ハ)タスク中断時は(バー1)
FIFOフラグ(巡回タスクスケジュールフラグのこと
、但し、FIFO形式のためFIFOフラグと呼んでも
よい)が設定されていれば実行待ちリストの先頭に中断
したタスクをつなげ、(バー2)FIFOフラグが設定
されていなければ実行待ちリストの最後尾につなぐ、の
処理を行った。
これに対し、(イ)タスク起動時は実行待ちリストの先
頭(最後尾でない)につなぎ、(ロ)タスク実行時は実
行待ちリストの最後尾からはずし、(ハ)タスク中断時
は(バーl)フラグが設定されていれば実行待ちリスト
最後尾に中断したタスクをつなげ、(バー2)フラグが
設定されていなければ中断したフラグをリストの先頭に
つなぐ、の処理を行う。
この処理例は、優先度を考慮したタスクのつなぎ方の前
述例についても適用できる。
(ii)”I’CBに抑止の性格を持つ巡回抑止フラグ
ではなく、中断拒否するとの強い性格を持つ中断拒否フ
ラグを設定してもよい。前述の実施例では、実行時は、
実行待ちリスト中で最も優先度が高くて最も先頭に近い
タスクをリストからはずすこととした。これに対して中
断拒否フラグを特定のタスクに設定(TCBに設定する
)しておけば、この特定のタスクが実行時であれば該中
断拒否フラグをみて、優先度の高低は一切考慮せず、当
該特定のタスクを実行待ちリストにつなげることなく。
再実行状態にすることができる。
(jut)巡回スケジュール抑止フラグとは、巡回スケ
ジュールとの係りからでた言葉であるが1巡回スケジュ
ールとは関係なく、FIFO方式によるTCBの例もあ
りうる。
〔発明の効果〕
本発明によれば、巡回タスクスケジュールを行う計算機
システムにおいて、特定のプロセスを連続して実行でき
るので、タスクの動作が事前に把握でき、システム設計
が容易になる。
【図面の簡単な説明】
第1図は、本発明の構成を示すブロック図、第2図は、
本発明の処理方式を示す流れ図、第3図は、タスク切り
換え遷移の説明図、第4図は、他の実施例の処理方式を
示す流れ図である。 1・・・タスク、2・・・タスク制御ブロック(T C
B )、3・・・優先度、4・・・巡回スケジュール抑
止フラグ、5・・・実行待ちリスト、6・・・実行中タ
スク、7・・・ディスパッチャ、8・・・スケジューラ

Claims (1)

  1. 【特許請求の範囲】 1、タスクごとに該タスクの属性や状態を管理するタス
    ク制御ブロック(TCB)と、実行可能なタスクを管理
    する実行待ちリストを有し、該TCBに巡回スケジュー
    ルを行うか否かを示すフラグを設け、タスク起動要求受
    付時には、該タスクを実行待ちリストの最後尾につなぎ
    、タスク実行時には、実行待ちリストの先頭からタスク
    を取りはずして実行させ、タスク中断時には、該タスク
    のTCBに上記フラグが設定されていれば該タスクを実
    行待ちリストの先頭につなぎ、該フラグが設定されてい
    なければ該タスクを実行待ちリストの最後尾につなぐこ
    とを特徴とする、タスクスケジューリング方法。 2、上記巡回スケジュールを行うか否かを示すフラグは
    先入れ先出しスケジュールを行うか否かを示すフラグと
    する請求項1記載のタスクスケジューリング方法。 3、請求項1又は2における実行待ちリストにタスクを
    つなげる操作および該リストからタスクを取りはずす操
    作に関して、先頭と最後尾を逆にして同一の機能を実現
    する、タスクスケジューリング方法。 4、タスクごとに該タスクの属性や状態を管理するタス
    ク制御ブロック(TCB)と、実行可能なタスクを管理
    する実行待ちリストを有し、該TCBにタスクの優先度
    と、先入れ先出し(FIFO)スケジュールを行うか否
    かを示すフラグ(FIFOフラグ)を設け、タスク起動
    要求受付時には、起動されたタスクの優先度が実行中の
    タスクの優先度よりも低いかもしくは等しければ起動さ
    れたタスクを実行待ちリストの最後尾につなぎ、起動さ
    れたタスクの優先度が実行中のタスクの優先度よりも高
    ければ実行中のタスクを中断して起動されたタスクを上
    記実行待ちリストの先頭につなぎ、タスク実行時には、
    実行待ちリストで管理されるタスクの中で最も優先度が
    高くかつ該リストの最も先頭寄りにつながっているタス
    クを取りはずして実行させ、タスク中断時には、該タス
    クのTCBにFIFOフラグが設定されていれば該タス
    クを実行待ちリストの先頭につなぎ、該フラグが設定さ
    れていなければ該タスクを実行待ちリストの最後尾につ
    なぐことを特徴とする、タスクスケジューリング方法。 5、請求項4において、TCBにFIFOフラグに代っ
    てタスクの中断を拒否するか否かを示すフラグを設け、
    タスク中断時には、該タスクのTCBに該フラグが設定
    されていれば該タスクを実行待ちリストにつながずに再
    度実行状態にし、該フラグが設定されていなければ実行
    待ちリストにつなげる、タスクスケジューリング方法。 6、請求項4または5の実行待ちリストにタスクをつな
    げる操作において先頭と最後尾を逆にして行い、タスク
    の実行時には、実行待ちリストで管理されるタスクの中
    で最も優先度が高くかつ該リストの最も最後尾寄りのタ
    スクを取りはずして実行し、同一の機能を実現する、タ
    スクスケジューリング方法。 7、請求項4または5において、タスク起動要求受付時
    には、起動されたタスクの優先度が実行中のタスクの優
    先度と等しければ実行中のタスクを中断して起動された
    タスクを実行状態にする、タスクスケジューリング方法
JP1237325A 1989-09-14 1989-09-14 タスクスケジューリング方法 Expired - Fee Related JP2554172B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1237325A JP2554172B2 (ja) 1989-09-14 1989-09-14 タスクスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1237325A JP2554172B2 (ja) 1989-09-14 1989-09-14 タスクスケジューリング方法

Publications (2)

Publication Number Publication Date
JPH03100831A true JPH03100831A (ja) 1991-04-25
JP2554172B2 JP2554172B2 (ja) 1996-11-13

Family

ID=17013701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1237325A Expired - Fee Related JP2554172B2 (ja) 1989-09-14 1989-09-14 タスクスケジューリング方法

Country Status (1)

Country Link
JP (1) JP2554172B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59125450A (ja) * 1983-01-06 1984-07-19 Nec Corp 仮想計算機制御方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59125450A (ja) * 1983-01-06 1984-07-19 Nec Corp 仮想計算機制御方式

Also Published As

Publication number Publication date
JP2554172B2 (ja) 1996-11-13

Similar Documents

Publication Publication Date Title
US6349321B1 (en) Data processing system and scheduling method
JP3037182B2 (ja) タスク管理方式
JP2518998B2 (ja) 多重タスク処理オペレ―ティング・システム及びそのコンピュ―タの動作方法
KR100848323B1 (ko) 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법
JPH07295840A (ja) マルチプログラミングにおける事象管理方式
JPH03100831A (ja) タスクスケジューリング方法
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
JP2000020323A (ja) スケジュ―リング装置及び方法並びに記録媒体
JP2636722B2 (ja) マルチタスク実行管理方式
JP2693916B2 (ja) タスクスケジュール方法
JPH11203149A (ja) タスクスケジュール装置およびその方法
JP3169316B2 (ja) タスクスケジューリング方法
JPH0644234B2 (ja) タスク管理装置
JPH09319595A (ja) マルチタスク制御装置
JP2903525B2 (ja) ジョブ管理方式
JPH08314740A (ja) プロセスディスパッチ方法
JPH0778091A (ja) マルチタスク管理方法
JPH01180641A (ja) Cpuソース平均化方式
JPH0240723A (ja) メッセージ送受信管理方式
JPH0612394A (ja) プロセススケジュール方式
JPH0612263A (ja) 入出力スケジュール方式
JP2000047881A (ja) リアルタイムシステム
JPS63159941A (ja) リアル・タイムosのタスク管理方式
JPH04153837A (ja) タイマ要求処理方式
JPH0194446A (ja) プログラム制御方式

Legal Events

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