JPH07110773A - タスクの切替え装置 - Google Patents

タスクの切替え装置

Info

Publication number
JPH07110773A
JPH07110773A JP5279033A JP27903393A JPH07110773A JP H07110773 A JPH07110773 A JP H07110773A JP 5279033 A JP5279033 A JP 5279033A JP 27903393 A JP27903393 A JP 27903393A JP H07110773 A JPH07110773 A JP H07110773A
Authority
JP
Japan
Prior art keywords
task
processing
time
program
executed
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
JP5279033A
Other languages
English (en)
Inventor
Naomi Mori
直美 森
Takeshi Baba
健 馬場
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP5279033A priority Critical patent/JPH07110773A/ja
Publication of JPH07110773A publication Critical patent/JPH07110773A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 タスクを切替えるためのプログラムの作成が
容易で、しかも可読性及び汎用性の高いプログラムを作
成することが可能なタスクの切替え装置を提供する。 【構成】 現在実行中のタスクから、そのタスクの処理
を停止するための一時停止命令が実行されると、該タス
クの実行時間が計算され、その実行時間が予め決定され
た最大時間以上であるか否かを判別し(ステップS1
1)、最大時間以上であるときには他のタスクへの切替
え処理を実行し(ステップS12)、最大時間以上でな
いときには、そのまま何もせずに本サブルーチン処理を
終了する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、機械装置の制御の為に
装置に組み込んで使用されるプログラムの制御装置に関
し、特にリアルタイムモニタ、リアルタイムOS(オペ
レーティングシステム)などと呼ばれる分野のプログラ
ム処理装置で使用されるタスク(独立に制御を与えら
れ、他のプログラム単位と並列的に実行されるプログラ
ム単位)の切替え装置に関する。
【0002】
【従来の技術】現在、多くの機械装置の制御には、内蔵
するROM(リードオンリメモリ)等に搭載された制御
プログラムによるいわゆるプログラム制御方式が用いら
れている。
【0003】このような制御プログラムは、機械装置を
構成するモータやセンサなどの多くの素子を同時に制御
する並列性の高いプログラムであり、それを1つ(ある
いは数個)のCPU(中央処理装置)で実現するために
通常、リアルタイムモニタ、リアルタイムOSなどと呼
ばれる一種の簡易オペレーティングシステムを搭載して
いる。
【0004】このようなリアルタイムモニタは、タスク
と呼ばれる単位に分割されたプログラムの処理を行い、
1つのタスクにCPUやレジスタ等の計算機資源を割り
当てて処理を実行し、そのタスクの実行時間やタスクが
リアルタイムモニタに対して発行した命令に従って、別
タスクに計算機資源の割当を変更して実行タスクの切替
えを行い、新たに実行タスクとなったタスクの処理を開
始することにより、擬似的に並列処理を実行する。
【0005】このような実行タスクの切替え方式には種
々のものが知られているが、リアルタイムモニタのよう
な機器制御用のOSでは、大型計算機などの汎用OSと
異なり、OS自体のプログラムサイズやタスクの切替え
処理に要する時間的な制約と、処理するプログラムの性
格とから、以下のような比較的単純な方式を基本として
いる場合が多い。
【0006】すなわち、処理中の実行タスクは自らリア
ルタイムモニタに対してタスクの一時停止命令を発行
し、リアルタイムモニタはその命令によって実行タスク
の処理を一時的に停止して他のタスクの処理に切替え、
同様の処理によって実行タスクの切替えが次々に行われ
て、再び最初の一時停止中のタスクに順番がめぐってく
ると、その発行した一時停止命令の次の命令から処理が
再開される。
【0007】
【発明が解決しようとする課題】しかしながら、上述の
タスク切替え方式では、プログラマーが各タスクの処理
をプログラムとして作成する場合、以下のようなことを
考慮して、各タスクのコード中に一時停止命令を明示的
に記述する必要がある。
【0008】(1)タスク間で共有するデータや素子な
どを排他的に使用する場合、あるいは処理の効率のため
に連続してCPUを使用したい場合には、その処理中に
は一時停止命令を入れない。
【0009】(2)他のタスクの処理を進行させる為に
は、適当な間隔で一時停止命令を挿入しなければいけな
い。しかし、あまり頻繁に挿入するとタスクの切替え処
理ばかりに時間をとられ、肝心の装置制御処理が進まな
くなる。
【0010】このため、プログラムを作成するには多く
のことを考慮する必要があり、また複数のタスクを切替
える時間間隔は、最終的には実際に機械装置を動かして
実験的に決めなければならなく、このようなプログラム
の作成は非常に難しいものであった。
【0011】また、作成されたプログラムを他の装置な
どに流用する際には、プログラム中の一時停止命令を削
除してもよいか否か、新たに一時停止命令を挿入しても
よいか否かなどの判断が必要であり、可読性の低いプロ
グラムになりがちであった。
【0012】さらに、ある程度定型的な処理に対して、
プログラムの自動生成を行うような場合、前述の方式で
は自動生成の際に、生成コードのどこに、どの程度の間
隔で一時停止命令を挿入すればよいのかを判断せねばな
らず、非常に困難である。
【0013】なお、上述のようなタスクのプログラムコ
ード中に明示的に一時停止命令を記述する方法ではな
く、タイマによってタスクの実行時間を計測し、所定時
間以上連続して実行された場合には、他のタスクへの切
替えを行ういわゆるタイムスライス方式も考えられる
が、このような方式では逆に前記(1)の理由から頻繁
にタスクの切替え禁止命令を発行する必要が生じてしま
い、同様の結果になってしまう。
【0014】本発明は、上記問題に鑑みてなされたもの
で、タスクを切り替えるためのプログラムの作成が容易
で、しかも可読性及び汎用性の高いプログラムを作成す
ることが可能なタスクの切替え装置を提供することを目
的とする。
【0015】
【課題を解決するための手段】上記目的を達成するため
本発明は、時間情報を読出す読出し手段と、該読出され
た時間情報から実行中のタスクの実行時間を算出する算
出手段と、実行中のタスクが他のタスクへの切替えのた
めに発行する自タスクの一時停止命令を無視して実行中
のタスクの処理を継続する制御手段とを有し、前記算出
手段により算出された実行時間が所定時間以内である場
合には、前記一時停止命令が発行されていても、前記制
御手段により実行中のタスク処理を継続することを特徴
とする。
【0016】
【作用】実行中のタスクにより一時停止命令が発行され
たときの当該タスクの実行時間が算出手段により算出さ
れ、その算出された実行時間が所定時間以内である場合
には、制御手段により一時停止命令が無視され、現在実
行中のタスク処理がそのまま続けて実行される。
【0017】
【実施例】以下、本発明の実施例を図面に基づき詳細に
説明する。
【0018】図1は、本発明の一実施例に係るタスクの
切替え装置を適用したプログラム処理装置の概略構成を
示すブロック図である。
【0019】同図に示すように、本装置は、本装置全体
の制御を司るCPU1と、該CPU1に接続され、各種
時間を計測するタイマ2と、CPU1に接続され、且つ
該CPU1が実行する制御処理プログラム4を記憶する
ROM(リードオンリメモリ)3とにより構成されてい
る。制御処理プログラム4は、複数のタスク41,42
…のプログラムコード、およびリアルタイムモニタ45
から成っている。
【0020】以下、各タスクが行うタスク切替え処理
を、図2および図3のフローチャートを参照して説明す
る。
【0021】図2は、各タスクの実行開始または再開時
において、図1のリアルタイムモニタ45が行う処理手
順を示している。
【0022】タスクの実行が開始または再開されると、
本サブルーチンが呼び出され、ステップS1で現在のタ
イマ2の値を、そのタスクの開始時刻としてCPU1の
レジスタ等に記憶し、ステップS2で次に実行されるタ
スクに切替えた後、本サブルーチン処理を終了する。こ
の後に、通常は、次に実行されるタスクへの切替え処理
が行われる。
【0023】実行タスクとなっているタスクは、他のタ
スクへの切替え処理を行う場合等に一時停止命令を発行
する。図3は、実行中のタスクが一時停止命令を発行し
たときに、リアルタイムモニタ45が行う処理手順を示
している。
【0024】一時停止命令が発行されると、本サブルー
チンが呼び出され、ステップS11で実行時間(現在の
タイマの値−前記ステップS1でCPU1のレジスタに
記憶している値)が所定の最大実行時間を上回っている
か否かを判別する。実行時間が上回っている場合は、ス
テップS12に進み、リアルタイムモニタ45は他のタ
スクへの切替え処理を実行する。一方、実行時間が上回
っていない場合は、本サブルーチン処理を終了する。即
ち、現在実行中のタスク処理に単に戻って処理を続ける
だけである。
【0025】なお、本実施例では最大実行時間を各タス
ク41,42,…全体で共通に使用する定数としたが、こ
れに限られるものではなく、最大実行時間を各タスク毎
に変数とし、各タスクの処理中に動的に変更可能にする
こともできる。そうすれば忙しいタスク、または1つの
タスクの中でも忙しいときには最大実行時間を他よりも
長くすることにより、タスク全体の処理効率を高めるこ
とができる。
【0026】さらに、本発明のタスクの切替え装置をソ
ースコードデバッガと併用し、実際に一度もタスク切替
えの起こらなかった一時停止命令のプログラムコード上
の場所を検出し、もとのプログラムコードから、それら
の一時停止命令を取り去ったプログラムコードを作成す
るようにしてもよい。
【0027】このようにして作成されたプログラムコー
ドは、必要最低限の一時停止命令だけが抽出されている
ので、これを動作させる場合には通常の一時停止命令、
即ち発行されると常に実際にタスク切替えが実行される
ものを用いる。これによりタスクの実行時間と最大実行
時間の比較を行う処理が省略でき、さらに効率がよくな
る。
【0028】また、実際のタスク切替えを行うか否かを
タスクの実行時間で判別する代わりに、実行ステップ数
など、他のパラメータを用いて判別することも可能であ
る。
【0029】
【発明の効果】以上説明したように、本発明のタスクの
切替装置によれば、実行中のタスクにより一時停止命令
が発行されたときの当該タスクの実行時間が所定時間以
内である場合には、前記一時停止命令が無視され、現在
実行中のタスク処理がそのまま継続されるので、複数の
タスク全体を効率よく処理することが可能となり、タス
クを切替えるためのプログラムの作成が容易で、しかも
可読性及び汎用性の高いプログラムを作成することが可
能となる効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例に係るタスクの切替え装置を
適用したプログラム処理装置の概略構成を示すブロック
図である。
【図2】各タスクの実行開始または再開時において、図
1のリアルタイムモニタが実行するサブルーチン処理の
手順を示すフローチャートである。
【図3】実行中のタスクが一時停止命令を発行したとき
に、図1のリアルタイムモニタが実行するサブルーチン
処理の手順を示すフローチャートである。
【符号の説明】
1 CPU(読出し手段、算出手段、制御手段)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 時間情報を読出す読出し手段と、 該読出された時間情報から実行中のタスクの実行時間を
    算出する算出手段と、 実行中のタスクが他のタスクへの切替えのために発行す
    る自タスクの一時停止命令を無視して実行中のタスクの
    処理を継続する制御手段とを有し、 前記算出手段により算出された実行時間が所定時間以内
    である場合には、前記一時停止命令が発行されていて
    も、前記制御手段により実行中のタスク処理を継続する
    ことを特徴とするタスクの切替え装置。
