JPH11212809A - プロセッサ共有方法および装置 - Google Patents

プロセッサ共有方法および装置

Info

Publication number
JPH11212809A
JPH11212809A JP10311865A JP31186598A JPH11212809A JP H11212809 A JPH11212809 A JP H11212809A JP 10311865 A JP10311865 A JP 10311865A JP 31186598 A JP31186598 A JP 31186598A JP H11212809 A JPH11212809 A JP H11212809A
Authority
JP
Japan
Prior art keywords
thread
processes
tickets
processor
ticket
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.)
Pending
Application number
JP10311865A
Other languages
English (en)
Inventor
Kelvin K Yue
ケルヴィン・ケイ・ユー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11212809A publication Critical patent/JPH11212809A/ja
Pending 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)
  • Debugging And Monitoring (AREA)
  • General Factory Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 単一プロセッサ・システムおよび/またはマ
ルチ・プロセッサ・システムにおいて比例的共有を実施
する方法および装置を提供する。 【解決手段】 マルチ・スレッド・コンピュータ・プロ
グラムを実行するシステム内において、比例的共有を実
施することを可能にする。「チケット」と称するメタフ
ァを用い、システム内の各プロセスは、ある数のチケッ
トを有し、各チケットは、プロセスにタイム・クアンタ
ムの期間にわたってプロセッサを使用する許可を与え
る。オペレーティング・システムは、最もチケット数が
多いプロセスに最初にプロセッサ(複数のプロセッサ)
を割り与える。各プロセス(またはスレッド)が所定の
時間量にわたって実行し終えると、当該プロセス/スレ
ッドのチケットをそれに応じて調節し、実行のために新
たなプロセス(またはスレッド)を選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本願は、オペレーティング・
システムに関し、特に、複数のプロセスに1つ以上のプ
ロセッサを比例的に共有させる方法および装置に関する
ものである。
【0002】
【従来の技術】最新のコンピュータ・システムは、その
殆どがマルチタスキング・システムである。即ち、これ
らは、1つ以上の「ジョブ」または「プロセス」を所与
の時点に同時にアクティブにすることを可能にする。シ
ステム内にはプロセッサが1つしかない(または、プロ
セッサの数がジョブ/プロセスの数よりも少ない)場合
が多いので、ジョブ/プロセスがプロセッサ資源を共有
することが必要となる。共有プロセッサ(shared
processor)・システムでは、ある時間を費
やしてプロセッサは第1のジョブ/プロセスの一部を実
行し、その後他のジョブ/プロセスの一部を実行するよ
うに切り替える。したがって、人間のユーザには、1つ
以上のジョブ/プロセスが所与の時点に同時に実行され
ているように見える。
【0003】複数のアプリケーション、プロセス、また
はジョブがコンピュータ・システム内の1つ以上のプロ
セッサを共有する場合、プロセッサを公平に共有する方
法を決定する必要がある。例えば、ジョブAは、ジョブ
Bよりも2倍緊急性を要する場合がある。他の例とし
て、ユーザXおよびユーザYがコンピュータ・システム
を共有し、ユーザXがユーザYよりも3倍多く料金を支
払う場合、ユーザXはユーザYよりも3倍プロセッサ資
源が割り当てられることを望む。
【0004】更に、コンピュータ・システムには、「マ
ルチ・スレッド」コンピュータ・プログラム(mult
i−threaded computer proga
ram)を実行するものもあり、1つのプロセスの複数
の「スレッド」が同時に実行することができる。マルチ
・スレッド処理は、オペレーティング・システムおよび
プロセッサの共有に、余分な複雑度の負担(note)
を付け加えることになる。
【0005】一例として、多くの従来のオペレーティン
グ・システムは、優先度に基づく手法を用いて複数のジ
ョブ、スレッド、ユーザ、またはプロセスを1つ以上の
プロセッサに割り当てる。したがって、優先度が最も高
いジョブの実行は、それよりも優先度が低いジョブより
も前に行われる。従来のオペレーティング・システムの
中には、高優先度ジョブが終了するまでこれを実行し、
その後に低優先度ジョブを実行するものがある。
【0006】
【発明が解決しようとする課題】Solarisオペレ
ーティング・システム(サンマイクロシステムズ社から
入手可能)の少なくとも1つの実施態様では、優先度が
最高のジョブをある時間期間実行し、次いでその優先度
を判定し直す。従来のSolarisシステムにおいて
アプリケーションの優先度を定義するスケジューリング
・クラスには現在4つの異なるものがあり、それらはリ
アル・タイム(Real Time:RT)、システム
(System:SYS)、インタラクティブ(Int
eractive:IA)、およびタイムシェアリング
(Timesharing:TS)である。あるジョブ
が、その実行後に未だシステム内における最高の優先度
を有する場合、更にある時間期間実行することを許され
(例えば、20ないし200ミリ秒)、その後、優先度
を再度判定し直す。再判定の後、それがもはやシステム
内で最も優先度が高いジョブではなくなった場合、より
高い優先度を有するジョブを実行する。しかしながら、
あるジョブが最高の優先度を維持する場合、他のアプリ
ケーションは実行の機会を全く得ることができない。
【0007】
【課題を解決するための手段】本発明の第1の好適な実
施態様は、単一プロセッサ・システムおよび/またはマ
ルチ・プロセッサ・システムにおいて、単一スレッド・
アプリケーション間で、比例的共有を実施する方法およ
び装置を提供する。本発明の第2の好適な実施形態は、
単一プロセッサ・システムおよび/またはマルチ・プロ
セッサ・システムにおいて、マルチ・スレッド・アプリ
ケーション間で、比例的共有を実施する方法および装置
を提供する。本発明の第3の好適な実施形態は、単一プ
ロセッサ・システムおよび/または複数プロセッサ・シ
ステムにおいて、ユーザのジョブ間で階層的な共有を実
施する方法および装置を提供する。これらの好適な実施
形態の各々について、以下で詳しく説明する。
【0008】本発明は、「チケット(ticket)」
というメタファ(比喩的表現)を用いる。好適な実施形
態では、システム内の各プロセスはある数のチケットを
有し、各チケットは、当該プロセスのスレッドに、ある
時間間隔(「タイム・クアンタム(time quan
tum)」)プロセッサを使用する権利を与える。オペ
レーティング・システムは最も多くのチケットを有する
プロセスのスレッドに、最初にプロセッサ時間を割り当
てる。所定の時間量の間実行し、各スレッド(またはプ
ロセス)が終了する毎に、当該スレッドが属するプロセ
スのチケットを適宜調節し、新たなスレッドを選択し実
行する。
【0009】一例として、プロセスAおよびプロセスB
に対するプロセッサ割当て比率がx:yとすると、プロ
セスAにはx個のチケットが与えられ、プロセスBには
y個のチケットが与えられる。プロセス(または当該プ
ロセスのスレッド)の優先度は、当該プロセスが現在有
するチケットの数に基づいて計算される。プロセスが現
在有するチケットが多いほど、そのスレッドの優先度は
高くなる。
【0010】オペレーティング・システムは、最高の優
先度を有する待機中のスレッドを取り出し実行する。ス
レッドを取り出し実行する毎に、そのプロセスが現在有
するチケットの数は減少していく。あるプロセスが保持
するチケット数が0に達した場合、チケット数はその初
期のチケット数にリセットされる。チケットは、システ
ム内の各プロセスに割り当てることができる。あるい
は、チケットは、各プロセスに割り当て、そのプロセス
の全スレッドで共有することも可能である。あるいは、
チケットは、プロセス・グループに割り当て、このグル
ープ内の全プロセスによって共有することも可能であ
る。
【0011】あるいは、チケットは、ユーザ・レベルで
割り当て、特定のユーザの全ジョブによって共有するこ
とも可能である。
【0012】本発明の目的によれば、ここに具現化しか
つ概述するように、本発明は、複数のプロセス間で、デ
ータ処理システムにおける少なくとも1つのプロセッサ
を共有する方法を提供する。この方法は、最初に、ある
数のチケットを前記複数のプロセスの各々に割り当てる
ステップと、スレッドに関連するプロセスに割り当てら
れたチケットの数にしたがって、複数のプロセスの各々
のスレッドに、初期優先度を割り当てるステップと、ス
レッドのいずれの2つの間でも実行時間割合が、スレッ
ドに関連する2つのプロセスのチケット数の間の割合と
同一となるように、複数のプロセスに割り当てられたチ
ケットによって示される順序で複数のプロセスの各スレ
ッドを実行するステップを含み、これらは前述のデータ
処理システムによって実行される。
【0013】更に本発明の目的によれば、ここに具現化
しかつ概述するように、本発明は、データ処理システム
において、複数のマルチ・スレッド・アプリケーション
の複数のスレッド間で1つのプロセッサを共有する方法
に関する。この方法は、最初に、複数のマルチ・スレッ
ド・アプリケーションの各々に、それぞれのチケット数
を割り当てるステップと、各マルチ・スレッド・アプリ
ケーションに割り当てたチケット数にしたがって、複数
のマルチスレッド・アプリケーションの各々に、優先度
を割り当てるステップと、ディスパッチ・キュー(di
spatchqueue)上で他のスレッドに使用可能
な余裕がない場合、複数のマルチ・スレッド・アプリケ
ーションの少なくとも1つのスレッドをチケット・キュ
ー(ticket queue)に追加するステップ
と、ディスパッチ・キュー上に他のプロセスのための余
裕ができた場合、複数のマルチ・スレッド・アプリケー
ションの少なくとも1つのスレッドをディスパッチ・キ
ューに追加するステップを含み、これらのステップは前
述のデータ処理システムによって実行される。
【0014】更に本発明の目的によれば、ここに具現化
しかつ概述するように、本発明は、データ処理システム
において、第1のマルチ・スレッド・プロセスの複数の
スレッドと第2のマルチ・スレッド・プロセスの複数の
スレッドとの間で少なくとも1つのプロセッサを共有す
る方法に関する。この方法は、最初に、第1および第2
のマルチ・スレッド・プロセスにそれぞれのチケット数
を割り当てるステップと、各マルチ・スレッド・プロセ
スに割り当てたチケット数にしたがって、第1および第
2のマルチ・スレッド・プロセスの各々の少なくとも1
つのスレッドの優先度を割り当てるステップと、プロセ
スのいずれか2つの間の実行時間の割合が、2つのマル
チ・スレッド・プロセスのチケット数の間の割合と同じ
となるように、各マルチ・スレッド・プロセスに割り当
てられたチケットによって示される順序で、第1および
第2のマルチ・スレッド・プロセスのスレッドを実行す
るステップとを含み、これらのステップは前述のデータ
処理システムによって実行される。
【0015】更に本発明の目的によれば、ここに具現化
しかつ概述するように、本発明は、データ処理システム
のメモリ記憶エリアに格納するデータ構造に関し、この
データ構造は、マルチ・スレッド・プロセスの第1のス
レッドを表すデータ構造と、マルチ・スレッド・プロセ
スの第2のスレッドを表すデータ構造と、第1および第
2のスレッドが表すデータ構造によって指し示される、
チケット・キュー・データ構造であって、第1および第
2のスレッドが属するマルチ・スレッド・プロセスに対
して、初期チケット数を示す値を格納し、更にマルチ・
スレッド・プロセスに対して現チケット数を示す値を格
納するチケット・キュー・データ構造とから成る。
【0016】本発明の一層深い理解は、添付図面と関連
付けながら以下の説明および特許請求の範囲を参照する
ことによって明らかとなり、認めることができよう。
【0017】
【発明の実施の形態】これより、本発明の好適な実施形
態について詳細に検討する。その例を添付図面に示す。
好都合な場合には、図面全体で同一参照番号を用いて同
一または同様の部分を示すこととする。 1.概要 本発明は、単一スレッド・アプリケーションおよび/ま
たはマルチ・スレッド・アプリケーションを実行するシ
ステム、および単一プロセッサまたは複数のプロセッサ
を含むシステムを含む、多種多様のデータ処理システム
上で実施することができる。図1ないし図4は、これら
のシステム各々の例をそれぞれ示す。
【0018】本発明は、「チケット」というメタファを
用いる。本発明の好適な実施形態では、システム内の各
プロセスはある数のチケットを有し、各チケットは、当
該プロセスのスレッドに、ある時間間隔(「タイム・ク
アンタム」)プロセッサを使用する権利を与える。オペ
レーティング・システムは最も多くのチケットを有する
プロセスのスレッドに、最初にプロセッサ時間を割り当
てる。所定の時間量の間実行し、各スレッド(またはプ
ロセス)が終了する毎に、当該スレッドが属するプロセ
スのチケットを適宜調節し、新たなスレッドを選択し実
行する。一実施形態では、チケット所有者は、正の整数
値の数のチケットのみを有することができる。代替実施
形態では、チケット所有者は、分数または負数のチケッ
トを有することができる。
【0019】好適な実施形態では、システム内の各プロ
セスはある数のチケットを有し、各チケットは、当該プ
ロセスのスレッドに、ある時間間隔(「タイム・クアン
タム」)プロセッサを使用する権利を与える。
【0020】図1は、データ処理システム100のブロ
ック図である。データ処理システム100は、単一のプ
ロセッサ102、メモリ104,入出力ライン105、
キーボード、マウス、または音声入力デバイスのような
入力デバイス150、表示端末のような表示装置160
を有する。また、データ処理システム100は、フロッ
ピ・ディスク・ドライブ、CD ROM読み取り装置、
またはDVD読み取り装置のような入力デバイス161
も含み、フロッピ・ディスク、CD ROM、またはD
VDドライブのようなコンピュータ読取可能媒体162
上に格納されたコンピュータ命令を読み取る。これらの
コンピュータ命令は、例えば、プロセス・スケジューラ
(scheduler)・ソフトウエア109の命令で
ある。
【0021】メモリ104は、1つ以上の単一スレッド
・アプリケーション(「プロセス」とも呼ぶ)106を
含み、その各々はスレッド107を有する。また、メモ
リ104はオペレーティング・システム(OS)108
も含み、OS108はプロセス・スケジューラ・ソフト
ウエア109を含む。説明中の本発明の実施形態のステ
ップが実行されるのは、プロセッサ102がプロセス・
スケジューラ・ソフトウエア109内の命令を実行する
ときである。データ処理システム100(およびここで
説明する他のデータ処理システム)は、例えば、SPA
RCチップを基本とするシステム、Ultraサーバ、
またはEnterpriseサーバ(これらは全て、サ
ン マイクロシステムズ社から入手可能である)とする
ことができる。また、データ処理システム100は、他
の適切なデータ処理システムのいずれかとすることも可
能である。
【0022】オペレーティング・システム108は、例
えば、Unixオペレーティング・システムの変形と
し、本発明を組み込むために修正したものとすることが
できる。UNIXは、米国およびその他の国において登
録商標であり、X/オープン社(X/Open Com
pany Ltd.)により独占的にライセンスされ
る。オペレーティング・システム108は、例えば、サ
ンマイクロシステムズ社から入手可能なSolaris
オペレーティング・システムの変形とし、本発明のファ
ンクショナリティ(functionality)を組
み込んだものとすることができる。
【0023】尚、本発明は、プロセッサ(複数のプロセ
ッサ)およびメモリが異なるマシンに位置する、分散型
データ処理システムにおいても実施可能であることは認
められよう。また、本発明は、プロセス、スレッド、お
よび/またはプロセッサが全て同一コンピュータ内には
ない、分散型システム内にも実施可能であることも理解
されよう。本発明は、プロセス106が比例的にプロセ
ッサ102を共有できるようにするものであり、これに
ついて以下に説明する。
【0024】メモリ104は、アプリケーション・プロ
グラム、オペレーティング・システム、データ等のよう
な追加情報も含むが、これらは明確化のために図には示
されていないことを当業者は理解しよう。また、データ
処理システム100(またはここに記載した他のいずれ
かのデータ処理システム)は、ディスク・ドライブ、キ
ーボード、表示装置、ネットワーク接続、追加メモリ、
追加CPU、LAN、入出力ライン等のような、図示し
ない多数のエレメントを含み得ることも理解されよう。
【0025】以下の説明では、本発明は、いずれの特定
の実施形態またはプログラミング技法にも限定されず、
本発明は、ここに記載するファンクショナリティを実施
するためのあらゆる適切な技法を用いて実施可能である
ことは理解されよう。本発明は、適切なオペレーティン
グ・システムであればいずれにおいてでも、いずれの適
切なプログラミング言語またはプログラミング技法を用
いてでも、実施可能である。
【0026】図2は、複数のプロセッサ102およびメ
モリ104を有するデータ処理システム200のブロッ
ク図である。メモリ104は、1つ以上の単一スレッド
・アプリケーション(「プロセス」とも呼ぶ)106を
含み、その各々は1つのスレッド107を有する。ま
た、メモリ104はオペレーティング・システム(O
S)108も含み、これはプロセス・スケジューラ・ソ
フトウエア109を含む。説明中の本発明の実施形態の
ステップは、1つ以上のプロセッサ102’がプロセス
・スケジュール・ソフトウエア109内の命令を実行す
るときに行われる。本発明は、アプリケーション106
がプロセッサ102’を比例的に共有することを可能に
する。これについて以下に説明する。
【0027】図3は、単一のプロセッサ102およびメ
モリ104を有するデータ処理システム300のブロッ
ク図である。メモリ104は、1つ以上のマルチ・スレ
ッド・アプリケーション(「プロセス」とも呼ぶ)11
0を含み、その少なくとも1つは、複数のスレッド11
2を有する。また、メモリ104はオペレーティング・
システム(OS)108も含み、これはプロセス・スケ
ジューラ・ソフトウエア109を含む。説明中の本発明
の実施形態のステップは、プロセッサ102がプロセス
・スケジューラ・ソフトウエア109内の命令を実行す
るときに行われる。本発明は、各マルチ・スレッド・ア
プリケーション/プロセス110のスレッド112が、
以下に説明するように、プロセッサ102を比例的に共
有することを可能にする。
【0028】図4は、多数のプロセッサ102’および
メモリ104を有するデータ処理システム400のブロ
ック図である。メモリ104は、1つ以上のマルチ・ス
レッド・アプリケーション110(「プロセス」とも呼
ぶ)を含み、その少なくとも1つは複数のスレッド11
2を有する。また、メモリ104はオペレーティング・
システム(OS)108も含み、これはプロセス・スケ
ジューラ・ソフトウエア109を含む。説明中の本発明
の実施形態のステップは、1つ以上のプロセッサ10
2’がプロセス・スケジューラ・ソフトウエア109内
の命令を実行するときに行われる。本発明は、各マルチ
・スレッド・アプリケーション/プロセス110のスレ
ッド112が、以下に説明するように、プロセッサ10
2’を比例的に共有することを可能にする。 II.単一スレッド・アプリケーション 以下の章では、システムが単一スレッド・アプリケーシ
ョン(「プロセス」とも呼ぶ)を実行しているときに適
用可能な、本発明のいくつかの好適な実施形態につて説
明する。図5ないし図8は、単一スレッド・アプリケー
ションに関するものである。図9ないし図12は、マル
チ・スレッド・アプリケーションに関するものである。
【0029】単一スレッド・アプリケーションに関し
て、図5は、単一スレッド・アプリケーションが単一の
プロセッサを共有するシステム(図1のシステムのよう
な)において、本発明の好適な実施形態を実施するため
に用いられるデータ構造の一例を示す。図6は、単一ス
レッド・アプリケーションが多数のプロセッサ102’
を共有するシステムにおいて用いられるデータ構造を示
す。双方の図は、2つの単一スレッド・アプリケーショ
ン(プロセスAおよびプロセスB)に対するデータ構造
を示すが、適切ないずれの数のプロセス/アプリケーシ
ョンでも本システムでは実行可能であることは理解され
よう。
【0030】図5は、システムによって実行される各プ
ロセス106に対するproc_tデータ構造501、
およびシステムによって実行される各スレッドに対する
thread_tデータ構造502を示す。各proc
_tデータ構造501は、スレッド・リスト・ポインタ
511を通じて、そのスレッドのthread_tデー
タ構造502を指し示す。各単一スレッド・アプリケー
ションは、スレッドを1つだけ有する。各thread
_tデータ構造502は、フィールド510内のスレッ
ド・データ・ポインタを通じて、ps_proc_tデ
ータ構造504を指し示す。
【0031】各ps_proc_tデータ構造504
は、好ましくは、タイム・クアンタム・フィールド52
0、残り時間フィールド522、スレッド・ポインタ・
フィールド524、優先度フィールド526(当該プロ
セス/スレッドに対する優先度を収容する)、#チケッ
ト・フィールド528(当該プロセス/スレッドに割り
当てられた初期チケット数を収容する)、および#現チ
ケット・フィールド(現在当該プロセス/スレッドに保
持されているチケット数を収容する)530を含む。プ
ロセッサ102による実行を待っているプロセス/スレ
ッドは、一時的にディスパッチ・キュー103内に置か
れる。
【0032】プロセス/スレッドは、好ましいタイム・
クアンタム520に対して、プロセッサ102によって
実行される。プロセス/スレッドの実行の間、現タイム
・クアンタムの残り時間量は残り時間フィールド522
に格納される。プロセッサ上で実行するためにスレッド
またはプロセスを取り出すと、当該スレッド/プロセス
の残り時間フィールド522は、そのタイム・クアンタ
ムに等しくセットされる。例えば、あるタイム・クアン
タムが100ミリ秒(10クロック・ティック(tic
k))である場合、残り時間フィールド522は初めに
10ティックにセットされる。残り時間フィールド52
2は、プロセッサがスレッド/プロセスを実行する各ク
ロック・ティック毎に、OS108によって減分(ディ
クリメント)される。残り時間フィールド522が必要
とされるのは、他の何らかの機能を実行するために、ス
レッド/プロセスの実行の間、プロセッサは非常に頻繁
に割り込まれるからである。残り時間フィールド522
を用いて、あるスレッド/プロセスのためにタイム・ク
アンタムがどれ位使用されたかについて追跡する。残り
時間フィールド522が0になったときは、スレッド/
プロセスがプロセッサを放棄し、その優先度を計算し直
すときである。
【0033】図6は、単一スレッド・アプリケーション
が複数のプロセッサ102’を共有するシステム(図2
のシステムのような)において、本発明の好適な実施形
態を実施するために用いられるデータ構造の一例を示
す。この図は、2つの単一スレッド・アプリケーション
(プロセスAおよびプロセスB)に対するデータ構造を
示すが、適切であればいずれの数のプロセスでも本シス
テムでは実行可能であることは理解されよう。
【0034】図7および図8は、図5または図6のデー
タ処理システムにおいて実行されるステップを示すフロ
ー・チャートである。この例では、図7および図8のス
テップは、プロセッサ102,102’またはその他の
何らかの適切なプロセッサが実行するプロセス・スケジ
ューリング・ソフトウエア109によって行われること
は理解されよう。本発明の好適な実施形態では、オペレ
ーティング・システム108は、サンマクロシステムズ
社から入手可能であるSolarisオペレーティング
・システムに基づいている。図7および図8のステップ
は、好ましくは、SolarisのRTスケジューリン
グ・クラスを変更することによって実施する。かかる実
施態様では、2つの新たなフィールド(#チケットおよ
び#現チケット)をrt_proc構造(ここでは、p
s_proc_tと呼ぶ)に追加することが好ましい。
Solarisのファンクションrt_tickも、以
下に述べるように変更し、保持されているチケット数に
応じて新たな優先度を計算し、所定のタイム・クアンタ
ムの間プロセス/スレッドを実行した後チケット数を減
少させ、更に現スレッドがプロセッサ(複数のプロセッ
サ)を使用し続けるべきか否かについて判断を行うよう
にすることが好ましい。
【0035】以下の表は、同時に実行しプロセスを2:
1の比率で共有するプロセスAおよびプロセスBという
2つのプロセスの一例を示す。この表について、図7お
よび図8のステップと関連付けて説明することにする。
【0036】
【表1】
【0037】最初に、図7のステップ652において、
プロセスAに2チケットが割り当てられ、プロセスBに
1チケットが割り当てられる。これらの値は、各プロセ
ス毎に、#チケット・フィールド528および#現チケ
ット・フィールド530に格納される。したがって、こ
れらの2つのプロセスのいずれのスレッド間でも、実行
時間の割合は2:1となる。何故なら、これは、2つの
プロセスに割り当てられたチケット数間の比率であるか
らである。プロセスAのスレッドには、初期優先度52
(50+2)が割り当てられ、プロセスBのスレッドに
は初期優先度51(50+1)が割り当てられる。初期
優先度「50」はこの例では任意であり、本発明の実施
形態ではいずれの適切な数とすることも可能である。こ
れらの優先度は、各プロセス毎に、フィールド526に
格納される。
【0038】ステップ654において、プロセスAのス
レッドを実行(ラン)する準備ができていることが判定
される。プロセスAのスレッドに対する優先度は、プロ
セスAのチケット数に基づいて、ステップ658におい
て計算する。こうして、プロセスAのスレッドは、ステ
ップ660において、ディスパッチ・キュー103(ま
たは103’)内に置かれる。
【0039】図8に示すように、ステップ674におい
て、プロセスAのスレッドは、ディスパッチ・キュー内
で最高の優先度を有する場合、プロセッサによる実行の
ために、最終的にディスパッチ・キューから取り出され
る。プロセスAのスレッドは、所定のタイム・クアンタ
ムの間(例えば、100ミリ秒。しかし、いずれの適切
なタイム・クアンタムでも使用可能である)、プロセッ
サ102,102’の一方によって実行される。実行の
間、プロセスのスレッドがそのタイム・クアンタムの間
に実行されている間、残り時間フィールド522が減分
されていく。実行の終了時には、残り時間フィールド5
22は0となる。
【0040】その実行中のスレッドのタイム・クアンタ
ムが終了した場合、ステップ676においてプロセスA
が保持しているチケット数が所定数(「1」のような)
だけ減分される。ステップ678において、プロセスが
保持しているチケット数が「0」となった場合、ステッ
プ680において当該プロセスに対するチケット数をそ
のプロセスの初期値にリセットし、制御はステップ69
0に移る。その他の場合、制御はステップ690に移
る。この例では、チケット数は2から1に減分される。
この値は、プロセスAに対する#現チケット・フィール
ド530に格納される。
【0041】ステップ690において、プロセスAのス
レッドの優先度を計算し直す。この例では、プロセスA
のスレッドの優先度は51である。これは、プロセスA
が保持する現チケット数が1であるからである。ステッ
プ692において、このスレッドを再度ディスパッチ・
キューに戻す(勿論、実行が完了していないからであ
る)。
【0042】この例では、次に制御は図8のステップ6
74に移り、ここで、プロセスBのスレッドがプロセス
Aのスレッドと同じ優先度を有するので、プロセスAの
スレッドが待ち、プロセスBのスレッドを実行すること
を判定する。(プロセスBのスレッドは、以前よりディ
スパッチ・キューに置かれていた)。所定の時間量にわ
たってプロセスBのスレッドを実行した後、プロセスB
が有するチケット数を「1」減らし、プロセスBにゼロ
・チケットを与える。ステップ680において、プロセ
スBが保持している#現チケット530をその初期値
「1」にセットし直す。次に、プロセスBのスレッドに
対する優先度を計算し直し、再び「51」の優先度が得
られる。プロセスAのスレッドは同じ優先度を有するの
で、次にプロセスAのスレッドを実行する。プロセスA
のスレッドを実行した後、プロセスAの現チケット数を
「0」に減らし、再び「2」にリセットする。
【0043】図8のステップは、プロセスAおよびプロ
セスB双方を完全に実行し終えるまで、表に示すように
繰り返される。尚、この例では、プロセスAのスレッド
は4クアンタム・タイム単位で実行され、一方プロセス
Bのスレッドは2クアンタム・タイム単位で実行される
ことを注記しておく。これによって、プロセスがプロセ
ッサ(複数のプロセッサ)を競合している間、実行比率
2:1が得られる。
【0044】追加の例として、プロセスAが短い実行時
間を有するプロセスまたはアプリケーションであり、プ
ロセスBが長い実行時間を有する(更に、2つの実行プ
ロセスしかないと仮定する)場合、プロセスAの実行を
終了した後、プロセスBは全実行時間を得る。本発明の
記載中の実施形態では、双方のアプリケーションがプロ
セッサを競合しているときはいつでも、比例性を保存す
る。
【0045】追加の例として、プロセスA,Bが双方と
も長時間実行アプリケーションであるが、プロセスAは
途中でユーザからの何らかの入力を待つために停止する
場合、プロセスA,Bは、プロセスAが停止するまで、
2:1の比率を有する。次いで、プロセスAが入力を待
っている間、プロセスBが全てのプロセッサ時間を有す
る。ユーザが彼の入力を行った後、プロセッサA,Bは
再び2:1の比率を有する。しかしながら、各ジョブ毎
に費やされる全プロセッサ時間間の比率は、プロセッサ
Aの待ち時間の長さによって変わってくる。この場合
も、説明中の本発明の実施形態は、双方のアプリケーシ
ョンがプロセッサを競合しているときはいつでも、比例
性を保存する。 III.マルチ・スレッド・アプリケーション 図9は、マルチ・スレッド・アプリケーションを実行可
能な単一プロセッサ・システム(図3のシステムのよう
な)において、本発明の好適な実施形態を実施するため
に用いられるデータ構造の一例を示す。図10は、マル
チ・スレッド・アプリケーションを実行可能な(図4の
システムのような)マルチ・プロセッサ・システムにお
いて、本発明の好適な実施形態を実施するために用いら
れるデータ構造の一例を示す。図11および図12は、
図9または図10のデータ構造を用いて、ステップを示
すフロー・チャートである。
【0046】図9および図10のデータ構造は、図5お
よび図6のデータ構造と同様であるが、マルチ・スレッ
ド・アプリケーションを実行可能なシステムにおいて、
各アプリケーション/プロセス内の多数のスレッドが、
チケット・データ構造705を通じて、それらのプロセ
スのチケットをそれらの間で「共有」することを除く。
尚、図9および図10のシステムは、マルチ・スレッド
・アプリケーションに加えて、単一スレッド・アプリケ
ーション(図示せず)を含むことも可能であることは理
解されよう。各スレッドはそれ自体の優先度726を有
するが、チケットは、チケット構造705のフィールド
740,742内のプロセス・レベルに保持される。ま
た、チケット・データ構造705は、チケット・キュー
・ポインタ748および#スロット・フィールド746
も含む。#スロット・フィールド746は、各プロセス
に割り当てられるプロセッサ・スロットの数を示す。単
一プロセッサ・システムの場合、スロット数は常に
「1」である。複数プロセッサ・システムは、プロセッ
サ102’の数以下のあらゆる数のスロットでも有する
ことができる。チケット・キュー・ポインタ748は、
チケット・キュー750を指し示す。チケット・キュー
750の機能は、プロセッサ・スロットが入手可能にな
るのを待っているプロセスのスレッドを保持することで
ある。実行すべきスレッドはチケット・キュー750か
ら取り出され、プロセッサ102(または102’)に
よる実行のために、ディスパッチ・キュー103(10
3’)上に置かれる。
【0047】図11は、単一のプロセッサ102または
複数のプロセッサ102’を共有する、図9および図1
0のマルチ・スレッド・アプリケーションと共に実行す
るステップを示す。図11のステップ852において、
ある数のチケットおよびある数のスロットが各プロセス
に割り当てられる。スレッドの優先度は、当該優先度が
割り当てられたときの、そのプロセスのチケット構造7
05内にある現チケットの数に基づいて割り当てられ
る。したがって、同じプロセスの複数のスレッドが異な
る優先度を有する可能性がある。
【0048】スレッドがプロセッサ102,102’を
使用したい場合、最初に、使用可能なプロセッサ・スロ
ットがあるか否かについて判定するためにチェックを行
う(ステップ856)。使用可能なスロットがある場合
(即ち、チケット・キュー750内に待っているスレッ
ドが他にない場合)、ステップ858においてこのスレ
ッドに優先度が決定される。この優先度は、当該スレッ
ドのps_proc_tデータ構造504’のフィール
ド726内に置かれ、ステップ860においてこのスレ
ッドを実行のためにディスパッチ・キュー103に入れ
る。その他の場合(使用可能なプロセッサ・スロットが
ない場合)、スレッドはこのプロセスのためのチケット
・キュー750に入れられる(ステップ862)。ステ
ップ864において、スロットが使用可能になったとき
に、スレッドをチケット・キュー750から取り出し、
そのプロセスが保持する現チケット数に基づいて、その
優先度726を計算する。次に、スレッドは、実行のた
めのディスパッチ・キュー103に入れられる。
【0049】図12は、プロセッサ102による実行の
ためにスレッドをシステムのディスパッチ・キュー上に
配置した後に、スレッドを実行するステップを示す。ス
テップ874において、所定数のタイム・クアンタムに
わたってこのスレッドを実行した後、ステップ876に
おいて、そのプロセスに対する#現チケット742を
「1」だけ減少させる。ステップ878において、保持
されているチケットの数が「0」になった場合、チケッ
ト数をステップ880において当該プロセスの初期値に
リセットして、制御はステップ882に移る。その他の
場合、制御は直接ステップ882に移る。
【0050】ステップ882において、このプロセスに
対する他のスレッドがチケット・キュー750上にない
場合、ステップ884において現スレッドはそのスロッ
トを放棄し、再度チケット・キュー750に戻される。
そのスロットは、チケット・キュー750の先頭にある
スレッドに与えられ、ステップ886において、この新
たなスレッドに対して、プロセスに対する現チケット7
42数に基づいて新たな優先度が計算される。この新た
なスレッド(新たに割り当てられた優先度を有する)
は、ステップ888において、実行のためにディスパッ
チ・キュー103上に置かれる。
【0051】一方、ステップ882において、現スレッ
ドが実行を終了したときにチケット・キュー750内に
待っているスレッドがない場合、ステップ890におい
て、現スレッドの優先度を、プロセスに対する現チケッ
ト数に基づいて計算し直し、ステップ892において、
現スレッドを再度実行のためにディスパッチ・キュー1
03上に置く。尚、ステップ886,890は、スレッ
ドが属するプロセスが現在保持するチケット数に基づい
て、スレッドの優先度を計算し直すことを注記してお
く。
【0052】図10のシステムは複数のプロセッサ10
2’を含むので、各プロセスには、例えば、システム内
のプロセスの数に等しい数746の「スロット」が割り
当てられる。本発明の他の実施態様では、他の数のスロ
ットを用いることも可能である。例えば、スロットの数
は、システム内のプロセッサ数よりも小さくして、プロ
セスの実行の同時性を減少させることも可能である。説
明中の実施形態では、システムに2つのプロセッサがあ
る場合、スロット数は「2」となる。したがって、例え
ば、システム内にあるプロセッサ102’が2つのみで
あり、プロセスが10個のスレッドを有する場合、プロ
セスのスレッド2つのみを一度にシステムのディスパッ
チ・キューに入力することができる。残りのスレッド
は、チケット・キュー750上で待つことになる。
【0053】このように、本発明の好適な実施形態で
は、チケットがプロセスに割り当てられる。この場合、
プロセスは、単一スレッド・アプリケーションまたはマ
ルチ・スレッド・アプリケーションのいずれかである。
プロセスは、単一プロセッサまたはマルチ・プロセッサ
・システムのいずれかによって実行することができる。
システムは、スレッドの優先度に基づいて、次に実行す
るスレッドを決定する。優先度は、当該スレッドが属す
るプロセスが保持する現チケット数にしたがって判定さ
れる。ある種のマルチ・プロセッサ・システムでは、シ
ステムは空いているプロセッサ・スロットの数を追跡
し、全てのプロセス・スロットが使用中の場合、待って
いるスレッドをチケット・キューに整列する。説明中の
実施態様では、チケット・キューはFIFOである。 IV.ユーザ間における階層的比例共有 図13は、「階層的比例共有(hierarchica
l proportional sharing)」と
称する、本発明の他の変形を示す。この変形では、種々
のユーザに予めシステム資源の比例的共有分(prop
ortional share)を割り当てる。例え
ば、ユーザAおよびユーザBがシステムをx:yの比率
で共有し、ユーザAが3つのジョブを有し、一方ユーザ
Bは1つのジョブを有すると仮定する。ユーザAは例え
ば、1:2:4の比率で、ユーザAの3つのジョブ間
で、彼のシステム共有分を分配することができる。ユー
ザBは1つのジョブのみを有するので、ユーザBのジョ
ブは、ユーザBのシステム資源共有分の全てを得る。
尚、図13は複数のプロセッサを示すが、この実施形態
は単一プロセッサ・システムにおいても実施可能であ
る。
【0054】図13のデータ構造は、図5ないし図12
のデータ構造と同様であるが、チケットが各ユーザに割
り当てられ、次いでユーザのジョブによって共有される
点を除く。図13は多プロセッサ・システムを示すが、
階層的比例共有は単一プロセッサ・システムのためにも
実施可能である。各ジョブはそれ自体の優先度928を
有するが、チケットはユーザのレベルで、チケット構造
905のフィールド940,942内に保持される。ま
た、チケット構造905は、チケット・キュー・ポイン
タ948および#スロット・フィールド946も含む。
#スロット・フィールドは、各ユーザに割り当てられた
スロット数を示す。単一プロセッサ・システムの場合、
スロット数は常に「1」である。マルチ・プロセッサ・
システムは、プロセッサ数以下のスロット数を有するこ
とができる。チケット・キュー・ポインタ948はチケ
ット・キュー950を指し示す。チケット・キュー95
0の機能は、プロセッサ・スロットが使用可能となるの
を待っている、ユーザのジョブを保持することである。
実行すべきジョブはチケット・キュー950から取り出
され、プロセッサ102’の1つによる実行のために、
ディスパッチ・キュー103’上に置かれる。
【0055】図14は、複数のプロセッサ102’を共
有するユーザ間で共有する階層的プロセスと共に実行す
るステップを示す。図14のステップ1052におい
て、ある数のチケットが各ユーザに割り当てられる。ジ
ョブの優先度は、当該優先度が割り当てられたときの、
そのユーザのチケット構造905内にある現チケットの
数に基づく。したがって、同じユーザのジョブでも、異
なる優先度を有する可能性がある。
【0056】あるジョブがプロセッサ102’を使用し
たい場合、最初に、使用可能なプロセッサ・スロットが
あるか否かについて判定するためにチェックを行う(ス
テップ1056)。使用可能なスロットがある場合(即
ち、ジョブのユーザのチケット・キュー950内に待っ
ているスレッドが他にない場合)、ステップ1058に
おいてこのスレッドに優先度が決定され、ステップ10
60においてこのジョブは実行のためにディスパッチ・
キュー103’に入れられる。その他の場合(使用可能
なプロセッサ・スロットがない場合)、ジョブはこのユ
ーザのためのチケット・キュー950に入れられる(ス
テップ1062)。ステップ1064において、スロッ
トが使用可能になったときに、ジョブはチケット・キュ
ー950から取り出され、実行のためのディスパッチ・
キュー103’に入れられる。
【0057】図15は、プロセッサ102’の1つによ
る実行のためにジョブをシステムのディスパッチ・キュ
ー上に置いた後に、このジョブを実行するステップを示
す。ステップ1074において、所定のタイム・クアン
タム数にわたってジョブを実行した後、ステップ107
6において、#現チケット942を「1」だけ減少させ
る。ステップ1078において、保持されているチケッ
ト数が「0」になった場合、ステップ1080におい
て、チケット数をユーザの初期値にリセットし、制御は
ステップ1082に移る。その他の場合、制御は直接ス
テップ1082に移る。
【0058】ステップ1082において、他のジョブが
このユーザのチケット・キュー上にある場合、現ジョブ
はステップ1084においてそのスロットを放棄し、再
度チケット・キュー950上に戻される。そのスロット
は、チケット・キュー950の先頭にあるジョブに与え
られ、ステップ1086において、ユーザの現チケット
942の数に基づいて、この新たなジョブに新たな優先
度が計算される。この新たなジョブ(これに新たに割り
当てられた優先度を有する)は、ステップ1086にお
いて、実行のためにディスパッチ・キュー103’上に
置かれる。
【0059】一方、ステップ1082において、現ジョ
ブが実行を終了したときに、チケット・キュー950内
に待っているジョブがない場合、ステップ1090にお
いてユーザの現チケット数に基づいて、現ジョブの優先
度を計算し直し、ステップ1092において現ジョブ
は、実行のためにディスパッチ・キュー103’上に戻
される。尚、ステップ1086,1090は、ジョブが
属するユーザが現在保持しているチケット数に基づい
て、当該ジョブの優先度を計算し直すことを注記してお
く。
【0060】以上、本発明を具体的な実施形態に関連付
けて説明したが、前述の説明から多くの代替、変更およ
び変形も当業者には明白であることは明らかである。例
えば、多数のプロセスが単一のチケット・プールを共有
することが可能である(例えば、これらは共通のチケッ
ト構造を有してもよい)。同様に、複数のプロセスにお
けるスレッドが全て、単一のチケット・プールを共有す
ることも可能である。他の実施態様では、プロセスがそ
のチケットのいくつかを他のプロセスに転送することが
可能である。
【0061】したがって、特許請求の精神および範囲な
らびにその均等の範囲に該当する代替、変更および変形
全てを包含することを意図するものである。
【0062】尚、添付図面は、この明細書に組み込まれ
その一部を形成するが、本発明の種々の実施形態を例示
し、これまでの記載と合わせて、本発明の原理を説明す
る役割を果たすものである。
【図面の簡単な説明】
【図1】本発明の第1の好適な実施形態による、単一プ
ロセッサを有するデータ処理システム上で実行する複数
の単一スレッド・アプリケーションの一例を示す図であ
る。
【図2】本発明の第2の好適な実施形態による、複数の
プロセッサを有するデータ処理システム上で実行する複
数の単一スレッド・アプリケーションの一例を示す図で
ある。
【図3】本発明の第3の実施形態による、単一プロセッ
サを有するデータ処理システム上で実行する複数のマル
チ・スレッド・アプリケーションの一例を示す図であ
る。
【図4】本発明の第4の実施形態による、複数のプロセ
ッサを有するデータ処理システム上で実行する複数のマ
ルチ・スレッド・アプリケーションの一例を示す図であ
る。
【図5】複数の単一スレッド・アプリケーションが単一
プロセッサを共有する(図1のシステムのような)シス
テムにおいて、本発明の好適な実施形態を実施するため
に用いるデータ構造の一例を示す図である。
【図6】複数の単一スレッド・アプリケーションが複数
のプロセッサを共有する(図2のシステムのような)シ
ステムにおいて、本発明の好適な実施形態を実施するた
めに用いるデータ構造の一例を示す図である。
【図7】図5又は図6のデータ構造を用いるステップを
示すフロー・チャートである。
【図8】図5又は図6のデータ構造を用いるステップを
示すフロー・チャートである。
【図9】複数のマルチ・スレッド・アプリケーションが
単一のプロセッサを共有する(図3のシステムのよう
な)システムにおいて、本発明の好適な実施形態を実施
するために用いるデータ構造の一例を示す図である。
【図10】複数のマルチ・スレッド・アプリケーション
が多数のプロセッサを共有する(図4のシステムのよう
な)システムにおいて、本発明の好適な実施形態を実施
するために用いるデータ構造の一例を示す図である。
【図11】図9又は図10のデータ構造を用いるステッ
プを示すフロー・チャートである。
【図12】図9又は図10のデータ構造を用いるステッ
プを示すフロー・チャートである。
【図13】複数のプロセッサが複数のユーザのジョブ間
で共有されるシステムにおいて、本発明の好適な実施形
態を実施するために用いるデータ構造の一例を示す図で
ある。
【図14】図13のデータ処理システムにおいて実行さ
れるステップを示すフロー・チャートである。
【図15】図13のデータ処理システムにおいて実行さ
れるステップを示すフロー・チャートである。
【符号の説明】
100,200,300,400 データ処理システ
ム 102,102’ プロセッサ 103 ディスパッチ・キュー 104 メモリ 105 入出力ライン 106 単一スレッド・アプリケーション 107 スレッド 108 オペレーティング・システム(OS) 109 プロセス・スケジューラ・ソフトウエア 110 マルチ・スレッド・アプリケーション/プロ
セス 112 スレッド 150,161 入力デバイス 160 表示装置 162 コンピュータ読取可能媒体 501,502,504 データ構造 511 スレッド・リスト・ポインタ 510 フィールド 520 タイム・クアンタム・フィールド 522 残り時間フィールド 524 スレッド・ポインタ・フィールド 526 優先度フィールド526 528 #チケット・フィールド 530 #現チケット・フィールド 705,905 チケット構造 740,742,940,942 フィールド 748,948 チケット・キュー・ポインタ 746,946 #スロット・フィールド 750,950 チケット・キュー
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年1月14日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図11】
【図12】
【図9】
【図10】
【図13】
【図14】
【図15】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システムにおいて、複数のプ
    ロセス間で少なくとも1つのプロセッサを共有する方法
    であって、前記データ処理システムによって実行される
    以下のステップ,最初に、ある数のチケットを前記複数
    のプロセスの各々に割り当てるステップと、 スレッドに関連するプロセスに割り当てられたチケット
    数にしたがって、前記複数のプロセスの各々のスレッド
    に、初期優先度を割り当てるステップと、 前記スレッドのいずれか2つの間の実行時間割合が、前
    記スレッドに関連する2つのプロセスのチケット数間の
    割合と同一となるように、前記複数のプロセスに割り当
    てられた前記チケットによって示される順序で前記複数
    のプロセスの各スレッドを実行するステップ,を含む方
    法。
  2. 【請求項2】 請求項1記載の方法において、前記デー
    タ処理システムが複数のプロセッサを含み、前記データ
    処理システムが複数のプロセッサ・スロットを含み、 前記実行ステップが、使用可能なプロセッサ・スロット
    があるか否かについて判定を行うステップを含み、 更に、使用可能なプロセッサ・スロットがない場合、前
    記複数のプロセスの1つに関連するスレッドを、前記プ
    ロセスのチケット・キュー上に置き、前記スレッドが、
    前記チケット・キュー上で使用可能なプロセッサ・スロ
    ットを待つステップを含む、方法。
  3. 【請求項3】 請求項1記載の方法において、前記デー
    タ処理システムが複数のプロセッサを含み、前記データ
    処理システムが複数のプロセッサ・スロットを含み、 前記実行ステップが、使用可能なプロセッサ・スロット
    があるか否かについて判定を行うステップを含み、 更に、使用可能なプロセッサ・スロットがある場合、前
    記複数のプロセスの1つに関連するスレッドをプロセッ
    サ・ディスパッチ・キュー上に置くステップを含む、方
    法。
  4. 【請求項4】 請求項3記載の方法であって、更に、前
    記スレッドを前記ディスパッチ・キューに置く前に、前
    記スレッドのプロセスによって現在保持されているチケ
    ット数にしたがって、前記スレッドの優先度を計算する
    ステップを含む、方法。
  5. 【請求項5】 請求項4記載の方法において、前記実行
    ステップが、 所定時間期間にわたってスレッドが実行し終わった前記
    複数のプロセスの1つについて、ある数のチケットを減
    分するステップと、 前記減分ステップの後前記1つのプロセスに対するチケ
    ットの数が0に等しい場合、前記1つのプロセスに対す
    るチケット数を、当該1つのプロセスに対して最初に決
    定したチケット数に設定するステップと、を含む、方
    法。
  6. 【請求項6】 請求項4記載の方法において、前記実行
    ステップが、前記プロセスの前記スレッドを前記所定時
    間間隔にわたって実行した後、前記プロセスが保持する
    チケット数を計算し直すステップを含む、方法。
  7. 【請求項7】 請求項4記載の方法において、前記実行
    ステップが、前記スレッドを前記所定時間間隔にわたっ
    て実行し終えた後、より高い優先度を有する他のスレッ
    ドがあるか否かについてチェックを行うステップを含
    む、方法。
  8. 【請求項8】 請求項1記載の方法において、前記複数
    のプロセスの少なくとも1つが、マルチ・スレッド・ア
    プリケーションである、方法。
  9. 【請求項9】 データ処理システムにおいて、複数のマ
    ルチ・スレッド・アプリケーションの複数のスレッド間
    で1つのプロセッサを共有する方法であって、前記デー
    タ処理システムによって実行される以下のステップ、 最初に、前記複数のマルチ・スレッド・アプリケーショ
    ンの各々に、それぞれのチケット数を割り当てるステッ
    プと、 各マルチ・スレッド・アプリケーションに割り当てたチ
    ケット数にしたがって、前記複数のマルチ・スレッド・
    アプリケーションの各々に、優先度を割り当てるステッ
    プと、 ディスパッチ・キュー上で他のスレッドに使用可能な余
    裕ができた場合、前記複数のマルチ・スレッド・アプリ
    ケーションの少なくとも1つのスレッドをディスパッチ
    ・キューに追加するステップと、 前記ディスパッチ・キュー上に他のプロセスのための余
    裕がない場合、前記複数のマルチ・スレッド・アプリケ
    ーションの少なくとも1つのスレッドをチケット・キュ
    ーに追加するステップ、を含む方法。
  10. 【請求項10】 データ処理システムにおいて、第1の
    マルチ・スレッド・プロセスの複数のスレッドと第2の
    マルチ・スレッド・プロセスの複数のスレッドとの間で
    少なくとも1つのプロセッサを共有する方法であって、
    前記データ処理システムによって実行される以下のステ
    ップ、 最初に、前記第1および第2のマルチ・スレッド・プロ
    セスにそれぞれのチケット数を割り当てるステップと、 各マルチ・スレッド・プロセスに割り当てたチケット数
    にしたがって、前記第1および第2のマルチ・スレッド
    ・プロセスの各々の少なくとも1つのスレッドの優先度
    を割り当てるステップと、 前記プロセスのいずれか2つの間の実行時間の割合が、
    前記2つのマルチ・スレッド・プロセスのチケット数の
    間の割合と同じとなるように、各マルチ・スレッド・プ
    ロセスに割り当てられたチケットによって示される順序
    で、前記第1および第2のマルチ・スレッド・プロセス
    の前記スレッドを実行するステップと、を含む方法。
  11. 【請求項11】 データ処理システムのメモリ記憶エリ
    アに格納するデータ構造であって、 マルチ・スレッド・プロセスの第1のスレッドを表すデ
    ータ構造と、 マルチ・スレッド・プロセスの第2のスレッドを表すデ
    ータ構造と、 前記第1および第2のスレッドが表す前記データ構造に
    よって指し示される、チケット・キュー・データ構造で
    あって、前記第1および第2のスレッドが属する前記マ
    ルチ・スレッド・プロセスに対して、初期チケット数を
    示す値を格納し、更に前記マルチ・スレッド・プロセス
    に対して現チケット数を示す値を格納するチケット・キ
    ュー・データ構造と、を備えたデータ構造。
  12. 【請求項12】 データ処理システムにおいて複数のユ
    ーザ間で少なくとも1つのプロセッサを共有する方法で
    あって、前記ユーザは各々実行すべき複数のジョブを有
    し、前記データ処理システムによって実行される以下の
    ステップ、 最初に、前記複数のユーザの各々にある数のチケットを
    割り当てるステップと、 各ユーザに割り当てたチケット数にしたがって、前記複
    数のジョブの各々に優先度を割り当てるステップと、 2つのユーザのいずれかのジョブ間の実行時間の割合
    が、前記2つのユーザのチケット数の間の割合と同一と
    なるように、前記複数のユーザに割り当てられた前記チ
    ケットによって示される順序で、前記複数のユーザに属
    するジョブを実行するステップと、を含む方法。
  13. 【請求項13】 複数のプロセスにおいて複数のスレッ
    ド間で少なくとも1つのプロセッサを共有する方法であ
    って、 最初に、前記複数のプロセスにある数のチケットを割り
    当て、前記チケットを前記複数のプロセスにプールとし
    て割り当てるステップと、 前記複数のプロセスに割り当てたチケット数にしたがっ
    て、前記複数のプロセスの2つに関連する2つのスレッ
    ドの優先度を割り当てるステップと、 前記2つのスレッド間の実行時間の割合が、前記2つの
    プロセスのチケット数の間の割合と同一となるように、
    前記スレッドと関連する前記プロセスに割り当てられた
    チケットによって示される順序で、前記2つのスレッド
    を実行するステップと、を含む方法。
  14. 【請求項14】 コンピュータ・プログラム・プロダク
    トであって、 2つのプロセスの2つのスレッド間で実行時間を比例さ
    せるように実施されたコンピュータ読取可能コードを内
    部に有するコンピュータ使用可能媒体を備え、該コンピ
    ュータ・プログラム・プロダクトが、コンピュータに、
    最初に前記複数のプロセスの各々にある数のチケットを
    割り当てさせるように構成されたコンピュータ読取可能
    プログラム・コード・デバイスと、 コンピュータに、各プロセスに割り当てたチケット数に
    したがって、前記複数のプロセスの各々に優先度を割り
    当てさせるように構成されたコンピュータ読取可能プロ
    グラム・コード・デバイスと、 前記プロセスのいずれか2つの間の実行時間の割合が、
    当該2つのプロセスのチケット数の間の割合と同一とな
    るように、コンピュータに、前記複数のプロセスに割り
    当てられたチケットによって示される順序で前記複数の
    プロセスを実行させるように構成されたコンピュータ読
    取可能プログラム・コード・デバイスと、を備えたコン
    ピュータ・プログラム・プロダクト。
  15. 【請求項15】 キャリア波で表現されるコンピュータ
    ・データ信号であって、プロセッサによって実行される
    とき、 最初に、複数のプロセスの各々にある数のチケットを割
    り当てるステップと、各プロセスに割り当てたチケット
    数にしたがって、前記複数のプロセスの各々に優先度を
    割り当てるステップと、 前記プロセスのいずれか2つの間の実行時間の割合が、
    当該2つのプロセスのチケット数の間の割合と同一とな
    るように、前記複数のプロセスに割り当てられたチケッ
    トによって示される順序で前記複数のプロセスを実行す
    るステップと、を実行することによって、 前記プロセッサに、複数のプロセス間でデータ処理シス
    テム内の少なくとも1つのプロセッサを共有させる命令
    のシーケンスを表す、コンピュータ・データ信号。
  16. 【請求項16】 複数のプロセス間で、データ処理シス
    テムにおける少なくとも1つのプロセッサを比例的に共
    有する装置であって、 最初に、前記複数のプロセスの各々にある数のチケット
    を割り当るように構成された部分と、 各プロセッサに割り当てたチケット数にしたがって、前
    記複数のプロセスの各々に優先度を割り当てるように構
    成された部分と、 前記プロセスのいずれか2つの間の実行時間の割合が、
    当該2つのプロセスのチケット数の間の割合と同一とな
    るように、前記複数のプロセスに割り当てられたチケッ
    トによって示される順序で前記複数のプロセスを実行す
    るように構成された部分と、を備えた装置。
  17. 【請求項17】 複数のマルチ・スレッド・アプリケー
    ションの複数のスレッド間で少なくとも1つのプロセッ
    サを比例的に共有する装置であって、 最初に、前記複数のマルチ・スレッド・アプリケーショ
    ンの各々にそれぞれの数のチケットを割り当てるように
    構成された部分と、 各マルチ・スレッド・アプリケーションに割り当てたチ
    ケット数にしたがって、前記複数のマルチ・スレッド・
    アプリケーションの各々に優先度を割り当てるように構
    成された部分と、 ディスパッチ・キュー上で他のスレッドに使用可能な余
    裕ができた場合、前記複数のマルチ・スレッド・アプリ
    ケーションの少なくとも1つのスレッドをディスパッチ
    ・キューに追加するように構成された部分と、 前記ディスパッチ・キュー上に他のプロセスのための余
    裕がない場合、前記複数のマルチ・スレッド・アプリケ
    ーションの少なくとも1つのスレッドをチケット・キュ
    ーに追加するように構成された部分と、を備えた装置。
