JPH05224961A - タスクの時間待ち処理方式 - Google Patents

タスクの時間待ち処理方式

Info

Publication number
JPH05224961A
JPH05224961A JP2632092A JP2632092A JPH05224961A JP H05224961 A JPH05224961 A JP H05224961A JP 2632092 A JP2632092 A JP 2632092A JP 2632092 A JP2632092 A JP 2632092A JP H05224961 A JPH05224961 A JP H05224961A
Authority
JP
Japan
Prior art keywords
task
time
waiting
waiting time
processing
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
JP2632092A
Other languages
English (en)
Inventor
Rika Okuda
利花 奥田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2632092A priority Critical patent/JPH05224961A/ja
Publication of JPH05224961A publication Critical patent/JPH05224961A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】OSの割り込み応答性を大幅に向上させること
により、割り込み等の外部事象を迅速に対応し、システ
ムの信頼性を向上することを目的とする。 【構成】システムコールの発行順にタスクの待ち時間を
記録する記録手段1と、待ち時間の少ない順にタスクの
待ち時間を記憶する記憶手段2と、前記記憶手段1によ
り記憶したタスクの待ち時間を記憶した順に獲得する獲
得手段1、記憶手段2により記憶した待ち時間を記憶し
た順に獲得する獲得手段2を有し、時間待ちシステムコ
ール処理では、記憶手段1により待ち時間を記憶して終
了し、タイマ処理において、記憶していた前記待ち時間
を獲得手段1で獲得し、記憶手段2により、記憶した後
に、獲得手段2によりタスクの起床を行うことにより、
時間待ちシステムコール処理中の割り込み禁止時間が一
定になり、OSの応答性を向上させることが出来る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リアルタイム・システ
ムを管理するオペレーティング・システムにおいて、特
に、タスクを時間待ちにする際の処理に関する。
【0002】
【従来の技術】ロボット、NC、ファクシミリ等の分野
では、発生した事象に対する素早い応答と高速処理が要
求される。この様な分野におけるオペレーティング・シ
ステムは、 処理オーバーヘッドの短縮 発生した事象に対する応答性の確保 に重点を置いて設計される。このようなオペレーティン
グ・システムは、特に『リアルタイム・オペレーティン
グ・システム』(以下、OSと略す。)と呼ばれる。
【0003】OSは、アプリケーション・プログラムを
『タスク』および『ハンドラ』として管理する。タスク
は継続的に動作するプログラム単位である。OSは状況
に応じて最適なタスクを選び出し、CPUを割り当て
る。ハンドラは、割り込み等の外部イベントに対応し、
起動されるプログラムである。OSに直接管理されるこ
となく、非同期に動作する。
【0004】今、以下のような状況を想定する。図12
は、リアルタイム・システムが動作する環境の一例を簡
略化して示した図である。図12において、1201は
CPU、1202はバス、1203は割り込みコントロ
ーラ、1204はメモリ、1205タイマ・コントロー
ラである。
【0005】このシステム上で動作するアプリケーショ
ン・プログラムは、タスクがタスクAとタスクBとタス
クCとタスクDの4つ、割り込みハンドラがハンドラA
の1つで構成されている。タスクの優先順位はABCD
の順に優先されるものとする。ハンドラAはOSの1部
であり、タイマ・コントローラ1205から1msec
毎に割り込みコントローラ1203にいれられる割り込
み信号により起動される。4つのタスクは全て時間待ち
を行い、指定時間経過後にハンドラAにより起床させる
(WAIT状態を解除されREADY状態になる)。時
間待ちをするシステムコールは『WAI TSK』であ
り、パラメータは、待ち時間である。図9に時間待ちキ
ューにタスクA、タスクBがつながる状態を示し、図1
1にWAI TSKの処理フローを示す。
【0006】次に、図7〜11を参照しながら、OSの
動作を説明する。簡単のために、既にタスクAは待ち時
間『15』で、タスクBは待ち時間『1』で時間待ちを
しているもとのする。時間待ちキューには、待ち時間の
小さいタスクから順につなげられ、2番目以降につなが
れるタスクの待ち時間は、その前につながれている全て
のタスクの待ち時間を引いた値であり、図9のようにな
っている。待ち時間の単位はmsecである。また、O
Sは、割り込み許可状態で動作しているものとする。
【0007】この状態で、タスクCは『10』の時間待
ちを行うためにWAI TSKを発行する。制御はOS
に移り、システムコール処理が行われる。OSはコンテ
キストを退避する(図11の)。タスクの状態を『時
間待ち』にする(図11の)。次にタスクを時間待ち
キューに待ち時間でソートしてキューイングする(図1
1の)。この処理を細かく示したのが図4である。時
間待ちキューにタスクがつながれているかどうかを判定
する(図7の)。この場合、タスクがつながっている
ので、先頭タスクBを比較タスクとする(図7の)。
タスクCの待ち時間10とタスクBの待ち時間1を比較
する(図7の)。タスクCの待ち時間の方が大きいの
でタスクCの待ち時間10からタスクBの待ち時間1を
引く(図7の)。次のタスクがつながっているか判定
する(図7の)。タスクAがあるので、タスクAを比
較タスクとする(図7の)。タスクCの待ち時間とタ
スクAの待ち時間を比較する(図7の)。タスクCの
待ち時間9は(10−1)でタスクAの待ち時間14で
あり、タスクCの方が小さいので、タスクCはタスクA
の前に図10のようにつながれる。さらに、タスクAの
待ち時間は14−9で5となる(図7の)。
【0008】ここまでで、キューイング処理が終ったの
で、タスクのスケジューリングが行われ、タスクDに処
理が移る(図8の)。ここでタイマ905の割り込み
が発生し、ハンドラAが起動される。ハンドラAは、タ
スクDのコンテキストをセーブし(図8の)、ソフト
ウェア・タイマをカウント・アップし(図8の)、時
間待ちキューにタスクがつながっているかどうかを判定
する(図8の)。
【0009】この場合タスクが3つつながっているの
で、先頭であるタスクBの待ち時間から1を引く(図8
の)。タスクBの待ち時間が0かどうか判定する(図
8の)。待ち時間は0なので、タスクBを時間待ちキ
ューからはずし(図8の)、レディ・キューにつなげ
る(図8の)。再度時間待ちキューの先頭の待ち時間
が0かどうか見る(図8の)。タスクCの待ち時間な
ので、スケジューリング処理(図8の)が行われ、タ
スクBに処理が移る。
【0010】
【発明が解決しようとする課題】OSは、割り込み許可
状態で動作しているため、システムコール処理中でもハ
ンドラが動作する。今、タスクCが発行したシステムコ
ールWAI TSK処理の途中(図7のとの処理の
間)でタイマ1205による割り込みが発生し、ハンド
ラAが動作することを考える。
【0011】起動されたハンドラAは、時間待ちキュー
の先頭につながっているタスクBの待ち時間をカウント
・ダウンし、待ち時間が0になったのでタスクBを待ち
キューからはずし、レディ・キューにつなげ、その処理
を終える。
【0012】WAI TSK処理に戻ると、比較タスク
はタスクBであり、タスクBの次にタスクがあるかどう
か判断する(図7の)。タスクBはすでに時間待ちキ
ューからはずれてレディ・キューの最後につながれてい
るので、次のタスクはない。そこでタスクBの後ろにタ
スクCがつながることになる。
【0013】しかし、本来なら、時間待ちタスクは、待
ち時間の小さい順に時間待ちキューにつながらなければ
ならない。したがって、タスクBが起床した場合は、タ
スクCは時間待ちキューの先頭につながれ、その後ろに
タスクAがつながれているはずであり、レディ・キュー
につながれているタスクBの後につながるのは矛盾であ
る。これでは、タスクの時間待ちキューも、レディ・キ
ューも壊れてしまい、最悪の場合システムがハングアッ
プする状態にもなりかねない。
【0014】この様な状況は、OS処理を割り込み許可
状態で行ったために発生した。この様な矛盾を回避する
ために、OS処理を割り込み禁止状態で行うことを考え
る。この場合、上述した矛盾を回避することはできる。
しかし、逆に割り込みの応答性能が劣化し、割り込みを
とりこぼす恐れが生じる。また、図7のからの処理
は処理時間が、キューの状態によって変化する。このた
め、割り込みの応答性能を予想することが困難になり、
OSを組み込んだ製品の信頼性がそこなわれることにな
る。
【0015】
【課題を解決するための手段】本発明は、リアルタイム
・システムを管理するオペレーティング・システムにお
いて、特にシステムコールの発行により、指定時間タス
クを待ちにする際の処理において、システムコールの発
行順にタスクの待ち時間を記憶する記憶手段1と、待ち
時間の少ない順にタスクの待ち時間を記憶する記憶手段
2と、前記記憶手段1により記憶したタスクの待ち時間
を記憶した順に獲得する獲得手段1と、記憶手段2によ
り記憶したタスクの待ち時間を記憶した順に獲得する獲
得手段2を有している。
【0016】
【実施例】次に、本発明を用いてRTOSを動かす場合
について図面を参照して説明する。図1は本発明の実施
例1の時間待ちキューである。図1において、OSのシ
ステム・テーブル101があり、その中に待ち時間でソ
ートする時間待ちキューの先頭を指すポインタ102と
その最後を指すポインタ103、FIFOでつなげるワ
ーク・キューの先頭を指すポインタ104、その最後を
指すポインタ105がある。タスクにはそれぞれ管理テ
ーブルがあり、タスクBの管理テーブル106、タスク
Aの管理テーブル107、タスクCの管理テーブル10
8となっている。
【0017】タスク管理テーブルには、次につながるタ
スク管理テーブルを指すポインタ109と前につながる
タスク管理テーブルを指すポインタ110、待ち時間1
11がある。図2はシステムコールWAI TSKのフ
ロー、図3はタイマ・ハンドラの処理フローである。こ
れらの図を参照しながら、第1の実施例の方式を説明す
る。
【0018】状況は従来例の説明のときと同様でタスク
A、Bが待ち時間『15』、『1』で時間待ちキューに
つながっている。タスクCが動作しており、『10』の
時間待ちを行うためにWAI TSKを発行する。制御
はOSに移り、システムコール処理が行われる。OSは
コンテキストを退避し(図2の)、タスクCの状態を
時間待ちにする(図2の)。そして、タスクCを時間
待ちキューではなく、ワーク・キューの最後につなげる
(図2の)。ここで割り込みが発生し、ハンドラAが
起動される。ハンドラAはコンテキストを退避し(図3
の)、ソフトウェア・タイマをカウント・アップし
(図3の)、ワーク・キューにタスクがつながってい
るかどうかを判断する(図3の)。この場合、ワーク
・キューにはタスクCがつながっているので、タスクC
を時間待ちキューに待ち時間順にソートしてつなげる
(図3の)。ワーク・キューにはもうタスクがつなが
っていないので、に処理が移る。時間待ちキューには
タスクB、A、C、がつながっているので、時間待ちキ
ューの先頭であるタスクBの待ち時間から1を引き(図
3の)、待ち時間が0になるかどうか判定し(図3の
)、0になるので、タスクBを時間待ちキューからは
ずし(図3の)、レディ・キューにつなげる(図3の
)。
【0019】次に現在システムコール処理中かどうかを
判定する(図2の(10))。現在は、システムコールWA
I TSKの処理中なので、スケジューラ処理は行わず
終了する。ハンドラAが終了すると、WAI TSKシ
ステムコール処理に戻り、残りのスケジューラ処理が行
なわれ、タスクBに処理が移る。
【0020】本発明の第2の実施例を説明する。図5は
本発明の第2の実施例を示したものである。図5におち
て、OSのシステム・テーブル501があり、その中に
待ち時間でソートする時間待ちキューの先頭を指すポイ
ンタ502とその直後を指すポインタ503、FIFO
でつなげるワーク・キューの先頭を指すポインタ50
4、その最後を示すポインタ505、タイマ処理のネス
ト状態を示すタイマ処理レベル506と、タイマ・ハン
ドラが未処理の経過時間507がある。タスクにはそれ
ぞれ管理テーブルがあり、タスクBの管理テーブル50
8、タスクAの管理テーブル509となっている。
【0021】タスク管理テーブルには、次につながるタ
スク管理テーブルを指すポインタ510と前につながる
タスク管理テーブルを指すポインタ511、待ち時間5
12がある。システムコールWAI TSK処理は第1
の実施例と同様であり、図6はタイマ・ハンドラの処理
の第2の実施例のフローである。これらの図を参照しな
がら、第2の実施例の方式を説明する。
【0022】状況は従来例や第1の実施例の説明のとき
と同様でタスクA、Bが待ち時間『15』、『1』で時
間待ちキューにつながっている。タスクCが動作してお
り、『10』の時間待ちを行うためにWAI TSKを
発行する。OSに処理が移り、コンテキストをセーブし
(図2の)、タスクCの状態を時間待ちにし(図2の
)、タスクCをワーク・キューの最後につなげる(図
2の)。ここで割り込みが発生し、ハンドラAが起動
される。
【0023】ハンドラAは従来通り、コンテキストを退
避し、ソフトウェア・タイマをカウント・アップする。
ここから本実施例では図6のようなフロー処理になる。
タイマの処理レベルが0かどうかで(ネストしていない
かどうか)を判断する(図6の)。ここではネストし
ていないので、に移り、レベルを1にし(図6の
)、経過時間も1にする(図6の)。次にワーク・
キューにタスクがつながっているかどうかを判断する
(図6の)。この場合、ワーク・キューにはタスクC
がつながっているので、タスクCを時間待ちキューに待
ち時間順にソートしてつなげる(図6の)。
【0024】この処理を細かく示したフローが従来と同
様、図7である。ワーク・キューにはもうタスクがつな
がっていないので、時間待ちキューにタスクがつながっ
ているかどうかを判断する(図6の)。この場合、時
間待ちキューにはタスクB、A、Cがつながっているの
で、先頭であるタスクBの待ち時間から1を引き(図6
の)、さらに経過時間からも1引く(図6の)。タ
スクBの待ち時間が0になるので、タスクBを時間待ち
キューからはずし(図6の(10))、レディ・キューにつ
なげる(図6の(11))。
【0025】次に経過時間が0かどうかを判定し(図6
の(12))。現在は、システムコールWAI TSKの処
理中なので、スケジューラ処理は行わず終了する。ハン
ドラAが終了すると、WAI TSKシステムコール処
理に戻り、残りのスケジューラ処理を行い、タスクBに
処理が移る。
【0026】ハンドラAの処理の途中(図6のから(1
2)の処理の間)で、タイマ割り込みがネストし、ハンド
ラAが再度動作することを考える。コンテキストを退避
し、ソフトウェア・タイマをカウント・アップした後、
経過時間を1インクリメントし(図6の)、タイマ処
理レベルをチェックする(図6の)。この場合タイマ
処理レベルは1なので、処理を終了する。2度目にネス
トしたハンドラAが終了すると、ネストされたハンドラ
Aの処理に戻る。ネストされたハンドラAの処理では、
経過時間が1増えているので、図6のから(12)のルー
プの回数が1回増える。経過時間が0になりループから
抜けると、タイマ処理カウントを0にして、OS処理中
かどうかを判定する。この場合はシステムコールWAI
TSKの処理中なので、スケジューラを飛ばして終了
する。システムコールWAI TSKに戻り、スケジュ
ーラを起動し、タスクがBに切り替わる。
【0027】
【発明の効果】以上の説明から明らかなように、本発明
は、システムコールの発行順にタスクの待ち時間を記憶
する記憶手段1と、待ち時間の少ない順にタスクの待ち
時間を記憶する記憶手段2と、前記記憶手段1により記
憶したタスクの待ち時間を記憶した順に獲得する獲得手
段1と、記憶手段2により記憶したタスクの待ち時間を
記憶した順に獲得する獲得手段2を有することにより、
従来問題であった、システムコール処理の割り込みによ
るタイマ処理のネストによるOS内部の矛盾から生じる
システムのハングアップを防ぐことができるという効果
がある。
【0028】また、従来この問題を解決するために行っ
ていた、OS内部の割り込み禁止状態にする方法を取る
必要がなくなり、割り込み応答性を大幅に向上させるこ
とができる。このために、割り込み等の外部事象に迅速
に対応することができ、OS、ならびにシステムの信頼
性を向上することができるという効果がある。
【0029】さらに、第2の実施例では、タイマ処理中
かどうかを示す『タイマ処理レベル』と『経過時間』の
2つのデータを持つことにより、タイマ処理ハンドラ
に、タイマ処理ハンドラがネストすることも可能になっ
ている。
【図面の簡単な説明】
【図1】本発明の第1の実施例1の時間待ちキューを示
す図である。
【図2】第1の実施例のシステムコールWAI TSK
のフローを示す図である。
【図3】第1の実施例のタイマ処理のフローチャートで
ある。
【図4】第1の実施例の全処理終了後の時間待ちキュー
を示す図である。
【図5】第2の実施例のシステムコールWAI TSK
発行前の時間待ちキューを示す図である。
【図6】第2の実施例のタイマ処理のフローチャートで
ある。
【図7】待ち時間でソートするキューイング処理のフロ
ーチャートである。
【図8】従来のタイマ処理のフローチャートである。
【図9】タスクCがシステムコールWAI TSK発行
前の時間待ちキューを示す図である。
【図10】従来例の時間待ちキューを示す図である。
【図11】従来のシステムコールWAI TSK処理の
フローチャートである。
【図12】OSが動作する環境の一例を示す図である。
【符号の説明】
101 OS用テーブル 102 時間待ちキューの先頭ポインタ 103 時間待ちキューの最後のポインタ 104 ワーク・キューの先頭ポインタ 105 ワーク・キューの最後ポインタ 106 タスクBの管理テーブル 107 タスクAの管理テーブル 108 タスクCの管理テーブル 109 次の管理テーブルを指すポインタ 110 前の管理テーブルを指すポインタ 111 待ち時間

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 リアルタイム・システムを管理するオペ
    レーティング・システムにおいて、システムコールの発
    行順にタスクの待ち時間を記憶する第1の記憶手段と、
    待ち時間の少ない順にタスクの待ち時間を記憶する第2
    の記憶手段と、前記第1の記憶手段により記憶したタス
    クの待ち時間を記憶した順に獲得する第1の獲得手段
    と、前記第2の記憶手段により記憶したタスクの待ち時
    間を記憶した順に獲得する第2の獲得手段とを有し、時
    間待ちのシステムコール処理において、前記第1の記憶
    手段により待ち時間を記憶し待ちタスクを起床させるタ
    イマ処理時では前記第1の獲得手段によりタスクの待ち
    時間を取りだし、前記第2の記憶手段により待ち時間の
    小さい順に記憶した後に、前記第2の獲得手段を用いて
    タイマ処理を行うことを特徴とするタスク時間待ち処理
    方式。
