JPH0756634B2 - チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム - Google Patents

チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム

Info

Publication number
JPH0756634B2
JPH0756634B2 JP61045133A JP4513386A JPH0756634B2 JP H0756634 B2 JPH0756634 B2 JP H0756634B2 JP 61045133 A JP61045133 A JP 61045133A JP 4513386 A JP4513386 A JP 4513386A JP H0756634 B2 JPH0756634 B2 JP H0756634B2
Authority
JP
Japan
Prior art keywords
task
queue
processor
signal
tasks
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
JP61045133A
Other languages
English (en)
Other versions
JPS61262938A (ja
Inventor
デイノ・デルヤニ
チヤールズ・イー・ジヤブロウ
Original Assignee
ウオング・ラボラトリ−ズ・インコ−ポレ−テツド
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 ウオング・ラボラトリ−ズ・インコ−ポレ−テツド filed Critical ウオング・ラボラトリ−ズ・インコ−ポレ−テツド
Publication of JPS61262938A publication Critical patent/JPS61262938A/ja
Publication of JPH0756634B2 publication Critical patent/JPH0756634B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、多重プログラム化データ処理システムのため
にオペレーティング・システムにおける改良に関する。
従来技術の説明 多重プログラムド・データ処理システムは記憶装置に複
数のプログラムを同時に有しており、このため中央処理
装置はそれらの間で共用される。このスキームは、より
短い時間により多くの作業をなすことにより計算機シス
テムの全体の効率を改善する。多重プログラミングの利
点は、中央処理装置の活用の増大と高いトータルジョブ
スループットにある。
多重プログラミングの欠点は、中央処理装置を最大限に
活用するために、実行中のタスクをつねに有さねばなら
ないことである。もし2以上のタスクがあれば、残りは
処理装置があくまで待たなければならず再スケジューリ
ングされ得る。待ち状態のどのタスクが次に中央処理装
置のサービスを受けるか決定するための手段が設けられ
ねばならない。これは、オペレーティングシステムのス
ケジューリング及びタスク指名部の機能である。
異なる優先度の複数の待ち行列を供給する。多くのスケ
ジューリング法が従来より知られている。タスクはユー
ザの設定する優先度を割当てられ、これが初期の待ち行
列割当を決定する。さらに、タスクの指名順位はそれが
進行するにつれその挙動に応じてリファイン(refine)
される。
実際には、大きな負荷のかけられたシステムが種々のタ
スクを実行しているときに、いろいろな問題の起り得る
ことが分ってきた。相対的に低い順位であるが、入出力
のサービスを得るため中央処理装置の制御を渡す前に中
央処理装置からわずかなサービスしか必要としないタス
ク(「入出力バウンド(制約)」のタスク)は、そのよ
うなサービスを得られないことがある。というのは、制
御を渡す前に中央処理装置からの多くのサービスを必要
とする高い順位のタスク(「CPUバウンド(制約)」の
タスク)に対して、中央処理装置が優先的に割当てられ
るからである。このことは、一般的にいって好ましくな
い状態である。
従って、本発明の目的は、相対的に低いユーザ設定順位
を有し入出力バウンドな挙動をするタスクが、相対的に
高いユーザ設定順位を有しCPUバウンドなタスクによっ
てロックアウトされることを防止し得る改良されたオペ
レーティングシステムを提供することである。本発明の
別の目的は、入出力バウンドなタスクとCPUバウンドな
タスクとが混在したものを実行する多重プログラム化デ
ータ処理システムのスループットを最大にすることであ
る。
本発明は、計時装置と、記憶装置と、入出力装置と、デ
ータ記憶装置及び入出力装置を制御する中央処理装置
と、を有し、状態レジスタ装置を設けている、複数の同
時タスク実行用多重プログラミングデータ処理システム
において実施される。データ記憶装置は、データ処理シ
ステムを制御するオペレーティングシステム手段を表示
する信号の供給装置と、オペレーティングシステム手段
の制御下で中央処理装置のオペレーションに関連する主
制御ブロックデータ構造を規定する信号の記憶エレメン
トと、複数のタスク制御ブロックデータ構造を規定する
信号記憶エレメントと、を有する。
各タスク制御ブロックデータ構造は、データ処理システ
ムにおける複数の同時タスクの1つと関連し、データ記
憶装置におけるその記憶位置を表示する関連したアドレ
ス値を有する。各タスク制御ブロックデータ構造は、関
連するタスクの現在の実行状態を表示する状態信号の記
憶エレメントと、タスク指名順位(dispatch priorit
y)の値に対応するタスク指名優先順位(順位)信号の
記憶エレメントと、を有する。
主制御ブロックデータ構造は、特定のアドレス値を表示
する信号の複数の待ち行列記憶エレメントを供給し、そ
の記憶エレメントは、入出力装置によるサービスを待つ
タスクを表示している少なくとも1つの連鎖I/O待ち行
列のヘッドとティル(tail)を識別し、中央処理装置に
よるサービスを受けるために待ち行列につながったタス
クを表示する、N個の連続した鎖状のレディ(ready)
待ち行列の各々は、ヘッドとテイルを識別する。各レデ
イ待ち行列は、0からNまでのその位置と関連するサー
ビスに対して待ち行列の優先順位を有している。待ち行
列の優先順位は、タスクの記憶位置とともに、レディ待
行列内で次のタスクを識別する。
オペレーティングシステム手段は、タスク指名手段、ス
ケジューラ手段、入出力ルーチン手段及び割込みハンド
リング手段を有する。そのタスク指名手段は、レディ待
ち行列から検索するためのタスク指名信号及び識別され
た次のタスクと関連するタスク制御ブロックの記憶位置
を表示するアドレス値信号に応答する手段と;関連する
タスク制御ブロックから状態信号を検索し、検索された
状態信号を中央処理装置のレジスタ装置に置くための、
検索されたアドレス値信号に応答する手段と;を備え、
これにより中央処理装置の制御を次のタスクに渡す。
入出力ルーチン手段は、入出力手段によるサービスの実
行タスクからの呼出しを表示する、中央処理装置からの
信号に応答し、関連するアドレス値信号をI/O待ち行列
のテイルに置く。スケジューラ手段は、古いタスク指名
順位値を表わす、呼び出しタスク指名順位信号に応答
し、新しくより高いタスク指名順位値を表わすためにタ
スク指名順位信号をリセットし、タスク指名信号を供給
する。
割込みハンドリング手段は、同時タスクの1つに関する
入出力機能の完了を表わすI/O割込み信号に応答して、
第1の割込みハンドリング手段信号を供給する。スケジ
ューラ手段は、その第1の割込みハンドリング手段信号
と、上記の1つのタスクに関連するタスク制御ブロック
のタスク指名順位信号と、に応答し、関連するアドレス
値信号を対応するレディ待ち行列のテイルに置く。
データ記憶装置は、さらに時間間隔制限信号を供給す
る。タイマ手段は、タスク指名手段に応答して時間間隔
制限信号によって規定された時間間隔の終了を待ち、検
索された状態信号が状態レジスタ手段に置かれるときに
動作を始め、その時間間隔の終了に応答してタイマ割込
み信号を供給する。
割込みハンドリング手段は、そのタイマ割込み信号に応
答して、現在実行中のタスクの実行を停止し、中央処理
装置からの現在状態信号を検索し、その状態信号を中断
したタスクに関連するタスクの制御ブロックのタスク制
御ブロック記憶エレメントに置き、スケジューラ手段へ
第2の割込みハンドリング信号手段を供給する。
スケジューラ手段は、その第2の割込みハンドリング手
段信号と、古いタスク指名順位値を表わす中断タスク指
名順位信号と、に応答して、そのタスク指名順位信号を
リセットして新しくより低いタスク指名順位値を表わす
ようにし、中断タスクのタスク制御ブロックと関連する
アドレス信号をその新しいタスク指名順位値に対応する
レデイ待ち行列のテイルに置く。
本発明に従えば、データ記憶装置はさらに待ち行列半径
(radius)信号を供給する少なくとも1つの半径記憶エ
レメントを備えており、その待ち行列半径信号はともに
N未満の待ち行列の総数Mを表している。各タスク制御
ブロックは、待ち行列範囲分割(range divider)信号
を供給する待ち行列範囲分割記憶エレメントを有し、そ
の分割信号は関連するタスクに対するユーザ設定順位か
ら得られる。
範囲分割信号及び範囲半径信号はともに各タスクに関し
上限及び下限まで区画された待ち行列のサブセットを定
義し、そのタスクに関する最高及び最低順位の待ち行列
を含み、同時タスクの待ち行列のサブセットは、重複し
た待ち行列サブセットをもたらす他の同時タスクの待ち
行列と、少なくとも1つの共通の待ち行列を有する。
各タスクに関し、スケジューラ手段はさらに待ち行列範
囲分割信号及び待ち行列半径信号に応答し、そのタスク
に対して定義された待ち行列サブセット内の特定のレデ
イ待ち行列に関連タスク制御ブロックアドレスを置く。
さらに、本発明に従えば、最短の及び最長のタイムスラ
イス値とそれらの間で単調に増加する、複数の離散的タ
イムスライス値を与える、複数のタイムスライス記憶エ
レメントを備えている。各タスクに関し、タスク指名手
段は待ち行列範囲分割信号と待ち行列半径信号とに応答
し、タスク制御ブロックアドレス信号がサブセット内で
最高順位の待ち行列から検索されるとき最小のタイムス
ライス値に応答する時間間隔制限値を供給し、タスク制
御ブロックアドレス信号がサブセット内の最低順位の待
ち行列から検索されるとき最大のタイムスライス値に応
答する時間間隔制限値信号を供給し、また単調に減少す
る順位のサブセットの残りの待ち行列に対応した単調増
加のタイムスライス値に応答する時間間隔制限値信号を
供給する。
好適な実施例において、データ記憶装置はさらに、より
短いタイムスライス及びより長いタイムスライスをそれ
ぞれ表わしている第1及び第2のタイムスライス信号を
供給する第1及び第2タイムスライス値記憶エレメント
を備えている。各タスクに関し、タスク指名手段は、待
ち行列範囲分割信号と待ち行列半径信号とに応答し、タ
スク制御ブロックアドレス信号が待ち行列サブセットの
上限のレデイ待ち行列から検索されるとき第1のタイム
スライス値信号に応答する時間間隔制限値信号を供給
し、タスク制御ブロックアドレス信号が待ち行列のサブ
セットの下限のレデイ待ち行列から検索されるとき第2
のタイムスライス値信号に応答する時間間隔制限値信号
を供給する。タスク範囲分割値と半径値は、第1のタイ
ムスライス値で指名されるべきタスクが、第2のタイム
スライス値で指名されるべき他のタスクに割当てられる
最高順位の待ち行列の順位と少なくとも等しい順位を有
する待ち行列に割当てられ得る。
好適には、第1のタイムスライス信号は、データ処理シ
ステムで同時に実行中のI/Oバウンドなタスクの平均的C
PUバースト時間乃至その1/2倍の間の値を表わし、第2
のタイムスライス信号は、データ処理システムで同時に
実行中のCPUバウンドなタスクの平均的CPUバースト時間
乃至その1/2倍の間の値を表わす。
その他の目的、特徴及び利点は、図面を参照しながら、
本発明の好適な実施例についての以下の説明から明らか
となろう。
好適な実施例の説明 図面、特に第1図を参照すると、本発明は、記憶装置1
2、入出力装置14及び中央処理装置16を備えるデータ処
理システム10において作用する。
CPU 中央処理装置16はシステム10の動作を制御するために作
用する。特に、中央処理装置16は、記憶装置12を制御し
てデータを表わす信号をそこに置く、すなわち、信号を
そこから検索するために構成され、接続される。(ここ
で用語「データ」は、プログラムと、プログラムによっ
て操作された計算可能なその他のデータとの双方に言及
するために使用される。)中央処理装置16はさらに入出
力装置14を制御するために構成され接続されてI/O機能
を提供する。例えば、ディスク18、プリンター20のよう
な装置、あるいはキーボード、モニター、通信リンク
(図示せず)のようなその他の装置は装置14によって制
御される。
オペレーティング・システム 記憶装置12は、オペレーティングシステムプログラムを
表わす信号を供給する装置26を備えている。さらに、記
憶装置12はオペレーティング・システム・プログラムの
制御下で動作する処理装置16に関連する主制御ブロック
データ構造を定義する信号の記憶エレメントを28に設け
ている(もしシステム10が2以上のプロセッサを有する
ならば、2以上の主制御ブロックとなろう。)。オペレ
ーティングシステムプログラムの制御下で、主制御ブロ
ック28に記憶された信号に関し、中央処理装置16は上記
の装置12及び14を制御し、ここには関係しないその他の
システム・サービスを同様に提供する。
応用プログラム さらに記憶装置12は種々の応用(ユーザ)プログラムを
表わす信号を供給する装置を22に設けている。中央処理
装置16は、そのような応用プログラムによって制御され
るとき、そのプログラムによって規定される計算操作を
行なうことか、入出力装置14の機能のようなオペレーテ
ィングシステムサービスを要求し行なうことにより、コ
ンピュータ技術において公知の方法でそのプログラムを
実行する。
タスク 「タスク」は作業のストリームとして定義され、連続的
プログラムは、各々が共通の実行中のタスクによって連
続的に識別されて、実行され得る。多重プログラムデー
タ処理システムにおいては、複数の同時タスクが存在
し、システムで実行されるが、それらの各々は中央処理
装置16のサービスを共用する必要がある。そのようなタ
スクは22におけるような応用(ユーザ)プログラムであ
る。特に会話形ユーザやワークステーションはタスクと
みなすことができ、それらに関して種々のプログラムが
連続的に実行される。ワークステーションは会話形すな
わち「フォアグラウンド(foreground)」タスクであ
り、バッチ(非会話形)モードで実行しているプログラ
ムは「バックグラウンド」タスクである。
タスク制御ブロック 記憶装置12は、タスク制御ブロックデータ構造を表わす
信号の記憶エレメント30を備えている。各タスク制御ブ
ロックデータ構造0乃至Pは、複数の同時タスクP即ち
システム10に存在するタスクの1つと関連している。タ
スク制御ブロックは、タスクが「作成」されるとき、即
ちシステム10によって存在が認識されるとき、始めて設
けられる。各タスク制御ブロックデータ構造は、記憶装
置12の中での記憶位置を表わす関連したアドレス値を有
する。
各タスク制御ブロックデータ構造は、関連するタスクの
現在の(即ち最新の)実行状態を表わす状態信号の記憶
エレメント32を備えている。
CPU状態レジスタ 中央処理装置16は、該装置16を現在制御しているタスク
の現在の実行状態を表わす信号を供給する状態レジスタ
装置24を有している。現在実行状態信号は、プログラム
に従って中央処理装置を制御するために必要である、次
の命令のアドレスや種々のレジスタの内容等の情報を供
給する。タスクが、中央処理装置16の制御を与えられる
とき、そのような状態信号は関連するタスク制御ブロッ
ク30から状態レジスタ装置24へロードされる。そのタス
クは「ディスパッチ」(指名)されたと呼ばれる。
待ち行列 どの同時タスクが次に中央処理装置16の制御を与えられ
るのか、あるいはシステム入出力装置のサービスを得る
のかを決定しその後に認識する装置が設けられなければ
ならない。このため、主制御ブロック28は複数の待ち行
列記憶エレメントを備えている。当該技術分野で公知の
ように、連鎖された待ち行列は、該待ち行列のヘッドに
あるタスクに対するタスク制御ブロックのアドレス値を
表わす信号を記憶することによって与えられる。タスク
制御ブロックは、待ち行列における次のタスクに対する
タスク制御ブロックのアドレス値を表わす信号を記憶す
る。待ち行列の最後のタスク制御ブロックのアドレス値
を表わす信号は、待ち行列のテイルとして待ち行列記憶
エレメントに記憶される。
従って、I/O待機の待ち行列36は、連鎖されたI/O待ち行
列に対するヘッドアドレス38及びテイルアドレス40の記
憶エレメントを有する。
レデイ待ち行列 さらに、主制御ブロックデータ構造28は、中央処理装置
16によるサービスを受けるべき待ち行列に連なるタスク
を表わしているN個の連続した各連鎖レデイ待ち行列の
ヘッドとテイルの識別信号の待ち行列記憶エレメントを
42に設けている。各レデイ待ち行列は位置0乃至Nに関
連するサービスに関する待ち行列の順位を有する。位置
0の待ち行列は、最高順位を有すると考えられる。連鎖
したレデイ待ち行列内のタスクの位置と、待ち行列の順
位とから次のタスクが認識される。すなわち、そのタス
クは、中央処理装置16が次に使用可能なときにその制御
を与えられる。
タスク指名順位 各タスク制御ブロックデータ構造30は、タスク指名順位
(優先順位)値に対応するタスク指名順位信号を記憶す
る順位記憶エレメントを備えている。タスクが「作成さ
れた」即ちシステム10において存在していると始めて認
識されたとき、ディフォルト値位置を表わす信号が、本
発明には関係しない方法で、しかし、ユーザ設定順位又
はフォアグラウンド及びバックグラウンド・タスク間の
区別に応じて、34に与えられる。
中央処理装置16に関しタスクをスケジューリング(レデ
イ待ち行列に割当て)し、ディスパッチング(中央処理
装置16の制御を与えることを)することは、オペレーテ
ィングシステム26の制御下で行なわれる。オペレーティ
ングシステム26は、ディスパッチャ44、スケジューラ4
6、割込みハンドラ48及びI/Oルーチン49のみならず、本
発明には関係なく、ここでは説明しない部分も有する。
タイマ50はオペレーティングシステム26の一部として、
あるいはシステム10の一部として設けられる。タイマ50
は、(以下に説明するように)時間間隔制限値信号によ
って定められる時間間隔の終わりを待ち、そのような間
隔の終わりに応答してタイマ割込信号を供給する。
ディスパッチャ44 ディスパッチャ44の制御下で動作するとき、中央処理装
置16は(説明されるべき方法で供給される)タスク指名
信号に応答して、レデイ待ち行列42から、識別された次
のタスクに関連するタスク制御ブロック30の記憶位置を
表わすアドレス値信号を検索する。これは、待ち行列に
タスクがあるか否か見出すために今度は待ち行列0から
始めてレデイ待ち行列の各々を調べることによって行な
われる。もし、待ち行列0のヘッドにタスクがあれば、
それがタスク指名される。しかし、なければ待ち行列1
が同様にして当該技術において公知の方法で調べられ
る。従って、待ち行列1のタスクが指名される前に待ち
行列0は空になっていなければならない。ディスパッチ
ャ44に従って装置16が動作する度ごとに、(すなわち、
中央処理装置が使用される度ごとに)待ち行列は再び0
から始めて調べられる。
また、ディスパッチャ44の制御下で動作すれば、中央処
理装置16は、レデイ待ち行列42から検索されるアドレス
値信号に応答し、識別された次のタスクに対応して、関
連するタスク制御ブロック30を位置決めし、中央処理装
置の状態レジスタ装置24に状態信号を置く。これによ
り、中央処理装置の制御は次のタスクに与えられる。
記憶装置12はさらに時間間隔制限値信号52を提供する。
次のタスクが指名されるとき、タイマ装置50はタイムス
ライスと呼ばれる時間間隔の終わりを待つ。その間隔
は、制限値信号によって定められる。
中央処理装置16の制御がタスクに与えられたとき、装置
16は適切なプログラムの命令の実行に進む。タスクは2
つの交互の相からなるサイクルを通過することが認めら
れる。すなわち、第1の相は、(複数の命令が実行され
る)排他的なCPUの実行の相であり、第2の相は、例え
ばディスク18から信号を読出し、あるいはディスクに信
号を書き込み、あるいはまたプリンタ20に結果やメッセ
ージをプリントアウトすることのようなI/Oサービスを
タスクが待つ相である。各時間間隔ごとに、次のタスク
の制御下で動作する中央処理装置16が、I/O(すなわち
非CPU)サービスを必要とするかしないかは、以下で説
明するようにオペレーティングシステムの応答する重要
な事実である。
I/Oサービス呼出し I/Oサービスがタスクによって必要されるとき、中央処
理装置16はタスクの実行を中止し、サービスの呼出しを
表示する信号を供給し、その結果I/Oルーチン49の制御
下で中央処理装置16は次の動作を行なうことになる。そ
のタスクは中央処理装置16の制御を「自発的」に渡すか
のように説明される。I/Oルーチン49の制御下で、中央
処理装置16は呼出し信号に応答しI/O待ち行列36のテイ
ル40に現在実行中のタスクに関連するアドレス値信号を
置く。
入出力の完了 物理的I/O機能が特定の同時タスクに対して完了したと
きに、I/O割込み信号が生成される。そのI/O割込み信号
に応答して、割込みハンドラ48の制御下において中央処
理装置16は、スケジューラ46への制御の転送をひき起す
第1の割込ハンドラー装置信号を供給する。スケジュー
ラ46の制御下で、中央処理装置16はタスク指名順位信号
をリセットして、より高い順位(一般に、順位は1だけ
増分される)を表わす新しい値にし、その新しいタスク
指名順位に対応するレデイ待ち行列のテイルに、そのタ
スクに対するタスク制御ブロックと関連するアドレス値
のアドレス値信号を置く。もし、最高順位の待ち行列に
前のタスク指名順位値がタスクを置くなら、順位値はそ
の前の(古い)値にリセットされる。他の実施態様で
は、タスク指名順位は、I/O完了よりはむしろI/O呼出し
に応答してリセットされる。これは本発明に対する問題
ではない。CPU装置16は、さらにタスク指名信号を供給
し、上記したようにディスパッチャ44に従って動作する
こととなる。
タイムスライス・ランアウト タイマ50は、制限値信号52によって定められる時間間隔
の完了に応答してタイマ割込信号に供給する。もし、I/
O(あるいは非CPU)サービスの要求が時間間隔完了の前
になければ、実行中のタスクは「そのタイムスライスを
ランアウト」したと言われる。それは、I/Oその他のサ
ービスの要求時点までの間、中央処理装置のサービスを
必要とする。タイムスライスの完了時に、タイマ50はタ
イマ割込信号を供給する。そのとき中央処理装置16は割
込みハンドラ48の制御下で動作し、そのタイマ割込信号
に応答して現在実行中のタスクの実行を停止する。装置
16は現在の状態信号をレジスタ装置24から検索し、中断
したタスクに関連するタスク制御ブロックデータ構造30
の状態レジスタ装置にその信号を置き、第2の割込ハン
ドラ装置信号を供給する。
そのような信号に応答して、中央処理装置16はスケジュ
ーラ46に従ってさらに動作し、中断したタスクのタスク
制御ブロックの34でタスク指名信号をリセットしてより
低い順位(一般に、順位は1だけ減分される)を表わす
値にリセットされる。中央処理装置16がさらに、新しい
タスクの指名順位に対応したレデイ待ち行列42のテイル
43に、中断したタスクに関連したアドレス信号を置く。
前のように、もし古い順位値が低い順位の待ち行列にタ
スクを置けば、順位値はその先の(古い)値にリセット
される。スケジューラ46の制御下で装置16はタスク指名
信号を供給し、上記したようにディスパッチャ44に従っ
て動作することとなる。
I/Oバウンド及びCPUバウンドなタスク 様々な種類の複数の同時タスクがデータ処理システムに
存在するとき、各タスクは、中央処理装置の実行サイク
ル時間と比較して長いどのような期間でも、I/Oあるい
は非CPUサービスを得るために自発的に制御を渡すまで
中央処理装置を使用する特性実行時間(CPUバースト時
間)を有する。異なるタスクは、異なる特性CPUバース
ト時間を有する。従って、CPUバースト時間は数ミリ秒
から数100ミリ秒まで分布している。一般的に、同時タ
スクは任意の時点で「I/Oバウンド」及び「CPUバウン
ド」と呼ばれる2つのカテゴリーにはいり、特性CPUバ
ースト時間の異なる値に一般的に対応する。
本発明が実施されるデータ処理システムに関して、もし
特性CPUバースト時間が約15ミリ秒であればタスクは「I
/Oバウンド」として説明される。もし特性CPUバースト
時間が約60ミリ秒であればタスクは「CPUバウンド」と
して説明される。一般に、これらの値は特定のデータ処
理システムに依存する。
一般に、システムのI/O装置の動作する速度によって与
えられる制限とは別に、I/Oバウンドなタスクはそれら
がI/O装置の可用性によって、即ち、それらがI/O待ち行
列で待機に費やす時間によってそれらの実行速度に制限
が与えられると考えられる。
これに反して、CPUの動作速度は別として、CPUバウンド
なタスクは中央処理装置の可用性により、即ち、レデイ
待ち行列で待つために費やす時間によってそれらが実行
される速度に制限が与えられると考えられている。特定
の応用プログラムは実行中異なる時点でこれらのカテゴ
リーの第1のものに、そして次にその他のものになり得
る。一般に、(そしてシステム構成要素の効率的な使用
のために好ましくは)任意の時点で、タスクの混合が存
在し、あるものはI/Oバウンドであり、あるものはCPUバ
ウンドである。これらのカテゴリーの厳密な定義は必要
でない。
ユーザ設定順位 多くのデータ処理システムにおいて、タスクは、ユーザ
設定の順位に対応するレデイ待ち行列のある範囲に割当
てられ、システム10によって与えられるレデイ待ち行列
の総数Nより数が少ない。タスク指名順位は上記のよう
にタスクの挙動に、即ち、タイムスライスをランアウト
するか否かに応じて繰返しリセットされる。しかしその
割当てられた範囲外では待ち行列にタスクを置くために
リセットすることはできない。従来技術によれば、特定
のユーザ設定順位に関する範囲はばらばらであった。例
えば、レデイ待ち行列4−8の範囲は、ある特定の順位
のアプリケーションタスクに割当てられ、待ち行列9−
13の範囲はアプリケーション・タスクの第2のセットに
割当てられる。その第2の順位のタスクは待ち行列4−
8のどれにも上がることはできないし、第1の順位のタ
スクも待ち行列9−13のどれにも下がれない。上記のよ
うに、タスクが待ち行列4−8のいずれかにあれば待ち
行列9−13にあるいずれのタスクよりも先にディスパッ
チ(タスク指名)されよう。そのことは、もし待ち行列
4−8の1つにおけるタスクが強いCPUバウンドなら、
これらの待ち行列の1つに繰返し再割当てされるしCPU
の制御を繰返し与えられる。それは、待ち行列9−13の
1つにおけるI/Oバウンドなタスクを「ロックアウト」
する、即ち中央処理装置の制御を得られず、パフォーマ
ンスを著しく損なうことになる。
さらに従来技術によれば、もし2つ以上のタイムスライ
ス値が採用されれば、特定のレデイ待ち行列にそれらの
値は永久的に関連する。
上記のスケジューリング及びディスパッチング法によれ
ば、高いユーザ設定順位を有する高いCPUバウンドタス
クが、より低いユーザ設定順位を有するタスクをロック
アウトすることは可能である。たとえ後者のタスクが高
いI/Oバウンドである、中央処理装置の制御を自発的に
渡す前に1つのタイムスライスの部分だけを必要とする
場合でもある。
特に、(会話形タスクのような)フォアグラウンドタス
クは強いCPUバウンドであり、(バッチジョブのよう
な)I/Oバウンドなバックグラウンドタスクのスループ
ットを厳しく制限する。これはある状況において許容可
能であっても、他の状況下では許容されない。本発明
は、この望ましくない動作モードを妨げる手段を提供す
る。
本発明 本発明に従えば、記憶装置12は少なくとも1つの待ち行
列半径信号を供給する、半径記憶エレメント54をさらに
設けている。待ち行列半径信号は、待ち行列の等しい数
を表わす。あるいはまた、それらは真中の待ち行列の上
又は下の待ち行列の等しい数を表わす。そのような場
合、待ち行列の総数は奇数である。さらにまた、ある分
割線の上又は下に等しくない数の待ち行列もあり得る。
各タスク制御ブロック30は、待ち行列範囲分割信号を供
給する待ち行列範囲分割記憶エレメント56を有する。そ
の分割信号はタスク制御ブロックに関連するタスクに関
し(非常に高度、高度、中位及び低度のものから一般に
選択された)ユーザ設定順位より得られる。分割信号
は、しかし、タスクがフォアグラウンドかバックグラウ
ンドかのような他の要因にも依存し得る。そのような場
合、分割信号によって表示される、8つのカテゴリー
(クラス)のタスクが存在する。その他の数のカテゴリ
ーも使用される。
範囲分割信号及び半径信号は併せてM個の待ち行列のサ
ブセットを各同時タスクに対し定義する。ここでMはN
(レデイ待ち行列の総数)より小さく、そのサブセット
は上側及び下側の範囲に分けられ、タスクに対し上限及
び下限の順位の待ち行列を含んでいる。本発明に従え
ば、同時タスクの待ち行列のサブセットは重複してい
る。即ち、同時タスクの待ち行列サブセットは、他の同
時タスクの待ち行列サブセットと共通の少なくとも1つ
の待ち行列を有する。好適な実施例では、重複は以下に
説明するように、より大きい。
各タスクに対し、スケジューラ46の制御下で動作し、さ
らにタスク指名順位信号34に応答する、中央処理装置
は、待ち行列範囲分割信号56と待ち行列半径信号54とに
応答して、関連するタスク制御ブロックアドレス信号
を、そのタスクに対して定義された待ち行列サブセット
内の特定のレデイ待ち行列42に置く。(タスクがそのタ
イムスライスを最近ランアウトをしたか否かに対応す
る)タスク指名順位における変化がタスクにサブセット
内の連続する待ち行列を割当てさせるが、タスクはそれ
に対して定義されたサブセットの外の待ち行列に割当て
られ得ない。サブセットの境界はタスク指名値を無効に
し、そのタスクは前の待ち行列に再び割当てられる。
さらに本発明に従えば、少なくとも2つの離散したタイ
ムスライス値を表わす、少なくとも2つのタイムスライ
ス信号を供給する複数のタイムスライス値記憶エレメン
トを、データ記憶装置12はまた備えている。タイムスラ
イスは連続的に増加する。従って、例えば、8,15,20,30
及び40の一連のタイムスライス値が与えられる。各タス
クに対し、ディスパッチャ46に従って動作する中央処理
装置16は待ち行列範囲分割信号56に応答し、タスク制御
ブロックアドレス信号が適当な待ち行列セットの最高順
位を有するレデイ待ち行列から検索されるとき最小のタ
イムスライス値に応答する時間間隔制限値信号52を供給
し、サブセットの最低順位を有するレデイ待ち行列から
タスク制御ブロックアドレス信号が検索されるとき最大
のタイムスライス値信号に応答する時間間隔制限値信号
52を供給する。中間タイムスライス値は、タスクがより
高いI/Oバウンドな態様で挙動するとき比較的短いタイ
ムスライスでタスク指名され、より高いCPUバウンドな
態様で挙動するときには、比較的に長いタイムスライス
でタスク指名されるように適当な方法で中間順位待ち行
列に関連する。従って、特定の待ち行列に永久的に且つ
絶対的に関連させられるかわりに、タイムスライス値は
特定のタスクの待ち行列サブセット内の待ち行列の相対
的位置と関連させられる。
本発明の好適な実施例においては、データ記憶装置12は
それぞれ短いタイムスライス及び長いタイムスライスの
値を表わす、第1及び第2のタイムスライス信号を供給
する第1及び第2のタイムスライス値記憶エレメント58
を設けている。各タスクに対し、ディスパッチャ46に従
って動作する中央処理装置16は、待ち行列範囲分割信号
56に応答し、適当な待ち行列サブセットの上側の範囲の
レデイ待ち行列42からタスク制御ブロックアドレス信号
が検索されたとき第1のタイムスライス値信号に応答す
る時間間隔制限値信号を供給し、タスク制御ブロックア
ドレス信号が下側の範囲のレデイ待ち行列から検索され
るとき第2のタイムスライス値信号に応答する時間間隔
制限値信号52を供給する。
このため、同じ順位従って同じ待ち行列サブセットを有
するタスクのカテゴリー内で、I/Oバウンドなタスク
は、(タスク指名順位が、タイムスライスの終わりまで
非CPUサービスをタスクの方から呼び出すときに繰返し
て増分されるため)より上側の範囲にドリフト(drif
t)し、また(タスク指名順位は、タスクがそのタイム
スライスをランアウトするとき繰返して減分するため)
CPUバウンドなタスクは、より下側の範囲にドリフトす
る前にタスク指名される。
全ての同時タスクに対し56に表示されたタスク範囲分割
値と54に表わされた半径値は、第2の(長い)タイムス
ライス値でタスク指名された他のタスクに割り当てられ
る最高順位の待ち行列の順位と少なくとも等しい順位を
有する待ち行列に、第1の(より小さい)タイムスライ
ス値で指名されたタスクが割当てられるように関係づけ
られる。従って、低い順位でも、そのI/Oバウンドなタ
スクは、より高い順位のCPUバウンドのタスクとともに
1つの待ち行列に置かれ、後者によってロックアウトさ
れ得ない。そのCPUバウンドなタスクは長いタイムスラ
イスでディスパッチされるが、I/Oバウンドなタスク
は、そのCPUバウンドなタスクが再びディスパッチされ
る前にディスパッチされる。
もし、タスクの特定の混合にとって望まれるなら、最高
順位のCPUバウンドなタスクに割り当てられ得る待ち行
列より高い順位の、3つ(またはそれ以上)の待ち行列
のうちの1つに最低順位のI/Oバウンドタスクが置かれ
るように、実際にも、待ち行列の重複がより大きくなり
得る。待ち行列サブセットの重複の大きさの変更は、ユ
ーザの設定順位と、タスクの挙動に基づいた順位と、に
多少の重みを与える効果を有する。
ここに第2図を参照すると、好適な実施例の特定のもの
が、例として示さねばならない。20のレデイ待ち行列42
は、アプリケーションタスクに関して利用可能であり、
順位4乃至23を有すると仮定する(待ち行列1乃至3は
システムタスクだけのものであり、アプリケーションタ
スクはそれらには割当てられない)。この例において、
FG(フォアグラウンド)、BG(バックグラウンド)、VH
(非常に高度)、H(高度)、M(中部)及びL(低
度)という属性に基づいてタスクの8つのカテゴリー
(クラス)が存在する。半径信号は、54で供給され7つ
の待ち行列から成る(分割待ち行列を含む)上側の範囲
を定め、6つの待ち行列から成る(分割待ち行列の)下
側範囲を定め、13の待ち行列から成るサブセットを作
る。
各FG/VHタスクに対し、分割待ち行列が、待ち行列10に
等しいということを表す信号が56で与えられる。それゆ
え、FG/VHタスクに関する待ち行列のサブセットは、待
ち行列4に等しい最高順位の待ち行列を有し、待ち行列
16に等しい最低順位の待ち行列を有する。FG/VHタスク
は、待ち行列4乃至10のいずれか(最新の挙動が一般的
にI/Oバウンドなため)から指名されたとき、8ミリ秒
のタイムスライス値でタスク指名される。待ち行列11乃
至16のいずれか(最新の挙動が多かれ少なかれCPUバウ
ンドなため)から指名されるとき、45ミリ秒のタイムス
ライス値でタスク指名れる。
一方、BG/Lタスクは、待ち行列11より上の待ち行列には
割当てられず、最低順位の待ち行列は待ち行列23であ
る。しかし、BG/Lタスクが待ち行列11からタスク指名さ
れるとき、8ミリ秒のタイムスライス値でタスク指名さ
れ(これはI/Oバウンドなタスクにとって好適な値であ
るが)、これに対し、FG/VHタスクは同じ待ち行列から
指名されたときには、45ミリ秒(CPUバウンドなタスク
に好適な値である)のタイムスライス値でタスク指名さ
れる。特定の実施例の記述において、最高のタスク指名
順位をもつBG/LタスクをFG/VHのCPUバウンドタスクより
上の待ち行列に割り当てるだけの十分なレディ待ち行列
がなく、従ってそれら2つのタスクは1つの待ち行列で
競合し、BG/LタスクはしばしばFG/VHタスクが45ミリ秒
のタイムスライスを使用している間待たなければならな
い。しかし、もし特定のシステムがより大きな重複を与
えることを可能にするなら、そのような競合を避けるこ
とが望ましい。
2つのタイムスライス値を与えることの効果は、タスク
がシステムに存在する殆どの時間、待ち行列のサブセッ
ト内の4つの領域:すなわちトップの領域(タスクがI/
Oバウンドのとき);分割待ち行列のすぐ上の領域でか
つ分割待ち行列を含む領域(そのタスクが適度にI/Oバ
ウンドのとき);分割待ち行列のすぐ下の領域(そのタ
スクが適度にCPUバウンドのとき);あるいはボトム領
域(そのタスクがCPUバウンドのとき)のうちの1つの
スケジューリングされる。
タスクの各カテゴリーに対するこれら領域の各々は、他
のカテゴリーと同じ範囲を成すレディ待ち行列とは別
の、少なくとも1つのレデイ待ち行列を含むため、高い
順位の特定のプログラムを実行するタスクは低い順位の
同じプログラムを実行するタスクと比較して好適な取扱
を受けるであろう。
さらに、最低順位グループ(BG/L)のI/Oバウンドな待
ち行列(上側の範囲)でも、最高順位グループ(FG/H)
のCPUバウンドな待ち行列(下側の範囲)と同じ、また
は望ましくはより高い順位のため、CPUバウンドなタス
クは、中央処理装置からサービスをI/Oバウンドなタス
クが得ることを妨げないであろう。これはシステムのリ
ソース及びパフォーマンスを最大にする。
2つの等しくないタイムスライス値は、データ処理シス
テムの動作においてかなり大きな利益を、I/Oバウンド
なタスクがCPUバウンドなタスクから区別されるとき、
もたらす。しかし、その利益は、タイムスライス値の選
択を最適化することにより増大させ得る。
好適な実施例において、小さいタイムスライス値はI/O
バウンドなタスクのCPUバースト時間の平均の1乃至1/2
の間で選ばれる。結局、平均において、I/Oバウンドな
タスクはI/Oサービスの呼び出しを出すことなく第1の
タイムスライスをランアウトする。その結果、タスク指
名順位は減分され、より低い順位の待ち行列に割当てら
れる。しかし、平均において、タスクは、第2のタイム
スライスの間にI/Oサービスを呼び出し、その結果タス
ク指名順位は増分され、第1のタイムスライス以前のタ
スク指名順位の値に復元される。従って、平均におい
て、I/Oバウンドなタスクは初めに与えられた待ち行列
に、挙動が大きく変わらないかぎり、とどまる。しばし
ば、タスクは、I/O呼び出しを発する前に3つのタイム
スライスを必要とし、従ってタスク指名順位を2回下げ
られるが、このようなことはまれであり、タスクが連続
するタイムスライスでI/O呼び出しを発行する機会があ
り、タスク指名順位を再び増加させるので、平均化され
る。
類似した挙動は、第2のタイムスライス値がCPUバウン
ドのタスクの平均的CPUバースト時間の1乃至1/2の間で
選ばれるなら、CPUバウンドなタスクに対し予期され得
る。実際のところ、タイムスライスと比較して長い時間
に3つの待ち行列の範囲にわたって「揺動」や「浮動」
を、多くのプログラムがタスクに起させる。かくして、
上で議論した4つの領域の各々は、長さにおいて好適に
は3つの待ち行列である。タスクの挙動が変化すれば、
タスクはその他の領域の1つにほぼ一致して移ってい
く。これらの領域の中間の待ち行列においても、もしそ
のような領域が与えられるなら、タスクは比較的に費や
す時間が短い。従って、好適な実施例において、4つの
3待ち行列の領域、即ち全部で12の待ち行列は待ち行列
のサブセットを構成する。第2図の実施例では13の待ち
行列が与えられているが、これは奇数の待ち行列を必要
とするように設計された特定のシステムの詳細な実施例
のためである。実際、タスクは待ち行列4にはまれに割
当てられるだけである。
58に示されるタイムスライス値と、56に示される分割値
は、システム10のパフォーマンスを変えるため容易に変
更されるパラメータである。従って、オペレーティング
システム26のスケジューラとディスパッチャは「チュー
ニング可能」であると言える。待ち行列の重複の大きさ
を分割値の変更によって変える効果は以下に議論され
る。
第2図を再び参照すると、線Aは、8ミリ秒のタイムス
ライスの関連する領域と、45ミリ秒のタイムスライスの
関連する領域とを分けるように引かれている。線Aは、
水平から鋭角的に左からへ下方に傾斜する。第3図を参
照すると、線Aが再び示されている。
概念的には、線Aの上及び右への領域はユーザ設定順位
のカテゴリにおいてI/Oバウンドなタスクであり、線A
の下及び左には、全ユーザ設定順位のうちのCPUバウン
ドなタスクである。この場合は、最高順位及び最低順位
の待ち行列サブセット間の6つの待ち行列が最小の重複
に相当し(隣接する待ち行列サブセット間では11待ち行
列が重複)に相当し、BG/Lカテゴリーの最もI/Oバウン
ド的なタスクはFG/VHカテゴリの最もCPUバウンド的でな
いCPUバウンドなタスクと、待ち行列11において連なる
ことに注意されたい。
先に議論した従来技術のような場合を考察すると、従来
では、タスクの各ユーザ設定順位カテゴリに関して、待
ち行列サブセット間に重複は許されなかった。この場
合、例えば、待ち行列4乃至8の全てのタスクは、待ち
行列9乃至13のすべてのタスクの前に指名される。待ち
行列サブセット9−13のうちの1つのI/Oバウンドなタ
スクは、タスク指名順位が繰返し増分されて、待ち行列
9まで上がる。4−8待ち行列サブセットの1つのCPU
バウンドなタスクは、タスク指名順位が繰返し減分され
て待ち行列9まで下がる。しかしながら、待ち行列9の
I/Oバウンドなタスクは、相対的に短いタイムスライス
でタスク指名されるといっても、CPUバウンドな、待ち
行列8のタスクによってロックアウトされてしまう。た
とえそのCPUバウンドなタスクが比較的に長いタイムス
ライスで指名されるものであってもである。この、非重
複な待ち行列の割当ては、第3図において垂線Bで表わ
される。このスキームでは、高い順位のタスクが良いサ
ービスを受けている間、システムが激しく使用される時
間には、低い順位タスクはロックアウトされる。
それに対して、ユーザ設定順位に関係なく、全てのタス
クがいずれのレデイ待ち行列へ移ることも許される(即
ち、ユーザ設定順位に関連する待ち行列サブセットは無
い)ならば、全てのI/Oバウンドなタスクは上側の待ち
行列に上がり(そして比較的短いタイム・スライスで指
名され)、一方全てのCPUバウンドなタスクはより低い
待ち行列に下がり、比較的長いタイムスライスで指名さ
れる。つまり、全てのI/Oバウンドなタスクは全てのCPU
バウンドなタスクより先に実行される。そのような状況
は第3図の水平線Cによって表わされる。待ち行列のこ
の割当ては、従来より知られているものである。この配
列の欠点は、フォアグラウンド又は他の高いユーザ設定
順位のタスクがバックグラウンドより良いサービスを受
けることはないことであり、システム使用が頻繁であれ
ばフォアグラウンド(会話形)タスクの応答時間は、シ
ステムがI/Oバウンドなバックグラウンドタスクを実行
している間、著しく低下する。
従来技術のこれらの線B及びCで示された両極端と比
べ、本発明に従って動作するデータ処理システムは順位
のカテゴリー間で良好なバランスがとれ、システムのス
ループットも向上する。そのようなスループットは、定
量的に、例えば、1時間当りのトランザクションの数、
あるいは標準的ジョブの完了の数、さらにその他の適切
なベンチマーク等、従来よりよく知られた方法で考察で
きる。
最小の、待ち行列サブセット間の重複が増大すれば、CP
Uバウンドな領域からI/Oバウンドな領域を区画する線
は、Dに見られるように水平線C(完全重複を示す)の
方に傾斜している。最小待ち行列重複が減少すれば、垂
線Bの方に、2つの領域を画する線は傾斜する(Bは待
ち行列間に重複のないことを示す)。システムのこのよ
うなチューニングは、種々のオペレーションの要因、に
応じて遂行され、また特定のインストレーションにおい
て望まれる程度の順位化を提供できる。
本システムのレデイ待ち行列の1部についてのみ本発明
を実施することも可能であり、他の部分については従来
の方法でタスクに割当てることも可能である。さらに、
範囲分割値は順位カテゴリ間で一様に変化する必要はな
い。もし特定の実施において望むなら、2つの最低順位
カテゴリは、残りのカテゴリと重複するそれらの待ち行
列サブセットが、残りのカテゴリ間の重複よりも非常に
小さくなるように分割信号を供給され得る。そのような
場合、2つの領域(I/Oバウンド及びCPUバウンド)は、
第2図及び第3図に示すように直線によって分割はされ
ないであろう。
【図面の簡単な説明】 第1図は、記憶装置内の割当てを含む、本発明が実施さ
れるデータ処理システムを示し、 第2図は、本発明の特定の実施例を説明するための図解
であり、 第3図は、第2図に示した特定の実施例を説明するため
の図解である。 なお、図面において、 10:システム、 12:記憶装置、 14:入出力装置、 16:中央処理装置、 18:ディスク、 20:プリンタ、 24:状態レジスタ、 26:オペレーティングシステム、 28:主制御ブロック、 36:I/O待ち行列、 44:ディスパッチャ、 46:スケジューラ、 48:割込ハンドラ、 50:タイマ、 58:タイムスライス。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭55−23527(JP,A) 特開 昭57−191731(JP,A)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】各タスクがそれぞれのタスククラスと関連
    する複数のタスクが中央プロセッサを共用して使用す
    る、多重プログラム化されたデータ処理システムであっ
    て、 前記プロセッサによってタスクに対する処理を行う期間
    を測定するためのタイミング手段と、 前記プロセッサからの処理を受けるための優先順位を有
    する、複数のレディ待ち行列であって、前記レディ待ち
    行列の前記優先順位と前記レディ待ち行列におけるタス
    クの位置とによって、前記プロセッサから処理を受ける
    次のタスクが定められる、レディ待ち行列の表示を記憶
    するためのレディ待ち行列記憶手段と、 前記プロセッサが使用可能であるときに前記次のタスク
    に対する前記プロセッサの処理を開始するためのディス
    パッチャ手段と、 処理の開始前に定められた処理時間期限に対しての処理
    の後、前記プロセッサによるタスクの処理を中断するた
    めの割り込み手段と、 を含むデータ処理システムにおいて、 (A)各タスククラスに対して、そのタスククラスのタ
    スクが割り当てられ得るレディ待ち行列の優先順位の範
    囲を定めるための範囲リミット記憶手段であって、その
    割り当て可能範囲は、各タスククラスに割り当て可能な
    最上位優先順位及び最下位優先順位の待ち行列を含み、
    その割り当て可能範囲は、それぞれが一意的であり且つ
    すべてのタスククラスに割り当て可能な少なくとも1つ
    のレディ待ち行列の優先順位があるように定められる、
    範囲リミット記憶手段と、 (B)タスクが最後に割り当てられた前記レディ待ち行
    列を示すための、各タスクと関連するディスパッチ信号
    記憶手段と、 (C)前記プロセッサの処理を要求するタスクをレディ
    待ち行列に割り当てるためのスケジューラ手段であっ
    て、 1つの特定のタスクが、該タスクに対して定められた処
    理時間期限が満期になることによって前記プロセッサの
    使用が中断されたときに、該タスクを、前記プロセッサ
    の前記使用の時に該タスクが割り当てられていた待ち行
    列よりも下位の優先順位の待ち行列に割り当て、 1つの特定のタスクが、該タスクに対して定められた処
    理時間期限が満期になることによって前記プロセッサの
    使用が中断されなかったときに、該タスクを、前記プロ
    セッサの前記使用の時に該タスクが割り当てられていた
    待ち行列よりも上位の優先順位の待ち行列に割り当て、 このスケジューラ手段によってタスクが割り当てられる
    レディ待ち行列は、前記特定のタスクと関連するレディ
    待ち行列の割り当て可能範囲によって制限される、 スケジューラ手段と、 を備えることを特徴とするデータ処理システム。
  2. 【請求項2】レディ待ち行列の前記割り当て可能範囲
    は、前記タスククラスのそれぞれと関連し且つ該タスク
    クラスに対して割り当て可能な優先順位の範囲の中心を
    指定する記憶された範囲分割信号と、前記範囲内にいく
    つの優先順位があるかを指定する記憶された半径信号と
    によって定められる、 ことを特徴とする特許請求の範囲第1項に記載のデータ
    処理システム。
  3. 【請求項3】前記処理時間期限は、複数の値を有し、且
    つ特定のタスク及び前記プロセッサによる特定の処理に
    対して、前記タスククラスに対する前記割り当て可能範
    囲において前記タスクが最後に割り当てられた前記レデ
    ィ待ち行列の相対的な位置を基準にして割り当てられ
    る、 ことを特徴とする特許請求の範囲第1項に記載のデータ
    処理システム。
  4. 【請求項4】前記処理時間期限は2個の値を有し、短い
    方の前記処理時間期限は、前記プロセッサによって同時
    に処理されるI/Oバウンドのタスクの平均CPUバースト時
    間の1/2倍ないし1倍である、 ことを特徴とする特許請求の範囲第3項に記載のデータ
    処理システム。
  5. 【請求項5】前記処理時間期限は2個の値を有し、長い
    方の前記処理時間期限は、前記プロセッサによって同時
    に処理されるCPUバウンドのタスクの平均CPUバースト時
    間の1/2倍ないし1倍である、 ことを特徴とする特許請求の範囲第3項に記載のデータ
    処理システム。
JP61045133A 1985-03-01 1986-03-01 チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム Expired - Lifetime JPH0756634B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/707,304 US4736318A (en) 1985-03-01 1985-03-01 Data processing system having tunable operating system means
US707304 1985-03-01

Publications (2)

Publication Number Publication Date
JPS61262938A JPS61262938A (ja) 1986-11-20
JPH0756634B2 true JPH0756634B2 (ja) 1995-06-14

Family

ID=24841167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61045133A Expired - Lifetime JPH0756634B2 (ja) 1985-03-01 1986-03-01 チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム

Country Status (6)

Country Link
US (2) US4736318A (ja)
EP (1) EP0194533B1 (ja)
JP (1) JPH0756634B2 (ja)
AU (1) AU587427B2 (ja)
CA (1) CA1248637A (ja)
DE (1) DE3681609D1 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736318A (en) * 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
JPS62221732A (ja) * 1986-03-24 1987-09-29 Nec Corp 情報処理装置
US4980824A (en) * 1986-10-29 1990-12-25 United Technologies Corporation Event driven executive
US5764922A (en) * 1986-11-04 1998-06-09 Unisys Corporation I/O system for off-loading operating system functions
US5381546A (en) * 1987-04-13 1995-01-10 Gte Laboratories Incorporated Control process for allocating services in communications systems
ATE134779T1 (de) * 1987-06-12 1996-03-15 Bmc Software Inc Supervisorverfahren für ein rechnerbetriebssystem
US5010482A (en) * 1987-07-02 1991-04-23 Unisys Corp. Multi-event mechanism for queuing happened events for a large data processing system
US4918595A (en) * 1987-07-31 1990-04-17 International Business Machines Corp. Subsystem input service for dynamically scheduling work for a computer system
IE872626L (en) * 1987-09-29 1988-04-01 Smithkline Beckman Corp Affinity adsorbents for glycopeptide antibiotics.
US5255185A (en) * 1988-04-18 1993-10-19 Brunswick Bowling & Billiards Corp. Bowling center video display system
EP0381655A3 (en) * 1989-01-31 1992-12-02 International Business Machines Corporation Method for synchronizing the dispatching of tasks among multitasking operating systems
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
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
JP3153906B2 (ja) * 1989-02-24 2001-04-09 アドヴァンスド マイクロ デヴァイセス インコーポレイテッド コンピュータの分散型パイプライン制御装置及び方法
EP0384635B1 (en) * 1989-02-24 1997-08-13 AT&T Corp. Adaptive job scheduling for multiprocessing systems
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JPH02300939A (ja) * 1989-05-16 1990-12-13 Toshiba Corp セマフォオペレーション方式
US5283900A (en) * 1989-10-02 1994-02-01 Spectron Microsystems, Inc. Real-time operating system and virtual digital signal processor for the control of a digital signal processor
US5392426A (en) * 1989-12-15 1995-02-21 Nynex Corporation, Inc. Method and apparatus for use in program operation, control and control block management and storage
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
GB2244025B (en) * 1990-03-19 1994-03-30 Ricoh Kk Control system for image forming equipment
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
JPH04149642A (ja) * 1990-10-08 1992-05-22 Canon Inc 情報処理装置
US5287523A (en) * 1990-10-09 1994-02-15 Motorola, Inc. Method for servicing a peripheral interrupt request in a microcontroller
US5220653A (en) * 1990-10-26 1993-06-15 International Business Machines Corporation Scheduling input/output operations in multitasking systems
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
EP0537721B1 (en) * 1991-10-15 1998-11-25 Hewlett-Packard Company Hardware-configured operating system kernel for a multitasking processor
US5394547A (en) * 1991-12-24 1995-02-28 International Business Machines Corporation Data processing system and method having selectable scheduler
US5333319A (en) * 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5367637A (en) * 1992-03-26 1994-11-22 International Business Machines Corporation Self-tuning virtual storage management for dedicated real-time computer system
US5386561A (en) * 1992-03-31 1995-01-31 International Business Machines Corporation Method of integrated system load control through dynamic time-slicing in a virtual storage environment
US6021425A (en) * 1992-04-03 2000-02-01 International Business Machines Corporation System and method for optimizing dispatch latency of tasks in a data processing system
US5452457A (en) * 1993-01-29 1995-09-19 International Business Machines Corporation Program construct and methods/systems for optimizing assembled code for execution
EP0617361B1 (en) * 1993-03-26 2001-11-28 Cabletron Systems, Inc. Scheduling method and apparatus for a communication network
US5504904A (en) * 1994-02-23 1996-04-02 International Business Machines Corporation Personal computer having operating system definition file for configuring computer system
US5473773A (en) * 1994-04-04 1995-12-05 International Business Machines Corporation Apparatus and method for managing a data processing system workload according to two or more distinct processing goals
US5537542A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
US6430592B1 (en) * 1994-06-02 2002-08-06 International Business Machines Corporation System for sharing CPU time amongst multiple users
DE19500957A1 (de) * 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen
US5511220A (en) * 1994-09-01 1996-04-23 Perlman; Noah Multi-user computer system with a clock driven batch dispatching mechanism
FR2724243B1 (fr) * 1994-09-06 1997-08-14 Sgs Thomson Microelectronics Systeme de traitement multitaches
US5828879A (en) * 1994-12-22 1998-10-27 Fore Systems, Inc. Method and a scheduler for controlling when a server provides service to an entity
US5636124A (en) * 1995-03-08 1997-06-03 Allen-Bradley Company, Inc. Multitasking industrial controller
US5627745A (en) * 1995-05-03 1997-05-06 Allen-Bradley Company, Inc. Parallel processing in a multitasking industrial controller
US6934325B2 (en) * 1996-01-08 2005-08-23 Smart Link Ltd. Multi-line distributed modem
IL116708A (en) * 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
US6457037B1 (en) 1996-12-30 2002-09-24 Smart Link Ltd. Method and system for controlling the CPU consumption of soft modems
US5768572A (en) * 1996-02-05 1998-06-16 International Business Machines Corporation Timer state control optimized for frequent cancel and reset operations
WO1998009225A1 (en) * 1996-08-29 1998-03-05 Nematron Corporation Real time software system
US6385638B1 (en) * 1997-09-04 2002-05-07 Equator Technologies, Inc. Processor resource distributor and method
US7437725B1 (en) * 1999-01-04 2008-10-14 General Electric Company Processing techniques for servers handling client/server traffic and communications
US6411982B2 (en) * 1998-05-28 2002-06-25 Hewlett-Packard Company Thread based governor for time scheduled process execution
US6212543B1 (en) * 1998-12-10 2001-04-03 Intel Corporation Asymmetric write-only message queuing architecture
US6334159B1 (en) * 1998-12-22 2001-12-25 Unisys Corporation Method and apparatus for scheduling requests within a data processing system
US6442682B1 (en) * 1999-02-18 2002-08-27 Auspex Systems, Inc. Characterization of data access using file system
US6438704B1 (en) 1999-03-25 2002-08-20 International Business Machines Corporation System and method for scheduling use of system resources among a plurality of limited users
US6434708B1 (en) * 1999-04-09 2002-08-13 Integrated Technology Express, Inc. Programmable timer & methods for scheduling time slices executed by a controller circuit
US6976260B1 (en) 1999-09-24 2005-12-13 International Business Machines Corporation Method and apparatus for serializing a message queue in a multiprocessing environment
US6697834B1 (en) * 1999-12-01 2004-02-24 Sun Microsystems, Inc. Mutual exculsion system and method for restarting critical sections of code when preempted during a critical section
GB2366401B (en) 2000-08-25 2005-06-01 Mitel Corp Resource sharing with sliding constraints
US6854048B1 (en) 2001-08-08 2005-02-08 Sun Microsystems Speculative execution control with programmable indicator and deactivation of multiaccess recovery mechanism
US6877088B2 (en) * 2001-08-08 2005-04-05 Sun Microsystems, Inc. Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition
US6799236B1 (en) 2001-11-20 2004-09-28 Sun Microsystems, Inc. Methods and apparatus for executing code while avoiding interference
KR100446510B1 (ko) * 2002-02-04 2004-09-04 삼성전자주식회사 휴대용 전자단말의 전원 관리 방법
GB2388213A (en) * 2002-04-30 2003-11-05 Innovation Ct Improvements relating to task dispatch in priority pre-emptive real-time operating systems
US6934368B2 (en) * 2002-08-12 2005-08-23 Smartlink Ltd. Multi-band modem
US20040095257A1 (en) * 2002-08-12 2004-05-20 Smartlink Ltd. High-speed analog modem
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
US7178062B1 (en) 2003-03-12 2007-02-13 Sun Microsystems, Inc. Methods and apparatus for executing code while avoiding interference
US7139846B1 (en) * 2003-09-30 2006-11-21 Veritas Operating Corporation Computer system and method for performing low impact backup operations
US7594234B1 (en) 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
US7644409B2 (en) * 2004-06-04 2010-01-05 Sun Microsystems, Inc. Techniques for accessing a shared resource using an improved synchronization mechanism
US7475397B1 (en) 2004-07-28 2009-01-06 Sun Microsystems, Inc. Methods and apparatus for providing a remote serialization guarantee
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
US8387052B2 (en) 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US7253606B2 (en) * 2005-07-18 2007-08-07 Agilent Technologies, Inc. Framework that maximizes the usage of testhead resources in in-circuit test system
US8898669B2 (en) * 2007-07-30 2014-11-25 International Business Machines Corporation Methods and systems for coordinated transactions
US8959516B2 (en) 2007-07-30 2015-02-17 International Business Machines Corporation Methods and systems for coordinated financial transactions in distributed and parallel environments
WO2010089808A1 (ja) * 2009-02-09 2010-08-12 富士通株式会社 仮想計算機の割当方法及び割当プログラム並びに仮想計算機環境を有する情報処理装置
US20150121387A1 (en) * 2013-10-30 2015-04-30 Mediatek Inc. Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
US9858115B2 (en) * 2013-10-30 2018-01-02 Mediatek Inc. Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN103729241B (zh) * 2013-12-12 2016-08-31 华中科技大学 一种多核环境下OpenMP任务并行的优化方法
CN106020951A (zh) * 2016-05-12 2016-10-12 中国农业银行股份有限公司 一种任务调度方法及系统
CN111274024B (zh) * 2019-03-19 2023-05-30 中标软件有限公司 基于cfs调度器的就绪队列平均负载优化方法及数据结构
CN111198546B (zh) * 2020-01-02 2021-04-06 北京众信易保科技有限公司 一种数据采集控制的方法及系统
CN116720712B (zh) * 2023-08-07 2023-12-29 泰能天然气有限公司 一种燃气应急调度数据管理系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588837A (en) * 1968-12-30 1971-06-28 Comcet Inc Systems activity monitor
US3686641A (en) * 1970-09-30 1972-08-22 Burroughs Corp Multiprogram digital processing system with interprogram communication
US4099235A (en) * 1972-02-08 1978-07-04 Siemens Aktiengesellschaft Method of operating a data processing system
US4183083A (en) * 1972-04-14 1980-01-08 Duquesne Systems, Inc. Method of operating a multiprogrammed computing system
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US4177513A (en) * 1977-07-08 1979-12-04 International Business Machines Corporation Task handling apparatus for a computer system
DE2754890C2 (de) * 1977-12-09 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Programmunterbrechung
GB2012084B (en) * 1978-01-09 1982-03-17 Honeywell Inf Systems Data processing systems
JPS5523527A (en) * 1978-08-02 1980-02-20 Nec Corp Dispatching system
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
JPS57191731A (en) * 1981-05-21 1982-11-25 Nec Corp Operating system for terminal equipment
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4736318A (en) * 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means

Also Published As

Publication number Publication date
EP0194533B1 (en) 1991-09-25
EP0194533A2 (en) 1986-09-17
JPS61262938A (ja) 1986-11-20
US4736318A (en) 1988-04-05
EP0194533A3 (en) 1988-08-24
AU587427B2 (en) 1989-08-17
DE3681609D1 (de) 1991-10-31
US4908750A (en) 1990-03-13
AU5421586A (en) 1986-09-04
CA1248637A (en) 1989-01-10

Similar Documents

Publication Publication Date Title
JPH0756634B2 (ja) チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US5220653A (en) Scheduling input/output operations in multitasking systems
US4642756A (en) Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
EP1365328B1 (en) Method for executing parallel process, and multi-processor computer
US7065766B2 (en) Apparatus and method for load balancing of fixed priority threads in a multiple run queue environment
US6353844B1 (en) Guaranteeing completion times for batch jobs without static partitioning
US5301324A (en) Method and apparatus for dynamic work reassignment among asymmetric, coupled processors
JP2002063148A (ja) 多重プロセッサ・システム
US7721035B2 (en) Multiprocessor system, processor and interrupt control method
JPH03103963A (ja) 複数プロセッサへのタスク割り当て装置及び方法
JPH11212809A (ja) プロセッサ共有方法および装置
US6473780B1 (en) Scheduling of direct memory access
JP2003256221A (ja) 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
US4945470A (en) Hierarchy multi-processor system and control method therefor
Bunt Scheduling techniques for operating systems
JP2667575B2 (ja) タスクスケジューリング方式
JPH07234847A (ja) ジョブのスケジューリング方法
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
CN113448705B (zh) 一种不平衡作业调度算法
JP2000330801A (ja) ジョブ処理装置、ジョブ処理システム及び記憶媒体
JPH04257915A (ja) 情報処理装置
JPS63163640A (ja) スケジユ−リング方式
WO1992003784A1 (en) Scheduling method for a multiprocessing operating system
JPH113235A (ja) 仮想プロセッサによるタスク制御システム