JPH0752397B2 - タスク制御方式 - Google Patents

タスク制御方式

Info

Publication number
JPH0752397B2
JPH0752397B2 JP63043690A JP4369088A JPH0752397B2 JP H0752397 B2 JPH0752397 B2 JP H0752397B2 JP 63043690 A JP63043690 A JP 63043690A JP 4369088 A JP4369088 A JP 4369088A JP H0752397 B2 JPH0752397 B2 JP H0752397B2
Authority
JP
Japan
Prior art keywords
task
processor
execution
arithmetic processor
control
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 - Lifetime
Application number
JP63043690A
Other languages
English (en)
Other versions
JPH01217636A (ja
Inventor
幸一 奥村
千昭 熊本
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 Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63043690A priority Critical patent/JPH0752397B2/ja
Publication of JPH01217636A publication Critical patent/JPH01217636A/ja
Publication of JPH0752397B2 publication Critical patent/JPH0752397B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンピュータ技術分野、特にベクトル演算など
の科学演算を高速で遂行する演算プロセッサと演算プロ
セッサを制御し通常のオペレーティングシステムの持つ
機能を遂行する制御プロセッサとから構成され、タイム
スライス・ディスパッチング式を採用したマルチプロセ
ッサシステムにおけるタスク制御方式に関する。
〔従来の技術〕
従来、この種のタスク制御方式では、演算プロセッサ上
で実行中のタスクが、該タスクに割当てられた実行イン
ターバルの途中で、自ら演算プロセッサ上での実行権を
放棄し再び演算プロセッサ上で実行可能状態になった場
合、またはタスクが演算プロセッサ上で与えられた一定
の実行インターバルを消費した場合、そのタスクを演算
プロセッサの実行待タスクキューにファースト・イン・
ファースト・アウト(FIFO)方式でキューイングし、同
一優先順位の範囲内ではキューイングされた順番に演算
プロセッサ上での実行権が与えられる方式になっていた
(従来技術としては、特願昭60−125036がある)。ここ
で、実行インターバルとは、マルチタスク処理を実現し
ているコンピュータにおいて一般に広く採用されている
「タイムスライス時間」のことである。なお、実行イン
ターバルを使い切らない内に実行権を失ったタスクに対
し、次に実行権を付与する場合、毎回同じ実行インター
バルを与え直す方式と、残り時間を与える方式とがあ
る。
〔発明が解決しようとする問題点〕
従来の高速科学演算を遂行するマルチプロセッサシステ
ムにおけるタスク制御方式は、上述したようにシステム
固定でありタスクの性質を意識した動的なタスク切替制
御は行なわれていない。従って、演算プロセッサ上で常
に動作する性質を持つタスクは、実行待タスクキュー中
で自タスクの実行順を待つ毎に一定の実行インターバル
が与えられるが、自タスクの実行インターバルの途中で
頻繁に制御プロセッサ上で動作するオペレーティングシ
ステムのサービスを受けることにより自ら演算プロセッ
サ上の実行を放棄する性質を持つタスクは、演算プロセ
ッサ上で常に動作する性質を持つタスクと比較して、自
タスクの演算プロセッサ上での実行時間よりも自タスク
の実行割当てを待つ時間が長くなる。このことは、同一
優先度を持ちながらタスクの性質によっては演算プロセ
ッサ上で実行する機会が均等に割当てられずタスクのタ
ーンアラウンドタイムを大きく左右するという不都合を
招来する。
本発明の目的は、このようなタスクの性質による演算プ
ロセッサ上での実行機会の不均等を是正することにあ
る。
〔問題点を解決するための手段〕
本発明のタスク制御方式は、上記目的を達成するため
に、 プロセッサ間通信手段を持ち科学演算を高速で遂行する
演算プロセッサと、プロセッサ間通信手段を持ち前記演
算プロセッサを制御し通常のオペレーティングシステム
の持つ機能を遂行する制御プロセッサとを含み、タイム
スライス・ディスパッチング方式を採用したマルチプロ
セッサシステムにおいて、 前記演算プロセッサ上で実行中のタスクが自ら前記演算
プロセッサ上での実行権を放棄し再び前記演算プロセッ
サ上で実行可能状態になったことを、タスク単位に状態
表示する手段と、 前記状態表示によって実行中のタスクを含めた同一優先
順位を持つ他のタスクより優先的に前記タスクに前記演
算プロセッサ上での実行権を与えるとともに前記状態表
示をリセットする手段とを有している。
〔作用〕
演算プロセッサ上で実行中のタスクが自ら演算プロセッ
サ上での実行権を放棄し再び演算プロセッサ上で実行可
能状態になったことがそのタスク対応の状態表示によっ
て表示されている場合、実行中のタスクを含めた同一優
先順位を持つタスクより優先的に演算プロセッサ上での
実行権が与えられるので、タスクの性質によって演算プ
ロセッサ上での実行機会が不均等になることがなくな
る。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の一実施例のマルチプロセッサシステム
のブロック図で、それぞれのプロセッサで動作するタス
クの制御ブロックを含む制御情報やプロセッサ上で動作
するためのプログラムやデータなどが格納される制御プ
ロセッサメモリ2及び演算プロセッサメモリ3を含む主
記憶装置1と、プロセッサ間通信手段を持ち通常のオペ
レーティングシステムの持つ機能を遂行する制御プロセ
ッサ5及びプロセッサ間通信手段を持ち高速科学演算を
遂行する演算プロセッサ6で構成される科学演算処理装
置4と、入出力の制御を行なう入出力処理装置7と、プ
ログラムやデータなどが記憶されている入出力装置8と
で構成される。
第2図は、演算プロセッサメモリ3の内容例を示す図で
ある。演算プロセッサメモリ3は、制御データ領域30
と、タスク状態ブロック310を含むユーザジョブ領域31
とを持ち、制御データ領域30には実行タスクポインタ30
0,実行待タスクキューの先頭ポインタ301,タスクリンク
302が作成されている。タスクリンク302は次のタスクリ
ンクへのポインタ,制御フラグ3020,優先度3021,ジョブ
番号,タスク番号,タスク状態ブロック310のポインタ
を有している。
第3図は、タスクリンク302内の制御フラグ3020の内容
例を示し、各種の制御フラグに加え、タスク切替制御表
示30200を含んでいる。このタスク切替制御表示30200
は、ON(=1),OFF(=0)の状態をとり、各状態で以
下のように自タスクの実行権の獲得が制御される。
ON(=1);自タスクの優先度が実行中タスクの優先度
と等しいか、より高いときに自タスクが実行権を得る OFF(=0);自タスクの優先度が実行中タスクの優先
度より高いときに自タスクが実行権を得る 第4図は、制御プロセッサ5からプロセッサ間通信手段
により演算プロセッサ6にタスク実行要求が行なわれた
ときの演算プロセッサ6でのタスク登録処理例の流れ図
であり、41〜46は各ステップを示す。
第5図は、演算プロセッサ6におけるタスク切替処理例
の流れ図であり、51〜62は各ステップを示す。以下、各
図を参照して本実施例の動作を説明する。なお、本発明
のマルチプロセッサシステムでは、実行インターバルを
使い切らない内に実行権を失ったタスクに対し、次に実
行権を付与する場合、毎回同じ実行インターバルを与え
直す方式,残り時間を与える方式の何れかを採用してい
るが、このようなタイムスライスの制御自体は従来から
広く知られていることなので、詳細な説明は省略してあ
る。
第1図において、まず制御プロセッサ5上で動作するオ
ペレーティングシステムは、ユーザジョブの演算プロセ
ッサ6上で動作するタスクのタスク状態ブロックを含む
制御情報とプログラムとデータとを演算プロセッサメモ
リ3へロードし、さらに該ユーザジョブの制御プロセッ
サ5上で動作するタスクのタスク制御ブロックを含む制
御情報とプログラムとデータとを制御プロセッサメモリ
2へロードし、該タスクを起動する。起動されたタスク
は、まず制御プロセッサ5上で動作し、該タスクが実行
しているプログラムが演算プロセッサ6上で動作するプ
ロシジャを呼出した場合、制御プロセッサ5の持つプロ
セッサ間通信手段が働きプロシジャコール通信が演算プ
ロセッサ6へ通知される。
前記プロシジャコール通信を受取った演算プロセッサ6
は、第4図で示すようにタスク状態ブロック310のポイ
ンタを含む通信情報をもとに登録すべきタスク用のタス
クリンク302を制御データ領域30内に作成し(41)、プ
ロシジャリターン通信でなくプロシジャコール通信であ
ることからステップ42を経てステップ43へ進み、そのタ
スクリンク302内の制御フラグ3020に含まれるタスク切
替制御表示30200を「0」にし、ステップ44でそのタス
クリンク302を実行待タスクキューへ優先度に応じてフ
ァースト・イン・ファースト・アウト(FIFO)方式で登
録する。
次に第5図で示したタスク切替処理が行なわれる。
まず演算プロセッサ6上で実行中タスクがあるかどうか
判定され(51)、実行中タスクが存在する場合(実行タ
スクポインタ300が「0」でないとき)は、実行待タス
クキューの先頭タスクがあるかどうか判定される(5
2)。実行待タスクキューの先頭タスクがある場合(実
行待タスクキューの先頭ポインタ301が「0」でないと
き)には、この先頭タスクに対応するタスクリンク302
(1)に含まれる優先度3021(1)と実行タスクポイン
タ300で示されるタスクリンク302(0)に含まれる優先
度3021(0)の比較が行なわれる(53)。
次に、実行待タスクキューの先頭タスクのタスクリンク
302(1)に含まれるタスク切替制御表示30200が判定さ
れ(54)、該表示が「0」であれば実行待タスクキュー
の先頭タスクの優先度3021(1)が実行中タスクの優先
度3021(0)より高いときに限り(59でYESの場合)、
実行中タスクのタスク状態を対応するタスク状態ブロッ
ク310(0)に格納し、そのタスクリンク302(0)を実
行待タスクキューへ優先度に応じてラスト・イン・ファ
ースト・アウト(LIFO)方式でキューイングし(56)、
実行待タスクキューの先頭タスクのタスク切替制御表示
30200を「0」にし(57)、実行タスクポインタ300が実
行待タスクリンク302(1)を示すようにし、対応する
タスク状態ブロック310(1)で示される状態で起動す
る(58)ことによりタスク切替を行なう。
また、前記ステップ59において実行待タスクキューの先
頭タスクの優先度3021(1)が実行中タスクの優先度30
21(0)より低いか等しいときにはタスク切替は行なわ
ず実行中タスクを引き続き起動する(60)。
尚、前記ステップ51において実行タスクが存在しない場
合(実行タスクポインタ300が「0」のとき)には、実
行待タスクがあるかどうか判定され(61)、実行待タス
クがある場合(実行待タスクキューの先頭ポインタ301
が「0」でないとき)には実行待タスクキューの先頭タ
スクのタスク切替制御表示30200を「0」にし(57)、
実行タスクポインタ300が実行待タスクリンク302(1)
を示すようにし、該タスクが無条件に起動される(5
8)。また実行待タスクがない場合(実行待タスクキュ
ーの先頭ポインタ301が「0」のとき)には、演算プロ
セッサ6はアイドル状態になる(62)。
更に前記ステップ52において実行待タスクが存在しない
場合には実行中タスクが引き続き起動される(60)。
前記処理により演算プロセッサ6上で起動されたタスク
が制御プロセッサ5上のプロシジャを呼出した場合、演
算プロセッサ6の持つプロセッサ間通信手段が働きプロ
シジャコール通信が制御プロセッサ5へ通知される。前
記処理により演算プロセッサ6上で該タスクは保留状態
となり、演算プロセッサ6上で実行可能な別タスクが実
行待タスクキューに存在すればそのタスクが起動され
る。
前記プロシジャコール通信により制御プロセッサ5上で
動作しているタスクがプロシジャリターイン命令を実行
した場合、同様に制御プロセッサ5の持つプロセッサ間
通信手段が働きプロシジャリターン通信が演算プロセッ
サ6へ通知される。
プロシジャリターン通信を受取った演算プロセッサ6
は、第4図で示すようにタスク状態ブロック301のポイ
ンタを含む通信情報をもとに登録すべきタスク用のタス
クリンク302を制御データ領域30内に作成し(41)、そ
のタスクリンク302内の制御フラグ3020に含まれるタス
ク切替制御表示30200を「1」にし(45)、そのタスク
リンク302を実行待タスクキューへ優先度に応じてラス
ト・インファースト・アウト(LIFO)方式で登録する
(46)。
次に第5図で示したタスク切替処理により、既に述べた
ような実行中タスクと実行待タスクキューの先頭タスク
の優先度の比較が行なわれる(53)。このとき実行待タ
スクキューの先頭タスクの持つタスク切替制御表示3020
0が「1」であることがステップ54で判定されるため、
実行待タスクキューの先頭アスクの優先度3021(1)が
実行中タスクの優先度3021(0)より高いか等しいとき
に(55でYESの場合)、実行中タスクのタスク状態を対
応するタスク状態ブロック310(0)に格納し、そのタ
スクリンク302(0)を実行待タスクキューへ優先度に
応じてラスト・イン・ファースト・アウト(LOFO)方式
でキューイングし(56)、実行待タスクキューの先頭タ
スクのタスク切替制御表示30200を「0」にし(57)、
実行タスクポインタ300が実行待タスクリンク302(1)
を示すようにし、対応するタスク状態ブロック310
(1)で示される状態で起動する(58)ことにより、タ
スク切替を行なう。
また、前記ステップ55において実行待タスクキューの先
頭タスクの優先度3021(1)が実行中タスクの優先度30
21(0)より低いときにはタスク切替は行なわず実行中
タスクを引続き起動する(60)。
第6図は制御プロセッサ5と演算プロセッサ6における
タスク制御の流れの一例を示し、タスクの優先度をA=
B>Cとした場合のものである。
第6図において、制御プロセッサ5上で動作するタスク
Aが演算プロセッサ6上のプロシジャに対するプロシジ
ャコール命令を実行すると、プロセッサ間通信手段が起
動されプロシジャコール通信が演算プロセッサ6へ通知
され、制御プロセッサ5上ではタスクAは保留状態とな
り、同一優先度を持つタスクBが起動される。
一方、プロシジャコール通信を受取った演算プロセッサ
6はタスクA′を起動し、タスクA′の動作中に制御プ
ロセッサ5で動作中のタスクBからのプロシジャコール
通信を受取った場合にはタスクB′を実行待タスクキュ
ーへ登録し、動作中であるタスクA′とタスクB′の優
先度を比較する。
プロシジャコール通信によるタスク起動要求の場合、優
先度が等しいとタスク切替は行なわないので、タスク
A′を引続き実行する。
制御プロセッサ5上のタスクBは前記プロシジャコール
命令の実行により保留状態となり、つぎの優先度を持つ
タスクCが起動される。
演算プロセッサ6上のタスクA′が制御プロセッサ5上
のプロシジャに対するプロシジャコール命令を実行する
ことによりプロセッサ間通信手段が起動されプロシジャ
コール通信が制御プロセッサ5へ通知されると、演算プ
ロセッサ6上ではタスクA′は保留状態となり、実行待
タスクキューよりタスクB′が取出されタスクB′が起
動される。
次に、プロシジャコール通信を受取った制御プロセッサ
5は保留状態であるタスクAを実行待タスクキューへ登
録し、動作中であるタスクCとタスクAの優先度を比較
し、優先度の低いタスクCを実行待タスクキューへ登録
し、優先度の高いタスクAを起動する。
次に、制御プロセッサ5上のタスクAがプロシジャリタ
ーン命令を実行すると、プロセッサ間通信手段が起動さ
れプロシジャリターン通信が演算プロセッサ6へ通知さ
れ、制御プロセッサ5上ではタスクAは保留状態となり
実行待タスクキューよりタスクCが取出されタスクCが
起動される。
一方、プロシジャリターン通信を受取った演算プロセッ
サ6は保留状態にあるタスクA′を実行待タスクキュー
へ登録し、動作中であるタスクB′とタスクA′の優先
度を比較する。プロシジャリターン通信によるタスク起
動要求の場合、優先度が等しくてもタスク切替を行なう
ため、実行中であるタスクB′を実行待タスクキューへ
登録しタスクA′を起動する。
以上説明したように、演算プロセッサ6上で動作するタ
スクのうち、自ら演算プロセッサ6上での実行権を放棄
することにより演算プロセッサ上で動作する機会の少な
いタスクに対して同一優先度の範囲内で優先的に実行権
を与えることにより、タスクのターンアラウンドタイム
が該タスクの性質に依存されないようにすることができ
る。
なお、以上の説明において、「自ら演算プロセッサ6上
での実行権を放棄する」ということは、制御プロセッサ
5上のプロシジャ呼出しのみならず、演算プロセッサ6
上での事象待ちのために事象待タスクキューにキューイ
ングされることであっても良い。
〔発明の効果〕
以上説明したように、本発明は、自ら演算プロセッサ上
での実行権を放棄する性質を持つタスクに対し、演算プ
ロセッサ上での実行権を優先的に与えるようにすること
により、タスクの優先度を変更することなくタスクのタ
ーンアラウンドタイムをタスクの性質及びタスクのタイ
ムスライスインターバル時間に依存せず一定にできる効
果がある。
【図面の簡単な説明】
第1図は本発明を実施するマルチプロセッサシステムの
一例を示すブロック図、 第2図は演算プロセッサメモリ3の内容例を示す図、 第3図はタスク切替制御表示を含む制御フラグの説明
図、 第4図は演算プロセッサ6上でのタスク登録処理例の流
れ図、 第5図は演算プロセッサ6上でのタスク切替処理例の流
れ図および、 第6図は制御プロセッサ5と演算プロセッサ6における
タスク制御の流れの一例を示す図である。 図において、 1……主記憶装置、2……制御プロセッサメモリ 3……演算プロセッサメモリ 4……科学演算処理装置、5……制御プロセッサ 6……演算プロセッサ、7……入出力処理装置 8……入出力装置、30……制御データ領域 31……ユーザジョブ領域 300……実行タスクポインタ 301……実行待タスクキューの先頭ポインタ 302……タスクリンク 310……タスク状態ブロック 3020……制御フラグ 30200……タスク切替制御表示 3021……優先度

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】プロセッサ間通信手段を持ち科学演算を高
    速で遂行する演算プロセッサと、プロセッサ間通信手段
    を持ち前記演算プロセッサを制御し通常のオペレーティ
    ングシステムの持つ機能を遂行する制御プロセッサとを
    含み、タイムスライス・ディスパッチング方式を採用し
    たマルチプロセッサシステムにおいて、 前記演算プロセッサ上で実行中のタスクが自ら前記演算
    プロセッサ上での実行権を放棄し再び前記演算プロセッ
    サ上で実行可能状態になったことを、タスク単位に状態
    表示する手段と、 前記状態表示によって実行中のタスクを含めた同一優先
    順位を持つ他のタスクより優先的に前記タスクに前記演
    算プロセッサ上での実行権を与えるとともに前記状態表
    示をリセットする手段とを有することを特徴とするタス
    ク制御方式。
JP63043690A 1988-02-26 1988-02-26 タスク制御方式 Expired - Lifetime JPH0752397B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63043690A JPH0752397B2 (ja) 1988-02-26 1988-02-26 タスク制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63043690A JPH0752397B2 (ja) 1988-02-26 1988-02-26 タスク制御方式

Publications (2)

Publication Number Publication Date
JPH01217636A JPH01217636A (ja) 1989-08-31
JPH0752397B2 true JPH0752397B2 (ja) 1995-06-05

Family

ID=12670832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63043690A Expired - Lifetime JPH0752397B2 (ja) 1988-02-26 1988-02-26 タスク制御方式

Country Status (1)

Country Link
JP (1) JPH0752397B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS603229B2 (ja) * 1978-12-21 1985-01-26 株式会社東芝 情報処理方式

Also Published As

Publication number Publication date
JPH01217636A (ja) 1989-08-31

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US9870252B2 (en) Multi-threaded processing with reduced context switching
EP0644487B1 (en) Scalable system interrupt structure for a multiprocessing system
US7487503B2 (en) Scheduling threads in a multiprocessor computer
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US5490272A (en) Method and apparatus for creating multithreaded time slices in a multitasking operating system
US20050015768A1 (en) System and method for providing hardware-assisted task scheduling
US8528006B1 (en) Method and apparatus for performing real-time commands in a non real-time operating system environment
US4855899A (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
JP3644042B2 (ja) マルチタスク処理装置
JP2636722B2 (ja) マルチタスク実行管理方式
JPH0752397B2 (ja) タスク制御方式
JPH11184828A (ja) マルチプロセッサシステムのテスト方式
Mejia-Alvarez et al. Interrupt handling in classic operating systems
WO1992003783A1 (en) Method of implementing kernel functions
JP2000047881A (ja) リアルタイムシステム
JPH08314740A (ja) プロセスディスパッチ方法
Caprani et al. Implementation of real-time scheduling algorithms in a transputer environment
KR100324264B1 (ko) 실시간운영체제의인터럽트마스킹방법
WO1992003784A1 (en) Scheduling method for a multiprocessing operating system
Wang et al. Interrupt Processing and Process Scheduling
JPH0778091A (ja) マルチタスク管理方法
JPH03223955A (ja) 情報処理システム
JPH05143370A (ja) マルチタスク計算装置
JPS63208154A (ja) マルチプロセツサスケジユ−ル方式