JPH064322A - プロセスレベルプログラミングのための割込み処理の直列化方法 - Google Patents
プロセスレベルプログラミングのための割込み処理の直列化方法Info
- Publication number
- JPH064322A JPH064322A JP5015412A JP1541293A JPH064322A JP H064322 A JPH064322 A JP H064322A JP 5015412 A JP5015412 A JP 5015412A JP 1541293 A JP1541293 A JP 1541293A JP H064322 A JPH064322 A JP H064322A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- lock
- request
- resource
- task
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 重要なコード部における割り込みを禁止する
ことなく、または、スピンロックの排他的使用を必要と
せずに、コンピュータシステム資源へのアクセスを直列
化するための方法を供する。 【構成】 割り込みプロセスを待ち行列に入れ、代わっ
て、スピンロックを用いずに処理させ、前記の割り込み
が処理されるまで特定の資源に対するプロセスコードの
アクセスを阻止できるようにする、待ち行列ロックが導
入される。プロセスレベルコードは、割り込みレベルコ
ードからのアクセスの要求が、阻止ロックの解除に先立
って処理される据置き作業待ち行列に入っている間、ロ
ックされた資源へアクセスできないように阻止される。
据置き作業待ち行列の確立は、処理が、割り込みの禁止
を伴わずに、かつ、スピンロックを保持したプロセスに
よって著しいオーバヘッドが消費されずに、継続できる
ことを意味する。
ことなく、または、スピンロックの排他的使用を必要と
せずに、コンピュータシステム資源へのアクセスを直列
化するための方法を供する。 【構成】 割り込みプロセスを待ち行列に入れ、代わっ
て、スピンロックを用いずに処理させ、前記の割り込み
が処理されるまで特定の資源に対するプロセスコードの
アクセスを阻止できるようにする、待ち行列ロックが導
入される。プロセスレベルコードは、割り込みレベルコ
ードからのアクセスの要求が、阻止ロックの解除に先立
って処理される据置き作業待ち行列に入っている間、ロ
ックされた資源へアクセスできないように阻止される。
据置き作業待ち行列の確立は、処理が、割り込みの禁止
を伴わずに、かつ、スピンロックを保持したプロセスに
よって著しいオーバヘッドが消費されずに、継続できる
ことを意味する。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータオペレー
ティングシステム、より詳細にはコンピュータシステム
資源へのアクセスを直列化するオペレーティングシステ
ム機能に関する。さらに詳しく言えば、本発明は、本発
明によって保護される重要な割り込み処理コード部に対
するスピニングまたは割り込み禁止を要さずに、割り込
み処理のための資源アクセスを直列化する方法に関す
る。
ティングシステム、より詳細にはコンピュータシステム
資源へのアクセスを直列化するオペレーティングシステ
ム機能に関する。さらに詳しく言えば、本発明は、本発
明によって保護される重要な割り込み処理コード部に対
するスピニングまたは割り込み禁止を要さずに、割り込
み処理のための資源アクセスを直列化する方法に関す
る。
【0002】
【従来の技術およびその課題】多重処理コンピュータシ
ステムは、命令を実行するための2個以上の処理装置
(中央処理装置すなわちCPU)を備えたコンピュータ
である。多重処理コンピュータシステムのオペレーティ
ングシステムは、システムスループットを最大にするよ
うに設計されたスケジューリングアルゴリズムに従っ
て、実行について各処理装置にタスクをディスパッチす
る。
ステムは、命令を実行するための2個以上の処理装置
(中央処理装置すなわちCPU)を備えたコンピュータ
である。多重処理コンピュータシステムのオペレーティ
ングシステムは、システムスループットを最大にするよ
うに設計されたスケジューリングアルゴリズムに従っ
て、実行について各処理装置にタスクをディスパッチす
る。
【0003】IBM ES/9000系コンピュータと
いった多重処理システムは、記憶域、ディスクまたはテ
ープなどの永久記憶装置、通信制御装置などの他の周辺
装置を含む資源を、その処理装置間で頻繁に共用する。
これらの装置は直列で動作する。すなわち、それらの装
置は、次の要求の処理を開始する以前に、第1の処理装
置からの要求に関する処理を完了しなければならない。
資源へのアクセスの制御は、資源への要求アクセスが順
序づけられ、一度に一つずつ処理されるという意味で、
「直列化」と称される。
いった多重処理システムは、記憶域、ディスクまたはテ
ープなどの永久記憶装置、通信制御装置などの他の周辺
装置を含む資源を、その処理装置間で頻繁に共用する。
これらの装置は直列で動作する。すなわち、それらの装
置は、次の要求の処理を開始する以前に、第1の処理装
置からの要求に関する処理を完了しなければならない。
資源へのアクセスの制御は、資源への要求アクセスが順
序づけられ、一度に一つずつ処理されるという意味で、
「直列化」と称される。
【0004】一般に、オペレーティングシステムは少な
くとも2つのレベルのプログラムコードを有する。すな
わち、プロセスレベルコードおよび割り込みレベルコー
ドである。プロセスレベルコードは、数値を計算した
り、データがファイルへ格納されるように要求したりす
るために必要な処理を実行するプログラムコードであ
る。割り込みレベルコードは、各種資源から割り込みと
して生成される例外を処理する。ディスク、テープ、お
よび、より小規模の記憶域といった周辺装置は処理装置
よりもずっと低速で動作するので、割り込みが使用され
る。処理装置は、(プロセスレベルコードで)ファイル
をディスク上に格納するように要求することもある。格
納が開始されると、その処理装置はその格納が完了する
まで自己のタスクを中断する。ディスク資源は、割り込
みを送信することによって自己が完了したことを処理装
置に知らせる。この割り込みは、その資源動作を最初に
要求した処理装置によって処理されることもあれば、処
理されないこともある。割り込みは、優先順位にもとづ
いて処理されなければならず、作業を継続するために処
理装置による一定の動作を必要とするかもしれない。割
り込みコードへのアクセスは、1つの時点で単一の資源
に関してただ1つの処理装置だけが動作を行っているよ
うに、直列化されなければならない。
くとも2つのレベルのプログラムコードを有する。すな
わち、プロセスレベルコードおよび割り込みレベルコー
ドである。プロセスレベルコードは、数値を計算した
り、データがファイルへ格納されるように要求したりす
るために必要な処理を実行するプログラムコードであ
る。割り込みレベルコードは、各種資源から割り込みと
して生成される例外を処理する。ディスク、テープ、お
よび、より小規模の記憶域といった周辺装置は処理装置
よりもずっと低速で動作するので、割り込みが使用され
る。処理装置は、(プロセスレベルコードで)ファイル
をディスク上に格納するように要求することもある。格
納が開始されると、その処理装置はその格納が完了する
まで自己のタスクを中断する。ディスク資源は、割り込
みを送信することによって自己が完了したことを処理装
置に知らせる。この割り込みは、その資源動作を最初に
要求した処理装置によって処理されることもあれば、処
理されないこともある。割り込みは、優先順位にもとづ
いて処理されなければならず、作業を継続するために処
理装置による一定の動作を必要とするかもしれない。割
り込みコードへのアクセスは、1つの時点で単一の資源
に関してただ1つの処理装置だけが動作を行っているよ
うに、直列化されなければならない。
【0005】資源へのプロセスアクセスの直列化は、通
常、その資源の「ロック」の確立を伴っている。このロ
ックは、一度に多くて1つのプロセスによって保持され
得る。ロックは、たいてい、使用可能である時にはある
データパターンを、使用中である時には別のデータパタ
ーンを含む記憶域の記憶場所として実施される。ロック
を得ようとするプロセスは、そのロックがその時に別の
プロセスによって保持されている場合、通常、2つの動
作のうちのいずれかをとることができる。すなわち、中
断して、要求プロセスを待機状態にさせ、制御を実行可
能なプロセスに渡すことができる。または、スピンし
て、そのロックが解除されたかどうかを確かめるために
周期的に検査することができる。これらの技法のそれぞ
れは、一定の長所と短所がある。中断動作は、その処理
装置がプロセスを変更する文脈切り換えのオーバヘッド
を受けなければならないので、オーバヘッドを増大させ
る。一方、別の未決プロセスの作業を継続することによ
って処理装置の時間をより効率的に使用するという利点
を有する。スピンロックは、そのロックが使用可能であ
るかどうかを判定するために継続的に検査するシステム
資源を消費するという短所を有する。しかし、ロックが
解放された時に処理を迅速に開始できるという長所があ
る。
常、その資源の「ロック」の確立を伴っている。このロ
ックは、一度に多くて1つのプロセスによって保持され
得る。ロックは、たいてい、使用可能である時にはある
データパターンを、使用中である時には別のデータパタ
ーンを含む記憶域の記憶場所として実施される。ロック
を得ようとするプロセスは、そのロックがその時に別の
プロセスによって保持されている場合、通常、2つの動
作のうちのいずれかをとることができる。すなわち、中
断して、要求プロセスを待機状態にさせ、制御を実行可
能なプロセスに渡すことができる。または、スピンし
て、そのロックが解除されたかどうかを確かめるために
周期的に検査することができる。これらの技法のそれぞ
れは、一定の長所と短所がある。中断動作は、その処理
装置がプロセスを変更する文脈切り換えのオーバヘッド
を受けなければならないので、オーバヘッドを増大させ
る。一方、別の未決プロセスの作業を継続することによ
って処理装置の時間をより効率的に使用するという利点
を有する。スピンロックは、そのロックが使用可能であ
るかどうかを判定するために継続的に検査するシステム
資源を消費するという短所を有する。しかし、ロックが
解放された時に処理を迅速に開始できるという長所があ
る。
【0006】スピンロックの実施における別の不利益
は、スピンロックが保持されている間に割り込みが禁止
されなければならないという必要性である。割り込みを
禁止することは、処理装置の性能を劣化させることにな
り、一般に望ましくない。
は、スピンロックが保持されている間に割り込みが禁止
されなければならないという必要性である。割り込みを
禁止することは、処理装置の性能を劣化させることにな
り、一般に望ましくない。
【0007】資源アクセスを直列化するための従来技術
のシステムは、中断およびスピンロックの両方を使用し
ている。例えば、Fujiwaraらに対する米国特許
第4,663,709号は、共用データへのアクセスを
直列化するための直列化制御システムを記載している。
(共有譲渡された)Houghに対する米国特許第4,
604,694号は、据置き待ち行列を確立することに
よって資源への共用および排他的アクセスを制御する方
法を開示している。Christensenらに対する
米国特許第4,271,468号は、入出力装置の割り
込みを処理するための装置および方法を開示している。
しかしながら、これらのシステムのそれぞれは、ロック
のオーバヘッドおよび割り込みの禁止のために効率の損
失を被っている。
のシステムは、中断およびスピンロックの両方を使用し
ている。例えば、Fujiwaraらに対する米国特許
第4,663,709号は、共用データへのアクセスを
直列化するための直列化制御システムを記載している。
(共有譲渡された)Houghに対する米国特許第4,
604,694号は、据置き待ち行列を確立することに
よって資源への共用および排他的アクセスを制御する方
法を開示している。Christensenらに対する
米国特許第4,271,468号は、入出力装置の割り
込みを処理するための装置および方法を開示している。
しかしながら、これらのシステムのそれぞれは、ロック
のオーバヘッドおよび割り込みの禁止のために効率の損
失を被っている。
【0008】従って、直列化のオーバヘッドを低減する
ことによって多重処理システムの性能を向上させるとこ
ろに課題が存する。この技術的課題は、スピンロックに
よって消費される処理装置オーバヘッドを低減させるこ
と、および、割り込みを禁止されるプロセスレベルコー
ドを実行することによってもたらされる非効率性を低減
させることを含む。
ことによって多重処理システムの性能を向上させるとこ
ろに課題が存する。この技術的課題は、スピンロックに
よって消費される処理装置オーバヘッドを低減させるこ
と、および、割り込みを禁止されるプロセスレベルコー
ドを実行することによってもたらされる非効率性を低減
させることを含む。
【0009】
【課題を解決するための手段】本発明の第1の目的は、
その機構によって保護されるプロセスレベルコードの重
要部分におけるスピニングまたは割り込みの禁止を回避
する直列化機構を供することである。本発明の第2の目
的は、直列化オーバヘッドを低減することによって処理
装置の効率を高めることである。さらに本発明の第3の
目的は、プロセスレベルコードの実行が再開される前
に、全部の未決の割り込みが処理されることを保証する
機構を供することである。
その機構によって保護されるプロセスレベルコードの重
要部分におけるスピニングまたは割り込みの禁止を回避
する直列化機構を供することである。本発明の第2の目
的は、直列化オーバヘッドを低減することによって処理
装置の効率を高めることである。さらに本発明の第3の
目的は、プロセスレベルコードの実行が再開される前
に、全部の未決の割り込みが処理されることを保証する
機構を供することである。
【0010】本発明は、複数のコンピュータ処理装置に
よって共用される資源へのアクセスを直列化するための
方法として要約することができる。これらの処理装置は
すべて、プロセスレベルコードおよび割り込みレベルコ
ードを実行するために動作している。本発明の方法は、
その要求が割り込みコードであるか否かを判定するため
に要求を検査する段階と、資源の可用性を判定するため
に資源ロックを検査する段階と、その資源が使用可能で
ある場合に、資源ロックをその要求に割り当て、その要
求を実行する段階と、そのロックが使用可能でない場合
および割り込みコードでない場合に、その要求を阻止
し、要求プロセスを待機させる段階と、割り込みコード
である場合に、その資源を待っている据置き割り込み待
ち行列にその割り込みを追加する段階と、その割り込み
待ち行列から全部の割り込み要求が処理された場合にの
みその阻止ロックを解除する段階とを含む。
よって共用される資源へのアクセスを直列化するための
方法として要約することができる。これらの処理装置は
すべて、プロセスレベルコードおよび割り込みレベルコ
ードを実行するために動作している。本発明の方法は、
その要求が割り込みコードであるか否かを判定するため
に要求を検査する段階と、資源の可用性を判定するため
に資源ロックを検査する段階と、その資源が使用可能で
ある場合に、資源ロックをその要求に割り当て、その要
求を実行する段階と、そのロックが使用可能でない場合
および割り込みコードでない場合に、その要求を阻止
し、要求プロセスを待機させる段階と、割り込みコード
である場合に、その資源を待っている据置き割り込み待
ち行列にその割り込みを追加する段階と、その割り込み
待ち行列から全部の割り込み要求が処理された場合にの
みその阻止ロックを解除する段階とを含む。
【0011】
【実施例】多重処理コンピュータシステムは、命令の実
行に使用できる複数の処理装置(CPU)を有する。本
発明の好ましい実施例は、AIXオペレーティングシス
テムと連係して動作する(AIXはIBM コーポレー
ションの商標である)。AIXにおけるプロセスおよび
命令ストリームは、3つの基本形式に分かれる。すなわ
ち、ユーザアプリケーションプログラムの作業を実行す
るユーザプロセス、基本システムサービスを実行するカ
ーネルプロセス、および、接続された装置からの割り込
みにサービスする割り込みプロセスである。しかし、本
発明は、AIXオペレーティングシステムに限定される
ものではなく、UNIXオペレーティングシステムなど
の他のオペレーティングシステムにも適用可能である
(UNIXはUNIX Systems Labora
toriesの商標である)。
行に使用できる複数の処理装置(CPU)を有する。本
発明の好ましい実施例は、AIXオペレーティングシス
テムと連係して動作する(AIXはIBM コーポレー
ションの商標である)。AIXにおけるプロセスおよび
命令ストリームは、3つの基本形式に分かれる。すなわ
ち、ユーザアプリケーションプログラムの作業を実行す
るユーザプロセス、基本システムサービスを実行するカ
ーネルプロセス、および、接続された装置からの割り込
みにサービスする割り込みプロセスである。しかし、本
発明は、AIXオペレーティングシステムに限定される
ものではなく、UNIXオペレーティングシステムなど
の他のオペレーティングシステムにも適用可能である
(UNIXはUNIX Systems Labora
toriesの商標である)。
【0012】プロセスレベルコードは、ユーザプロセス
およびカーネルプロセスの両方を含む。ユーザプロセス
は、システムレベルサービスを実行するためにカーネル
プロセスを呼び出す。割り込みは、割り込みハンドラに
よって処理され(割り込みコード)、データの改変を防
ぐために直列化されなければならない。図1は、本発明
の方法を用いたシステムの例示的なプロセス時間線であ
る。図1に示す通り、例えば、3つの処理装置の複合体
における各処理装置は、個別のプロセスを実行する。C
PU1はまず、プロセスUSER A 102を実行
し、そのプロセスは次にKERNEL C 104に切
り換わるように示されている。CPU2は、KERNE
L B 108に切り換わるKERNEL A 106
を実行する。割り込み110が発生し、CPU2により
処理のために受け入れられる。CPU1は、割り込み1
10によってロックされた資源にアクセスするユーザプ
ロセスを開始しようとするが、112によって阻止され
る。CPU1は、阻止されたプロセスを待機状態にさ
せ、KERNEL D 114の実行を開始する。CP
U3は初めに、完了するとKERNEL Eに切り換わ
るプロセスUSER B116を実行する。新しい割り
込みが発生し、120でCPU3によって処理される。
その割り込みが割り込み110と同じ資源を要求すると
仮定すれば、割り込み120は据置き処理のための待ち
行列に加えられ、CPU3は他の作業を進める。
およびカーネルプロセスの両方を含む。ユーザプロセス
は、システムレベルサービスを実行するためにカーネル
プロセスを呼び出す。割り込みは、割り込みハンドラに
よって処理され(割り込みコード)、データの改変を防
ぐために直列化されなければならない。図1は、本発明
の方法を用いたシステムの例示的なプロセス時間線であ
る。図1に示す通り、例えば、3つの処理装置の複合体
における各処理装置は、個別のプロセスを実行する。C
PU1はまず、プロセスUSER A 102を実行
し、そのプロセスは次にKERNEL C 104に切
り換わるように示されている。CPU2は、KERNE
L B 108に切り換わるKERNEL A 106
を実行する。割り込み110が発生し、CPU2により
処理のために受け入れられる。CPU1は、割り込み1
10によってロックされた資源にアクセスするユーザプ
ロセスを開始しようとするが、112によって阻止され
る。CPU1は、阻止されたプロセスを待機状態にさ
せ、KERNEL D 114の実行を開始する。CP
U3は初めに、完了するとKERNEL Eに切り換わ
るプロセスUSER B116を実行する。新しい割り
込みが発生し、120でCPU3によって処理される。
その割り込みが割り込み110と同じ資源を要求すると
仮定すれば、割り込み120は据置き処理のための待ち
行列に加えられ、CPU3は他の作業を進める。
【0013】本発明の好ましい実施例の新規な直列化方
法を図示した流れ図が図2に示されている。好ましい実
施例は、それに対するアクセスが直列化されなければな
らない各資源について阻止ロックを確立する。このロッ
クは、当業で公知の技法に従って、既知の記憶場所とし
て確立される。この方法は段階202に始まる。その資
源の排他的制御を要求するプロセスは、段階204で
「阻止ロックの要求」を発する。システムはまず、段階
205でそのロックが使用可能であるか否かを判定す
る。そのロックが使用可能であれば、段階206でその
ロックは「ロック設定」機能によりそのプロセスに割り
当てられる。ロックは、通常、IBM系コンピュータで
は比較およびスワップなどのアトミック動作によって設
定される。ロックが取得されると、そのロック側プロセ
スは、段階208で自己の処理段階を実行することがで
きる。本発明は、プロセス208が、割り込みを使用可
能な状態にして実行できるようにし、それによりシステ
ムのプロセス効率を高める。
法を図示した流れ図が図2に示されている。好ましい実
施例は、それに対するアクセスが直列化されなければな
らない各資源について阻止ロックを確立する。このロッ
クは、当業で公知の技法に従って、既知の記憶場所とし
て確立される。この方法は段階202に始まる。その資
源の排他的制御を要求するプロセスは、段階204で
「阻止ロックの要求」を発する。システムはまず、段階
205でそのロックが使用可能であるか否かを判定す
る。そのロックが使用可能であれば、段階206でその
ロックは「ロック設定」機能によりそのプロセスに割り
当てられる。ロックは、通常、IBM系コンピュータで
は比較およびスワップなどのアトミック動作によって設
定される。ロックが取得されると、そのロック側プロセ
スは、段階208で自己の処理段階を実行することがで
きる。本発明は、プロセス208が、割り込みを使用可
能な状態にして実行できるようにし、それによりシステ
ムのプロセス効率を高める。
【0014】段階205でそのロックが使用可能でない
と判明した場合、システムは次に段階210でロックを
要求しているプロセスの形式を検査する。そのプロセス
が割り込みでなければ、それは阻止され、段階212で
待機状態にされる。要求が割り込みプロセスからのもの
であれば、その要求は据置き割り込み待ち行列に入れら
れる。好ましい実施例は、割り込みプロセスによる実行
用に一つの種類のロック取得および解除コードを与え、
他の全部のプロセスによる実行用には別の種類を付与す
ることによってプロセスの形式の検査を回避している。
待ち行列に入れることは、そのプロセスが段階214で
その据置き待ち行列自体のロックを取得するように求
め、使用可能でない場合、それが解除されるまでロック
をスピンさせるように求める。そのスピンロックが使用
可能になると、プロセスは、段階216でその待ち行列
に据置かれたタスクレコードを挿入し、段階218でそ
のロックを解除する。待ち行列は、その待ち行列の項目
の挿入または削除においてのみロックされるので、従っ
て、スピンロックで費やされる時間は短くなる。
と判明した場合、システムは次に段階210でロックを
要求しているプロセスの形式を検査する。そのプロセス
が割り込みでなければ、それは阻止され、段階212で
待機状態にされる。要求が割り込みプロセスからのもの
であれば、その要求は据置き割り込み待ち行列に入れら
れる。好ましい実施例は、割り込みプロセスによる実行
用に一つの種類のロック取得および解除コードを与え、
他の全部のプロセスによる実行用には別の種類を付与す
ることによってプロセスの形式の検査を回避している。
待ち行列に入れることは、そのプロセスが段階214で
その据置き待ち行列自体のロックを取得するように求
め、使用可能でない場合、それが解除されるまでロック
をスピンさせるように求める。そのスピンロックが使用
可能になると、プロセスは、段階216でその待ち行列
に据置かれたタスクレコードを挿入し、段階218でそ
のロックを解除する。待ち行列は、その待ち行列の項目
の挿入または削除においてのみロックされるので、従っ
て、スピンロックで費やされる時間は短くなる。
【0015】プロセスレベルコードは、阻止ロックおよ
びスピンロックが検査または取得されている間だけ、割
り込みを禁止される。従って、図2の段階205,20
6,214,218,220および224において、割
り込みは禁止されている。好ましい実施例の据置き割り
込み待ち行列は、受信された順序で割り込みを維持す
る。待ち行列は公知の技法によって維持され、それらの
正確な内容は本発明にとって重要ではない。好ましい実
施例によって使用される待ち行列の例は、図3に示す。
Qロック構造302は、据置き待ち行列の先頭304お
よび末尾308のポインタを含む。その待ち行列の各要
素は、次の要素のポインタ310および312、ならび
に、据置かれた作業を含む呼び出し側供給構造320,
322および324のポインタ314,316および3
18を有する。
びスピンロックが検査または取得されている間だけ、割
り込みを禁止される。従って、図2の段階205,20
6,214,218,220および224において、割
り込みは禁止されている。好ましい実施例の据置き割り
込み待ち行列は、受信された順序で割り込みを維持す
る。待ち行列は公知の技法によって維持され、それらの
正確な内容は本発明にとって重要ではない。好ましい実
施例によって使用される待ち行列の例は、図3に示す。
Qロック構造302は、据置き待ち行列の先頭304お
よび末尾308のポインタを含む。その待ち行列の各要
素は、次の要素のポインタ310および312、ならび
に、据置かれた作業を含む呼び出し側供給構造320,
322および324のポインタ314,316および3
18を有する。
【0016】プロセス208は、完了まで、または、そ
れが何らかの理由で休止しなければならない時まで、実
行する。プロセス208は、それがカーネルプロセスで
あれ割り込みプロセスであれ、割り込み禁止状態で走行
する必要がない点に留意されたい。発生したいずれかの
割り込みは、同一資源に関係する場合、その待ち行列論
理によって処理されることになる。完了時に、システム
は、段階220で据置かれた割り込みが存在するか否か
を判定するために据置き待ち行列を検査する。存在しな
ければ、段階222でその阻止ロックは解除され、プロ
セスは終了し、いずれかの阻止されたプロセスレベルの
作業を再開させる。据置かれた項目が存在する場合、最
初の項目が段階224で取り出され、段階226で処理
される。項目を据置き作業待ち行列から取り出すには、
段階223でスピンロックを取得し、段階224でその
項目を取り出し、段階225でそのロックを解除するこ
とを要する。この取り出しおよび実行が、ロック保持プ
ロセスの文脈で全部の据置かれた項目が処理されるまで
繰り返される。
れが何らかの理由で休止しなければならない時まで、実
行する。プロセス208は、それがカーネルプロセスで
あれ割り込みプロセスであれ、割り込み禁止状態で走行
する必要がない点に留意されたい。発生したいずれかの
割り込みは、同一資源に関係する場合、その待ち行列論
理によって処理されることになる。完了時に、システム
は、段階220で据置かれた割り込みが存在するか否か
を判定するために据置き待ち行列を検査する。存在しな
ければ、段階222でその阻止ロックは解除され、プロ
セスは終了し、いずれかの阻止されたプロセスレベルの
作業を再開させる。据置かれた項目が存在する場合、最
初の項目が段階224で取り出され、段階226で処理
される。項目を据置き作業待ち行列から取り出すには、
段階223でスピンロックを取得し、段階224でその
項目を取り出し、段階225でそのロックを解除するこ
とを要する。この取り出しおよび実行が、ロック保持プ
ロセスの文脈で全部の据置かれた項目が処理されるまで
繰り返される。
【0017】上述のプロセスは、それに対するアクセス
が直列化されなければならない各資源について実行す
る。スピンロックの削除および処理段階208において
割り込みを禁止する必要性がないことは、システムスル
ープットを高める。
が直列化されなければならない各資源について実行す
る。スピンロックの削除および処理段階208において
割り込みを禁止する必要性がないことは、システムスル
ープットを高める。
【0018】本発明の好ましい実施例において、その真
の精神を逸脱することなく、各種修正および変更がなし
得ることは、前述の説明より理解されるであろう。その
説明は例示目的だけのものであり、限定的な意味で解釈
されるべきではないものと意図する。本発明の範囲は、
添付特許請求の範囲の言語によってのみ限定されなけれ
ばならない。
の精神を逸脱することなく、各種修正および変更がなし
得ることは、前述の説明より理解されるであろう。その
説明は例示目的だけのものであり、限定的な意味で解釈
されるべきではないものと意図する。本発明の範囲は、
添付特許請求の範囲の言語によってのみ限定されなけれ
ばならない。
【図1】多重処理コンピュータシステムでの本発明に従
った実行の流れの説明図。
った実行の流れの説明図。
【図2】本発明に従った資源アクセスを実行するための
プロセスの流れ図。
プロセスの流れ図。
【図3】本発明に従った据置き作業待ち行列の構造を例
示するブロック図。
示するブロック図。
302 据置き待ち行列
───────────────────────────────────────────────────── フロントページの続き (72)発明者 バリー、フィリップ、ルバート アメリカ合衆国ニューヨーク州、ハーリ ー、ウィンザー、ドライブ、181 (72)発明者 ジェフリー、スチュアート、ルーキャッシ ュ アメリカ合衆国ニューヨーク州、ハーリ ー、オルタマウント、ドライブ、129 (72)発明者 ジョン、コード、ラトジェン、ジュニア アメリカ合衆国ニューヨーク州、ラインベ ック、アッカート、フーク、ロード、52 (72)発明者 ロナルド、ササラ アメリカ合衆国ニューヨーク州、ハーリ ー、モーガン、ヒル、ロード、56 (72)発明者 トマス、バン、ウィーバー アメリカ合衆国ニューヨーク州、ウッドス トック、ホリデー、ドライブ、2
Claims (2)
- 【請求項1】コンピュータシステム資源へのアクセスを
直列化するための方法であって、前記コンピュータシス
テム資源は、複数の処理を有するコンピュータシステム
の複数の資源の一つであり、かつ、複数のタスクを実行
するために動作するものであり、前記タスクは少なくと
もプロセスレベルタスクおよび割り込みタスクを含むも
のであり、前記割り込みタスクは前記プロセスレベルタ
スクに対する実行優先順位を受け取るものであり、前記
システムは、各資源について、一度に多くても1つのタ
スクによって保持される阻止ロック、および、据置き要
求待ち行列へのアクセスを制御するためのスピンロック
を有するものである、前記方法において、 前記資源へのアクセスがプロセスレベルタスクまたは割
り込みレベルタスクのいずれによって要求されているか
を判定するために検査する段階と、 プロセスレベルタスクである場合に、前記阻止ロックが
別のタスクによって保持されているかどうかを判定する
ために検査し、肯定であれば、前記プロセスレベルタス
クへのアクセスを拒否し、否定であれば、取得を指示す
るように前記阻止ロックを修正することによって前記資
源へのアクセスを許可する段階と、 割り込みレベルタスクである場合に、前記阻止ロックが
別のタスクによって保持されているかどうかを判定する
ために検査し、否定であれば、前記阻止ロックを取得
し、否定であれば、前記スピンロックを取得し、前記据
置き要求待ち行列に据置き割り込み要求を入れ、前記ス
ピンロックを解除する段階と、 前記阻止ロックを取得した前記プロセスレベルタスクま
たは割り込みレベルタスクのタスク処理を実行する段階
と、 前記阻止ロックが解除されるべき際に、何らかの据置き
割り込み要求が前記待ち行列に存在するかを判定するた
めに前記据置き要求待ち行列を検査し、肯定であれば、
前記据置き割り込み要求を取り出し、前記スピンロック
を解除し、前記据置かれた割り込みを処理する段階と、 いかなる据置かれた要求も前記待ち行列に存在しない場
合に前記阻止ロックを解除する段階とを含むことを特徴
とする方法。 - 【請求項2】複数のコンピュータ処理装置によって共用
される資源の排他的制御の要求を直列化するための方法
であって、前記処理装置は、処理プログラムを構成する
第1の複数の命令を処理し、割り込みプログラムを構成
する第2の複数の命令を処理するために動作する、前記
方法において、 資源の可用性を判定するために資源ロックを検査する段
階と、 前記資源が使用可能である場合に、前記資源ロックを前
記要求に割り当て、前記要求を実行する段階と、 前記ロックが使用可能でない場合に、それが割り込みプ
ログラムであるか否かを判定するために前記要求を検査
する段階と、 割り込みプログラムでない場合に、前記要求を阻止し、
プロセス制御を別の実行可能なタスクに渡す段階と、 割り込みプログラムである場合に、前記要求を前記資源
を待機する割り込み待ち行列に追加する段階と、 全部の割り込み要求が前記割り込み待ち行列から処理さ
れた場合にのみ前記阻止ロックを解除する段階とを含む
ことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/860,829 US5274823A (en) | 1992-03-31 | 1992-03-31 | Interrupt handling serialization for process level programming |
US860829 | 1992-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH064322A true JPH064322A (ja) | 1994-01-14 |
JP2514299B2 JP2514299B2 (ja) | 1996-07-10 |
Family
ID=25334122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5015412A Expired - Lifetime JP2514299B2 (ja) | 1992-03-31 | 1993-02-02 | プロセスレベルプログラミングのための割込み処理の直列化方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5274823A (ja) |
EP (1) | EP0564256A3 (ja) |
JP (1) | JP2514299B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108075A (ja) * | 2006-10-25 | 2008-05-08 | Matsushita Electric Ind Co Ltd | タスク切替え制御方法及びコンピュータシステム |
JP2011129024A (ja) * | 2009-12-21 | 2011-06-30 | Renesas Electronics Corp | データ処理システム及びデータ処理方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2781092B2 (ja) * | 1991-11-06 | 1998-07-30 | 富士通株式会社 | システム間排他制御方式 |
US5450592A (en) * | 1992-09-02 | 1995-09-12 | Data General Corporation | Shared resource control using a deferred operations list |
US5701501A (en) * | 1993-02-26 | 1997-12-23 | Intel Corporation | Apparatus and method for executing an atomic instruction |
US5560018A (en) * | 1994-12-16 | 1996-09-24 | International Business Machines Corporation | Providing external interrupt serialization compatibility in a multiprocessing environment for software written to run in a uniprocessor environment |
US6112253A (en) * | 1995-10-12 | 2000-08-29 | International Business Machines Corporation | Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
US5835964A (en) * | 1996-04-29 | 1998-11-10 | Microsoft Corporation | Virtual memory system with hardware TLB and unmapped software TLB updated from mapped task address maps using unmapped kernel address map |
US5991845A (en) * | 1996-10-21 | 1999-11-23 | Lucent Technologies Inc. | Recoverable spin lock system |
US6341301B1 (en) | 1997-01-10 | 2002-01-22 | Lsi Logic Corporation | Exclusive multiple queue handling using a common processing algorithm |
US5966547A (en) * | 1997-01-10 | 1999-10-12 | Lsi Logic Corporation | System for fast posting to shared queues in multi-processor environments utilizing interrupt state checking |
US5922057A (en) * | 1997-01-10 | 1999-07-13 | Lsi Logic Corporation | Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore |
US5966543A (en) * | 1997-06-26 | 1999-10-12 | International Business Machines Corporation | Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system |
GB2348303B (en) * | 1999-03-23 | 2003-11-26 | Ibm | Data processing systems and method for processing work items in such systems |
US7409685B2 (en) * | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
CA2346766A1 (en) * | 2001-05-07 | 2002-11-07 | Ibm Canada Limited-Ibm Canada Limitee | Efficient locking for thread-safe self-modifying code |
US6857036B2 (en) * | 2001-07-17 | 2005-02-15 | Hewlett Packard Development Company, L.P. | Hardware method for implementing atomic semaphore operations using code macros |
US7178062B1 (en) * | 2003-03-12 | 2007-02-13 | Sun Microsystems, Inc. | Methods and apparatus for executing code while avoiding interference |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US7840950B2 (en) * | 2006-03-09 | 2010-11-23 | International Business Machines Corporation | Programmatic compiler optimization of glacial constants |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
US20080059677A1 (en) * | 2006-08-31 | 2008-03-06 | Charles Jens Archer | Fast interrupt disabling and processing in a parallel computing environment |
US20080059676A1 (en) * | 2006-08-31 | 2008-03-06 | Charles Jens Archer | Efficient deferred interrupt handling in a parallel computing environment |
US7913009B2 (en) * | 2007-06-20 | 2011-03-22 | Microsoft Corporation | Monitored notification facility for reducing inter-process/inter-partition interrupts |
US9141447B2 (en) | 2010-12-15 | 2015-09-22 | Microsoft Technology Licensing, Llc | Conditional deferred queuing |
US20130080672A1 (en) * | 2011-09-27 | 2013-03-28 | Kaminario Technologies Ltd. | System, method and computer program product for access control |
CN103377078B (zh) * | 2012-04-11 | 2017-04-12 | 广州地铁集团有限公司 | 车载atp实时任务调度方法及其任务调度系统 |
WO2020080882A1 (en) * | 2018-10-18 | 2020-04-23 | Samsung Electronics Co., Ltd. | Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof |
CN110347484B (zh) * | 2019-06-27 | 2024-02-02 | 上海麦克风文化传媒有限公司 | 一种软件编译部署过程中进行高效测试的工作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3173549D1 (en) * | 1981-03-16 | 1986-03-06 | Ibm | Improvements to digital data processing apparatus |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
US4891749A (en) * | 1983-03-28 | 1990-01-02 | International Business Machines Corporation | Multiprocessor storage serialization apparatus |
US4587609A (en) * | 1983-07-01 | 1986-05-06 | Honeywell Information Systems Inc. | Lockout operation among asynchronous accessers of a shared computer system resource |
JPS60107170A (ja) * | 1983-11-15 | 1985-06-12 | Nec Corp | マルチプロセッサ制御方式 |
US4604694A (en) * | 1983-12-14 | 1986-08-05 | International Business Machines Corporation | Shared and exclusive access control |
US4920485A (en) * | 1986-09-02 | 1990-04-24 | Amdahl Corporation | Method and apparatus for arbitration and serialization in a multiprocessor system |
US5129089A (en) * | 1987-12-18 | 1992-07-07 | Digital Equipment Corporation | Distributed interlock apparatus and distributed interlock management method |
US4979105A (en) * | 1988-07-19 | 1990-12-18 | International Business Machines | Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system |
JPH04507019A (ja) * | 1989-07-26 | 1992-12-03 | マサチユセツツ・インスチチユート・オブ・テクノロジー | 非繁忙待機資源制御 |
US5161227A (en) * | 1989-11-13 | 1992-11-03 | International Business Machines Corporation | Multilevel locking system and method |
-
1992
- 1992-03-31 US US07/860,829 patent/US5274823A/en not_active Expired - Fee Related
-
1993
- 1993-02-02 JP JP5015412A patent/JP2514299B2/ja not_active Expired - Lifetime
- 1993-03-30 EP EP19930302499 patent/EP0564256A3/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108075A (ja) * | 2006-10-25 | 2008-05-08 | Matsushita Electric Ind Co Ltd | タスク切替え制御方法及びコンピュータシステム |
JP2011129024A (ja) * | 2009-12-21 | 2011-06-30 | Renesas Electronics Corp | データ処理システム及びデータ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP0564256A2 (en) | 1993-10-06 |
JP2514299B2 (ja) | 1996-07-10 |
EP0564256A3 (en) | 1994-06-15 |
US5274823A (en) | 1993-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2514299B2 (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
US5452452A (en) | System having integrated dispatcher for self scheduling processors to execute multiple types of processes | |
US5390329A (en) | Responding to service requests using minimal system-side context in a multiprocessor environment | |
US5469571A (en) | Operating system architecture using multiple priority light weight kernel task based interrupt handling | |
US5333319A (en) | Virtual storage data processor with enhanced dispatching priority allocation of CPU resources | |
Lampson | A scheduling philosophy for multiprocessing systems | |
US6449614B1 (en) | Interface system and method for asynchronously updating a share resource with locking facility | |
JP4956418B2 (ja) | コンピュータ装置用のオペレーティング・システムの、またはそれに関する改良 | |
US5455958A (en) | Rendering context manager for display adapters | |
US6021425A (en) | System and method for optimizing dispatch latency of tasks in a data processing system | |
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
EP0887730B1 (en) | Method for providing exclusive access to a resource in a multiprocessor computer system | |
US4631674A (en) | Active wait | |
EP0602359A2 (en) | Architectural enhancements for parallel computer systems | |
US5291608A (en) | Display adapter event handler with rendering context manager | |
US5367680A (en) | Rendering context manager for display adapters supporting multiple domains | |
EP0343646B1 (en) | Task execution control method for a multiprocessor system with enhanced post/wait procedure | |
JPH11282815A (ja) | マルチスレッド計算機システム及びマルチスレッド実行制御方法 | |
US7360213B1 (en) | Method for promotion and demotion between system calls and fast kernel calls | |
WO2001097020A1 (en) | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors | |
JP2856681B2 (ja) | 外部事象を処理する方法およびシステム | |
JPH05250188A (ja) | プロセスのプライオリティ制御方式 | |
Arnold et al. | Design of tightly-coupled multiprocessing programming | |
JP2553526B2 (ja) | マルチタスク処理装置 | |
EP0442714A2 (en) | Interrupt handling in a data processing system |