JPH06259383A - 割込み制御方法及び割込み制御装置 - Google Patents

割込み制御方法及び割込み制御装置

Info

Publication number
JPH06259383A
JPH06259383A JP4146493A JP4146493A JPH06259383A JP H06259383 A JPH06259383 A JP H06259383A JP 4146493 A JP4146493 A JP 4146493A JP 4146493 A JP4146493 A JP 4146493A JP H06259383 A JPH06259383 A JP H06259383A
Authority
JP
Japan
Prior art keywords
lock
interrupt
processing unit
input
central processing
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
JP4146493A
Other languages
English (en)
Inventor
Takashi Omori
誉史 大森
Hideaki Hirayama
秀昭 平山
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 JP4146493A priority Critical patent/JPH06259383A/ja
Publication of JPH06259383A publication Critical patent/JPH06259383A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】本発明は、マルチプロセッサシステムに於い
て、IOPがCPUに対して入出力割込みをかけるとき
に、IOPが各CPUで実行されているプロセスに対し
て共有資源に排他的にアクセスする際に実行されている
ロックを保持しているか否かを調べて、ロックを保持し
ていないプロセスが実行されているCPUに対し割込み
をかけることを特徴とする。 【構成】入出力プロセッサIOPがプロセッサPMに対
して入出力割込みを発生しようとするとき、各プロセッ
サPMで実行されているプロセスを調べ、ロックを保持
していないプロセスPSが実行されているプロセッサP
Mに対して、もしくはロックが空くのを待っているプロ
セスの数が最小のロックを保持しているプロセスが実行
されているプロセッサPMに対して割込みを発生するこ
とを特徴とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムにおける割込み制御方法及び装置に係るもので、特
に、マルチプロセッサシステムを構成する複数の中央処
理装置(以下CPUと称す)と、この各CPUによりア
クセスされる共有メモリと、上記CPUに対して入出力
割込みを行なう入出力プロセッサ(以下IOPと称す)
とを有してなるマルチプロセッサシステムに適用される
割込み制御方法及び割込み制御装置に関する。
【0002】
【従来の技術】従来、この種、複数のCPUがメモリを
共有するマルチプロセッサシステムの入出力割込みの処
理は、その割込みの処理をある特定のCPUに固定的に
割り当てたり、又は、全CPUの中から1つのCPUを
選び出して割り当て、割込み処理を行なっていた。この
とき、現在CPUで実行されているプロセスの処理を意
識せずにCPUに対して割込み処理を行なわせていた。
【0003】このため、ロックを保持しているプロセス
が走っているCPUに対して入出力割込みが発生する
と、割込み処理をしている間、ロックを保持しているプ
ロセスの実行が中断されるので、他のプロセスが中断さ
れたプロセスが保持しているロックの解放を待っている
場合、ロックを待っているプロセスの処理割込みを行な
っている時間だけ余分に待たされるという問題が発生す
る。
【0004】
【発明が解決しようとする課題】このように、従来のマ
ルチプロセッサシステムに於ける入出力割込みに於いて
は、ロックを持ったプロセスか走っているCPUに対し
て入出力割込みが発生すると、中断されたプロセスが持
っているロックの解放を待っているプロセスの処理が割
込み処理の時間だけ待たされるという問題があった。
【0005】本発明は上記実情に鑑みなされたもので、
IOP(入出力プロセッサ)がCPU(中央処理装置)
に対して入出力割込みをかけようとする際に、CPUが
現在実行しているプロセスが共有資源にアクセスしてい
るかどうかを調べ、ロックを保持していないプロセスが
走っているCPU、もしくは、各CPUで走っているプ
ロセスの全てがロックを持っているときはロック(ロッ
クの解放)を待っているプロセスの数が最小のロックを
保持しているプロセスが走っているCPUに対して割込
みをかけることにより、ロックを保持したプロセスが走
っているCPUに対する入出力割込みが発生することに
よるロック(ロックの解放)を待っているプロセスの待
ち時間が増加する問題を解決した割込み処理制御方法及
び装置を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に本発明に於いては、マルチプロセッサシステムに於い
て、IOPがCPUに対して入出力割込みをかけるとき
に、IOPが各CPUで実行されているプロセスに対し
て共有資源に排他的にアクセスする際に実行されている
ロックを保持しているか否かを調べ、ロックを保持して
いないプロセスが実行されているCPUに対して割込み
をかけることを特徴とする。
【0007】又、本発明は、IOPがCPUに対して入
出力割込みをかけようとした際、システム内にあるすべ
てのCPUでそれぞれ実行されている各プロセスがロッ
クを保持した場合に、IOPが各CPUで実行されてい
るプロセスが保持しているロックに対してどれだけのプ
ロセスがロック待ち状態になっているかを調べ、そのロ
ックに対してのロック待ち状態のプロセスの数が最小の
CPUに対して割込みをかけることを特徴とする。
【0008】
【作用】上記したような割込み制御手段を有して構成さ
れたマルチプロセッサシステムに於いては、IOPがC
PUに対して入出力割込みを発生しようとするとき、各
CPUで実行されているプロセスを調べ、ロックを保持
していないプロセスが実行されているCPUに対して、
もしくはロックが空くのを待っているプロセスの数が最
小のロックを保持しているプロセスが実行されているC
PUに対して割込みを発生する。
【0009】従って、排他制御による共有資源へのアク
セスを行なっていないプロセスが実行されているCPU
に、もしくは共有資源へのアクセスを待っているプロセ
スの数が最小のロックを持つプロセスが実行されている
CPUに、入出力割込みを発生させるため、割込み処理
するためにかかる処理時間分だけ増加するロックを待っ
ているプロセス待ち時間を最小限に抑えることが可能に
なる。
【0010】
【実施例】以下図面を参照して本発明の一実施例を説明
する。
【0011】図1は本発明の実施例に於けるマルチプロ
セッサシステムの構成を示すブロック図であり、図2は
上記図1に示すマルチプロセッサシステムに於けるロッ
ク情報管理機構の構成を示したもので、ここでは各プロ
セッサで実行されているプロセスすべてがロックを保持
して実行している際のプロセッサロック情報とロック構
造体の状態を示している。
【0012】上記図1及び図2に示す実施例のマルチプ
ロセッサシステムに於いては、バスBS上に、それぞれ
CPUを持つ複数のプロセッサPM0 ,PM1 ,PM2
,…と、共有メモリCMと、入出力プロセッサIOP
とが接続され、入出力プロセッサIOPには磁気ディス
ク装置DKが接続されている。
【0013】また、共有メモリCM上には、プロセッサ
PM0 ,PM1 ,…で実行されているプロセスPSがロ
ックを保持しているか否かを示すプロセッサロック情報
LI0 ,LI2 ,…がプロセッサ毎に存在しており、プ
ロセッサPM0 にはプロセッサロック情報LI0 が、プ
ロセッサPM1 にはプロセッサロック情報LI1 が、プ
ロセッサPM2 にはプロセッサロック情報LI2 がそれ
ぞれ対応している。
【0014】このプロセッサロック情報LIは、図3
(a)で示すように、プロセスPSが保持しているロッ
ク構造体LSへのポインタLPで構成されており、プロ
セスPSがコンテクストスイッチによって切替えられる
場合、実行を中断されるプロセスでは、レジスタの情報
(プロセス切換えのために保持される例えば演算値、ア
ドレス値等の情報)等とともに、プロセッサロック情報
LIが保存され、実行を開始するプロセスでは、レジス
タ情報等とともに、プロセッサロック情報LIが設定さ
れる。よって、プロセッサロック情報LIは、プロセス
PS毎に保存する。尚、プロセスPSがロックを保持し
ていない場合、プロセッサロック情報LIにはヌル(NU
LL)値が設定される。
【0015】また、ロック構造体LSは、各プロセッサ
PM0 ,PM1 ,…が共有資源に対して排他的にアクセ
スする際に使用する構造体であり、図3(b)に示すよ
うに、セマフォを用いて共有資源にアクセスしているか
どうかを示すロック変数LV、セマフォにより他のプロ
セスが既にこのロックロック変数LVを保持しているた
めに共有資源へのアクセス権を確保できず、ロック解放
を待つことになったプロセスPSの数を示すロック待ち
プロセス数WP、このロックを保持したプロセスPSが
この後、別のロックを確保した場合に設定される新しく
保持したロック構造体LSへのポインタを示す、次のロ
ック構造体へのポインタNP等により構成される。尚、
ロック変数LVは、セマフォによりプロセスPSがロッ
クを確保するとき“1”にセットされ、解放するとき
“0”にクリアされる。
【0016】ロック待ちプロセス数WPは、プロセスP
Sがロック変数LVを確保できなかったときにインクリ
メントされ、その後、ロック変数LVが解放されてロッ
クの解放を待っていたプロセスが再度ロックを確保しよ
うとしたときにデクリメントされる。保持しているロッ
ク構造体のリストを構成する次のロック構造体へのポイ
ンタNPについては、自ロック構造体がリストの終りの
場合にヌル(NULL)が設定される。ここで、ロックを確
保するための処理動作を図2に示すブロック図と図4に
示すフローチャートを参照して説明する。ここではプロ
セッサPM2 で実行されているプロセスPSがロック構
造体LS1 で排他制御される共有資源へアクセスする場
合を例にとる。この際は、先ずロック構造体LS1 のロ
ック変数LV1 がセットされているかを調べる(ステッ
プ301)。
【0017】ここで、ロック変数LV1 がセットされて
いないときは、ロック変数LV1 をセットした後(ステ
ップ302)、プロセッサロック情報LI2 内のロック
構造体へのポインタLP2 を調べる(ステップ30
3)。
【0018】この際、プロセスPSが以前にロックを保
持していなければ(ロック構造体へのポインタLP2 が
NULLであれば)、ロック構造体へのポインタLP2 に確
保したロック構造体LS1 の先頭アドレスを設定した後
(ステップ304)、ロック構造体のリストの終りを設
定するために確保したロック構造体LS1 の次のロック
構造体へのポインタLP2 にNULLを代入する(ステップ
305)。
【0019】又、以前にロックを保持していたならば、
作業用変数Xを使用してロック構造体のリストの最後に
あるロック構造体までサーチしたのち(ステップ309
〜311)、最後のロック構造体LSの次のロック構造
体へのポインタNPに確保したロック構造体LS1 の先
頭アドレスを設定し(ステップ312)、ロック構造体
のリストの終りを設定するために確保したロック構造体
LS1 の次のロック構造体へのポインタLP2 にNULLを
代入する(ステップ305)。この後、共有資源に対す
る処理を実行する。
【0020】ロック変数LV1 がセットされているとき
は、ロック待ちプロセス数WP1 をインクリメントした
後(ステップ306)、ロック変数LV1 が解放される
までプロセスPSの処理を中断する(ステップ30
7)。
【0021】その後、ロック変数LV1 が解放され、中
断されたプロセスPSが実行を再開し、再度ロック変数
LV1 を確保しようとする前に、ロック待ちプロセス数
WP1 をデクリメントする(ステップ308)。このよ
うにして、ロックを確保するための処理が実行される。
【0022】次に、ロックを解放するための処理動作を
図2に示すブロック図と図5に示すフローチャートを参
照して説明する。ロック構造体LS1 を保持している前
記プロセスPSが共有資源へのアクセスを終了するとき
は、作業用変数Xを使用してロック構造体のリストの最
後にあるロック構造体LS1 を指しているポインタをサ
ーチした後(ステップ401〜404)、そのポインタ
にNULLを設定し(ステップ405,406)、ロック構
造体LS1 のロック変数LV1 のクリア(ステップ40
7)を行なうことで完了する。
【0023】いま、あるプロセスが磁気ディスクDKか
らデータを読み出すために入出力プロセッサIOPに読
み出し要求を発行した場合、読み出し要求を出したプロ
セスは要求が完了するまで自身をスリープさせる。
【0024】入出力プロセッサIOPは指示された要求
を実行し、読み出したデータを共有メモリCMに書き込
んだ後、入出力割込みをプロセッサPM0 〜PM0 2 の
どれかに発行しようとする。
【0025】このとき、入出力プロセッサIOPは、共
有メモリ上に存在する全てのプロセッサロック情報LI
0 〜LI2 にあるロック構造体へのポインタLP0 〜2
を調べ、プロセッサPM0 〜PM2 で現在実行されてい
るプロセスPSがロックを保持しているか否かを調べ
る。
【0026】この結果、例えばプロセッサPM2 でロッ
クを保持していないプロセスPSが実行されていたこと
が判明した場合(ロック構造体LSへのポインタLP2
の値がNULLであるとき)、入出力プロセッサIOPはプ
ロセッサPM2 に対して入出力割込みを発行し、読み出
し要求が終了したことを通知する。
【0027】また、調査した結果、プロセッサPM0 〜
PM2 で実行されているプロセスPSすべてで図2のよ
うなロック構造体LS0 〜LS5 を保持していた(ロッ
ク構造体LSへのポインタLP0 〜2 がNULLでない)場
合、入出力プロセッサIOPは、プロセッサPM0 〜P
M2 で実行されているプロセスPSが保持しているすべ
てのロック構造体LS内にあるロック待ちプロセス数W
Pをプロセッサロック情報LI0 のロック構造体へのポ
インタLPを用いてロック構造体リストの終りのエント
リまで検索した後、その総数を計算し、各プロセスPS
のロック待ちプロセスPSがプロセス数WPの総計の中
から最小のプロセスPSを選び出す。そして、このプロ
セスが実行されているプロセスPMに対して入出力割込
みを発行する。
【0028】図2の各プロセスのロック待ちプロセス数
WPの総計を計算すると、プロセッサPM0 で実行され
ているプロセスPSにはロック構造体LS0 、LS1 が
保持されているので、ロック待ちプロセス数WPの総計
はロック待ちプロセス数WPの値「3」とWP1の値
「1」を加算した値「4」が総計となる。
【0029】同様に、プロセッサPM1 で実行されてい
るプロセスPSではロック構造体LS2 が保持されてい
るので、ロック待ちプロセス数WPの総計はロック待ち
プロセス数WP2 の値である「2」となり、プロセッサ
PM2 で実行されているプロセスPSではロック構造体
LS3 、LS4 、LS5 が保持されているので、ロック
待ちプロセス数WPの総計はロック待ちプロセス数WP
3 の値「2」とWP4の値「3」とWP5 の値「0」を
加算した「5」となる。
【0030】この結果により、入出力プロセッサIOP
はロック待ちプロセス数の総計が最小の値「2」のプロ
セスPSが実行されているプロセッサPM1 に対して入
出力割込みを発行し、読み出し処理が終了したことを通
知する。
【0031】従って、ロックを保持しているプロセスか
実行されているプロセッサに対する入出力割込みが減少
し、もし前記プロセッサに割込みがかかったとしても、
ロック解放を待っているプロセス数が最小のロック保持
するプロセスが実行されているプロセッサにかかるの
で、割込み処理によるロック解放を待つプロセッサの待
ち時間の増加を最小限に抑えることができる。
【0032】
【発明の効果】以上詳述したように本発明によれば、入
出力プロセッサは入出力割込みを発行する際、ロックを
保持していないプロセスを実行しているプロセッサ、も
しくはすべてのプロセッサでロックを保持しているプロ
セスが実行されている場合はロックの解放を待っている
プロセス数の少ないロック変数を保持しているプロセス
を実行しているプロセッサに対して、入出力割込みを発
生することにより、ロックを保持しているプロセスの処
理が割込みによる処理の中断を減少できるため、ロック
の解放を待っているプロセスの待ち時間の増加を最小限
に抑えることができ、共有資源へのアクセスに影響を与
え難い割込み処理が実現できる。
【図面の簡単な説明】
【図1】本発明の実施例に於けるマルチプロセッサシス
テムの構成を示すブロック図。
【図2】図1に示す実施例のマルチプロセッサシステム
に於いて、各プロセッサで実行されているプロセスすべ
てがロックを保持して実行しているときのプロセッサロ
ック情報とロック構造体の状態を示すブロック図。
【図3】図2に示す実施例に於いて各プロセッサで実行
されているプロセスが保持しているロック構造体を指す
プロセッサロック情報、及びロックに関する情報を持つ
ロック構造体の概要を示す図。
【図4】上記実施例に於いてプロセスが排他的に共有資
源にアクセスするためにロック変数を確保するときの処
理手順を示すフローチャート。
【図5】上記実施例に於いて共有資源へのアクセスを終
了するためにロック変数を解放するときの処理手順を示
すフローチャート。
【符号の説明】
PM0 ,PM1 ,PM2 ,……プロセッサ、PS…プロ
セス、CM…共有メモリ、LI0 ,LI1 ,LI2 ,…
…プロセッサが実行しているプロセスがロックを保持し
ているかを示すプロセッサロック情報、LP0 ,LP1
,LP2 ,……プロセッサロック情報内のロック構造
体へのポインタ、LS0 ,LS1 ,LS2,……各プロ
セスが共有資源に対して排他的にアクセスする際に使用
するロック構造体、LV0 ,LV1 ,LV2 ,……ロッ
ク構造体内のセマフォで使用するロック変数、WP0 ,
WP1 ,WP2 ,……ロック構造体内のロック待ちプロ
セス数、NP0 ,NP1 ,NP2 ,…ロック構造体内の
次のロック構造体へのポインタ、IOP…入出力プロセ
ッサ、DK…磁気ディスク、 DT…磁気テープ、BS
…バス。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサシステムに於いて、入
    出力プロセッサが中央処理装置に対して入出力割込みを
    かけるときに、入出力プロセッサが各中央処理装置で実
    行されているプロセスに対して共有資源に排他的にアク
    セスする際に実行されるロックの保持状態を調べ、ロッ
    クを保持していないプロセスを実行している中央処理装
    置に対して上記割込みをかけることを特徴とする割込み
    制御方法。
  2. 【請求項2】 マルチプロセッサシステムを構成する複
    数の処理装置と、この各処理装置によりアクセスされる
    共有メモリと、上記処理装置に対して入出力割込みを発
    行する手段と、上記共有メモリ上で上記各処理装置が実
    行しているプロセス各々のロック情報を管理する手段と
    を有してなるマルチプロセッサシステムに於いて、上記
    入出力割込みの発行に際し上記共有メモリ上のロック情
    報を参照して実行中のプロセスにロックを保持していな
    いプロセスが存在するか否かを判断する手段と、ロック
    を保持していないプロセスが存在するとき当該プロセス
    を実行している処理装置に対して上記入出力割込みを発
    行する手段とを具備してなることを特徴とする割込み制
    御装置。
  3. 【請求項3】 マルチプロセッサシステムに於いて、入
    出力プロセッサが中央処理装置に対して入出力割込みを
    かけるときに、入出力プロセッサが各中央処理装置で実
    行されているプロセスに対して共有資源に排他的にアク
    セスする際に実行されるロックの保持状態を調べ、ロッ
    クを保持していないプロセスが実行されている中央処理
    装置が存在するときは、その中央処理装置に上記割込み
    をかけ、システム内のすべての中央処理装置でそれぞれ
    実行されている各プロセスがロックを保持しているとき
    は、上記各中央処理装置で実行されているプロセスが保
    持しているロックに対してのプロセスのロック待ち状態
    を認識し、そのロックに対してのロック待ち状態のプロ
    セス数が最小の中央処理装置に対して上記割込みをかけ
    ることを特徴とする割込み制御方法。
  4. 【請求項4】 マルチプロセッサシステムを構成する複
    数の処理装置と、この各処理装置によりアクセスされる
    共有メモリと、上記処理装置に対して入出力割込みを発
    行する手段と、上記共有メモリ上で上記各処理装置が実
    行しているプロセス各々のロック情報を管理する手段と
    を有してなるマルチプロセッサシステムに於いて、上記
    入出力割込みの発行に際し、上記共有メモリ上のロック
    情報を参照して実行中のプロセスにロックを保持してい
    ないプロセスが存在するか否かを判断する手段と、ロッ
    クを保持していないプロセスが存在するとき、当該プロ
    セスを実行している処理装置に対して上記入出力割込み
    を発行する手段と、システム内のすべての中央処理装置
    でそれぞれ実行されている各プロセスがロックを保持し
    ているとき、上記各中央処理装置で実行されているプロ
    セスが保持しているロックに対してのプロセスのロック
    待ち状態を認識し、そのロックに対してのロック待ち状
    態のプロセス数が最小の中央処理装置に対して上記割込
    みを発行する手段とを具備してなることを特徴とする割
    込み制御装置。