JP5279033A 1993-10-12 1993-10-12 タスクの切替え装置 Pending JPH07110773A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5279033A JPH07110773A (ja) 1993-10-12 1993-10-12 タスクの切替え装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5279033A JPH07110773A (ja) 1993-10-12 1993-10-12 タスクの切替え装置

Publications (1)

Publication Number Publication Date
JPH07110773A true JPH07110773A (ja) 1995-04-25

Family

ID=17605464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5279033A Pending JPH07110773A (ja) 1993-10-12 1993-10-12 タスクの切替え装置

Country Status (1)

Country Link
JP (1) JPH07110773A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033577A (ja) * 2006-07-28 2008-02-14 Kddi Corp マルチタスクスケジューリング機能搭載装置及びプログラム
JP2010527071A (ja) * 2007-05-10 2010-08-05 フリースケール セミコンダクター インコーポレイテッド マルチスレッド型プロセッサのためのスレッドデエンファシス命令

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033577A (ja) * 2006-07-28 2008-02-14 Kddi Corp マルチタスクスケジューリング機能搭載装置及びプログラム
JP4614239B2 (ja) * 2006-07-28 2011-01-19 Kddi株式会社 マルチタスクスケジューリング機能搭載装置及びプログラム
JP2010527071A (ja) * 2007-05-10 2010-08-05 フリースケール セミコンダクター インコーポレイテッド マルチスレッド型プロセッサのためのスレッドデエンファシス命令
US8832702B2 (en) 2007-05-10 2014-09-09 Freescale Semiconductor, Inc. Thread de-emphasis instruction for multithreaded processor

