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
Application number
JP20150590A
Other languages
English (en)
Other versions
JP3071210B2 (ja
Inventor
Akihito Watanabe
渡辺 哲仁
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom 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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP2201505A priority Critical patent/JP3071210B2/ja
Publication of JPH0486923A publication Critical patent/JPH0486923A/ja
Application granted granted Critical
Publication of JP3071210B2 publication Critical patent/JP3071210B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概  要〕 複数の優先レベルを有する複数のタスクの実行を管理す
るタスク管理制御方式に関し、割込み要求に対応するタ
スクのスイッチを高速に行うこと、さらにはPレベルの
タスクのスイッチをも高速に行えるようにすることを目
的とし、複数の優先レベルを有するタスクと前記各優先
レベルに1対1に対応して設けられた当該優先レベルの
タスクがキューイングされる複数の優先レベルキューと
を有し、最も高い優先レベルのキューにキューイングさ
れているタスクを優先的に実行させるタスク管理制御方
式において、前記各優先レベルのタスクの実行を行うタ
スク実行手段と、前記各優先レベル毎の優先レベルキュ
ーを有し、割り込みもしくはプログラム起動により任意
のタスクの実行要求がなされた場合、その実行要求のな
されたタスクを、そのタスクの優先レベルに対応する優
先レベルキューにキューイングすると共に、そのキュー
イングされたタスクの優先レベルを示すキューイング優
先レベル情報を出力するタスク管理手段と、該タスク管
理手段から出力される前記優先レベル信号に基づいて設
定される現在実行待ちとなっているタスクの全ての優先
レベルを記憶する第1の記憶手段と、前記タスク実行手
段により現在実行されているタスクの優先レベルを記憶
する第2の記憶手段とを有し、タスク管理手段から前記
キューイング優先レベル情報が出力されたとき、そのキ
ューイング優先レベル情報の示す優先レベルを前記第1
の記憶手段に記憶すると共に、前記第1の記憶手段と前
記第2の記憶手段に記憶されている情報とに基づいて、
前記タスク実行手段により現在実行されているタスクの
優先レベルと現在実行待ちとなっているタスクの優先レ
ベルとを比較し、実行待ちとなっているタスクの方が優
先レベルが高い場合には、タスクのスイッチングを要求
するタスクスイッチ指令信号と上記実行待ちとなってい
るタスクの優先レベルのうち、最も高い優先レベルを示
すスイッチ優先レベル情報を出力し、一方、現在実行中
のタスクの方が優先レベルが高ければ、上記タスクスイ
ッチ指令信号は出力しない実行タスク選択手段とを備え
、前記タスク実行手段は、タスクの実行を開始する際に
、そのタスクの優先レベルを示す情報を前記実行タスク
選択手段内の第2の記憶手段に設定すると共に、前記実
行タスク選択手段から前記タスクスイッチ指令信号と前
記スイッチ優先レベル情報とを入力すると、現在実行中
のタスクの実行を中断し、その上位レベルのタスクの優
先レベルに対応する優先レベルキューの先頭にキューイ
ングされているタスクを新たに実行し、タスク実行終了
時には、それまで実行していたタスクと同じ優先レベル
に対応する優先レベルキューにタスクがキューイングさ
れているか否か判別し、タスクがキューイングされてい
ればそのタスクの実行を開始し、タスクがキューイング
されていなければ、上記タスクスイッチ指令信号の入力
により中断したタスクの実行を再開させると共に、その
タスクの優先レベルを示す情報を前記実行選択手段の第
2の記憶手段に書き込むように構成する。
〔産業上の利用分野〕
本発明は、複数の優先レベルを有する複数のタスクの実
行を管理するタスク管理制御方式に関する。
[従来の技術] プログラマブルコントローラ等の情報処理装置のタスク
の起動要因としては一般に、 ■ サイクリックタスク起動 ■ インタバルタイマによる定周期割込みタスク起動 ■ 外部割込みタスク起動 ■ プログラム割込みタスク起動(ソフトエンター等) の4種があり、またタスクの優先レベル例としては、サ
イクリックタスク起動によるPレベルタスク、定周期割
込み、外部割込み、並びにソフト割込みタスク起動によ
る1〜4レベルタスク、外部割込み並びにプログラム割
込みタスク起動にょる0レベルタスクがある。このタス
クの優先レベルの数は、各装置の仕様、規模で決定され
る。
第6図(a)〜げ)は、プログラマブルコントローラに
設けられたタスクの優先レベル及び各優先レベルに定義
されたタスクNo、の例を示す図である。同図(a)〜
(f)は、タスクNαにより、タスクの優先レベルが決
定される例であるが、1つのタスク陥、に対し、タスク
の優先レベルを、自由に設定できる場合もある・。
タスクの優先レベルは、P<4<3<2<1<0に設定
されている。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レベルタスクは主に、システムのイ
ニシャル処理、重故障処理等に利用され、前記のプログ
ラム処理起動又は外部割込み起動により実行される。
次に第7図を参照しながら、タスクの動作を説明する。
第6図(a)に示すテーブルの格納順にX“00→X“
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”のタスクへと実行が移
行する。以下同様にして、任意のタスクが実行中に、そ
のタスクよりも高いレベルのタスクからの実行要求が発
生すれば、上記任意のそのタスクの実行が中断され、よ
り高いレベルのタスクに実行権が移行し、その高いレベ
ルのタスクの処理終了後、再びより低いレベルの上記任
意のタスクが再び実行される。
また、第7図において、x゛51″のタスクからX“0
2゛のタスク(継続実行)に実行権が移った後は、割込
み要求が発生していない為、X ”02’ →X“03
゛・−−−+X’3E’ →X’3F’ −+X’00
’ →X’01’−0)Jk、Pレベルのタスクがサイ
クリックに実行される。
このようなタスク管理の従来における1つの方式として
、単一プロセッサでタスク実行とタスク管理の双方を行
う例があるが、この場合、タスクの実行処理、割込みイ
ベント管理処理、及びイベント発生時もしくは1タスク
終了時に次に実行すべきタスクを決定する決定処理(デ
ィスパッチ:Dispatch)がシリアルに行われる
為、PCのユーザプログラム(アプリケーションプログ
ラム)の実行において、上記のようなタスクスイッチに
要するオーバーヘッドが大きくなってしまうという問題
がある。
また、従来のタスク管理の他の方式の一例として、上記
オーバーヘッドを減らす為に、タスク実行を行う実行プ
ロセッサと、割込みイベント管理とタスク管理を行う上
記実行プロセッサと並列処理可能なタスク管理プロセッ
サとで構成されるシステムの一例を第8図に示す。
同図において、プログラムメモリ11は、マクロ命令か
ら成る複数のタスクから構成されるユーザプログラムが
格納されている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と称す)とから構成されている。
そして、前記実行プロセッサエ4とデータメモリ30は
内部パス50を介して、互いに接続されており、内部パ
ス50は特に図示していない外部システムパス60に接
続されている。
タスク管理プロセッサ40は、外部割込み、実行プロセ
ッサ14からのプログラム割込み、定周期タイマ(イン
ターバル・タイマ)41からの定周期割込み等のイベン
トを検出するイベント検出機構42、該イベント検出機
構42で検出したイベントを、0〜4レベルのうちの該
当する割込みレベルのキューファイルに対応するタスク
No、で登録するファースト・イン・ファースト・アウ
ト(F I FO)構造の割込み要求キューファイル4
3、各実行レベルにおけるタスク管理情報(割込みマス
ク情報等)が書き込まれている割込み制御ファイル45
、各レベル毎の割込みマスクレジスタ44、及びPレベ
ルのタスクのタスクNo、を管理するタスクNα管理フ
ァイル46から構成されている。
上述したように、実行プロセッサ14はマイクロプログ
ラム制御方式を採用しており、1つのタスク実行中は、
プログラムメモリ11からPC21の指すアドレスに格
納されているマクロ命令を1RG22にフェッチし、M
AP制御回路13を介し、通常命令の場合は、マイクロ
インタプリタ処理として各種演算及びデータ転送を行う
。このMAP→演算→MAP→演算・・・の繰り返しに
より、タスクは1命令ずつ実行されていく。この処理は
第4図のE@に該当し、マツプ制御によりマクロ命令で
記述されたユーザプログラムは、マイクロ命令で記述さ
れたそのマクロ命令に該当するインタプリタ(命令の解
読・実行)の先頭番地ヘマッピングすることにより、そ
のマクロ命令に該当するあらかじめ決められた各種デー
タ演算及びデータ転送処理等を行う。これらの実行処理
と並行してタスク管理プロセッサ40は、以下の処理を
行う。
T■ 外部割込み、定周期タイマ41からの定周期割込
み、及び実行プロセッサ14からのプログラム割込みを
イベント検出機構42で検出する。
T■ 割込みイベント発生時は、割込み要求のあったタ
スクを、そのタスクの割込み要求レベルに対応する割込
み要求キューファイル43内にタスクNo、により格納
していく。
T■ 現在実行されているタスクのレベルに対応する割
込みレベルマスクレジスタ44の情報に基づき、マスク
されていない割込みレベルのタスクNαが割込み要求キ
ューファイル43にキューイングされている場合は(ソ
フトウェア手段で判定)、割込み制御ファイル45の現
在実行中のタスクの割込みレベルに対応する領域に、そ
れまで実行されていたタスクのタスク管理情報(レベル
Nα、マスクレジスタ情報等)を退避し、新たに実行す
べきタスクのレベルに対応するマスク情報を割込レベル
マスクレジスタ44にセットし、さらにタスクスイッチ
指令をMAP制御回路13へ、又新たに割込み起動させ
るタスクのタスクNα並びにレベルを実行プロセッサ1
4へ通知する。
T■ 割込み要求キューファイル43から新たに起動さ
せたタスクのタスク阻を削除する。続いて、実行プロセ
ッサ14は、タスクスイッチ指令によるMAP処理によ
り、タスク起動割込み処理ルーチンにマツピングされ、
上記タスク起動割込み処理ルーチンの実行により、以下
に示すE■〜E■の処理を行う。
E■ タスク管理プロセッサ40から通知された割込み
により起動させるタスクのレベルに対応するデータメモ
リ30内の割込み制御ファイル32に、今まで実行して
いたレベルのタスクの種々のタスク情報(プログラムカ
ウンタ、スタックポインタ等)を退避する。
E■ タスク管理プロセッサ40から通知されたタスク
阻を有するタスクの新たな割込みタスクのプログラムメ
モリ11内の格納先頭アドレスをTET31から求めて
、PC21にセットし、次に、その新たな割込みタスク
の実行をMAP→演算→MAP→・・・の繰り返しを行
いながら実行させる。
E■ そして、タスク終了命令をフェッチした場合、タ
スク管理プロセッサ40に対しタスク終了割込みをかけ
る。このことにより、実行プロセッサ14は、タスク管
理プロセッサ40からのタスクスイッチ指令待ちとなる
次に、タスク管理プロセッサ40は、実行プロセッサ1
4からタスク終了割込みが加わると、以下に示すT■の
処理を行う。
T■ 割込み要求キューファイル43の現在実行中のタ
スクのレベルに等しいレベル領域(現実行タスクレベル
領域)を検索し、要求タスク障があれば、前記処理T■
と同様にして再び同レベルのタスクスイッチ指令をMA
P制御回路13に、割込み起動を行うタスクのタスクN
o、並びにタスクレベルを実行プロセッサ14に対し出
力した後、前記処理T■を行う。
実行プロセッサ14は、タスクスイッチ指令によるマツ
ピング処理により、今度は前記処理E■を行わないで前
記処理E■を行う。
一方、タスク管理プロセッサ40は、前記処理T■にお
いて、前記現実行レベル領域に要求タスクNαがない場
合は以下の処理T■を行う。
T■ 割込み制御ファイル45から、退避させておいた
前実行レベルのタスクのタスク管理情報を復帰し、次に
前実行レベルのタスクのマスクレジスタ情報を割込みレ
ベルマスクレジスタ44ヘセツトした後、前実行レベル
のタスクへの切り換えを指示するタスクスイッチ指令を
MAP制御回路13へ通知する。
実行プロセッサ14は、上記タスクスイッチ指定が加わ
ると、MAP処理により以下の処理E■を行う。
E■ 割込み制御ファイル32の現在実行しているタス
クのレベルに等しいレベル領域から前回実行していたよ
り下位レベルのタスクの各種タスク情報(PC、スタッ
クポインタ等)を読み出し、その読み出した各種タスク
情報を、当該レジスタ、フラグ等に再セットし、再び前
回実行していたタスクのMAP→演算→・・・の処理を
再開する。
以上は、割込みタスクの動作であるが、Pレベルタスク
についても同様であり、タスク管理プロセッサ40は、
Pレベルタスクの終了割込みにより、以下に示すT■の
処理を行う。
TCv)  Pレベルタスク陥、管理ファイル46から
、次に実行するタスクNαを求め(Pレベルタスクは、
X ’00’ −+X ’01’ −+ ・= n (
nは任意の正の16進値)→X ’00’ →・・・→
n→X“00゛ のようにサイクリックに実行すべきタ
スクのタスクNαが決定されていく)、前記処理T■と
同様にタスクスイッチ指令をMAP制御回路13へ、又
起動すべきタスクのタスクNo、とそのレベル(Pレベ
ル)を実行プロセッサ14に通知する。
実行プロセッサ14は、タスクスイッチ指令によるマツ
ピング処理により、前記処理E■を行わずに前記処理E
■と同様にプログラムメモリ11内のPレベルタスクの
格納領域の先頭アドレスをPC21にセットして、Pレ
ベルタスクを実行させていく。そして、タスク終了命令
をフェッチした場合には、前記処理E■を行い、タスク
管理プロセッサ40は、再び前記処理T■を行う。
上述したように、Pレベルタスクにおいても、割込みタ
スクと同様にタスク管理プロセッサ40からのタスクス
イッチ指令と実行プロセッサ14からのタスク終了割込
みによりタスク管理プロセッサ40と実行プロセッサ1
4間でハンドシェークが行われながらタスクが実行され
る。
[発明が解決しようとする課題] 上述した単一のプロセンサでタスク管理とタスクの実行
をシリアルに処理する方式では、ユーザプログラムの実
行におけるタスク管理処理のオーバーヘッドがかなり大
きくなってしまうという問題があった。
また、上記オーバーヘッドを削減する為に、実行プロセ
ッサ14に加え、タスク管理プロセッサ40を備えて、
実行プロセッサ14によるタスク実行と並行して、タス
ク管理プロセッサ40によりタスク管理処理を行う方式
では、Pレベルタスクの実行管理においては、イベント
検出、割込みキューファイル43への登録/削除、割込
み制御ファイル45への退避/復帰処理は不要であり、
タスクスイッチ時に実行プロセッサ14とタスク管理プ
ロセッサ40間で、タスクスイッチ指令/タスク終了割
込みという形のハンドシェーク処理は、オーバーヘッド
となってしまう。また、割込みタスクの起動管理は、タ
スク管理プロセッサ40が、割込み要求発生時に、現実
行タスクレベルとの優先判定をソフトウェアにより行い
、さらに1つの割込みタスク終了時においても、次に実
行すべきタスクのタスク阻の決定を、実行プロセッサ1
4からタスク管理プロセッサ40に対し割込みを通知し
、その通知によりタスク管理プロセッサ40がソフトウ
ェアにより判定することにより行っている為、このこと
もタスクスイッチ時のオーバーヘッドの一因となる。
本発明は、割込み要求に対応するタスクのスイッチを高
速に行うこと、さらにはPレベルのタスクのスイッチを
も高速に行えるようにすることを目的とする。
〔課題を解決するための手段〕
第1図は、本発明の原理説明図である。
本発明は、複数の優先レベルを有するタスクと前記各優
先レベルに1対lに対応して設けられた当該優先レベル
のタスクがキューイングされる複数の優先レベルキュー
とを有し、最も高い優先レベルのキューにキューイング
されているタスクを優先的に実行させるタスク管理制御
方式を特徴とする 請求項1記載の第1の発明の手段は次の通りである。
タスク実行手段1は、例えばマイクロプロセッサ等から
成り、前記各優先レベルのタスクの実行を行う。
タスク管理手段2は、例えばマイクロプロセッサ等から
成り、前記各優先レベル毎の優先レベルキュー2−〇〜
2−Nを有し、割込みもしくはプログラム起動により任
意のタスクの実行要求がなされた場合、その実行要求の
なされたタスクをそのタスクの優先レベルに対応する優
先レベルキュー2−0〜2−Nにキューイングすると共
に、そのキューイングされたタスクの優先レベル信号を
オンにする。
タスク選択手段3は、タスク管理手段2から出力される
前記優先レベル信号に基づいて設定される現在実行待ち
となっているタスクの全ての優先レベルを記憶する第1
の記憶手段3aと、前記タスク実行手段により現在実行
されているタスクの優先レベルを記憶する第2の記憶手
段3bとを有し、タスク管理手段2から前記キューイン
グ優先レベル情報が出力されたとき、そのキューイング
優先レベル情報の示す優先レベルを前記第1の記憶手段
3aに記憶すると共に、前記第1の記憶手段3aと前記
第2の記憶手段3bに記憶されている情報とに基づいて
、前記タスク実行手段1により現在実行されているタス
クの優先レベルと現在実行待ちとなっているタスクの優
先レベルとを比較し、実行待ちとなっているタスクの方
が優先レベルが高い場合には、タスクのスイッチングを
要求するタスクスイッチ指令信号と現在実行されている
タスクよりも優先レベルの高い上記実行待ちとなってい
るタスクの優先レベルのうち、最も高い優先レベルを示
すスイッチ優先レベル情報を出力し、一方現在実行中の
タスクの方が優先レベルが高ければ、上記タスクスイッ
チ指令信号は出力しない。
そして、タスク実行手段1は、タスクの実行を開始する
際に、そのタスクの優先レベルを示す情報を前記実行タ
スク選択手段3内の第2の記憶手段3bに設定すると共
に、前記実行タスク選択手段3から前記タスクスイッチ
指令信号と前記スイッチ優先レベル情報とを入力すると
、現在実行中のタスクの実行を中断し、その上位レベル
のタスクの優先レベルに対応する優先レベルキュー2−
0〜2−Nの先頭にキューイングされているタスクを新
たに実行し、タスク実行終了時には、それまで実行して
いたタスクと同じ優先レベルに対応する優先レベルキュ
ー2−〇〜2−Nにタスクがキューイングされているか
否かを前記実行タスク選択手段3の第1の記憶手段3a
により判別し、タスクがキューイングされていればその
タスクの実行を開始し、タスクがキューイングされてい
なければ、上記タスクスイッチ指令信号の入力により中
断したタスクの実行を再開させると共に、そのタスクの
優先レベルを示す情報を前記実行選択手段3の第2の記
憶手段3bに書き込む。
また、請求項2記載の第2の発明の手段は、次の通りで
ある。
まず、上記第1の発明と同様なタスク実行手段1、タス
ク管理手段2、及びタスク選択手段3とに加え、第3の
記憶手段4を有する。
この第3の記憶手段4は、例えば、ROM(リード・オ
ンリ・メモリ)もしくはRAM (ランダム・アクセス
・メモリ)等のメモリからなり、サイクリックに起動さ
れるPレベルの複数のタスクの実行・管理に係わる情報
を記憶し、タスク実行手段1が直接アクセス可能である
上記複数のPレベルのタスクの実行・管理に係わる情報
は、例えばPレベルのタスクの実行順序並びに各Pレベ
ルのタスクのエントリポイント(entry poin
t)を示すポインタ等から成る。
そして、タスク実行手段1は、第3の記憶手段4に記憶
されている前記複数のPレベルのタスクの実行・管理に
係わる情報に基づいて、複数のPレベルのタスクを所定
の順序でサイクリックに実行する。
〔作  用〕
第1の発明の作用は、次の通りである。
タスク管理手段2は、外部割込み、タスク実行手段1か
らのプログラム割込みによるタスク起動要求、またはイ
ンタバルタイマ(interval timer)等か
らの定周期割込み等が加わる毎に、その割込みに対応す
るタスクを、そのタスクの優先レベル「i」に対応する
優先レベルキュー2−iにキューイングすると共に、実
行タスク選択手段3に対し、上記キューイングされたタ
スクの優先レベル「i」を示す優先レベル信号をオンに
する。
実行タスク選択手段3は、その優先レベル進行がオフか
らオンに変化したことを検出すると、第1の記憶手段3
aに優先レベル「i」にタスクがキューイングされた旨
を記憶した後、第1の記憶手段3aに記憶されている優
先レベルキュー2−1〜2−nの現在のタスクのキュー
イング優先レベル情報と第2の記憶手段3bに記憶され
ているタスク実行手段1が現在実行中のタスクの優先レ
ベル情報とに基づいて、上記新たにキューイングされた
タスクが現在実行中のタスクよりも優先レベルが高いか
否かを判別し、上記新たにキューイングされたタスクが
、現在実行中のタスクよりも優先レベルが高い場合には
、タスクスイッチ指令信号と上記新たにキューイングさ
れたタスクの優先レベルを示すスイッチ優先レベル情報
をタスク実行手段1に出力する。
タスク実行手段1は、上記タスクスイッチ信号が加わる
と、現在タスク実行中であれば、そのタスクの実行を中
断させ、上記スイッチ優先レベル情報の示す優先レベル
ri」に対応する優先レベルキュー2−iの先頭にキュ
ーイングされているタスクの実行を開始する。
一方、タスク実行手段1は、タスクの実行を終了すると
、それまで実行していたタスクの優先レベル「i」に対
応する割込み優先レベルキュー2−1にタスクがキュー
イングされているか否かを第1の記憶手段3aにより判
別し、タスクがキューイングされていればそのタスクの
実行を開始し、タスクがキューイングされていなければ
、上記タスクスイッチ指令信号の入力により実行を中断
したタスクの実行を再開するとともに、そのタスクの優
先レベルを示す情報を第2の記憶手段3bに書き込む。
このように、実行タスク手段3は、従来のように他の手
段(前記タスク管理プロセッサ)とハンドシェークする
ことなく、実行タスク選択手段3の出力情報と、タスク
管理手段2内の割込み優先レベルキュー2−0〜2−N
の直接参照とにより、実行すべきタスクを高速に知るこ
とができるため、割込み要求に対応するタスクのスイッ
チを高速に行うことができる。
また、第2の発明は、上記第1の発明の作用に加え、以
下に示す作用を有する。
タスク実行手段1は、Pレベルタスクの起動及び実行を
タスク終了時にPレベルよりも高い優先レベルのタスク
が割込み優先レベルキュー2−0〜2−Nに1個もキュ
ーイングされていない場合、第3の記憶手段4に記憶さ
れている情報を直接読み出すことにより行う。
このように、Pレベルのタスクの実行・管理は、実行タ
スク手段が他の手段(前記タスク管理プロセッサ40)
を介在せずに行えるため、Pレベルのタスクのスイッチ
を高速に行うことができる。
〔実  施  例〕
以下、図面を参照しながら本発明の実施例について説明
する。
第2図は本発明に係わる第一実施例のシステム構成図で
ある。
尚、同図において前述した第8図に示す従来のシステム
と同一ブロックには同一番号を付与しており、それらの
ブロックの詳しい説明は省略する。
同図において、タスクレベル優先順位決定回路100は
、割込み要求レベルレジスタ101と、現在実行中のタ
スクの優先レベルに対応する割込みマスクを記憶する割
込みレベルマスクレジスタ44、及び上記2つのレジス
タ101.44間のレベル優先判定を行うプライオリテ
ィエンコーダ102とから構成されている。
また、従来はタスク管理プロセッサ40内に設けられて
いたPレベルタスク胤管理ファイル46は、データメモ
リ30’内に設けられている。そして、本実施例のタス
ク管理プロセッサ40′は、上記割込みレベルマスクレ
ジスタ44及びPレベルタスク阻管理ファイル46以外
に、割込み制御ファイル45をも有していない。
次に、上記構成の本実施例の動作を、第3図乃至第5図
のフローチャートを参照しながら説明する。
従来例と同様に、実行プロセッサ14が、任意の1つの
タスクを実行している間取下に示すE■の処理を行う。
E@  通常命令をフェッチしMAPした場合、その通
常命令に対応する各種データ演 算及びデータ転送処理等を行う。
実行プロセッサ14が、このMAP→演算→MAP→演
算→・・・を繰り返し実行している間に、タスク管理プ
ロセッサ40′は、前述した処理T■。
T■に続いて、以下に示す処理T■を行う。
T■ 前記処理T■で求めた割込みレベルに相当する割
込み要求レベル信号をオン(ON)にして、タスクレベ
ル優先順位決定回路100の割込み要求レベルレジスタ
101に加える。
タスクレベル優先順位決定回路100のプライオリティ
エンコーダ102は、予め実行プロセッサ14より設定
されている現在実行中のタスクのレベルに相当する割込
みレベルマスクレジスタ44と、タスク管理プロセッサ
40′から加わる複数の割込み要求レベル信号を記憶す
る割込要求レベルレジスタ101との間で優先判定を行
い、割込み要求レベルレジスタ101にセットされてい
るタスクの方が現在実行中のタスクよりもレベルが高い
場合には、MAP制御回路13に対しタスクスイッチ指
令を出力すると共に、その割込み要求レベルレジスタ1
01にセットされているタスクレベルを、実行プロセッ
サ14に対し出力する。
尚、割込み要求レベルレジスタ101に、現在実行中の
タスクよりもレベルの高い複数のタスクからの割込み要
求がセットされている場合には、プライオリティエンコ
ーダ回路102は、最も高い割込みレベルのレベル情報
を自動的に生成し、実行プロセッサ14に出力する。一
方、割込み要求レジスタ101にセットされているレベ
ルが現在実行中のタスクのレベルより低い場合には、プ
ライオリティエンコーダ102は、MAP制御回路13
に対しタスクスイッチ指令を出力しない。
次に実行プロセッサ14は、従来例と同様なMAP制御
回路13がタスクスイッチ指令に応じて行うMAP処理
によりタスク起動割込み処理にマツピングされ、第4図
のフローチャートに示す処理を行う。
E■ タスクスイッチ優先順位決定回路100から加わ
る割込み起動タスクレベルに該当する割込み制御ファイ
ル32に、今まで実行していたレベルのタスクの各種タ
スク情報(プログラムカウンタ、スタックポインタ、マ
スク情報等)を退避する(前記処理E■と同様)。
Eo 上記タスクスイッチ優先順位決定回路100から
加わる割込み起動タスクレベル以下のタスクの割込みを
マスクするようにタスクレベル優先順位決定回路100
の割込みレベルマスクレジスタ44をセットする。
Eo タスク管理プロセッサ40′内の割込み要求キュ
ーファイル43の上記割込み起動タスクレベルに対応す
る割込み要求キューファイルから起動すべきタスクNo
、を求める。
Eo タスク管理プロセッサ40′に対し、タスクスイ
ッチ受付はレベル(新たに起動するタスクの割込みレベ
ル)を割込みにより通知する。
Eo 前記割込みタスク陥、を有するタスクが格納され
ているプログラムメモリ11の先頭番地をTET31か
ら求め、その先頭番地をPC21ヘセツトし、新たな割
込みタスクの実行を開始する(MAP→実行→MAP→
実行・・・の繰り返しにより通常命令を1命令ずつ実行
していく。〈Eo〉)。
タスク管理プロセッサ40′は、実行プロセッサ14か
ら前記タスクスイッチ受付は割込みが加わると第5図の
フローチャートに示す処理を行う。
T■ 実行プロセッサ14が受は付けたレベルに該当す
る割込み要求キューファイル43のキューファイルの先
頭にキューイングされているタスクNαを削除する(キ
ューはファースト・イン・ファースト・アウト構造)。
T■ 一方、上記該当レベルのキューファイルが空の場
合は、タスクレベル優先順位決定回路100に対し加え
る上記該当する割込み要求レベル信号をオフ(OFF)
にする。また、上記該当キューファイルが空でない場合
には、直ちに、メイン・ルーチンに復帰する。
一方、実行プロセッサ14は、タスク終了命令をフェッ
チしMAPした場合、現在実行中のタスクのレベルが割
込みレベル(0〜4レベル)モしくはPレベルかに応じ
て、第4図のフローチャートに示すように異なった処理
を行う。
(割込ミレベル(0〜4レベル)の場合)E[相] 現
在実行中のタスクのレベルが割込みレベル(0〜4レベ
ル)であった場合、タスクレベル優先順位決定回路10
0のマスクレジスタ44において、現実行レベルのマス
クビットを解除した後、現実行レベルと同レベルのタス
ク割込み要求があるかチエツクし、あれば前記処理E■
〜E■を行い、なければ、次に示す処理E■を行う。
Eo 該当レベルの割込み制御ファイル32から、前回
実行していた下位レベルの各種タスク情報(PC,スタ
ックポインタ、マスク情報等)を復帰し、再びMAP→
実行→MAP→実行→・・・を繰り返す。
〈Pレベルタスクの場合〉 Eo PレベルタスクNO1管理ファイル46から、次
に実行すべきPレベルタスクのタスクNo、を見つけ出
し、プログラムメモリ11内のそのタスクの格納領域の
先頭番地をTET31から求めてPC21ヘセツトし、
そのPレベルタスクを新たに実行する。
〔発明の効果〕
以上説明したように、第1の発明によれば、割込みもし
くはプログラム起動により起動要求がなされたタスクを
当該優先レベルキューにキューイングする手段と、現在
実行中のタスクの優先レベルと新たにキューイングされ
たタスクの優先レベルとを比較してタスクスイッチ指令
信号を出力する手段とを分離し、そのタスクスイッチ指
令出力を行う処理を、タスク実行と並列して高速に行え
るようにしたので、タスク実行中におけるタスクのスイ
ッチングを高速に行うことが可能となる。
また、タスク終了時においても、次に実行すべきタスク
をタスクレベル優先順位決定回路と優先レベルキューを
直接参照することにより見つけ出すことができるため、
タスクのスイッチングが高速になる。
また、第2の発明によれば、上記第1の発明の効果に加
え、サイクリックに起動されるPレベルのタスクの実行
・管理を、Pレベルのタスクに係る情報を記憶する手段
を直接参照して行えるため、オーバーヘッドが無くなり
、Pレベルのタスクを高速にスイッチングすることが可
能となる。
【図面の簡単な説明】
第1図は本発明の原理説明図、 第2図は本発明に係わる一実施例のシステム構成図、 第3図はタスク管理プロセッサの処理を説明するフロー
チャート、 第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に対応して設けられた当該優先レベルのタス
    クがキューイングされる複数の優先レベルキューとを有
    し、最も高い優先レベルのキューにキューイングされて
    いるタスクを優先的に実行させるタスク管理制御方式に
    おいて、前記各優先レベルのタスクの実行を行うタスク
    実行手段(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記載のタスク管理制
    御方式。
JP2201505A 1990-07-31 1990-07-31 タスク管理制御方式 Expired - Fee Related JP3071210B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 デバッガタスクスケジューリング方式

Patent Citations (5)

* Cited by examiner, † Cited by third party
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