JP2566002B2 - タスクディスパッチング方式 - Google Patents

タスクディスパッチング方式

Info

Publication number
JP2566002B2
JP2566002B2 JP1047227A JP4722789A JP2566002B2 JP 2566002 B2 JP2566002 B2 JP 2566002B2 JP 1047227 A JP1047227 A JP 1047227A JP 4722789 A JP4722789 A JP 4722789A JP 2566002 B2 JP2566002 B2 JP 2566002B2
Authority
JP
Japan
Prior art keywords
task
interrupt
dispatching
timer
interval timer
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.)
Expired - Fee Related
Application number
JP1047227A
Other languages
English (en)
Other versions
JPH02226430A (ja
Inventor
司 末永
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric 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 Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP1047227A priority Critical patent/JP2566002B2/ja
Publication of JPH02226430A publication Critical patent/JPH02226430A/ja
Application granted granted Critical
Publication of JP2566002B2 publication Critical patent/JP2566002B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、CPUの使用時間を時分割してマルチタス
クをスケジューリングするオペレーティングシステムを
有する計算機におけるタスクディスパッチング方式に関
する。
(従来の技術) 一般にタスクのディスパッチングは、第3図に示す構
成で行われている。同図において、31は現在実行中のタ
スク(タスクA)、32は次にスケジュールされるべきタ
スク(タスクB)、33は時間間隔を計時するためのタイ
マ、即ちインターバルタイマである。インターバルタイ
マ33はタイマサービス用のタイマ割込みを発生させるた
めのものである。インターバルタイマ33からハードウェ
ア的なタイマ割込み34aが発生されると、タイマ割込み
ハンドラ35に対してソフトウェア的なタイマ割込み34b
が発生する。
タイマ割込み34bが発生すると、タイマ割込みハンド
ラ35は、割込み要因が実行中タスクA(タスク31)のCP
U使用時間使い切りによるものか、或いはタイマサービ
ス要求をスケジュールするためのものなのか判断する割
込み要因チェック35aを行う。そしてタイマ割込みハン
ドラ35は、実行中のタスクA(タスク31)のCPU使用時
間使い切りによる割込みと判断した場合だけ、ディスパ
ッチング割込みハンドラ36に制御を渡す。
ディスパッチング割込みハンドラ36は、タイマ割込み
ハンドラ35から制御を渡されると、次にスケジュールす
べきタスクB(タスク32)を起動するためのタスク切換
処理36a、このタスクBのCPUS使用可能時間とタイマサ
ービス要求がスケジュールされるまでの時間とを比較し
て、少ない方をインターバルタイマ33に初期値として設
定するインターバルタイマ初期値設定処理36b、そして
インターバルタイマ33をスタート(再スタート)させる
インターバルタイマスタート処理36cを行う。この処理3
6b,36cは、タイマ割込みハンドラ35との排他をとって行
われる。
(発明が解決しようとする課題) 上記したように従来は、インターバルタイマがタイマ
サービス用のタイマ割込みを発生させるものしかサポー
トされておらず、したがってタスクディスパッチングが
必要となるタスクのCPU使用可能時間使い切りの場合で
もインターバルタイマからのタイマ割込みが発生し、タ
イマ割込みハンドラ内でのタイマ割込み要因チェック、
ディスパッチング割込みハンドラ内での時間比較を伴う
インターバルタイマへの初期値設定処理、更にはタイマ
割込みハンドラとディスパッチング割込みハンドラ間の
排他処理等が必要となり、処理のオーバーヘッドが生じ
るという問題があった。
したがってこの発明の解決すべき課題は、タスクディ
スパッチング処理が冗長な手続きを必要とせずに高速に
行えるようにすることである。
[発明の構成] (課題を解決するための手段) この発明は、実行中タスクのCPU使用時間をカウント
し、同使用時間が上記実行中タスクのCPU使用可能時間
を超えた場合にディスパッチング割込みを発生するディ
スパッチング割込み用インターバルタイマを、タイマサ
ービス用のタイマ割込みを発生するタイマ割込み発生用
インターバルタイマとは別に設けると共に、ディスパッ
チング割込み用インターバルタイマからのディスパッチ
ング割込みと実行中タスクからのSVC割込みによって起
動されてタスクディスパッチング処理を行うディスパッ
チング割込みハンドラを設け、このディスパッチング割
込みハンドラは、起動時には、その時点の上記ディスパ
ッチング割込み発生用インターバルタイマの値を読取っ
て、その読取り値と基準とを比較することで、実行中タ
スクのCPU使用可能時間の使い切りを示す上記ディスパ
ッチング割込み発生用インターバルタイマからのディス
パッチング割込みであるか、或は実行中タスクからのSV
C割込みであるかを判断し、ディスパッチング割込みで
あると判断した場合には所定値を、SVC割込みであると
判断した場合には上記読取り値を、上記ディスパッチン
グ割込み発生用インターバルタイマへの設定に供される
タイマ初期値として実行中タスクに設定する一方、次に
スケジュールされるべきタスクを決定してタスクの切換
えを行い、その切換え後のタスクからタイマ初期値を読
取って上記ディスパッチング割込み発生用インターバル
タイマに設定して同タイマをスタートさせるように構成
されていることを特徴とする。
(作用) 上記の構成によれば、ティスパッチング割込み発生用
インターバルタイマは常にCPU使用時間の監視(実行中
タスクのCPU使用可能時間の使い切りの監視)だけに用
いられるため、同タイマからの割込みをディスパッチン
グ割込みとして利用することにより、この割込みによっ
て直接ディスパッチング割込みハンドラを起動してタス
クディスパッチング処理を行わせることができる。した
がって、従来タイマ割込みハンドラにおいて行われてい
た割込み要因チェックを不要とすることができる。ま
た、ディスパッチング割込みハンドラにおいても、タス
クのCPU使用可能時間またはタイマサービスがスケジュ
ールされるまでの時間のいずれをインターバルタイマに
設定するかを決定する必要がなくなり、そのための比較
処理も不要とすることができる。
また、上記の構成によれば、SVC割込み時には、ディ
スパッチング割込み発生用インターバルタイマの読取り
値が、タイマ初期値として実行中タスクに設定されると
共に、次にスケジュールされるべきタスクへの切換えが
行われ、その切換え後のタスクに設定されているタイマ
初期値(CPU使用可能時間の所定値、またはSVC割込みに
よりCPU使用可能時間の使い切り前に当該タスクから別
のタスクに切換えられた際に残されている当該タスクに
対するCPU使用可能時間)がディスパッチング割込み発
生用インターバルタイマに設定されて同タイマがスター
トされるため、SVC割込みなどでディスパッチング割込
みハンドラを通る毎に該当タスクに割当てられるべき正
しいCPU使用時間をその都度自動的に設定することがで
きる。
(実施例) 第1図はこの発明の一実施例を示すブロック構成図で
あり、11は現在実行中のタスク(タスクA)、12は次に
スケジュールされるべきタスク(タスクB)である。13
はタイマサービス要求をスケジュールするための要因と
なるタイマ割込み14を発生するインターバルタイマ(タ
イマ割込み発生用インターバルタイマ)、15はタスクの
CPU使用時間を監視してタスクディスパッチングを要求
するためのディクパッチング割込み16を発生するインタ
ーバルタイマ(ディスパッチング割込み発生用インター
バルタイマ)である。インターバルタイマ13は第3図の
インターバルタイマ33に相当するものであるが、タイマ
13にはタスクのCPU使用可能時間が設定されることはな
いことに注意されたい。この実施例において、インター
バルタイマ13,15はいずれもダウンカウンタにより構成
されており、それぞれ一定時間毎にカウントダウンし、
カウント値(タイマ値)が「0」から負となったときに
タイマ割込み14,ディスパッチング割込み16を発生する
ようになっている。
17はインターバルタイマ13からのタイマ割込み14に応
じてタイマサービス要求をスケジュールするタイマ割込
みハンドル、18はタスクディスパッチングのための各種
処理を行うディスパッチング割込みハンドラである。タ
スクディスパッチング割込みハンドラ18は、インターバ
ルタイマ15からのディスパッチング割込み16に対応する
ソフトウェア的なディスパッチング割込み19によって起
動される。またタスクディスパッチング割込みハンドラ
18は、タスクディスパッチング要因を発生させる実行中
タスク(タスクA)自身からのSVC(Supervisor Call)
割込み20によっても起動される。このSVC割込み20は、
実行中タスク(タスクA)で例えば入出力処理の待ちが
生じ、CPU使用可能時間を使い切る前に他のタスクへの
切換えを要求する場合に、実行中タスク自身で発生され
るものである。タイマ割込みハンドラ17およびディスパ
ッチング割込みハンドラ18は、オペレーティングシステ
ム(以下、OSと称する)21の一部を成している。
次に、第1図の構成の動作を、タスクディスパッチン
グ処理を例に、第2図のフローチャートを参照して説明
する。
まず、現在実行中のタスク11(タスクA)がCPU使
用可能時間を使い切った時点で、ディスパッチング割込
み発生用インターバルタイマ15のカウント値が0からマ
イナスとなり、同タイマ15からタスク11にディスパッチ
ング割込み16が発生される。これにより、タスク11から
OS21のサービスプログラムに制御が移り、ディスパッチ
ング割込みハンドラ18に対してディスパッチング割込み
19が発生される(ステップS1)。この結果、ディスパッ
チング割込みハンドラ18が起動される。このディスパッ
チング割込みハンドラ18は、実行中のタスク11自身から
SVC(Supervisor Call)割込み20が発生された場合にも
起動される(ステップS2)。
ディスパッチング割込みハンドラ18は、ステップS1
のディスパッチング割込み(或はステップS2のSVC割込
み)により起動されると、その時点のインターバルタイ
マ15の値(カレント値)を読取って保持する(ステップ
S3)。次にディスパッチング割込みハンドラ18は、ステ
ップS3で読取って保持しているカレント値が負である
(タスクのCPU使用可能時間の使い切りを示すインター
バルタイマ15からのディスパッチング割込みの場合)か
否(CPU使用可能時間を使い切る前にタスク自身から出
されるSVC割込みの場合)かをチェックする(ステップS
4)。もし、カレント値が負であれば、ディスパッチン
グ割込みハンドラ18は同カレント値をシステムデフォル
ト値(所定値)に更新し(ステップS5)、現在のカレン
ト値(ここでは更新後のカレント値)を、インターバル
タイマ1への設定に供されるインターバルタイマ初期値
としてタスク11(タスクA)の制御ブロックの所定領域
に設定する(ステップS6)。このインターバルタイマ初
期値は、タスク11が再度CPUの使用権を付与された場合
に使用可能な時間、即ちCPU使用可能時間(CPU使用許可
時間)である。これに対してステップS1で読取って保持
したカレント値が負でなければ、ステップS5をスキップ
してステップS6に進み、このカレント値(即ちタスク11
に許容されていたCPU使用可能時間の残り時間)をその
ままインターバルタイマ初期値としてタスク11(タスク
A)の制御ブロックの所定領域に設定する。
ディスパッチング割込みハンドラ18は、ステップS6
を実行すると、次にスケジュールされるべきタスク、例
えばタスク12(タスクB)を決定し、タスクコンテキス
トの切換え処理を行う(ステップS7)。
ディスパッチング割込みハンドラ18は、ステップS7
を実行すると、同ステップS7で決定されたタスクB(タ
スク12)の制御ブロックの所定領域に設定されているイ
ンターバルタイマ初期値(CPU使用可能時間)を読取り
(ステップS8)、この読取り値をディスパッチング割込
み発生用インターバルタイマ15に設定する(ステップS
9)。そしてディスパッチング割込みハンドラ18は、イ
ンターバルタイマ15をスタート(起動)させる(ステッ
プS10)。
ディスパッチング割込みハンドラ18は、ステップS1
0を実行すると、タスクB(タスク12)に制御を渡す
(ステップS11)。これによりタスクB(タスク12)
は、ステップS9においてインターバルタイマ15に設定さ
れたCPU使用可能時間だけ連続してCPUを占有使用して処
理を行うことができる。
[発明の効果] 以上詳述したようにこの発明によれば、タイマ割込み
発生用のインターバルタイマとは別にディスパッチング
割込み発生用インターバルタイマを設け、このディスパ
ッチング割込み発生用のインターバルタイマをCPU使用
時間の監視(実行中タスクのCPU使用可能時間の使い切
りの監視)だけに用いるようにしたので、同タイマから
の割込みをディスパッチング割込みとして利用すること
により、この割込みによって直接ディスパッチング割込
みハンドラを起動してタスクディスパッチング処理を行
わせることができる。したがって、この発明によれば、
次に列挙する作用効果を奏することができる。
無駄なタイマ割込み並びにタイマ割込み処理が削減で
きる。
従来タイマ割込みハンドラにおいて行われていた割込
み要因チェックが不要となる。
ディスパッチング割込みハンドラにおいては、タスク
のCPU使用可能時間またはタイマサービスがスケジュー
ルされるまでの時間のいずれをインターバルタイマに設
定するかを決定する必要がなくなり、そのための比較処
理も不要となる。
ディスパッチング割込みハンドラとタイマ割込みハン
ドラとの排他をとる必要がなくなる。
上記〜によりタスクディクパッチング処理の高速
化が図れる。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すブロック構成図、第
2図は動作を説明するためのフローチャート、第3図は
従来例を示すブロック構成図である。 11,12……タスク、13……タイマ割込み発生用インター
バルタイマ、14……タイマ割込み、15……ディスパッチ
ング割込み発生用インターバルタイマ、16,19……ディ
スパッチング割込み、17……タイマ割込みハンドラ、18
……ディスパッチング割込みハンドラ、20……SVC割込
み、21……オペレーティングシステム(OS)。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】CPUの使用時間を時分割してマルチタスク
    をスケジューリングするオペレーティングシステムを有
    する計算機において、 実行中タスクのCPU使用時間をカウントし、同使用時間
    が上記実行中タスクのCPU使用可能時間を超えた場合に
    ディスパッチング割込みを発生するディスパッチング割
    込み用インターバルタイマを、タイマサービス用のタイ
    マ割込みを発生するタイマ割込み発生用インターバルタ
    イマとは別に設けると共に、 上記ディスパッチング割込み用インターバルタイマから
    のディスパッチング割込みと実行中タスクからのSVC(S
    upervisor Call)割込みによって起動されてタスクディ
    スパッチング処理を行うディスパッチング割込みハンド
    ラを設け、 上記ディスパッチング割込みハンドラは、起動時には、
    その時点の上記ディスパッチング割込み発生用インター
    バルタイマの値を読取って、その読取り値と基準値とを
    比較することで、実行中タスクのCPU使用可能時間の使
    い切りを示す上記ディスパッチング割込み発生用インタ
    ーバルタイマからのディスパッチング割込みであるか、
    或は実行中タスクからのSVC割込みであるかを判断し、
    上記ディスパッチング割込みであると判断した場合には
    所定値を、上記SVC割込みであると判断した場合には上
    記読取り値を、上記ディスパッチング割込み発生用イン
    ターバルタイマへの設定に供されるタイマ初期値として
    実行中タスクに設定する一方、次にスケジュールされる
    べきタスクを設定してタスクの切換えを行い、その切換
    え後のタスクからタイマ初期値を読取って上記ディスパ
    ッチング割込み発生用インターバルタイマに設定して同
    タイマをスタートさせるように構成されていることを特
    徴とするタスクディスパッチング方式。
JP1047227A 1989-02-28 1989-02-28 タスクディスパッチング方式 Expired - Fee Related JP2566002B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1047227A JP2566002B2 (ja) 1989-02-28 1989-02-28 タスクディスパッチング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1047227A JP2566002B2 (ja) 1989-02-28 1989-02-28 タスクディスパッチング方式

Publications (2)

Publication Number Publication Date
JPH02226430A JPH02226430A (ja) 1990-09-10
JP2566002B2 true JP2566002B2 (ja) 1996-12-25

Family

ID=12769317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1047227A Expired - Fee Related JP2566002B2 (ja) 1989-02-28 1989-02-28 タスクディスパッチング方式

Country Status (1)

Country Link
JP (1) JP2566002B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2560620B2 (ja) * 1993-09-02 1996-12-04 日本電気株式会社 時間制限付排他制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63156247A (ja) * 1986-12-19 1988-06-29 Fujitsu Ltd プログラム制御装置

Also Published As

Publication number Publication date
JPH02226430A (ja) 1990-09-10

Similar Documents

Publication Publication Date Title
EP0644487A2 (en) Scalable system interrupt structure for a multiprocessing system
JP2566002B2 (ja) タスクディスパッチング方式
JP2636722B2 (ja) マルチタスク実行管理方式
JPS61223950A (ja) スケジユ−ラ
JPH10177489A (ja) タスクのスケジュール方法
JPH064318A (ja) エラー検出方式
JPH05158710A (ja) タイマ管理方式
JPH08314740A (ja) プロセスディスパッチ方法
JPH0644087A (ja) コンピュータシステムのスケジューリング制御方式
JPH04302353A (ja) 対称形マルチプロセッサ計算機のタイマ割込み方式
JPS6152761A (ja) 演算装置
JP2000172513A (ja) タスク管理方法
JPH05197593A (ja) アプリケーションプログラムのループ/ストール監視装置
JPH0640315B2 (ja) 中央処理装置割り当て制御方式
JPS6126095B2 (ja)
JPH03131935A (ja) タイマ管理方式
JPH0462093B2 (ja)
JPS62293436A (ja) タスク管理装置
JPH08329022A (ja) マルチプロセッサシステムの入出力処理負荷分散制御方式
JPS63239537A (ja) タスク制御方法
JPH05224961A (ja) タスクの時間待ち処理方式
JPH04153837A (ja) タイマ要求処理方式
JPH05257718A (ja) プロセス制御装置
JPH01217636A (ja) タスク制御方式
JPH01316846A (ja) バッファ管理方式

Legal Events

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