JP2000105706A - オペレーティングシステムのタイマ管理方法 - Google Patents

オペレーティングシステムのタイマ管理方法

Info

Publication number
JP2000105706A
JP2000105706A JP10275654A JP27565498A JP2000105706A JP 2000105706 A JP2000105706 A JP 2000105706A JP 10275654 A JP10275654 A JP 10275654A JP 27565498 A JP27565498 A JP 27565498A JP 2000105706 A JP2000105706 A JP 2000105706A
Authority
JP
Japan
Prior art keywords
time
task
waiting
waiting list
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.)
Granted
Application number
JP10275654A
Other languages
English (en)
Other versions
JP2938072B1 (ja
Inventor
Takeshi Nakabo
壯 中坊
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 IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP27565498A priority Critical patent/JP2938072B1/ja
Application granted granted Critical
Publication of JP2938072B1 publication Critical patent/JP2938072B1/ja
Publication of JP2000105706A publication Critical patent/JP2000105706A/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 タスクが時間待ちを行う際の、時間待ちリス
トへの挿入処理の時間短縮および、割り込み禁止時間の
削減を行う。 【解決手段】 システムタイマと時間待ちリストを有す
るオペレーティングシステムのタイマ管理方法におい
て、時間待ちリスト構造を2本とし、タスクからの時間
待ち要求時に、システムタイマ値とタスク起動予定時間
とを比較し、比較結果に基づいてオペレーティングシス
テムの現在のシステムタイマ値を境にして2本の時間待
ちリストの内のいずれか一方を選択することで、時間待
ちタスクのタスクコントロールブロックの時間待ちリス
トへの挿入位置決定処理を高速化することを特徴とする
オペレーティングシステムのタイマ管理方法。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オペレーティング
システム(以下、OSと略称する)に関し、特にOSに
おいて、タスクが時間待ちになったときの所定時間間隔
で発生するインターバルタイマによる割り込みによって
時間待ちタスクを管理するOSのタイマ管理方法に関す
る。
【0002】
【従来の技術】一般的な、組込み向けリアルタイム・カ
ーネルの標準仕様μITRONのリアルタイムOS(以
下μITRONOS)をもとに、以下について説明をす
る。
【0003】μITRONOSの機能の中に、タスクか
らの時間待ちシステムコールの発行から、タスクの処理
を中断し、システムコール発行時に設定した時間経過後
にタスクを再び起動する機能がある「μITRON3.
0標準ハンドブック」(p.p.39〜51参照 19
97年7月30日 パーソナルメディア発刊)。
【0004】このタスクからの時間待ちをさせる機能に
は、各タスクの動作を管理するものとして、起動するタ
スク毎に各々のタスクコントロールブロック(以下、T
CBと略称する)がある。
【0005】このTCBについて図面を参照しながら説
明を行う。図2はタスクコントロールブロックの構造図
である。
【0006】図2に示すように、TCB1は、タスクの
実行状態を管理する表である。Next2は次のTCB
1へのポインタ、Prev3は前のTCB1へのポイン
タ、Sts4はタスクのステータス、Wid5はウエイ
トID番号、Tskid6はタスクID番号、Pri7
はタスクの優先度、Stack8はスタックへのポイン
タ、Waiptn9はイベントフラグの待ちパターン、
Arg10はシステムコール実行時の引数、Task1
1はタスク先頭アドレス、Error12はシステムコ
ールのエラー情報、Time13はタスクを起動する時
点のシステムタイマのカウント値で表わすタスク起動予
定時間である。なお、ここで番号2〜13はTCB番号
である。
【0007】次に、特開平2−17542号公報に記載
された時間待ち(従来例1)について説明する。
【0008】図10(A)は従来例1の時間待ちリスト
の構造図である。(B)はシステムタイマのカウント値
と各TCBのタスク起動予定時間との関係を示す図であ
る。
【0009】図10(A)において、21はOSの時間
管理を行うシステムタイマ、23は各TCBの指定する
タスクが起動される順に、TCBを配列した時間待ちリ
ストである。24は時間待ちリスト23内のTCB1を
簡略化して表示したTCBで、Time13のタスク起
動予定時間と、Tskid6のタスクID番号を示した
ものである。時間待ちリスト23は、矢印で示すように
タスクの待ちが解除されるタイムアップ順に論理的なリ
スト構造となっている。
【0010】システムタイマ21は、同図(B)に示す
ように、インターバルタイマ割り込み毎にカウントUP
を行い、システムタイマのカウント値(鋸歯状波)が時
間待ちリスト23にある先頭TCBのタスク起動予定時
間Time13(プロット点)と一致を見れば、先頭T
CBのタスクID番号の指すタスクを起動する。また、
システムタイマは通常フリーランニングでカウント動作
を行っている。例えば、それが16ビットのタイマであ
った場合、FFFFHからカウントアップを行うと00
00Hとなる。
【0011】次に、タスクが時間待ちに入るときの大ま
かな動作について図面を参照して説明する。図11は従
来例1のタイマ挿入処理手順の概要を示すフローチャー
トである。
【0012】タスクの時間待ち起動の要求を行うシステ
ムコールが発行された場合、先ず、タイマ挿入位置決定
処理が呼び出される。
【0013】図11に示すように、タイマ挿入位置決定
処理では、ステップS301にて各TCBにより構成さ
れた時間待ちリストに、新たに起動要求されたタスクの
TCBを追加し、このTCBのTime13に、システ
ムタイマ21のカウント値とシステムコール発行時に引
数により指定された待ち時間との和を設定する。ステッ
プS302では、今回待ち状態になるタスクの待ち時間
が予め待ち時間の少ない順(タイムアップ順)に並んで
いる時間待ちリスト(図10)のどの位置に挿入するか
を調べて、上記時間待ちリスト23に待ちを行うタスク
のTCBを挿入するための、時間待ちリスト挿入位置決
定処理を行う。
【0014】ここで、時間待ちリスト挿入位置決定処理
のためのインターバルタイマ割り込みの処理について図
面を参照して説明をする。図13は従来例1のインター
バルタイマ割り込み処理手順を示すフローチャートであ
る。
【0015】インターバルタイマ割り込みがスタートす
ると、ステップS401は割り込み処理で使用するレジ
スタの待避処理、ステップS402はシステムタイマの
カウントアップ処理を行う。ステップS403は、時間
待ちリスト23の最後かどうかの判断をし、時間待ちリ
ストの最後であれば、割り込み処理を終了するためステ
ップS407へ行く。最後でなければ、ステップS40
4の処理を行う。
【0016】ステップS404では、システムタイマと
TCB1のTime13のタスク起動予定時間が一致し
ていれば、タスクの待ち時間が経過したことになるので
ステップS405に行く。一致していなければ割り込み
処理を終了するためのステップS407へ処理を移す。
ステップS405では、時間待ちリスト23から時間が
経過したTCB24を外し実行待ちリスト(図示せず)
に繋ぎかえる。ステップS406では時間待ちリスト2
3の次のTCB24を先頭とする処理をし、ステップS
403に戻る。ステップ407はディスパッチ処理を行
う。
【0017】ここで、タスクの時間待ちが発生した場合
の処理について、より具体的な例を用いて詳細に説明す
る。
【0018】図12は、時間待ちリスト挿入位置決定処
理の詳細なフローチャートである。システムコールの発
行による時間待ちタスク起動要求があると、ステップS
310では、時間待ちリスト23の先頭が空きであるか
否かによって、時間待ちリストにTCB1が繋がってい
るかどうかの判断を行い、繋がっているのであればステ
ップS311に、繋がっていなければステップS320
へ行く。ステップS311は、挿入位置の検索を行うT
CB番号(図2中の2〜13参照、以下、検索TCB番
号)のエリアに時間待ちリストの先頭のTCB番号を入
れる。次にステップS312で、TCBのタスク起動予
定時間Time13と現在のシステムタイマ21のカウ
ント値より、現在のカウント値からの相対時間(後述す
る)を求める。ステップS313で、ステップS312
で求めた相対時間と挿入するカウント値とを比較する。
【0019】ここで、挿入するカウント値が小さければ
挿入位置を発見したことになるのでステップS316
へ、挿入するカウント値が大きければステップS314
へ行き次を探す。ステップS314では、挿入位置を発
見したときのために現在の検索TCB番号を保存してお
く。ステップS315では、時間待ちリストに繋がって
いる次のTCB番号を検索TCB番号に入れ、再びステ
ップS312に戻る。
【0020】ステップS313で挿入位置を発見した
後、ステップS316は、検索TCB番号が、時間待ち
リストの先頭であるかどうかの判断を行い、先頭であれ
ばステップS318へ、先頭でなければステップS31
7へ進む。ステップS317は、ステップS314で保
存しておいた挿入する前のTCB番号に、挿入するTC
B番号を入れる。ステップS318は、時間待ちリスト
の先頭TCB番号に挿入するTCB番号を入れる。ステ
ップS319は、挿入するTCBが示す次のTCB番号
に検索TCB番号を入れる。
【0021】ステップS310で時間待ちリストにTC
B1が繋がっていなければ、ステップS320は、時間
待ちリストの先頭TCB番号に挿入するTCB番号をい
れる。ステップS321は、挿入するTCB番号が示す
次のTCB番号に次のTCBがない状態を入れる。
【0022】上記の相対時間について説明すると、例え
ば、図10に示すような時間待ちリストがあった場合に
ついて考える。この時間待ちリストは、タスク起動予定
時間の早い順に並んでいるが、システムタイマ21と比
較する必要から、各TCB内のTime13には、タス
クを起動する時点のシステムタイマ21のカウント値が
設定されている。このシステムタイマ21のカウント値
は、0からのシステムタイマ21のビット長さで決まる
最大の値までをサイクリックにカウントする。したがっ
て、時間待ちリストのタスク起動予定時間Time13
の値が必ずしも昇順となるように並んでいないことにな
る。そのため、タイマの挿入位置決定処理では、単純に
大小比較を行っただけでは、時間待ちリストに繋がる順
番を判定することができない。そこで、起動予定時間T
ime13と現在のシステムタイマのカウント値から、
各タスク起動までの待ち時間(システムタイマの現在の
カウント値からの相対時間)を算出する必要がある。
【0023】このため図14に示すように、システムタ
イマ21のカウント値とTCB1のTime13のタス
ク起動予定時間との差(図示の矢印線の長さ)を計算
し、その差と挿入しようとするタスクの待ち時間を比較
しなければならない。
【0024】また、μITRONOSにある仕様の無限
待ちを行う場合について考える。
【0025】ここまでの説明では時間待ちリストには有
限の待ちを行うタスクのTCB1を繋いでいたが、無限
の待ちを行う場合は、TCB1内のTime13で、0
xFFFFは無限待ちであるという情報にした場合、イ
ンターバルタイマ割り込みでは、システムタイマのカウ
ント範囲を0x0000から0xFFFEまでのカウン
トにし、時間待ちリスト挿入処理等ではTCB1のTi
me13が0xFFFFであれば、次のTCB1をチェ
ック(フローチャートに示さず)するなど、0xFFF
Fを特別扱いした処理を行う必要があった。
【0026】次に、特開平5−274163号公報に記
載された別の時間待ち(従来例2)について説明する。
図15は従来例2の時間待ちリストの構造図である。
【0027】本実施形態の場合は、図15に示すよう
に、複数1〜nの時間待ちリスト群31は論理的なリン
グ形式で構成されている。この時間待ちリスト群31に
は、同一時刻にタスクの待ち時間が経過するTCB1〜
6を繋げておく。
【0028】インターバルタイマ割り込み処理にて現在
時刻に対応する時間待ちリストを指す時間待ちルートリ
ストを1づつ進めて、この時間待ちルートリストの指す
時間待ちリストに対してのみ、実行待ちリストに繋ぐ処
理を行う。
【0029】また別の時間待ち(従来例3)について説
明する。図16は従来例3の時間待ちリストの構造図で
ある。従来例3は、従来例2に長時間待ちリスト33、
チェックポインタ34、オフセットカウンタ35が追加
されている。
【0030】長時間待ちリスト33は時間待ちリスト群
31には収まり切れない長時間の時間待ちをするタスク
のTCB7〜9を繋げておくものである。チェックポイ
ンタ34はTCBを長時間待ちリスト33から時間待ち
リスト群31に移動させる時に、移動させるか否かをチ
ェックするTCBを指し示す。オフセットカウンタ35
はTCBを長時間待ちリスト33に挿入する時にTCB
の時間カウンタに加えられるオフセット値を保持する。
この長時間待ちリスト33は、タスクの待ち時間の順に
並んでいる訳ではなく、タスクが待ちに入った順にリス
トを構成している。このためインターバルタイマ割り込
みで、長時間待ちリストに繋がっているTCBすべてを
チェックする必要がある。
【0031】
【発明が解決しようとする課題】第1の問題点は、時間
待ちリスト挿入位置決定処理もしくは、インターバルタ
イマ割り込みで、処理時間が掛かってしまうという問題
点がある。
【0032】その理由は、従来例1では、時間待ちリス
ト挿入位置決定処理において、システムタイマ値とタス
ク起動予定時間の差を求めて時間待ちリスト挿入位置決
定を行う必要があるため、その計算に時間が掛かるため
である。
【0033】従来例3では、長時間待ちリストの構造
が、タスクが待ちに入った順に先頭もしくは最後に挿入
されていくため、待ち時間の小さい順に並ばない。この
ため、長時間待ちリストに繋がっているすべてのTCB
をチェックする必要があり、時間がかかるためである。
また、長時間待ちリストをタスクの待ち時間順に並べた
としても、従来例1の時間待ちリストと同じ構成である
ため、従来例1と同じ問題点が発生するためである。
【0034】第2の問題点は、従来例2において、時間
待ちリストの領域が大きくなってしまうという問題点が
ある。
【0035】その理由は、時間待ちリストは、時間待ち
ルートリストのカウント分の個数が必要になり、カウン
トできる時間が大きくなればなるほど、時間待ちリスト
も大きくなる。たとえば、時間待ちルートリストのカウ
ント数が、16ビット分であれば64K(2の16乗)
バイトのRAMが必要となる。
【0036】第3の問題点は、タスク起動予定時間が、
無限待ちの場合において、時間待ちリスト挿入位置決定
処理、インターバルタイマ割り込み処理で、無限待ちか
どうかの判断を行う必要があり、処理が煩雑になる。
【0037】その理由は、1本の時間待ちリスト内で、
無限待ちを行うものと、ある時間待ちを行うものが混在
しており、これらの判断をしなければならないため何ら
かの情報が必要となり、この情報を0xFFFFとした
場合、システムタイマのカウント範囲を0x0000か
ら0xFFFEにする必要があるためである。
【0038】本発明の目的は、上記従来技術の問題点に
鑑み、オペレーティングシステムのタイマ管理におい
て、タスクが時間待ちを行う際のTCBを時間待ちリス
トへ挿入処理する時間短縮および、割り込み禁止期間の
削減を行うことにある。
【0039】
【課題を解決するための手段】本発明は、上記の課題を
解決するため、オペレーティングシステムのタイマ管理
方法において、時間待ちリスト構造を2本とし、タスク
からの時間待ち要求時に、システムタイマ値とタスク起
動予定時間とを比較し、比較結果に基づいてオペレーテ
ィングシステムの現在のシステムタイマ値を境に2本の
時間待ちリストの内のいずれか一方を選択することで、
時間待ちタスクのタスクコントロールブロックの時間待
ちリストへの挿入位置決定処理を高速化することを特徴
とするオペレーティングシステムのタイマ管理方法であ
る。
【0040】
【発明の実施の形態】本発明の実施形態について図面を
参照して詳細に説明する。
【0041】図1(A)は、実施形態1の時間待ちリス
トの構造図、(B)はシステムタイマのカウント値(鋸
歯状波)と2つの時間待ちリストにおけるタスク起動予
定時間(プロット点)との関係を示す図である。図2は
タスクコントロールブロック(TCB)の構造図で、こ
れ自体は従来例におけるのと同様のものである。
【0042】図1(A)において、21はシステムタイ
マ、22と22’は時間待ちリスト0、時間待ちリスト
1の先頭を示したポインタ、23と23’は時間待ちリ
スト0、時間待ちリスト1である。24、24’は時間
待ちリスト内のTCB1を簡略しTime13のタスク
起動予定時間と、Task6のタスクID番号を示した
ものである。
【0043】2つの時間待ちリスト0および1は、図1
(B)に示すように、各時点でのシステムタイマ値を境
にして上下それぞれの領域をカバーする時間待ちリスト
のことである。
【0044】次に、タスクが時間待ちに入る時の大まか
な動作について図面を用い説明する。図3は本発明の実
施形態1のタイマ挿入処理手順の概要を示すフローチャ
ートである。
【0045】タイマ挿入位置決定処理では、各TCBに
より構成された時間待ちリストに新たに起動要求された
タスクのTCBを追加し、このTCBのTime13に
システムタイマ21のカウント値とシステムコール発行
時に引数により指定された待ち時間との和を設定した
後、時間待ちリスト挿入位置決定処理を呼び出す。
【0046】いま、あるタスクより時間待ちを行うシス
テムコールが発行された場合、ステップS101でその
タスクのTCB1のTime13にOSの時間を管理し
ているシステムタイマ値と指定された待ち時間との和を
設定する。ステップS102で、システムタイマ値とT
CB1のTime13のタスク起動予定時間とを比較
し、図6に示すように、タスク起動予定時間の方が大き
ければ、ステップS103で2本ある時間待ちリスト0
または1の内の現在繋がっている時間待ちリスト(この
場合、システムタイマ値より大きい値の領域である)に
挿入する。また、タスク起動予定時間の方が小さけれ
ば、ステップS104で現在繋がっていない方の時間待
ちリスト(この場合、システムタイマ値より小さい値の
領域である)に挿入する。なお、2つの時間待ちリスト
の選択は、システムタイマ値とタスク起動予定時間との
比較結果によって決まるもので、現在繋がっているいる
か否かによるのではない。
【0047】ステップS103、S104では、それぞ
れ、時間待ちリスト挿入位置決定処理を呼び出す。な
お、リスト挿入位置決定処理では、追加されたTCBと
時間待ちリスト0または1上の各TCBとの繋ぎ替えを
行う。
【0048】次に、時間待ちリスト挿入位置決定処理の
ためのインターバルタイマ割り込みの処理について、図
面を参照して説明する。
【0049】図5は実施形態1のインターバルタイマ割
り込み処理手順を示すフローチャートである。
【0050】図5に示すように、ステップS201は、
割り込み処理で使用するレジスタの待避処理、ステップ
S202は、システムタイマ21のカウントアップ処
理、ステップS203は、システムタイマ21がオーバ
ーフローしたか否かの判断をする。ステップS204
は、システムタイマ21がオーバーフローした場合の時
間待ちリスト0と時間待ちリスト1の繋ぎ替え処理を行
い、システムタイマ21と比較する時間待ちリストが時
間待ちリスト0であれば時間待ちリスト1に繋ぎ替え、
また比較する時間待ちリストが時間待ちリスト1であれ
ば時間待ちリスト0に繋ぎ替える。ステップS205
は、時間待ちリストの最後かどうかの判断をし、時間待
ちリストの最後であれば、割り込み処理を終了する。最
後でなければ、ステップS206の処理を行う。ステッ
プS206では、システムタイマ21とTCB1のTi
me13のタスク起動予定時間とが一致していれば、タ
スクの待ち時間が経過したことになるので、ステップS
207に行く。一致していなければステップS209へ
処理を移す。ステップS207では、時間待ちリストか
ら時間が経過したTCBを外し実行待ちリスト(図示せ
ず)に繋ぎかえる。ステップS208では時間待ちリス
トの次のTCBを先頭とする処理を行なってから、ステ
ップS205へ戻る。ステップ209はディスパッチ処
理を行う。
【0051】時間待ちリスト挿入位置決定処理について
フローチャートに基づいて説明する。
【0052】図4は実施形態1の時間待ちリスト挿入位
置決定処理手順を示すフローチャートである。リスト挿
入位置決定処理では、追加されたTCBと時間待ちリス
ト上の各TCBとの繋ぎ替えを行う。
【0053】ステップS110は時間待ちリストにTC
B1が繋がっているかどうかの判断を行い、繋がってい
るのであればステップS111に、繋がっていなけれ
ば、ステップS120へ行く。ステップS111は、検
索TCB番号のエリアに時間待ちリストの先頭のTCB
番号を入れる。次にステップS113で、検索TCB番
号が示すTCBのタイムアウト値と、挿入するタイムア
ウト値を比較する。ここで、挿入する値が小さければ、
挿入位置を発見したことになるのでステップS116
へ、また挿入するタイムアウト値が大きければステップ
S114へ行き次を探す。ステップS114では、挿入
位置を発見したときのために現在の検索TCB番号を保
存しておく。ステップS115では、時間待ちリストに
繋がっている次のTCB番号を検索TCB番号に入れて
から、ステップS113に戻る。
【0054】ステップS116は、検索TCB番号が、
時間待ちリストの先頭であるかどうかの判断を行い、先
頭であれば、ステップS118へ、先頭でなければステ
ップS117へ進む。ステップS117は、ステップS
114で保存しておいた挿入する前のTCBに、挿入す
るTCB番号を入れる。ステップS118は、時間待ち
リストの先頭TCB番号に挿入するTCB番号を入れ
る。ステップS119は、挿入するTCBが示す次のT
CB番号に検索TCB番号を入れる。
【0055】ステップS120は、時間待ちリストの先
頭TCB番号に挿入するTCB番号をいれる。ステップ
S121は、挿入するTCB番号が示す次のTCB番号
に次のTCBがない状態を入れる。
【0056】例えば、図1に示すような時間待ちリスト
があった場合について考える。まず、この時間待ちリス
トはシステムタイマと比較を行い、どちらの時間待ちリ
ストに挿入を行うべきかを決定した後は、図7に示すよ
うに、それぞれの時間待ちリスト別に、時間待ちリスト
内のTCB1のTime13のタイマ値との大小比較を
行うだけで良い。
【0057】本発明の実施形態2について説明する。
【0058】実施形態2は、時間待ちリストを合計3つ
の時間待ちリストとする。時間待ちリストの0と1は、
実施形態1と同じものである。時間待ちリスト2はタス
クの待ちを行う場合に、無限待ち指定を行ったときに使
用する。
【0059】図8(A)は本発明の実施形態2の時間待
ちリスト構造図、(B)はシステムタイマのカウント値
と2つの時間待ちリストにおけるタスク起動予定時間と
の関係を示す図である。実施形態2は実施形態1に対し
て時間待ちリスト2を付け加えたものである。
【0060】図8(A)において、22”は、時間待ち
リスト2の先頭を示す。23”は、時間待ちリスト2を
示す。この他の構成は、実施形態1と同じである。
【0061】次に、タスクが時間待ちに入るときの大ま
かな動作について図面を参照して説明する。図9は本発
明の実施形態2のタイマ挿入処理手順の概要を示すフロ
ーチャートである。
【0062】図9に見られるように、あるタスクより時
間待ちを行うシステムコールが発行された場合、まず、
ステップS100で、そのタスクがある時間後に処理を
行う指定を行ったか、無限待ちをおこなったかの判断を
行う。
【0063】そして、ある時間後に処理を行う指定の場
合は、ステップS101からステップS104で実施形
態1(図3参照)と同じ処理を行う。無限待ちの場合
は、ステップS106で時間待ちリスト2に挿入する処
理を行う。
【0064】次に、インターバルタイマ割り込みについ
てであるが、これは実施形態1と同じ処理である。なぜ
なら、無限待ちの時間待ちリスト2は時間が経過するこ
とがないので、チェックを行う必要がないからである。
【0065】また、時間待ちリストの挿入位置決定処理
についても、時間待ちリストの内部の構造が同じである
ため、実施形態1と同じ処理となる。
【0066】
【発明の効果】以上説明したように、本発明によれば、
時間待ちリスト挿入位置決定処理もしくは、インターバ
ルタイマ割り込み処理が高速化される。
【0067】その理由は、時間待ちリスト挿入位置決定
処理で時間待ちリスト挿入位置を決定する際のシステム
タイマとタスク待ち時間の差を求めること無く、時間待
ちリスト挿入を行えるためである。
【0068】また、従来例3で問題点であった、インタ
ーバルタイマ割り込みでの処理時間についても、長時間
待ちリスト内のタスクの待ち時間経過を判断する必要が
ないので、処理が高速化されることがわかる。
【0069】第2の効果は、従来例2と比較して、実施
形態1,2において使用する時間待ちリストの領域が明
らかに少なくなることである。
【0070】その理由は、時間待ちリストの構造を2つ
もしくは3つにすることで、従来例2と比較して使用す
るRAMが明らかに少なく、従来例1と比較しても使用
するRAMが数バイトの増加で済むためである。
【0071】第3の効果は、実施形態2において、タス
クの時間待ちで、無限待ちもしくは時間待ちであるか
を、時間待ちリスト挿入位置決定処理および、インター
バルタイマ割り込み処理で考慮する必要がない点であ
る。
【0072】その理由は、無限待ち専用の時間待ちリス
トを設けるため、インターバルタイマ割り込みではシス
テムタイマをフリーランニングで動作させ、時間待ちリ
スト挿入位置決定処理では無限待ちかどうかの判断をす
る必要がないためである。
【図面の簡単な説明】
【図1】(A)本発明の実施形態1の時間待ちリスト構
造図、(B)はシステムタイマのカウント値と2つの時
間待ちリストにおけるタスク起動予定時間との関係を示
す図
【図2】タスクコントロールブロックの構造図
【図3】本発明の実施形態1のタイマ挿入処理手順の概
要を示すフローチャート
【図4】本発明の実施形態1、2の時間待ちリスト挿入
位置決定処理手順を示すフローチャート
【図5】本発明の実施形態1、2のインターバルタイマ
割り込み処理手順を示すフローチャート
【図6】本発明の実施形態1、2のタイマ挿入先時間待
ちリストの判断図
【図7】本発明の実施形態1のタイマ挿入位置決定の概
念図
【図8】(A)本発明の実施形態2の時間待ちリスト構
造図、(B)はシステムタイマのカウント値と2つの時
間待ちリストにおけるタスク起動予定時間との関係を示
す図
【図9】本発明の実施形態2のタイマ挿入処理手順の概
要を示すフローチャート
【図10】(A)従来例1の時間待ちリスト構造図、
(B)はシステムタイマのカウント値(鋸歯状波)と各
TCBのタスク起動予定時間(プロット点)との関係を
示す図
【図11】従来例1のタイマ挿入処理手順の概要を示す
フローチャート
【図12】従来例1の時間待ちリスト挿入位置決定処理
手順を示すフローチャート
【図13】従来例1のインターバルタイマ割り込み処理
手順を示すフローチャート
【図14】従来例1のタイマ挿入位置決定の概念図
【図15】従来例2の時間待ちリスト構造図
【図16】従来例3の時間待ちリスト構造図
【符号の説明】 1 タスクコントロールブロック(TCB) 2 TCBの次へのポインタ 3 TCBの前へのポインタ 4 タスクのステータス 5 ウエイトID番号 6 タスクID番号 7 タスク優先度 8 スタックへのポインタ 9 イベントフラグの待ちパターン 10 システムコール実行時の引数 11 タスク先頭アドレス 12 システムコールのエラー情報 13 タスク起動予定時間 21 システムタイマ 22 時間待ちリストの先頭ポインタ 23 時間待ちリスト 24 TCB(必要部分) 31 時間待ちリスト群 32 時間待ちルートリスト 33 長時間待ちリスト 34 チェックポインタ 35 オフセットカウンタ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 システムタイマと時間待ちリストを有す
    るオペレーティングシステムのタイマ管理方法におい
    て、 時間待ちリスト構造を2本とし、タスクからの時間待ち
    要求時に、システムタイマのカウント値とタスク起動予
    定時間とを比較し、比較結果に基づいてオペレーティン
    グシステムの現在のシステムタイマのカウント値を境に
    して2本の時間待ちリストの内のいずれか一方を選択す
    ることで、時間待ちタスクのタスクコントロールブロッ
    クの時間待ちリストへ挿入する挿入位置決定処理を高速
    化することを特徴とするオペレーティングシステムのタ
    イマ管理方法。
  2. 【請求項2】 システムタイマ値を境にして上下それぞ
    れの領域をカバーする2本の時間待ちリスト構造を用意
    し、タスクからの時間待ち要求時にシステムタイマのカ
    ウント値とタスク起動予定時間とを比較し、タスク起動
    予定時間の方が大きければ、システムタイマのカウント
    値より大きい値の領域をカバーする時間待ちリストを選
    択し、また、タスク起動予定時間の方が小さければ、シ
    ステムタイマのカウント値より小さい値の領域をカバー
    する時間待ちリストを選択することを特徴とする請求項
    1記載のオペレーティングシステムのタイマ管理方法。
  3. 【請求項3】 タスク起動予定時間が、システムタイマ
    のカウント値とシステムコール発行時に引数により指定
    された待ち時間との和であることを特徴とする請求項1
    乃至2記載のオペレーティングシステムのタイマ管理方
    法。
  4. 【請求項4】 2本の時間待ちリストの外に、無限待ち
    の時間待ちリストを有し、該無限待ちの時間待ちリスト
    をタスクからの無限待ち指定に基づいて選択することを
    特徴とする請求項1乃至3記載のオペレーティングシス
    テムのタイマ管理方法。
JP27565498A 1998-09-29 1998-09-29 オペレーティングシステムのタイマ管理方法 Expired - Lifetime JP2938072B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27565498A JP2938072B1 (ja) 1998-09-29 1998-09-29 オペレーティングシステムのタイマ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27565498A JP2938072B1 (ja) 1998-09-29 1998-09-29 オペレーティングシステムのタイマ管理方法

Publications (2)

Publication Number Publication Date
JP2938072B1 JP2938072B1 (ja) 1999-08-23
JP2000105706A true JP2000105706A (ja) 2000-04-11

Family

ID=17558485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27565498A Expired - Lifetime JP2938072B1 (ja) 1998-09-29 1998-09-29 オペレーティングシステムのタイマ管理方法

Country Status (1)

Country Link
JP (1) JP2938072B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160077432A (ko) * 2014-12-23 2016-07-04 주식회사 포스코 철강 공정 미들웨어의 이벤트 관리 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160077432A (ko) * 2014-12-23 2016-07-04 주식회사 포스코 철강 공정 미들웨어의 이벤트 관리 시스템
KR101639912B1 (ko) 2014-12-23 2016-07-25 주식회사 포스코 철강 공정 미들웨어의 이벤트 관리 시스템

Also Published As

Publication number Publication date
JP2938072B1 (ja) 1999-08-23

Similar Documents

Publication Publication Date Title
US20030037091A1 (en) Task scheduling device
US7950016B2 (en) Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot
US7996570B1 (en) Usage of keyboard driver in extensible firmware interface for adding new hot keys at firmware level
US9229789B2 (en) Transparent user mode scheduling on traditional threading systems
EP1916601A2 (en) Multiprocessor system
US6912712B1 (en) Real time control system for multitasking digital signal processor using ready queue
JP2938072B1 (ja) オペレーティングシステムのタイマ管理方法
US6629114B2 (en) Method, system, and computer program product for managing a re-usable resource
CN100334919C (zh) 一种gmlc中多目标定位时用户上下文的管理方法
EP0730237A1 (en) Multi-processor system with virtually addressable communication registers and controlling method thereof
TWI409701B (zh) Execute the requirements registration and scheduling method
CN103870313B (zh) 一种虚拟机任务调度方法及系统
KR101725408B1 (ko) 실시간 운영체제의 태스크 스케줄링 방법
JP4211645B2 (ja) 専用プロセッサの備わった計算機システム
JPH07182239A (ja) セグメント分割管理システム
JP2005071141A (ja) スタック管理方法及び装置並びにスタック管理プログラム
JPH08328879A (ja) タスク管理方式
JPH06119190A (ja) タスク切替処理方式
WO2024105350A1 (en) Apparatus comprising interrupt tracking circuitry
JPH09319595A (ja) マルチタスク制御装置
JP2932832B2 (ja) 優先順位検索装置
JPH03245267A (ja) 媒体検索テーブル初期化方式
KR100484875B1 (ko) 다수의동일기능장치제어시스템및그제어방법
JPH11288378A (ja) マスク不可能インタ―ラプトを保護する機能を備えたデ―タプロセッサ
JPH07175671A (ja) プロセス管理方式