JP3318455B2 - 解放された同期メカニズムの所有権を管理するための方法及びシステム - Google Patents

解放された同期メカニズムの所有権を管理するための方法及びシステム

Info

Publication number
JP3318455B2
JP3318455B2 JP31812694A JP31812694A JP3318455B2 JP 3318455 B2 JP3318455 B2 JP 3318455B2 JP 31812694 A JP31812694 A JP 31812694A JP 31812694 A JP31812694 A JP 31812694A JP 3318455 B2 JP3318455 B2 JP 3318455B2
Authority
JP
Japan
Prior art keywords
synchronization mechanism
thread
blocked
acquire
time
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.)
Expired - Lifetime
Application number
JP31812694A
Other languages
English (en)
Other versions
JPH07200323A (ja
Inventor
トゥートンギー マイケル
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH07200323A publication Critical patent/JPH07200323A/ja
Application granted granted Critical
Publication of JP3318455B2 publication Critical patent/JP3318455B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、コンピュータ
・システムにおいて資源の利用を同期させるための方法
及びシステムに関するものであり、とりわけ、資源の利
用を同期させる、解放された同期メカニズムの所有権を
管理するための方法及びシステムに関するものである。
【0002】
【従来の技術】多くの最新式コンピュータ・オペレーテ
ィング・システムは、いくつかのプログラムを同時に実
行することができる。こうしたオペレーティング・シス
テムは、マルチタスク・オペレーティング・システムと
呼ばれる。マルチタスク・オペレーティング・システム
の場合、各実行プログラムは、スレッドに割り当てられ
る。スレッドは、実行単位である。各スレッドは、現在
実行中のプログラムの命令を追跡するためのプログラム
・カウンタのような、単一プログラムの一部の実行を管
理するのに必要な情報を記憶するためのスレッド実行ブ
ロック・データ構造に関連している。各スレッドには、
一般に、その実行の相対的緊急性を示す優先順位値が含
まれている。各実行プログラム毎に、少なくとも1つの
スレッドを割り当てなければならないが、ユーザがその
プログラムの異なる部分を同時に実行することを所望す
る場合、単一プログラムに2つ以上のスレッドを割り当
てることが可能である。単一プログラムに2つ以上のス
レッドを割り当てることが可能なオペレーティング・シ
ステムは、マルチ・スレッド式オペレーティング・シス
テムと呼ばれる。複数の中央演算処理装置(CPU)を
備えたコンピュータ・システムで実行されるマルチタス
ク・オペレーティング・システムの場合、実際に、異な
るプロセッサで、異なるスレッドを同時に実行すること
が可能である。一方、単一CPUで実行されるマルチタ
スク・オペレーティング・システムの場合、任意の時間
において、実際に実行できるのは、1つのスレッドだけ
である。この場合、マルチタスク・オペレーティング・
システムによって、同時実行の印象が与えられるが、短
い時間期間に、各スレッドの実行が可能になる。マルチ
タスク・オペレーティング・システムによって特定のス
レッドの実行が可能になる期間は、スレッドのタイム・
スライスと呼ばれる。タイム・スライスは、各スレッド
の相対的優先順位と各スレッドの最後のタイム・スライ
スの新しさの両方を考慮して、マルチタスク・オペレー
ティング・システムを介してスケジューリングが施され
る。すなわち、優先順位の高いスレッドが優先順位の低
いスレッドの前にくるように、スケジューリングが施さ
れ、最近タイム・スライスを受け取っていないスレッド
が、最近タイム・スライスを受け取ったスレッドの前に
くるように、スケジューリングが施される。
【0003】マルチタスク・オペレーティング・システ
ム(今後は、単に「オペレーティング・システム」と呼
ぶ)では、同じ資源を利用しようとする複数のスレッド
の実行の調整が必要になる場合もある。例えば、ハード
・ディスク・ドライブを利用するスレッドは、ハード・
ディスク・ドライブを利用する別のスレッドによって変
化する可能性のある、ハード・ディスク・ドライブの状
態に左右されやすいので、ハード・ディスク・ドライブ
は、同時に2つ以上のスレッドによって利用されないこ
とを保証するのが重要である。従って、オペレーティン
グ・システムは、同じ資源を利用しようとする複数のス
レッドの実行を調整するため、1つ以上の同期メカニズ
ムを提供する。同期メカニズムは、一般に、特定の資源
の利用を所定の最大スレッド数(1であることが多い)
に制限する。同期メカニズムは、この点において、それ
が利用を制限する資源を「保護する」と言われる。同期
メカニズムの例には、一般に、数が制限された複数のユ
ーザを支援することが可能な共用資源の利用を制御する
ために用いられるセマフォ、一般に、単一のユーザだけ
しか支援することができない共用資源の利用を制御する
ために用いられる相互排除メカニズム(mutex)、
及び、通常、1つのスレッドに対する一連のプログラミ
ング命令の同時アクセスを制限するために用いられるク
リティカル・コード・セクション(クリティカル・セク
ション)がある。オペレーティング・システムは、ハー
ド・ディスク・ドライブが、同時に、2つ以上のスレッ
ドによって利用されないことを保証するため、mute
xを利用することが可能である。
【0004】同期メカニズムによって保護される資源の
利用を必要とするスレッドは、まず、同期メカニズムを
獲得しようと試みる。同期メカニズムを獲得しようと試
みるため、スレッドが実行中のプログラムは、同期メカ
ニズムを要求するためのオペレーティング・システム・
サービスを呼び出す。同期メカニズムを要求するための
オペレーティング・システム・サービスは、さらに、同
期メカニズムを獲得するためのオペレーティング・シス
テム・サービスを呼び出す。スレッドは、タイム・スラ
イスを有している時には、いつでも、同期メカニズムを
要求するためのオペレーティング・システム・サービス
を呼び出すことができるので、スレッドのタイム・スラ
イスは、スレッドが同期メカニズムを獲得しようと試み
ることが可能な時間期間にも対応する。既に資源を利用
しているスレッドが、最大数より少ない場合には、同期
メカニズムは、同期メカニズムを獲得しようと試みるス
レッドがそれを獲得できるようにする。同期メカニズム
を獲得しようと試みるスレッドが、それを獲得できるよ
うにするため、同期メカニズムを獲得するためのオペレ
ーティング・システム・サービスが、同期メカニズムを
要求するためのオペレーティング・システム・サービス
に成功戻りコードを戻し、同期メカニズムを要求するた
めのオペレーティング・システム・サービスが、スレッ
ドが実行中のプログラムに成功戻りコードを戻す。戻り
コードが成功戻りコードであれば、プログラムは、次の
ステップに進み、そこでは同期メカニズムによって保護
されている資源を利用する。既に資源を利用しているス
レッドが最大数に達している場合、同期メカニズムは、
同期メカニズムを獲得しようと試みるスレッドがそれを
獲得できないようにする。それどころか、同期メカニズ
ムは、それを獲得しようとするスレッドを同期メカニズ
ムにおいて「ブロック」する。これに伴って、同期メカ
ニズムを獲得するためのオペレーティング・システム機
能が、識別されたスレッドに関して記憶されている管理
情報に修正を加え、スレッドがブロックされていること
を示すブロック・フラグをセットすることになる。これ
に伴って、さらに、同期メカニズムにおいてブロックさ
れたスレッドのリストに識別されたスレッドを追加する
ことになる。同期メカニズムにおいてブロックされたス
レッドは、同期メカニズムによってブロック解除される
まで、実行を再開することができない。これは、オペレ
ーティング・システムが、ブロックされたスレッドがタ
イム・スライスを受け取ることができないようにするこ
とによって実施される。これによって、ブロックされた
スレッドが、オペレーティング・システムからアプリケ
ーション・プログラムに戻り、資源を利用するコードの
実行に取りかかるのが阻止される。同期メカニズムがス
レッドをブロック解除する場合、ブロック解除されたス
レッドは、同期メカニズムを獲得できるかもしれない
し、獲得できないかもしれない。同期メカニズムが、同
期メカニズム獲得サービスからの成功戻りコードを同期
メカニズム要求サービスに戻すことによって、ブロック
解除されたスレッドが同期メカニズムを獲得できるよう
になると、同期メカニズム要求サービスは、成功コード
をアプリケーション・プログラムに戻し、該スレッド
は、同期メカニズムによって保護された資源の利用に取
りかかることが可能になる。同期メカニズムが、失敗戻
りコードを同期メカニズム要求サービスに戻すことによ
って、同期メカニズムを獲得できなくすると、該スレッ
ドは、直ちに、同期メカニズムによって保護された資源
を利用できなくなる。この場合、同期メカニズム要求サ
ービスは、同期メカニズムを獲得しようとする新たな試
みにおいて、同期メカニズム獲得サービスに対する呼び
出しを繰り返す。スレッドは、同期メカニズムを獲得
し、保護された資源の利用を完了すると、同期メカニズ
ムを解放するので、他のスレッドが同期メカニズムを獲
得して、保護された資源を利用することが可能になる。
スレッドは、同期メカニズムを解放するためのオペレー
ティング・システム機能を呼び出すことによって、同期
メカニズムを解放する。同期メカニズムの解放直後の時
間期間において、同期メカニズムは、「新たに解放され
た」ものとして知られている。
【0005】同期メカニズム設計の重要な態様には、も
しあるとして、新たに解放された同期メカニズムにおい
てブロックされたスレッドのうち、どれが同期メカニズ
ムを獲得できるようにすべきかを判定するための案を選
択することが必要になる。これは、同期メカニズムの所
有権管理として既知のところである。新たに解放された
同期メカニズムにおいてブロックされたスレッドが2つ
未満なら、この案は取るに足らないものである。新たに
解放された同期メカニズムにおいてブロックされたスレ
ッドがなければ、スレッドが同期メカニズムをすぐに獲
得できるようにする必要はなく、同期メカニズムは、そ
の後で同期メカニズムを獲得しようとする最初のスレッ
ドが、獲得できるようにする。新たに解放された同期メ
カニズムにおいてブロックされているスレッドが1つあ
る場合、同期メカニズムは、通常、ブロックされたその
唯一のスレッドが同期メカニズムを獲得できるようにす
る。しかし、新たに解放された同期メカニズムにおいて
ブロックされているスレッドが2つ以上ある場合には、
何らかの案を利用して、ブロックされているどのスレッ
ドが同期メカニズムを獲得できるようにすべきかを判定
しなければならない。
【0006】もしあるとして、新たに解放された同期メ
カニズムにおいてブロックされているスレッドのうち、
どれが同期メカニズムを獲得できるようにすべきかを判
定するため、さまざまな案が利用されてきた。こうした
案は、通常、該案によって消費される処理資源の量
(「効率」)、及び、同期メカニズムによって保護され
た資源に対するアクセスを振り分ける公平性(「公正
さ」)に基づいて評価される。公正さは、一般に、2つ
の規則、すなわち、(A)同期メカニズムは、常に、優
先順位が最も高い、ブロックされたスレッドによって、
同期メカニズムを獲得できるようにしなければならな
い、(B)優先順位が最高のスレッドが2つ以上存在す
る場合、同期メカニズムは、優先順位が最も高い全ての
スレッドについて、同期メカニズムを獲得する機会が等
しくなるようなやり方で、その獲得を可能にしなければ
ならないとする、規則の厳守を必要とするために維持さ
れる。第1の案では、同期メカニズムは、ブロックされ
た1つのスレッドを選択して、ブロック解除し、すぐ
に、ブロック解除されたその唯一のスレッドが、同期メ
カニズムを獲得できるようにする。同期メカニズムは、
一般に、ブロックされた、優先順位が最高のスレッドを
選択し、優先順位が最高の複数のスレッドのうちから任
意に選択する。第1の案には、2つの公正さの規則を厳
守するため、比較的公正であるという利点がある。第1
の案には、スレッドが、単一のタイム・スライスで同期
メカニズムを解放し、再獲得することができないので、
比較的非効率的であるという欠点がある。このため、ス
レッドによる同期メカニズムの獲得毎に、スレッドをス
イッチすることになる。スレッドのスイッチに関連した
コンテキスト・スイッチングによって、かなりの処理資
源が消費されることになるので、第1の案は、比較的非
効率的である。
【0007】図1は、新たに解放された同期メカニズム
においてブロックされたスレッドのうち、どれが同期メ
カニズムを獲得できるようにすべきかを判定するための
第1の案の欠点を実証するタイミング図である。このタ
イミング図には、それぞれ、優先順位が等しい4つのス
レッドのうちの1つのアクティビティに対応する時間線
101、102、103、及び、104が含まれてい
る。時間線は、それぞれ、タイム・スライス111のよ
うな、水平矩形として示されたタイム・スライス期間
と、待機期間112のような、水平線セグメントとして
示された待機期間から構成されている。各時間線には、
時間113における獲得試行事象及び割り当て事象のよ
うな、ラベル付き垂直線セグメントとして示された事象
も含まれている。次のような、さまざまな事象が図示さ
れている:スレッドが同期メカニズムを獲得しようと試
みる、獲得試行事象(「At」);同期メカニズムがス
レッドに割り当てられる、割り当て事象(「As」);
所有スレッドが同期メカニズムを解放する、解放事象
(「R」);及び、同期メカニズムにおいてブロックさ
れたスレッドがブロック解除される、ブロック解除事象
(「UB」)。最後に、各々の時間線は、又、事象間に
状態を反映する。これらは、事象間にラベル表示されて
いる。例えば、間隔114における第1のスレッドによ
る同期メカニズムの所有状態が、時間113における獲
得試行事象及び割り当て事象と、時間115における解
放事象の間の時間期間に存在する。各スレッド、従っ
て、各時間線毎に、3つの異なる状態、すなわち、間隔
114における所有状態のような、スレッドが同期メカ
ニズムを所有する、所有状態(「O」);非所有ブロッ
ク解除状態 116のような、スレッドが同期メカニズ
ムを所有しておらず、ブロック解除されている、非所有
ブロック解除状態(無ラベル);間隔117におけるブ
ロック状態のような、スレッドが同期メカニズムにおい
てブロックされた、ブロック状態(「B」)がある。読
者の便宜のため、図1に示された主要な事象が、下記の
表1において、時間順にリスト・アップされている。
【0008】
【表1】 時間 スレッド 事象 113 1 獲得を試みる;獲得が許可される 118 2 獲得を試みる;ブロックされる 119 3 獲得を試みる;ブロックされる 120 4 獲得を試みる;ブロックされる 115 1 解放する 121 2 獲得が許可される 122 1 再獲得を試みる;ブロックされる 123 2 解放する 129 2 再獲得を試みる;ブロックされる 125 3 解放する 130 3 再獲得を試みる;ブロックされる 126 4 解放する 131 4 再獲得を試みる;ブロックされる 127 1 解放する 132 1 再獲得を試みる;ブロックされる まず、第1のスレッドが、プロセッサ時間のタイム・ス
ライス111を受け取る。該タイム・スライスの間、第
1のスレッドは、同期メカニズム要求サービスを呼び出
し、さらに、同期メカニズム要求サービスが、同期メカ
ニズム獲得サービスを呼び出すことによって、同期メカ
ニズムを獲得しようとする試みに成功する。時間113
における獲得試行事象及び割り当て事象に注目された
い。第1のスレッドは、その後、間隔114における所
有状態の間、同期メカニズムを所有する。時間118に
おいて、第2のスレッドが、タイム・スライスを得て、
同様に、同期メカニズムを獲得しようと試みる。第2の
スレッドによる試みは、同期メカニズムが得られないの
で、すなわち、第1のスレッドによって所有されている
ので、失敗する。時間119及び120において、第3
及び第4のスレッドも、タイム・スライスを受け取る
と、同期メカニズムの獲得を試みる。同期メカニズムが
得られないので、第3及び第4のスレッドは、ブロック
される。第2、第3、及び、第4のスレッドがブロック
されるので、第1のスレッドは、次のタイム・スライス
を受け取る。時間115において、第1のスレッドが、
同期メカニズムを解放する。「R」ラベルを囲む円は、
第1の案にに基づき、解放によって、同期メカニズムが
すぐに再割り当てされることを示している。これは、時
間121における割り当て事象及びブロック解除事象に
よって表示されている。この時点において、第2のスレ
ッドが、時間118において同期メカニズムを獲得しよ
うとした試みに準じて、同期メカニズムの所有を開始す
る。第2のスレッドは、ブロック解除されるが、タイム
・スライスを受け取るまで、同期メカニズムを利用する
ことができない。第2のスレッドは、時間122におい
て、タイム・スライスを受け取り、この時点で、第1の
スレッドが、同期メカニズムの再獲得を試みる。同期メ
カニズムが利用可能でないので、試みは失敗し、第1の
スレッドは、時間117におけるブロック状態によって
明らかなように、ブロックされる。第2のスレッドは、
そのタイム・スライスの第1の部分の間に同期メカニズ
ムを利用し、時間123において同期メカニズムを解放
する。時間124において、第3のスレッドに、同期メ
カニズムの所有権が割り当てられ、時間123における
解放事象の結果として、ブロック解除される。このサイ
クルは、時間125、126、127、及び、128に
おけるそれぞれのスレッドによる同期メカニズムの解放
によって継続されることになり、同期メカニズムの再割
り当てが生じ、時間129、130、131、及び、1
32における試行事象によって示された、同じスレッド
による同期メカニズムを引き続き再獲得しようとする試
みがなされ、さらに、同期メカニズムをもう一度獲得で
きるようになる前に、スレッドのスイッチングが生じ
る。
【0009】第2の案では、同期メカニズムは、優先順
位が最も高い、ブロックされたスレッドをブロック解除
するが、スレッドがすぐに同期メカニズムを獲得できる
ようにはしない。ブロック解除されたスレッドは、その
次のタイム・スライスを受け取ると、同期メカニズムを
獲得しようとする試みを繰り返す。同期メカニズムが利
用可能な場合には、同期メカニズムは、ブロック解除さ
れたスレッドが同期メカニズムを獲得できるようにす
る。さらに、優先順位が最高のスレッドが2つ以上ある
場合には、オペレーティング・システムによるスレッド
の優先順位のランク付けによって、優先順位が最高のス
レッド間における選択にある程度のランダムさが付加さ
れる。ただし、この第2の案には、単一のスレッドによ
る同期メカニズムの独占が可能になるという欠点があ
る。図2は、新たに解放された同期メカニズムにおいて
ブロックされたスレッドのうち、どれが同期メカニズム
を獲得できるようにすべきかを判定するための第2の案
の欠点を例証したタイミング図である。タイミング図に
は、時間線201、202、203、及び、204が含
まれている。時間線は、それぞれが、同じ優先順位を有
する、第1、第2、第3、及び、第4のスレッドに、そ
れぞれ、対応している。読者の便宜のため、下記の表2
には、図2に示された主要事象が、時間順にリスト・ア
ップされている:
【0010】
【表2】 時間 スレッド 事象 205 1 獲得を試みる;獲得が許可される 207 2 獲得を試みる;ブロックされる 208 3 獲得を試みる;ブロックされる 209 4 獲得を試みる;ブロックされる 216 1 解放する 217 1 再獲得を試みる;再獲得が許可される 218 1 解放する 213 1 再獲得を試みる;再獲得が許可される 215 2 獲得を試みる;ブロックされる 219 1 解放する 220 1 再獲得を試みる;再獲得が許可される 221 1 解放する 222 1 再獲得を試みる;再獲得が許可される 223 2 獲得を試みる;ブロックされる 224 1 解放する 第1のスレッドが、第1のタイム・スライスを受け取
る。時間205において、第1のスレッドが、同期メカ
ニズムを獲得しようとする試みに成功を納める。第1の
スレッドは、時間間隔206の間、同期メカニズムを所
有する。第1のスレッドのタイム・スライスが、終了す
ると、第2、第3、及び、第4のスレッドが、それぞ
れ、タイム・スライスを受け取り、それぞれ、時間20
7、208、及び、209の試行事象を、かつ、同期メ
カニズムを獲得しようと試みる。同期メカニズムは、第
1のスレッドによって所有されており、利用できないの
で、同期メカニズムを獲得しようとするこれら3つの試
みは、失敗に終わり、それぞれ、時間間隔210、21
1、及び、212のブロック状態によって示されるよう
に、第2、第3、及び、第4のスレッドがブロックされ
る。第2、第3、及び、第4のスレッドがブロックされ
た後、第1のスレッドが、次のタイム・スライスを受け
取る。第1のスレッドは、同期メカニズムを解放し、数
回にわたって、同期メカニズムを獲得しようとする試み
に成功する。時間216及び218における解放事象、
及び、時間217及び213における獲得試行事象に注
目されたい。図2における解放事象のラベル「R」を囲
む矩形は、第2の案に基づいて、ブロックされたスレッ
ドが、解放時にブロック解除されるが、同期メカニズム
の獲得が許可されないことを示している。このタイム・
スライスが終了する前に、第1のスレッドは、時間21
3において、同期メカニズムを獲得する試みに成功す
る。第1のスレッドのタイム・スライスが終了して、第
2のスレッドがタイム・スライスを受け取った時点にお
いて、第1のスレッドは、時間間隔214の所有状態で
示すように、まだ、同期メカニズムを所有している。従
って、第2のスレッドが、時間215において、同期メ
カニズムの獲得を試みる場合、その試みは失敗する。第
2のスレッドは、ブロックされ、第2、第3、及び、第
4のスレッドの全てが、再び、ブロックされるので、第
1のスレッドは、次のタイム・スライスを受け取る。第
1のスレッドは、再び、同期メカニズムを解放し、その
タイム・スライスの間に、その再獲得を試み、そのタイ
ム・スライスの終了時に、同期メカニズムを所有するこ
とに成功する。時間219及び221における解放事
象、及び、時間220及び222における獲得試行事象
に注目されたい。このサイクルは、第2のスレッドが、
常に、同期メカニズムを獲得しようとする試みに失敗
し、第3及び第4のスレッドには、決して、同期メカニ
ズムの獲得を試みる他のチャンスが得られない場合に、
継続される。全体としての結果は、第1のスレッドによ
る同期メカニズムの完全な独占である。
【0011】以上の説明から明らかなように、解放され
た同期メカニズムの所有権を移行するための既存の案
は、非効率的であるか、あるいは、不公正である。
【0012】
【発明が解決しようとする課題】本発明の目的は、同期
メカニズムの所有権を管理するための、コンピュータ・
システムにおける方法及びシステムを提供することにあ
る。本発明のもう1つの目的は、同期メカニズムの所有
権を割り当てるための、コンピュータ・システムにおけ
る方法及びシステムを提供することにある。本発明のさ
らにもう1つの目的は、以前の所有スレッドによって、
以前に獲得され、解放された同期メカニズムの所有権を
再割り当てすべきか否かを決定するための、コンピュー
タ・システムにおける方法及びシステムを提供すること
にある。本発明のさらにもう1つの目的は、要求スレッ
ドが、次に、資源利用を要求する前に、資源利用を要求
している選択された要求スレッドによる資源の利用を許
可すべきか否かを決定するための、コンピュータ・シス
テムにおける方法及びシステムを提供することにある。
【0013】
【課題を解決するための手段】以下で、本発明のさらに
詳細な説明を展開するにつれて明らかになるように、こ
れらの目的及びその他の目的は、同期メカニズムの所有
権を管理するための方法及びシステムによって実現され
る。望ましい実施例の場合、同期メカニズムが利用可能
になると、スレッドのようないくつかのエンティティ
が、同期メカニズムの獲得を試みる。各エンティティ
は、エンティティによる同期メカニズム獲得の試みの相
対的緊急性を示す優先順位標識を備えている。該方法及
びシステムでは、まず、同期メカニズムを獲得しようと
する試みの緊急性が最も高いことを示す優先順位標識を
有する、同期メカニズムの獲得を試みるエンティティの
1つを識別する。該方法及びシステムでは、選択された
先行時間期間の間に、同期メカニズムを獲得しようと試
みたエンティティの有無を確認する。選択された時間期
間の間に、同期メカニズムを獲得しようと試みたエンテ
ィティがあれば、該方法及びシステムでは、同期メカニ
ズムの所有権を識別されたエンティティに割り当てる。
選択された時間期間の間に、同期メカニズムを獲得しよ
うと試みたエンティティがなければ、該方法及びシステ
ムでは、同期メカニズムの所有権の割り当てをもっと後
まで据え置く。
【0014】
【実施例】本発明の望ましい実施例によれば、解放され
た同期メカニズムの所有権を移行するための、効率的
で、公正な方法及びシステムが得られる。望ましい実施
例の場合、スレッドが同期メカニズムを解放すると、そ
の解放時に同期メカニズムにおいてブロックされている
スレッドがあれば、同期メカニズムの所有権を管理する
ソフトウェア機能(機能)によって、優先順位が最も高
い、ブロックされたスレッドのブロック解除が行われ
る。この機能は、さらに、同期メカニズムが最後に獲得
されて以来、同期メカニズムにおいてブロックされたス
レッドがあるか否かの確認を行う。あれば、解放スレッ
ドよりも優先順位が高いスレッドが、同期メカニズムの
獲得を試みたか、あるいは、オペレーティング・システ
ムが、解放スレッドと同じ優先順位のスレッドにタイム
・スライスを与えたことになる。こうした場合、該機能
は、ブロック解除されたスレッドが、直ちに、同期メカ
ニズムを獲得できるようにする。これによって、同期メ
カニズムの獲得を試みた、解放スレッドよりも優先順の
高いスレッド、または、タイム・スライスを受け取っ
た、解放スレッドと同じ優先順位のスレッドが、直ち
に、同期メカニズムを獲得できるようになる。別様であ
れば、該機能は、スレッドが、すぐには、同期メカニズ
ムを獲得できないようにする。この結果、解放スレッド
は、そのタイム・スライスが継続する間、同期メカニズ
ムを再獲得することが可能になり、タイム・スライスを
受け取り、同期メカニズムの獲得を試みる次のスレッド
も、そうすることが可能になる。
【0015】図3は、該機能が働く、汎用コンピュータ
・システムを例示した高レベルのブロック図である。コ
ンピュータ・システム300には、中央演算処理装置
(CPU)301、コンピュータ・メモリ(メモリ)3
02、及び、入力/出力装置303が含まれている。機
能304は、メモリ302に納められており、CPU3
01で実行される。メモリ302には、他のプログラム
306、307、及び、308も記憶されており、同様
に、それぞれ、プログラム306、307、及び、30
8の1つにおいて実行されるタスクに関する管理タスク
情報を保持する、管理タスク情報ブロック309、31
0、及び、311も記憶されている。メモリ302に
は、オペレーティング・システム312も記憶されてい
る。入力/出力装置には、ハード・ディスク・ドライブ
のような記憶装置305が含まれている。同期メカニズ
ムによって保護されている資源を利用する必要のあるス
レッドは、まず、同期メカニズムを獲得しようと試み
る。同期メカニズムに、少なくとも、セマフォ、相互排
除メカニズム(mutex)、及び、クリティカルなコ
ード・セクション(クリティカル・セクション)が含ま
れているのは、明らかである。同期メカニズムは、記憶
装置、ネットワーク・アダプタ、直列通信アダプタ、表
示装置、コードの感知可能セクション、メモリの感知可
能領域といった資源、及び、制限された数のスレッドに
よってしか、同時に利用することができない他の資源を
保護することができる。同期メカニズムによって保護さ
れた資源を同時に利用することが可能な、制限された数
のスレッドは、同期メカニズムに関する最大数のスレッ
ドと呼ばれ、保護を受ける資源を保護する特定の同期メ
カニズムの特徴である。
【0016】同期メカニズムを獲得しようと試みるた
め、スレッドが実行中のプログラムが、オペレーティン
グ・システムの同期メカニズム要求サービスを呼び出
し、次に、この同期メカニズム要求サービスが、オペレ
ーティング・システムの同期メカニズム獲得サービスを
呼び出す。既に資源を利用しているスレッドが、最大数
より少ない場合、同期メカニズムは、同期メカニズムを
獲得しようと試みるスレッドが同期メカニズムを獲得で
きるようにする。同期メカニズムの獲得を試みるスレッ
ドが同期メカニズムを獲得できるようにするため、オペ
レーティング・システムの同期メカニズム獲得サービス
が、オペレーティング・システムの同期メカニズム要求
サービスに成功戻りコードを戻し、同期メカニズム要求
サービスが、スレッドが実行中のプログラムに成功戻り
呼び出しを戻す。戻りコードが、成功戻りコードの場
合、プログラムは、同期メカニズムによって保護されて
いる資源を利用するステップに移行する。既に資源を利
用しているスレッドが最大数である場合には、同期メカ
ニズムは、同期メカニズムの獲得を試みるスレッドが同
期メカニズムを獲得できないようにする。それどころ
か、同期メカニズムは、同期メカニズムの獲得を試みる
スレッドが同期メカニズムにおいて「ブロック」される
ようにする。同期メカニズムを獲得することを試みるス
レッドを同期メカニズムでブロックさせることは、スレ
ッドがブロックされることを示すブロック・フラグをセ
ットすべく識別されたスレッドについて記憶された管理
情報を変更する同期メカニズムを獲得するためのオペレ
ーティング・システムサービスを含む。同期メカニズム
を獲得することを試みるスレッドを同期メカニズムでブ
ロックさせることは、また、同期メカニズムでブロック
されるスレッドのリストに識別されたスレッドを追加す
ることを含む。同期メカニズムにおいてブロックされた
スレッドは、同期メカニズムによってブロック解除され
るまで、実行を再開することができない。これは、オペ
レーティング・システムが、「ブロックされた」スレッ
ドがタイム・スライスを受け取ることができないように
することによって実施される。これによって、ブロック
されたスレッドが、プログラムにおける資源を利用する
コードの実行に取りかかるのが阻止される。オペレーテ
ィング・システムの同期メカニズム獲得サービスからの
戻りコードが、失敗戻りコードの場合、プログラムは、
同期メカニズムによって保護されている資源を利用する
ステップに移行しない。それどころか、オペレーティン
グ・システムの同期メカニズム要求サービスは、同期メ
カニズムを獲得しようとする別の試みにおいて、再び、
オペレーティング・システムの同期メカニズム獲得サー
ビスを呼び出すことになる。
【0017】図4には、同期メカニズムが解放される
と、機能304によって実施されるステップを示す流れ
図である。図4に示すステップは、同期メカニズムの解
放時に、1つ以上のスレッドが同期メカニズムにおいて
ブロックされている場合に限って実行される。同期メカ
ニズムの解放時に、同期メカニズムにおいてブロックさ
れているスレッドがゼロの場合、同期メカニズムは、慣
用の同期メカニズムと同様の働きをする。ステップ40
1において、機能304は、優先順位が最も高い、ブロ
ックされたスレッドを識別する。ステップ401におい
て、ブロックされたスレッドがなければ、これらのステ
ップは終了する(不図示)。ステップ401において、
ブロックされたスレッドの1つ以上が、最高の優先順位
を有している場合、機能304は、そのスレッドの1つ
を任意に選択する。ステップ402において、機能30
4は、識別されたスレッドをブロック解除する。これに
伴って、オペレーティング・システムが呼び出され、識
別されたスレッドに関して記憶されている管理情報に修
正を加えて、ブロック・フラグがクリアされる。このス
テップには、さらに、同期メカニズムにおいてブロック
されているスレッドのリストから識別されたスレッドを
除去するステップが含まれている。ステップ403にお
いて、同期メカニズムが獲得された最後の時点以来、同
期装置においてブロックされているスレッドがあれば、
機能304は、ステップ404から続行され、さもなけ
れば、どのスレッドも同期メカニズムを獲得できないよ
うにして、これらのステップが終了する。機能304
は、スレッドが同期メカニズムにおいてブロックされる
毎にセットされ、同期メカニズムが解放される毎にクリ
アされる、新たなブロック・オン・フラグをチェックす
ることによって、ステップ403における確認が行われ
る。ステップ404において、機能304は、識別され
たスレッドによる同期メカニズムの獲得を可能にする。
ステップ404には、同期メカニズムの所有者としての
スレッドの記憶が伴う。このステップには、オペレーテ
ィング・システムの同期メカニズム獲得サービスから戻
ると、オペレーティング・システムの同期メカニズム要
求サービスに成功を戻すことが含まれる。次に、オペレ
ーティング・システムの同期メカニズム要求サービス
は、オペレーティング・システムの同期メカニズム獲得
サービスに成功を戻す。これらのステップが、こうし
て、終了する。
【0018】図5は、機能304の利点を例示したタイ
ミング図である。このタイミング図には、それぞれ、第
1、第2、第3、及び、第4のスレッドのアクテビティ
に対応する、時間線501、502、503、及び、5
04が含まれている。4つのスレッドは、全て、優先順
位が同じである。読者の便宜のため、下記の表3には、
図5に示された主たる事象が、時間順にリスト・アップ
されている。
【0019】
【表3】時間 スレッド 事象 505 1 獲得を試みる;獲得が許可される 506 2 獲得を試みる;ブロックされる 512 3 獲得を試みる;ブロックされる 513 4 獲得を試みる;ブロックされる 507 1 解放する 508 2 ブロック解除される;所有権を割り当てる 509 2 解放する 510 3 ブロック解除する 511 2 再獲得を試みる;再獲得が許可される 第1のスレッドが、第1のタイム・スライスを受け取
り、時間505において、同期メカニズムを獲得する試
みに成功する。その後、同期メカニズムは、第1のスレ
ッドによって所有される。第2のスレッドが、次のタイ
ム・スライスを得るが、その間に時間506において、
同期メカニズムを獲得する試みは不成功に終わる。その
後、第2のスレッドは、時間506と508との間の
「B」ラベルによってブロックされる。時間506にお
ける事象を獲得するための試行のラベル「At」に続く
アスタリスクによって示すように、この獲得の試みによ
って、機能は、新たなブロック・フラグをセットする。
引き続き、第3及び第4のスレッドが、タイム・スライ
スを受け取り、それぞれ、時間512及び513におい
て、同期メカニズムを獲得する試みに失敗し、従って、
この後、ブロックされる。第2、第3、及び、第4のス
レッドがブロックされるので、第1のスレッドは、次の
タイム・スライスを受け取る。時間507において、第
1のスレッドが同期メカニズムを解放する。機能は、ス
テップ403において、新たなブロック・アンフラグが
セットされているか否かをチェックする。それは、第2
のスレッドが、同期メカニズムを獲得しようと試みた時
点506以降、同期メカニズムを獲得したスレッドがな
いためである。時間507における解放事象のラベル
「R」を囲む円は、解放時に、機能が、第2のスレッド
をブロック解除し、時間508において、第2のスレッ
ドに同期メカニズムを割り当てることを示している。第
2のスレッドは、この後、同期メカニズムを所有し、次
のタイム・スライスを受け取りしだい、それを利用する
ことが可能になる。以上において、第1のスレッドは、
その連続した2つ以上のタイム・スライスにわたって、
同期メカニズムの独占を阻止されたことになる。
【0020】そのタイム・スライスの間の時間509に
おいて、第2のスレッドが同期メカニズムを解放する。
時間509における解放事象のラベル「R」を囲む矩形
によって示されているように、新たなブロック・オン・
フラグは、セットされておらず、従って、第3のスレッ
ドが、時間510においてブロック解除されるが、同期
メカニズムの再割り当ては行われない。この結果、第2
のスレッドが、同じタイム・スライスのもっと後にな
る、時間511において、同期メカニズムを再獲得する
試みに成功することが可能になる。以上において、所有
スレッドが所有権を有している間に、他のスレッドが同
期メカニズムの獲得を試みていなければ、同じタイム・
スライスの間において、同じスレッドが引き続き行う同
期メカニズム獲得の試みによって、不経済なスレッドの
スイッチが生じることはない。
【図面の簡単な説明】
【図1】新たに解放された同期メカニズムにおいてブロ
ックされているスレッドのうち、どれが同期メカニズム
を獲得できるようにすべきかを判定するための、第1の
従来案に関する欠点を例証するタイミング図である。
【図2】新たに解放された同期メカニズムにおいてブロ
ックされているスレッドのうち、どれが同期メカニズム
を獲得できるようにすべきかを判定するための、第2の
従来案に関する欠点を例証するタイミング図である。
【図3】望ましい実施例を構成する機能が働く汎用コン
ピュータ・システムを例示した、高レベルのブロック図
である。
【図4】同期メカニズムが解放されると、機能304に
よって実施されるステップを示す流れ図である。
【図5】機能304の働きを例示したタイミング図であ
る。
【符号の説明】
300 コンピュータ・システム 301 CPU 302 コンピュータ・メモリ 303 入力/出力装置 304 機能 305 記憶装置
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−42240(JP,A) Ray Duncan著,佐藤和彦監 修,福崎俊博訳,プログラミングOS /2 I カーネルプログラミング編, 株式会社アスキー,1990年4月11日,初 版,p.277−282 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 - 9/54

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 相対的な緊急度を示す優先順位標識をそ
    れぞれ有している複数のエンティティと、該エンティテ
    ィによって獲得されかつ解放されることにより、前記複
    数のエンティティによる資源の利用を同期する同期メカ
    ニズムからなるコンピュータ・システムにおける、前記
    同期メカニズムの所有権を管理するための方法であっ
    て、 前記同期メカニズムを所有していた第1のエンティティ
    による前記同期メカニズムの解放に応じて、前記同期メ
    カニズムの所有権を獲得する試みがブロックされている
    エンティティから前記優先順位標識に基づいて第2のエ
    ンティティを選択する段階と、 前記第2のエンティティのブロックを解除する段階と、 前記第1のエンティティが前記同期メカニズムを最後に
    獲得した時点から解放する時点までの期間中に該同期メ
    カニズムにおいてブロックされたエンティティが、少な
    くとも一つ、存在するかどうかを確認する段階と、 前記確認する段階にて、前記期間中に、少なくとも一
    つ、ブロックされたエンティティが存在することが確認
    された場合に、前記第2のエンティティに前記同期メカ
    ニズムの所有権を割り当てる段階と、 前記確認する段階にて、前記期間中に、新たにブロック
    されたエンティティが存在しないことが確認された場合
    に、前記同期メカニズムの割り当てを据え置く段階と を具備することを特徴とする方法。
  2. 【請求項2】 前記第1のエンティティによる前記同期
    メカニズムの解放時に前記同期メカニズムの割り当てを
    据え置いたときには、前記同期メカニズムの解放時と同
    じタイム・スライスにおいて前記第1のエンティティが
    行う前記同期メカニズムの獲得の試みに対して、前記同
    期メカニズムの割り当てを行う段階を更に具備すること
    を特徴とする請求項1に記載の方法。
  3. 【請求項3】 請求項1に記載の方法において、さら
    に、 エンティティが前記同期メカニズムにブロックされる毎
    にフラグをセットする段階と、 前記同期メカニズムが解放される毎に前記フラグをクリ
    アする段階とを具備し、 前記ブロックされたエンティティが、少なくとも一つ、
    存在するかどうかを確認する段階は、前記フラグがセッ
    トされているか否かを確認するものであることを特徴と
    する方法。
  4. 【請求項4】 前記エンティティは、スレッドであるこ
    とを特徴とする請求項1に記載の方法。
  5. 【請求項5】 複数の前記スレッドにタイム・スライス
    を割り当てることを更に含み、各スレッドは、それに割
    り当てられたタイム・スライス中に前記同期メカニズム
    の所有権を要求しうるか又は解放しうることを特徴とす
    る請求項4に記載の方法。
  6. 【請求項6】 前記同期メカニズムは、セマフォである
    ことを特徴とする、請求項1に記載の方法。
JP31812694A 1993-12-23 1994-12-21 解放された同期メカニズムの所有権を管理するための方法及びシステム Expired - Lifetime JP3318455B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/176,132 US5586318A (en) 1993-12-23 1993-12-23 Method and system for managing ownership of a released synchronization mechanism
US08/176132 1993-12-23

Publications (2)

Publication Number Publication Date
JPH07200323A JPH07200323A (ja) 1995-08-04
JP3318455B2 true JP3318455B2 (ja) 2002-08-26

Family

ID=22643112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31812694A Expired - Lifetime JP3318455B2 (ja) 1993-12-23 1994-12-21 解放された同期メカニズムの所有権を管理するための方法及びシステム

Country Status (5)

Country Link
US (2) US5586318A (ja)
EP (1) EP0661633B1 (ja)
JP (1) JP3318455B2 (ja)
CA (1) CA2138625A1 (ja)
DE (1) DE69428972T2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
US5931923A (en) * 1996-02-16 1999-08-03 Advanced Micro Devices, Inc. System for accessing control to a peripheral device utilizing a synchronization primitive within the peripheral device
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
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
DE69738646T2 (de) * 1996-08-28 2008-11-13 Hitachi, Ltd. Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
US5987492A (en) 1997-10-31 1999-11-16 Sun Microsystems, Inc. Method and apparatus for processor sharing
US6026427A (en) * 1997-11-21 2000-02-15 Nishihara; Kazunori Condition variable to synchronize high level communication between processing threads
US6047316A (en) * 1997-12-12 2000-04-04 Intel Corporation Multiprocessor computing apparatus having spin lock fairness
US6499048B1 (en) * 1998-06-30 2002-12-24 Sun Microsystems, Inc. Control of multiple computer processes using a mutual exclusion primitive ordering mechanism
US6188411B1 (en) 1998-07-02 2001-02-13 Neomagic Corp. Closed-loop reading of index registers using wide read and narrow write for multi-threaded system
US6920634B1 (en) * 1998-08-03 2005-07-19 International Business Machines Corporation Detecting and causing unsafe latent accesses to a resource in multi-threaded programs
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
US6681384B1 (en) * 1999-12-23 2004-01-20 International Business Machines Corporation Multi-threaded break-point
US6829609B1 (en) * 2000-01-11 2004-12-07 Emc Corporation System, device, and method for providing mutual exclusion for computer system resources
US6829763B1 (en) * 2000-05-16 2004-12-07 Litton Systems, Inc. Partitioned executive structure for real-time programs
GB0112571D0 (en) * 2001-05-24 2001-07-18 Ibm Priority inversion in computer system supporting multiple processes
US20030074390A1 (en) * 2001-10-12 2003-04-17 Hudson Richard L. Hardware to support non-blocking synchronization
US20030145035A1 (en) * 2002-01-15 2003-07-31 De Bonet Jeremy S. Method and system of protecting shared resources across multiple threads
US7584219B2 (en) * 2003-09-24 2009-09-01 Microsoft Corporation Incremental non-chronological synchronization of namespaces
US20050235015A1 (en) * 2004-03-31 2005-10-20 Microsoft Corporation User-configurable device storage synchronization manager
GB2453284A (en) 2004-04-02 2009-04-01 Symbian Software Ltd Mechanism for notifying a kernel of a thread entering a critical section.
US20060235927A1 (en) * 2005-04-19 2006-10-19 Bhakta Dharmesh N System and method for synchronizing distributed data streams for automating real-time navigation through presentation slides
GB0516474D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Pre-emptible context switching in a computing device
KR100824792B1 (ko) * 2006-07-11 2008-04-24 삼성전자주식회사 커맨드 처리 장치와 방법 및 이를 포함하는 시스템
US20110185971A1 (en) * 2009-11-30 2011-08-04 Uvtech Systems, Inc. Laser doping

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
DE3886756T2 (de) * 1988-10-28 1994-06-23 Ibm Betriebsmittelzugriff für Multiprozessorrechnersystem.
EP0381655A3 (en) * 1989-01-31 1992-12-02 International Business Machines Corporation Method for synchronizing the dispatching of tasks among multitasking operating systems
US5016166A (en) * 1989-04-12 1991-05-14 Sun Microsystems, Inc. Method and apparatus for the synchronization of devices
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
JPH04308961A (ja) * 1991-01-18 1992-10-30 Ncr Corp 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US5247675A (en) * 1991-08-09 1993-09-21 International Business Machines Corporation Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system
GB9123264D0 (en) * 1991-11-01 1991-12-18 Int Computers Ltd Semaphone arrangement for a data processing system
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
US5438677A (en) * 1992-08-17 1995-08-01 Intel Corporation Mutual exclusion for computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ray Duncan著,佐藤和彦監修,福崎俊博訳,プログラミングOS/2 I カーネルプログラミング編,株式会社アスキー,1990年4月11日,初版,p.277−282

Also Published As

Publication number Publication date
EP0661633A1 (en) 1995-07-05
US5784618A (en) 1998-07-21
US5586318A (en) 1996-12-17
CA2138625A1 (en) 1995-06-24
EP0661633B1 (en) 2001-11-07
JPH07200323A (ja) 1995-08-04
DE69428972T2 (de) 2002-05-29
DE69428972D1 (de) 2001-12-13

Similar Documents

Publication Publication Date Title
JP3318455B2 (ja) 解放された同期メカニズムの所有権を管理するための方法及びシステム
JP2866241B2 (ja) コンピュータシステムおよびスケジューリング方法
US6272517B1 (en) Method and apparatus for sharing a time quantum
US6622155B1 (en) Distributed monitor concurrency control
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US6510437B1 (en) Method and apparatus for concurrent thread synchronization
EP0783150B1 (en) System, method, storage medium and computer-readable modules for space efficient object locking
US5339415A (en) Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system
US5701470A (en) System and method for space efficient object locking using a data subarray and pointers
US7797704B2 (en) System and method for performing work by one of plural threads using a lockable resource
EP0747815A2 (en) Method and apparatus for serializing access to multithreading unsafe resources
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US20060277551A1 (en) Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions
EP0969381A2 (en) Method of efficient non-virtual main memory management
US20020133530A1 (en) Method for resource control including resource stealing
JPH05189251A (ja) 多重タスク処理オペレーティング・システム及びそのコンピュータの動作方法
US7150020B2 (en) Resource management
JPH07319714A (ja) 適切なオブジェクト・オーナシップ・モデルを選択的に適用する方法およびシステム
US20030126187A1 (en) Apparatus and method for synchronization in a multi-thread system of JAVA virtual machine
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
EP0715732B1 (en) Method and system for protecting shared code and data in a multitasking operating system
EP0913770A2 (en) Method and apparatus for sharing a time quantum
US20040039884A1 (en) System and method for managing the memory in a computer system
JP2804478B2 (ja) タスク制御方式及びオンライン・トランザクション・システム
EP0544822B1 (en) Dual level scheduling of processes

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020507

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080614

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090614

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100614

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110614

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110614

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120614

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120614

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130614

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term