米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 株式会社日立製作所

発明の名称 プロセススケジュール方式
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平6−12394
公開日 平成6年(1994)1月21日
出願番号 特願平4−167229
出願日 平成4年(1992)6月25日
代理人 【弁理士】
【氏名又は名称】小川 勝男
発明者 根岸 和義 / 石原 孝一郎
要約 目的


構成
リソース管理テーブル3中のリソースに対して、プロセス管理テーブル2a〜2dで表されるプロセスから同時に使用の要求があった場合、一つのプロセスにリソースを使用させ、残りのプロセスの内あらかじめ定めた個数までのプロセスをスピンによるリソース待ちとし、それ以上のプロセスがあれば、当該プロセスをサスペンドし、別のリソースを使用しないプロセスに切り替えてプロセッサ上での処理を続行するプロセススケジュール方式。
特許請求の範囲
【請求項1】主メモリを共用するマルチプロセッサ上で、複数のプロセスとこれをスケジュールするプロセススケジューラを有し、各プロセスは1個しかない資源(リソース)を使用する処理と使用しない処理を交互にプロセッサ上で実行し、プロセッサ上で実行中の複数のプロセスが同時にリソースを使用しようとした時、1個のプロセスのみがリソースを使用して処理を行い、残りのプロセスのうちあらかじめ定められた個数を上限とするプロセスはループによりプロセッサ上でリソースの使用終了を待ち、上限数を越える残りのプロセスは処理を中断して別のリソースを使用しないプロセスを捜し、もしあればこのプロセスに切り替えてプロセッサ上での処理を継続することを特徴とするプロセススケジュール方式。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明はメモリを共用するマルチプロセッサシステムにおけるプロセスのスケジューリング方式に関するものである。
【0002】
【従来の技術】メモリを共用するマルチプロセッサシステムにおけるリソース競合時のプロセススケジューリング方式として、従来は1個のプロセスのみがリソースを使用し、残りのプロセスはプロセッサ上でループしてリソースの開放を待つ方式(スピン方式)、および残りのプロセスは処理を中断して、別のリソースを要求していないプロセスに切り替えて実行を行う方式(サスペンド方式)が採用されてきた。
【0003】また、特開平1−261771に示すように、スピン方式の改良案として、通常のリソース待ちにはスピン方式を使用し、リソースを使用中のプロセスが割り込み処理等により処理を中断した場合のみ、当該リソースを要求するプロセスを中断する方式も提案されている。
【0004】
【発明が解決しようとする課題】従来の方式の内、スピン方式ではスピン中はプロセッサは何も有効な処理をせず、リソースの占有時間が長いと、これによるプロセッサの処理能力の無駄が無視できない。また、サスペンド方式では、リソースを占有して処理を行う時間に比較してプロセスの切り替えに要するオーバヘッドが大きい場合、処理能力の無駄が無視できない。
【0005】本発明の目的は、プロセスの切り替えに要するオーバヘッドを少なくしたプロセススケジュール方式を提供することにある。
【0006】
【課題を解決するための手段】この問題を解決するため、スピン方式の拡張として、スピン待ちしているプロセスの数を限定し、一定の個数以上のプロセスはサスペンド方式により中断させる方式を提案した。
【0007】
【作用】スピン方式による待ちのオーバヘッドを限定する。サスペンドによりプロセスが切り替えられるオーバヘッドよりスピンし続けたオーバヘッドの方が多くなるように、前記のスピンするプロセス数の最大値を設定する。
【0008】
【実施例】以下、本発明の一実施例を説明する。第1図は本発明の概要を表す。プロセスは主メモリ上のプロセッサ管理テーブル2a〜2dで管理される。プロセススケジューラ5はプロセス管理テーブル2a〜2dのいずれかをプロセッサ1a〜1bに対応付けることにより、そのプロセスを当該プロセッサに実行させる。リソース管理テーブル3は、リソースを管理するテーブルであり、リソース状態8(「使用中」または「未使用」に設定される)を含む。プロセス管理テーブル2a〜2d中のプロセス状態6a〜6dは各々、「リソース未使用実行中」、「リソース使用実行中」、「リソース未使用実行待ち」、「リソース使用実行待ちスピン」、「リソース使用実行待ちサスペンド」の5状態のいずれかに設定される。また、プロセススケジューラ5の処理を同時には1台のプロセッサにのみ許すようにするため、スケジューラロック7(「使用中」または「未使用」に設定される)を使用する。
【0009】第2図はプロセスがリソースを要求した時の、プロセススケジューラの処理の流れを示す。まず、後述のスケジューラロッの確保サブルーチンをコールしてスケジューラロックを確保する(ブロック211)。次に、リソースが他のプロセスにより使用中かどうかをチェックし(ブロック212)、使用中でなければリソース状態を使用中に変更し(ブロック211)、自プロセスの状態を「リソース使用中実行中」に変更し(ブロック222)、スケジューラロックを未使用に設定し(ブロック223)、プロセスの実行を続行する(ブロック224)。また、リソースが使用中の場合は、すでに「リソース使用実行待ちスピン」状態で待っているプロセスの個数があらかじめ定められたプロセススピン上限数より小さいかをチェックする(ブロック213)。前者が小さい場合は、プロセスの状態を「リソース使用実行待ちスピン」状態とし(ブロック214)、スケジューラロックを未使用に設定し(ブロック215)、定められた時間スピンした後(ブロック216)、ブロック211に戻り、スケジューラロックを再度確保した後、リソースが開放されているかをチェックする。ブロック213において、前者が大きいか等しい場合は、プロセスを中断し、もし再度起動された場合本ルーチンのスタート箇所より処理を再開するように設定し(ブロック201)、プロセスの状態を「リソース使用実行待ちサスペンド」とし(ブロック202)、他にプロセス状態が「リソース未使用実行待ち」状態のプロセスがないかチェックする(ブロック203)。このようなプロセスがない場合、スケジューラロックを未使用に設定し(ブロック217)、プロセッサはアイドル状態となる(ブロック218)。ブロック203の条件に合うプロセスが存在する場合、見つけたプロセスの状態を「リソース使用実行中」に変更し(ブロック204)、スケジューラロックを未使用に設定し(ブロック205)、そのプロセスの実行を開始する(ブロック206)。
【0010】第3図はリソース使用中のプロセスがリソースを開放した場合の処理の流れを示す。まず、サブルーチンのコールによりスケジューラロックを確保する(ブロック311)。次に、他のプロセスで状態が「リソース使用実行待ちスピン」のプロセスがないかチェックする(ブロック312)。このようなプロセスがあれば、自プロセスの状態を「リソース未使用実行中」に変更し、次に実行するプロセスとする(ブロック315)。さらに、アイドル中のプロセッサがあり(ブロック314)、プロセスの状態が「リソース未使用実行待ち」のプロセスがあれば(ブロック315)、見つけたプロセスの状態を「リソース未使用実行中」に変更し、アイドル中のプロセッサの一つに実行を開始させる(ブロック316)。そして、ブロック314に戻りチェックを繰り返す。ブロック314またはブロック315で条件を満たすプロセッサまたはプロセスが存在しない場合、スケジューラロックを未使用に設定し(ブロック301)、先に次に実行することに決定したプロセスの処理を開始する(ブロック302)。また、ブロック312で条件を満たすプロセスがなければ、次にプロセス状態が「リソース使用実行待ちサスペンド」のプロセスがないかチェックし(ブロック321)、なければブロック313へ行く。もし、このようなプロセスがあれば、見つけたプロセスの状態を「リソース使用実行中」に変更して次に実行するプロセスとし(ブロック322)、もとのプロセスの状態を「リソース未使用実行待ち」に変更し(ブロック323)、ブロック314のチェックへ行く。
【0011】第4図はスケジューラロックの確保を行うサブルーチンの処理の流れを表す。まずスケジューラロックの状態をチェックし、未使用なら使用中に変更する(ブロック401)。このチェツクと設定の処理は、メモリ共用のマルチプロセッサで一般に用いられるTest and Set命令などにより他のプロセッサにより割り込まれることなしに、実行する必要がある。もし、スケジューラロックが未使用で上記処理が成功すれば、そのままコール元へリターンする(ブロック403)。もし、スケジューラロックが使用中で、上記処理が失敗すれば、定められた時間スピンした後、再度ブロック401の設定を試みる(ブロック402)。
【0012】
【発明の効果】リソースに対して同時にスピン待ちに入ることのできるプロセス数が限定されるため、長時間のスピン待ちが防止され、適切なオーバヘッドにより、データベースの処理が実行可能である。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013