JP4146493A 1993-03-02 1993-03-02 割込み制御方法及び割込み制御装置 Pending JPH06259383A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4146493A JPH06259383A (ja) 1993-03-02 1993-03-02 割込み制御方法及び割込み制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4146493A JPH06259383A (ja) 1993-03-02 1993-03-02 割込み制御方法及び割込み制御装置

Publications (1)

Publication Number Publication Date
JPH06259383A true JPH06259383A (ja) 1994-09-16

Family

ID=12609103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4146493A Pending JPH06259383A (ja) 1993-03-02 1993-03-02 割込み制御方法及び割込み制御装置

Country Status (1)

Country Link
JP (1) JPH06259383A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020759A (ja) * 2008-07-09 2010-01-28 Internatl Business Mach Corp <Ibm> ロックをスレッドに割り当てる方法、装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020759A (ja) * 2008-07-09 2010-01-28 Internatl Business Mach Corp <Ibm> ロックをスレッドに割り当てる方法、装置
US8701111B2 (en) 2008-07-09 2014-04-15 International Business Machines Corporation Lock windows for reducing contention

Similar Documents

Publication Publication Date Title
US20060130061A1 (en) Use of rollback RCU with read-side modifications to RCU-protected data structures
JPS5812611B2 (ja) デ−タテンソウセイギヨホウシキ
JPS58191046A (ja) Cpu制御方法
KR100745888B1 (ko) 데이터 처리 시스템에서 스레드들을 핸들링하기 위한 방법및 장치
JP2006012170A (ja) ユーザ・モード・プロセスが特権実行モードで動作することを可能にする方法
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
JP4168281B2 (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
JPS63279328A (ja) 仮想計算機システムのゲスト実行制御方式
JP2821345B2 (ja) 非同期i/o制御方式
US20120179901A1 (en) Computer apparatus
JPH06259383A (ja) 割込み制御方法及び割込み制御装置
JPS6321941B2 (ja)
WO2007094460A1 (ja) 並列処理装置及び排他制御方法
JPS6336023B2 (ja)
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JPH08249269A (ja) Dma転送制御方法及びdma転送制御装置
JPH0567973B2 (ja)
JPS6125249A (ja) 排他制御方式
JPS62125437A (ja) 付加プロセツサの制御方法
JP2023091314A (ja) 半導体装置、半導体装置の制御方法及びプログラム
JPH0744487A (ja) マルチプロセッサシステム
JPH0391055A (ja) ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置
JPH0589057A (ja) レジスタ制御装置
JPS61229129A (ja) 仮想計算機システムにおける入出力割込み通知装置
JPH02108149A (ja) マルチプロセッサの排他制御機構