JP10311865A 1997-10-31 1998-11-02 プロセッサ共有方法および装置 Pending JPH11212809A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US962140 1997-10-31
US08/962,140 US5987492A (en) 1997-10-31 1997-10-31 Method and apparatus for processor sharing

Publications (1)

Publication Number Publication Date
JPH11212809A true JPH11212809A (ja) 1999-08-06

Family

ID=25505477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10311865A Pending JPH11212809A (ja) 1997-10-31 1998-11-02 プロセッサ共有方法および装置

Country Status (4)

Country Link
US (2) US5987492A (ja)
EP (1) EP0915418A3 (ja)
JP (1) JPH11212809A (ja)
CA (1) CA2252106A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299401A (ja) * 2006-04-27 2007-11-15 Internatl Business Mach Corp <Ibm> 個々のユーザの資源使用量およびその使用量の追跡に基づいた公平な共用分のスケジューリングを行う方法およびシステム
JP2007317171A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd マルチスレッド計算機システム、マルチスレッド実行制御方法
JP2008123045A (ja) * 2006-11-08 2008-05-29 Matsushita Electric Ind Co Ltd プロセッサ
US8001549B2 (en) 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
US8006244B2 (en) 2000-04-04 2011-08-23 International Business Machines Corporation Controller for multiple instruction thread processors
JP2013522724A (ja) * 2010-03-15 2013-06-13 クアルコム,インコーポレイテッド プロセッサにおいてスレッドを実行するシステムおよび方法
US8997106B2 (en) 2007-11-21 2015-03-31 Lenovo (Singapore) Pte Ltd Method of using tickets and use cost values to permit usage of a device by a process
US9703285B2 (en) 2006-04-27 2017-07-11 International Business Machines Corporation Fair share scheduling for mixed clusters with multiple resources

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987492A (en) 1997-10-31 1999-11-16 Sun Microsystems, Inc. Method and apparatus for processor sharing
US6374285B1 (en) * 1998-05-15 2002-04-16 Compaq Computer Corporation Method for mutual exclusion of locks in a remote-write globally ordered network of processors
US7805724B1 (en) * 1998-05-27 2010-09-28 Arc International I.P., Inc. Apparatus, method and computer program for dynamic slip control in real-time scheduling
US6952827B1 (en) * 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US6389449B1 (en) 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
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
US6964048B1 (en) * 1999-04-14 2005-11-08 Koninklijke Philips Electronics N.V. Method for dynamic loaning in rate monotonic real-time systems
US7518993B1 (en) * 1999-11-19 2009-04-14 The United States Of America As Represented By The Secretary Of The Navy Prioritizing resource utilization in multi-thread computing system
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US7856633B1 (en) * 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
WO2002006959A1 (en) 2000-07-14 2002-01-24 Clearwater Networks, Inc. Instruction fetch and dispatch in multithreaded system
US7155717B2 (en) * 2001-01-26 2006-12-26 Intel Corporation Apportioning a shared computer resource
US20020103990A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Programmed load precession machine
JP2004528635A (ja) * 2001-03-05 2004-09-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ブロッキングタスクからバジェットを取り除くための方法およびシステム
US7509671B1 (en) * 2001-06-20 2009-03-24 Microstrategy Incorporated Systems and methods for assigning priority to jobs in a reporting system
US7086059B2 (en) * 2001-06-26 2006-08-01 Intel Corporation Throttling queue
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US7961723B2 (en) 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US7924828B2 (en) 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US7765532B2 (en) * 2002-10-22 2010-07-27 Oracle America, Inc. Inducing concurrency in software code
US7346902B2 (en) * 2002-10-22 2008-03-18 Sun Microsystems, Inc. System and method for block-based concurrentization of software code
US7222218B2 (en) * 2002-10-22 2007-05-22 Sun Microsystems, Inc. System and method for goal-based scheduling of blocks of code for concurrent execution
US7603664B2 (en) * 2002-10-22 2009-10-13 Sun Microsystems, Inc. System and method for marking software code
GB2453284A (en) * 2004-04-02 2009-04-01 Symbian Software Ltd Mechanism for notifying a kernel of a thread entering a critical section.
US7770172B2 (en) * 2004-09-01 2010-08-03 Microsoft Corporation Conditional variables without spinlocks
US7525962B2 (en) * 2004-12-27 2009-04-28 Intel Corporation Reducing memory access bandwidth consumption in a hierarchical packet scheduler
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US8195922B2 (en) * 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US7606363B1 (en) 2005-07-26 2009-10-20 Rockwell Collins, Inc. System and method for context switching of a cryptographic engine
US7395418B1 (en) * 2005-09-22 2008-07-01 Sun Microsystems, Inc. Using a transactional execution mechanism to free up processor resources used by a busy-waiting thread
US8832705B1 (en) * 2005-12-28 2014-09-09 Emc Corporation Ordered mutual exclusion
US8468532B2 (en) * 2006-06-21 2013-06-18 International Business Machines Corporation Adjusting CPU time allocated to next thread based on gathered data in heterogeneous processor system having plurality of different instruction set architectures
US8136113B2 (en) * 2006-12-20 2012-03-13 International Business Machines Corporation Method and apparatus for adjusting sleep time of fixed high-priority threads
US8024739B2 (en) * 2007-01-09 2011-09-20 International Business Machines Corporation System for indicating and scheduling additional execution time based on determining whether the execution unit has yielded previously within a predetermined period of time
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US7930574B2 (en) * 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8806491B2 (en) 2007-12-31 2014-08-12 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
JP4996519B2 (ja) * 2008-03-27 2012-08-08 パナソニック株式会社 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
EP2477112A1 (en) 2010-12-29 2012-07-18 Basque Center for Applied Mathematics Method for efficient scheduling in a resource-sharing system
US9542236B2 (en) * 2011-12-29 2017-01-10 Oracle International Corporation Efficiency sequencer for multiple concurrently-executing threads of execution
CN103246552B (zh) * 2012-02-14 2018-03-09 腾讯科技(深圳)有限公司 防止线程出现阻塞的方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
EP0416768B1 (en) * 1989-09-08 1998-06-17 Digital Equipment Corporation Thread private memory storage for multi-thread digital data processors
US5421014A (en) * 1990-07-13 1995-05-30 I-Tech Corporation Method for controlling multi-thread operations issued by an initiator-type device to one or more target-type peripheral devices
US5506987A (en) * 1991-02-01 1996-04-09 Digital Equipment Corporation Affinity scheduling of processes on symmetric multiprocessing systems
US5500890A (en) * 1993-08-19 1996-03-19 Exxon Research And Engineering Company Point-of-sale system using multi-threaded transactions and interleaved file transfer
US5586318A (en) 1993-12-23 1996-12-17 Microsoft Corporation Method and system for managing ownership of a released synchronization mechanism
NZ281276A (en) * 1994-02-28 1998-07-28 British Telecomm Communications networks service delivery infrastructure interacting with billing and network management systems
US5822588A (en) * 1995-06-09 1998-10-13 Sun Microsystem, Inc. System and method for checking the use of synchronization locks in a multi-threaded target program
US5687390A (en) * 1995-11-14 1997-11-11 Eccs, Inc. Hierarchical queues within a storage array (RAID) controller
US5699428A (en) * 1996-01-16 1997-12-16 Symantec Corporation System for automatic decryption of file data on a per-use basis and automatic re-encryption within context of multi-threaded operating system under which applications run in real-time
US5937187A (en) 1996-07-01 1999-08-10 Sun Microsystems, Inc. Method and apparatus for execution and preemption control of computer process entities
US5987492A (en) 1997-10-31 1999-11-16 Sun Microsystems, Inc. Method and apparatus for processor sharing

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006244B2 (en) 2000-04-04 2011-08-23 International Business Machines Corporation Controller for multiple instruction thread processors
JP2007299401A (ja) * 2006-04-27 2007-11-15 Internatl Business Mach Corp <Ibm> 個々のユーザの資源使用量およびその使用量の追跡に基づいた公平な共用分のスケジューリングを行う方法およびシステム
JP2007317171A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd マルチスレッド計算機システム、マルチスレッド実行制御方法
US8001549B2 (en) 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
US8332863B2 (en) 2006-04-27 2012-12-11 International Business Machines Corporation Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US9703285B2 (en) 2006-04-27 2017-07-11 International Business Machines Corporation Fair share scheduling for mixed clusters with multiple resources
JP2008123045A (ja) * 2006-11-08 2008-05-29 Matsushita Electric Ind Co Ltd プロセッサ
US8141088B2 (en) 2006-11-08 2012-03-20 Panasonic Corporation Multithreaded processor
US8997106B2 (en) 2007-11-21 2015-03-31 Lenovo (Singapore) Pte Ltd Method of using tickets and use cost values to permit usage of a device by a process
JP2013522724A (ja) * 2010-03-15 2013-06-13 クアルコム,インコーポレイテッド プロセッサにおいてスレッドを実行するシステムおよび方法
US8904399B2 (en) 2010-03-15 2014-12-02 Qualcomm Incorporated System and method of executing threads at a processor

Also Published As

Publication number Publication date
US5987492A (en) 1999-11-16
EP0915418A2 (en) 1999-05-12
CA2252106A1 (en) 1999-04-30
EP0915418A3 (en) 2003-10-29
US6272517B1 (en) 2001-08-07

Similar Documents

Publication Publication Date Title
JPH11212809A (ja) プロセッサ共有方法および装置
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US6269391B1 (en) Multi-processor scheduling kernel
Jones et al. An overview of the Rialto real-time architecture
US6584488B1 (en) Controlling allocation of system resources with an enhanced priority calculation
JP3414520B2 (ja) マルチプロセッサ・システムにおけるタスク・スケジューリング方法
Zouaoui et al. Priority based round robin (PBRR) CPU scheduling algorithm.
US5828880A (en) Pipeline system and method for multiprocessor applications in which each of a plurality of threads execute all steps of a process characterized by normal and parallel steps on a respective datum
JP2866241B2 (ja) コンピュータシステムおよびスケジューリング方法
US7409689B2 (en) Providing predictable scheduling of programs using repeating precomputed schedules on discretely scheduled and/or multiprocessor operating systems
US7921422B2 (en) Method, apparatus and computer program product for borrowed-virtual-time scheduling
EP2312441B1 (en) Scheduling of instructions groups for cell processors
US6587865B1 (en) Locally made, globally coordinated resource allocation decisions based on information provided by the second-price auction model
JPH0756634B2 (ja) チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム
US20050066149A1 (en) Method and system for multithreaded processing using errands
EP0913770A2 (en) Method and apparatus for sharing a time quantum
US8010963B2 (en) Method, apparatus and program storage device for providing light weight system calls to improve user mode performance
US20110185365A1 (en) Data processing system, method for processing data and computer program product
CN112783651A (zh) 一种云平台vGPU负载均衡调度方法、介质及装置
Wani Operating System
Shakor Scheduling and synchronization algorithms in operating system: a survey
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JP3374480B2 (ja) データ処理装置
JP3278457B2 (ja) プログラム実行制御装置及びプログラム実行制御方法
Frisbie A unified scheduling model for precise computation control