JPH0486923A - タスク管理制御方式 - Google Patents
タスク管理制御方式Info
- Publication number
- JPH0486923A JPH0486923A JP20150590A JP20150590A JPH0486923A JP H0486923 A JPH0486923 A JP H0486923A JP 20150590 A JP20150590 A JP 20150590A JP 20150590 A JP20150590 A JP 20150590A JP H0486923 A JPH0486923 A JP H0486923A
- Authority
- JP
- Japan
- Prior art keywords
- task
- execution
- priority level
- level
- storage means
- 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
Links
- 238000000034 method Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 description 24
- 230000004913 activation Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 8
- 230000000737 periodic effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Abstract
め要約のデータは記録されません。
Description
るタスク管理制御方式に関し、割込み要求に対応するタ
スクのスイッチを高速に行うこと、さらにはPレベルの
タスクのスイッチをも高速に行えるようにすることを目
的とし、複数の優先レベルを有するタスクと前記各優先
レベルに1対1に対応して設けられた当該優先レベルの
タスクがキューイングされる複数の優先レベルキューと
を有し、最も高い優先レベルのキューにキューイングさ
れているタスクを優先的に実行させるタスク管理制御方
式において、前記各優先レベルのタスクの実行を行うタ
スク実行手段と、前記各優先レベル毎の優先レベルキュ
ーを有し、割り込みもしくはプログラム起動により任意
のタスクの実行要求がなされた場合、その実行要求のな
されたタスクを、そのタスクの優先レベルに対応する優
先レベルキューにキューイングすると共に、そのキュー
イングされたタスクの優先レベルを示すキューイング優
先レベル情報を出力するタスク管理手段と、該タスク管
理手段から出力される前記優先レベル信号に基づいて設
定される現在実行待ちとなっているタスクの全ての優先
レベルを記憶する第1の記憶手段と、前記タスク実行手
段により現在実行されているタスクの優先レベルを記憶
する第2の記憶手段とを有し、タスク管理手段から前記
キューイング優先レベル情報が出力されたとき、そのキ
ューイング優先レベル情報の示す優先レベルを前記第1
の記憶手段に記憶すると共に、前記第1の記憶手段と前
記第2の記憶手段に記憶されている情報とに基づいて、
前記タスク実行手段により現在実行されているタスクの
優先レベルと現在実行待ちとなっているタスクの優先レ
ベルとを比較し、実行待ちとなっているタスクの方が優
先レベルが高い場合には、タスクのスイッチングを要求
するタスクスイッチ指令信号と上記実行待ちとなってい
るタスクの優先レベルのうち、最も高い優先レベルを示
すスイッチ優先レベル情報を出力し、一方、現在実行中
のタスクの方が優先レベルが高ければ、上記タスクスイ
ッチ指令信号は出力しない実行タスク選択手段とを備え
、前記タスク実行手段は、タスクの実行を開始する際に
、そのタスクの優先レベルを示す情報を前記実行タスク
選択手段内の第2の記憶手段に設定すると共に、前記実
行タスク選択手段から前記タスクスイッチ指令信号と前
記スイッチ優先レベル情報とを入力すると、現在実行中
のタスクの実行を中断し、その上位レベルのタスクの優
先レベルに対応する優先レベルキューの先頭にキューイ
ングされているタスクを新たに実行し、タスク実行終了
時には、それまで実行していたタスクと同じ優先レベル
に対応する優先レベルキューにタスクがキューイングさ
れているか否か判別し、タスクがキューイングされてい
ればそのタスクの実行を開始し、タスクがキューイング
されていなければ、上記タスクスイッチ指令信号の入力
により中断したタスクの実行を再開させると共に、その
タスクの優先レベルを示す情報を前記実行選択手段の第
2の記憶手段に書き込むように構成する。
行を管理するタスク管理制御方式に関する。
の起動要因としては一般に、 ■ サイクリックタスク起動 ■ インタバルタイマによる定周期割込みタスク起動 ■ 外部割込みタスク起動 ■ プログラム割込みタスク起動(ソフトエンター等) の4種があり、またタスクの優先レベル例としては、サ
イクリックタスク起動によるPレベルタスク、定周期割
込み、外部割込み、並びにソフト割込みタスク起動によ
る1〜4レベルタスク、外部割込み並びにプログラム割
込みタスク起動にょる0レベルタスクがある。このタス
クの優先レベルの数は、各装置の仕様、規模で決定され
る。
設けられたタスクの優先レベル及び各優先レベルに定義
されたタスクNo、の例を示す図である。同図(a)〜
(f)は、タスクNαにより、タスクの優先レベルが決
定される例であるが、1つのタスク陥、に対し、タスク
の優先レベルを、自由に設定できる場合もある・。
されている。Pレベルタスクは、ディスパッチャ(di
spatcher)により、X’OO’ −X’01’
→・・−X ’3E’ →X’3F’ →X’OO’
→X’01’ ・・・というように、第6図(a)に示
すPレベルのタスクNα格納テーブルの格納順に、各タ
スクNo、を有するタスクがサイクリックに実行される
。また、「1」〜「4」のレベルタスクは、例えば、あ
る一定時間間隔(例えば、100 m5ec)毎に起動
される定周期起動、プラントの入力情報等による外部割
込み起動、又はプログラム処理からのエンター起動によ
り、実行される。0レベルタスクは主に、システムのイ
ニシャル処理、重故障処理等に利用され、前記のプログ
ラム処理起動又は外部割込み起動により実行される。
01゛ →X“02゛ とPレベルのタスクが実行さ
れて、X ”02” のタスクが実行中に3レベルのX
“61゛のタスクの実行要求が発生すると、X ”02
’ のタスクの実行が中断され、より高い3レベルのX
“61゛のタスクに処理が移る。そして、上記3レベル
のX′61のタスクが実行中に、ルベルのX ’70’
のタスクの実行要求が発生すると、3レベルのX ’6
1’のタスクが中断され、ルベルのX ’70’ のタ
スクに実行権が移行する。そして、このルベルのX“7
0゛のタスクが実行中に、2レベルのX“6F“のタス
クの実行要求があっても、そのX“6F“のタスクの実
行は、X“70′のタスクが実行するまで待たされ、X
“70′のタスクの実行終了後に受は付けられて、X゛
70°のタスクからX ’6F”のタスクへと実行が移
行する。以下同様にして、任意のタスクが実行中に、そ
のタスクよりも高いレベルのタスクからの実行要求が発
生すれば、上記任意のそのタスクの実行が中断され、よ
り高いレベルのタスクに実行権が移行し、その高いレベ
ルのタスクの処理終了後、再びより低いレベルの上記任
意のタスクが再び実行される。
2゛のタスク(継続実行)に実行権が移った後は、割込
み要求が発生していない為、X ”02’ →X“03
゛・−−−+X’3E’ →X’3F’ −+X’00
’ →X’01’−0)Jk、Pレベルのタスクがサイ
クリックに実行される。
、単一プロセッサでタスク実行とタスク管理の双方を行
う例があるが、この場合、タスクの実行処理、割込みイ
ベント管理処理、及びイベント発生時もしくは1タスク
終了時に次に実行すべきタスクを決定する決定処理(デ
ィスパッチ:Dispatch)がシリアルに行われる
為、PCのユーザプログラム(アプリケーションプログ
ラム)の実行において、上記のようなタスクスイッチに
要するオーバーヘッドが大きくなってしまうという問題
がある。
オーバーヘッドを減らす為に、タスク実行を行う実行プ
ロセッサと、割込みイベント管理とタスク管理を行う上
記実行プロセッサと並列処理可能なタスク管理プロセッ
サとで構成されるシステムの一例を第8図に示す。
ら成る複数のタスクから構成されるユーザプログラムが
格納されているROM (リード・オンリ・メモリ)も
しくはRAM (ランダム・アクセス・メモリ)等のメ
モリ、フェッチ制御回路20は上記プログラムメモリ1
1からマクロ命令をフェッチする為の回路であり、プロ
グラムカウンタ(PC)21と上記マクロ命令が格納さ
れる命令レジスタ(iRG)22から構成される。MA
P制御回路13は、後述するマイクロプログラム制御方
式でマクロ命令の解読・実行を行う実行プロセッサ14
に対し命令のインタブリド(解読及び実行)起動を行う
MAP制御回路である。データメモリ30は、前記プロ
グラムメモリII内に格納されている全タスクの先頭番
地を各タスク毎にそのタスクNαに対応させて管理して
いるアドレステーブルであるタスク阻エントリーテーブ
ル31(以下TET31と称す)と、割込み処理でタス
クスイッチするときに今まで実行していたタスクのプロ
グラムカウンタ(以下、PCと記す)、スタックポイン
タ等の各種情報を各側込みレベル毎(0〜4レヘル)に
退避する領域である割込み制御ファイル32(以下1R
TCB32と称す)とから構成されている。
内部パス50を介して、互いに接続されており、内部パ
ス50は特に図示していない外部システムパス60に接
続されている。
ッサ14からのプログラム割込み、定周期タイマ(イン
ターバル・タイマ)41からの定周期割込み等のイベン
トを検出するイベント検出機構42、該イベント検出機
構42で検出したイベントを、0〜4レベルのうちの該
当する割込みレベルのキューファイルに対応するタスク
No、で登録するファースト・イン・ファースト・アウ
ト(F I FO)構造の割込み要求キューファイル4
3、各実行レベルにおけるタスク管理情報(割込みマス
ク情報等)が書き込まれている割込み制御ファイル45
、各レベル毎の割込みマスクレジスタ44、及びPレベ
ルのタスクのタスクNo、を管理するタスクNα管理フ
ァイル46から構成されている。
ラム制御方式を採用しており、1つのタスク実行中は、
プログラムメモリ11からPC21の指すアドレスに格
納されているマクロ命令を1RG22にフェッチし、M
AP制御回路13を介し、通常命令の場合は、マイクロ
インタプリタ処理として各種演算及びデータ転送を行う
。このMAP→演算→MAP→演算・・・の繰り返しに
より、タスクは1命令ずつ実行されていく。この処理は
第4図のE@に該当し、マツプ制御によりマクロ命令で
記述されたユーザプログラムは、マイクロ命令で記述さ
れたそのマクロ命令に該当するインタプリタ(命令の解
読・実行)の先頭番地ヘマッピングすることにより、そ
のマクロ命令に該当するあらかじめ決められた各種デー
タ演算及びデータ転送処理等を行う。これらの実行処理
と並行してタスク管理プロセッサ40は、以下の処理を
行う。
み、及び実行プロセッサ14からのプログラム割込みを
イベント検出機構42で検出する。
スクを、そのタスクの割込み要求レベルに対応する割込
み要求キューファイル43内にタスクNo、により格納
していく。
込みレベルマスクレジスタ44の情報に基づき、マスク
されていない割込みレベルのタスクNαが割込み要求キ
ューファイル43にキューイングされている場合は(ソ
フトウェア手段で判定)、割込み制御ファイル45の現
在実行中のタスクの割込みレベルに対応する領域に、そ
れまで実行されていたタスクのタスク管理情報(レベル
Nα、マスクレジスタ情報等)を退避し、新たに実行す
べきタスクのレベルに対応するマスク情報を割込レベル
マスクレジスタ44にセットし、さらにタスクスイッチ
指令をMAP制御回路13へ、又新たに割込み起動させ
るタスクのタスクNα並びにレベルを実行プロセッサ1
4へ通知する。
せたタスクのタスク阻を削除する。続いて、実行プロセ
ッサ14は、タスクスイッチ指令によるMAP処理によ
り、タスク起動割込み処理ルーチンにマツピングされ、
上記タスク起動割込み処理ルーチンの実行により、以下
に示すE■〜E■の処理を行う。
により起動させるタスクのレベルに対応するデータメモ
リ30内の割込み制御ファイル32に、今まで実行して
いたレベルのタスクの種々のタスク情報(プログラムカ
ウンタ、スタックポインタ等)を退避する。
阻を有するタスクの新たな割込みタスクのプログラムメ
モリ11内の格納先頭アドレスをTET31から求めて
、PC21にセットし、次に、その新たな割込みタスク
の実行をMAP→演算→MAP→・・・の繰り返しを行
いながら実行させる。
スク管理プロセッサ40に対しタスク終了割込みをかけ
る。このことにより、実行プロセッサ14は、タスク管
理プロセッサ40からのタスクスイッチ指令待ちとなる
。
4からタスク終了割込みが加わると、以下に示すT■の
処理を行う。
スクのレベルに等しいレベル領域(現実行タスクレベル
領域)を検索し、要求タスク障があれば、前記処理T■
と同様にして再び同レベルのタスクスイッチ指令をMA
P制御回路13に、割込み起動を行うタスクのタスクN
o、並びにタスクレベルを実行プロセッサ14に対し出
力した後、前記処理T■を行う。
ピング処理により、今度は前記処理E■を行わないで前
記処理E■を行う。
いて、前記現実行レベル領域に要求タスクNαがない場
合は以下の処理T■を行う。
前実行レベルのタスクのタスク管理情報を復帰し、次に
前実行レベルのタスクのマスクレジスタ情報を割込みレ
ベルマスクレジスタ44ヘセツトした後、前実行レベル
のタスクへの切り換えを指示するタスクスイッチ指令を
MAP制御回路13へ通知する。
ると、MAP処理により以下の処理E■を行う。
クのレベルに等しいレベル領域から前回実行していたよ
り下位レベルのタスクの各種タスク情報(PC、スタッ
クポインタ等)を読み出し、その読み出した各種タスク
情報を、当該レジスタ、フラグ等に再セットし、再び前
回実行していたタスクのMAP→演算→・・・の処理を
再開する。
についても同様であり、タスク管理プロセッサ40は、
Pレベルタスクの終了割込みにより、以下に示すT■の
処理を行う。
、次に実行するタスクNαを求め(Pレベルタスクは、
X ’00’ −+X ’01’ −+ ・= n (
nは任意の正の16進値)→X ’00’ →・・・→
n→X“00゛ のようにサイクリックに実行すべきタ
スクのタスクNαが決定されていく)、前記処理T■と
同様にタスクスイッチ指令をMAP制御回路13へ、又
起動すべきタスクのタスクNo、とそのレベル(Pレベ
ル)を実行プロセッサ14に通知する。
ピング処理により、前記処理E■を行わずに前記処理E
■と同様にプログラムメモリ11内のPレベルタスクの
格納領域の先頭アドレスをPC21にセットして、Pレ
ベルタスクを実行させていく。そして、タスク終了命令
をフェッチした場合には、前記処理E■を行い、タスク
管理プロセッサ40は、再び前記処理T■を行う。
スクと同様にタスク管理プロセッサ40からのタスクス
イッチ指令と実行プロセッサ14からのタスク終了割込
みによりタスク管理プロセッサ40と実行プロセッサ1
4間でハンドシェークが行われながらタスクが実行され
る。
をシリアルに処理する方式では、ユーザプログラムの実
行におけるタスク管理処理のオーバーヘッドがかなり大
きくなってしまうという問題があった。
ッサ14に加え、タスク管理プロセッサ40を備えて、
実行プロセッサ14によるタスク実行と並行して、タス
ク管理プロセッサ40によりタスク管理処理を行う方式
では、Pレベルタスクの実行管理においては、イベント
検出、割込みキューファイル43への登録/削除、割込
み制御ファイル45への退避/復帰処理は不要であり、
タスクスイッチ時に実行プロセッサ14とタスク管理プ
ロセッサ40間で、タスクスイッチ指令/タスク終了割
込みという形のハンドシェーク処理は、オーバーヘッド
となってしまう。また、割込みタスクの起動管理は、タ
スク管理プロセッサ40が、割込み要求発生時に、現実
行タスクレベルとの優先判定をソフトウェアにより行い
、さらに1つの割込みタスク終了時においても、次に実
行すべきタスクのタスク阻の決定を、実行プロセッサ1
4からタスク管理プロセッサ40に対し割込みを通知し
、その通知によりタスク管理プロセッサ40がソフトウ
ェアにより判定することにより行っている為、このこと
もタスクスイッチ時のオーバーヘッドの一因となる。
速に行うこと、さらにはPレベルのタスクのスイッチを
も高速に行えるようにすることを目的とする。
先レベルに1対lに対応して設けられた当該優先レベル
のタスクがキューイングされる複数の優先レベルキュー
とを有し、最も高い優先レベルのキューにキューイング
されているタスクを優先的に実行させるタスク管理制御
方式を特徴とする 請求項1記載の第1の発明の手段は次の通りである。
成り、前記各優先レベルのタスクの実行を行う。
成り、前記各優先レベル毎の優先レベルキュー2−〇〜
2−Nを有し、割込みもしくはプログラム起動により任
意のタスクの実行要求がなされた場合、その実行要求の
なされたタスクをそのタスクの優先レベルに対応する優
先レベルキュー2−0〜2−Nにキューイングすると共
に、そのキューイングされたタスクの優先レベル信号を
オンにする。
前記優先レベル信号に基づいて設定される現在実行待ち
となっているタスクの全ての優先レベルを記憶する第1
の記憶手段3aと、前記タスク実行手段により現在実行
されているタスクの優先レベルを記憶する第2の記憶手
段3bとを有し、タスク管理手段2から前記キューイン
グ優先レベル情報が出力されたとき、そのキューイング
優先レベル情報の示す優先レベルを前記第1の記憶手段
3aに記憶すると共に、前記第1の記憶手段3aと前記
第2の記憶手段3bに記憶されている情報とに基づいて
、前記タスク実行手段1により現在実行されているタス
クの優先レベルと現在実行待ちとなっているタスクの優
先レベルとを比較し、実行待ちとなっているタスクの方
が優先レベルが高い場合には、タスクのスイッチングを
要求するタスクスイッチ指令信号と現在実行されている
タスクよりも優先レベルの高い上記実行待ちとなってい
るタスクの優先レベルのうち、最も高い優先レベルを示
すスイッチ優先レベル情報を出力し、一方現在実行中の
タスクの方が優先レベルが高ければ、上記タスクスイッ
チ指令信号は出力しない。
際に、そのタスクの優先レベルを示す情報を前記実行タ
スク選択手段3内の第2の記憶手段3bに設定すると共
に、前記実行タスク選択手段3から前記タスクスイッチ
指令信号と前記スイッチ優先レベル情報とを入力すると
、現在実行中のタスクの実行を中断し、その上位レベル
のタスクの優先レベルに対応する優先レベルキュー2−
0〜2−Nの先頭にキューイングされているタスクを新
たに実行し、タスク実行終了時には、それまで実行して
いたタスクと同じ優先レベルに対応する優先レベルキュ
ー2−〇〜2−Nにタスクがキューイングされているか
否かを前記実行タスク選択手段3の第1の記憶手段3a
により判別し、タスクがキューイングされていればその
タスクの実行を開始し、タスクがキューイングされてい
なければ、上記タスクスイッチ指令信号の入力により中
断したタスクの実行を再開させると共に、そのタスクの
優先レベルを示す情報を前記実行選択手段3の第2の記
憶手段3bに書き込む。
ある。
ク管理手段2、及びタスク選択手段3とに加え、第3の
記憶手段4を有する。
ンリ・メモリ)もしくはRAM (ランダム・アクセス
・メモリ)等のメモリからなり、サイクリックに起動さ
れるPレベルの複数のタスクの実行・管理に係わる情報
を記憶し、タスク実行手段1が直接アクセス可能である
。
は、例えばPレベルのタスクの実行順序並びに各Pレベ
ルのタスクのエントリポイント(entry poin
t)を示すポインタ等から成る。
されている前記複数のPレベルのタスクの実行・管理に
係わる情報に基づいて、複数のPレベルのタスクを所定
の順序でサイクリックに実行する。
らのプログラム割込みによるタスク起動要求、またはイ
ンタバルタイマ(interval timer)等か
らの定周期割込み等が加わる毎に、その割込みに対応す
るタスクを、そのタスクの優先レベル「i」に対応する
優先レベルキュー2−iにキューイングすると共に、実
行タスク選択手段3に対し、上記キューイングされたタ
スクの優先レベル「i」を示す優先レベル信号をオンに
する。
らオンに変化したことを検出すると、第1の記憶手段3
aに優先レベル「i」にタスクがキューイングされた旨
を記憶した後、第1の記憶手段3aに記憶されている優
先レベルキュー2−1〜2−nの現在のタスクのキュー
イング優先レベル情報と第2の記憶手段3bに記憶され
ているタスク実行手段1が現在実行中のタスクの優先レ
ベル情報とに基づいて、上記新たにキューイングされた
タスクが現在実行中のタスクよりも優先レベルが高いか
否かを判別し、上記新たにキューイングされたタスクが
、現在実行中のタスクよりも優先レベルが高い場合には
、タスクスイッチ指令信号と上記新たにキューイングさ
れたタスクの優先レベルを示すスイッチ優先レベル情報
をタスク実行手段1に出力する。
と、現在タスク実行中であれば、そのタスクの実行を中
断させ、上記スイッチ優先レベル情報の示す優先レベル
ri」に対応する優先レベルキュー2−iの先頭にキュ
ーイングされているタスクの実行を開始する。
、それまで実行していたタスクの優先レベル「i」に対
応する割込み優先レベルキュー2−1にタスクがキュー
イングされているか否かを第1の記憶手段3aにより判
別し、タスクがキューイングされていればそのタスクの
実行を開始し、タスクがキューイングされていなければ
、上記タスクスイッチ指令信号の入力により実行を中断
したタスクの実行を再開するとともに、そのタスクの優
先レベルを示す情報を第2の記憶手段3bに書き込む。
段(前記タスク管理プロセッサ)とハンドシェークする
ことなく、実行タスク選択手段3の出力情報と、タスク
管理手段2内の割込み優先レベルキュー2−0〜2−N
の直接参照とにより、実行すべきタスクを高速に知るこ
とができるため、割込み要求に対応するタスクのスイッ
チを高速に行うことができる。
下に示す作用を有する。
タスク終了時にPレベルよりも高い優先レベルのタスク
が割込み優先レベルキュー2−0〜2−Nに1個もキュ
ーイングされていない場合、第3の記憶手段4に記憶さ
れている情報を直接読み出すことにより行う。
スク手段が他の手段(前記タスク管理プロセッサ40)
を介在せずに行えるため、Pレベルのタスクのスイッチ
を高速に行うことができる。
する。
ある。
と同一ブロックには同一番号を付与しており、それらの
ブロックの詳しい説明は省略する。
、割込み要求レベルレジスタ101と、現在実行中のタ
スクの優先レベルに対応する割込みマスクを記憶する割
込みレベルマスクレジスタ44、及び上記2つのレジス
タ101.44間のレベル優先判定を行うプライオリテ
ィエンコーダ102とから構成されている。
いたPレベルタスク胤管理ファイル46は、データメモ
リ30’内に設けられている。そして、本実施例のタス
ク管理プロセッサ40′は、上記割込みレベルマスクレ
ジスタ44及びPレベルタスク阻管理ファイル46以外
に、割込み制御ファイル45をも有していない。
のフローチャートを参照しながら説明する。
タスクを実行している間取下に示すE■の処理を行う。
常命令に対応する各種データ演 算及びデータ転送処理等を行う。
算→・・・を繰り返し実行している間に、タスク管理プ
ロセッサ40′は、前述した処理T■。
込み要求レベル信号をオン(ON)にして、タスクレベ
ル優先順位決定回路100の割込み要求レベルレジスタ
101に加える。
エンコーダ102は、予め実行プロセッサ14より設定
されている現在実行中のタスクのレベルに相当する割込
みレベルマスクレジスタ44と、タスク管理プロセッサ
40′から加わる複数の割込み要求レベル信号を記憶す
る割込要求レベルレジスタ101との間で優先判定を行
い、割込み要求レベルレジスタ101にセットされてい
るタスクの方が現在実行中のタスクよりもレベルが高い
場合には、MAP制御回路13に対しタスクスイッチ指
令を出力すると共に、その割込み要求レベルレジスタ1
01にセットされているタスクレベルを、実行プロセッ
サ14に対し出力する。
タスクよりもレベルの高い複数のタスクからの割込み要
求がセットされている場合には、プライオリティエンコ
ーダ回路102は、最も高い割込みレベルのレベル情報
を自動的に生成し、実行プロセッサ14に出力する。一
方、割込み要求レジスタ101にセットされているレベ
ルが現在実行中のタスクのレベルより低い場合には、プ
ライオリティエンコーダ102は、MAP制御回路13
に対しタスクスイッチ指令を出力しない。
回路13がタスクスイッチ指令に応じて行うMAP処理
によりタスク起動割込み処理にマツピングされ、第4図
のフローチャートに示す処理を行う。
る割込み起動タスクレベルに該当する割込み制御ファイ
ル32に、今まで実行していたレベルのタスクの各種タ
スク情報(プログラムカウンタ、スタックポインタ、マ
スク情報等)を退避する(前記処理E■と同様)。
加わる割込み起動タスクレベル以下のタスクの割込みを
マスクするようにタスクレベル優先順位決定回路100
の割込みレベルマスクレジスタ44をセットする。
ーファイル43の上記割込み起動タスクレベルに対応す
る割込み要求キューファイルから起動すべきタスクNo
、を求める。
ッチ受付はレベル(新たに起動するタスクの割込みレベ
ル)を割込みにより通知する。
ているプログラムメモリ11の先頭番地をTET31か
ら求め、その先頭番地をPC21ヘセツトし、新たな割
込みタスクの実行を開始する(MAP→実行→MAP→
実行・・・の繰り返しにより通常命令を1命令ずつ実行
していく。〈Eo〉)。
ら前記タスクスイッチ受付は割込みが加わると第5図の
フローチャートに示す処理を行う。
る割込み要求キューファイル43のキューファイルの先
頭にキューイングされているタスクNαを削除する(キ
ューはファースト・イン・ファースト・アウト構造)。
合は、タスクレベル優先順位決定回路100に対し加え
る上記該当する割込み要求レベル信号をオフ(OFF)
にする。また、上記該当キューファイルが空でない場合
には、直ちに、メイン・ルーチンに復帰する。
チしMAPした場合、現在実行中のタスクのレベルが割
込みレベル(0〜4レベル)モしくはPレベルかに応じ
て、第4図のフローチャートに示すように異なった処理
を行う。
在実行中のタスクのレベルが割込みレベル(0〜4レベ
ル)であった場合、タスクレベル優先順位決定回路10
0のマスクレジスタ44において、現実行レベルのマス
クビットを解除した後、現実行レベルと同レベルのタス
ク割込み要求があるかチエツクし、あれば前記処理E■
〜E■を行い、なければ、次に示す処理E■を行う。
実行していた下位レベルの各種タスク情報(PC,スタ
ックポインタ、マスク情報等)を復帰し、再びMAP→
実行→MAP→実行→・・・を繰り返す。
に実行すべきPレベルタスクのタスクNo、を見つけ出
し、プログラムメモリ11内のそのタスクの格納領域の
先頭番地をTET31から求めてPC21ヘセツトし、
そのPレベルタスクを新たに実行する。
くはプログラム起動により起動要求がなされたタスクを
当該優先レベルキューにキューイングする手段と、現在
実行中のタスクの優先レベルと新たにキューイングされ
たタスクの優先レベルとを比較してタスクスイッチ指令
信号を出力する手段とを分離し、そのタスクスイッチ指
令出力を行う処理を、タスク実行と並列して高速に行え
るようにしたので、タスク実行中におけるタスクのスイ
ッチングを高速に行うことが可能となる。
をタスクレベル優先順位決定回路と優先レベルキューを
直接参照することにより見つけ出すことができるため、
タスクのスイッチングが高速になる。
え、サイクリックに起動されるPレベルのタスクの実行
・管理を、Pレベルのタスクに係る情報を記憶する手段
を直接参照して行えるため、オーバーヘッドが無くなり
、Pレベルのタスクを高速にスイッチングすることが可
能となる。
チャート、 第4図はタスク実行プロセッサの処理を説明するフロー
チャート、 第5図はタスク管理プロセッサにより行われる割込み要
求キューファイルに係る処理を説明するフローチャート
、 第6図はタスクの優先レベル及び各優先レベルに定義さ
れたタスクNαの例を示す図、第7図はタスクの実行管
理の一例を示す図、第8図は従来のタスク実行管理シス
テムの一例を示す図である。 1・・・タスク実行手段、 2・・・タスク管理手段、 2−0〜2−N・・・優先レベルキュー3・・・実行タ
スク選択手段、 3a・・・第1の記憶手段、 3b・・・第2の記憶手段、 3c・・・エンコーダ、 4・・・第3の記憶手段。
Claims (1)
- 【特許請求の範囲】 1)複数の優先レベルを有するタスクと前記各優先レベ
ルに1対1に対応して設けられた当該優先レベルのタス
クがキューイングされる複数の優先レベルキューとを有
し、最も高い優先レベルのキューにキューイングされて
いるタスクを優先的に実行させるタスク管理制御方式に
おいて、前記各優先レベルのタスクの実行を行うタスク
実行手段(1)と、 前記各優先レベル毎の優先レベルキュー(2−0〜2−
N)を有し、割り込みもしくはプログラム起動により任
意のタスクの実行要求がなされた場合、その実行要求の
なされたタスクを、そのタスクの優先レベルに対応する
優先レベルキュー(2−0〜2−N)にキューイングす
ると共に、そのキューイングされたタスクの優先レベル
を示すキューイング優先レベル情報を出力するタスク管
理手段(2)と、 該タスク管理手段(2)から出力される前記優先レベル
信号に基づいて設定される現在実行待ちとなっているタ
スクの全ての優先レベルを記憶する第1の記憶手段(3
a)と、前記タスク実行手段により現在実行されている
タスクの優先レベルを記憶する第2の記憶手段(3b)
とを有し、タスク管理手段(2)から前記キューイング
優先レベル情報が出力されたとき、そのキューイング優
先レベル情報の示す優先レベルを前記第1の記憶手段(
3a)に記憶すると共に、前記第1の記憶手段(3a)
と前記第2の記憶手段(3b)に記憶されている情報と
に基づいて、前記タスク実行手段(1)により現在実行
されているタスクの優先レベルと現在実行待ちとなって
いるタスクの優先レベルとを比較し、実行待ちとなって
いるタスクの方が優先レベルが高い場合には、タスクの
スイッチングを要求するタスクスイッチ指令信号と上記
実行待ちとなっているタスクの優先レベルのうち、最も
高い優先レベルを示すスイッチ優先レベル情報を出力し
、一方現在実行中のタスクの方が優先レベルが高ければ
、上記タスクスイッチ指令信号は出力しない実行タスク
選択手段(3)とを備え、 前記タスク実行手段(1)は、タスクの実行を開始する
際に、そのタスクの優先レベルを示す情報を前記実行タ
スク選択手段(3)内の第2の記憶手段(3b)に設定
すると共に、前記実行タスク選択手段(3)から前記タ
スクスイッチ指令信号と前記スイッチ優先レベル情報と
を入力すると、現在実行中のタスクの実行を中断し、そ
の上位レベルのタスクの優先レベルに対応する優先レベ
ルキュー(2−0〜2−N)の先頭にキューイングされ
ているタスクを新たに実行し、タスク実行終了時には、
それまで実行していたタスクと同じ優先レベルに対応す
る優先レベルキュー(2−0〜2−N)にタスクがキュ
ーイングされているか否か判別し、タスクがキューイン
グされていればそのタスクの実行を開始し、タスクがキ
ューイングされていなければ、上記タスクスイッチ指令
信号の入力により中断したタスクの実行を再開させると
共に、そのタスクの優先レベルを示す情報を前記実行選
択手段(3)の第2の記憶手段(3b)に書き込むこと
を特徴とするタスク管理制御方式。 2)前記タスク実行手段(1)が直接アクセス可能なサ
イクリックに起動されるPレベルの複数のタスクの実行
・管理に係わる情報を記憶する第3の記憶手段(4)を
さらに備え、 前記タスク実行手段(1)は、前記第3の記憶手段(4
)に記憶されている前記複数のPレベルのタスクの実行
・管理に係わる情報に基づいて、複数のPレベルのタス
クを所定の順序でサイクリックに実行することを特徴と
する請求項1記載のタスク管理制御方式。 3)前記実行タスク選択手段(3)は、前記第1の記憶
手段(3a)並びに前記第2の記憶手段(3b)に記憶
されているデータをエンコードして、前記タスクスイッ
チ指令信号と前記スイッチ優先レベル情報を出力するエ
ンコーダ(3c)を有することを特徴とする請求項1ま
たは2記載のタスク管理制御方式。 4)前記第1の記憶手段(3a)は、各ビットが各優先
レベルに対応するフラグビットとなっているレジスタ、
前記第2の記憶手段(3b)は割り込みマスクを各レベ
ルに対応するフラグビットとして記憶するレジスタとな
っていることを特徴とする請求項3記載のタスク管理制
御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2201505A JP3071210B2 (ja) | 1990-07-31 | 1990-07-31 | タスク管理制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2201505A JP3071210B2 (ja) | 1990-07-31 | 1990-07-31 | タスク管理制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0486923A true JPH0486923A (ja) | 1992-03-19 |
JP3071210B2 JP3071210B2 (ja) | 2000-07-31 |
Family
ID=16442167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2201505A Expired - Fee Related JP3071210B2 (ja) | 1990-07-31 | 1990-07-31 | タスク管理制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3071210B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2011352010B2 (en) | 2010-12-30 | 2017-03-30 | Hunter Douglas Inc. | Operating cord system for retractable coverings for architectural openings |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6091452A (ja) * | 1983-10-26 | 1985-05-22 | Oki Electric Ind Co Ltd | デ−タ処理装置のタスクスケジユ−リング方式 |
JPS63163640A (ja) * | 1986-12-26 | 1988-07-07 | Hitachi Ltd | スケジユ−リング方式 |
JPH01292539A (ja) * | 1988-05-20 | 1989-11-24 | Toshiba Corp | タスクのスケジュール装置 |
JPH0241527A (ja) * | 1988-08-01 | 1990-02-09 | Nec Corp | レディタスクキュー管理方式 |
JPH0266640A (ja) * | 1988-08-31 | 1990-03-06 | Nec Corp | デバッガタスクスケジューリング方式 |
-
1990
- 1990-07-31 JP JP2201505A patent/JP3071210B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6091452A (ja) * | 1983-10-26 | 1985-05-22 | Oki Electric Ind Co Ltd | デ−タ処理装置のタスクスケジユ−リング方式 |
JPS63163640A (ja) * | 1986-12-26 | 1988-07-07 | Hitachi Ltd | スケジユ−リング方式 |
JPH01292539A (ja) * | 1988-05-20 | 1989-11-24 | Toshiba Corp | タスクのスケジュール装置 |
JPH0241527A (ja) * | 1988-08-01 | 1990-02-09 | Nec Corp | レディタスクキュー管理方式 |
JPH0266640A (ja) * | 1988-08-31 | 1990-03-06 | Nec Corp | デバッガタスクスケジューリング方式 |
Also Published As
Publication number | Publication date |
---|---|
JP3071210B2 (ja) | 2000-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7810096B2 (en) | Computer executing multiple operating systems | |
KR100766732B1 (ko) | 고속의 낮은 오버헤드의 콘텍스트 전환을 실행하는 디바이스 및 방법 | |
US9158574B2 (en) | Handling interrupts in data processing | |
JP2001265609A (ja) | 演算処理装置 | |
JPH0486923A (ja) | タスク管理制御方式 | |
JPH1083349A (ja) | キャッシュ・メモリ・バンク制御装置 | |
EP0206335B1 (en) | Interruption method for a data processing system | |
JPH064314A (ja) | タスク間同期通信装置 | |
JPH03147157A (ja) | 情報処理装置 | |
KR960014825B1 (ko) | 정보처리시스템 | |
JPS603229B2 (ja) | 情報処理方式 | |
JP2007102399A (ja) | データ処理装置 | |
JP2663566B2 (ja) | グラフィックディスプレイ装置 | |
JPH07105120A (ja) | 入出力制御装置 | |
JP3085308B2 (ja) | 処理情報管理システム | |
JPH0756633B2 (ja) | タスク切換え方式 | |
JPH04342011A (ja) | 非同期入出力制御方式 | |
JPH02173828A (ja) | 割込み処理方式 | |
JPH05298119A (ja) | マイクロプロセッサのコンテキストスイッチ機構 | |
JPH04195539A (ja) | システムコール処理方式 | |
JPS63108448A (ja) | 入出力要求制御方式 | |
JPH03257634A (ja) | プログラム並列実行方法とその装置 | |
JPH01233628A (ja) | メモリアドレス変換制御回路 | |
JPS6120139A (ja) | 割込み制御方式 | |
JPH01266640A (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 |
|
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: 20090526 Year of fee payment: 9 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090526 Year of fee payment: 9 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090526 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |