JPS6155695B2 - - Google Patents

Info

Publication number
JPS6155695B2
JPS6155695B2 JP55086711A JP8671180A JPS6155695B2 JP S6155695 B2 JPS6155695 B2 JP S6155695B2 JP 55086711 A JP55086711 A JP 55086711A JP 8671180 A JP8671180 A JP 8671180A JP S6155695 B2 JPS6155695 B2 JP S6155695B2
Authority
JP
Japan
Prior art keywords
task dispatching
tdq
task
tde
queue
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
Application number
JP55086711A
Other languages
English (en)
Other versions
JPS5611549A (en
Inventor
Jerarudo Soruteisu Furanku
Tatsudo Taanaa Richaado
Ruisu Hofuman Roi
Jooji Kenpuku Uiriamu
Uooren Matsukarau Jon
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS5611549A publication Critical patent/JPS5611549A/ja
Publication of JPS6155695B2 publication Critical patent/JPS6155695B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
〔本発明の技術分野〕 本発明はコンピユータ・システムにおけるタス
ク処理装置に関する。本発明の主たる目的は次の
ような特徴を有するタスク処理装置を提供するこ
とである。 (a) 柔軟性ある優先順位機構を有すること。 (b) タスク・デイスパツチング要素(TDE)が
主タスク・デイスパツチング待ち行列
(PTDQ)へ戻される時、常にシステム機能が
即時に実行されること。 (c) コンピユータ・システムに新しいアプリケー
シヨンを導入しても影響が非常に小さいこと。 前記の目的は、タスク通信兼同期機構を介して
タスク指名プログラム(タスク・デイスパツチ
ヤ)を呼出すと共に、それを明示的に呼出す機構
をタスク処理装置に設けることによつて達成され
る。概して、タスクはそれ自体の応答要件を有す
る。そのため、優先順位に基づいてのみ動作する
タスク処理装置は、高い優先順位のTDEがタス
ク・デイスパツチング待ち行列(TDQ)に入る
時、常にタスクの切替えが起るという点で柔軟性
に欠ける。今までのTDEは残りの作業量が少な
い時でも、高順位のタスクを走らせるために、そ
の資源の制御を放棄しなければならない。その
後、その優先順位がTDQの中で再び最高のもの
になつた時、その作業を完了するのに必要な資源
を再捕捉しなければならない。そのような構成
は、比較的に多数のタスク切替えが生じるので、
非常に能率が悪くなる傾向がある。 本発明においては、複数のTDQが設けられ
る。その中の1つは主TDQであり、他のものは
副TDQである。主TDQはI/Oタスクや記憶管
理タスクの如くシステム形タスクがデイスパツチ
(指名)可能になつた時に走らねばならないTDE
をロードされ、副TDQはアプリケーシヨン形タ
スクをロードされる。タスクの指名(デイスパツ
チ)は主TDQから優先順位に基づいて起る。タ
スク・デイスパツチヤ(タスク指名プログラム)
が明示的に呼出されると、タスクの指名は主
TDQ又は副TDQへ切替えられる。主TDQへの戻
りが生じるのは、TDEが主TDQへ戻されてそれ
により先取りのタスク切替えを必要とする場合、
又は現在の副TDQが空になる場合、又はそのよ
うな戻りの明示的命令が実行される場合である。
副TDQからのタスク切替えは同様に優先順位に
基づいて起るが、副TDQ相互間では先取りのタ
スク切替えは生じない。 タスク指名プログラムはTDQデイスパツチ命
令によつて明示的に呼出される。TDEの任意の
命令ストリームがTDQデイスパツチ命令を含む
ことができるが、通常、主TDQ上にあるスケジ
ユーリング機構TDEのスケジユーリング・プロ
グラムがTDQデイスパツチ命令を発する唯一の
プログラムである。 〔背景の技術〕 関連特許出願第53−77554号(特開昭54−
18640)に開示されるコンピユータ・システムの
タスク指名装置は、CPUタスクに対して1個の
優先順位決定機構を有し入出力タスクに対して他
の優先順位決定機構を有する先行技術のシステム
の改善を与えるものである。即ち、上記の出願に
おいては、優先順位決定機構はCPU及び入出力
(I/O)タスクに関して共通である。しかし、
タスク指名は優先順位に従つて行われ、タスク指
名プログラムは明示的に呼出され得なかつた。そ
れはタスク通信兼同期機構を介してのみ呼出され
た。その構成では、本発明よりもパフオーマンス
を低下させる結果となつた。何故ならば、それは
タスクの切替えを最少にするものではなかつたか
らである。更に、その構成は、本発明と比較し
て、コンピユータ・システムの新しい適用業務を
導入するに当つて影響を受けること大であつた。 本発明は、複数のTDQを使用するために、パ
フオーマンスを高める。TDQの1つは主タス
ク・デイスパツチング待ち行列(主TDQ)であ
り、他の全ては副タスク・デイスパツチング待ち
行列(副TDQ)である。主TDQはデイスパツチ
可能となつた時に走らねばならないTDE(例え
ばI/Oタスク、記憶管理タスクなどのシステム
形タスク)をロードされ、副TDQは適用業務形
タスクをロードされる。副TDQからのタスク指
名は、その待ち行列の上のTDEに関して優先順
位に従つて行われるとは言え、副TDQ相互間で
は優先順位の先取りは生じない。かくて、もし1
つの適用業務形タスクが走つていれば、それは他
の副TDQの上にある他の適用業務形タスクによ
つて先取りされることはない。しかし、それは主
TDQ上でデイスパツチ可能となつたシステム形
タスク、又は同一の副TDQ上にある優先順位の
高いタスクによつて先取りされることができる。
本発明は、現在の副TDQの上にTDEが存在しな
くなつた時、又はTDEが主TDQへ戻されて先取
り的なタスク切替えを要求する時に、主TDQへ
戻る問題を解決したものである。 〔実施例の説明〕 第1A図及び第1B図には本発明を組込んでよ
いプログラム記憶式コンピユータが示されるが、
これは関連特許出願第53−77554号(特開昭54−
18640)に示されるコンピユータ・システムの変
更例である。本発明による改良の結果として、第
3図に示されるTDQデイスパツチ命令の実行を
行わせ、主TDQ及び1つ又はそれ以上の副TDQ
であつてTDEを指定されたTDQ(主及び副を含
む)へ戻す能力を持つものを含ませ、タスク・デ
イスパツチヤを呼出して、現在の副TDQが空で
ある時(即ち、副TDQ上にTDEが存在しない
時)、主TDQからタスクを指名する機構を含ませ
るため、先行技術のコンピユータ・システムに変
更を必要とし、更にTDQの行先フイードを検査
しTDEを指定されたTDQへ戻すためSEND(送
信)機構の変更を必要とする。RECEIVE(受
信)機構は変更されない。もし現在の副TDQ上
にあるアクチブなTDEが満足されていないメツ
セージ受信命令(RECM)を実行すると、その
アクチブなTDEは副TDQから除去され、その
TDQ上に他のTDEがなければ、受信機構は主
TDQへ切替えを行うためにタスク・デイスパツ
チヤを呼出す。 次の表はタスク状態(活動)の変移を示す。
【表】 第1A図のコンピユータ・システムは主TDQ
のアドレスを記憶する記憶アドレス・レジスタで
あるPTDQ@SAR159を含み、他方、TDQ
@SAR52は現在使用されているTDQのアドレ
スを含む記憶アドレス・レジスタである。第3図
に示されるようなTDEはTDQアドレス・フイー
ルド(TDQアドレス)を含むように変更され
る。そのアドレス・フイールドはTDEを入れる
べきキユーを指定する。ここで@は主記憶装置ア
ドレスを表わす。PTDQ@SAR159はSARア
レイ50の他のレジスタと同じようにして選択さ
れる。即ち、それはバス101上に与えられる制
御装置100からのアドレスによつて選択され
る。 最初、TDQ@SAR52及びPTDQ@SAR15
9は同じアドレスを有する。そのアドレスによつ
て指定される主記憶装置(MS)のロケーシヨン
にはTDE連鎖アドレスが含まれ、これは主記憶
装置10からフエツチされて現在のTDE@SAR
(CTDE@SAR)53へ入れられる。CTDE
@SAR53から取出された現TDEアドレスは
OP1@SAR54へ転移される。次いでOP1@SAR
54に含まれるTDEアドレスは2ワードだけ増
進されて、TDEに含まれる命令アドレス・フイ
ールド(IA)を指すようにされる。上記の2ワ
ードの増進は、関連特許出願第53−77554号に記
載されるようにして行われる。現TDEの命令ア
ドレス・フイールドはスケジユーリング・プログ
ラムの1つの命令を指定することができ、このス
ケジユーリング・プログラムはその命令ストリー
ム中に第3図に示されるようなTDQデイスパツ
チ(DTDQ)命令を含むことができる。 DTDQ命令はカウント受信(RECC)命令と同
じ形式を有する。それはOPコード(動作コー
ド)及びOP1(オペランド1)フイールドを含む
が、フイールドはプランクである。OP1フイー
ルドは指定されたTDQのアドレスを含む。この
オペランドが主記憶装置10からフエツチされる
と、それはDTDQ命令のフエツチの間にSAレ
ジスタ36へロードされる。フエツチが終ると
(第6図及び第8図参照)、動作はDTDQサイクル
(第7図)へ切換えられ、最初のサイクルとして
T2サイクルが起る。それはSAレジスタ36の内
容をTDQ@SAR52へ転送する。次いでS1記憶
サイクルがとられ、それは新しく指定された現
TDQにあるトツプTDEのアドレスをSBレジスタ
37へ入れる。次いでA1演算サイクルが実行さ
れ、CTDE@SAR53にある現TDEアドレス
と、新しい指定されたTDQ上にあるトツプTDE
のアドレスとが比較される。この動作の結果とし
て、AZラツチ96がテストされ、もしラツチ9
6がセツトされていれば、動作はフエツチへ切
換えられ、次のシーケンシヤルな命令がフエツチ
される。もしAZラツチ96がセツトされていな
ければ、Dラツチ93が制御ユニツト100によ
つてセツトされ、動作はフエツチへ切替えられ
る。しかしDラツチ93がセツトされていれば、
第6図、第9A図、第9B図に示されるようなデ
イスパツチ・サイクルがとられ、タスクの切替え
が行われる。 第9A図及び第9B図のデイスパツチ・サイク
ルについて説明する。これは関連特許出願第53−
77554号に含まれたものを変更したものである。
Dラツチ93がリセツトされ、主記憶装置10を
アドレスするために指定された副TDQアドレス
が使用される。SAの記号は記憶アドレスを表わ
し、MSの記号は主記憶装置を表わす。アドレス
されたロケーシヨンの内容(即ち、TDE連鎖ア
ドレス)はSAレジスタ36へロードされる。次
いでA2 CPUサイクルが実行され、SAレジスタ
の内容(即ち、TDE連鎖アドレス)がゼロであ
るかどうかを決定する。もしそれがゼロであれ
ば、AZラツチ96(第1B図)がセツトされ、
そうでなければAZラツチ96はリセツトされ
る。AZラツチ96がセツトされていれば、それ
は副TDQが空であることを示し、以下の説明で
明らかになるように、PTDQ@SAR159から
TDQ@SAR52へPTDQアドレスをロードする
ことによつて、現TDQアドレスが変更される。
これはT2サイクルを実行することによつて達成
される。T2サイクルは主TDQのアドレス(即
ち、SAR159の内容)をSBレジスタ37へロ
ードし、現TDQアドレス及び主TDQアドレスの
比較を可能にする。次いで、A1サイクルがとら
れ、現TDQアドレス(即ち、レジスタ36の内
容)と主TDQアドレス(即ち、レジスタ37の
内容)とが比較される。次いでAZラツチ96が
テストされ、それがセツトされていれば、中央処
理ユニツトは待ち状態に入る。AZラツチ96が
セツトされていなければ、T3サイクルがとら
れ、SBレジスタ37の内容がTDQ@SAR52へ
転送される。それによつて主TDQアドレスは現
TDQアドレスとなり、動作は、現TDQアドレス
を使用して主記憶装置10からTDEをフエツチ
するため、SAレジスタ36がTDE連鎖アドレス
をロードされた場所へ戻される。現TDQアドレ
スは今や主TDQアドレスになつている。勿論、
副TDQが空でなかつたならば、AZラツチ96は
セツトされておらず、デイスパツチ・サイクル
は、関連特許出願第53−77554号に説明されるよ
うにして、S1 CPUサイクルとして進行する。 主TDQにあるTDEの命令ストリーム中の
DTDQ命令の実行は第15図に示される。最初、
PTDQ@SAR159及びTDQ@SAR52の双方
は主TDQの同じロケーシヨンを指していること
が分る。このロケーシヨンは主TDQ上の最高優
先順位のTDEを指すTDE連鎖アドレスを含む。
この最高優先順位TDEは現TDEでもあり、よつ
てそれはCTDE@SAR53によつても指示され
る。現TDEは主記憶装置10の中に関連する命
令ストリームを有し、実行されつつある命令は
DTDQ命令である。その命令のOP1フイールドは
副TDQのTDQロケーシヨンを指定する。TDQ
@SAR52はその副TDQを指定するために更新
される。その副TDQロケーシヨンはTDE連鎖ア
ドレスを有し、その連鎖アドレスはその副TDQ
上の最高優先順位TDEを指定する。CTDE
@SAR53は副TDQ上の最高優先順位TDEを指
定するために更新される。次いで、その最高優先
順位TDEの命令ストリームは、タスクの切替え
が生じた後に実行を開始する。 第16図は副TDQ上の最高優先順位TDEのた
めの命令ストリームがメツセージ送信
(SENDM)命令を出す有様を示す。メツセージ
送信命令の詳細は関連出願第53−77554号に記載
されているが、そのOP1フイールドは送受信待ち
行列(SRQ)を指示する。SRQはイナクチブの
待機TDEをその上にエンキユーされている。本
発明によつて変更された送信機構はイナクチブ待
機TDEのTDQアドレス・フイールドを使用する
が、それはそのTDEを、優先順位に従つて、指
定されたTDQ(この場合、主TDQ)へエンキユ
ーするためである。これは先ずSRQからイナク
チブ待機TDEを除去する除去サイクルを実行
し、次いで除去されたTDEを優先順位に従つて
主TDQへ挿入する挿入サイクルを実行すること
によつて達成される。 関連特許出願第53−77554号に説明される除去
サイクルは本発明のために変更される。第14A
図及び第14B図に示される除去サイクルはT2
CPUサイクルから始まる。T2 CPUサイクルの前
に、SAレジスタ36(第1A図)はSRQ(第3
図)の第2フイールド(即ち、TDE連鎖アドレ
ス)をロードされていることに注意されたい。こ
れはメツセージ送信命令のフエツチ・サイクル
で生じたものである。PCH@SAR56(第1A
図)は、除去サイクルの直前にメツセージ送信実
行サイクルで、同じSRQの第2フイールドのア
ドレスをロードされている。T2 CPUサイクルの
間、CCH@SAR57(第1A図)はSAレジスタ
36の内容をロードされる。CCH@SAR57は
処理されつつある現TDEのアドレスを入れるた
めに設けられる。T2 CPUサイクルの次のA2
CPUサイクルが続く。そのサイクルでは、CCH
@SAR57の内容が検査され、それがゼロであ
るかどうかが決定される。これはSRQ上にTDE
があるかどうかを決定するためになされる。第1
6図において、TDEはSRQ上にエンキユーされ
ており、従つてCCHアドレスはゼロでなく、AZ
ラツチ96(第1B図)はALU45によつてセ
ツトされない。 次いで、SAR57のCCHアドレス(処理され
つつあるTDEのアドレス)を使用してSRQ上に
エンキユーされているTDEの優先順位フイール
ドをフエツチし、CCHアドレスを増進するた
め、S1 CPUサイクルがとられる。主記憶装置1
0から検索された優先順位フイールドはSAレジ
スタ36へ置かれる。次いでA1サイクルがとら
れ、SAレジスタ36からSBレジスタ37の内容
が減算される。レジスタ37はSRQのTDE連鎖
アドレスをロードされている。かくて、もし減算
動作の結果がゼロであれば、TDEはSRQ上にエ
ンキユーされている最後のTDEである。 次いで、主記憶装置10から現在の連鎖アドレ
ス(CCH@)をフエツチしてそれをSAレジスタ
36に置くためにS1サイクルがとられる。現在
の連鎖アドレスは減少される。次いでAZ及びST
ラツチ96,97(第1B図)が次の動作サイク
ルを決定するために解読される。本実施例の場
合、SRQから除去されつつあるTDEはSRQにあ
る唯一のTDEである。従つてAZラツチ96はセ
ツトされ、STラツチ97はリセツトされてい
る。この条件は次の動作をしてS2 CPUサイクル
をとらせ、SAレジスタ36の内容が主記憶装置
10へ書込まれて、PCHアドレスが記憶され
る。S、R、RTの各ラツチ87,88,98
(第1B図)が制御装置100によつて解読され
る。本実施例の場合、Sラツチ87はリセツトさ
れ、R及びRTラツチ88及び98はセツトされ
ている。かくて、次の動作は、T2サイクルで
CCH@SAR57の内容をOP2(オペランド2)
@SAR55へロードすることである。制御装置
100は動作を挿入サイクルへ切替えるための適
当な条件を設定しつつある。 次いでSラツチ87がテストされ、もしそれが
セツトされていれば、A2 CPUサイクルがとられ
て、OP2@SAR55の内容へ20が加えられ、その
結果がOP2@SAR55へ戻される。OP2@SAR5
5のアドレスが20だけ増進されるのは、SRQか
ら除去されたばかりのTDEのTDQアドレス・フ
イールドを指示するためである。TDQアドレ
ス・フイールドは、そのTDEをエンキユーすべ
きTDQを指定するアドレスを含む。次いで、
OP2@SAR55によつて指示された主記憶装置1
0からTDQアドレス・フイールドをフエツチ
し、それをSBレジスタ37へロードするため
に、記憶サイクルがとられる。次いでA2 CPUサ
イクルが実行され、OP2@SAR55から20が減算
されて、SAR55のOP2(オペランド2)アドレ
スが除去されたTDEの第1フイールドを指示す
るようにされる。次いで、A1サイクルがとられ
て、除去されたTDEが1次TDQへ送られつつあ
るかどうかが決定される。ここはPTDQ@SAR1
59の内容とSBレジスタ37の内容との排他的
OR結合することによつて達成される。*は条件
コードのセツトを示す。 A1 CPUサイクルに続いて、AZラツチ96
(第1B図)がテストされ、もしそれがセツトさ
れていれば、それは除去されたTDEが1次TDQ
へ向けられたものであることを示し、もし上記ラ
ツチがリセツトされていれば、それは除去された
TDEが2次TDQへ向けられたものであることを
示す。第16図に示されるように、もし除去され
たTDEが1次TDQへ向けられたものであれば、
PTDQ@SAR159の内容はT2 CPUサイクルに
よつてSBレジスタ37へロードされる。次いで
T3 CPUサイクルが実行され、SBレジスタ37
の内容が現在のTDQ@SAR52へ転送される。
これはDラツチ93がセツトされた後にフエツ
チ・サイクルがとられ、タスク・デイスパツチヤ
が呼出されて1次TDQへ切替えられ、1次TDQ
上の最高優先順位TDEが指名されるためになさ
れた。 しかし現時点では、Dラツチがセツトされる前
に、T2 CPUサイクルがとられ、現在のTDQア
ドレスはSAR52からPCH@SAR56へロード
される。次のサイクルはS1 CPUサイクルであ
る。しかし、ここで注意すべきは、もしSラツチ
87がリセツト状態にあつたならば、A2 CPUサ
イクルが実行されており、OP1@SAR54の内容
へ1が加えられ、その結果がOP1@SAR54へ戻
されていることである。この動作の目的はTDE
連鎖アドレス・フイールドを指示することであ
る。次いで、上記のA2 CPUサイクルの次にT2
CPUサイクルが続く。それはOP1@SAR54の
内容をPCH@SAR56へ転送するためである。
次いで、S1 CPUサイクルがとられ、OP2@SAR
55中のアドレスによつて指示された主記憶装置
(MS)10のロケーシヨンの内容がフエツチさ
れ、それがSBレジスタ37へロードされる。
SAR55中のOP2アドレスは増進され、SAR5
5へ戻される。次いでS1サイクルがとられ、SA
レジスタ36はPCH@SAR56中のアドレスに
よつてアドレスされた主記憶装置10のロケーシ
ヨンの内容をロードされる。 次いで動作は挿入サイクルへ切替えられる。挿
入サイクルは除去されたTDEを優先順位に従つ
て指定されたTDQ(この場合、1次TDQ)へ挿
入する。挿入サイクルは第11図に示される。挿
入サイクルの最後の動作はS、ST、RTの各ラツ
チ87,97,98(第1B図)の解読状態によ
つて除去サイクルかフエツチ・サイクルへ導か
れる。本実施例のこの時点で、これらラツチの解
読状態は、最後の動作が除去サイクルへ切替えら
れるようなものである。除去サイクルに入ると、
前述した如くT2 CPUサイクルがとられ、次いで
A2 CPUサイクルがとられる。AZラツチ96が
テストされるが、この時点でラツチはセツトされ
ている。何故ならば、現在の連鎖アドレス・フイ
ールドはゼロであり、よつてSRQから転移され
るべきTDEはもはや存在しないからである。*
は条件コードのセツトを表わす。次いで、S及び
Rの各ラツチ87,88が制御ユニツト100に
よつて解読され、それらラツチのいずれかがセツ
トされていれば、Dラツチ93がセツトされる。
次いで、Sラツチがテストされる。もしそれがセ
ツトされていれば動作はフエツチ・サイクルへ
切替えられる。第6図に示されるように、フエ
ツチ・サイクルへ入ると、動作はデイスパツチ・
サイクルへ切替えられる。何故ならば、Dラツチ
がセツトされているからである。次いで、タスク
の切替えを行うためにデイスパツチ・サイクルが
とられ、1次TDQ上の最高優先順位TDEが指名
される。 このようにして、TDQデイスパツチ命令はタ
スク・デイスパツチヤを呼出し、任意のTDQか
らタスクを指名できることが分る。第21図に示
されるように、新しく指定されたTDQの最高順
位TDEが現TDE(CTDE)であれば、現TDEに
あるプログラム事象監視モード・ビツトのセツト
状態に従つて、プログラム事象監視(PEM)モ
ードが能動化又は無能化され、次いで次のシーケ
ンシヤルな命令が実行される。そうでなければ、
タスク・デイスパツチヤが呼出される。かくて、
現TDQアドレスを変更することに加えて、TDQ
命令は現在のタスクのためにプログラム事象を監
視したり監視しなかつたりするために使用され
る。 暗黙又は明示の送信命令が生じて(第17図及
び18図参照)、主TDQであつて現TDQではない
ものの上にTDEが置かれ、又はTDEが現TDEよ
りも高い優先順位で現TDQの上に置かれる時、
タスク・デイスパツチヤが呼出される。暗黙又は
明示の受信動作が生じ(第19図及び第20図参
照)、その受信が満足されない時、同様にタス
ク・デイスパツチヤが呼出される。その場合、現
TDEは現TDQから除去され、受信機能を実行す
る受信機構によつてSRC又はSRQ待機リスト上
に置かれる。 第5図のタスク・デイスパツチヤは、現TDQ
が空であるかどうかを検査する。もしそれが空で
あれば、タスク・デイスパツチヤは現TDQが主
TDQであるかどうかを検査する。もしそれが主
TDQであれば、CPUはTDEが主TDQの上にエン
キユーされるのを待機する待ち状態に置かれる。
もし現TDQが主TDQでなければ、主TDQは現
TDQになる。現TDQ上にある最高優先順位の
TDEは現TDEであるかどうかを検査される。も
し現TDEであれば、次のシーケンシヤルな命令
が実行される。もし現TDEでなければ、現在の
タスクの状況が記憶され、最高優先順位TDEか
らとられた新しいタスクがCPUへロードされ
る。最高優先順位TDEのアドレスは現在のTDE
@SARへ記憶され、次いでその新しいタスクの
最初の命令が実行される。かくて、現在の副
TDQが空であれば、主TDQは現TDQとなり、
TDEは送信命令によつて主TDQへ戻され、又は
主TDQを参照するTDQデイスパツチ命令が実行
されることが分る。主TDQを参照するTDQデイ
スパツチ命令が実行される時にのみ、副TDQは
現TDQになる。 次に示す表2及び表3は第10図及び第13図
に示されるカウント受信、メツセージ受信、メツ
セージ・エンキユー、カウント受信、メツセージ
受信、メツセージ・デキユーの各命令サイクル中
にセツト又はリセツトされる順序制御ラツチの状
態を示す。
【表】
【表】 【図面の簡単な説明】
第1図は第1A図と第1B図の配列を示す図、
第1A図及び第1B図は本発明を実施したコンピ
ユータ・システムのブロツク図であり、第2図は
ユーザー・タスクとI/Oタスクとの接続関係を
示した図であり、第3図はキユーイング命令とそ
の対象との形式を示した図であり、第4A図及び
第4B図は組合せられてTDQ、SRQ、SRC命令
ストリーム及び基底レジスタの相互関係を示す
図、第5図はタスク・デイスパツチヤの流れ図、
第6図は制御装置サイクル・シーケンスの相互関
係を示す図、第7図はDTDQサイクルを示す流れ
図、第8図はフエツチ・サイクルを示す流れ
図、第9図は第9A図と第9B図との配列を示す
図、第9A図及び第9B図はデイスパツチ・サイ
クルの流れ図、第10図はカウント送信
(SENDC)、メツセージ送信(SENDM)、メツセ
ージ・エンキユー(ENQM)の各実行サイクル
を示す流れ図、第11図は挿入サイクルを示す流
れ図、第12図はI/O事象サイクルを示す流れ
図、第13図はカウント受信、メツセージ受信、
メツセージ・デキユーの各実行サイクルを示す流
れ図、第14図は第14A図と第14B図との配
列を示す図、第14A図及び第14B図は除去サ
イクルを示す流れ図、第15図は実行されつつあ
る命令がDTDQ命令である場合の主TDQにおけ
るタスク・デイスパツチング要素(TDE)の命
令ストリームを示す図、第16図はTDEのため
の命令ストリームがメツセージ送信(SENDM)
命令を実行しており、SRQが主TDQへ送られる
べく待機しているTDEを有している場合の副
TDQにおけるTDEを示す図、第17図はメツセ
ージ送信命令の流れ図、第18図はカウント送信
命令の流れ図、第19図はメツセージ受信命令の
流れ図、第20図はカウント受信命令の流れ図、
第21図はTDQデイスパツチ命令の流れ図であ
る。 10……主記憶装置、15……記憶制御装置、
17……データ・レジスタ、18……アドレス・
レジスタ、30……CPU、34……SI母線アセ
ンブラ、35……命令(IS)レジスタ、36……
SAレジスタ、37……SBレジスタ、38……命
令(IL)レジスタ、39……A母線アセンブ
ラ、41……OPコード解読器、42……命令長
解読器、45……ALU、46……出力(O)レ
ジスタ、48……D母線アセンブラ、50……
SARアレイ、59……アドレス更新器、60…
…エミツト符号器、62……B母線アセンブラ、
65……条件コード・レジスタ、70……LSRア
レイ、87,88,89,92,93,94,9
5,96,97,98……順序制御ラツチ、10
0…制御装置、159……主TDQ記憶アドレ
ス・レジスタ、500……I/Oチヤネル、50
5……I/Oアダプタ、510,511……I/
O装置。

Claims (1)

  1. 【特許請求の範囲】 1 主記憶装置、中央処理ユニツト(CPU)、入
    出力装置を有するコンピユータ・システムのタス
    ク・デイスパツチング装置にして、タスク・デイ
    スパツチング要素の源と、主たる待ち行列及び副
    の待ち行列より成る複数のタスク・デイスパツチ
    ング待ち行列と、上記タスク・デイスパツチング
    待ち行列に関してタスク・デイスパツチング要素
    をエンキユーしたりデキユーしたりするタスク間
    通信手段と、現在のアクチブなタスク・デイスパ
    ツチング待ち行列から最高優先順位タスク・デイ
    スパツチング要素をデイスパツチするタスク・デ
    イスパツチング手段と、上記タスク間通信手段が
    主たるタスク・デイスパツチング待ち行列へタス
    ク・デイスパツチング要素をエンキユーしたこと
    に応答して上記主たるタスク・デイスパツチング
    待ち行列を現在のタスク・デイスパツチング待ち
    行列にする手段と、現在のアクチブなタスク・デ
    イスパツチング要素の制御の下で動作してタス
    ク・デイスパツチング待ち行列を選択しそれを現
    在のタスク・デイスパツチング待ち行列とするタ
    スク・デイスパツチング要素デイスパツチ手段と
    を具備するタスク・デイスパツチング装置。 2 特許請求の範囲1の記載において、上記タス
    ク・デイスパツチング要素の源が上記主記憶装置
    に設けられていることを特徴とするタスク・デイ
    スパツチング装置。 3 特許請求の範囲1の記載において、上記複数
    のタスク・デイスパツチング待ち行列が上記主記
    憶装置に設けられていることを特徴とするタス
    ク・デイスパツチング装置。 4 特許請求の範囲1のタスク・デイスパツチン
    グ装置が更に下記の構成要素を具備していること
    を特徴とするタスク・デイスパツチング装置。 (イ) 現在の副のタスク・デイスパツチング待ち行
    列がタスク・デイスパツチング要素を含まず空
    になつたことを検出する手段。 (ロ) 上記検出手段が空になつた現在の副のタス
    ク・デイスパツチング待ち行列を検出したこと
    に応答して上記主たるタスク・デイスパツチン
    グ待ち行列を現在のタスク・デイスパツチング
    待ち行列にする手段。 5 特許請求の範囲1の記載において、上記タス
    ク・デイスパツチング要素デイスパツチ手段が現
    在のタスク・デイスパツチング待ち行列として副
    のタスク・デイスパツチング待ち行列を選択する
    ことを特徴とするタスク・デイスパツチング装
    置。 6 特許請求の範囲1の記載において、上記タス
    ク・デイスパツチング要素デイスパツチ手段が現
    在のタスク・デイスパツチング待ち行列として主
    たるタスク・デイスパツチング待ち行列を選択す
    ることを特徴とするタスク・デイスパツチング装
    置。
JP8671180A 1979-07-03 1980-06-27 Task dispatching apparatus Granted JPS5611549A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/054,508 US4286322A (en) 1979-07-03 1979-07-03 Task handling apparatus

Publications (2)

Publication Number Publication Date
JPS5611549A JPS5611549A (en) 1981-02-04
JPS6155695B2 true JPS6155695B2 (ja) 1986-11-28

Family

ID=21991578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8671180A Granted JPS5611549A (en) 1979-07-03 1980-06-27 Task dispatching apparatus

Country Status (5)

Country Link
US (1) US4286322A (ja)
EP (1) EP0021146B1 (ja)
JP (1) JPS5611549A (ja)
BR (1) BR8004161A (ja)
DE (1) DE3069585D1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3420316C2 (de) * 1983-05-31 1997-01-09 Canon Kk Verfahren zur Steuerung eines Kopiergeräts
EP0243402B1 (en) * 1985-10-15 1991-01-02 Unisys Corporation A special purpose processor for off-loading many operating system functions in a large data processing system
US5060140A (en) * 1986-01-16 1991-10-22 Jupiter Technology Inc. Universal programmable data communication connection system
JPS62176657A (ja) * 1986-01-28 1987-08-03 Nippon Steel Corp 遠心鋳造複合ロ−ルの製造法
US4837688A (en) * 1986-07-25 1989-06-06 International Business Machines Corporation Multi-channel shared resource processor
EP0257655B1 (en) * 1986-08-28 1994-07-06 Nec Corporation Multitask processing apparatus
US4829425A (en) * 1986-10-21 1989-05-09 Intel Corporation Memory-based interagent communication mechanism
US4980824A (en) * 1986-10-29 1990-12-25 United Technologies Corporation Event driven executive
US5010482A (en) * 1987-07-02 1991-04-23 Unisys Corp. Multi-event mechanism for queuing happened events for a large data processing system
US5193196A (en) * 1988-04-04 1993-03-09 Hitachi, Ltd. Process request arbitration system which preferentially maintains previously selected process request upon receipt of a subsequent request of identical priority
US5057997A (en) * 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
EP0403229A1 (en) * 1989-06-13 1990-12-19 Digital Equipment Corporation Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors
US5297283A (en) * 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5452452A (en) * 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
WO1992003784A1 (en) * 1990-08-23 1992-03-05 Supercomputer Systems Limited Partnership Scheduling method for a multiprocessing operating system
US5630128A (en) * 1991-08-09 1997-05-13 International Business Machines Corporation Controlled scheduling of program threads in a multitasking operating system
US5247675A (en) * 1991-08-09 1993-09-21 International Business Machines Corporation Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system
FR2683344B1 (fr) * 1991-10-30 1996-09-20 Bull Sa Systeme multiprocesseur avec moyens microprogrammes pour la repartition des processus aux processeurs.
US5333319A (en) * 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
JP2516317B2 (ja) * 1992-10-13 1996-07-24 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理システムとディジタル信号プロセッサへのロ―ディング方法
US5625845A (en) * 1992-10-13 1997-04-29 International Business Machines Corporation System for facilitating continuous, real-time, unidirectional, and asynchronous intertask and end-device communication in a multimedia data processing system using open architecture data communication modules
US5940612A (en) * 1995-09-27 1999-08-17 International Business Machines Corporation System and method for queuing of tasks in a multiprocessing system
KR20000064491A (ko) * 1995-12-19 2000-11-06 에를링 블로메, 타게 뢰브그렌 명령처리기용작업스케줄링
US5999963A (en) * 1997-11-07 1999-12-07 Lucent Technologies, Inc. Move-to-rear list scheduling
US7437725B1 (en) * 1999-01-04 2008-10-14 General Electric Company Processing techniques for servers handling client/server traffic and communications
US6484224B1 (en) * 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
US7099855B1 (en) 2000-01-13 2006-08-29 International Business Machines Corporation System and method for electronic communication management
US8290768B1 (en) 2000-06-21 2012-10-16 International Business Machines Corporation System and method for determining a set of attributes based on content of communications
US6408277B1 (en) * 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US9699129B1 (en) 2000-06-21 2017-07-04 International Business Machines Corporation System and method for increasing email productivity
US7644057B2 (en) 2001-01-03 2010-01-05 International Business Machines Corporation System and method for electronic communication management
US7178147B2 (en) * 2001-09-21 2007-02-13 International Business Machines Corporation Method, system, and program for allocating processor resources to a first and second types of tasks
GB2388213A (en) * 2002-04-30 2003-11-05 Innovation Ct Improvements relating to task dispatch in priority pre-emptive real-time operating systems
US7389230B1 (en) 2003-04-22 2008-06-17 International Business Machines Corporation System and method for classification of voice signals
US8495002B2 (en) 2003-05-06 2013-07-23 International Business Machines Corporation Software tool for training and testing a knowledge base
US20050187913A1 (en) 2003-05-06 2005-08-25 Yoram Nelken Web-based customer service interface
US7392524B2 (en) * 2004-04-06 2008-06-24 International Business Machines Corporation Method, system, and storage medium for managing computer processing functions
CN100535862C (zh) * 2004-11-30 2009-09-02 皇家飞利浦电子股份有限公司 优先化任务之间的有效切换
CN111124625B (zh) * 2018-10-30 2024-03-26 阿里云计算有限公司 任务队列的处理方法和装置以及存储介质
CN111221638B (zh) * 2020-01-03 2023-06-30 北京字节跳动网络技术有限公司 并发任务的调度处理方法、装置、设备和介质
US11570176B2 (en) 2021-01-28 2023-01-31 Bank Of America Corporation System and method for prioritization of text requests in a queue based on contextual and temporal vector analysis

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US408422A (en) * 1889-08-06 Signors to the mast
US3530438A (en) * 1965-12-13 1970-09-22 Sperry Rand Corp Task control
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3735357A (en) * 1970-09-18 1973-05-22 Ibm Priority system for a communication control unit
US3774163A (en) * 1972-04-05 1973-11-20 Co Int Pour L Inf Hierarchized priority task chaining apparatus in information processing systems
FR2253428A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3961313A (en) * 1974-12-04 1976-06-01 International Business Machines Corporation Computer control apparatus
US4001783A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Priority interrupt mechanism
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4059851A (en) * 1976-07-12 1977-11-22 Ncr Corporation Priority network for devices coupled by a common bus
US4152761A (en) * 1976-07-28 1979-05-01 Intel Corporation Multi-task digital processor employing a priority
DE2645593B2 (de) * 1976-10-07 1980-05-29 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Verfahren zur prioritätsgesteuerten Unterbrechung einer Datenverarbeitungsanlage
US4177513A (en) * 1977-07-08 1979-12-04 International Business Machines Corporation Task handling apparatus for a computer system

Also Published As

Publication number Publication date
JPS5611549A (en) 1981-02-04
EP0021146A3 (en) 1981-07-22
US4286322A (en) 1981-08-25
DE3069585D1 (en) 1984-12-13
EP0021146B1 (en) 1984-11-07
EP0021146A2 (en) 1981-01-07
BR8004161A (pt) 1981-01-21

Similar Documents

Publication Publication Date Title
JPS6155695B2 (ja)
CA1103368A (en) Task handling apparatus for a computer system
CA2074633C (en) Real-time, concurrent, multifunction digital signal processor subsystem for personal computers
EP0087978B1 (en) Information processing unit
US7020879B1 (en) Interrupt and exception handling for multi-streaming digital processors
US6182120B1 (en) Method and system for scheduling queued messages based on queue delay and queue priority
US5247671A (en) Scalable schedules for serial communications controller in data processing systems
US20100153957A1 (en) System and method for managing thread use in a thread pool
Pyarali et al. Evaluating and optimizing thread pool strategies for real-time CORBA
US20090282407A1 (en) Task switching apparatus, method and program
US5625846A (en) Transfer request queue control system using flags to indicate transfer request queue validity and whether to use round-robin system for dequeuing the corresponding queues
US20090158293A1 (en) Information processing apparatus
KR20020020186A (ko) 내장형 프로세서 복합체, 네트워크 프로세싱 시스템 및인스트럭션 실행 제어 방법
WO1985002038A3 (en) Microcomputer
WO1984004188A1 (en) Microcomputer with interprocess communication
US4837688A (en) Multi-channel shared resource processor
US9507654B2 (en) Data processing system having messaging
CN120540791A (zh) 中断驱动微调度器中的抢占
WO2020080882A1 (en) Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof
CN109426562B (zh) 优先级加权轮转调度器
WO2000070482A1 (en) Interrupt and exception handling for multi-streaming digital processors
JP2693916B2 (ja) タスクスケジュール方法
JP2008537248A (ja) デジタルシグナルプロセッサ上でのマルチタスクの実施
EP0297892A2 (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
Burgess et al. Bed: A multithreaded kernel for embedded systems