JP2726126B2 - 定周期タスク管理方法 - Google Patents
定周期タスク管理方法Info
- Publication number
- JP2726126B2 JP2726126B2 JP1317273A JP31727389A JP2726126B2 JP 2726126 B2 JP2726126 B2 JP 2726126B2 JP 1317273 A JP1317273 A JP 1317273A JP 31727389 A JP31727389 A JP 31727389A JP 2726126 B2 JP2726126 B2 JP 2726126B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- cycle
- fixed
- time
- periodic
- 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
Links
Description
するマルチタスクシステムにおける定周期タスク管理方
法に関する。
動される定周期タスクと、この定周期タスクより優先順
位が高いタスクとを有する場合に、定周期タスクの処理
を実行している間に優先順位の高いタスクからの割込要
求が発生したときに、実行中の定周期タスクの処理が中
断されて、優先順位の高いタスクが実行され、このタス
クの実行終了後に中断された定周期タスクの処理が再開
され、この定周期タスクの処理終了後、一定時間の待ち
状態の後に、再度定周期タスクが起動されるように構成
されている。
っては、定周期タスクの処理が終了後一定の待ち状態を
経て再度定周期タスクが起動されるので、第8図(b)
に示す定周期タスクが実行されている間に優先順位の高
いタスクの割込みがないときには、区間T1に示すよう
に、定周期タスクの処理が終了した時点から一定時間t
が経過した時点で、再度定周期タスクの処理が実行され
ることになり、定周期を確保することができるが、区間
T2及びT3のように、定周期タスクの実行中に第8図
(a)に示す優先順位の高いタスクの割込みによって、
定周期タスクの実行が中断されたときには、次回の定周
期タスクの実行開始時点が中断時間即ち優先順位の高い
タスクの処理時間だけ遅れることになり、定周期タスク
の起動される間隔は必ずしも一定間隔となることはなく
システムの操作性と信頼度が低下するという未解決の課
題があった。
による長時間の中断又は幾つかの中断処理により、定周
期を越える起動タイミングの遅れが生じたときには、定
周期回数とタスク起動回数が一致しなくなり、システム
の操作性と信頼度が低下するという未解決の課題もあっ
た。
目してなされたものであり、定周期タスクの定周期起動
を確保することが可能な定周期タスク管理方法を提供す
ると共に、定周期を越える起動タイミングの遅れによる
定周期回数とタスク起動回数の不一致を防止してシステ
ムの操作性と信頼度を向上させることが定周期タスク管
理方法を提供することを目的としている。
期タスク管理方法は、予め設定された設定固定周期で起
動される定周期タスクと、該定周期タスクより優先順位
が高いタスクとを有するマルチタスクシステムにおける
定周期タスク管理方法において、前記定周期タスクのタ
スクコントロールブロックに少なくとも残り時間管理領
域、設定周期時間格納領域及び起動遅れ回数格納領域を
形成し、前記残り時間管理領域の残り時間を減算手段に
よって所定周期で減算し、当該残り時間が零となったと
きに、設定周期時間格納手段によって前記設定時間格納
領域の設定周期時間を残り時間管理領域に格納すると共
に、タスク状態判定手段によって当該定周期タスクが待
ち状態であるか否かを判定し、その判定結果が待ち状態
であるときにはタスク起動手段によって定周期タスクの
処理を開始し、処理実行状態又は中断状態であるときに
は前記起動遅れ回数格納領域の起動遅れ回数をインクリ
メントし、さらに前記タスク起動手段による定周期タス
クの処理が終了したときに、前記起動遅れ回数が零であ
るか否かを判定し、その判定結果が零であるときには定
周期タスクを待ち状態とし、零でないときには当該起動
遅れ回数をデクリメントしてから前記タスク起動手段に
よって定周期タスクの処理を再実行させることを特徴と
している。
は、定周期タスクの起動時にその定周期時間を残り時間
としてタスクコントロールブロックの残り時間格納領域
に格納し、この残り時間格納領域の残り時間を一定周期
で減算し、これが零となったときに定周期タスクの処理
が開始されるため、定周期タスクの実行中に優先順位の
高いタスクの実行による中断状態が定周期タスクの待ち
時間以内であるときには、定周期タスクの定周期起動を
確保することができる。
待ち状態であるか否かを判定し、待ち状態であるときに
は定周期タスク処理を実行するが、待ち状態でないとき
即ち処理実行状態又は中断状態であるときには、定周期
タスクの処理が遅れているものと判断して、タスクコン
トロールブロックの起動遅れ回数格納領域の起動遅れ回
数をインクリメントし、定周期タスクの処理が終了した
時点で、起動遅れ回数を判定し、これが零であるときに
は定周期タスクを待ち状態とし、零以外であるときには
起動遅れ回数をデクリメントしてから直ちに定周期タス
クの処理を再実行させることにより、定周期タスクの起
動遅れ時間を短縮して、定周期回数とタスク起動回数と
を一致させる。
る。
在し、この待ち状態部2にあるとき、即ち待ち状態のと
きにそのタスクのタスクコントロールブロックTCBは定
周期タスク待ち行列にリンクされており、定周期が経過
すると待ち状態部2から処理部3に移行して処理の実行
状態となる。
うに、次の待ちタスクのポインタを格納するポインタ格
納領域R1、次回のタスクを起動するまでの残り時間tRを
管理する残り時間管理領域R2、自己のタスクの設定周期
時間tSを格納する設定周期時間格納領域R3及び起動遅れ
回数を格納する起動遅れ回数格納領域R4を備えている。
ルブロックTCBが第3図に示すように次回起動までの残
り時間の少ない順にリンクされており、行列の先頭タス
クの残り時間tRが定周期タイマダウンカウンタC1に格納
されている。
ec毎の割込み処理)が実行されると、ステップで、前
記定周期タイマダウンカウンタC1のカウント内容がカウ
ントダウンされ、次いでステップに移行して、カウン
タC1のカウント値が零となってタイムアップしたか否か
を判定し、タイムアップしていないときにはそのまま割
込処理を終了し、タイムアップしたときには、ステップ
に移行して該当するタスクのタスクコントロールブロ
ックTCBの残り時間管理領域R2に設定周期時間格納領域R
3に格納されている設定周期時間tSを格納してから再度
待ち行列にリンクされ、次いで、ステップに移行し
て、定周期タスクが待ち状態であるか否かを判定する。
に移行して定周期タスク処理を実行開始し、定周期タス
クが実行状態又は中断状態であるときには、ステップ
に移行してタスクコントロールブロックTCBにおける起
動遅れ回数格納領域R4の起動遅れ回数Nをカウントアッ
プしてから割込処理を終了するように構成され、且つ定
周期タスクTA1の処理を終了して待ち状態に移行する際
に、第5図に示す待ち状態処理が起動される。
ルブロックTCBにおける起動遅れ回数格納領域R4の起動
遅れ回数Nが零であるか否かを判定し、N=0であると
きには、定周期タスクTA1の起動タイミングの遅れがな
いものと判断してステップに移行して定周期タスクTA
1を待ち状態に遷移させ、N>0であるときには、ステ
ップに移行して起動遅れ回数格納領域R4の起動遅れ回
数Nをダウンカウントしてからステップに移行して再
度定周期タスクTA1を起動して際実行状態とする。
ち状態に遷移する。
(b)に示すように、時点t0で待ち状態の定周期タスク
TA1のタスクコントロールブロックTCBが待ち行列の先頭
にリンクされており、その残り時間管理領域R2の残り時
間tRが定周期タイマダウンカウンタC1に格納されている
ものとする。この状態で、第4図の定周期割込み処理が
実行されると、ステップで定周期タイマダウンカウン
タC1がダウンカウントされ、このカウンタC1がタイムア
ップしていないときにときは、引き続き定周期割込み処
理が実行される毎にカウンタC1がダウンカウントされ、
時点t1でカウンタC1がタイムアップすると、ステップ
からステップに移行してタスクコントロールブロック
TCBの残り時間管理領域R2にそのタスクの設定周期時間t
Sが格納されて、このタスクコントロールブロックTCBが
待ち行列における残り時間tRに相当する位置に再リンク
され、次いでステップに移行し、定周期タスクが待ち
状態であるので、ステップに移行して定周期タスクの
処理が第6図(b)に示すように実行開始されて実行状
態に遷移する。
順位の高いタスクの実行による中断状態が生じないとき
には、実行状態を継続して処理を終了したときに、実行
状態から待ち状態に復帰する。この間、各タスクのタス
クコントロールブロックTCBの残り時間管理領域R2の残
り時間tRが第4図の定周期割込処理の開始タイミングで
順次減少される。
されて、タスクTA1が待ち行列の先頭にリンクされる状
態となると、そのタスクコントロールブロックTCBの残
り時間管理領域R1の残り時間tRが定周期タイマダウンカ
ウンタC1にセットされ、これが第4図の定周期割込み処
理が実行される毎にダウンカウントされ、このカウンダ
C1が時点t3でタイムアップすると、タスクTA1が実行状
態となり、その後時点t4で優先順位の高いタスクTA2に
よる割込みが発生すると、定周期タスクTA1が実行状態
から中断状態に遷移し、これに代えてタスクTA2が実行
され、時点t5でタスクTA2の処理が終了すると、中断状
態にあるタスクTA1が実行状態に復帰し、その後時点t6
でタスクTA1の処理が終了すると待ち状態に復帰する。
がタスクコントロールブロックTCBに形成した残り時間
管理領域R2に格納されている残り時間tRによって決定さ
れ、この残り時間tRは定周期タスクTA1の実行開始時に
定周期タスクTA1の設定周期時間tSにセットされるの
で、定周期タスクの起動タイミングは常に設定周期時間
tSに一致することになる。したがって、定周期タスクTA
1が処理を開始してから終了するまでの時間が設定周期
時間tS以内であるときには、常に定周期性を確保するこ
とができる。
設定周期時間を越える場合には、第7図に示すように、
今、時点t0で、定周期タスクTA1のタスクコントロール
ロックTCBの起動遅れ回数格納領域R4の起動遅れ回数N
が零であり、且つ待ち状態で待ち行列の先頭にあるもの
とする。
と、前述したように、定周期タイマダウンカウンタC1が
タイムアップするまでは待ち状態が継続され、時点t1で
カウンタC1がタイムアップすると、タスクコントロール
ブロックTCBの残り時間管理領域R2の残り時間tRとして
定周期タスクTA1の設定周期時間tSがセットされて、待
ち行列に再リンクされ(ステップ)、次いで定周期タ
スクTA1が待ち状態であるので、定周期タスクTA1を実行
状態に遷移させる(ステップ)。このとき軌道送れ回
数格納領域R4の起動遅れ回数Nは零の状態を継続する。
と、第7図の待ち状態処理が起動され、そのステップ
で起動遅れ回数格納領域R4の起動遅れ回数Nが零である
か否かを判定し、N=0であるので、定周期タスクTA1
を待ち状態に遷移させる。
遷移し、時点t4で優先順位の高いタスクの割込みにより
定周期タスクTA1が中断状態となり、この中断状態が次
の定周期タスクの起動時点t5を越えて継続されたときに
は、第4図の定周期割込処理が実行されて、定周期タイ
マダウンカウンタC1がタイムアップした時点t5で、ステ
ップを経てステップに移行し、定周期タスクTA1が
中断状態であるので、ステップに移行して起動遅れ回
数Nを“1"にアップカウントしてから割込処理を終了す
る。
が終了して定周期タスクTA1が実行状態に復帰し、次い
で時点t7で定周期タスクTA1の処理が終了したときに、
第5図に示す待ち状態処理が実行されると、起動遅れ回
数NがN>0であるので、ステップからステップに
移行して、起動遅れ回数Nをダウンカウントして“0"と
し、次いでステップに移行して定周期タスクTA1を再
度実行状態とする。
れ回数Nが“1"にアップカウントされるので、定周期タ
スクTA1の処理が終了した時点t9で再度定周期タスクTA1
が実行状態となり、この処理が終了した時点t10では定
周期割込処理によって起動遅れ回数Nがカウントアップ
されていないので、第5図の待ち状態処理でステップ
からステップに移行して定周期タスクTA1が待ち状態
に遷移される。
定周期タスクTA1が処理を開始してから終了するまでの
時間が設定周期時間tS以内であるときには常に定周期性
を確保することができると共に、定周期タスクの処理が
開始されてから終了するまでの時間が設定周期時間を越
えたときには、定周期タスクの処理が終了した時点で再
度処理を開始するので、たとえ定周期タスクに対して優
先順位の高いタスクの実行時間が長いか或いは優先順位
の高いタスクの実行回数が多い場合であっても、定周期
回数とタスク起動回数とが一致するように調整すること
ができる。
ク管理方法によれば、定周期タスクの起動管理を定周期
タスクが実行開始された時点で残り時間をこの定周期タ
スクの設定周期時間に設定することにより管理するよう
にしているので、定周期タスクの起動タイミングが設定
周期時間間隔からずれることはなく、正確な定周期性を
もって起動することができ、マルチタスクシステムの操
作性と信頼度とを向上させることができ、しかも、定周
期タスクの処理を開始してから終了するまでの時間がそ
のタスクに対して設定された設定周期時間より長い場合
に、処理が終了した時点で再度処理を開始するようにし
たので、定周期回数とタスク起動回数のずれを補正して
両者の不一致を確実に解消することができるという効果
が得られる。
成図、第2図は定周期タスクのタスクコントロールブロ
ックを示す構成図、第3図は待ち行列を示す状態図、第
4図は定周期割込処理の一例を示すフローチャート、第
5図は待ち状態処理の一例を示すフローチャート、第6
図は定周期タスクの処理を開始してから終了するまでの
時間が設定周期時間より短い場合の動作の説明に供する
タイミングチャート、第7図は定周期タスクの処理を開
始してから終了するまでの時間が設定周期時間より長い
場合の動作の説明に供するタイミングチャート、第8図
は従来例の動作の説明に供するタイミングチャートであ
る。 図中、1は永久ループ、2は待ち状態部、3は処理部、
TA1は定周期タスク、TA2は高優先順位タスク、TCBはタ
スクコントロールブロック、R1はポインタ領域、R2は残
り時間管理領域、R3は設定周期時間格納領域、R4は起動
遅れ回数格納領域である。
Claims (1)
- 【請求項1】予め設定された設定固定周期で起動される
定周期タスクと、該定周期タスクより優先順位が高いタ
スクとを有するマルチタスクシステムにおける定周期タ
スク管理方法において、前記定周期タスクのタスクコン
トロールブロックに少なくとも残り時間管理領域、設定
周期時間格納領域及び起動遅れ回数格納領域を形成し、
前記残り時間管理領域の残り時間を減算手段によって所
定周期で減算し、当該残り時間が零となったときに、設
定周期時間格納手段によって前記設定時間格納領域の設
定周期時間を残り時間管理領域に格納すると共に、タス
ク状態判定手段によって当該定周期タスクが待ち状態で
あるか否かを判定し、その判定結果が待ち状態であると
きにはタスク起動手段によって定周期タスクの処理を開
始し、処理実行状態又は中断状態であるときには前記起
動遅れ回数格納領域の起動遅れ回数をインクリメント
し、さらに前記タスク起動手段による定周期タスクの処
理が終了したときに、前記起動遅れ回数が零であるか否
かを判定し、その判定結果が零であるときには定周期タ
スクを待ち状態とし、零でないときには当該起動遅れ回
数をデクリメントしてから前記タスク起動手段によって
定周期タスクの処理を再実行させることを特徴とする定
周期タスク管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1317273A JP2726126B2 (ja) | 1989-12-06 | 1989-12-06 | 定周期タスク管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1317273A JP2726126B2 (ja) | 1989-12-06 | 1989-12-06 | 定周期タスク管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03177932A JPH03177932A (ja) | 1991-08-01 |
JP2726126B2 true JP2726126B2 (ja) | 1998-03-11 |
Family
ID=18086395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1317273A Expired - Fee Related JP2726126B2 (ja) | 1989-12-06 | 1989-12-06 | 定周期タスク管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2726126B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4918053B2 (ja) * | 2008-02-18 | 2012-04-18 | 株式会社藤商事 | 遊技機 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6075938A (ja) * | 1983-10-03 | 1985-04-30 | Oki Electric Ind Co Ltd | タイマ−割込み時のデイスパツチ方式 |
JPS61229128A (ja) * | 1985-04-04 | 1986-10-13 | Mitsubishi Electric Corp | タイマ管理方式 |
JP2666824B2 (ja) * | 1986-05-15 | 1997-10-22 | 三菱電機株式会社 | プログラマブル制御装置 |
-
1989
- 1989-12-06 JP JP1317273A patent/JP2726126B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH03177932A (ja) | 1991-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10301793A (ja) | 情報処理装置及びスケジューリング方法 | |
US20050015766A1 (en) | Time deadline based operating system | |
JPH0454255B2 (ja) | ||
US5968168A (en) | Scheduler reducing cache failures after check points in a computer system having check-point restart function | |
JP2726126B2 (ja) | 定周期タスク管理方法 | |
JP2001236236A (ja) | タスク制御装置およびそのタスクスケジューリング方法 | |
JP6861275B2 (ja) | 車両制御装置 | |
JPH0877039A (ja) | テスト方法 | |
JP3734042B2 (ja) | プロセス管理方法 | |
JPS6368934A (ja) | タスクスケジユ−ル方式 | |
WO2019159310A1 (ja) | 電子制御装置 | |
JP5127541B2 (ja) | タイマ管理方法、並びにタイマ管理装置 | |
JP2004070579A (ja) | タスクスケジューリング装置、タスクスケジューリング方法、プログラム | |
KR20230167901A (ko) | 멀티 스레드 프로그램의 실행 주기 보정 방법 | |
JP2689778B2 (ja) | 電子制御装置の暴走検知装置 | |
JP3169316B2 (ja) | タスクスケジューリング方法 | |
JP4156148B2 (ja) | タスクスケジューリング装置 | |
JPH05204667A (ja) | 計算機システムのタスク実行制御装置 | |
JPS6114548B2 (ja) | ||
JP2814956B2 (ja) | ディスパッチャ制御方式 | |
JPH11194951A (ja) | 情報処理装置 | |
JPH06295248A (ja) | タスク資源解放方式 | |
JP2000276360A (ja) | タスクスケジューリング方法及び装置 | |
JPH04275635A (ja) | 定周期処理方式 | |
JPH0146960B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071205 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081205 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081205 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091205 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |