JPH0954699A - 計算機のプロセススケジューラ - Google Patents

計算機のプロセススケジューラ

Info

Publication number
JPH0954699A
JPH0954699A JP7205424A JP20542495A JPH0954699A JP H0954699 A JPH0954699 A JP H0954699A JP 7205424 A JP7205424 A JP 7205424A JP 20542495 A JP20542495 A JP 20542495A JP H0954699 A JPH0954699 A JP H0954699A
Authority
JP
Japan
Prior art keywords
user
scheduler
priority
computer
class
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
JP7205424A
Other languages
English (en)
Inventor
Jun Kamata
順 蒲田
Masanobu Yuhara
雅信 湯原
Koshio Ono
越夫 小野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7205424A priority Critical patent/JPH0954699A/ja
Priority to US08/621,181 priority patent/US6108683A/en
Priority to GB9607228A priority patent/GB2304211B/en
Publication of JPH0954699A publication Critical patent/JPH0954699A/ja
Priority to US09/474,100 priority patent/US6668269B1/en
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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】OSがサポートするスケジューラを利用してユ
ーザプログラムでスケジューリングを行いながらも、マ
ルチメディアシステムが必要としているユーザプロセス
でのCPU利用を保証する。 【解決手段】OS14によりサポートされ、スケジュー
リング対象となる複数のプロセスに対し優先度を固定的
に定めると共に、優先度はユーザプロセスからの指定で
変更可能であり、実行可能なプロセスのうち優先度の高
いプロセスからCPUを割当てて動作させる計算機のプ
ロセススケジューラを利用する。この固定優先度プロセ
ススケジューラ、即ちリアルタイムクラス28のプロセ
ススケジューラ空間に、ユーザレベルプロセススケジュ
ーラ10を設ける。ユーザレベルプロセススケジューラ
10は、リアルタイムクラス28の第1優先度159を
持ち、第1優先度159より低い優先度を持つ他のユー
ザプロセス群11をスケジューリングして動作させる。
即ち、CPU割当てを決めてユーザプロセスの動作をO
S14に依頼する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オペレーティング
システムでサポートされたプロセススケジューラを使用
してユーザレベルのプロセススケジューラを機能させる
計算機のプロセススケジューラに関し、特に、スケジュ
ーリング対象となる複数のプロセスに対し優先度を固定
的に定め、実行可能なプロセスのうち優先度の高いプロ
セスからCPUを割り当てて動作させるプロセススケジ
ューラを使用してユーザレベルプロセススケジューラを
機能させる計算機のプロセススケジューラに関する。
【0002】
【従来の技術】計算機では、一般に複数のプログラムを
平行して動作させるため、プロセスと呼ばれる実行単位
が同時に複数存在できるようにしている。この時、アル
ゴリズムにしたがって各プロセスにCPUを割り当てる
必要がある。このプロセスに対するCPUの割当てをプ
ロセススケジューリングという。
【0003】従来のプロセススケジューリングは、バッ
チシステムあるいはタイムシェアリングシステムであ
り、システム全体でのCPUの利用効率を高めることを
目標として作られてきた。タイムシェアリングシステム
では、ユーザに対する応答性能を短くすることも考慮さ
れているが、システムの負荷が高いときに応答時間が長
くなることはやむなしとされ、ユーザプロセスのCPU
利用に関する保証はなかった。
【0004】また、実時間性を必要とする組み込み機器
の制御では、設計時に実行する全プロセスを把握するこ
とができるので、プロセスに固定した優先度をつけ、シ
ステムが優先度の高いプロセスを優先して実行する固定
優先度スケジューラが用いられている。これに対し近
年、マルチメディアシステムの発展により、ビデオや音
声などを計算機のプロセススケジューラシステムで扱う
ようになってきている。ビデオや音声を滑らかに再生す
るためには、決まった時間間隔で一定の処理を確実に行
わなければならない。そのようなマルチメディアシステ
ムにとって、従来のスケジューリング処理は次のような
問題を持っている。
【0005】(1)従来のバッチあるいはタイムシェア
リングのスケジューリングでは、CPUがいつどれだけ
利用できるかということに関してなんら保証がない。こ
のようなスケジューリングでは、マルチメディアアプリ
ケーションプログラムが必要とする時にCPUを利用で
きない。結果として、例えばビデオを再生したときにぎ
くしゃくした動きになってしまう。
【0006】(2)マルチメディアアプリケーションプ
ログラムは、組み込み機器と違い、どのようなプロセス
あるいはプログラムが実行されるかを予測することは出
来ない。このため、予めプロセスに優先順位を設定する
ことができない。従って、従来の固定優先度のスケジュ
ーリングでは目的を果たせない。この問題は、周期的に
動作するプロセスを、周期が短いプロセスほど優先する
レート・モノトニック・スケジューリングであっても同
じである。
【0007】(3)マルチメディアアプリケーションプ
ログラムは、組み込み機器と違い、プログラムの動作を
信用できない。例えば、あるプログラムが故意に、また
は誤りから、CPUを永遠に使用してしまうと、固定優
先度でスケジューリングしている場合、CPUを占有し
たプロセスより低い優先度のプロセスが全く動作しなく
なってしまう。このような状況は、汎用のマルチメディ
アシステムでは許されない。
【0008】以上のような理由により、現在、マルチメ
ディアシステムで利用可能な新たなプロセススケジュー
リングが必要となり、その研究開発が進められている。
【0009】
【発明が解決しようとする課題】マルチメディアシステ
ムに適した新たなプロセススケジューラを導入するに
は、スケジューリングをオペレーティングシステム内で
行う場合と、オペレーティングシステム上で動作するユ
ーザプログラムで行う場合がある。しかし、従来のプロ
セススケジューラを導入するには、次のような問題があ
った。
【0010】(1)オペレーティングシステム内に新し
いプロセススケジューラを導入する場合の問題 (a)従来のオペレーティングシステムは、プロセスス
ケジューラの追加や変更をオペレーティングシステム開
発者以外には許していない。スケジューラを変更するに
は、オペレーティングシステムのソースコードや開発環
境が必要である。商用オペレーティングシステムの場
合、ソースコードを入手できなかったり、入手できても
非常に高価なライセンス料が必要であるため、マルチメ
ディアシステムの開発者が商用オペレーティングシステ
ムのプロセススケジューラを変更することは事実上無理
である。
【0011】(b)非商用オペレーティングシステムで
は、ソースコードを無料で入手できる場合もあるが、商
用オペレーティングシステム用に作られた多数のアプリ
ケーションプログラムを動作させることができないし、
サポート体制に問題があるなど、非商用オペレーティン
グシステムは計算機のプロセススケジューラの非専門家
が利用できる状況にない。
【0012】(c)商用、非商用にかかわらず、オペレ
ーティングシステムの内部を変更するには、オペレーテ
ィングシステムに関する一般的な知識と、そのオペレー
ティングシステムに固有の実装方法についての理解が必
要であるが、そのような技術を持つものは限られてい
る。 (2)ユーザプログラムでプロセススケジューラを導入
する場合の問題 (a)ユーザプログラムやユーザプログラムが利用する
ライブラリで、自分のプロセス内に擬似的なプロセス
(ユーザレベルスレッド)を実現し、ユーザレベルスレ
ッドのスケジューリングを行う方法がある。この方法
は、そのプロセス内のスケジューリングしか行えないた
め、システムに他のプロセス群が存在し、それらがオペ
レーティングシステムのスケジューリングのもとでCP
Uを利用する場合には、マルチメディアシステムが必要
としているCPU利用の保証は出来ない。
【0013】(b)ユーザプログラムがスケジューラと
なり、このユーザレベルスケジューラが、オペレーティ
ングシステムでサポートする固定優先度スケジューラで
使用している優先度をユーザプロセスに与えるスケジュ
ーリング方法がある。この方法は、オペレーティングシ
ステムが提供しているスケジューリングを利用するた
め、マルチメディアシステムが必要としているユーザプ
ロセスでのCPU利用の保証はできない。 (c)更に(a)(b)では、一般にユーザプログラム
の変更が必要になる。
【0014】以上のように、従来のプロセススケジュー
ラでは、マルチメディアシステムで必要としている新し
いプロセススケジューラを導入することが非常に困難で
ある。本発明では、オペレーティングシステムがサポー
トするスケジューラを利用してユーザプログラムでスケ
ジューリングを行いながらも、マルチメディアシステム
が必要としているユーザプロセスでのCPU利用が保証
できる計算機のプロセススケジューラを提供することを
目的とする。
【0015】
【課題を解決するための手段】図1は本発明の原理説明
図である。まず本発明は、オペレーティングシステム
(OS)14によりサポートされ、スケジューリング対
象となる複数のプロセスに対し優先度を固定的に定める
と共に、優先度はユーザプロセスからの指定で変更可能
であり、実行可能なプロセスのうち優先度の高いプロセ
スからCPUを割当てて動作させる計算機のプロセスス
ケジューラを前提とする。
【0016】このような固定優先度のプロセススケジュ
ーラ、即ちリアルタイムクラス28のプロセススケジュ
ーラ空間に、本発明は、図1(A)のように、ユーザレ
ベルプロセススケジューラ10を設けたことを特徴とす
る。ユーザレベルプロセススケジューラ10は、第1図
(B)のように、リアルタイムクラス28の第1優先度
159を持ち、第1優先度159より低い優先度を持つ
他のユーザプロセス群11をスケジューリングして動作
させる。即ち、CPU割当てを決めてユーザプロセスの
動作をオペレーティングシステム14に依頼する。
【0017】本発明の他の形態としては、第1優先度1
59をもつ複数のユーザプロセス12毎にユーザレベル
プロセススケジューラ10をリンクさせ、自己のユーザ
プロセスをスケジューリングして動作させる分散型とし
てもよい。また本発明の他の形態としては、第1優先度
159のユーザレベルプロセススケジューラ10は、自
己がスケジュールしているユーザプロセス群中に、第2
優先度158のユーザレベルプロセススケジューラを設
け、上位から下位に階層的に他のユーザプロセス群をス
ケジューリングして動作させる階層型としてもよい。こ
の階層法は分散法に適用し、階層分散型としてもよい。
【0018】さらに本発明の別の形態として、第一優先
度をもつユーザレベルスケジューラ10を複数設け、各
ユーザレベルプロセススケジューラ10が個別に自己の
ユーザプロセス群11をスケジューリングして実行する
ようにしてもよい。ユーザレベルプロセススケジューラ
10は、図1(A)のように、ユーザプロセスからの要
求に基づくクラス変更指示部16からの指示、又はプロ
セス管理表18の参照によるプロセス実行指示部20か
らの指示に従い、指定されたユーザプロセスの実行、停
止又は再開を、図1(B)のように、オペレーティング
システム14に依頼するプロセス実行制御部24を備え
る。
【0019】またユーザレベルプロセススケジューラ1
0は、図1(A)のように、ユーザプロセスからの要求
に基づくクラス変更指示部16からの指示、又はプロセ
ス管理表18の参照によるプロセス実行指示部20から
の指示に従い、指定されたユーザプロセスAの優先度を
第1優先度に変更して実行させ、他のユーザプロセスB
を下位の優先度に変更して停止させるように、ユーザプ
ロセスの実行、停止、又は再開を図1(C)のようにオ
ペレーティングシステム14に依頼するプロセス優先度
制御部26を添える。
【0020】更に、オペレーティングシステム14は、
他界優先度の範囲(100〜159)にある固定優先度
のリアルタイムクラス28に対し、低い優先度の範囲
(0〜50)にあってプロセス状態に応じて動的に変化
させる他のスケジューリングクラス、例えばタイムシェ
アリングクラス30を有する場合、ユーザレベルプロセ
ススケジューラ10は、ユーザプロセスからの要求に基
づくクラス変更指示部16からの指示、又はプロセス管
理表18の参照によるプロセス実行指示部20からの指
示に従い、指定されたクラスの変更をオペレーティング
システム14に依頼して、図1(D)のように、ユーザ
プロセスの実行、停止又は再開させるクラス変更制御部
24を備える。
【0021】ここで、クラス変更指示部16は、ユーザ
プロセスCのCPU使用時間の指定を伴なう加入要求に
対し、プロセス管理表18を参照して現在加入状態にあ
るユーザプロセスA,Bの要求CPU時間の合計時間を
求め、この合計時間が規定時間以下であればユーザプロ
セスCの加入を許可し、規定値を超えていれば加入を拒
否する。
【0022】加入処理は、クラス変更指示部16がユー
ザプロセスCの加入を許可する場合、プロセス実行制御
部24に加入要求プロセスCの実行停止状態への変更を
指示し、且つクラス変更制御部22にリアルタイムクラ
スへの変更を指示し、更にプロセス優先度制御部26に
第2優先度への変更を指示し、更にユーザプロセスCを
プロセス管理表18に登録した後に、加入許可を通知す
る。
【0023】また加入処理の別の形態として、クラス変
更指示部16は、ユーザプロセスCの加入を許可する場
合、クラス変更制御部22にタイムシェアリングクラス
30からリアルタイムクラス28への変更を指示し、且
つプロセス優先度制御部26にリアルタイムクラスの例
えば最下位優先度100への変更を指示し、更にユーザ
プロセスCをプロセス管理表18に登録した後に、加入
許可を通知する。
【0024】更に、加入処理の別の形態としてクラス変
更指示部16は、ユーザプロセスCの加入を許可する場
合、クラス変更制御部22にタイムシェアリングクラス
30への変更を指示し、更にユーザプロセスCをプロセ
ス管理表18に登録した後に、加入許可を通知する。ユ
ーザプロセスの脱会要求があると、クラス変更指示部1
6は、プロセス管理表18からユーザプロセスを削除す
ると共に、クラス変更制御部22に脱会要求を行ったユ
ーザプロセスのタイムシェアリングクラス30への変更
を指示する。
【0025】クラス変更指示部16は、ユーザプロセス
からの通知により新規なユーザプロセスの加入と脱会を
処理できるし、またオペレーティングシステム14から
の通知により新規なユーザプロセスの加入と脱会を処理
することもできる。更に、ユーザレベルプロセススケジ
ューラ10のプロセス実行制御部24、クラス変更制御
部22、プロセス優先度制御部26に対する変更要求の
情報をライブラリに格納し、アプリケーションからの要
求指示でライブラリからユーザレベルプロセススケジュ
ーラ10に、対応する変更要求のメッセージを通知して
オペレーティングシステムに変更を依頼することもでき
る。
【0026】またプロセス実行制御部24、クラス変更
制御部22、プロセス優先度制御部26に対する変更要
求のスケジューリング仕様をユーザプロセスの1つで生
成し、ユーザプロセスのスケジューリング仕様に基づき
ユーザレベルプロセススケジューラ10に変更要求を通
知して、オペレーティングシステム14に変更を依頼す
る。
【0027】ここで、ユーザレベルプロセススケジュー
ラ10のスケジューリング対象となるユーザプロセス1
2は、複数のスレッドから構成され、ユーザプロセスの
一部であるスレッドスケジューラにより複数のスレッド
をスケジューリングする。ユーザプロセスのユーザレベ
ルプロセススケジューラ10は、プロセス管理表18に
登録された1又は複数のユーザプロセスにCPU時間を
割り当てる際、CPU割当対象となるユーザプロセスが
1つしか存在しないように、ユーザプロセスの実行と停
止、優先度変更、又はクラス変更をオペレーティングシ
ステム10に依頼する。
【0028】またユーザレベルプロセススケジューラ1
0は、1又は複数のユーザプロセスにCPU時間を割り
当てる際、同じCPU割当時間帯に複数のユーザプロセ
スが時分割で存在するように、ユーザプロセスの実行と
停止、優先度変更、又はクラス変更をオペレーティング
システム14に依頼する。ユーザレベルプロセススケジ
ューラ10は、一定期間内に複数のユーザプロセスと自
分自身を含めてCPU時間を順番に割り当てることによ
り、複数のユーザプロセスの動作を一定期間内で保証す
る。またユーザレベルプロセススケジューラ10は、一
定の周期を設定し、各周期内で複数のユーザプロセスと
自分自身を含めてCPU時間を順番に割り当てることを
繰り返すことにより、複数のユーザプロセスで動作を保
証する。
【0029】複数のユーザプロセスが持つ動作周期が異
なる場合、ユーザレベルプロセススケジューラ10は、
異なる動作周期の組合わせにより1つの周期を決定し、
この周期内で複数のユーザプロセスに使用可能なCPU
時間を順番に割り当て、複数のユーザプロセスの動作を
保証する。ユーザレベルプロセススケジューラ10は、
一定時間又は一定周期において複数のユーザプロセスに
割り当てたCPU時間の占める割合が規定値以内の時、
他のユーザプロセスに対するCPU時間の割当てを許容
し、規定値を越えた時、他のユーザプロセスに対するC
PU時間の割当てを拒否するアドミッションコントロー
ルを行う。
【0030】ユーザレベルプロセススケジューラ10
は、一定期間又は一定周期でユーザプロセスにCPU時
間を割り当てる場合、連続したCPU時間を割り当てて
もよいし、複数のユーザプロセスのCPU時間の各々を
分割して割り当ててもよい。プロセス管理表18に登録
されたユーザプロセスとして、高い優先度の範囲(10
0〜159)にある固定優先度のリアルタイムクラス2
8に属するユーザプロセスと、低い優先度の範囲(0〜
50)にあって動的に優先度を変化させるタイムシェア
リングクラスに属するユーザプロセス30が存在する場
合、ユーザレベルプロセススケジューラ10は、リアル
タイムクラス28のユーザプロセスに対するCPU時間
の割当てを制限して、タイムシェアリングクラス30の
ユーザプロセスにCPU時間を割り当てる。
【0031】ユーザレベルプロセススケジューラ10
は、ユーザプロセスの実行停止を検出して他のユーザプ
ロセスを動作可能とする。ユーザレベルプロセススケジ
ューラ10は、ユーザプロセスにCPU時間を割り当て
る際に、ユーザプロセスに加え同じ優先度で実行可能な
ブロック検出プロセスを設け、ユーザプロセスがI/O
待ち等でブロックした際に、ブロック検出プロセスにC
PU時間を割り当ててブロック発生を検出して通知さ
せ、この通知によりユーザプロセスが実行停止したこと
を認識して他のユーザプロセスを実行可能とする。
【0032】またユーザレベルプロセススケジューラ1
0は、ユーザプロセスにCPU時間を割り当てる際に、
更に、ユーザプロセスより低い優先度で実行可能なブロ
ック検出プロセスを設け、ユーザプロセスがI/O待ち
等でブロックした際にブロック検出プロセスにCPU時
間を割り当ててブロック発生を検出して通知させ、この
通知によりユーザプロセスが実行停止したことを認識し
て他のユーザプロセスを実行可能とする。
【0033】ユーザレベルプロセススケジューラ10
は、ブロック中のユーザプロセスが実行可能な状態にな
ったことを検出して動作させる。ユーザレベルプロセス
スケジューラ10は、オペレーティングシステム14に
よるユーザプロセスのブロックまたはブロック回復によ
る実行再開の通知を検出して他のユーザプロセスの実行
又は停止を行うこともできる。
【0034】このような本発明のユーザレベルプロセス
スケジューラによれば、次の利点が得られる。 (1)スケジューリング対象のプロセスに、常に一定割
合のCPUを割り当て、CPU利用を保証するようなス
ケジューラを実現できる。 (2)従来のプログラムを変更せずにユーザプロセスを
スケジューリング対象とすることができる。新しいスケ
ジューラのためにプログラムを書き直したり、リンクし
直したりする必要がない。
【0035】(3)新たなスケジューラを実現するのに
オペレーティングシステムのソースコードを必要としな
い。 (4)商用のオペレーティングシステム上で利用でき
る。 (5)新たなスケジューリングを実現するために、オペ
レーティングシステム内部の知識を必要としない。
【0036】(6)各種のスケジューラを試す時に、シ
ステムを再起動する必要がない。 (7)振る舞いが信用できないプログラムをスケジュー
リングの対象としても、他のプログラムの実行を進める
ことのできるスケジュールを実現できる。この結果、マ
ルチメディア処理で必要とされる一定割合のCPU利用
を保証するスケジューラなど、ユーザのニーズに合わせ
てさまざまなスケジューラを商用オペレーティングシス
テムの上に実装できる。
【0037】また、振る舞いの信用できないプロセスを
スケジューリング対象とすることができるなど、オペレ
ーティングシステム内で実現するのと同等のスケジュー
ラをユーザレベルのスケジューラとして実装することが
できる。
【0038】
【発明の実施の形態】
<目 次> 1.動作環境 2.ユーザレベルプロセススケジューラの機能と動作 3.ユーザプロセスの加入脱会 4.ユーザプロセスのCPU利用の保証 5.ユーザプロセスのブロック検出 1.動作環境 本発明のユーザレベルプロセススケジューラは、オペレ
ーティングシステムが固定優先度のスケジューリングを
提供していることを前提に実現することができる。固定
優先度スケジューリングは、組込用のリアルタイムオペ
レーティングシステムでは以前から提供されており、ま
た最近の汎用オペレーティングシステムとして知られて
いるUNIX System V、Sun OS5、W
indows/NTでも提供されるようになってきてい
る。
【0039】オペレーティングシステムの標準を規定す
るPOSIX(ユニックス標準の統合組織)では、固定
優先度スケジューリングを行うスケジューラを規定して
いる。サンマイクロシステム社のオペレーティングシス
テムSolaris2.4は、POSIXに準拠してお
り、リアルタイムクラスと呼ばれる固定優先度スケジュ
ーラをもっている。このリアルタイムクラスでは、優先
度として100〜159の値を使用することができる。
優先度は、値が大きい方が優先して実行されることを意
味する。以下の実施例にあっては、特に断わらない限
り、オペレーティングシステムSolaris2.4上
での動作環境を例にとるものとする。
【0040】図2は本発明のユーザレベルプロセススケ
ジューラの動作環境の実施形態である。図2において、
オペレーティングシステムで提供される固定優先度スケ
ジューリングのリアルタイムクラスの空間において、本
発明のユーザレベルプロセススケジューラ10はリアル
タイムの最高優先度である優先度159で動作するよう
に優先度が設定され、スケジューリング対象となるユー
ザプロセス群11のユーザプロセス12−1,12−2
を第2優先度となる優先度158で動作させるように設
定している。
【0041】図3は本発明によるユーザレベルプロセス
スケジューラの動作環境の他の実施形態であり、この実
施形態にあっては、リアルタイムクラスの優先度159
で動作するユーザレベルプロセススケジューラは、ユー
ザレベルプロセススケジューラ10−1,10−2の2
つに分割されている。ユーザレベルプロセススケジュー
ラ10−1,10−2のそれぞれは、スケジューリング
対象であるユーザプロセス12−1,12−2にライブ
ラリとしてそれぞれリンクされている。このためユーザ
レベルプロセススケジューラ10−1,10−2は、そ
れぞれリンクされているユーザプロセス12−1,12
−2の動作を制御する。
【0042】図4は本発明によるユーザレベルプロセス
スケジューラの他の実施形態であり、この実施形態にあ
っては、ユーザレベルプロセススケジューラが階層的に
スケジューリングを行うことを特徴とする。まずユーザ
レベルプロセススケジューラ10−11は、リアルタイ
ムクラスの第1優先度である優先度159で動作するよ
うに優先度が設定される。
【0043】優先度159を設定したユーザレベルプロ
セススケジューラ10−11のスケジューリング対象と
して、第2優先度となる優先度158を設定した第2の
ユーザレベルプロセススケジューラ10−12及びユー
ザプロセス12−1を設けて、それぞれ動作させてい
る。更に、第2のユーザレベルプロセススケジューラ1
0−12は、スケジューリング対象として優先度157
を設定したユーザプロセス12−2,12−3をもち、
それぞれ優先度157で動作させる。
【0044】図5はユーザレベルプロセススケジューラ
による階層的なスケジューリングの他の実施形態であ
り、この実施形態にあっては、図3の実施形態について
階層的なスケジュール構造としたことを特徴とする。即
ち、リアルタイムクラスの優先度159で動作するユー
ザプロセス12−1,12−2のそれぞれにライブラリ
としてリンクされたユーザレベルプロセススケジューラ
10−1,10−2は、優先度158を設定して動作す
るユーザプロセス12−3,12−4にライブラリとし
てリンクしたユーザレベルプロセススケジューラ10−
3,10−4を設けている。
【0045】即ち、ユーザレベルプロセススケジューラ
10−1,10−2は、第1階層となる優先度159で
ユーザプロセス12−1,12−2をスケジューリング
し、ユーザプロセス12−1,12−2のスケジュール
方針に従って、第2階層となる優先度158のユーザレ
ベルプロセススケジューラ10−3,10−4がユーザ
プロセス12−3,12−4をスケジューリングするこ
とになる。
【0046】図6は本発明によるユーザレベルプロセス
スケジューラの他の実施形態であり、図2の実施形態を
リアルタイムクラスについて複数系統設けたことを特徴
とする。即ち、リアルタイムクラスの優先度159で動
作する2つのユーザレベルプロセススケジューラ10−
1,10−2を設けると共に、それぞれのスケジューリ
ング対象となるユーザプロセス群11−1,11−2と
して、優先度158で動作するユーザプロセス12−
1,12−2及びユーザプロセス12−3,12−4を
設けている。このような実施形態にあっては、ユーザレ
ベルプロセススケジューラ10−1がユーザプロセス1
2−1,12−2をスケジューリングし、またユーザレ
ベルプロセススケジューラ10−2がユーザプロセス1
2−3,12−4をスケジューリングすることになる。
もちろん図6はオペレーティングシステム内に2つのユ
ーザレベルプロセススケジューラ10−1,10−2が
存在する場合であるが、必要に応じて任意の数のユーザ
レベルプロセススケジューラを存在させることができ
る。 2.ユーザレベルプロセススケジューラの機能と動作 次に図2の実施形態を対象に、本発明により提供される
ユーザレベルプロセススケジューラの機能と動作を説明
する。図7は、リアルタイムクラスの第1優先度となる
優先度159で動作するユーザレベルプロセススケジュ
ーラ10の詳細である。ユーザレベルプロセススケジュ
ーラ10は、クラス変更指示部16、プロセス管理表1
8、プロセス実行指示部20、クラス変更制御部22、
プロセス実行制御部24及びプロセス優先度制御部26
で構成される。
【0047】クラス変更指示部16は、ユーザレベルプ
ロセススケジューラ10が動作しているスケジュール空
間であるリアルタイムクラス28以外のスケジューリン
グクラス、例えばタイムシェアリングクラス30で動作
しているユーザプロセス12−3からの加入要求を受
け、プロセス管理表18を参照して、予め定めた条件に
従って許可または拒否を決定する。
【0048】許可の場合にはクラス変更制御部22にタ
イムシェアリングクラス30からリアルタイムクラス2
8へのクラス変更を指示し、ユーザプロセス12−3に
許可を通知する。加入要求に対する許可の条件として
は、例えばプロセス管理表18で管理しているユーザプ
ロセス群の合計CPU時間である。ユーザプロセス12
−3は加入要求と同時に自己のCPU時間を指定し、こ
の指定時間を現在プロセス管理表18で管理しているユ
ーザプロセスのCPU時間に加えて、規定時間以内であ
れば加入を許可し、超えていれば加入を拒否するように
なる。
【0049】ここでプロセス管理表18は、図8に示す
ように、プロセス識別子と例えば動作可能状態としたユ
ーザプロセスを一定周期内で動作させる場合、1周期内
のCPU使用時間を登録している。1周期内のCPU使
用時間は、例えば100%で100msとしている。こ
の例では、図7のユーザプロセス12−1,12−2,
12−3のプロセス識別子をA,B,Cとすると、ユー
ザプロセスC12−3が加入要求を行ったときに、既に
プロセス管理表18には動作可能状態にあるユーザプロ
セス12−1,12−2のプロセス識別子A,Bとその
1周期内のCPU使用時間50ms,20msが登録さ
れている。
【0050】この状態でプロセス識別子Cをもつユーザ
プロセス12−3の加入要求があると、加入要求に伴っ
てCPU使用時間10msが指定されていることから、
合計CPU使用時間として80msが求められ、これは
全CPU使用時間の80%であることから加入要求を許
可し、プロセス管理表18にプロセス識別子CとそのC
PU使用時間10msを図示のように登録することにな
る。
【0051】再び図7を参照するに、プロセス実行指示
部20はプロセス管理表18を参照し、次にどのプロセ
スをどれだけの時間実行するかを決定し、クラス変更制
御部22に変更のための指示を行う。即ちプロセス実行
指示部20は、クラス変更制御部22に対しては、タイ
ムシェアリングクラス30とリアルタイムクラス28と
の間のクラス変更の指示を行う。
【0052】またプロセス実行指示部20は、プロセス
実行制御部24に対しては、実行、停止または再開の指
示を行う。更にプロセス実行指示部20は、プロセス優
先度制御部26に対しては、リアルタイムクラス28に
おける優先度159〜100内における変更を指示す
る。クラス変更制御部22は、クラス変更指示部16ま
たはプロセス実行指示部20からのクラス変更の指示に
従い、指定されたユーザプロセスのクラス変更をオペレ
ーティングシステム14に依頼する。このクラス変更の
依頼を受けて、オペレーティングシステム14は、固定
優先度スケジュールクラスであるリアルタイムクラス2
8と、それ以外のスケジュールクラスであるタイムシェ
アリングクラス30との間のクラス変更を実行する。
【0053】プロセス実行制御部24は、クラス変更指
示部16またはプロセス実行指示部20の指示に従い、
指定されたユーザプロセスの実行、停止または再開をオ
ペレーティングシステム14に依頼する。更にプロセス
優先度制御部26は、クラス変更指示部16またはプロ
セス実行指示部20の指示に従い、固定優先度であるリ
アルタイムクラス28における優先度の変更をオペレー
ティングシステム14に依頼する。
【0054】ユーザレベルプロセススケジューラ10に
設けたクラス変更制御部22、プロセス実行制御部24
及びプロセス優先度制御部26は、そのときのクラス変
更指示部16またはプロセス実行指示部20からの指示
により個別に動作して、ユーザプロセスのスケジューリ
ングの変更を行う。そこで、これら3つの制御部22,
24,26のそれぞれについてユーザプロセスの変更制
御を説明する。
【0055】図9は図7のプロセス実行制御部24によ
るユーザプロセスの状態変更の実施形態であり、オペレ
ーティングシステム14が提供するシグナル機能を用い
てユーザプロセスの状態変更を行うことで、ユーザレベ
ルプロセススケジューラがユーザプロセスの実行制御を
行うことを特徴とする。図9において、優先度159の
ユーザレベルプロセススケジューラ10は、スケジュー
リング対象としてユーザ部11にプロセス識別子A,B
をもったユーザプロセス12−1,12−2をもってい
る。このユーザプロセス12−1,12−2の実行可能
状態への変更は、オペレーティングシステム14が提供
するシグナル機能であるSIGCONTを引数としてk
illシステムコールを発行することで実現できる。
【0056】またユーザプロセス12−1,12−2の
実行停止状態への変更は、SIGSTOPを引数として
killシステムコールを発行することで実現できる。
例えば図9のように、ユーザレベルプロセススケジュー
ラ10がプロセス識別子Aをもつユーザプロセス12−
1を実行可能状態とし、プロセス識別子Bをもつユーザ
プロセス12−2を実行停止状態とすることで、ユーザ
プロセス12−1だけを動作させることができる。
【0057】図10のフローチャートは、図7のプロセ
ス実行指示部20からの実行指示に基づくプロセス実行
制御部24の処理動作である。プロセス実行制御部20
は、例えばオペレーティングシステム14からのSIG
CONTを引数としたkillシステムコールを受ける
と、まずステップS1で、プロセス管理表18のインデ
ックスを先頭のエントリとする。
【0058】ステップS2で、インデックスの示すエン
トリは現在使用中(登録中)にあるか否かチェックす
る。使用中にあれば、ステップS3で、インデックスの
示すプロセス識別子のユーザプロセスの実行状態への変
更をプロセス実行制御部24に指示する。例えば図8の
プロセス管理表18の場合には、最初のインデックスで
指定されるユーザプロセスAの実行をプロセス実行制御
部24に指示する。
【0059】このためプロセス実行制御部24は、ステ
ップS24でユーザプロセスAのCPU使用時間である
50ms間スリープすることで、ユーザプロセスAを5
0ms間と動作させる。続いてステップS5で、インデ
ックスの示すユーザプロセスAの実行停止状態への変更
をプロセス実行制御部24に依頼し、これを受けてオペ
レーティングシステム14はユーザプロセスAの実行を
停止する。ステップS3〜S4で最初のインデックスの
ユーザプロセスAの動作が済むと、ステップS6で、イ
ンデックスが最後のエントリを指しているか否かチェッ
クし、指していなければ、ステップS7でインデックス
を1つ進め、ステップS2に戻り、次の2番目インデッ
クスの示すエントリのユーザプロセスBの処理を同様に
して行う。
【0060】ステップS6でインデックスの最後のエン
トリが判別されると、再びステップS1に戻り、プロセ
ス管理表18の先頭のインデックスからの処理を繰り返
す。これにより1周期内でプロセス管理表18に登録さ
れて動作可能状態にある複数のユーザプロセスを、設定
されたCPU時間で動作させるスケジューリングを行う
ことができる。
【0061】図11は、図7のプロセス優先度制御部2
6によるユーザプロセスの変更の実施形態である。この
実施形態にあっては、オペレーティングシステム14が
提供するpriocntlシステムコールを使用し、ユ
ーザプロセスの優先度を変更することで、ユーザレベル
プロセススケジューラがユーザプロセスの実行制御を行
うことを特徴とする。
【0062】例えば図11のように、ユーザレベルプロ
セススケジューラ10が優先度157にあるプロセス識
別子Aのユーザプロセス12−1を優先度158に変更
することで、プロセス識別子Aのユーザプロセス12−
1´だけを動作させることができる。図12は、図7の
プロセス実行指示部20からの優先度変更指示に基づく
プロセス優先度制御部26の処理動作を示す。
【0063】まずステップS1で、優先度変更指示に対
しプロセス管理表18のインデックスを先頭にセット
し、ステップS2で、インデックスの示すエントリが使
用中か否かチェックする。使用中にあれば、ステップS
3で、インデックスで示すユーザプロセスの優先度15
8への変更をプロセス優先度制御部26に指示する。ス
テップS4で、インデックスが示すユーザプロセスのC
PU時間をスリープすることで、ユーザプロセスCを指
定時間動作させる。更にステップS5で、インデックス
の示すユーザプロセスの優先度157への変更をプロセ
ス優先度制御部26に指示する。なおステップS5にあ
っては、停止動作を確実にするため、リアルタイムクラ
スの最下位の優先度である優先度100への変更をプロ
セス優先度制御部26に指示するようにしてもよい。
【0064】続いてステップS6で、インデックスが最
後のエントリを指しているか否かチェックし、指してい
なければ、ステップS7でインデックスを1つ進め、再
びステップS2に戻り、プロセス管理表の次のインデッ
クスのエントリに登録されているユーザプロセスについ
て、ステップS3〜S5の優先度の変更による実行と停
止を繰り返す。
【0065】図13は、図7のプロセス実行指示部20
からのクラス変更指示に基づくクラス変更制御部22の
ユーザプロセスの変更処理の実施形態である。本発明が
実現されるオペレーティングシステムSolaris
2.4は、固定優先度のリアルタイムクラス28に加え
てタイムシェアリングスケジューリングを行うタイムシ
ェアリングクラス30をもっている。タイムシェアリン
グクラス30にあっては、オペレーティングシステム1
4が次のようにユーザプロセスの優先度を動的に変更す
る。ここでタイムシェアリングクラス30は、優先度5
9〜0をもつ。
【0066】(1)ユーザプロセスが一定時間CPUを
使用した場合、その優先度を一定値下げる。 (2)ユーザプロセスが実行可能であるにも関わらず一
定時間CPU割当てが行われなかった場合、その優先度
を一定値上げる。 (3)ユーザプロセスが自発的にCPU割当てを手放し
た場合、即ちスリープした場合、ウェイクアップ後にそ
の優先度を一定値上げる。
【0067】このようなタイムシェアリングクラス30
と本発明のユーザレベルプロセススケジューラが動作し
ているリアルタイムクラス28のクラス変更として、オ
ペレーティングシステム14が提供するpriocnt
lシステムコールを使用してクラス変更を行うことで、
ユーザレベルプロセススケジューラがユーザプロセスの
実行制御を行うことができる。
【0068】例えば図13のように、ユーザレベルプロ
セススケジューラ10がタイムシェアリングクラスで動
作していたプロセス識別子Aのユーザプロセス12−1
をリアルタイムクラス28の優先度158に変更するこ
とで、プロセス識別子Aのユーザプロセス12−1´の
みを動作させることができる。図14のフローチャート
は、図7のプロセス実行指示部20よりクラス変更指示
をクラス変更制御部22に対し行ったときのユーザプロ
セスの変更処理である。
【0069】オペレーティングシステムが提供するpr
iocntlシステムコールを使用してプロセス実行指
示部20に対しクラス変更指示が行われると、まずステ
ップS1でプロセス管理表18のインデックスを先頭に
セットし、ステップS2で、インデックスの示すエント
リが使用中か否かチェックする。使用中にあれば、ステ
ップS3で、インデックスの示すユーザプロセスのリア
ルタイムクラス28への変更をクラス変更指示部22に
指示する。
【0070】これによりオペレーティングシステム14
は、対象となったユーザプロセスをリアルタイムクラス
の優先度158に変更し、ステップS4で、インデック
スが示すユーザプロセスのCPU時間をスリープするこ
とで、ユーザプロセスを指定時間動作させる。ステップ
S5で、インデックスの示すユーザプロセスのタイムシ
ェアリングクラス28への変更をクラス変更制御部22
に指示し、停止状態とする。
【0071】続いてステップS6で、インデックスが最
後のエントリを指しているか否かチェックし、指してい
なければ、ステップS7でインデックスを1つ進め、ス
テップS2に戻って次のユーザプロセスについて同様な
処理を繰り返す。 3.ユーザプロセスの加入脱会 図7のリアルタイムクラス28のスケジュール空間にあ
るユーザレベルプロセススケジューラ10のスケジュー
ル対象となるユーザプロセスへの加入は、タイムシェア
リングクラス30に存在するユーザプロセスからの加入
要求を受けて処理するようになる。またリアルタイムク
ラス28でスケジューリングされているユーザプロセス
の脱会は、ユーザプロセスからの脱会要求を受けて処理
するようになる。
【0072】このユーザプロセスの加入要求及び脱会要
求の処理はクラス変更指示部16に対し行われ、クラス
変更指示部16は、クラス変更制御部22、プロセス実
行制御部24またはプロセス優先度制御部26のいずれ
かに対する指示で3つの異なった加入脱会処理を行うこ
とができる。図15のフローチャートは、プロセス実行
制御部24に対する実行、停止または再開の指示を利用
したユーザプロセスの加入脱会処理である。まずステッ
プS1で、タイムシェアリングクラス30にあるユーザ
プロセスからの加入または脱会要求を待っている。ステ
ップS2で、要求があると加入要求か否かチェックす
る。
【0073】いまタイムシェアリングクラス30にある
プロセス識別子Cのユーザプロセス12−3から加入要
求が行われたとする。この実施形態にあっては、ユーザ
プロセス12−3は加入要求に際し自分自身の1周期内
のCPU使用時間を例えば10msとして指定して加入
を要求している。加入要求を受けたことでステップS3
に進み、クラス変更指示部16はプロセス管理表18に
登録されているユーザプロセスのCPU使用時間の合計
と加入要求プロセスの要求CPU時間の和が、予め定め
た所定時間100msより小さいか否かチェックする。
【0074】ここで図8のプロセス管理表18のよう
に、プロセス識別子A,Bのユーザプロセス12−1,
12−2が登録されており、それぞれの1周期内のCP
U時間が50ms,20msであったとすると、加入要
求を行ったユーザプロセス12−3のCPU使用時間1
0msを加えた合計時間は80msとなり、100ms
より小さいことから加入を許可するため、ステップS4
に進む。
【0075】ステップS4では、加入要求を行ったユー
ザプロセスの実行停止状態への変更をプロセス実行制御
部24に指示し、オペレーティングシステム14への依
頼で、加入要求を行ったユーザプロセス12−3を停止
状態とする。続いて、加入要求を行ったユーザプロセス
12−3のリアルタイムクラス28への変更をステップ
S5でクラス変更制御部22に指示する。
【0076】更にステップS6で、加入要求を行ったユ
ーザプロセス12−3への優先度158への変更をプロ
セス優先度制御部26に指示する。これにより加入要求
を許可されたユーザプロセス12−3は、ユーザレベル
プロセススケジューラ10が動作しているリアルタイム
クラス28の優先度158に設定される。続いてステッ
プS7で、加入要求を行ったユーザプロセス12−3を
図8のプロセス識別子CとそのCPU時間10msに示
すようにプロセス管理表18に登録する。
【0077】最終的にステップS5で、加入要求を行っ
たユーザプロセス12−3に対し加入許可を通知する。
一方、ステップS3で加入要求を行ったユーザプロセス
を含めた合計CPU時間が100msを超えていた場合
には、ステップS9に進み、加入要求を行ったユーザプ
ロセス12−3に対し加入拒否を通知する。またユーザ
プロセスからの脱会要求があった場合には、ステップS
2からS10に進み、脱会要求を行ったユーザプロセス
をプロセス管理表18から削除し、ステップS11で、
脱会要求をしたユーザプロセスのタイムシェアリングク
ラス30への変更をクラス変更制御部22に指示する。
【0078】図16のフローチャートは、ユーザプロセ
スからの加入要求に対しプロセス優先度制御部26によ
る優先度の変更制御を利用して加入させる場合の処理動
作である。まずステップS1でユーザプロセスからの加
入または脱会要求を待ち、要求があるとステップS2で
加入要求か否か判別し、加入要求であれば、ステップS
3で、プロセス管理表18の登録済みユーザプロセスの
CPU使用時間と加入要求プロセスの要求CPU時間と
の和が100msより小さいか否かチェックし、小さけ
れば加入許可のため、ステップS4に進む。
【0079】ステップS4では、加入要求プロセスのリ
アルタイムクラス28への変更をクラス変更制御部22
に指示し、ステップS5で、加入要求プロセスの優先度
100への変更をプロセス優先度制御部26に指示し、
ステップS6で、加入要求をしたユーザプロセスをプロ
セス管理表18に登録した後、ステップS7で加入許可
を通知する。ステップS3で100ms以上であった場
合は、ステップS7で加入拒否を通知する。
【0080】またステップS2で脱会要求であった場合
には、ステップS9でプロセス管理表18からの削除
と、ステップS10のタイムシェアリングクラス30へ
のクラス変更の指示を行う。図17のフローチャート
は、ユーザプロセスからの加入または脱会要求に対し図
7のクラス変更制御部22の制御機能を利用して行う処
理動作である。ステップS1でユーザプロセスからの加
入または脱会要求を待ち、要求があると、ステップS2
で加入要求か否か判別し、加入要求であればステップS
3に進み、プロセス管理表18のCPU使用時間と加入
要求プロセスの要求CPU時間の合計が100msより
小さいか否かチェックする。
【0081】合計時間が100msより小さければ加入
許可のため、ステップS4に進み、加入要求を行ったユ
ーザプロセスのタイムシェアリングクラス30への変更
をクラス変更制御部22に指示する。続いてステップS
5で、加入要求を行ったユーザプロセスをプロセス管理
表18に登録し、ステップS6で加入許可を通知する。
この場合には、加入要求を行ったユーザプロセスは最初
タイムシェアリングクラス30に置かれて、実行の際に
ユーザレベルプロセススケジューラ10によるリアルタ
イムクラス28にクラス変更されることになる。
【0082】一方、ステップS3で100ms以上であ
った場合には、ステップS7で加入拒否を通知する。ま
た脱会要求であった場合には、ステップS8でプロセス
管理表18から削除した後、ステップS9で、タイムシ
ェアリングクラス30へのクラス変更を指示する。図1
8は、ライブラリによるユーザレベルプロセススケジュ
ーラに対するスケジューリング及び優先度変更要求の通
知の実施形態である。
【0083】図18において、アプリケーションプログ
ラム32にリンクされるライブラリ34にユーザレベル
プロセススケジューラ10のスケジューリング方式、即
ちリアルタイムクラスかタイムシェアリングクラスかの
指定情報、及びまたは優先度を変更する関数を用意す
る。このライブラリ34の内容が呼び出された場合、メ
ッセージによりユーザレベルプロセススケジューラ10
に変更を通知する。メッセージによる変更通知を受けた
ユーザレベルプロセススケジューラ10は、変更が可能
かどうかを判断し、可能ならばオペレーティングシステ
ムから提供されるpriocntlシステムコールによ
り変更する。変更が不可能ならばその旨をライブラリ3
4に通知し、更にライブラリ34がアプリケーションプ
ログラム32に通知する。
【0084】図19は、ユーザレベルプロセススケジュ
ーラに対するライブラリによるスケジューリング方式及
びまたは優先度変更要求の通知の他の実施形態である。
この図19の実施形態にあっては、ユーザプロセス12
を生成する親プロセス36が、リンクするライブラリ3
8を通してユーザレベルプロセススケジューラ10に、
予め定めたスケジューリング仕様に従ったメッセージを
伝えてスケジューリング方式及び優先度変更要求を行う
ようにしている。
【0085】親プロセス36で作成されるスケジューリ
ング仕様40は、例えば図20に示すように、ユーザプ
ロセス12が動作し始めてからの相対的な開始時刻、終
了時刻、及びその間のスケジューリング方式を記述して
いる。このようなスケジューリング仕様40に従ったラ
イブラリ38からのメッセージを受けたユーザレベルプ
ロセススケジューラ10は、スケジューリング仕様40
に従ったユーザプロセス12のスケジューリングを実行
することになる。
【0086】図21は、本発明のユーザレベルプロセス
スケジューラでスケジューリングされるユーザプロセス
の内部構造を示している。本発明が対象とするユーザレ
ベルプロセススケジューラのスケジューリング対象とな
るユーザプロセス12は、図21のようにマルチスレッ
ドライブラリ42をリンクしており、スレッド群44の
中に例えばスレッド46−1,46−2,46−3の3
つのスレッドがマルチスレッドライブラリ42によりス
ケジューリングされている。 4.ユーザプロセスのCPU利用の保証 図7に示す制御機能をもつユーザレベルプロセススケジ
ューラ10は、スケジューリング対象となっているユー
ザプロセス即ちプロセス管理表18に登録されているユ
ーザプロセスを対象に、一定割合のCPU割当てを行っ
てCPU利用を保証するようなスケジューリングを実行
できる。
【0087】図22は、CPU割当て対象となるユーザ
プロセスを1つとした場合の動作形態の説明図である。
図22にあっては、ユーザレベルプロセススケジューラ
10が動作したいプロセス識別子Aのユーザプロセス1
2−1を実行可能状態に変更する指示を行う。この変更
指示はプロセス実行指示部20により行われ、プロセス
実行制御部24に対する実行/停止指示、クラス変更制
御部22に対するクラス変更指示、またはプロセス優先
度制御部26に対する優先度変更指示のいずれかとな
る。
【0088】プロセス実行指示部20によるプロセス実
行制御部24に対する指示については、killシステ
ムコールによりユーザプロセス12−1だけを実行状態
とし、その他のユーザプロセスを実行停止状態とする。
またプロセス実行指示部20からのプロセス優先度制御
部26に対する優先度変更指示については、prioc
ntlシステムコールによりユーザプロセス12−1だ
けを優先度158に設定し、その他のユーザプロセスを
優先度157に設定する。
【0089】更に、プロセス実行指示部20によるクラ
ス変更制御部22に対するクラス変更指示については、
priocntlシステムコールによりユーザプロセス
12−1だけをリアルタイムクラス28に変更し、その
他のユーザプロセスをタイムシェアリングクラス30に
変更する。以上のユーザプロセスの変更指示が済んだな
らば、ユーザレベルプロセススケジューラ10はユーザ
プロセス12−1を動作させたい時間だけ、即ちプロセ
ス管理表18の参照で得られたCPU割当時間だけus
leepシステムコールによりスリープすることで、図
22のようにユーザプロセス12−1を動作させる。次
のプロセス識別子Bをもつユーザプロセス12−2につ
いても同様であり、プロセス管理表18に登録されて動
作可能状態にある複数のユーザプロセスについて、この
処理を繰り返す。
【0090】図23は、図3のライブラリとしてユーザ
プロセス12−1,12−2にリンクされた2つのユー
ザレベルプロセススケジューラ10−1,10−2によ
る動作を示す。プロセス識別子Aのユーザプロセス12
−1にリンクされたユーザレーザプロセススケジューラ
10−1は、図22の場合と同様、 killシステムコールによる実行、停止、 priocntlシステムコールによる優先度変更、 priocntlシステムコールによるクラス変更、 のいずれかを行う。
【0091】次に、ユーザプロセス12−1にリンクさ
れたユーザレベルプロセススケジューラ10−1をプロ
セス管理表のCPU使用時間だけusleepシステム
コールによりスリープする。これにより、図23のよう
にユーザプロセス12−1を動作させる。次のプロセス
識別子Bをもつユーザプロセス12−2についても、同
様にして動作させる。
【0092】図24は、CPUの割当対象となるユーザ
プロセスが複数の場合の動作形態である。図24にあっ
ては、ユーザレベルプロセススケジューラ10が2つの
ユーザプロセス12−1,12−2を動作する。まずユ
ーザレベルプロセススケジューラ10は、 killシステムコールによる実行、停止、 priocntlシステムコールによる優先度変更、 priocntlシステムコールによるクラス変更、 のいずれかにより、プロセス識別子A,Bをもつ2つの
ユーザプロセス12−1,12−2を動作可能状態とす
る。
【0093】続いてユーザレベルプロセススケジューラ
10は、usleepシステムコールによりプロセス管
理表から得られたユーザプロセス12−1,12−2の
合計CPU時間で決まる一定時間スリープすることで、
図示のように2つのユーザプロセス12−1,12−2
を動作させる。この場合、ユーザレベルプロセススケジ
ューラ10のスリープ期間にユーザプロセス12−1,
12−2がどのように動作するかは、それぞれのユーザ
プロセス12−1,12−2の状態によって決まる。例
えば、ユーザプロセス12−1がCPUを手放さなけれ
ばユーザプロセス12−2は動作しないし、ユーザプロ
セス12−1が直ちにCPUを手放せばユーザプロセス
12−2が動作するようになる。ここでユーザプロセス
12−1,12−2が実行を停止する原因としては、I
/O待ち、sleepシステムコールの発行等がある。
【0094】図25は、図24の複数のユーザプロセス
を複数のCPUからなるマルチプロセッサ上で動作させ
る場合の形態である。この場合には、図25(A)
(B)のように、ユーザプロセス12−1,12−2の
それぞれにCPU48−1,48−2を割り当てること
ができるため、異なるCPU48−1,48−2上で同
時に2つのユーザプロセス12−1,12−2を動作さ
せることができる。図26は、予め定めた一定時間Tで
複数のユーザプロセスの動作を保証する実施形態であ
る。ユーザレベルプロセススケジューラ10は、 killシステムコールによる実行と停止、 priocntlシステムコールによる優先度の変
更、 priocntlシステムコールによるクラス変更、 のいずれかにより、プロセス識別子Aのユーザプロセス
12−1を一定時間動作させた後、同様にしてプロセス
識別子Bのユーザプロセス12−2を一定時間動作させ
る。
【0095】図27は、複数のユーザプロセスを動作可
能状態として一定周期で繰り返し動作させる形態の説明
図である。この実施形態にあっては、2つのユーザプロ
セス12−1,12−2をスケジューリング対象として
おり、一定の周期Tについてユーザレベルプロセススケ
ジューラ10は、まずプロセス識別子Aのユーザプロセ
ス12−1を、 killシステムコールによる実行、停止、 priocntlシステムコールによる優先度変更、 priocntlシステムコールによるクラス変更、 のいずれかで動作可能状態とした後、一定時間動作さ
せ、次に、同様にしてユーザプロセス12−2を動作さ
せ、これを周期的に繰り返す。この図25の周期Tによ
る複数のユーザプロセスの動作の繰返しは、各ユーザプ
ロセスの動作周期が同じ場合に適用できる。
【0096】図28は、複数のユーザプロセスの動作周
期が異なる場合の動作形態である。まずユーザプロセス
12−1は、図28(A)のように、周期Tで動作を繰
り返している。これに対しユーザプロセス12−2は、
図28(B)のように、2倍の周期にTで動作を繰り返
している。このように2つのユーザプロセス12−1,
12−2の周期が異なる場合には、図29のように、複
数の動作周期の最小公倍数である周期2Tをスケジュー
リング周期とする。
【0097】即ち、周期Tのユーザプロセス12−1を
動作した後、周期2Tのユーザプロセス12−2を動作
し、更に周期Tのユーザプロセス12−1を動作させ、
残りを空き周期とし、これを繰り返す。ここで一定周期
Tで複数のユーザプロセスを動作させる図27の実施形
態にあっては、1周期T内のCPU時間を100%使用
しており、このような動作環境に周期T内で例えば20
%のCPU時間を要求する別のユーザプロセスをスケジ
ュール対象に加入しようとしても、この要求はユーザレ
ベルプロセススケジューラ10により拒否されてしま
う。
【0098】これに対し、もしユーザプロセス12−
1,12−2の周期T内でのCPU使用率の合計が80
%以下に制限されていれば、他のユーザプロセスのCP
U時間20%の要求を受理してユーザレベルプロセスス
ケジューラのスケジュール対象に加入させることができ
る。そこで、図27の一定周期Tの動作形態についてク
オリティ・オブ・セレクト制御の1つであるアドミッシ
ョンコントロールを採用し、1周期T内におけるユーザ
プロセス12−1,12−2のCPU使用時間を80%
以下に制限する。これによって、新たな20%以内のC
PU使用率をもった他のユーザプロセスの加入要求を効
率良く受け入れることができる。
【0099】図30は、一定期間内でCPUを分割して
ユーザプロセスに割り当てる動作形態である。即ち図2
6または図27にあっては、一定時間Tまたは一定周期
内に連続してユーザプロセスのCPU割当てを行ってい
るが、図30にあっては、一定期間のCPU時間を複数
に分割し、各分割時間についてユーザプロセス12−1
とユーザプロセス12−2を割り当てている。
【0100】図31は、タイムシェアリングクラスに存
在するスケジューリング対象となっているユーザプロセ
スに対し、強制的に一定のCPU時間割当てを行う動作
形態の説明図である。図31において、ユーザプロセス
12−1,12−2はリアルタイムクラス28に存在
し、ユーザプロセス12−3,12−4はタイムシェア
リングクラス30に存在している。この場合、ユーザレ
ベルプロセススケジューラ10は、 killシステムコールによる実行停止、 priocntlシステムコールによる優先度変更、 priocntlシステムコールによるクラス変更、 のいずれかで、リアルタイムクラス28にあるユーザプ
ロセス12−1,12−2を順次一定時間動作させた
後、ユーザプロセス12−1,12−2を実行停止状態
とし、usleepシステムコールにより、一定時間C
PUを手放す。
【0101】これによりCPUはタイムシェアリングク
ラス30に割り当てられ、ユーザプロセス12−3,1
2−4を動作させる。この場合のユーザプロセス12−
3,12−4のスケジューリングは、オペレーティング
システムSolaris2.4がもつタイムシェアリン
グスケジューラが行うことになる。図32は、本発明の
ユーザレベルプロセススケジューラのスケジュール空間
となるリアルタイムクラスとグローバルな優先度の対応
関係を示したマッピングの説明図である。
【0102】本発明のユーザレベルプロセススケジュー
ラをサポートするオペレーティングシステムSolar
is2.4では、タイムシェアリングクラス30につい
ては、図32(C)のように、タイムシェアリングクラ
ス優先度0〜59をグローバル優先度0〜59にマッピ
ングさせ、設定しており、リアルタイムクラス28につ
いては、図32(A)のように、リアルタイムクラス優
先度0〜59をグローバル優先度100〜159にマッ
ピングさせ、設定している。
【0103】この図32(A)の優先度のマッピング
は、オペレーティングシステムが起動するときにリンク
するRT−DPTBLというファイルに転記されてい
る。本発明にあっては、図32(A)のマッピングファ
イルを、図32(B)に示すようにリアルタイムクラス
28の最低優先度をタイムシェアリングクラス30の最
低優先度0と等しくする。
【0104】図32(B)のマッピングによれば、図3
3の動作形態が得られる。図7のプロセス優先度制御部
26に対する指示でユーザプロセス12−2を優先度0
に設定することで、一定時間をタイムシェアリングプロ
セス用時間Ttsに割り当てる。この場合、タイムシェ
アリングプロセス用時間Ttsの間、実際には実行可能
なタイムシェアリングプロセスが存在しなかったとする
と、図32(B)の最低優先度0をもつリアルタイムク
ラス28のユーザプロセス12−2をタイムシェアリン
グクラスのユーザプロセスの代わりに動作させることが
できる。
【0105】もちろん、このときユーザプロセス12−
1は実行停止状態となっていることから、ユーザプロセ
ス12−2の動作中に動作することはない。これによっ
て、一定時間タイムシェアリングクラスのユーザプロセ
スに動作時間を割り当てても効率良くリアルタイムクラ
スのユーザプロセスを動作させることができる。 5.ユーザプロセスのブロック検出 図34は、ユーザレベルプロセススケジューラ10によ
りユーザプロセス12−1に時間T1からT4までCP
U時間Tを割り当てた状態でブロックが発生した場合で
ある。即ち、時間T1でユーザプロセス12−1がCP
U時間の割当てを受けて動作を開始したが、時刻T2で
I/O待ち等でブロック54が発生したとする。
【0106】このブロック54は適宜のブロック検出手
段により検出されて、ブロック検出通知56がユーザレ
ベルプロセススケジューラ10に通知される。ユーザレ
ベルプロセススケジューラ10はブロック検出56の通
知を受けると、残り時間T3〜T4をタイムシェアリン
グクラスのユーザプロセスに割り当てる。図35は、図
34におけるブロック検出のためのプロセスの動作形態
である。
【0107】図35において、優先度159のユーザレ
ベルプロセススケジューラ10のスケジュール対象とな
るユーザプロセス12−1と同じ優先度158にブロッ
ク検出プロセス60を設けている。本発明をサポートす
るオペレーティングシステムSolaris2.4のリ
アルタイムクラスでは、同一優先度に複数の実行可能な
プロセスが存在する場合、CPU割当ての最小単位であ
るタイムカンタムごとにラウンドロビンで実行可能プロ
セスを切り替える。またタイムカンタムは、プロセスご
とにpriocntlシステムコールで設定することが
できる。
【0108】図35にあっては、ユーザレベルプロセス
スケジューラ10がユーザプロセス12−1とブロック
検出プロセス60を次の手順で設定し、図34のように
ユーザプロセス12−1がブロックしたことをブロック
検出プロセス60で検出し、オペレーティングシステム
のシグナル機能を使用してユーザレベルプロセススケジ
ューラ10に通知することになる。
【0109】即ち、図35のユーザレベルプロセススケ
ジューラ10によるブロック検出プロセス60の設定は
次のようになる。 ユーザプロセス12−1を優先度158に設定する。 ユーザプロセス12−1のタイムカンタムを、ユーザ
プロセス12−1を与えるCPU時間と等しい時間また
はそれ以上の値をもつ時間に設定する。
【0110】ユーザプロセス12−1を実行可能状態
とする。 ブロック検出プロセス60を優先度158に設定す
る。 ブロック検出プロセス60のタイムカンタムを適当な
時間に設定する。 ブロック検出プロセス60を実行可能状態とする。 ユーザプロセス12−1に与えたCPU時間だけスリ
ープする。
【0111】図37はブロック検出プロセスの他の動作
形態であり、ユーザレベルプロセススケジューラ10の
スケジュール対象となるユーザプロセス12−1に対し
更に下位の優先度158にブロック検出プロセス60を
設定している。即ち、ユーザプロセス12−1がブロッ
クしたことをブロック検出プロセス60で検出し、オペ
レーティングシステムのシグナル機能を使用してユーザ
レベルプロセススケジューラ10に通知する。この場合
のユーザプロセス12−1及びブロック検出プロセス6
0の設定は次のようになる。
【0112】ユーザプロセス12−1を優先度158
に設定する。 ユーザプロセス12−1を実行可能状態とする。 ブロック検出プロセス60を優先度157に設定す
る。 ブロック検出プロセス60を実行可能状態とする。 ユーザプロセス12−1を動作させたい時間スリープ
する。
【0113】この図37のブロック検出プロセス60の
設定の場合の動作も、図36と同じになる。図38は、
ユーザプロセスに割り当てた一定のCPU時間内にブロ
ック検出が行われた後、実行可能状態となった場合の動
作形態の説明図である。まずユーザレベルプロセススケ
ジューラ10は、ユーザプロセス12−1に時間T1か
らT6までの時間をCPU時間として割り当てている。
しかしながら、ユーザプロセス12−1が時間T2でI
/O待ち等でブロックし、ブロック検出68を受けてユ
ーザレベルプロセススケジューラ10は残り時間T3か
らT6をタイムシェアリングクラスのプロセス120に
割り当てる。
【0114】ところが、その途中の時間T4でユーザプ
ロセス12−1が実行可能になったとすると、適宜の検
出手段により実行可能検出72がユーザレベルプロセス
スケジューラ10に通知され、この通知を受けて時間T
5からT6を再度ユーザプロセス12−1に割り当て
る。図38における一度ブロックしたユーザプロセス1
2−1の実行可能状態の検出は、オペレーティングシス
テムからの通知により可能となる。
【0115】図39は、ユーザプロセスの生成と終了を
検出した場合の動作形態の説明図である。まず図39
(A)は、ユーザプロセス12−1のみを動作してお
り、CPU時間の一部をタイムシェアリングプロセス1
20用に割り当てていた場合である。この状態で新たな
ユーザプロセス12−2が生成されると、図39(B)
のように、ユーザプロセス12−2の生成を検出し、タ
イムシェアリングプロセスに割り当てていたCPU時間
をユーザプロセス12−2に割り当てる。
【0116】一方、ユーザレベルプロセススケジューラ
10は、図39(B)のように、ユーザプロセス12−
1,12−2にCPU時間を割り当てていたが、ユーザ
プロセス12−2が終了したことを検出した場合、この
ユーザプロセス12−2のCPU割当時間をタイムシェ
アリングプロセス120に割り当て、図39(A)の動
作形態とする。
【0117】図39のようなプロセスの生成、終了につ
いては、プロセス生成を行うシステムコールforkと
プロセスの終了を行うexitシステムコールで行われ
るが、C言語で書かれた図40(A)のアプリケーショ
ン32の場合、ライブラリ34を通してオペレーティン
グシステム14に通知される。また本発明のユーザレベ
ルプロセススケジューラ10が存在する場合、図40
(B)のように、アプリケーションプログラム32より
プロセス生成のシステムコールforkまたはプロセス
の終了のシステムコールexitを発行した場合、ユー
ザレベルプロセススケジューラ10に対しメッセージ通
信機能をもつ新ライブラリ340を設ける。
【0118】このため新ライブラリ340は、アプリケ
ーションプログラム32よりシステムコールforkま
たはexitを受けると、プロセス間通信機能の1つで
あるメッセージを使用してユーザレベルプロセススケジ
ューラ10に生成または終了を通知することができる。
この新ライブラリ340については、コンパイル時にス
タティックリンクされたものは再リンクを行い、実行時
にダイナミックリンクされるものに対してはダイナミッ
クリンクライブラリを置き替える。これにより、アプリ
ケーションプログラム32を書き替える必要はない。
【0119】図40(B)の形態でユーザプロセスの生
成、終了を検出した場合の動作は、図39(A)(B)
と同じになる。もちろん、ユーザプロセスの生成と終了
はオペレーティングシステム14から直接ユーザレベル
プロセススケジューラ10に通知して行うようにしても
よい。尚、上記の実施例は、固定優先度スケジューリン
グをリアルタイムクラスとして提供するサンマイクロシ
ステム社のオペレーティングシステムSolaris
2.4を例にとるものであったが、他の固定優先度スケ
ジューリング方式を提供する適宜のオペレーティングシ
ステムについてそのまま適用できる。
【0120】また本発明のユーザレベルプロセススケジ
ューラがリンクする固定優先度のスケジューラに対する
他のクラスのスケジューラとして、タイムシェアリング
スケジューラを例にとっているが、これ以外の優先度可
変のスケジューラであってもよいことはもちろんであ
る。
【0121】
【発明の効果】以上説明してきたように本発明によれ
ば、マルチメディア処理で必要とされる一定割合のCP
U利用を保証するスケジューラをユーザのニーズに合わ
せて様々な形態で商用のオペレーティングシステム上に
実装することができる。またユーザレベルで実現されて
いるにもかかわらず、振る舞いの信用できないプロセス
をスケジューリング対象とすることができるなど、オペ
レーティングシステム内でスケジューラを実現すると同
等のスケジューラをユーザレベルで実装することができ
る。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】ユーザレベルプロセススケジューラとユーザプ
ロセスの動作環境の説明図
【図3】並列型のユーザレベルプロセススケジューラと
ユーザプロセスの動作環境の説明図
【図4】階層型のユーザレベルプロセススケジューラと
ユーザプロセスの動作環境の説明図
【図5】図3を対象とした階層型のユーザレベルプロセ
ススケジューラとユーザプロセスの動作環境の説明図
【図6】同一優先度に2つのユーザレベルプロセススケ
ジューラを設けた動作環境の説明図
【図7】図2のユーザプロセススケジューラの詳細説明
【図8】図7のプロセス管理表の説明図
【図9】ユーザプロセスの実行、停止による動作説明図
【図10】図7のプロセス実行制御部による実行と停止
の処理のフローチャート
【図11】ユーザプロセスの優先度変更による動作説明
【図12】図7のプロセス優先度制御部による実行と停
止の処理のフローチャート
【図13】ユーザプロセスのクラス変更による動作説明
【図14】図7のクラス変更制御部による実行と停止の
処理のフローチャート
【図15】図7の実行停止を用いたユーザプロセスの加
入脱会処理のフローチャート
【図16】図7の優先度変更を用いたユーザプロセスの
加入脱会処理のフローチャート
【図17】図7のクラス変更を用いたユーザプロセスの
加入脱会処理のフローチャート
【図18】ライブラリを用いたスケジュール変更要求の
説明図
【図19】ライブラリのスケジュール仕様に基づくスケ
ジュール変更要求の説明図
【図20】図19のスケジュール仕様の説明図
【図21】マルチスレッド構成をもつユーザプロセスの
説明図
【図22】図2の動作環境で一定時間に1つのユーザプ
ロセスのみを動作させる説明図
【図23】図3の動作環境で一定時間に1つのユーザプ
ロセスのみを動作させる説明図
【図24】CPU割当て対象のユーザプロセスを複数動
作させた説明図
【図25】複数のCPUを割り当てて動作させた場合の
説明図
【図26】一定時間内に複数のユーザプロセスを動作さ
せる説明図
【図27】一定周期で複数のユーザプロセスを動作させ
る説明図
【図28】動作周期の異なるユーザプロセスの説明図
【図29】図28のユーザプロセスを一定周期で動作さ
せた説明図
【図30】一定期間を複数分割して複数のユーザプロセ
スを動作させた説明図
【図31】タイムシェアリングプロセスにCPU時間を
割り当てた説明図
【図32】タイムシェアリングクラスとリアルタイムク
ラスの優先度のマッピングの説明図
【図33】リアルタイムクラスの優先度0にマッピング
したユーザプロセスの動作の説明図
【図34】ユーザプロセスのブロック検出時の動作の説
明図
【図35】ブロック検出プロセスの動作環境の説明図
【図36】ブロック検出プロセスのブロック検出と動作
の説明図
【図37】ブロック検出プロセスの他の動作環境の説明
【図38】ブロック検出後に実行可能が検出された場合
の説明図
【図39】ユーザプロセスの生成と終了の説明図
【図40】アプリケーションプログラムのライブラリを
使用したユーザプロセスの発生終了の検出通知の説明図
【符号の説明】
10,10−1,10−2,10−11,10−12,
1−21,10−22:ユーザレベルプロセススケジュ
ーラ 12,12−1,12−2〜12−4:ユーザプロセス 14:オペレーティングシステム(OS) 16:クラス変更指示部 18:プロセス管理表 20:プロセス実行指示部 22:クラス変更制御部 24:プロセス実行制御部 26:プロセス優先度制御部 28:リアルタイムクラス(固定優先度スケジュールク
ラス) 30:タイムシェアリングクラス(動的優先度スケジュ
ールクラス) 32:アプリケーションプログラム 34,38:ライブラリ 36:親プロセス 42:マルチスレッドライブラリ 44−1〜44−3:スレッド 60:ブロック検出プロセス 340:新ライブラリ

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】オペレーティングシステムによりサポート
    され、スケジューリング対象となる複数のプロセスに対
    し優先度を固定的に定めると共に、該優先度はユーザプ
    ロセスからの指定で変更可能であり、実行可能な複数の
    プロセスのうち優先度の高いプロセスからCPUを割り
    当てて動作させる計算機のプロセススケジューラに於い
    て、 ユーザプロセスに属すると共に前記固定優先度スケジュ
    ーリングの第1優先度を持ち、前記第1優先度より低い
    優先度を持つ他のユーザプロセス群をスケジューリング
    して動作させる(CPU割当てを決めてユーザプロセス
    の動作をOSに依頼する)ユーザレベルプロセススケジ
    ューラを設けたことを特徴とする計算機のプロセススケ
    ジューラ。
  2. 【請求項2】請求項1記載の計算機のプロセススケジュ
    ーラに於いて、前記ユーザレベルプロセススケジューラ
    は、第1優先度をもつ複数のユーザプロセス毎にリンク
    され、各ユーザレベルプロセススケジューラは自己がリ
    ンクしたユーザプロセスをスケジューリングして動作さ
    せることを特徴とする計算機のプロセススケジューラ。
  3. 【請求項3】請求項1又は2記載の計算機のプロセスス
    ケジューラに於いて、前記第1優先度のユーザレベルプ
    ロセススケジューラは、自己がスケジュールしているユ
    ーザプロセス群中に、第2優先度以下のユーザレベルプ
    ロセススケジューラを設け、前記上位から下位に階層的
    に他のユーザプロセス群をスケジューリングして動作さ
    せることを特徴とする計算機のプロセススケジューラ。
  4. 【請求項4】請求項1記載の計算機のプロセススケジュ
    ーラに於いて、第一優先度をもつユーザレベルスケジュ
    ーラを複数設け、各ユーザレベルプロセススケジューラ
    が個別に自己のユーザプロセス群をスケジューリングし
    て実行することを特徴とする計算機のプロセススケジュ
    ーラ。
  5. 【請求項5】請求項1記載の計算機のプロセススケジュ
    ーラに於いて、前記ユーザレベルプロセススケジューラ
    は、ユーザプロセスからの要求に基づくクラス変更指示
    部からの指示、又はプロセス管理表の参照によるプロセ
    ス実行指示部からの指示に従い、指定されたユーザプロ
    セスの実行、停止又は再開をオペレーティングシステム
    に依頼するプロセス実行制御部を備えたことを特徴とす
    る計算機のプロセススケジューラ。
  6. 【請求項6】請求項1記載の計算機のプロセススケジュ
    ーラに於いて、前記ユーザレベルプロセススケジューラ
    は、ユーザプロセスからの要求に基づくクラス変更指示
    部からの指示、又はプロセス管理表の参照によるプロセ
    ス実行指示部からの指示に従い、指定されたユーザプロ
    セスの優先度を第1優先度に変更してユーザプロセスを
    実行させ、下位の優先度に変更した他のユーザプロセス
    を停止させることで、ユーザプロセスの実行、停止、又
    は再開をオペレーティングシステムに依頼するプロセス
    優先度制御部を備えたことを特徴とする計算機のプロセ
    ススケジューラ。
  7. 【請求項7】請求項1記載の計算機のプロセススケジュ
    ーラに於いて、 前記オペレーティングシステムは、高い優先度の領域に
    ある固定優先度のリアルタイムクラスに対し、低い優先
    度の領域にある優先度をプロセス状態に応じて動的に変
    化させるタイムシェアリングクラスを有する場合、前記
    ユーザレベルプロセススケジューラは、ユーザプロセス
    からの要求に基づくクラス変更指示部からの指示、又は
    プロセス管理表の参照によるプロセス実行指示部からの
    指示に従い、指定されたクラスの変更をオペレーティン
    グシステムに依頼して、ユーザプロセスの実行、停止又
    は再開させるクラス変更制御部を備えたことを特徴とす
    る計算機のプロセススケジューラ。
  8. 【請求項8】請求項5乃至7記載の計算機のプロセスス
    ケジューラに於いて、前記クラス変更指示部は、ユーザ
    プロセスのCPU使用時間の指定を伴なう加入要求に対
    し、前記プロセス管理表を参照して現在加入状態にある
    ユーザプロセス群の要求CPU時間の合計時間を求め、
    該合計時間が規定時間以下であれば前記ユーザプロセス
    をの加入を許可し、規定値を超えていれば加入を拒否す
    ることを特徴とする計算機のプロセススケジューラ。
  9. 【請求項9】請求項8記載の計算機のプロセススケジュ
    ーラに於いて、前記クラス変更指示部は、ユーザプロセ
    スの加入を許可する場合、前記プロセス実行制御部に加
    入要求プロセスの実行停止状態への変更を指示し、且つ
    前記クラス変更制御部に、低い優先度の領域にある動的
    優先度のタイムシェアリングクラスから高い優先度の領
    域にある固定優先度のリアルタイムクラスへの変更を指
    示し、前記プロセス優先度制御部に第2優先度への変更
    を指示し、更にユーザプロセスをプロセス管理表に登録
    した後に、加入許可を通知することを特徴とする計算機
    のプロセススケジューラ。
  10. 【請求項10】請求項8記載の計算機のプロセススケジ
    ューラに於いて、前記クラス変更指示部は、ユーザプロ
    セスの加入を許可する場合、前記クラス変更制御部にリ
    アルタイムクラスへの変更を指示し、且つ前記プロセス
    優先度制御部にリアルタイムクラスの第1優先度より下
    位の優先度への変更を指示し、更にユーザプロセスをプ
    ロセス管理表に登録した後に、加入許可を通知すること
    を特徴とする計算機のプロセススケジューラ。
  11. 【請求項11】請求項8記載の計算機のプロセススケジ
    ューラに於いて、前記クラス変更指示部は、ユーザプロ
    セスの加入を許可する場合、前記クラス変更制御部にタ
    イムシェアリングクラスへの変更を指示し、更にユーザ
    プロセスをプロセス管理表に登録した後に、加入許可を
    通知することを特徴とする計算機のプロセススケジュー
    ラ。
  12. 【請求項12】請求項5乃至7記載の計算機のプロセス
    スケジューラに於いて、前記クラス変更指示部は、ユー
    ザプロセスの脱会要求に対し、前記プロセス管理表から
    ユーザプロセスを削除すると共に、前記クラス変更制御
    部に脱会要求を行ったユーザプロセスのタイムシェアリ
    ングクラスへの変更を指示することを特徴とする計算機
    のプロセススケジューラ。
  13. 【請求項13】請求項5乃至7記載の計算機のプロセス
    スケジューラに於いて、前記クラス変更指示部は、ユー
    ザプロセスからの通知により新規なユーザプロセスの加
    入と脱会を処理することを特徴とする計算機のプロセス
    スケジューラ。
  14. 【請求項14】請求項5乃至7記載の計算機のプロセス
    スケジューラに於いて、前記クラス変更指示部は、オペ
    レーティングシステムからの通知により新規なユーザプ
    ロセスの加入と脱会を処理することを特徴とする計算機
    のプロセススケジューラ。
  15. 【請求項15】請求項5乃至7記載の計算機のプロセス
    スケジューラに於いて、前記プロセス実行制御部、クラ
    ス変更制御部、プロセス優先度制御部に対する変更要求
    の情報を、アプリケーションにリンクされたライブラリ
    を経由して、アプリケーションから要求指示を受け、オ
    ペレーティングシステムに変更を依頼することを特徴と
    する計算機のプロセススケジューラ。
  16. 【請求項16】請求項5乃至7記載の計算機のプロセス
    スケジューラに於いて、前記プロセス実行制御部、クラ
    ス変更制御部、プロセス優先度制御部に対する変更要求
    のスケジューリング仕様をユーザプロセスの1つで生成
    し、該ユーザプロセスのスケジューリング仕様に基づき
    前記ユーザレベルプロセススケジューラに変更要求を通
    知して前記オペレーティングシステムに変更を依頼する
    ことを特徴とする計算機のプロセススケジューラ。
  17. 【請求項17】請求項1記載の計算機のプロセススケジ
    ューラにおいて、前記ユーザレベルプロセススケジュー
    ラのスケジューリング対象となるユーザプロセスは、複
    数のスレッドから構成され、該ユーザプロセスの一部で
    あるスレッドスケジューラにより前記複数のスレッドを
    スケジューリングすることを特徴とする計算機のプロセ
    ススケジューラ。
  18. 【請求項18】請求項1記載の計算機のプロセススケジ
    ューラに於いて、ユーザプロセスの前記ユーザレベルプ
    ロセススケジューラは、プロセス管理表に登録された1
    又は複数のユーザプロセスにCPU時間を割り当てる
    際、CPU割当時間帯にユーザプロセスが1つしか存在
    しないように、ユーザプロセスの実行と停止、優先度変
    更、又はクラス変更をオペレーティングシステムに依頼
    することを特徴とする計算機のプロセススケジューラ。
  19. 【請求項19】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、プロセス管理表に登録された1又は複数のユーザ
    プロセスにCPU時間を割り当てる際、CPU割当時間
    帯の中に複数のユーザプロセスが時分割で存在するよう
    に、ユーザプロセスの実行と停止、優先度変更、又はク
    ラス変更をオペレーティングシステムに依頼することを
    特徴とする計算機のプロセススケジューラ。
  20. 【請求項20】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、一定期間内に複数のユーザプロセスと自分自身を
    含めてCPU時間を順番に割り当てることにより、複数
    のユーザプロセスの動作を一定期間内で保証したことを
    特徴とする計算機のプロセススケジューラ。
  21. 【請求項21】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記プロセススケジューラは、一定の
    周期を設定し、各周期内で複数のユーザプロセスと自分
    自身を含めたCPU時間を順番に割り当てることを繰り
    返すことにより、複数のユーザプロセスで動作を保証し
    たことを特徴とする計算機のプロセススケジューラ。
  22. 【請求項22】請求項21記載の計算機のプロセススケ
    ジューラに於いて、複数のユーザプロセスが持つ動作周
    期が異なる場合、前記ユーザレベルプロセススケジュー
    ラは、異なる動作周期の組合わせで1つの周期を決定
    し、該周期内で複数のユーザプロセスに使用可能なCP
    U時間を順番に割り当てることにより、複数のユーザプ
    ロセスの動作を保証したことを特徴とする計算機のプロ
    セススケジューラ。
  23. 【請求項23】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、一定時間又は一定周期において複数のユーザプロ
    セスに割り当てたCPU時間の占める割合が規定値以内
    の時、他のユーザプロセスに対するCPU時間の割当て
    を許容し、前記規定値を越えた時、他のユーザプロセス
    に対するCPU時間の割当てを拒否することを特徴とす
    る計算機のプロセススケジューラ。
  24. 【請求項24】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、一定期間又は一定周期でユーザプロセスにCPU
    時間を割り当てる場合、連続したCPU時間を割り当て
    ることを特徴とする計算機のプロセススケジューラ。
  25. 【請求項25】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、一定期間内又は一定周期内で複数のユーザプロセ
    スのCPU時間を割り当てる場合、複数のユーザプロセ
    スのCPU時間の各々を分割して割り当てることを特徴
    とする計算機のプロセススケジューラ。
  26. 【請求項26】請求項1記載の計算機のプロセススケジ
    ューラに於いて、プロセス管理表に登録されたユーザプ
    ロセスとして、高い優先度の領域にある固定優先度のリ
    アルタイムクラスに属するユーザプロセスと、低い優先
    度の領域にあり優先度を動的に変化させるタイムシェア
    リングクラスに属するユーザプロセスが存在する場合、
    前記ユーザレベルプロセススケジューラは、前記リアル
    タイムクラスのユーザプロセスに対するCPU時間の割
    り当てを制限してタイムシェアリングクラスのユーザプ
    ロセスにCPU時間を割当てることを特徴とする計算機
    のプロセススケジューラ。
  27. 【請求項27】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、ユーザプロセスの実行停止を検出して他のユーザ
    プロセスを動作可能とすることを特徴とする計算機のプ
    ロセススケジューラ。
  28. 【請求項28】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、ユーザプロセスにCPU時間を割り当てる際に、
    該ユーザプロセスに加え同じ優先度で実行可能なブロッ
    ク検出プロセスを設け、前記ユーザプロセスがブロック
    した際に前記ブロック検出プロセスにCPU時間を割当
    ててブロックを検出して通知させ、該通知により前記ユ
    ーザプロセスが実行停止したことを認識して他のユーザ
    プロセスを実行可能とすることを特徴とする計算機のプ
    ロセススケジューラ。
  29. 【請求項29】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、ユーザプロセスにCPU時間を割り当てる際に、
    該ユーザプロセスに加え低い優先度で実行可能なブロッ
    ク検出プロセスを設け、前記ユーザプロセスがブロック
    した際に前記ブロック検出プロセスにCPU時間を割り
    当ててブロックを検出して通知させ、該通知により前記
    ユーザプロセスが実行停止したことを認識して他のユー
    ザプロセスを実行可能とすることを特徴とする計算機の
    プロセススケジューラ。
  30. 【請求項30】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、ブロック中のユーザプロセスが実行可能な状態に
    なったことを検出して動作させることを特徴とする計算
    機のプロセススケジューラ。
  31. 【請求項31】請求項1記載の計算機のプロセススケジ
    ューラに於いて、前記ユーザレベルプロセススケジュー
    ラは、オペレーティングシステムによるユーザプロセス
    のブロックまたはブロック回復による実行再開の通知を
    検出して他のユーザプロセスの実行又は停止を行うこと
    を特徴とする計算機のプロセススケジューラ。
JP7205424A 1995-08-11 1995-08-11 計算機のプロセススケジューラ Pending JPH0954699A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7205424A JPH0954699A (ja) 1995-08-11 1995-08-11 計算機のプロセススケジューラ
US08/621,181 US6108683A (en) 1995-08-11 1996-03-21 Computer system process scheduler determining and executing processes based upon changeable priorities
GB9607228A GB2304211B (en) 1995-08-11 1996-04-04 Process scheduler for computer system
US09/474,100 US6668269B1 (en) 1995-08-11 1999-12-29 Computer system process scheduler determining and executing processes based upon changeable priorities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7205424A JPH0954699A (ja) 1995-08-11 1995-08-11 計算機のプロセススケジューラ

Publications (1)

Publication Number Publication Date
JPH0954699A true JPH0954699A (ja) 1997-02-25

Family

ID=16506626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7205424A Pending JPH0954699A (ja) 1995-08-11 1995-08-11 計算機のプロセススケジューラ

Country Status (3)

Country Link
US (2) US6108683A (ja)
JP (1) JPH0954699A (ja)
GB (1) GB2304211B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981258B1 (en) 1999-10-19 2005-12-27 Nec Electronics Corporation Process scheduler without long overhead and large memory and scheduling method used therein
JP2008186383A (ja) * 2007-01-31 2008-08-14 Nec Corp プロセス管理機能をもつユーザレベルプロセス制御装置、その方法及びそのプログラム
JP2009187590A (ja) * 2005-01-19 2009-08-20 Imageom:Kk クラスタコンピュータミドルウェア、クラスタコンピュータシミュレータ、クラスタコンピュータ用アプリケーション、およびアプリケーション開発支援方法
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
WO2010082244A1 (ja) * 2009-01-16 2010-07-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2011523142A (ja) * 2008-06-02 2011-08-04 マイクロソフト コーポレーション プロセス内のスケジューラインスタンス
JP2012146157A (ja) * 2011-01-13 2012-08-02 Hitachi Systems Ltd スケジューリング方法およびスケジューリングシステム
CN102848760A (zh) * 2012-09-17 2013-01-02 南通华银毛绒制品有限公司 一种用于地毯面料印花与烂花同步印刷工艺
KR20130138146A (ko) * 2012-06-08 2013-12-18 애플 인크. 적응형 프로세스 중요도

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US6385638B1 (en) 1997-09-04 2002-05-07 Equator Technologies, Inc. Processor resource distributor and method
US6256679B1 (en) * 1997-12-23 2001-07-03 Simmonds Precision Products, Inc. Blackboard-centric layered software architecture for an embedded airborne fuel gauging subsystem
US6810503B1 (en) * 1998-02-11 2004-10-26 Microsoft Corporation Method and apparatus for controlling the timing of the invocation of events within a computer runtime environment
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
KR20010103719A (ko) * 1998-12-23 2001-11-23 파워티브이, 인코포레이티드 운영 체계 스케쥴링 동작을 제공하는 방법 및 장치
US7065762B1 (en) * 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
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
US6874144B1 (en) * 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
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
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
JP2004502235A (ja) * 2000-06-27 2004-01-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スケジュール決定方法、スケジューラ及びシステム
US7296271B1 (en) * 2000-06-28 2007-11-13 Emc Corporation Replaceable scheduling algorithm in multitasking kernel
GB2364143A (en) * 2000-06-30 2002-01-16 Nokia Corp Resource allocation
US7085934B1 (en) * 2000-07-27 2006-08-01 Mcafee, Inc. Method and system for limiting processor utilization by a virus scanner
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
US6647441B1 (en) * 2000-09-15 2003-11-11 Hewlett-Packard Development Company, L.P. Method of maximizing servicing capability of large numbers of I/O descriptors
US20020073129A1 (en) * 2000-12-04 2002-06-13 Yu-Chung Wang Integrated multi-component scheduler for operating systems
DE10065113A1 (de) * 2000-12-28 2002-07-04 Bosch Gmbh Robert Verfahren und Kommunikationssystem zum Datenaustausch zwischen Teilnehmern eines Bussystems
WO2002071218A2 (en) * 2001-03-05 2002-09-12 Koninklijke Philips Electronics N.V. Method of and system for withdrawing budget from a blocking task
US7036123B2 (en) * 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group
JP2003067201A (ja) * 2001-08-30 2003-03-07 Hitachi Ltd コントローラとオペレーティングシステム
ES2305216T3 (es) * 2002-01-30 2008-11-01 Real Enterprise Solutions Development B.V. Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto.
US7143411B2 (en) * 2002-03-15 2006-11-28 Hewlett-Packard Development Company, L.P. Capping processor utilization
US7178146B1 (en) * 2002-03-26 2007-02-13 Emc Corporation Pizza scheduler
US7114156B2 (en) * 2002-03-29 2006-09-26 International Business Machines Corporation System and method for processing multiple work flow requests from multiple users in a queuing system
US7448036B2 (en) 2002-05-02 2008-11-04 International Business Machines Corporation System and method for thread scheduling with weak preemption policy
DE10220341C1 (de) * 2002-05-07 2003-10-30 Siemens Ag Verfahren zur Ermittlung der prioritätsabhängigen Rechenzeitverteilung in einem prioritätsgesteuerten MehrProzess-Rechensystem
US7346902B2 (en) * 2002-10-22 2008-03-18 Sun Microsystems, Inc. System and method for block-based concurrentization of software code
WO2004059481A2 (en) * 2002-12-16 2004-07-15 Globespanvirata Incorporated System and method for scheduling thread execution
US20040226014A1 (en) * 2002-12-31 2004-11-11 Moore Mark Justin System and method for providing balanced thread scheduling
US20050015768A1 (en) * 2002-12-31 2005-01-20 Moore Mark Justin System and method for providing hardware-assisted task scheduling
US7363625B2 (en) * 2003-04-24 2008-04-22 International Business Machines Corporation Method for changing a thread priority in a simultaneous multithread processor
JP2005005909A (ja) * 2003-06-10 2005-01-06 Sony Ericsson Mobilecommunications Japan Inc 競合管理プログラム,競合管理プログラムが記憶された記憶媒体,競合管理方法及び電子機器
US7797439B2 (en) * 2003-06-23 2010-09-14 Hewlett-Packard Development Company, L.P. Cost-aware admission control for streaming media server
US7380247B2 (en) * 2003-07-24 2008-05-27 International Business Machines Corporation System for delaying priority boost in a priority offset amount only after detecting of preemption event during access to critical section
JP3953449B2 (ja) * 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
JP4213572B2 (ja) * 2003-11-28 2009-01-21 株式会社東芝 電子機器およびプロセッサ速度制御方法
US7793160B1 (en) 2005-03-29 2010-09-07 Emc Corporation Systems and methods for tracing errors
US7613897B2 (en) * 2005-03-30 2009-11-03 International Business Machines Corporation Allocating entitled processor cycles for preempted virtual processors
US20090271548A1 (en) * 2006-06-23 2009-10-29 Freescale Semiconductor, Inc. Interrupt response control apparatus and method therefor
JP4509068B2 (ja) * 2006-07-24 2010-07-21 富士通株式会社 パケット処理装置
DE102006046184B4 (de) * 2006-09-29 2009-01-02 Infineon Technologies Ag Verfahren, Vorrichtung und Computerprogrammprodukt zur Ermittlung einer voraussichtlichen Überschreitung einer maximal erlaubten Leistungsaufnahme eines mobilen elektronischen Geräts und mobiles elektronisches Gerät
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
WO2008092412A1 (de) * 2007-01-31 2008-08-07 Siemens Aktiengesellschaft Steuerung des laufzeitverhaltens von prozessen
US8087028B2 (en) * 2007-03-07 2011-12-27 Microsoft Corporation Computing device resource scheduling
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
FR2915006B1 (fr) * 2007-04-13 2009-08-21 Wavecom Sa Procede et dispositif de gestion de l'utilisation d'un processeur par plusieurs applications, produit programme d'ordinateur et moyen de stockage correspondants.
US8640131B2 (en) * 2008-01-18 2014-01-28 Microsoft Corporation Demand-based processor cycle allocation subsequent to equal group-based processor cycle distribution
JP4996519B2 (ja) * 2008-03-27 2012-08-08 パナソニック株式会社 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
US8448177B1 (en) * 2008-04-10 2013-05-21 United Services Automobile Association (Usaa) Task prioritization based on users' interest
US8276145B2 (en) * 2008-06-27 2012-09-25 Microsoft Corporation Protected mode scheduling of operations
US9009717B2 (en) 2009-10-29 2015-04-14 International Business Machines Corporation Managing scheduling of processes
EP2369477B1 (en) * 2010-02-22 2017-10-11 Telefonaktiebolaget LM Ericsson (publ) Technique for providing task priority related information intended for task scheduling in a system
EP2369478A1 (en) * 2010-02-22 2011-09-28 Telefonaktiebolaget L M Ericsson (PUBL) Technique of scheduling tasks in a system
US8769543B2 (en) * 2010-09-27 2014-07-01 Throughputer, Inc. System and method for maximizing data processing throughput via application load adaptive scheduling and context switching
US9547528B1 (en) 2010-03-29 2017-01-17 EMC IP Holding Company LLC Pizza scheduler
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8935318B1 (en) * 2011-03-28 2015-01-13 Google Inc. Opportunistic job processing in a distributed computer environment
US9183047B2 (en) * 2011-05-13 2015-11-10 Samsung Electronics Co., Ltd. Classifying requested application based on processing and response time and scheduling threads of the requested application according to a preset group
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US9128754B2 (en) * 2012-05-31 2015-09-08 Hewlett-Packard Development Company, L.P. Resource starvation management in a computer system
US9639678B2 (en) 2012-06-29 2017-05-02 Microsoft Technology Licensing, Llc Identity risk score generation and implementation
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9619012B2 (en) * 2014-05-30 2017-04-11 Apple Inc. Power level control using power assertion requests
US9658893B2 (en) 2015-05-06 2017-05-23 Runtime Design Automation Multilayered resource scheduling
US20180109469A1 (en) * 2016-10-17 2018-04-19 International Business Machines Corporation Systems and methods for controlling process priority for efficient resource allocation
US20210133914A1 (en) * 2019-10-31 2021-05-06 Tactuity LLC Multiple o/s virtual video platform

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2191918B (en) * 1986-06-16 1990-09-05 Ibm Data display system
US6199117B1 (en) * 1992-03-30 2001-03-06 International Business Machines Corporation Generalized control for starting of tasks (processes and threads)
US5394548A (en) * 1992-10-09 1995-02-28 Fujitsu Limited Multi-media scheduling system
US5528513A (en) * 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
FR2723653B1 (fr) * 1994-08-11 1996-09-13 Cegelec Procede pour ordonnancer des taches successives qui ne subissent que des contraintes du type delais
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981258B1 (en) 1999-10-19 2005-12-27 Nec Electronics Corporation Process scheduler without long overhead and large memory and scheduling method used therein
JP2009187590A (ja) * 2005-01-19 2009-08-20 Imageom:Kk クラスタコンピュータミドルウェア、クラスタコンピュータシミュレータ、クラスタコンピュータ用アプリケーション、およびアプリケーション開発支援方法
JP2008186383A (ja) * 2007-01-31 2008-08-14 Nec Corp プロセス管理機能をもつユーザレベルプロセス制御装置、その方法及びそのプログラム
JP2011523142A (ja) * 2008-06-02 2011-08-04 マイクロソフト コーポレーション プロセス内のスケジューラインスタンス
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
JP5464146B2 (ja) * 2008-11-14 2014-04-09 日本電気株式会社 スケジュール決定装置
JP2010165259A (ja) * 2009-01-16 2010-07-29 Sony Computer Entertainment Inc 情報処理装置および情報処理方法
WO2010082244A1 (ja) * 2009-01-16 2010-07-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US8793695B2 (en) 2009-01-16 2014-07-29 Sony Corporation Information processing device and information processing method
JP2012146157A (ja) * 2011-01-13 2012-08-02 Hitachi Systems Ltd スケジューリング方法およびスケジューリングシステム
KR20130138146A (ko) * 2012-06-08 2013-12-18 애플 인크. 적응형 프로세스 중요도
US9411637B2 (en) 2012-06-08 2016-08-09 Apple Inc. Adaptive process importance
CN102848760A (zh) * 2012-09-17 2013-01-02 南通华银毛绒制品有限公司 一种用于地毯面料印花与烂花同步印刷工艺

