JPH10254714A - スレッドのリストを維持する方法及びシステム - Google Patents

スレッドのリストを維持する方法及びシステム

Info

Publication number
JPH10254714A
JPH10254714A JP9313451A JP31345197A JPH10254714A JP H10254714 A JPH10254714 A JP H10254714A JP 9313451 A JP9313451 A JP 9313451A JP 31345197 A JP31345197 A JP 31345197A JP H10254714 A JPH10254714 A JP H10254714A
Authority
JP
Japan
Prior art keywords
event
anchor
event list
value
list
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
Application number
JP9313451A
Other languages
English (en)
Other versions
JP3229257B2 (ja
Inventor
Fleet James William Van
ジェイムズ・ウィリアム・バン・フリート
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH10254714A publication Critical patent/JPH10254714A/ja
Application granted granted Critical
Publication of JP3229257B2 publication Critical patent/JP3229257B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 イベントの発生を待っているスレッドのリス
トを維持する方法、及び装置を提供する。 【解決手段】 イベントの発生に基づいてある種の活動
をすることを望むスレッドが、まず検出される。その後
にイベント・リスト・アンカの値が、自身が現在使用不
可能であることを示すように設定される。イベント・リ
スト・アンカは、イベントの発生を待っているスレッド
のリストを追跡するために用いられる。イベント・リス
ト・アンカが使用不可能である間に、検出されたスレッ
ドが、イベントの発生を待っているスレッドのリストに
加えられる。最後にイベント・リスト・アンカの値が、
追加されたスレッドの物理的位置にあるポインタに等し
く設定され、こうしてイベント・リスト・アンカが使用
可能であることを示す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概してデータ処理
システムに関し、より詳細には、イベントへのアクセス
をロックするために、既存の方法に代るロック法を使用
する方法、及びシステムに関する。
【0002】
【従来の技術】コンピュータ産業の発達は、絶えず増加
し続ける処理速度と機能に対する使用者の飽くことのな
い欲望によってもたらされてきた。この発達がもたらし
た1つの種類にマルチプロセッサ・コンピュータがあ
る。
【0003】マルチプロセッサ・システムには、他のコ
ンピュータ・システムと同様に、改善に適した多くの別
個の分野がある。改善に適したこのような1分野は、こ
のようなマルチプロセッサ環境用のオペレーティング・
システム(例えばUNIX、AIXなど)内に存在す
る。より詳細には、このようなマルチプロセッサ環境で
は、リソースへのアクセスを連続的にするために、オペ
レーティング・システム(OS)はロックを使用する。
【0004】このようなリソースの1つはイベント・リ
スト・アンカであり、このリスト(イベント・リスト)
は、イベント・リスト・アンカに関連付けられている。
一般にイベント・リスト・アンカはUNIXではイベン
ト識別子として定義される。
【0005】イベント・リストにアクセスするために現
在使用されている方法は、逐次化に帰着する。特に現在
の方法はProc_Base_Lockのような単一の
ロックを用い(AIX)、イベント・リストを逐次化
し、場合によってはイベント・リストに存在しない他の
フィールドも逐次化する。
【0006】
【発明が解決しようとする課題】したがって、イベント
・リスト自体のみを逐次化する方法及びシステムを提供
することは、明らかな利点である。本発明はそのような
方法及びシステムを提供する。
【0007】
【課題を解決するための手段】本発明は一面では、イベ
ントの発生を待っているスレッドのリストを維持する方
法である。この方法は、スレッドが、イベントの発生に
基づいてある種の行動をすることを望んでいることを検
知するステップを含む。この方法はまた、イベント・リ
スト・アンカの値を設定するステップも含み、これによ
りイベント・リスト・アンカが現在使用不可能であり、
イベント・リスト・アンカが、イベントの発生を待って
いるスレッド・リストの状況を追跡していることを表示
する。この方法は更に、イベント・リスト・アンカが使
用不可能である間に、イベントの発生を待っているスレ
ッドのリストに検知されたスレッドを加えるステップも
含む。この方法はまた、イベント・リスト・アンカ値を
追加されたスレッドの物理位置を示すポインタに等しく
設定するステップも含み、これによりイベント・リスト
・アンカの使用可能状態を表示する。
【0008】
【発明の実施の形態】以下の記述では、本発明を完全に
理解できるように、多数の具体的な詳細事項、例えば特
定の単語やバイト長などが説明されている。しかし当分
野に通常の知識をもつ当業者には、本発明はこのような
具体的な詳細事項が無くても実行できることは明白であ
ろう。他の場合には、本発明を不要な詳細記述で不明瞭
なものにしないように、周知の回路はブロック図で表示
されている。多くの部分では、タイミングに関する詳細
な考察などは省略されており、これは、このような詳細
事項は、本発明を完全に理解するために必要なく、更に
関連分野に通常の知識をもつ当業者の知識の範囲内のも
のであるからである。
【0009】ここで図1を参照すると、本発明を実行で
きるデータ処理システム20が示されている。このデー
タ処理システム20にはプロセッサ22、キーボード8
2、ディスプレイ96が含まれている。キーボード82
は、ケーブル28でプロセッサ22に結合されている。
ディスプレイ96はディスプレイ・スクリーン30を持
ち、これは陰極線管(CRT)、液晶ディスプレイ、エ
レクトロ・ルミネセント(EL)パネルなどを用いて実
現できる。データ処理システム20はまたポインティン
グ・デバイス84を含み、これはトラック・ボール、ジ
ョイ・スティック、タッチ・センシティブなタブレット
またはスクリーン、トラック・パス、もしくは図に示す
ようにマウスを用いて実現できる。ポインティング・デ
バイス84は、ディスプレイ・スクリーン30上のポイ
ンタまたはカーソルを動かすために使用できる。プロセ
ッサ22はまたモデム92、CD−ROM78、ネット
ワーク・アダプタ90、及びフロッピ・ディスク・ドラ
イブ40のような1つまたは複数の周辺装置に結合され
ることもあり、これらのそれぞれの装置は、きょう体即
ちプロセッサ22の内部にあっても、外部にあってもよ
い。プリンタ100のような出力装置がプロセッサ22
に結合されることもある。
【0010】ディスプレイ96、キーボード82、ポイ
ンティング・デバイス84のそれぞれは、いくつかの周
知の在庫品のいずれかを用いて実現できることは、当分
野に通常の知識をもつ当業者は容易に理解するはずであ
る。
【0011】ここで図2を参照すると、この図には、本
発明の教示に従った図1のデータ処理システム20に含
むことができる、選択された構成部品を示す高レベルの
ブロック図が示されている。データ処理システム20
は、主にコンピュータが読み取り可能であり、どこに存
在してもソフトウェアの形態にできる命令によって制御
され、またはこのようなソフトウェアが保管され、アク
セスされる何らかの手段によって制御される。このよう
なソフトウェアは、中央処理装置(CPU)50内で実
行され、データ処理システム20に活動を起こさせるこ
とができる。
【0012】システム・バス5に結合される記憶装置に
は、ランダム・アクセス・メモリ(RAM)56、読み
取り専用メモリ(ROM)58、不揮発性メモリ60が
含まれる。このような記憶装置には、情報を保管し、取
り出すための回路が含まれる。ROMは変更できない保
管データをもつ。RAMに保管されたデータは、CPU
50または他のハードウェア装置が変更できる。不揮発
性メモリは、それ自体から電源が取り除かれたときにデ
ータを失わないメモリである。不揮発性メモリにはRO
M、EPROM、フラッシュ・メモリ、またはバッテリ
・パックCMOS RAMが含まれる。図2に示すよう
に、このようなバッテリ・パックCMOS RAMは、
構成情報を保管するために使用できる。
【0013】拡張カードまたは拡張ボードは、接続され
たチップ及び他の電子部品を含む回路ボードであり、コ
ンピュータに機能またはリソースを追加する。典型的な
拡張カードはメモリ、ディスク・ドライブ・コントロー
ラ66、ビデオ・サポート、パラレル・ポート及びシリ
アル・ポート、ならびに内部モデムを追加する。ラップ
・トップ、パーム・トップ、及び他の携帯型コンピュー
タに対しては、拡張カードは通常PCカードの形であ
り、これはクレジット・カードの大きさのカードであ
り、コンピュータの側面または後面のスロットに差し込
めるように作られている。このようなスロットの例は、
Personal Computer Memory
Card International Associ
ation(PCMCIA)スロットであり、このスロ
ットにはタイプ1、タイプ2、及びタイプ3のカード・
スロットが定義されている。このようにして空のスロッ
ト68は、拡張カードまたはPCMCIAカードの種々
のタイプを受け入れる。
【0014】ディスク・コントローラ66及びディスケ
ット・コントローラ70は、双方とも特別な目的の集積
回路及び関連する回路を含み、これらは、それぞれハー
ド・ディスク・ドライブ72、及びフロッピ・ディスク
またはディスケット74からの読み出し、及びこれらへ
の書き込みを管理し、制御する。これらのディスク・コ
ントローラは、読み取り/書き込みヘッドの位置決め、
ドライブとCPU50との間の仲介、メモリへ、または
メモリからの情報の伝達の制御のような作業を行う。単
一のディスク・コントローラが、複数のディスク・ドラ
イブを制御できることもある。
【0015】CD−ROMコントローラ76が、コンパ
クト・ディスク読み取り専用メモリ(CD−ROM)7
8からデータを読み取るために、データ処理システム2
0に含まれることもある。このようなCD−ROMは、
データを読み取るために磁気的手段ではなく、レーザ光
学系を用いる。
【0016】キーボード・マウス・コントローラ80
が、データ処理システム20中に備えられ、キーボード
82及びポインティング・デバイス84とインタフェー
スする。このようなポインティング・デバイスは、一般
にカーソルのようなスクリーン上のエレメントを制御す
るために用いられ、このスクリーン上のエレメントは、
ユーザがマウス・ボタンを押したときにポインタの位置
を指定するホット・スポットをもつ矢印の形であっても
よい。他のポインティング・デバイスにはグラフィック
ス・タブレット、スタイラス、ライト・ペン、ジョイ・
スティック、パック、トラック・ボール、トラック・パ
ッド、及びIBMが『TrackPoint』の商標で
販売するポインティング・デバイスがある。
【0017】処理システム20と他のデータ処理システ
ムとの間の通信は、シリアル・コントローラ88及びネ
ットワーク・アダプタ90によって可能であり、これら
の双方はシステム・バス5に結合されている。シリアル
・コントローラ88はコンピュータ間、またはコンピュ
ータと周辺装置との間で情報を伝送するために用いら
れ、ここでは単一の線上を一時に1ビットずつ伝送され
る。シリアル通信は同期タイプ(クロックのようなある
種の標準的なもので制御される)である場合も、非同期
タイプ(情報の流れを支配する制御信号の交換によって
管理される)である場合もある。シリアル通信の標準の
例としては、RS−232インタフェース、及びRS−
422インタフェースが含まれる。図示のようにこのよ
うなシリアル・インタフェースは、モデム92との通信
にも使用できる。モデムは、コンピュータが標準の電話
線上にデータを伝送できるようにする通信装置である。
モデムは、ディジタルのコンピュータ信号を電話線上の
通信に適切なインターロック信号に変換する。モデム9
2は、「PRODIGY」のサービス・マークの下で提
供される情報サービスのような、オンラインの情報サー
ビスにデータ処理システム20を接続するために使用で
きる。このようなオンラインのサービス・プロバイダ
は、モデム92を介してデータ処理システム20にダウ
ン・ロードできるソフトウェアを提供することもある。
モデム92は、サーバのような他のソフトウェアのソー
ス、電子掲示板、インタネットまたはワールド・ワイド
・ウェブへの接続を行うこともある。
【0018】ネットワーク・アダプタ90は、データ処
理システム20をローカル・エリア・ネットワーク(L
AN)94に接続するために使用できる。ネットワーク
94は、ソフトウェア及び情報を電子的に伝達し、通信
する手段をコンピュータ・ユーザに提供できる。更にネ
ットワーク94は、1つの仕事を処理する際にいくつか
のコンピュータに作業を分担させ、協調動作をさせる分
散処理を提供することもできる。
【0019】ディスプレイ96は、ディスプレイ・コン
トローラ98によって制御され、データ処理システム2
0が生成した視覚的出力を表示するために使用される。
このような視覚的出力にはテキスト、グラフィックス、
アニメ的なグラフィックス及びビデオが含まれる。ディ
スプレイ96は、CRTベースのビデオ・ディスプレ
イ、LCDベースの平面ディスプレイ、またはガス・プ
ラズマ・ベースの平面ディスプレイによって実現でき
る。ディスプレイ・コントローラ98には、ディスプレ
イ96に送られるビデオ信号を生成するために必要な電
子部品が含まれる。
【0020】プリンタ100は、パラレル・コントロー
ラ102を介してデータ処理システム20に結合でき
る。プリンタ100は紙上、または透明な他の媒体上な
どに、テキストまたはコンピュータが生成したイメージ
を出力するために使用される。他のタイプのプリンタに
はイメージ・セッタ、プロッタ、またはフィルム・レコ
ーダが含まれる。
【0021】パラレル・コントローラ102は、システ
ム・バス5とプリンタ100のような他のパラレル通信
装置との間に接続された配線上に、複数のデータ・ビッ
ト及び制御ビットを同時に送るために用いられる。
【0022】CPU50は命令をフェッチし、デコード
し、実行して、コンピュータの主要データ転送経路であ
るシステム・バス5を介して他のリソースに情報を伝達
し、またこれらから情報を入手する。このようなバス
は、データ処理システム20内の構成部品を接続し、デ
ータ交換の手段を定義する。システム・バス5は、図2
に示されたメモリ・ユニット56、58、60、CPU
50、及び他の装置を互いに接続し、これらの間でのデ
ータの交換を可能にする。
【0023】ここで図3を参照すると、図1のオペレー
ティング・システム(示されてない)の本発明の教示に
従ったイベント・リスト・アンカ302を示すブロック
図がある。イベント・リスト・アンカ及び他の関連する
UNIX構造に関する詳細な情報は、TAB Book
sにより出版されたM.C.Shaw及びS.S.Sh
awによる「UNIX Internals」に記述さ
れている。
【0024】一般にUNIXのオペレーティング・シス
テムは、代表的なイベントの発生を現時点で待っている
スレッド構造のリストを維持するために、イベント・リ
スト・アンカ302のようなイベント・リスト・アンカ
を用いる。前記のように、従来技術による方法は、イベ
ント・リストを逐次化するために単一のロックを用いて
いた。このようなロックの使用による欠点は、この方法
が、イベント・リスト自体の中には存在しない他のフィ
ールドを逐次化する可能性があることである。
【0025】本発明の好ましい実施例では、各イベント
・リスト・アンカ302が、自身が提示するイベント・
リストに対するロックとして用いられる。
【0026】更に詳細に説明すると、好ましい実施例で
はイベント・リスト・アンカ302は、(1)Even
t_Null、(2)Event_Lock、及び
(3)Thread_IDの3つの値をもつことができ
る。イベント・リスト・アンカ302がEvent_N
ullの値をもつ場合は、提示されたイベントが発生す
るのを現時点で待っているスレッドがないことを示す。
イベント・リスト・アンカ302がEvent_Loc
kに等しい値をもつ場合は、これは、イベント・リスト
・アンカ302に関して何らかの活動が現在実行されて
いることを示す。
【0027】図3に示すようにイベント・リスト・アン
カ302は、例えばEvent_Null308の値、
またはEvent_Lock310の値をもつことがで
き、あるいはThread_IDを介してスレッド構造
304のようなスレッド構造を指すことができる。スレ
ッド構造304はイベント・リスト304aを含み、こ
のイベント・リストはヌル(null)値か、またはス
レッド構造306のようなもう1つのスレッド構造を指
すポインタのいずれかをもつことができる。スレッド構
造306もイベント・リスト306aを含み、このイベ
ント・リストはヌル値か、またはもう1つのスレッド構
造を指すポインタをもつことができ、このようにしてイ
ベント・リストの連鎖を形成する。イベント・リスト・
アンカを提示するイベントに対するロックとして使用す
ることに関するより詳細な情報は、以降に図4を参照し
ながら説明する。
【0028】ここで図4を参照すると、ここには、スレ
ッドがスリープ状態にされたときに、図3のイベント・
リスト・アンカの本発明の教示に従った使用を説明する
流れ図が示されている。スレッドが使用を望むイベント
が発生してないときはいつでも、このスレッドがスリー
プ状態に置かれることに注意されたい。以降に説明する
方法は、本発明の教示に従ってイベント・リスト・アン
カを使用するために、変更されたAIXのスリープ・ル
ーチンの部分を記述することにも注意されたい。この方
法は、ステップ402において、スレッドがスリープ・
ルーチンを呼び出すときに開始される。その後にこの方
法はステップ404に進み、ここではプロシージャSe
t_Event_Lockedが呼び出される。プロシ
ージャSet_Event_Lockedは、図7に関
連付けてより詳しく説明される。プロシージャSet_
Event_Lockedは、イベント・リスト・アン
カ302に保管されている現在値を戻し、この値はこの
時点では、Event_NullであるかまたはThr
ead_IDであるかのいずれかである。この方法は次
にステップ406に進み、ここでは戻された値、「現在
値」がEvent_Null、またはThread_I
Dに等しいかどうかが判定される。ステップ406にお
いて、現在値がThread_IDに等しいと判定され
たときは、この方法はステップ408に進む。しかしス
テップ406において、現在値がEvent_Null
に等しいと判定されたときは、この方法はステップ41
2に進む。
【0029】ステップ408において現在のスレッド
(即ち呼び出しを行ったスレッド)が、提示したイベン
トが発生するのを待っているイベント・リスト中のスレ
ッドの連鎖に加えられる。その後にこの方法はステップ
410に進む。
【0030】ステップ412において現在のスレッド
は、Event_Initialize連鎖を待ってい
るただ1つのスレッドを提示することになる。その後に
この方法はステップ410に進む。
【0031】ステップ410において、現在のThre
ad_IDを指すポインタが、イベント・リスト・アン
カ302中に同期をとって保管される。このようにし
て、Event_Lock以外の値を保管することによ
り、イベント・リスト・アンカが有効にロック解除され
る。その後この方法はステップ414に進んで終了す
る。
【0032】イベントの発生後には、スリープ中のスレ
ッドが覚醒しなければならないことは、当分野に知識を
もつ当業者は理解するであろう。この覚醒と共にイベン
ト・リスト・アンカ302を使用する方法は、図5に関
連付けて以降に説明する。
【0033】ここで図5を参照すると、図4で以前にス
リープ状態にされたスレッドを覚醒させるための、本発
明の教示に従ったイベント・リスト・アンカの使用を説
明する、流れ図が示されている。以降に説明する方法
は、本発明の教示に従ってイベント・リスト・アンカを
使用するために、変更されたAIXのWake_Upル
ーチンの部分を記述することにも注意されたい。この方
法は、覚醒プロシージャーが呼び出されるステップ50
0で始まる。この方法は、次にプロシージャSet_E
vent_Lockedが呼び出されるステップ502
に進み、更に前記で説明したようにイベント・リスト・
アンカ302の現在値を戻す。その後この方法はステッ
プ504に進み、ここではイベント・リスト・アンカ3
02の現在値が比較され、この現在値がEvent_N
ull、または他のいずれかの値に等しいかどうかが判
定される。ステップ504において、イベント・リスト
・アンカ302の現在値が、Event_Nullに等
しいと判定されたときは、この方法はステップ508に
進む。しかしステップ504において、この現在値がE
vent_Nullに等しくないと判定されたときは、
この方法はステップ506に進む。
【0034】ステップ506において、イベント・リス
ト連鎖(例えば304及び306)中のすべてのスリー
プ状態のスレッドは、実行するために覚醒させられる。
その後この方法はステップ508に進む。ステップ50
8において、Event_Nullに等しい値が、イベ
ント・リスト・アンカ302に同期をとって保管され
る。その後この方法はステップ510に進んで終了す
る。
【0035】ここで図6を参照すると、本発明の代替実
施例を説明する流れ図が示されており、ここでは図4で
以前にスリープ状態におかれたスレッドが、本発明の教
示に従って優先順位に基づいて覚醒させられる。この方
法は、プロシージャWake_Up_Oneが呼び出さ
れるステップ600で始まる。その後この方法は、プロ
シージャSet_Event_Lockedが呼び出さ
れるステップ602に進む。その後この方法はステップ
604に進み、ここで現在値がEvent_Nullと
比較される。ステップ604において、現在値がEve
nt_Nullに等しいときは、この方法はステップ6
10に進む。しかしステップ604において、現在値が
Event_Null以外のいずれかの他の値に等しい
ときは、この方法はステップ606に進む。
【0036】ステップ606において、イベント・リス
ト連鎖中の最高優先順位のスリープ状態のスレッドが、
実行可能な状態にされ、イベント・リストから除去さ
れ、この方法はステップ608に進む。ステップ608
において、イベント・リスト中にスリープ状態のスレッ
ドがいくつか残っているか否かが判定される。ステップ
608において、イベント・リスト中にスリープ状態の
スレッドが存在すると判定されたときは、この方法はス
テップ612に進む。しかしステップ608において、
イベント・リスト連鎖中にもはやスレッドが存在しない
と判定されたときは、この方法はステップ610に進
む。
【0037】ステップ612において、必要に応じて新
しい第1のThread_IDがイベント・リストから
取り出され、この方法はステップ614に進む。ステッ
プ614において、第1のThread_IDがイベン
ト・リスト・アンカ302に同期をとって保管され、こ
の方法はステップ616に進んで終了する。
【0038】ステップ610において、Event_n
ullの値が、イベント・リスト・アンカ302に同期
をとって保管され、この方法はステップ616に進んで
終了する。
【0039】ここで図7を参照すると、ここでは図5、
図6、及び図4それぞれの覚醒方法、及びスリープ方法
によって呼び出される本発明の教示に従ったプロシージ
ャ、Set_Event_Lockedを説明する流れ
図が示されている。この方法はステップ700で始ま
り、イベント・リスト・アンカ302の現在値が取り出
されるステップ302に進む。その後でこの方法はステ
ップ704に進み、ここでこの現在値がEvent_L
ockに等しいか否かが判定される。ステップ704に
おいて、この現在値がEvent_Lockに等しいと
判定されたときは、この方法はステップ702に戻り、
ステップ702から上記のステップ(ステップ702及
びステップ704)を繰り返す。しかしステップ704
において、この現在値がEvent_Lockに等しく
ないと判定されたときは、この方法はステップ706に
進む。
【0040】ステップ706において、イベント・リス
ト・アンカ302をアトミックにEvent_Lock
に等しい値に設定する。本明細書ではアトミック(at
omic)とは、記憶装置中のあるアドレスからの読み
取り、またはこのアドレスへの書き込みを試みる操作で
あって、このアドレスに対しては他のいかなるアクセス
による割り込みもなされない操作のことを言う。
【0041】その後この方法はステップ708に進み、
ここでイベント・リスト・アンカ302の現在値が呼び
出しプロシージャに戻され、この方法は終了する。
【0042】本発明の動作及び構成は、上記の説明から
明白なはずである。上記で示し説明した本発明の方法、
及びシステムを好ましい例として記述したが、本発明の
意図と範囲を逸脱することなく、これらの中に種々の変
更及び(または)変形を行うことができることは容易に
理解されるであろう。
【0043】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0044】(1)イベントの発生を待っているスレッ
ドのリストを維持する方法であって、(a)あるスレッ
ドが、イベントの発生に基づいてある種の活動の実行を
希望していることを検出するステップと、(b)イベン
トの発生を待つスレッドのリストを追跡するためのイベ
ント・リスト・アンカの値を、該イベント・リスト・ア
ンカが現在使用不可能であることを示すように設定する
ステップと、(c)前記イベント・リスト・アンカが使
用不可能である間に、前記検出されたスレッドを前記イ
ベントの発生を待つスレッドのリストに追加するステッ
プと、(d)前記イベント・リスト・アンカの値を前記
追加されたスレッドの物理的位置を指すポインタに等し
く設定し、これにより前記イベント・リスト・アンカが
使用可能であることを示すステップと、を含む方法。 (2)前記イベント・リスト・アンカの値を、該イベン
ト・リスト・アンカが現在使用不可能であることを示す
ように設定する前記ステップ(b)が、(e)前記イベ
ント・リスト・アンカの現在値を取り出すステップと、
(f)前記現在値が、前記イベント・リスト・アンカが
使用可能であることを示す場合は、該イベント・リスト
・アンカが使用不可能であることを示すように該イベン
ト・リスト・アンカの値をアトミックに設定するステッ
プと、を含む、(1)に記載の方法。 (3)前記アトミックに設定するステップ(f)が、前
記イベント・リスト・アンカの値をヌル以外の値、また
は有効なスレッド・ポインタに、アトミックに設定する
ステップを含む、(2)に記載の方法。 (4)イベントの発生を待っているスレッドのリストを
維持するための装置であって、(a)あるスレッドが、
イベントの発生に基づいてある種の活動の実行を希望し
ていることを検出する手段と、(b)イベントの発生を
待つスレッドのリストを追跡するためのイベント・リス
ト・アンカの値を、該イベント・リスト・アンカが現在
不可能であることを示すように設定する手段と、(c)
前記イベント・リスト・アンカが使用不可能である間
に、前記検出されたスレッドを前記イベントの発生を待
つスレッドのリストに追加する手段と、(d)前記イベ
ント・リスト・アンカの値を前記追加されたスレッドの
物理的位置を指すポインタに等しく設定し、これにより
前記イベント・リスト・アンカが使用可能であることを
示す手段と、を含む装置。 (5)前記イベント・リスト・アンカの値を、該イベン
ト・リスト・アンカが現在使用不可能であることを示す
ように設定する前記手段(b)が、(e)前記イベント
・リスト・アンカの現在値を取り出す手段と、(f)前
記現在値が、前記イベント・リスト・アンカが使用可能
であることを示す場合は、該イベント・リスト・アンカ
が使用不可能であることを示すように該イベント・リス
ト・アンカの値をアトミックに設定する手段と、を含
む、(4)に記載の装置。 (6)前記アトミックに設定する手段(f)が、前記イ
ベント・リスト・アンカの値をヌル以外の値、または有
効なスレッド・ポインタに、アトミックに設定する手段
を含む、(5)に記載の装置。 (7)イベントの発生を待っているスレッドのリストを
維持するためのコンピュータが読み取り可能なプログラ
ム・コード手段を自身の中に包含させるコンピュータが
使用可能な媒体であって、前記コンピュータが読み取り
可能なプログラム・コード手段が、(a)あるスレッド
が、イベントの発生に基づいてある種の活動の実行を希
望していることを検出する手段と、(b)イベントの発
生を待つスレッドのリストを追跡するためのイベント・
リスト・アンカの値を、該イベント・リスト・アンカが
現在不可能であることを示すように設定する手段と、
(c)前記イベント・リスト・アンカが使用不可能であ
る間に、前記検出されたスレッドを前記イベントの発生
を待つスレッドのリストの追加する手段と、(d)前記
イベント・リスト・アンカの値を前記追加されたスレッ
ドの物理的位置を指すポインタに等しく設定し、これに
より前記イベント・リスト・アンカが使用可能であるこ
とを示す手段と、を含む、上記媒体。 (8)前記イベント・リスト・アンカの値を、該イベン
ト・リスト・アンカが現在使用不可能であることを示す
ように設定する前記コンピュータが読み取り可能なプロ
グラム・コード手段が、(e)前記イベント・リスト・
アンカの現在値を取り出す手段と、(f)前記現在値
が、前記イベント・リスト・アンカが使用可能であるこ
とを示す場合は、該イベント・リスト・アンカが使用不
可能であることを示すように該イベント・リスト・アン
カの値をアトミックに設定する手段と、を含む、(7)
に記載の媒体。 (9)前記アトミックに設定するコンピュータが読み取
り可能なプログラム・コード手段が、前記イベント・リ
スト・アンカの値をヌル以外の値、または有効なスレッ
ド・ポインタにアトミックに設定する手段を含む、
(8)に記載の媒体。
【図面の簡単な説明】
【図1】本発明が実行される典型的なマルチプロセッサ
・コンピュータ・システムの概略図である。
【図2】本発明の教示に従って、図1のデータ処理シス
テムに含めることができる選択された構成部品を示す高
レベルのブロック図である。
【図3】図1のオペレーティング・システムの本発明の
教示に従ったイベント・リスト・アンカを示すブロック
図である。
【図4】スレッドがスリープ状態にあるときに、図3の
イベント・リスト・アンカの本発明の教示に従った使用
を示す流れ図である。
【図5】図4で以前にスリープ状態にされたスレッドを
覚醒させるための、本発明の教示に従ったイベント・リ
スト・アンカの使用を示す流れ図である。
【図6】図4で以前にスリープ状態にされたスレッドを
本発明の教示に従って優先順位に基づいて覚醒させる、
本発明の代替実施例を示す流れ図である。
【図7】図5、図6、及び図4それぞれの覚醒方法、及
びスリープ方法によって呼び出される、本発明の教示に
従ったプロシージャ、Set_Event_Locke
dを示す流れ図である。
【符号の説明】
5 システム・バス 20 データ処理システム 22 プロセッサ 28 キーボード・ケーブル 30 ディスプレイ・スクリーン 40 フロッピ・ディスク・ドライブ 72 ハード・ディスク・ドライブ 74 フロッピ・ディスク・ドライブ(ディスケッ
ト) 78 CD−ROM 82 キーボード 84 マウス(ポインティング・デバイス) 92 モデム 96 ディスプレイ 100 プリンタ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】イベントの発生を待っているスレッドのリ
    ストを維持する方法であって、(a)あるスレッドが、
    イベントの発生に基づいてある種の活動の実行を希望し
    ていることを検出するステップと、(b)イベントの発
    生を待つスレッドのリストを追跡するためのイベント・
    リスト・アンカの値を、該イベント・リスト・アンカが
    現在使用不可能であることを示すように設定するステッ
    プと、(c)前記イベント・リスト・アンカが使用不可
    能である間に、前記検出されたスレッドを前記イベント
    の発生を待つスレッドのリストに追加するステップと、
    (d)前記イベント・リスト・アンカの値を前記追加さ
    れたスレッドの物理的位置を指すポインタに等しく設定
    し、これにより前記イベント・リスト・アンカが使用可
    能であることを示すステップと、を含む方法。
  2. 【請求項2】前記イベント・リスト・アンカの値を、該
    イベント・リスト・アンカが現在使用不可能であること
    を示すように設定する前記ステップ(b)が、(e)前
    記イベント・リスト・アンカの現在値を取り出すステッ
    プと、(f)前記現在値が、前記イベント・リスト・ア
    ンカが使用可能であることを示す場合は、該イベント・
    リスト・アンカが使用不可能であることを示すように該
    イベント・リスト・アンカの値をアトミックに設定する
    ステップと、を含む、請求項1に記載の方法。
  3. 【請求項3】前記アトミックに設定するステップ(f)
    が、前記イベント・リスト・アンカの値をヌル以外の
    値、または有効なスレッド・ポインタに、アトミックに
    設定するステップを含む、請求項2に記載の方法。
  4. 【請求項4】イベントの発生を待っているスレッドのリ
    ストを維持するための装置であって、(a)あるスレッ
    ドが、イベントの発生に基づいてある種の活動の実行を
    希望していることを検出する手段と、(b)イベントの
    発生を待つスレッドのリストを追跡するためのイベント
    ・リスト・アンカの値を、該イベント・リスト・アンカ
    が現在不可能であることを示すように設定する手段と、
    (c)前記イベント・リスト・アンカが使用不可能であ
    る間に、前記検出されたスレッドを前記イベントの発生
    を待つスレッドのリストに追加する手段と、(d)前記
    イベント・リスト・アンカの値を前記追加されたスレッ
    ドの物理的位置を指すポインタに等しく設定し、これに
    より前記イベント・リスト・アンカが使用可能であるこ
    とを示す手段と、を含む装置。
  5. 【請求項5】前記イベント・リスト・アンカの値を、該
    イベント・リスト・アンカが現在使用不可能であること
    を示すように設定する前記手段(b)が、(e)前記イ
    ベント・リスト・アンカの現在値を取り出す手段と、
    (f)前記現在値が、前記イベント・リスト・アンカが
    使用可能であることを示す場合は、該イベント・リスト
    ・アンカが使用不可能であることを示すように該イベン
    ト・リスト・アンカの値をアトミックに設定する手段
    と、を含む、請求項4に記載の装置。
  6. 【請求項6】前記アトミックに設定する手段(f)が、
    前記イベント・リスト・アンカの値をヌル以外の値、ま
    たは有効なスレッド・ポインタに、アトミックに設定す
    る手段を含む、請求項5に記載の装置。
  7. 【請求項7】イベントの発生を待っているスレッドのリ
    ストを維持するためのコンピュータが読み取り可能なプ
    ログラム・コード手段を自身の中に包含させるコンピュ
    ータが使用可能な媒体であって、 前記コンピュータが読み取り可能なプログラム・コード
    手段が、 (a)あるスレッドが、イベントの発生に基づいてある
    種の活動の実行を希望していることを検出する手段と、 (b)イベントの発生を待つスレッドのリストを追跡す
    るためのイベント・リスト・アンカの値を、該イベント
    ・リスト・アンカが現在不可能であることを示すように
    設定する手段と、 (c)前記イベント・リスト・アンカが使用不可能であ
    る間に、前記検出されたスレッドを前記イベントの発生
    を待つスレッドのリストの追加する手段と、 (d)前記イベント・リスト・アンカの値を前記追加さ
    れたスレッドの物理的位置を指すポインタに等しく設定
    し、これにより前記イベント・リスト・アンカが使用可
    能であることを示す手段と、を含む、上記媒体。
  8. 【請求項8】前記イベント・リスト・アンカの値を、該
    イベント・リスト・アンカが現在使用不可能であること
    を示すように設定する前記コンピュータが読み取り可能
    なプログラム・コード手段が、(e)前記イベント・リ
    スト・アンカの現在値を取り出す手段と、(f)前記現
    在値が、前記イベント・リスト・アンカが使用可能であ
    ることを示す場合は、該イベント・リスト・アンカが使
    用不可能であることを示すように該イベント・リスト・
    アンカの値をアトミックに設定する手段と、を含む、請
    求項7に記載の媒体。
  9. 【請求項9】前記アトミックに設定するコンピュータが
    読み取り可能なプログラム・コード手段が、前記イベン
    ト・リスト・アンカの値をヌル以外の値、または有効な
    スレッド・ポインタにアトミックに設定する手段を含
    む、請求項8に記載の媒体。
JP31345197A 1996-11-22 1997-11-14 スレッドのリストを維持する方法及び装置、記録媒体 Expired - Fee Related JP3229257B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/755274 1996-11-22
US08/755,274 US5961583A (en) 1996-11-22 1996-11-22 Method and system for using the event wait list anchor as a lock for events

Publications (2)

Publication Number Publication Date
JPH10254714A true JPH10254714A (ja) 1998-09-25
JP3229257B2 JP3229257B2 (ja) 2001-11-19

Family

ID=25038456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31345197A Expired - Fee Related JP3229257B2 (ja) 1996-11-22 1997-11-14 スレッドのリストを維持する方法及び装置、記録媒体

Country Status (7)

Country Link
US (1) US5961583A (ja)
EP (1) EP0852352A3 (ja)
JP (1) JP3229257B2 (ja)
KR (1) KR100287094B1 (ja)
CN (1) CN1095566C (ja)
IL (1) IL122036A (ja)
MY (1) MY120431A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10269091A (ja) * 1997-03-24 1998-10-09 Canon Inc 情報処理装置及びその方法
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US7127722B2 (en) * 2001-06-18 2006-10-24 Intel Corporation Method and apparatus for avoiding multiple processing of the same IPMI system event
US7844973B1 (en) * 2004-12-09 2010-11-30 Oracle America, Inc. Methods and apparatus providing non-blocking access to a resource
US20070039000A1 (en) * 2005-08-10 2007-02-15 Hewlett-Packard Development Company, L.P. Lock order determination method and system
US20070136725A1 (en) * 2005-12-12 2007-06-14 International Business Machines Corporation System and method for optimized preemption and reservation of software locks
KR102498917B1 (ko) 2021-10-08 2023-02-13 이종협 난간대 설치용 화분

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253418A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US5010482A (en) * 1987-07-02 1991-04-23 Unisys Corp. Multi-event mechanism for queuing happened events for a large data processing system
JP2650965B2 (ja) * 1988-05-27 1997-09-10 株式会社日立製作所 計算機システムおよびそのタスクスケジュール方法
JPH02226442A (ja) * 1989-02-28 1990-09-10 Toshiba Corp データベースシステムのデッドロック防止方式
JPH0318935A (ja) * 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
US5630128A (en) * 1991-08-09 1997-05-13 International Business Machines Corporation Controlled scheduling of program threads in a multitasking operating system
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
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions

Also Published As

Publication number Publication date
IL122036A (en) 2000-10-31
CN1095566C (zh) 2002-12-04
KR100287094B1 (ko) 2001-04-16
US5961583A (en) 1999-10-05
JP3229257B2 (ja) 2001-11-19
MY120431A (en) 2005-10-31
CN1183593A (zh) 1998-06-03
EP0852352A2 (en) 1998-07-08
IL122036A0 (en) 1998-03-10
EP0852352A3 (en) 2003-05-28

Similar Documents

Publication Publication Date Title
US6380957B1 (en) Method of controlling view of large expansion tree
EP0767419B1 (en) Method and system in a data processing system windowing environment for displaying previously obscured information
Thacker et al. Alto: A personal computer
US6105100A (en) Method and apparatus for detecting and initializing the addition of a new client machine in a network
JP3247625B2 (ja) 動画表示オブジェクトを表示するための方法およびシステム
TW497026B (en) Power management method and device for display devices
US5727171A (en) Method and apparatus for allowing multi-speed synchronous communications between a processor and both slow and fast computing devices
US7120746B2 (en) Technique for data transfer
US6078977A (en) Hierarchical bus structure access system
US6901455B2 (en) Peripheral sharing device with unified clipboard memory
US5873116A (en) Method and apparatus for controlling access to data structures without the use of locks
CN100356328C (zh) 用于处理数据处理系统中的线程的方法和装置
JPS603652B2 (ja) デ−タ処理装置
JP3229257B2 (ja) スレッドのリストを維持する方法及び装置、記録媒体
US5732283A (en) System and method of providing universal support for multiple pointing devices
US7096299B2 (en) Method and apparatus for transferring system context information between mobile computer and base station
JPH1153116A (ja) タッチパネル付き情報処理装置及びその制御方法
US6598049B1 (en) Data structure identifying method and recording medium
US5983354A (en) Method and apparatus for indication when a bus master is communicating with memory
US6202131B1 (en) Method and apparatus for executing variable delay system bus operations of differing type or character without dead lock using shared buffers
US6128705A (en) Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations
US6178485B1 (en) Method and apparatus for executing singly-initiated, singly-sourced variable delay system bus operations of differing character
US7490133B1 (en) Context-sensitive content level semantic information propagation system and method
US7173630B2 (en) Information processing apparatus and method, and information processing program
US6314495B1 (en) Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees