JPH06214811A - スケジューリング方式 - Google Patents

スケジューリング方式

Info

Publication number
JPH06214811A
JPH06214811A JP766293A JP766293A JPH06214811A JP H06214811 A JPH06214811 A JP H06214811A JP 766293 A JP766293 A JP 766293A JP 766293 A JP766293 A JP 766293A JP H06214811 A JPH06214811 A JP H06214811A
Authority
JP
Japan
Prior art keywords
lock
resource
queue
executable
executed
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
JP766293A
Other languages
English (en)
Inventor
Masahiro Miura
雅弘 三浦
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP766293A priority Critical patent/JPH06214811A/ja
Publication of JPH06214811A publication Critical patent/JPH06214811A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】プライオリティの高いプロセスの実行効率の向
上を図る。 【構成】実行中のプロセス(Pn)11aが所定の資源
にロック要求して失敗した場合、スケジューラ22は、
ロック管理テーブルT1を参照してその資源をロックし
ているプロセスがプロセスPmであることを検出し、そ
のプロセスPmを実行可能プロセスキュー21から取り
出す。これにより、実行可能プセスキュー21の先頭プ
ロセスよりも先に、それよりも実行優先度の低いプロセ
ス(Pm)11bが実行される。したがって、資源のロ
ック解放を早められるようになり、プライオリティの高
いプロセスをより効率良く実行することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はスケジューリング方式
に関し、特に複数のプロセスを時分割により並行に実行
する計算機システムにおいてCPUに割り当てるプロセ
スを決定するスケジューリング方式に関する。
【0002】
【従来の技術】現代の社会では、様々な分野において大
量の情報を処理することが重要となっており、高速な計
算への要求がますます高まっている。
【0003】計算機上では一般に、複数のプロセスが並
行に動作する。プロセスがある程度長く実行を続けた場
合や、一時的に実行不可能となった場合などには、この
プロセスの実行を一時的に中止して休眠状態とし、別の
プロセスの実行に切替える、という手法がよく用いられ
る。このような手法は時分割と呼ばれ、これによって計
算機を全体として効率良く使い、高速な計算を行うこと
が可能となっている。
【0004】オペレーティグ・システムの役割の一つ
に、複数のプロセスが同時に使用することのできないフ
ァイルや周辺機器などの資源を管理することがあり、こ
のような資源の使用を複数のプロセス間で排他制御する
ために、共有メモリなどを用いて資源にロックをかける
という手法が一般的に用いられている。
【0005】あるプロセスの実行中に、このような資源
を使うためにロックをかけようとしたところ、既に別の
プロセスがこの資源をロックしていた、という場合に
は、前者のプロセスは実行を継続することができないた
め、前者のプロセスはこの資源が使えるようになるまで
スピンして待つか、一時的に休眠状態になり他のプロセ
スにコンテクストスイッチする。このプロセスは、先に
ロックをかけていたプロセスが実行を進め、やがて資源
が不要となってロックを解除して、はじめて実行を継続
できるようになる。
【0006】このようにしてプロセスが休眠状態となる
と、プロセスを実行していたプロセッサが次に実行する
べきプロセスを決定しなければならない。この決定のこ
とをスケジューリングという。
【0007】従来のスケジューリング方式では、プライ
オリティ順に実行可能プロセスキューに並べられたプロ
セスを先頭から順番に取出すことによって、この決定を
行っている。
【0008】しかし、この方式では、先にロックをかけ
ていたプロセスのプライオリティが低かった場合、その
ロックの解除を待っているプロセスのプライオリティが
高くてもなかなか実行されないことになり、その結果、
プライオリティの高いプロセスがプライオリティの低い
プロセスの実行まで待たされてしまうという問題があっ
た。
【0009】この場合、プライオリティの低いプロセス
は実行順が遅いので、プライオリティの高いプロセス
は、そのプライオリティの低いプロセスによって資源が
解放されるまで長い時間待たされることになる。
【0010】
【発明が解決しようとする課題】従来のスケジューリン
グ方式においては、プライオリティ順にプロセスの処理
順を決定しているだけであるため、プライオリティの高
いプロセスがプライオリティの低いプロセスによって待
たされるという欠点があった。
【0011】この発明はこのような点に鑑みてなされた
もので、ロック待ちの原因となっているプロセスを先に
実行することによって資源のロック解放を早められるよ
うにし、プライオリティの高いプロセスをより効率良く
実行することができるスケージューリング方式を提供す
ることを目的とする。
【0012】
【課題を解決するための手段および作用】この発明は、
複数のプロセスを時分割により並行に実行する計算機シ
ステムにおけるスケジューリング方式において、資源を
ロックしているプロセスを各資源毎に管理するロックプ
ロセス管理テーブルと、実行中のプロセスが所定の資源
のロック待ちによりその実行継続が絶たれた際、前記ロ
ックプロセス管理テーブルを参照して前記資源をロック
しているプロセスを検出する手段と、この検出されたプ
ロセスを次に実行するように決定する処理順決定手段と
を具備することを第1の特徴とする。
【0013】このスケージューリング方式によれば、例
えばプライオリティの高いプロセスがロック待ちで実行
継続できなくなった際には、そのロック待ち資源をロッ
クしているプロセスが検出され、そのプロセスが次に実
行するプロセスとして決定される。このため、ロック待
ちの原因となっているプロセスが先に実行されて資源の
ロック解放が早められる。したがって、プライオリティ
の高いプロセスが、実行順の遅いプライオリティの低い
プロセスによって資源が解放されるまで長い時間待たさ
れるという事態の発生を防止できるようになり、プライ
オリティの高いプロセスをより効率良く実行することが
できる。
【0014】また、この発明は、複数のプロセスを時分
割により並行に実行する複数のプロセッサを有し、各プ
ロセッサ毎に実行可能プロセスキューを備えたマルチプ
ロセッサシステムにおけるスケジューリング方式におい
て、資源をロックしているプロセスを各資源毎に管理す
るロックプロセス管理テーブルと、実行中のプロセスが
所定の資源のロック待ちによりその実行継続が絶たれた
際、前記ロックプロセス管理テーブルを参照して前記資
源をロックしているプロセスを検出する手段と、この検
出されたプロセスが蓄積されている実行可能プロセスキ
ューを検出する手段と、前記検出されたプロセスを実行
可能プロセスキューから取り出して次に実行するように
決定する処理順決定手段とを具備することを第2の特徴
とする。
【0015】このスケージューリング方式によれば、ロ
ック解放待ちの原因となっているプロセスが他のプロセ
ッサの実行可能プロセスキューにある場合には、そのプ
ロセッサによってそのロック解放待ちの原因となってい
るプロセスが実行されるように制御される。したがっ
て、プライオリティの高いプロセスをマルチプロセッサ
システム全体で効率良く実行することができる。
【0016】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
【0017】図1にはこの発明の一実施例に係わる計算
機システムの構成が示されている。この計算機システム
は、CPU11、メモリ12、システムバス13、およ
び図示しない2次記憶装置や各種周辺機器によって構成
されるものであり、メモリ12に格納されているオペレ
ーティングシステムのカーネル空間にはスケージューリ
ングのための機構、すなわち実行可能プロセスキュー2
1、スケジューラ22、およびロック管理システム23
が設けられている。
【0018】実行可能プロセスキュー21は複数の実行
可能プロセスが一時的に蓄積される待ち行列である。こ
の実行可能プロセスキュー21には、例えば、プロセス
が優先度順に蓄積されている。
【0019】スケジューラ22は、プロセスの処理順を
決定するためのものであり、実行中のプロセスを決めら
れた時間(単位実行時間)連続して実行した時、また
は、その実行中のプロセスがロック解放待ちなどでそれ
以上実行を継続できなくなった時に、スケジューリング
を行なって次にCPU11で実行するプロセスを決定す
る。
【0020】この場合、スケジューラ22は、実行中の
プロセスからCPU11を取り上げた後、実行可能プロ
セスキュー21およびロック管理システム23と共同し
て次に実行するプロセスを決定する。
【0021】すなわち、実行中のプロセスを決められた
時間実行した場合には、スケジューラ22は、実行可能
プロセスキュー21に蓄積されているプロセスの中で最
もプライオリティの高いプロセスを次に実行するように
決定する。
【0022】一方、実行中のプロセスがロック解放待ち
でそれ以上実行を継続できなくなった時には、スケジュ
ーラ22は、ロック管理システム23のロック管理テー
ブルT1を参照してロック待ちの原因となっているプロ
セス(実行中のプロセスがロック要求した資源を既にロ
ックしているプロセス)を探し出し、そのプロセスが実
行可能であればそのプロセスを次に実行するように決定
する。この場合、実行可能プロセスは実行可能プロセス
キュー21に蓄積されているので、ロック待ちの原因と
なっているプロセスは実行可能プロセスキュー21から
取り出されて実行されることになる。
【0023】ロック管理システム23は、排他制御方式
で複数のプロセスを並行処理するためのロック操作を管
理するためのものであり、ロック管理テーブルT1を有
している。このロック管理テーブルT1には、各資源毎
にその資源をロックしているプロセス名が登録される。
ロック管理テーブルT1の一例を図2に示す。
【0024】図2に示されているように、ロック管理テ
ーブルT1には、排他制御の下に共有される資源名とし
てファイル1,2,3、およびプリンタ1,2,3等が
登録されている。また、それら各資源名に対応してロッ
ク変数L1〜L6と、ロックしているプロセス名が登録
されている。ロック変数L1〜L6は、対応する資源が
ロックされているか否かを示すものであり、ロックされ
ているときには“1”、ロックされてない時には“0”
にセットされる。このロック変数のセットは、各プロセ
スによって実行されるものである。
【0025】ここでは、ファイル1がプロセス1によっ
てロックされ、ファイル3がプロセスPmによってロッ
クされ、プリンタ3がプロセス2によってロックされて
いる状態を示している。
【0026】この計算機システムにおいて、例えば実行
中のプロセス(Pn)11aがファイル3のロック変数
L3にロック要求して失敗した場合を想定する。この場
合、スケジューラ22は、ロック管理テーブルT1を参
照してファイル3をロックしているプロセスがプロセス
Pmであることを検出し、そのプロセスPmを実行可能
プロセスキュー21から取り出す。この場合、実行可能
プロセスキュー21のプロセスの待ち行列は図3のよう
に状態Aから状態Bに変更され、実行可能プロセスキュ
ー21の先頭プロセスよりも先に、それよりも実行優先
度の低いプロセス(Pm)11bが実行される。次に、
図4のフローチャートを参照して、実行中のプロセスが
ロックに失敗してコンテキストスイッチする際の全体の
処理の流れを説明する。
【0027】実行中のプロセスがロックに失敗して実行
を継続できなくなった場合、まず、そのプロセスの実行
が一時的に中止される(ステップS11)。次いで、ロ
ック管理テーブルT1がサーチされ、先にロックしてい
るプロセスが調べられる(ステップS12)。
【0028】この後、先にロックしているプロセスが実
行可能であるか否か、つまり実行可能プロセスキュー2
1に登録されているか否かが調べられ(ステップS1
3)、登録されていれば、そのプロセスを実行可能プロ
セスキュー21から取出して次に実行するように決定す
る(ステップS14)。
【0029】一方、実行可能プロセスキュー21に登録
されていなければ、ロック解放待ち以外の原因でコンテ
キストスイッチが起きる場合(プロセスが一定期間継続
して実行されたとき)と同様に、実行可能プロセスキュ
−21の先頭のプロセスが取出され、これが次に実行す
べきプロセスとして決定される(ステップS15)。
【0030】以上のように、この実施例のスケージュー
リング方式においては、例えばプライオリティの高いプ
ロセス(Pn)11aがロック待ちで実行継続できなく
なった際には、そのロック待ち資源をロックしているプ
ロセス(Pm)11bが検出され、そのプロセス(P
m)11bが次に実行するプロセスとして決定される。
【0031】このため、ロック待ちの原因となっている
プロセス11bが先に実行されて資源のロック解放が早
められる。したがって、プライオリティの高いプロセス
が、実行順の遅いプライオリティの低いプロセスによっ
て資源が解放されるまで長い時間待たされるといった事
態を防止できるようになり、プライオリティの高いプロ
セスをより効率良く実行することができる。次に、この
実施例のスケージューリング方式をマルチプロセッサシ
ステムに適用した場合について説明する。
【0032】マルチプロセッサシステムは、図5に示さ
れているように、複数のプロセッサ31、32、33
と、プロセッサ間通信バス34と、これらプロセッサ3
1、32、33によって共有される共有メモリ35とか
ら構成される。プロセッサ31、32、33は、それぞ
れ並行して動作するので、これらプロセッサ31、3
2、33にはそれぞれ固有の実行可能プロセスキュー4
1,42,43が割り当てられる。
【0033】また、共有メモリ35には、CPU31、
32、33に割り当てられる前のプロセスが蓄積される
グローバルな実行可能プロセスキュー44が設けられて
いる。
【0034】今、プロセッサ31で実行中のプロセス
(Pn)11aがロック変数L3にロック要求して失敗
し、そのロック変数L3に対応する資源をロックしてい
るプロセス(Pm)11bがプロセッサ32の実行可能
プロセスキュー42に蓄積されている場合を想定する。
この場合、プロセッサ31のオペレーティングシステム
は、CPU32に対してプロセス(Pm)11bを先に
実行させるように指示する。
【0035】このマルチプロセッサシステムにおいて、
各プロセッサのオペレーティングシステムは、図1に示
した計算機システムと同様に、実行可能プロセスキュ
ー、スケジューラ、ロック管理システムによって構成で
きる。但し、この場合のロック管理システムは、各プロ
セッサ毎にロックプロセスを管理できるように構成され
る。この場合のロック管理テーブルの一例を図6に示
す。
【0036】図6に示されているように、ロック管理テ
ーブルには、排他制御の下に共有される資源名としてフ
ァイル1,2,3、およびプリンタ1,2,3等が登録
されている。また、それら各資源名に対応してロック変
数L1〜L6と、ロックしているプロセス名、そのプロ
セスが蓄積されているキュー名、およびそのキューを持
つプロセッサ名が登録されている。
【0037】ロック変数L1〜L6は、対応する資源が
ロックされているか否かを示すものであり、ロックされ
ているときには“1”、ロックされてない時には“0”
にセットされる。このロック変数のセットは、各プロセ
スによって実行されるものである。
【0038】ここでは、ファイル1がプロセス1によっ
てロックされ、ファイル3がプロセスPmによってロッ
クされ、プリンタ3がプロセス2によってロックされて
いる状態を示している。また、プロセスPmは、実行可
能プロセスキュー42に蓄積されており、その実行可能
プロセスキュー42は第2のプロセッサ32に対応して
いる。次に、図7のフローチャートを参照して、このマ
ルチプロセッサシステムにおけるスケジューリング処理
の流れを説明する。
【0039】例えばプロセッサ31で実行中のプロセス
(Pn)11aがロックに失敗して実行を継続できなく
なった場合、そのプロセッサ31のスケジューラは、そ
のプロセスの実行を一時的に中止する(ステップS2
1)。次いで、先にロックしているプロセス(Pm)1
1bが調べられる(ステップS12)。
【0040】このプロセッサ31のスケジューラは、先
にロックしているプロセス(Pm)11bがプロセッサ
31の実行可能プロセスキュー41に入っているか否か
を調べる(ステップS23)。入っていればそれを取り
出して、プロセッサ31自身がそのプロセスを次に実行
する(ステップS24)。
【0041】入っていなければ、先にロックしているプ
ロセス(Pm)11bが他のプロセッサの実行可能プロ
セスキューに入っているか否かが調べられる(ステップ
S25)。入っていれば、プロセス(Pm)11bが入
っている実行可能プロセスキューを持つプロセッサ(こ
こでは、プロセッサ32)に割込みをかけることによっ
て、プロセス(Pm)11bをプロセスキューから外さ
せ、これをプロセッサ32に次に実行するように指示す
る(ステップS26)。
【0042】他のプロセッサの実行可能プロセスキュー
に入っていなければ、グローバルな実行可能プロセスキ
ュー44に入っているか否かが調べられる(ステップS
27)。入っていれば、そのプロセスをプロセッサ31
が実行する(ステップS28)。
【0043】また、入っていなければ、ロック以外の原
因でコンテキストスイッチが起きる場合と同様に、プロ
セッサ31は、実行可能プロセスキュー41から先頭の
プロセスを取出し、これを次に実行するべきプロセスと
して決定する(ステップS29)。
【0044】このように、マルチプロセッサシステムに
おいては、ロック解放待ちの原因となっているプロセス
が他のプロセッサの実行可能プロセスキューにある場合
には、そのプロセッサによってそのロック解放待ちの原
因となっているプロセスが実行されるように制御され
る。
【0045】尚、ここでは、複数のプロセッサそれぞれ
がスケジューラを有する場合について説明したが、複数
のプロセッサが共通のオペレーティングシステムによっ
て制御される場合には、全体で1つのスケジューラがあ
れば良いことは持ち論である。また、ロック解放待ちの
原因となっているプロセスが割り当てられているプロセ
ッサではなく、ロック解放待ちが発生したプロセセッサ
自身が、他プロセッサの実行可能プロセスキューからプ
ロセスを取り出して実行するように制御することも可能
である。
【0046】
【発明の効果】以上のように、この発明によれば、ロッ
ク待ちの原因となっているプロセスを先に実行すること
によって資源のロック解放を早められるようになり、プ
ライオリティの高いプロセスをより効率良く実行するこ
とができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係わるスケジューリング
方式を実現するための計算機システムの構成を示すブロ
ック図。
【図2】同実施例の計算機システムに設けられているロ
ック管理テーブルの構成の一例を示す図。
【図3】同実施例の計算機システムに設けられている実
行可能プロセスキューからロック解放待ちの原因となっ
ているプロセスを取り出したときの様子を示す図。
【図4】同実施例の計算機システムにおけるスケジュー
リング動作を説明するフローチャート。
【図5】同実施例の計算機システムにおけるスケジュー
リング方式をマルチプロセッサシステムに適用した場合
の構成を示すブロック図。
【図6】図5のマルチプロセッサシステムに設けられる
ロック管理テーブルの一例を示す図。
【図7】図5のマルチプロセッサシステムにおけるスケ
ジューリング動作を説明するフローチャート。
【符号の説明】
11…CPU、12…メモリ、13…バス、21,4
1,42,43,44…実行可能プロセスキュー、22
…スケジューラ、23…ロック管理システム、T1…ロ
ック管理テーブル、31,32,33…プロセッサ、3
5…共有メモリ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセスを時分割により並行に実
    行する計算機システムにおけるスケジューリング方式に
    おいて、 資源をロックしているプロセスを各資源毎に管理するロ
    ックプロセス管理テーブルと、 実行中のプロセスが所定の資源のロック待ちによりその
    実行継続が絶たれた際、前記ロックプロセス管理テーブ
    ルを参照して前記資源をロックしているプロセスを検出
    する手段と、 この検出されたプロセスを次に実行するように決定する
    処理順決定手段とを具備することを特徴とするスケジュ
    ーリング方式。
  2. 【請求項2】 複数のプロセスを時分割により並行に実
    行する複数のプロセッサを有し、各プロセッサ毎に実行
    可能プロセスキューを備えたマルチプロセッサシステム
    におけるスケジューリング方式において、 資源をロックしているプロセスを各資源毎に管理するロ
    ックプロセス管理テーブルと、 実行中のプロセスが所定の資源のロック待ちによりその
    実行継続が絶たれた際、前記ロックプロセス管理テーブ
    ルを参照して前記資源をロックしているプロセスを検出
    する手段と、 この検出されたプロセスが蓄積されている実行可能プロ
    セスキューを検出する手段と、 前記検出されたプロセスを実行可能プロセスキューから
    取り出して次に実行するように決定する処理順決定手段
    とを具備することを特徴とするスケジューリング方式。
JP766293A 1993-01-20 1993-01-20 スケジューリング方式 Pending JPH06214811A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP766293A JPH06214811A (ja) 1993-01-20 1993-01-20 スケジューリング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP766293A JPH06214811A (ja) 1993-01-20 1993-01-20 スケジューリング方式

Publications (1)

Publication Number Publication Date
JPH06214811A true JPH06214811A (ja) 1994-08-05

Family

ID=11672028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP766293A Pending JPH06214811A (ja) 1993-01-20 1993-01-20 スケジューリング方式

Country Status (1)

Country Link
JP (1) JPH06214811A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305589A (ja) * 1995-05-09 1996-11-22 Fuji Xerox Co Ltd 画像処理装置
JP2009211386A (ja) * 2008-03-04 2009-09-17 Nec Corp プロセス制御装置、プロセス制御方法およびプロセス制御プログラム
JP2011521354A (ja) * 2008-05-16 2011-07-21 マイクロソフト コーポレーション スケジューラにおけるタスクの局所的集合

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305589A (ja) * 1995-05-09 1996-11-22 Fuji Xerox Co Ltd 画像処理装置
JP2009211386A (ja) * 2008-03-04 2009-09-17 Nec Corp プロセス制御装置、プロセス制御方法およびプロセス制御プログラム
JP2011521354A (ja) * 2008-05-16 2011-07-21 マイクロソフト コーポレーション スケジューラにおけるタスクの局所的集合
US8566830B2 (en) 2008-05-16 2013-10-22 Microsoft Corporation Local collections of tasks in a scheduler

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
JP2514299B2 (ja) プロセスレベルプログラミングのための割込み処理の直列化方法
US5452452A (en) System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
US7698540B2 (en) Dynamic hardware multithreading and partitioned hardware multithreading
US5274809A (en) Task execution control method for a multiprocessor system with enhanced post/wait procedure
US4663709A (en) Control system for tightly-coupled multiprocessing units
CN108920267B (zh) 任务处理装置
US8321874B2 (en) Intelligent context migration for user mode scheduling
JP2001282558A (ja) マルチオペレーティング計算機システム
JPH11282815A (ja) マルチスレッド計算機システム及びマルチスレッド実行制御方法
US5708808A (en) Method and apparatus for concurrency with critical regions
JP2684993B2 (ja) プロセッサシステムとその制御方法
JPH06214811A (ja) スケジューリング方式
JP2001117786A (ja) プロセススケジューリング装置およびプロセススケジューリング方法
Arnold et al. Design of tightly-coupled multiprocessing programming
JPH07319716A (ja) 計算機システムの資源の排他制御方式
JP3524961B2 (ja) マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法
US11809219B2 (en) System implementing multi-threaded applications
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JP4992745B2 (ja) チェックポイント・リスタート装置及びチェックポイント・リスタート方法
JP2000353100A (ja) タスク処理システム
JPH04367942A (ja) システムの動作管理処理装置
JP2010044699A (ja) 情報処理装置
CN117850995A (zh) 一种协程调度方法、装置及存储介质