Similar Documents

Publication Publication Date Title
CA2061056A1 (en) Method for controlling processor clock signal and information processing system
JPH07110773A (ja) タスクの切替え装置
JPH064417A (ja) メモリのバッテリバックアップ制御方式
JPS61233838A (ja) 情報処理装置
JP2880658B2 (ja) マルチタスクプログラムの暴走検出装置
JP2581327B2 (ja) 仮想計算機の入出力割込み処理方式
KR920003909B1 (ko) 디버깅지원회로
JPH0635757A (ja) Cpuの異常検出装置
JPH0772874B2 (ja) 割込み受取り装置
JP2001147830A (ja) リアルタイムosの状態変更方法
JPS616704A (ja) プログラマブル・コントロ−ラ
JPS62125437A (ja) 付加プロセツサの制御方法
JPH06332693A (ja) タイムアウト機能付き休止命令の発行方式
JPS61156307A (ja) シ−ケンス制御装置
JPS61183705A (ja) プログラマブルコントロ−ラの演算トレ−ス処理方法
JPS61210439A (ja) タスクのトレ−ス制御方式
JPS61235925A (ja) 電子計算機システムの運用方式
JPS5995653A (ja) マルチタスク用制御装置のタスク実行方法
JPS62113238A (ja) 電子計算機システムにおけるプログラム修正装置
JPH0589049A (ja) コマンド実行装置
JPS6234204A (ja) 制御装置
JPH11224126A (ja) モーション制御装置
JPS62197834A (ja) マイクロプログラム制御装置
JPH02129744A (ja) データ転送装置
JPH04133135A (ja) 計算機のデバッグ装置