Also Published As

Publication number Publication date
GB2304211B (en) 2000-04-19
GB2304211A (en) 1997-03-12
US6668269B1 (en) 2003-12-23
GB9607228D0 (en) 1996-06-12
US6108683A (en) 2000-08-22

Similar Documents

Publication Publication Date Title
JPH0954699A (ja) 計算機のプロセススケジューラ
Rajkumar Real-time synchronization protocols for shared memory multiprocessors
US7926062B2 (en) Interrupt and exception handling for multi-streaming digital processors
US7765546B2 (en) Interstream control and communications for multi-streaming digital processors
US20030037091A1 (en) Task scheduling device
JPH03144847A (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
KR20050016170A (ko) 실시간 동작 수행방법 및 시스템
KR20050011689A (ko) 실시간 동작 수행방법 및 시스템
US8413163B2 (en) Program control device including per-timeslot switching of thread execution
CN101896886A (zh) 单个计算机***上运行的多个内核之间的一致同步
JP2009541848A (ja) コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置
US6721948B1 (en) Method for managing shared tasks in a multi-tasking data processing system
Yang et al. On the soft real-time optimality of global EDF on uniform multiprocessors
JPH11212810A (ja) タイム・クアンタム共有方法および装置
JP3429582B2 (ja) マルチプロセッサシステム
KR101377195B1 (ko) 컴퓨터 마이크로 작업
CN116244073A (zh) 混合关键分区实时操作***的资源感知型任务分配方法
US20110185365A1 (en) Data processing system, method for processing data and computer program product
Zouaoui et al. CPU scheduling algorithms: Case & comparative study
KR20070061464A (ko) 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2001142723A (ja) 資源配分方法、計算機システム及び記録媒体
JPH05204875A (ja) スレッドのスケジュール方式
JP2023091314A (ja) 半導体装置、半導体装置の制御方法及びプログラム
JP5772040B2 (ja) データ転送システム,データ転送スケジューリングプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060131