JPH031698B2 - - Google Patents

Info

Publication number
JPH031698B2
JPH031698B2 JP61201905A JP20190586A JPH031698B2 JP H031698 B2 JPH031698 B2 JP H031698B2 JP 61201905 A JP61201905 A JP 61201905A JP 20190586 A JP20190586 A JP 20190586A JP H031698 B2 JPH031698 B2 JP H031698B2
Authority
JP
Japan
Prior art keywords
task
vector
cpu
affinity
cpus
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
JP61201905A
Other languages
English (en)
Other versions
JPS6275739A (ja
Inventor
Henrii Eritsuto Jon
Aren Furei Jefurii
Shin Tan Ii
Henrii Waanesu Jeemusu
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 JPS6275739A publication Critical patent/JPS6275739A/ja
Publication of JPH031698B2 publication Critical patent/JPH031698B2/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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 本発明を以下の順序で説明する。
A 産業上の利用分野 B 従来技術及び問題点 C 問題点を解決するための手段 D 実施例 D1 ベクトル制御ビツト D2 ベクトルオペレーシヨン例外 D3 アフイニテイの割当て及び解除に関する
一般的な説明 D4 タスクの認識 D5 アフイニテイ値 D6 ベクトルオペレーシヨン例外割込みの処
理 D7 SRBを用いたベクトル環境の生成 D8 アフイニテイのチエツク D9 限定的なアフイニテイの解除 D10 ベクトルのSLIH E 発明の効果 A 産業上の利用分野 本発明は複数のCPUを有するコンピユータシ
ステムにおけるタスクの割当てに関するものであ
る。
B 従来技術および問題点 CPUにおいて走行するオペレーテイングシス
テム(例えばMVSやVM)は一般にプログラマ
であるユーザのための複数の資源を管理する。オ
ペレーテイングシステムは、所与のタスク(例え
ばI/O)を完了するのに要する時間よりも長い
期間にわたつて、ユーザプログラムの資源の利用
禁止を試行する。オペレーテイングシステムは、
資源管理を容易化しようとするアルゴリズムを有
する。資源はCPU上に設置することができ、作
業の一単位であるタスクはそのCPU上でデイス
パツチできる。アドレスを空間内にあつて、タス
ク制御ブロツク(TCB)又はサービスルーチン
ブロツク(SRB)で記述されるタスクは、資源
の接続されたCPUとのアフイニテイ(affinty)
を有する。アフイニテイとは、ここでは例えば資
源を有するCPUとタスクとの間における関連性
(近密性)をいう。
オペレーテイングシステムは、マイクロプログ
ラミングに必要な制御を提供する監視制御プログ
ラム(SCP)と、そのCPUにおける1つのルー
チンであつて実行準備の完了した優先度最高の作
業単位に制御権を与えるデイスパツチヤとを有す
る。デイスパツチ可能な作業単位はTCB及び
SRBで記述される。オペレーテイングシステム
は、さらに、ジヨブ(タスク)のフローを管理す
るジヨブエントリサブシステム(JES)のジヨブ
を要求するジヨブスケジユラーと、1つのタスク
が1つの資源を使用する時間量を報告して時間外
に資源が利用されていないことを検出するための
ジヨブ/ステツプタイマ(JST)とを有する。
JSTはCPUのタイマが損傷しない限りデイスパ
ツチヤによつて呼び出される。システム資源マネ
ジヤ(SRM)はシステム資源へのアクセス権を
制御する。例えば、SRMはどのアドレス空間を
スワツプイン又はスワツプアウトするか、及びそ
のスワツプイン又はスワツプアウトをいつ行うか
を決定する。メモリ切換機構は別のアドレス空間
に切換えること又は特定のアドレス空間において
作業の探索を開始することをデイスパツチヤに知
らせる。
密結合による多重プロセツサ構成はオペレーテ
イングシステムが資源とみなす複数のハードウエ
ア構成要素から成る。“再構成”とは、これらの
ハードウエア構成要素の構成を変更するプロセス
をいう。これには、オンライン又はオフラインの
システム資源を変更すること、対応する物理的な
構成を確立するためCPUの構成制御パネル上の
所定の制御スイツチを切換えることも含まれる。
上記の特徴を利用するMVSオペレーテインシ
ステムの要素は例えばIBMの刊行物“OS/VS2
MVS Overview”(GC28−0984−1)に記載さ
れている。
オペレーテイングシステムは複合式データ処理
システムであるCEC(Central Electronic
Complex)において密結合されたCPUに作業
(work)をデイスパツチする機能も提供できる。
これがアフイニテイ作業デイスパツチングの基本
的な概念であり、例えば、ユーザが他の異なるデ
ータ処理システムのために書かれたプログラムを
実行するようCECに要求する場合に実現される。
CEC又はエミユレーテイングシステムは異なる
(エミユレートされた)データ処理システムとし
て同じデータを受諾し、同じプログラムを実行
し、同じ結果を得る。エミユレートされたデータ
処理システムに書かれたユーザプログラムを首尾
よく実行するのに必要なエミユレータは多重プロ
セツサ環境における複数のプロセツサ上で非対称
的に設置される。設置されたエミユレータを有す
るCPU上でデイスパツチされるユーザプログラ
ム(またはタスク)は、ユーザプログラマではな
くシステムプログラマの保持するプログラム特性
テーブル(PPT)によつてそのCPUに割り当て
られる。換言すれば、エミユレータの使用を必要
とする作業をCPU(接続されたエミユレータを有
する)にデイスパツチさせないようにする唯一の
方法は、CPU上に設置されているエミユレータ
をそのCPUかる切断するためにシステムプログ
ラマがPPTのエントリを変更することである。
PPTを使用するのは拘束が多くユーザにとつて
はやつかいなことである。何故なら、エミユレー
タのステータスの可能な変更(オンライン、オフ
ライン等を問わない)、すなわち、CECの資源を
利用する目的で作業単位のデイスパツチごとにタ
スクアフイニテイを動的に解除(及び再生成)す
ることができないからである。CECは、ほぼ等
しい実行率を有する1ないしN個のCPUから成
る。
設置されたエミユレータを有するCPUとのタ
スクのアフイニテイは、CPUのアフイニテイイ
ンデイケータフイールドであるASC BAFFNを
調べることによつて判断できるにすぎない(解除
又は生成はできない)。このフイールドはタスク
アドレス空間のデイスパツチングの優先度を有す
るアドレス空間制御ブロツク(ASCB)内にあ
る。ASCB内のアフイニテイ標識はそれが生成さ
れる際、TCBに伝搬される。ASCBは、仮想
(主)記憶装置の先端から割り振られた共通領域
におけるシステム待ち行列領域に所在する。
ジヨブ管理言語(JCL)のステートメントにお
いて統合式アレイプレツサ(IAP)を指定するこ
とによつてユーザがその使用を直接に要求したと
きにこれを使用することができるようなコンピユ
ーターシステムもある。しかしながらこのような
コンピユータシステムでは、ベクトル命令が使用
されるということをユーザが指定しなければなら
ない。従つてプログラマはシステムの構成、特
に、そのジヨブの走行時にオンラインとなるIAP
をどのCPUが有するのかについて知つているこ
とが要求される。
C 問題点を解決するための手段 そこで、本発明は、システムプログラマ又はユ
ーザプログラマの介入なしに且つアフイニテイの
要件の変更に関する知識を要せずに、タスクを割
り当てることができるようにすることを目的とし
ている。
この目的を達成するため、タスクが実行される
複数のCPUと、複数の資源とを有し制御情報に
よりシステム資源へのアクセス権を制御するよう
にしたコンピユータシステムにおいて、本発明の
タスク割当て方法は、(a)複数のCPUのうちの1
つのCPUで走行するタスクにおいて、資源を必
要とする特定命令を発行するステツプと、(b)この
特定命令が発行されたことにより割込み条件が発
生され且つ前記1つのCPUにおいて制御情報が
資源へのアクセスの禁止を示しているとき、該
CPUにおいて特定命令オペレーシヨン例外を検
知する手段と、(c)資源が設置され且つ利用可能で
ある現にアクテイブなCPUだけにタスクの限定
的なアフイニテイを自動的に割り当てるステツプ
と、(d)タスクの限定的なアフイニテイが割り当て
られた限定的なCPUのうちの1つのCPU上でこ
のタイクをデイスパツチし、該CPUにおいて制
御情報を資源へのアクセスの許可を示すように変
更するステツプと、より成ることによりCPUに
おいて資源が設置され且つ利用可能な場合にのみ
タスクをCPUに自動的に割り当てるようにした
ことを特徴としている。
以下、本発明の作用を実施例と共に説明する。
D 実施例 はじめに本発明の実施例について概説する。
本発明の実施例は資源についてタスクのアフイ
ニテイ(affinity)を動的に割り当て及び解除す
る技術に関する。第1の割込みハンドラはハード
ウエアによつて生成される特定のタスク割込み条
件を認識する。この割込み条件は次のようなこと
に起因して発生する。すなわち、タスクが特定の
命令を発し、その特定の命令を発したCPUに特
定の資源が接続されているか又はその特定の命令
を発したCPUには特定の資源が接続されていな
いけれどもCEC(Central Electronic Complex)
における別のCPUに接続できるということであ
る。次に、第1の割込みハンドラは、現タスクの
実行を続行できるかどうかについての判断を行う
第2の割込みハンドラに制御権を渡す。現タスク
の実行が続行できるなら、第2の割込みハンドラ
は特定の環境を創設し又は再確立して、CECに
おいて接続された特定の資源を有するCPUだけ
についての特定の動的なアフイニテイでタスクが
初めて(又は再度)デイスパツチされる。この特
定のアフイニテイの割当てにより、このタスクは
接続された特定の資源を有するCPU上だけでデ
イスパツチされる。所定の期間にわたつて上記特
定の資源が使用されないことにより、そのタスク
を延期し特定のアフイニテイを解除することがで
きる。特定のアフイニテイは、最初に発行された
特定の命令の後、及び既に延期された特定のアフ
イニテイを有するタスクによつて発行された命令
の後、自動的に決定される。
ベクトルプロセツサ(VP)はCPU上に設置す
ることのできる任意選択的なハードウエアであ
る。VP(すなわち、システムの1つの資源)はそ
のCPUに対してオンライン又はオフラインで構
成されるのが普通であるが、関連するCPUとは
別に構成することもできる。VPはベクトルステ
ータスレジスタ、活動化ベクトルカウンタ、ベク
トルレジスタ、及びベクトルマスクレジスタ(以
下の説明では、それらを総称して「ベクトルレジ
スタ」ともいう)。VPは、通常の370又は370/
XAの命令セツトの中の命令についての反復実行
よりもずつと高速に所定のベクトルプロセシング
機能を遂行する“ベクトル”命令(これは特定の
命令である)のセツトを提供する。
米国特許第4400770号は多重処理構成における
4つの中央プロセツサについて開示する。1つの
VPは1つ、2つ、3つ、又は4つの中央プロセ
ツサに対してオンラインで構成することができ
る。VPは多重処理構成における1つの中央プロ
セツサのIEユニツト及び実行ユニツトに接続さ
れることとなる。
D1 ベクトル制御ユニツト IBMシステム370/XAモード及びシステム370モ
ードの両モードにおいて、ベクトルオペレーシヨ
ンはベクトル制御ビツトで管理される。このビツ
トはVPへのアクセス権を制御するものである。
VPが設置されCPUで利用可能になるとVP命
令を実行することができる。ただし、これは制御
レジスタ0(CR0)のビツト14が1(すなわちオ
ン)のときだけである。これがベクトル制御ビツ
トである。ベクトル制御ビツトがゼロのとき
CPUが1つのベクトル命令の実行を試行すると、
ベクトルオペレーシヨン例外が認識される。
ベクトル機構がこのCPU上に設置されていな
いか又は利用不可能であるが、CECにおいて存
する又は置くことのできる別のCPU上に設置さ
れているとき、VP命令を実行しようとすればベ
クトルオペレーシヨン例外が発生する。
VPがCEC内に存しないとき、VPが一定の保
守モードにあるとき、又はその電源が入つていな
いときは、VPは設置されていても、“利用不可”
とみなされる。CECにおける一部のCPUが接続
されたVPを有しないとき、そのようなCECにお
けるCPUは非対称的であるという。
オペレーテイングシステムは、ベクトルオペレ
ーシヨンのためにCPU(VPの接続されたもの)
の付勢を延期する目的、及び最初のベクトル命令
を出すことによつてタスクがVPの使用を試行す
るまでベクトル保管領域の割振りを遅延させる目
的で、CR0のビツト14を用いることができる。こ
れは重要なことである。というのは、決まつた仮
想記憶装置に存在し拡大し得るベクトル保管領域
は、ベクトル命令を実行しないタスクのために割
り振られる必要はないからである。ベクトルオペ
レーシヨン例外が発生するとそのオペレーシヨン
が取り消されるので、そのタスクを再開するのに
命令アドレスを調整する必要はない。
D2 ベクトルオペレーシヨン例外 ベクトルオペレーシヨン例外(特定の命令オペ
レーシヨン例外)は、CR0のビツト14がゼロのと
き、設置され且つ利用可能なVPを有するCPUで
ベクトル命令が出された場合に認識される。ベク
トル命令が出され且つVPが当該CPU上で設置さ
れておらず又は利用不可能だが、当該CPU又は
CECにおける別のCPU上でプログラム(タスク)
にとつて利用可能となり得るときも、ベクトルオ
ペレーシヨン例外が認識される。ベクトルオペレ
ーシヨン例外が認識されるとそのオペレーシヨン
は取り消される。
第1a図に示す如く、特定の命令オペレーシヨ
ン例外が発生すると、CPUハードウエアは現在
のプログラムステータスワード(PSW)の内容
をシステム領域26(第5図参照)にあるそのプ
ログラムの旧PSW(POPSW)に保管する。それ
から現PSWの内容に、システム領域26にある
そのプログラムの新PSW(PNPSW)の内容をロ
ードする。PNPSWはオペレーテイングシステム
によつて或る割込みハンドラを指定するようプリ
ントされる。この割込みハンドラは後出の第1レ
ベル割込みハンドラ(FLIH)である。従つて、
ベクトル制御ビツトがゼロにセツトされている
CPU上で走行する1つのタスクがベクトル命令
を出すと、ベクトルオペレーシヨン例外割込みが
発生する(そのコードはPIC X‘19'である)。
これについては後で説明する。CPUハードウエ
アは割込みによつて生ずるベクトル命令のアドレ
スである現PSWを保管し、PNSWを現PSWにロ
ードする。このPNPSWは制御権を受け取る第1
レベル割込みハンドラの最初の命令をアドレス指
定する。
D3 アフイニテイの割当て及び解除に関する一
般的な説明 プログラムがベクトル命令を実行する場合、た
とえそれが1個であつてもそのプログラムは接続
されたVPを有するCPU上で走行させなければな
らない(すなわち、そのCPUに割り当てられな
ければならない)。そのようなプログラム(タス
ク)は、命令、(ステツプ又はオペレーシヨン)
が開始されたときにそのタスクがVPを有する
CPUに割り当てられていない場合は、正当な
CPU上でデイスパツチされるとは限らない1つ
のタスクにおける最初のベクトル命令の実行が試
行されたときはそのタスクは1つのVPタスクと
して特徴付けられ、設置されたVPを有する現に
アクテイブな又はオンラインの全てのCPUとの
アフイニテイが自動的に割り当てられる。タスク
の準備が完了すると、これは接続されたVPを有
する区画内の任意のCPU(区画内の)上でデイス
パツチすることができる。タスクがCPUにおい
て実行されている間に、そのCPU(タスクは所定
の期間、例えば50ミリ秒の間のこのCPU上でデ
イスパツチされている)に接続されているVPを
使用しないときは、オペレーテイングシステムに
対してオンラインのVPを有するCPUとのタスク
のアフイニテイは自動的に解除される。タスクに
ついてのCPUのアフイニテイに関するこの動的
な割当て及び解除により、従来のアフイニテイデ
イスパツチングに関係するデイスパツチングのオ
ーバーヘツドは減少する。というのは、VPアフ
イニテイの要らなくなつたタスクをデイスパツチ
ヤはスキツプする必要がないからである。すなわ
ち、VPアフイニテイを有しないタスクはCECに
おける任意のCPUで実行できる。しかも、タス
クがもはやVPアフイニテイを必要としないとき
は、デイスパツチヤはさらに効率よく走行する。
というのは、デイスパツチヤはベクトルレジスタ
を復元する必要がなく、接続されたVPを有しな
いCPUで非ベクトルタスクが実行されるときは
特定のベクトルレジスタ命令“SAVE
CHANGED”を走行しないからである。ベクト
ル環境は要求ブロツクレベルではなくタスクレベ
ルすなわちTCBレベルでデイスパツチヤによつ
て管理される。
或るアドレス空間内にあるタスクがCPUに接
続されたVPとのアフイニテイを要求したとき、
アドレス空間2次ブロツク(ASSB)内の1つの
フイールド(ASSBVAFN)は一意的なアフイ
ニテイを示すように増分される。ASSBVAFN
がゼロなら、CPUに接続されたVPとの一意的な
アフイニテイは存在しない。この場合、アフイニ
テイはASCBAFFNを調べることによつて判断さ
れる。CECは、複数のVPを有する複数のCPUに
VPを要求する複数のタスクを割当てるのにPPT
は使用しない。何故ならPPTの使用は、一般的
なアフイニテイの指定をするものであり、この指
定はそのアフイニテイのもととしてのVPの要求
を特定するものでないからである。CPUアフイ
ニテイを指定するのにPPTが使用される場合は、
ベクトル命令を有するタスクのスケジユーリング
を防止する目的でCPU全体をジヨブスケジユー
リングするには利用できないようにしなければな
らない。
D4 タスクの認識 タスクは、接続されたVPを有するCPUを要求
するものとして認識されねばならない。プログラ
ムチエツクの第1レベル割込みハンドラ
(ELIH)はVP要求タスク割込み条件を認識する
こととなる。VP要求タスク割込み条件のプログ
ラム割込みコードはPIC X“19”であり、これは
ハードウエアで生成される。FILHは実質的には
第2レベル割込みハンドラ(後出)を指定するよ
うに変更された通常の割込みハンドラである。ベ
クトルオペレーシヨン例外の1つとして取り扱わ
れるPIC X“19”割込みは次のことの意味するも
のである。すなわち、ベクトル制御ビツトがゼロ
のときに現に実行中のタスクが有効なベクトル命
令(オペコード)の1つの実行を試行したという
ことである。プログラムステータスワードは更新
されずベクトルオペレーシヨンは取り消される。
前述の如く、ベクトル制御ビツトは、それが1の
ときベクトル命令発行の許可も示すPIC X“19”
割込みは、ベクトル命令が出されたがそのCPU
上にVPが設置されておらず又は利用できない場
合(ただし、CECにおける他のCPU上でなら利
用可能であつてもよい)にも発生する。FLIHは
まずこの割込みを認識し(すなわち、新PSWか
ら制御権を受け取つて)、次に、現タスクの実行
を続けるかどうかの判断を行う第2レベル割込み
ハンドラ(SLIH)に制御権を渡す。現タスクの
実行を続けることができる場合は、ベクトルハン
ドラであるSLIHはベクトル環境を創設し又は再
確立し、CECにおいて接続されたVPを有する
CPUとの動的に計算されたアフイニテイでその
タスクがはじめて又は再度デイスパツチされる。
特定のアフイニテイの割当てにより、接続された
VPを有するCPU上だけでこのタスクがデイスパ
ツチされる。すなわち、SLIHははじめて発行さ
れたベクトルオペレーシヨン及び前に一時休止さ
れていたベクトルアフイニテイを有するタスクに
よつて発行されたベクトルオペレーシヨンを処理
することができる。ベクトル割込みPIC X“19”
によつて或るアドレス空間のタスクがベクトルタ
スクとして識別され且つCR0のビツト14が1セツ
トされているときは、拡張された核におけるメモ
リ切換インターフエースについて考慮されるの
は、接続されたVPを有する待機中のアクテイブ
なCPUだけである。
監視制御(SC)プログラムのメモリ切換イン
ターフエースはCECにおいてVPを有する待機中
のCPUを見つけなければならない場合、共通の
システムデータ(CSD)領域のフイードである
16ビツトのマスク(CSDCPUVF)を使つて、そ
のタスクがアフイニテイを有する接続されたVP
を持つているインラインのCPUを識別する。こ
のマスクCSDCPUVFはハードウエア構成要素
(例えばVP)を構成し又は再構成している間にセ
ツトされる。CSDCPUVFの各ビツトはCECにお
ける1つのCPUを表わす。CSDCPUVFの各ビツ
トは、対応するCPUがそこにオンラインで接続
されたVPを有している場合、1にセツトされる。
接続されたVPを有する待機中のCPUが存在しな
いときは、メモリ切換インターフエースは、接続
されたVPを有する全てのオンラインのCPUに関
するPAANEWを調べて、メモリ切換の適切なタ
ーゲツトとなるVPがあるかどうか(更新された
PSAANEWがあつたかどうか)の判断をする。
PSAABEWフイールドでそのタスクのアドレス
空間制御ブロツク(ASCB)を指定する。
CSDCPUVFマスクはCECにはオンラインのVP
が存在しないことを示し、メモリ切換は何らの機
能を遂行することなく起呼側に戻ることとなる。
そうしてデイスパツチヤはそのタスクをスキツプ
する。後者の場合、別のルーチンで呼び出された
システム資源マネジヤ(SRM)はスキツプされ
たタスクがサービスされていないかどうかを判断
する。そうしてSRMはそのタスクを取り消すか
又はそのタスクを拡張式記憶装置に“スワツプア
ウト”して、VPをオンラインにすることをオペ
レータ(ユーザ)に知らせる。VPがオンライン
になつてタスクがデイスパツチされると、そのプ
ログラムのFLIHは上記の如くそれを自動的に処
理する。スケジユーラルーチンは命令がVPを使
用するかどうかの判断をすることはできない。従
つてスケジユーラルーチンはVPのの可用性に対
して命令(ジヨブステツプ)をチエツクするため
基準を持たない。汎用レジスタ0のビツト1が1
にセツトされているときはタスクがアフイニテイ
を持つているオンラインのVPだけがメモリ切替
の対象となる。このビツトはメモリ切替のインタ
ーフエースである。このビツトは使用されるのは
VPだけであることを示す。
タスクのもとの(すなわち、ほとんど限定のな
い)アフイニテイ、これはベクトル割込みの発生
する前のものである、は2次タスク制御ブロツク
(STCB)にあるSTCBARFNSフイールドに保
管される。STCBAFNSフイールドの所定の幾つ
かのビツトは接続されたVPを有する、タスクが
最後にデイスパツチされたところのCPUの論理
的なIDを有し、そのタスクがそのVPとのアフイ
ニテイを現に持つているということを示す。この
場合、VPステータスは、STCBVAFNフイール
ドが現CPUの“論理的”なプロセツサIDを有す
るとき、ハードウエアであるベクトルレジスタに
事前に保管される。STCBVAFNフイールドが
ゼロであるときは、タスクは現にVPを使用して
おらず、デイスパツチヤはそのタスクについての
ベクトルステータスをロードしないこととなる。
何故なら、VPの使用許可がなかつたからである。
この場合、ベクトルステータスはベクトルステー
タス保管領域(VSSA)に事前に保管される。
STCBはタスクに関係するアフイニテイ及びステ
ータスの情報を仮想記憶装置の16メガバイトより
上の保管領域に保持できるようにするために設け
られたものである。STCBは拡張式仮想記憶装置
において得られ、TCBと連鎖される。ステータ
ス保管ルーチンはSTCBVAFNフイールドにあ
るプロセツサIDを使つて、現プロセツサが接続
されたVPを有するCPUであつてそのタスクが最
後にデイスパツチされたCPUであるということ
を確認する。STCBVAFNフイールドは次の3
つのタイプの情報を含む。
1 X“40”ビツトに4ないし7ビツトを加えた
ものが静的論理CPUIDを表わす。これはタス
クが現にVPとのアフイニテイを有しており、
且つ、そのIDで示される接続されたVPを有す
るCPU上で最後にデイスパツチされたことを
示すものである。X“40”に4ないし7ビツト
を加えたものがゼロなら、タスクは現にVPを
使用していないか又は使用していなかつたこと
を意味する。タスクがそのVPを使用すれば
(ベクトル命令を発行すれば)、ベクトルステー
タスはVSSAに存在する。従つて、VSSMはタ
スクがVPを使用したことがあるかどうかの判
断のために調べられることとなる。
2 X“80”ビツトは、ベクトルステータス(ハ
ードウエアに関係するデータ)がマシンチエツ
クのために失われぇたとき、又はベクトルレジ
スタが保管される前にVPがオフラインになつ
たとき、1にセツトされる。これは代替CPU
回復条件である。
3 X“20”ビツトはタスクのベクトルステータ
ス(タスクのベクトル環境)がVSSAに保管さ
れたとき1にセツトされる。X“20”ビツトが
ゼロであつてCPUIDがそのフイールドにある
ときは、タスクのベクトルステータスはハード
ウエアであるベクトルレジスタ、例えば、ベク
トルステータスレジスタ(VSR)に存在する。
このビツトが1のときは、デイスパツチヤはベ
クトルステータスを再ロードすることとなる。
というのはこのビツトはタスクがVPアフイニ
テイを有するということを示すものだからであ
る。
拡張式記憶装置のアドレス空間2次ブロツク
(ASSB)にあるフルワードカウント値
(ASSBVAFN)は1つのアドレス空間内にVP
依存型のタスクが幾つあるかを判断する目的で調
べられるものである。ASSBVAFNがゼロなら、
VPを要求するタスクはない。ASSBVAFNがゼ
ロでないなら、VPとの一意的なアフイニテイを
有する少なくとも1つのタスクが、関連したアド
レス空間内で走行していることになる。
ASSBVAFNはPIN X“19”が発生したときに
SLIHによつて増分され、ベクトルタスクがタス
ク消去されるたびに減分される。これにより、ベ
クトルタスクのカウント値の動的かつ効率的な管
理が保証される。というのは、タイムシエアリン
グオプシヨン(TSO)及びスケジユーラの依存
性がなくなるからである。各アドレス空間に対し
て1つのASSBVAFNフイールドが存在する。
D5 アフイニテイ値 アフイニテイ値のフイールドである
TCBAFFNは、ASCBの1つのアドレス空間に
ついての一定のCPUアフイニテイインデイケー
タフイールドTCBAFFNと、VPのジヨブステツ
プに対して利用可能な待機中の及びアクテイブな
全てのCPUを表わすCSD中のマスクフイールド
CSDCPUVFとをANDすることによつて決定さ
れる。TCBAFFNは最初は接続の際タスクの生
成が行われたときにASCBAFFNから得られる。
TCBAFFNフイールドの内容を使用することに
よつて、デイスパツチヤはどのCPUがデイスパ
ツチの対象であるかを判断する。タスクが複数の
CPUのうちの任意の1つで実行できる場合はア
フイニテイフイールドはそのCPUのIDを示す
(そのタスクが、接続されたVPを有する1以上の
CPUとのアフイニテイを持つている場合、16個
までのCPUに対してIDを示す)。TCBAFFBNフ
イールドにある16ビツトの各々は、CECにおい
てデイスパツチできる1つのCPUを表わしてい
る。
ベクトルタスクに関するアフイニテイの値、す
なわちTCBAFFNの値は、CECにおける利用可
能なVPハードウエアのステータスに関して起こ
り得る変化を検出する目的でCSDCPUVF及び
TCBAFFNを使つてデイスパツチごとに更新さ
れ計算される。すなわち、ベクトルプロセツサ
は、最後のタスクについての優先使用の後でオン
ライン又はオフラインになる場合がある。従つ
て、デイスパツチのたびにアフイニテイをチエツ
クして、最後のデイスパツチの後でVPを有する
可能性のある付加的なCPUがオンラインになつ
たか又は除去されたかどうかが判断される。デイ
スパツチヤはこのアフイニテイのチエツクごとに
応答して非アフイニテイデイスパツチング経路と
アフイニテイ(メインライン)デイスパツチング
経路との間で切換わることができる。デイスパツ
チ時には、各タスクはCPUにおいて復元される
ハードウエアの状態を有する(通常のレジスタ)。
ベクトルタスクの場合、復元されたハードウエア
の状態(ステータス)は、セツトされた通常のレ
ジスタの他、1にセツトされた制御ビツト14
(CR0のビツト14)及びベクトルレジスタを含む。
第1b図はVPアフイニテイがいかにしてセツ
トされるかを説明する図である。
CSD内にある16ビツトのCSDCPUVFフイール
ド12は16ビツトのTCBAFFNフイールド14
と同じフオーマツトを有する。もしTCBAFFN
がX “0000”なら(これは、そのタスクが
CECの全てのCPUで走行の対象となり得ること
を示す)、その内容はX“FFFF”に変更される。
いずれにせよ、TCBAFFNフイールドの内容は
2次TCB(STCBAFNS)フイールド16に転送
される(保管される)。かくしてTCBAFFNの内
容はCSDCPUVFフイールドの内容とANDされ
て、その結果がTCBAFFNフイールドに保管さ
れる。TCBAFFNフイールドに保管されたこの
結果はそのタスクの新しい(VPの)アフイニテ
イである。このタスクは、接続されたVPを有す
るCPU(これらのCPUはTCBAFFNの値で識別
されるものである)上だけで走行しうるものであ
る。
第2図はデイスパツチヤがタスク(ベクトルタ
スクか非ベクトルタスクかを問わない)をどのよ
うにしてデイスパツチするかを説明する図であ
る。
デイスパツチヤはTCBの待ち行列をスキヤン
して作業を捜す(ステツプ200)。デイスパツチヤ
による待ち行列のスキヤンはユーザタスクの実行
の準備が完了するまで続けられる。実行の準備が
完了しているときは、準備の完了したタスク
(TCB)が対象となり得るCPUとのアフイニテイ
をもつているかどうかについてデイスパツチヤが
判断する(ステツプ210)。前述の如く、対象とな
り得るCPUはTCBAFFNフイールドによつて表
わされている。TCBAFFNフイールドの値X
“000”又はX“FFFF”は、準備の完了したTCB
がアフイニテイを持つていないということを示
す。すなわち、タスクは任意のCPU上で実行し
得る。TCBがアフイニテイを持つていないとき
は、デイスパツチヤは汎用レジスタ及び浮動小数
点レジスタのロードを行い(ステツプ220)、タス
クがデイスパツチされる。CR0のベクトル制御ビ
ツト(VCB)14はステツプ215でゼロにセツト
され、これにより、準備の完了したTCBがベク
トル命令を実行しなかつたことを示す。TCBが
アフイニテイを持つていれば、オペレーテイング
システムはステツプ225で、TCBが現CPU上でデ
イスパツチできるかどうかを判断する。TCBが
現CPU上でデイスパツチできないときには、こ
のタスクはスキツプされ、デイスパツチヤは
TCBの待ち行列のスキヤンを続けることとなる。
TCBが現CPU上でデイスパツチできるときは、
デイスパツチヤはステツプ230で、そのタスクが
現VPのユーザ(既に生成されたVSSA)である
かどうかを判断することとなる。TCBが
STCBVAFNフイールドで示されるように現VP
のユーザでないときは、そのタスクはアフイニテ
イを持たないTCBとして現CPU上でデイスパツ
チされる。TCBがSTCBVAFNフイールドで示
されるようにVPの使用を現に許可されており且
つ現CPUがVPを持つている(ステツプ230で
“はい”のとき)ときは、デイスパツチヤはベク
トル制御ビツトを1にセツトし(ステツプ235)、
このTCBに関連するベクトルレジスタのロード
を行う(ステツプ240)。これでタスクはベクトル
命令を実行することができる。デイスパツチヤは
それから汎用レジスタ及び浮動小数点レジスタの
ロードを行い(ステツプ220)、タスクをデイスパ
ツチする(制御権をユーザに渡す)。もしTCBが
現VPのユーザではあるが現CPUがVPを持つて
いないときは、タスクはバイパスされ、この
CPUに関連するTCBAFFN中のアフイニテイビ
ツトがゼロにセツトされる。
以上の説明により、スループツトが大きくなる
ことが理解されるであろう。何故なら、デイスパ
ツチ時にVP(限定された資源)を本当に必要とす
るタスクだけにその資源が与えられるからであ
る。タスクが長時間にわたつてVPを使用しなか
つた場合は、タスクはそのベクトルアフイニテイ
を解除する。従つてベクトル制御ビツトがオンに
されたとき、このタスクはもはやベクトルタスク
としてはデイスパツチされないこととなる。こう
してより限定の少ないアフイニテイを有すること
となつたタスクは1つのVPと近密にならないよ
うにCECにおける任意のCPUでデイスパツチさ
れることとなる。ベクトル命令の実行される時間
量を判断するために設けられた活動化ベクトルカ
ウントクロツクで上記“長”時間が算定される。
もしベクトル命令が最後に発行されてから50ミリ
秒経過した後(これはCPUタイマによつて測定
される)全くベクトル命令が発行されないなら
(これは活動化ベクトルカウントクロツクによつ
て判断される)、このタスクについてはベクトル
アフイニテイは自動的に解除される。
これまでの説明から次のことも理解されるであ
ろう。すなわち、オペレーテイングシステム(例
えばMVS)がVPを有するCPUとのアフイニテ
イを自動的に割り当てることである。従つてプロ
グラマはシステムの構成について知つている必要
はない。換言すれば、彼らのジヨブが走行すると
きにどのCPUがオペレーテイングシステムとオ
ンラインになつているVPを有しているのかを知
つている必要がないのである。しかも、タスクが
所定の期間にわたつてVPをを使用しない場合に
はオペレーテイングシステムはそのVPを有する
CPUとのアフイニテイを自動的に解除する。こ
れが、VP機能を必要としないタスクでVPが過負
荷になることはないという待ち行列の利点であ
る。すなわち、VPを必要としないタスクは任意
のCPU上で走行することができる。例えば、タ
スクがもはやベクトル命令を発しないなら(VP
をもはや必要としないなら)、より限定の少ない
タスクアフイニテイ(すなわち、保管されたアフ
イニテイ)が復元される。換言すれば、タスクが
以前デイスパツチされたところのCPUは、PIC
X“19”が発生し且つベクトルオペレーシヨンが
発行されたとき、STCBAFNSにそのタスクのよ
り限定の少ないものとのアフイニテイを保管した
ことになるのである。こうして、VP不使用との
理由でベクトル機能が延期されると、もとの保管
された(より限定の少ない)アフイニテイが復元
されることとなる。後の使用がVPから成るもの
であるときは、別のPIC X“19”が発生され、こ
れによりSLIHはベクトル環境を復元する。アフ
イニテイに関する以上の動的な割当て及び解除に
よれば、アフイニテイのデイスパツチに一般的に
関連するデイスパツチングのオーバーヘツドが減
少する。何故なら、VPを持たないCPU上のデイ
スパツチヤがスキツプしなければならない、限定
的なVPアフイニテイを真に必要とするようなタ
スクはわずかしかないからである。しかも、より
限定の少ないアフイニテイを有するタスクは保管
し復元すべきベクトルステータスを全く有しない
から、このことからもデイスパツチングのオーバ
ーヘツトは減少することになる。
D6 ベクトルオペレーシヨン例外割込み処理 ベクトルオペレーシヨン例外割込みを処理する
ため、交差的なメモリ環境においてベクトル例外
(PIC X“19”)が発生したときに活動化されてい
たプログラムのFLIHによつてエントリ
IEAVEVSにベクトルのSLIHが入力される。レ
ジスタ15の戻りコードX“0”は、ベクトル環
境が創立され又は復元されたという理由でそのタ
スクがプログラムのFLIHによつてLPSW(プロ
グラムステータスワードのロード)でデイスパツ
チ又は再デイスパツチされることになるというこ
とを示す。これは次の場合に生じる。すなわち、
タスクが使用することのできる接続されたVPを
有するCPU上でベクトル例外があつた場合であ
る。そこで、CSDCPUVFフイールドを調べるこ
とによつて、接続されたVPを有するCPUがCEC
において存在するかどうかがチエツクされる。も
し接続されたVPを有するCPUが存在しないとき
は、コードX“08”はFLIH(レジスタ15)に戻
る。コードX“08”は一般的には次のことを意味
する。すなわち、割り込みされたタスクについて
ベクトルのSLIHがベクトル環境の設定に成功し
なかつたということである。接続されたVPを有
するCPUが少なくとも1つ存在するときは、タ
スクがCECにおける少なくともその1つのVPと
のアフイニテイを有しているかどうかについての
チエツクがなされる。もしタスクが少なくとも1
つのVPとのアフイニテイを持つていないなら、
コードX“08”はFLIHに戻される。コードX
“08”は次のことを意味する。ベクトルのSLIH
が、割り込みされたタスクについてベクトル環境
の創設又は再確立に成功しなかつたということで
ある。プログラムのFLIHは、ベクトルオペレー
シヨン例外の処理がどのようにして終了するのか
を判断するためレジスタ15の戻りコードを使用
する。戻りコード“04”は次のことを意味する。
すなわち、接続されたVPを有しないCPU上でベ
クトル例外が発生したこと、又はベクトルの
SLIHがベクトル環境を創設するためにSRBを起
動したことである。
ローカルロツクについての条件的な要求がなさ
れる。ローカルロツクがなされると、ベクトルの
SLIHはベクトル保管領域と、ベクトルステータ
スレジスタ及びベクトルマスクレジスタの領域の
サイズを計算する。ベクトル保管領域のサイズ
は、ベクトル部分のサイズすなわちベクトルレジ
スタのエレメントのロケーシヨン数を64倍したも
のである。ローカルロツクがなされないときは、
タスクは延期され、そのタスクのベクトル環境を
創設するため接続されたVPを有するCPU上で
SRBがスケジユールされる。ベクトルステータ
ス保管領域(VSSA)はSTCBVSSAフイールド
によつて、確立され、ゼロに初期設定され、及び
指定される。VSSAへのポインタである
STCBVSSAは初めはゼロで、こねにより以前に
確立されたVSSAが全くないということを示すの
で、SLIHはベクトル環境を創設することとな
る。TCBAFFNフイールドでみつかるタスクの
もとの(より限定の少ない)CPUアフイニテイ
はSTCBAFNSフイールドで保管され、
TCBAFFNフイールドはVPとのさらに限定され
た(すなわちゼロでない)新しいアフイニテイを
有することとなる。プログラムのFLIHによつて
タスクが再デイスパツチできるとSLIHが判断し
たときは、STCBVAFNフイールドは論理的な
CPUIDにセツトされる。タスクがデイスパツチ
できないとSLIHが判断されたときは、
STCBVAFNフイールドはクリアされる。デイ
スパツチヤはTCBAFFNフイールドの内容と
CSDCPUVFフイールドの内容とをANDするこ
とによつて新たなアフイニテイ値TCBAFFNを
計算するということに留意されたい。ASSBにあ
るASSBVAFNフイールドは、タスクがCPUに
接続されたVPハードウエアとの一意的なアフイ
ニテイを要求することを示すよう増分される。
SLIHが実行されている間、ASSBVFNの保全の
ためデイスパツチヤのロツクが保持される。これ
により、VPはタスクがそれとのアフイニテイを
要求する機会を有する前にオフラインになる。ベ
クトルタスクが完了すれば、ベクトルタスクのカ
ウント値が動的かつ効率的に管理されるよう
ASSBVAFNフイールドがタスク管理によつて
減分される(DETACHED)。そうしてベクトル
のSLIHは、接続されたVPを有するCPU上でタ
スクが走行していたがどうか、すなわち、現
CPUがそのタスクの限定されたアフイニテイを
有するかどうかについて判断する。もしもその
VPが現CPUに接続されていれば(タスクが現
CPUとのアフイニテイを有していれば)、CR0の
ビツト14が1にセツトされ、論理的なCPUIDが
STCBVAFNフイールドに記憶され、VSSAのベ
クトルステータスレジスタ及びベクトルマスレジ
スタならびにベクトルレジスタのロードが行わ
れ、戻りコードX“0”がFLIH(レジスタ15)
に戻される。このコードは次のことを意味する。
すなわちベクトル環境が首尾よく創設されたこ
と、及びタスクの走行していたCPUが接続され
たVPを持つていないことである。こうしてタス
クは続行される。もし現CPUが現定的なアフイ
ニテイを有していないなら、プログラムステータ
スワード、レジスタ及び作差的メモリステータス
が保管され戻りコードX“04”で制御権がFLIH
に戻る。そうして優先使用がなされる。
第3図はタスクがいかにして最初にベクトル命
令を発する対象となるかを説明する図である。は
じめは、CR0のベクトル制御ビツト14はゼロであ
り、これによつて、ユーザがVPへのアクセス権
を持つていないこと、及びベクトル命令発行の許
可が与えられていないことを示す。
タスクが最初にベクトル命令を発行するとき、
ステツプ250でコードPIC X“19”が発生するか
どうかについて判断される。コードPIC X“19”
が発生されるとオペレーテイングシステムは次の
ことを行う。
1 ステツプ255でVSSAを割り振りこれを初期
設定する。VSSAは複数のデイスパツチの間、
タスクのベクトルレジスタ(ベクトルステータ
ス)を保持する。
2 ステツプ260で、アドレス空間におけるVPを
使用するタスクの数についてのカウント値を増
分する。このカウント値はASSBVAFNフイ
ールドで保持される。
3 ステツプ265で、このベクトルタスクがVPア
フイニテイを要求するベクトルタスクであるこ
とを示すようSTCBVAFNフイールドをセツ
トする。
4 ステツプ270で、TCBAFFNにおける(より
限定的な)タスクのベクトルアフイニテイをセ
ツトして、接続されたVPを有するCPU上だけ
でこのTCBのデイスパツチが行われることを
保証する。
こうしてて制御権がデイスパツチヤに渡され
る。現CPUがVPを持つていない場合は、タスク
はVPを有するCPUによつて選択されるまで待ち
行列上に残つていることとなる。現CPUがVPを
持つていなければ、割り込みされたタスクは実行
を再開する。
所定期間にわたつてVPを使用していないため
ベクトルアフイニテイの解除(又はリセツト)さ
れた割り込みされたタスクが別のベクトル命令を
発しその度にベクトル例外(PIC X“19”)を招
来すると、ベクトル環境が再生成(復元)され
る。ベクトル環境再生成の必要性は、VSSAが生
成されたかどうか、すなわちSTCBVSSAが非ゼ
ロかどうかを判断するためにSTCBVSSAを調べ
ることによつて検出される。ベクトルのSLIH
は、VSSAへのSTCBポインタが有効な記憶装置
を指定することを保証する。すなわち、VSSAの
有効性を保証する。ベクトルのSLIHは、以前に
割り込みされたタスクが接続されたVPを有する
CPU上で現に走行しているかどうかについて判
断する。もしそうなら、そのタスクのもとのアフ
イニテイ(これはTCBAFFNフイールドでみつ
けられるものである)がSTCBAFNSフイールド
に保管され、TCBAFFNフイールドはより限定
的な(非ゼロの)アフイニテイを有することとな
る。TCBAFFNフイールドの内容と
CSDCPUVFフイールドの内容とをANDするこ
とによつて新たなアフイニテイ値が計算される。
このANDの結果はTCBAFFNフイールドに記憶
される。もしタスクが現CPUとのアフイニテイ
を有するなら、CP0のビツト14は1にセツトさ
れ、ゼロであつたSTCBVAFNは論理的な
CPUIDにセツトされ、タスクのベクトル環境ス
テータスが復元されることとなる。制御権はレジ
スタ15にある戻りコードX“0”でFLIHに戻
る。この戻りコードは割り込みされたタスクが続
行されるということを示すものである。もしタス
クが接続されたVPを有するCPU上で現に走行い
ていないなら、ベクトルのSLIHは、CECにおい
て接続されたVPを有するCPUが利用可能である
かどうかについて判断する。もしタスクが接続さ
れたVPを有するCPU上で現に走行いているな
ら、現(もとの)CPUフイニテイが
STCBAFNSフイールドに保管される。
TCBAFFNフイールドとCSDCPUVFフイール
ドとをANDすることによつて新たなアフイニテ
イ値(TCBASFFN)が計算される。制御権は戻
りコードX“04”でFLIHに戻る。この戻りコー
ドは優先使用が行われるということを示すもので
ある。一般的には、コードX“04”は、現タスク
が延期され且つデイスパツチヤがデイスパツチす
べき別のタスクを捜すということを意味する優先
使用を表わすものである。STCBVAFNがゼロ
で、VPの使用許可がなかつたということを示す
と、デイスパツチヤは制御権を非ベクトルタスク
に与える。優先使用は次の場合に生じる。すなわ
ち、現CPUがタスクの新たなアフイニテイの要
件を満たしていないために現CPUがベクトル作
業についての対象となり得ない場合、又はベクト
ルのSLIHがベクトル環境を創設しようとして割
り込みされたタスクを延期しSRBをスケジユー
ルした場合である。ベクトルタスクについて優先
使用が生じ且つSTCBVAFNがゼロであるとき
はベクトルステータスは保管されない。
D7 SRBを用いたベクトル環境の生成 アドレス空間のローカルロツクがすぐに使えな
くなることに起因いてベクトル環境を創設するた
めにベクトルのSLIHによつてスケジユールされ
たSRBルーチンもベクトル環境を創設する。
SRBルーチンはベクトルステータス保管領域
(VSSA)のサイズを計算し、ベクトルマスクレ
ジスタ、ベクトルステータレジスタ、及びベクト
ル部のために記憶装置(フイールド)を割り振
る。SRBがスケジユールされれば、制御権は戻
りコードX“04”でFLIHに戻る。
D8 アフイニテイのチエツク タスクがアドレス指定可能になると、
TCBAFFNフイールドはデイスパツチヤによつ
て調べられる。もしTCBAFFNフイールドがX
“FFFF”を有するなら、関連するタスクは特定
のアフイニテイを持たず、デイスパツチヤは非ア
フイニテイデイスパツチング経路で続行される。
非アフイニテイデイスパツチング経路はアフイニ
テイチエツクのオーバーヘツドがないのでCPU
の性能が向上する。もしTCBAFFNフイールド
がX“FFFF”でないなら、特定のアフイニテイ
が存在し得るのでオフラインのアフイニテイチエ
ツク経路が次のことを遂行する。
1 TCBAFFNがゼロなら、制御権は非アフイ
ニテイデイスパツチングの生じる標準的なメイ
ンラインデイスパツチヤの経路に移る。
2a もしTCBAFFNがゼロでないなら、新たな
STCBVAFNフイールドを調べてタスクが接
続されたVPを有するCPUとのアフイニテイを
持つているかどうかについて判断する。ここで
もしSTCBVAFNがゼロなら、VPアフイニテ
イの値を再計算する。これは、最後のデイスパ
ツチの後でオンラインとなつた、接続された
VPを有する付加的なCPUを識別するためであ
る。こうして、TCBAFFNフイールドは、
STCBAFNSとCSDCPUVFとのANDの結果
を有することとなる。
2b TCBAFFNの値は次に物理的なCPUアドレ
スマスク(PCCACAFM)とANDされる。こ
れは、現CPUがベクトルタスクのデイスパツ
チについて対象となり得るものであるかどうか
の判断をするためである。上記ANDの結果が
ゼロでないときは、タスクは現CPUとのアフ
イニテイを有し、制御権はデイスパツチを続行
できるメインラインデイスパツチヤの経路に移
る。すなわち、現CPUに関して呼び出された
PSAANEWがそのタスクの存するアドレス空
間のASCBアドレスにセツトされ、制御権が指
定されたタスク(TCB)に与えられる。上記
ANDの結果がゼロのときは、タスクは現CPU
上ではデイスパツチできない。ここで、CEC
における別のCPUでタスクを走行できるかど
うかがチエツクされる。このチエツクは
TCBAFFNの値と、現に活動化されているオ
ンラインのプロセツサを表わすマスク
(CSDCPUAL)とをANDすることによつて行
われる。もしこのANDの結果がゼロでないな
ら、タスクは他のCPUとのアフイニテイを有
する。この場合、デイスパツチングのチエイン
における次のタスクが検索され、そのデイスパ
ツチヤにおけるメインラインタスクの経路から
処理が続行される。もしこのANDの結果がゼ
ロなら、このタスクによつて指定されたアフイ
ニテイの要件を満たす活動的なプロセツサは存
在しない。この場合、ベクトルアフイニテイイ
ンデイケータビツトを有するSTCBVAFNが
調べられる。
STCBVAFNがベクトルアフイニテイを示さ
ないときには(STCBVAFN=0)、デイスパツ
チヤはこのタスクをスキツプする。SRMはスキ
ツプされたタスクが現にサービスされていないか
どうかを判断する。そうしてSRMはそのタスク
を取り消くか又はそのタスクを実記憶装置に“ス
ワツプアウト”するかして、ユーザにVPがオン
ラインになることを知らせる。VPがオンライン
になれば、前述のようにしてプログラムのFLIH
はそれを処理することとなる。
D9 限定的なアフイニテイの解除 前述の例で示したように、大量のベクトル命令
を遂行するため、タスクは接続されたVPを有す
るCPUとのアフイニテイを持つている。このタ
スクには限定的なベクトルアフイニテイが割り当
てられる。しかしながら、全てのベクトル計算が
ひとたび完了すれば、残るタスクは単に報告を印
刷するだけでもよい。タスクが報告を印刷する
間、タスクはそれに割り当てられた限定的な(ベ
クトル)アフイニテイをもはや必要としない。そ
の代わり、ジヨブステツプタイマ(JST)を使つ
てデイスパツチヤによつてより限定の少ないタス
クアフイニテイが回復される。これはタスクをで
きるだけはやく終らせるためである。すなわち、
より限定の少ないアフイニテイを有するタスクは
任意のCPU上で走行することができ、接続され
たVPを有するCPUを持つ必要がないのである。
JSTはステータスが保管されているときに呼び出
される。デイスパツチヤはタスクのアフイニテイ
がより動的かつ効率的であることを保証する。一
般的にいえば、活動化ベクトルカウンタ(これは
VSSAにおける1つのフイールドである)がゼロ
のとき、より限定の少ないアフイニテイが回復さ
れる。SPCはタスクが十分な時間走行したかどう
かを判断するのに使用すべき定数(50ミル秒)を
供給する。これはベクトルの使用についての解析
ができるかどうかの判断を行うためである。より
限定の少ないアフイニテイが回復すると、
TCBAFFNの内容はSTCBAFNSの内容と入れ
換わり、そのタスクはもはや活動化ベクトルタス
クとしては識別されない(STCBVAFNはゼロ
である)。ベクトル制御ビツトもゼロにセツトさ
れる。これはベクトルアフイニテイの一時的な延
期となり得る。タスクが再びベクトル命令を発す
る場合には、活動化されたベクトル環境がベクト
ルのSLIHによつて再確立されることとなる。
CECにおける全てのCPUが接続されたVPを有し
ている場合には、アフイニテイの動的な解除及び
割当ては利益がない。
要約 1 タスクはベクトルアフイニテイを有する。
2 全てのベクトル計算が完了すると、プログラ
ムの残りは単にレコードを印刷するだけであ
る。従つて限定的なベクトルアフイニテイの必
要性は全くない。
3 活動化ベクトルカウンタ(VPの使用を表わ
すASSBにおける1つのフイールド)が問合ら
せられこれがゼロとわかると50ミリ秒のCPU
タイムが経過したことになる。
4 VPはもはや必要とされないので、より限定
の少ないタスクアフイニテイが回復される。
D10 ベクトルのSLIH ベクトルのSLIHはベクトル割込み(PIC X
“19”)を検知するとプログラムのFLIHから制御
権を受け取る。SLIHはベクトル命令を発するタ
スクについてベクトル環境を創設及び復元する役
目を有する。SLIHのオペレーシヨンは第4a図
ないし第4c図に示されている。
第4a図のステツプ100で、遂行すべき作業の
タイプを判断する。すなわち、ベクトル環境を創
設すべきか、不使用によりベクトル環境が解除さ
れたためこれを復元すべきか、又はベクトル制御
ビツトを変更しなければならないかについての判
断である。
ステツプ105で、最初のベクトル割込みPIC X
“19”が発生すれば(これはVSSAへのゼロポイ
ンタによつて検出される)、ベクトル環境が創設
される。
ステツプ110で、ベクトルアフイニテイが解除
されたなら(これはVSSAが存在するが
STCBVADFNはゼロであるときに検出される)、
ベクトル環境が復元される。
第4b図において、ベクトル環境が初めて生成
される。ステツプ120で、デイスパツチヤのロツ
クが得られる。これでVPがオフラインとなるの
を防止しながら、オンラインの全てのVPについ
てチエツクが行われ且つASSBVAFN(これは、
VPとのアフイニテイを有するタスクが少なくと
も1つ存在するかどうかを示す)が処理される。
デイスパツチヤのロツクにより、ベクトルの
SLIH及びSRBルーチンの直列化も行われる。
ステツプ125で、VPが存在すること(すなわ
ち、タスクがアフイニテイを有するオンラインの
VPが少なくとも1つ存在すること)及びタスク
のロツクが解除されていることを確認するための
有効性チエツクが行われる。TCBAFFNフイー
ルドはタスクがアフイニテイを有している全ての
オンラインのVPを示す。もしTCBAFFNがゼロ
なら、タスクは全てのオンラインのCPUとのア
フイニテイを有する(オンラインのVPはない)。
タスクの発行が滅勢されるが、VPが存在しない
か、又はタスクがアフイニテイの要件を有するオ
ンラインのVPが存在しないときは、プログラム
のFLIHはそのタスクを終了するよう命令され
る。
タスクの発行が終了しなければステツプ130で、
ローカルロツクが得られるのでTCB及びSTCB
のフイールドを処理することができる。ローカル
ロツクは、レジスタ15への戻りコードがX“0”
のときに得られる。
ステツプ135で、VSSAが得られる。すなわち、
VSSAが計算された初期設定される。この時点
で、部分サイズフイールドが初期設定され、ベク
トルレジスタ保管領域へのポインタがセツトさ
れ、VSSAがSTCBと連鎖される。VSSAのはじ
めのところにある不使用の記憶装置は自由に使え
る。
VSSAが首尾よく得られたならステツプ140で、
ASSBVAFNフイールドが増分される。これに
より、このアドレス空間にVPとのアフイニテイ
を有するタスクが少なくとも1つ存在するという
ことを示す。このタスクのもとの(より限定の少
ない)アフイニテイがSTCBAFNSに保管され、
より限定されたアフイニテイ(ゼロでなく且つ全
てが1でもない値)がTCBAFFNに設定される。
VPアフイニテイはステツプ143で設定される。こ
の設定は前に説明した通りである。
ステツプ145で、ベクトルタスクが当該CPU上
で走行できるかどうかについて判断する。もしそ
れができるなら、CR0のビツト14をオンしてタス
クのベクトルステータスをVSSAからロードし、
タスクをすぐに再デイスパツチできるようFLIH
への“戻り”を生ずる(ステツプ150のFLIHの
戻りコード)。タスクが再デイスパツチされるも
のであれば、ベクトルステータスレジスタ及びベ
クトルマスクレジスタのロードが行われ、活動化
ベクトルカウンタの値が記憶される。活動化ベク
トルオカウンタはベクトルオペレーシヨンに必要
なCPUタイメを追跡するものである。
STCBVAFNは論理的なCPUIDを有する。これ
は、ベクトルアフイニテイを示しタスクのベクト
ルステータスを有するベクトルレジスタを持つせ
いるプロセツサを識別するためである。CPUが
タスクのアフイニテイを有しない場合は、優先使
用が行われる(ステツプ155のFLIH戻りコー
ド)。この場合、デイスパツチヤが新たなアフイ
ニテイを認識すると、TCBにあるタスクの汎用
レジスタ、タスクのPSW、及びタスクの交差的
メモリレジスタが保管される。優先使用が行われ
ると、デイスパツチヤは発行すべき別のタスクを
捜す。いずれにせよ、ステツプ157でローカルロ
ツクが解除される。
ステツプ160でデイスパツチヤのロツクが一度
解除されると、タスクは再デイスパツチされ、メ
インラインSLIHへの“戻り”が生ずる(ステツ
プ165)。もしステツプ120でローカルロツクが利
用できなければ、VSSA取得のためローカル
SRBがステツプ170でスケジユールされる。SRB
ルーチンがひとたびスケジユールされれば(これ
は非同期的に走行するので)、メインライン
SLIHへの“戻り”コードが生ずる(ステツプ
165)。
第4c図において、不使用のために解除された
ベクトルアフイニテイを有するタスクについてベ
クトル還境が復元される。ステツプ170で限定的
なアフイニテイが復元される。現CPUはタスク
のアフイニテイを有するので、VSSAへのポイン
タは有効化され、TCBAFFNフイールドにおい
てより限定的なアフイニテイが設定される。判断
ステツプ173に示す如く、現CPUがタスクのアフ
イニテイを有する場合は、再デイスパツチングに
備えてタスクが設定される(ステツプ175)。そう
してステツプ185でメインラインSLIHへの“戻
り”が生ずる。ベクトル制御ビツトはオンにされ
る。ベクトルステータスレジスタ、ベクトルマス
クレジスタ、及びベクトルレジスタのロードが行
われ、活動化ベクトルカウント値が記憶される。
STCBVAFNは論理的なCPUIDを有する。これ
は、ベクトルアフイニテイと、タスクのベクトル
ステータスを有するベクトルレジスタを所有する
CPUとを示すためである。もしCPUがタスクの
アフイニテイを有しないなら(ステツプ173)、タ
スクのステータスが保管され優先使用が行われる
(ステツプ180)。従つてデイスパツチヤは別のタ
スクを捜す。
第5図は、仮想記憶装置及びその記憶領域の一
定のロケーシヨンならびにこれまでに説明した制
御ブロツクの主要な部分を示す図である。仮想記
憶装置20は共通領域22、専用領域24、及び
システム領域26を有する。ユーザのタスク28
は仮想記憶装置における1つのアドレス空間で走
行され、拡張式記憶装置30にあるSTCBを指定
する(STCBはVSSAを指定する)。ASCBは専
用領域24にあるタスクと、拡張式記憶装置30
の拡張されたシステム領域にあるASSBの両方を
指定する。拡張式記憶装置は上位アドレス以上の
記憶装置を意味し、この場合、16メガバイトより
上の部分の記憶装置である。
以上説明したように本実施例によれば次のよう
な利点がある。
(a) 資源の使用をサポートするためのプログラム
特性テーブルを使わなくてすむので、オペレー
タはタスクを走行させるCPUを選択する必要
はない。
(b) アフイニテイの動的な割当て及び解除はオペ
レーテイングシステムによつてタスクレベルで
内部的に管理することができる。
(c) アフイニテイは、プログラム特性テーブルを
作り変えることなく、オペレーテイングシステ
ムによつてタスクレベルで管理することができ
る。
(d) VPの使用を必要とするタスクが、接続され
たVPを有するCPUだけに割り当てられるので
VPを効率的に管理することができる。
(e) 非ベクトルタスクを走行させる場合接続され
たVPを持たないCPUを遊休させることができ
ないのでスループツトが向上する。
E 発明の効果 以上説明したように本発明によれば、複数の
CPU及び複数の資源と有するコンピユータシス
テムにおいて、システムプログラマ又はユーザプ
ログラマの介入なしに且つアフイニテイの要件の
変更(すなわち、ベクトル命令をいつ使用する
か)に関する知識を要せずに、タスクを割り当て
ることができる。
【図面の簡単な説明】
第1a図はベクトルオペレーシヨン例外の発生
を説明する図、第1b図はベクトルタスクのアフ
イニテイの設定を説明する図、第2図はタスクが
デイスパツチされる様子を示す流れ図、第3図は
タスクがいかにしてベクトル命令を発行する対象
となるかを説明する図、第4a図ないし第4c図
はベクトル命令を発するタスクについてベクトル
環境を創設し又は復元するオペレーシヨンを示す
流れ図、第5図は仮想記憶装置の構成を示す図で
ある。

Claims (1)

  1. 【特許請求の範囲】 1 タスクが実行される複数のCPUと、複数の
    資源とを有し、制御情報により資源へのアクセス
    権を制御するようにしたコンピユータシステムに
    おいて、 (a) 前記複数のCPUのうちの1つのCPUで走行
    するタスクにおいて、資源を必要とする特定命
    令を発行するステツプと、 (b) 前記特定命令が発行されたことにより割込み
    条件が生成され且つ前記1つのCPUにおいて
    制御情報が資源へのアクセスの禁止を示してい
    るとき、該CPUにおいて特定命令オペレーシ
    ヨン例外を検知するステツプと、 (c) 資源が設置され且つ利用可能である現にアク
    テイブなCPUだけに前記タスクの限定的なア
    フイニテイを自動的に割り当てるステツプと、 (d) 前記タスクの限定的なアフイニテイが割り当
    てられた限定的なCPUのうちの1つのCPU上
    で該タスクをデイスパツチし、該CPUにおけ
    る制御情報を資源へのアクセスの許可を示すよ
    う変更するステツプと、 より成ることにより、CPUにおいて資源が設置
    され且つ利用可能な場合にのみタスクをCPUに
    自動的に割り当てるようにしたタスク割当て方
    法。
JP61201905A 1985-09-30 1986-08-29 タスク割当て方法 Granted JPS6275739A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US781844 1985-09-30
US06/781,844 US4809157A (en) 1985-09-30 1985-09-30 Dynamic assignment of affinity for vector tasks

Publications (2)

Publication Number Publication Date
JPS6275739A JPS6275739A (ja) 1987-04-07
JPH031698B2 true JPH031698B2 (ja) 1991-01-11

Family

ID=25124136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61201905A Granted JPS6275739A (ja) 1985-09-30 1986-08-29 タスク割当て方法

Country Status (5)

Country Link
US (1) US4809157A (ja)
EP (1) EP0218884B1 (ja)
JP (1) JPS6275739A (ja)
CA (1) CA1251868A (ja)
DE (1) DE3680444D1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2810043B2 (ja) * 1987-11-13 1998-10-15 株式会社日立製作所 データ処理装置
JP2675026B2 (ja) * 1987-11-24 1997-11-12 株式会社日立製作所 計算機システムにおけるファイルの実行方法
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5123102A (en) * 1988-12-19 1992-06-16 Hewlett-Packard Company Method and apparatus for suspending computation due to detection of electrostatic discharge
JP3155537B2 (ja) * 1989-01-23 2001-04-09 株式会社日立製作所 実記憶管理方法
JP3019317B2 (ja) * 1989-03-13 2000-03-13 株式会社日立製作所 プロセススケジューリング方法
JPH03137761A (ja) * 1989-10-24 1991-06-12 Nec Corp ジョブ実行制御方式
US5187791A (en) * 1990-01-26 1993-02-16 Apple Computer, Inc. Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag
US5095526A (en) * 1990-01-26 1992-03-10 Apple Computer, Inc. Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
US5237700A (en) * 1990-03-21 1993-08-17 Advanced Micro Devices, Inc. Exception handling processor for handling first and second level exceptions with reduced exception latency
US5109512A (en) * 1990-05-31 1992-04-28 International Business Machines Corporation Process for dispatching tasks among multiple information processors
US5249291A (en) * 1990-11-20 1993-09-28 International Business Machines Corporation Method and apparatus for consensual delegation of software command operations in a data processing system
US5506987A (en) * 1991-02-01 1996-04-09 Digital Equipment Corporation Affinity scheduling of processes on symmetric multiprocessing systems
US5404563A (en) * 1991-08-28 1995-04-04 International Business Machines Corporation Scheduling normally interchangeable facilities in multiprocessor computer systems
US5317738A (en) * 1992-02-18 1994-05-31 Ncr Corporation Process affinity scheduling method and apparatus
US5333319A (en) * 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
JPH05250377A (ja) * 1992-03-04 1993-09-28 Fujitsu Ltd スケジューリング方式
JP2550864B2 (ja) * 1993-05-31 1996-11-06 日本電気株式会社 ジョブ実行における分散型制御方法及びその装置
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5745770A (en) * 1993-12-27 1998-04-28 Intel Corporation Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor
JPH0830562A (ja) * 1994-07-19 1996-02-02 Nec Corp マルチプロセッサシステム
US5511220A (en) * 1994-09-01 1996-04-23 Perlman; Noah Multi-user computer system with a clock driven batch dispatching mechanism
US5694587A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation Specialized millicode instructions for test PSW validity, load with access test, and character translation assist
US5611062A (en) * 1995-03-31 1997-03-11 International Business Machines Corporation Specialized millicode instruction for string operations
US5621909A (en) * 1996-03-12 1997-04-15 International Business Machines Corporation Specialized millicode instruction for range checking
US5754810A (en) * 1996-03-12 1998-05-19 International Business Machines Corporation Specialized millicode instruction for certain decimal operations
US6513057B1 (en) * 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US6665699B1 (en) * 1999-09-23 2003-12-16 Bull Hn Information Systems Inc. Method and data processing system providing processor affinity dispatching
CA2306969A1 (en) * 2000-04-28 2001-10-28 Ibm Canada Limited-Ibm Canada Limitee Dynamic scaling back of latch requests for computer system resources
US6738847B1 (en) * 2000-11-10 2004-05-18 Unisys Corporation Method for assigning a multiplicity of interrupt vectors in a symmetric multi-processor computing environment
US7275249B1 (en) * 2002-07-30 2007-09-25 Unisys Corporation Dynamically generating masks for thread scheduling in a multiprocessor system
US7302690B2 (en) * 2003-07-31 2007-11-27 International Business Machines Corporation Method and apparatus for transparently sharing an exception vector between firmware and an operating system
US20050108717A1 (en) * 2003-11-18 2005-05-19 Hong Steve J. Systems and methods for creating an application group in a multiprocessor system
US8037169B2 (en) 2005-05-18 2011-10-11 Oracle International Corporation Determining affinity in a cluster
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US7934216B2 (en) * 2005-10-03 2011-04-26 International Business Machines Corporation Method and system for load balancing of computing resources
US8296490B2 (en) 2007-06-29 2012-10-23 Intel Corporation Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system
US10127295B2 (en) * 2009-06-05 2018-11-13 Microsoft Technolofy Licensing, Llc Geographic co-location service for cloud computing
US8577892B2 (en) * 2009-06-05 2013-11-05 Microsoft Corporation Utilizing affinity groups to allocate data items and computing resources
JP5345990B2 (ja) * 2010-08-27 2013-11-20 レノボ・シンガポール・プライベート・リミテッド 特定のプロセスを短時間で処理する方法およびコンピュータ
US20130159376A1 (en) * 2011-12-15 2013-06-20 Charles Moore Systems and methods for a computing resource broker agent
US9753770B2 (en) * 2014-04-03 2017-09-05 Strato Scale Ltd. Register-type-aware scheduling of virtual central processing units
WO2016110954A1 (ja) * 2015-01-07 2016-07-14 富士通株式会社 タスク切替支援方法、タスク切替支援プログラム、及び情報処理装置
JP6518087B2 (ja) * 2015-03-09 2019-05-22 キヤノン株式会社 プログラム処理装置
US10185593B2 (en) 2016-06-03 2019-01-22 International Business Machines Corporation Balancing categorized task queues in a plurality of processing entities of a computational device
US10691502B2 (en) 2016-06-03 2020-06-23 International Business Machines Corporation Task queuing and dispatching mechanisms in a computational device
US11029998B2 (en) * 2016-06-03 2021-06-08 International Business Machines Corporation Grouping of tasks for distribution among processing entities
US11150944B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Balancing mechanisms in ordered lists of dispatch queues in a computational device
JP7188472B2 (ja) * 2021-02-03 2022-12-13 日本電気株式会社 コンピュータ、スケジューリング方法、及び、プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
FR2471631B1 (fr) * 1979-12-11 1986-02-21 Cii Honeywell Bull Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un systeme de traitement de l'information
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system

Also Published As

Publication number Publication date
EP0218884B1 (en) 1991-07-24
DE3680444D1 (de) 1991-08-29
JPS6275739A (ja) 1987-04-07
CA1251868A (en) 1989-03-28
EP0218884A3 (en) 1988-08-31
EP0218884A2 (en) 1987-04-22
US4809157A (en) 1989-02-28

Similar Documents

Publication Publication Date Title
JPH031698B2 (ja)
US7428485B2 (en) System for yielding to a processor
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US4912628A (en) Suspending and resuming processing of tasks running in a virtual machine data processing system
Coffman et al. System deadlocks
JP2866241B2 (ja) コンピュータシステムおよびスケジューリング方法
EP0301275B1 (en) Logical resource partitioning of a data processing system
US5485626A (en) Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing
US6834385B2 (en) System and method for utilizing dispatch queues in a multiprocessor data processing system
US5257375A (en) Method and apparatus for dispatching tasks requiring short-duration processor affinity
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
US5966543A (en) Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US6260057B1 (en) Apparatus and method for high performance implementation of system calls
US7251814B2 (en) Yield on multithreaded processors
EP0210345B1 (en) Virtual machine
US11429424B2 (en) Fine-grained application-aware latency optimization for virtual machines at runtime
JP3644042B2 (ja) マルチタスク処理装置
US6990669B1 (en) Real-time scheduler
Arnold et al. Design of tightly-coupled multiprocessing programming
JP2902746B2 (ja) 仮想計算機制御方式
Witt The functional structure of OS/360, part II: Job and task management
US8078907B2 (en) Failsoft system for multiple CPU system
JPH05324569A (ja) 割り込み制御方式
Pruitt et al. Architecture of a real time operating system
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体