JP2632092A 1992-02-13 1992-02-13 タスクの時間待ち処理方式 Pending JPH05224961A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2632092A JPH05224961A (ja) 1992-02-13 1992-02-13 タスクの時間待ち処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2632092A JPH05224961A (ja) 1992-02-13 1992-02-13 タスクの時間待ち処理方式

Publications (1)

Publication Number Publication Date
JPH05224961A true JPH05224961A (ja) 1993-09-03

Family

ID=12190107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2632092A Pending JPH05224961A (ja) 1992-02-13 1992-02-13 タスクの時間待ち処理方式

Country Status (1)

Country Link
JP (1) JPH05224961A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53115149A (en) * 1977-03-18 1978-10-07 Toshiba Corp Priority control system
JPS62232039A (ja) * 1986-04-02 1987-10-12 Hitachi Ltd タイマ管理制御装置
JPH02220138A (ja) * 1989-02-22 1990-09-03 Matsushita Electric Ind Co Ltd リアルタイムオペレーティングシステムの割り込み保護方式
JPH03255512A (ja) * 1990-03-06 1991-11-14 Seiko Epson Corp インターバルタイマ制御方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53115149A (en) * 1977-03-18 1978-10-07 Toshiba Corp Priority control system
JPS62232039A (ja) * 1986-04-02 1987-10-12 Hitachi Ltd タイマ管理制御装置
JPH02220138A (ja) * 1989-02-22 1990-09-03 Matsushita Electric Ind Co Ltd リアルタイムオペレーティングシステムの割り込み保護方式
JPH03255512A (ja) * 1990-03-06 1991-11-14 Seiko Epson Corp インターバルタイマ制御方式

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US8230430B2 (en) Scheduling threads in a multiprocessor computer
US5452452A (en) System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US6430593B1 (en) Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US6360243B1 (en) Method, device and article of manufacture for implementing a real-time task scheduling accelerator
KR950002713B1 (ko) 인터페이스 시스템 및 데이타 전송 제어방법
US6128672A (en) Data transfer using software interrupt service routine between host processor and external device with queue of host processor and hardware queue pointers on external device
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
EP1189137A1 (en) Interruption managing device and interruption managing method
JPH0454255B2 (ja)
JP2005276097A (ja) 割り込み依頼プログラムおよびマイクロコンピュータ
JP3644042B2 (ja) マルチタスク処理装置
JPH05224961A (ja) タスクの時間待ち処理方式
JP3876818B2 (ja) マルチプロセッサ計算機及びプログラム
JP2002099434A (ja) 制御装置
JPH10177489A (ja) タスクのスケジュール方法
JP7331768B2 (ja) リアルタイム演算処理装置
JP7322797B2 (ja) リアルタイム演算処理装置
JPH0895803A (ja) タスクスケジュール方法
JP7338548B2 (ja) リアルタイム演算処理装置
JP7380406B2 (ja) リアルタイム演算処理装置
JP2607595B2 (ja) キューイングテーブル検索方式
JP2000047881A (ja) リアルタイムシステム
JP2566002B2 (ja) タスクディスパッチング方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980630