JPH10143379A - 複数オペレーティング・システムによるスレッド同期化方法及びシステム - Google Patents
複数オペレーティング・システムによるスレッド同期化方法及びシステムInfo
- Publication number
- JPH10143379A JPH10143379A JP9292285A JP29228597A JPH10143379A JP H10143379 A JPH10143379 A JP H10143379A JP 9292285 A JP9292285 A JP 9292285A JP 29228597 A JP29228597 A JP 29228597A JP H10143379 A JPH10143379 A JP H10143379A
- Authority
- JP
- Japan
- Prior art keywords
- semaphore
- operating system
- general
- program product
- synchronization
- 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
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
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 複数オペレーティング・システムからのセマ
フォア動作を並行してサポートする汎用セマフォアを提
供すること。 【解決手段】 オペレーティング・システム・セマフォ
ア呼出しは、セマフォアの実現を可能にする汎用セマフ
ォアAPIに変換される。汎用APIは、現行セマフォ
ア値に応じてセマフォア値への変更を可能にし、スレッ
ドの待ち行列化を可能にしてセマフォア動作の待機を可
能にする。セマフォア動作により、資源アクセスの同期
化と、プロセスまたはスレッド実行の同期化が実現され
る。汎用セマフォアにより、特定のオペレーティング・
システム・パーソナリティ用のアプリケーションは、ア
プリケーション・セマフォア論理を変更せずにマイクロ
カーネル・システム上で実行できるようになる。
フォア動作を並行してサポートする汎用セマフォアを提
供すること。 【解決手段】 オペレーティング・システム・セマフォ
ア呼出しは、セマフォアの実現を可能にする汎用セマフ
ォアAPIに変換される。汎用APIは、現行セマフォ
ア値に応じてセマフォア値への変更を可能にし、スレッ
ドの待ち行列化を可能にしてセマフォア動作の待機を可
能にする。セマフォア動作により、資源アクセスの同期
化と、プロセスまたはスレッド実行の同期化が実現され
る。汎用セマフォアにより、特定のオペレーティング・
システム・パーソナリティ用のアプリケーションは、ア
プリケーション・セマフォア論理を変更せずにマイクロ
カーネル・システム上で実行できるようになる。
Description
【0001】
【発明の属する技術分野】本発明は、ディジタル・コン
ピュータの動作を制御するためのオペレーティング・シ
ステムに関する。より具体的には、本発明は、オペレー
ティング・システムのパーソナリティ及びアプリケーシ
ョンからカーネル機能を分離するマイクロカーネル・オ
ペレーティング・システムに関する。さらにより具体的
には、本発明は、複数オペレーティング・システム・セ
マフォア・インタフェースをエミュレートすることによ
り、並行セマフォア管理を可能にするような汎用マイク
ロカーネル・セマフォアを提供する。
ピュータの動作を制御するためのオペレーティング・シ
ステムに関する。より具体的には、本発明は、オペレー
ティング・システムのパーソナリティ及びアプリケーシ
ョンからカーネル機能を分離するマイクロカーネル・オ
ペレーティング・システムに関する。さらにより具体的
には、本発明は、複数オペレーティング・システム・セ
マフォア・インタフェースをエミュレートすることによ
り、並行セマフォア管理を可能にするような汎用マイク
ロカーネル・セマフォアを提供する。
【0002】
【従来の技術】既存のコンピュータ・オペレーティング
・システムは、システム資源へのアクセスを制御し、複
数プロセスの活動を同期化するために、セマフォアと呼
ばれることが多い同期プリミティブを提供する。各オペ
レーティング・システムの同期プリミティブは、同様の
機能性を実現する場合でも、そのオペレーティング・シ
ステム固有のものである。IBMマイクロカーネルなど
のマイクロカーネル・オペレーティング・システムは、
複数オペレーティング・システム・パーソナリティをサ
ポートするための基本的なシステム機能を提供する。こ
のため、様々なオペレーティング・システム用に作成さ
れたアプリケーション・プログラムは、それぞれがその
ホーム・オペレーティング・システムのインタフェース
を呼び出して、互いに並行して動作することができる。
したがって、IBMマイクロカーネルは、他のオペレー
ティング・システムの同期プリミティブをサポートする
同期プリミティブを提供しなければならない。このよう
な汎用性がない場合、資源同期は、複数オペレーティン
グ・システム・パーソナリティにわたって妥当なサポー
トを提供できない可能性のある、1つの特定のオペレー
ティング・システム内の同期に限定されることになる。
・システムは、システム資源へのアクセスを制御し、複
数プロセスの活動を同期化するために、セマフォアと呼
ばれることが多い同期プリミティブを提供する。各オペ
レーティング・システムの同期プリミティブは、同様の
機能性を実現する場合でも、そのオペレーティング・シ
ステム固有のものである。IBMマイクロカーネルなど
のマイクロカーネル・オペレーティング・システムは、
複数オペレーティング・システム・パーソナリティをサ
ポートするための基本的なシステム機能を提供する。こ
のため、様々なオペレーティング・システム用に作成さ
れたアプリケーション・プログラムは、それぞれがその
ホーム・オペレーティング・システムのインタフェース
を呼び出して、互いに並行して動作することができる。
したがって、IBMマイクロカーネルは、他のオペレー
ティング・システムの同期プリミティブをサポートする
同期プリミティブを提供しなければならない。このよう
な汎用性がない場合、資源同期は、複数オペレーティン
グ・システム・パーソナリティにわたって妥当なサポー
トを提供できない可能性のある、1つの特定のオペレー
ティング・システム内の同期に限定されることになる。
【0003】第2の問題は、アプリケーション開発者が
特定のオペレーティング・システムからの同期化のため
のプログラミング・スタイルの使い方を身につけていた
ことである。オペレーティング・システム固有の同期イ
ンタフェースの保存により、このようなプログラマは、
新しいマイクロカーネル・ベースの同期メカニズムを学
ばずに開発を続行することができる。
特定のオペレーティング・システムからの同期化のため
のプログラミング・スタイルの使い方を身につけていた
ことである。オペレーティング・システム固有の同期イ
ンタフェースの保存により、このようなプログラマは、
新しいマイクロカーネル・ベースの同期メカニズムを学
ばずに開発を続行することができる。
【0004】オペレーティング・システムは、通常、同
期プリミティブをロックと待機という2つの領域に分か
れている。
期プリミティブをロックと待機という2つの領域に分か
れている。
【0005】ロックは、複数のスレッドによる並列また
は並行アクセスから共用資源を保護するために使用す
る。ロックされる資源は、通常、データ構造であるが、
ファイル、デバイスなどを含む、任意のものにすること
ができる。いつも必ずではないが通常、資源は、短い期
間、保持されるので、資源へのアクセスを必要とするス
レッドは通常、保護ロックを獲得するために待機する必
要がない。ロック・プリミティブは、単純ミューテック
ス(simple mutex)(排他モードでのみ獲得できるも
の)から、読取り専用のアクセスまたは読み書き用のア
クセスなど、異なるタイプのアクセス間を区別するもの
まで及ぶ。
は並行アクセスから共用資源を保護するために使用す
る。ロックされる資源は、通常、データ構造であるが、
ファイル、デバイスなどを含む、任意のものにすること
ができる。いつも必ずではないが通常、資源は、短い期
間、保持されるので、資源へのアクセスを必要とするス
レッドは通常、保護ロックを獲得するために待機する必
要がない。ロック・プリミティブは、単純ミューテック
ス(simple mutex)(排他モードでのみ獲得できるも
の)から、読取り専用のアクセスまたは読み書き用のア
クセスなど、異なるタイプのアクセス間を区別するもの
まで及ぶ。
【0006】待機プリミティブは、何らかの事象が発生
するまで実行を中断するために使用する。通常、待機の
期間は長いかまたは無制限である。また、待機は、単一
プロセス内の複数スレッドによって実行される動作を同
期化するために使用することが多い。たとえば、1つの
スレッドは、関連スレッドが実行する動作が完了するま
で待機しなければならない可能性がある。
するまで実行を中断するために使用する。通常、待機の
期間は長いかまたは無制限である。また、待機は、単一
プロセス内の複数スレッドによって実行される動作を同
期化するために使用することが多い。たとえば、1つの
スレッドは、関連スレッドが実行する動作が完了するま
で待機しなければならない可能性がある。
【0007】最近のオペレーティング・システムは、条
件変数の1つとしてセマフォアを実現する場合が多い。
条件変数は、事象が発生するのを待つために使用するも
のである。また、条件変数は、ロックによって保護され
た重大セクションに他のスレッドが入れるようにしなが
ら事象を待つために、ロックとともに機能する。この組
合せはモニタを実施するために使用し、経験により、セ
マフォアより条件変数を使用する方がプログラミングの
間違いが少なくなることが分かっている。条件変数は、
事象または条件の有無をテストするwhileループ内にコ
ーディングしなければならない。その結果、待機スレッ
ドは、続行する前にその条件が真であることを確認する
ものになる。セマフォアを使用すると、待機側が再スケ
ジューリングされたときにその条件が真になることを確
認しなければならないのは通知側である。この結果、難
解なプログラミング・エラーに至る可能性がある。
件変数の1つとしてセマフォアを実現する場合が多い。
条件変数は、事象が発生するのを待つために使用するも
のである。また、条件変数は、ロックによって保護され
た重大セクションに他のスレッドが入れるようにしなが
ら事象を待つために、ロックとともに機能する。この組
合せはモニタを実施するために使用し、経験により、セ
マフォアより条件変数を使用する方がプログラミングの
間違いが少なくなることが分かっている。条件変数は、
事象または条件の有無をテストするwhileループ内にコ
ーディングしなければならない。その結果、待機スレッ
ドは、続行する前にその条件が真であることを確認する
ものになる。セマフォアを使用すると、待機側が再スケ
ジューリングされたときにその条件が真になることを確
認しなければならないのは通知側である。この結果、難
解なプログラミング・エラーに至る可能性がある。
【0008】従来のセマフォアはDijkstraによって提案
され、負以外の値を構成する(TheLogical Design of O
perating Systems、L. Bic及びA. C. Shaw、1988
年、同書は"Cooperating Sequential Processes"(E.
W. Dijkstra、Mathematics Depts.、Technological Uni
versity、アイントホーヴェン、オランダ)を参照す
る)。Dijkstraセマフォアには、PとVの2通りの動作
しかない。P動作では、セマフォアが正になるまで待機
が発生し、その値を1ずつ減分する。V動作では、セマ
フォアの値を1ずつ増分する。
され、負以外の値を構成する(TheLogical Design of O
perating Systems、L. Bic及びA. C. Shaw、1988
年、同書は"Cooperating Sequential Processes"(E.
W. Dijkstra、Mathematics Depts.、Technological Uni
versity、アイントホーヴェン、オランダ)を参照す
る)。Dijkstraセマフォアには、PとVの2通りの動作
しかない。P動作では、セマフォアが正になるまで待機
が発生し、その値を1ずつ減分する。V動作では、セマ
フォアの値を1ずつ増分する。
【0009】他の著者は、セマフォア上で許される動作
の数及び特徴を変更した。また、オペレーティング・シ
ステムも、セマフォア上で許される動作の特徴及びタイ
プを変更した。現在、セマフォア上で実行可能な動作の
タイプは驚くほど多様である。プログラミングの書籍で
は、項または章全体を使用して、セマフォアが特定のオ
ペレーティング・システム上でどのように機能するかに
関する難解さを説明する場合が多い。
の数及び特徴を変更した。また、オペレーティング・シ
ステムも、セマフォア上で許される動作の特徴及びタイ
プを変更した。現在、セマフォア上で実行可能な動作の
タイプは驚くほど多様である。プログラミングの書籍で
は、項または章全体を使用して、セマフォアが特定のオ
ペレーティング・システム上でどのように機能するかに
関する難解さを説明する場合が多い。
【0010】マイクロカーネル・ベースのオペレーティ
ング・システム内の同期メカニズムの使い方について
は、Moeller他に付与された"Object-Oriented Multitas
king System"という名称の米国特許第5519867号
と、Orton他に付与された"Wrapper System for Interfa
cing to an Object-Oriented Application to a Proced
ural Application"という名称の米国特許第54758
45号に記載されている。これらの特許には、カーネギ
ー・メロン大学によるマッハ・マイクロカーネルを使用
するタリジェント・オペレーティング・システムが記載
されている。また、同期の要件と、オペレーティング・
システム内に同期プリミティブまたはセマフォアを設け
る必要性が記載されている。これらの特許では、単一オ
ペレーティング・システム用の標準セマフォアの使い方
を説明しているが、単一マイクロカーネル・ベースのセ
マフォア・システムによって複数オペレーティング・シ
ステム・セマフォア・アーキテクチャをサポートする能
力については一切教示していない。
ング・システム内の同期メカニズムの使い方について
は、Moeller他に付与された"Object-Oriented Multitas
king System"という名称の米国特許第5519867号
と、Orton他に付与された"Wrapper System for Interfa
cing to an Object-Oriented Application to a Proced
ural Application"という名称の米国特許第54758
45号に記載されている。これらの特許には、カーネギ
ー・メロン大学によるマッハ・マイクロカーネルを使用
するタリジェント・オペレーティング・システムが記載
されている。また、同期の要件と、オペレーティング・
システム内に同期プリミティブまたはセマフォアを設け
る必要性が記載されている。これらの特許では、単一オ
ペレーティング・システム用の標準セマフォアの使い方
を説明しているが、単一マイクロカーネル・ベースのセ
マフォア・システムによって複数オペレーティング・シ
ステム・セマフォア・アーキテクチャをサポートする能
力については一切教示していない。
【0011】低レベル同期プリミティブについては、"M
icrokernel Synchronization Primitives"というタイト
ルのIBMテクニカル・ディスクロージャ・ブリテン
(Volume 38、No. 5、1995年5月、283〜291
ページ)に記載されている。このようなプリミティブ
は、ここに開示するようなセマフォアの実現をサポート
するが、既存のオペレーティング・システム構文にマッ
ピングするアプリケーション・レベル・インタフェース
を一切提供しない。
icrokernel Synchronization Primitives"というタイト
ルのIBMテクニカル・ディスクロージャ・ブリテン
(Volume 38、No. 5、1995年5月、283〜291
ページ)に記載されている。このようなプリミティブ
は、ここに開示するようなセマフォアの実現をサポート
するが、既存のオペレーティング・システム構文にマッ
ピングするアプリケーション・レベル・インタフェース
を一切提供しない。
【0012】"Microkernel Semaphores"というタイトル
のIBMテクニカル・ディスクロージャ・ブリテン(Vo
lume 38、No. 7、1995年7月、111〜117ペー
ジ)には、IBMマイクロカーネル内の基本的なセマフ
ォア・サポートが記載されている。ただし、このような
セマフォア動作は、他のオペレーティング・システムが
提供するセマフォア動作のエミュレーションを可能にし
ないような単一オペレーティング・システム・ベースの
実施態様を提供する。
のIBMテクニカル・ディスクロージャ・ブリテン(Vo
lume 38、No. 7、1995年7月、111〜117ペー
ジ)には、IBMマイクロカーネル内の基本的なセマフ
ォア・サポートが記載されている。ただし、このような
セマフォア動作は、他のオペレーティング・システムが
提供するセマフォア動作のエミュレーションを可能にし
ないような単一オペレーティング・システム・ベースの
実施態様を提供する。
【0013】したがって、複数オペレーティング・シス
テム・パーソナリティにとって透過な効率のよいやり方
でこのようなパーソナリティからのセマフォアをサポー
トする汎用セマフォア動作を提供するという技術的問題
が残る。
テム・パーソナリティにとって透過な効率のよいやり方
でこのようなパーソナリティからのセマフォアをサポー
トする汎用セマフォア動作を提供するという技術的問題
が残る。
【0014】
【発明が解決しようとする課題】したがって、本発明の
一目的は、複数の並行オペレーティング・システムをエ
ミュレートしてサポートする、単一組のセマフォア動作
を提供することにある。
一目的は、複数の並行オペレーティング・システムをエ
ミュレートしてサポートする、単一組のセマフォア動作
を提供することにある。
【0015】本発明の他の目的は、処理するために相当
なオーバヘッドを必要としない、効率のよいセマフォア
動作を提供することにある。
なオーバヘッドを必要としない、効率のよいセマフォア
動作を提供することにある。
【0016】
【課題を解決するための手段】本発明は、複数オペレー
ティング・システム・パーソナリティからのセマフォア
APIをエミュレートしてそれに応答することができる
汎用セマフォア動作を提供することに関する。本発明の
セマフォア動作により、複数オペレーティング・システ
ム・パーソナリティからの並行資源制御及びプロセス同
期化が可能になる。このため、様々なオペレーティング
・システム・パーソナリティを使用するアプリケーショ
ンによって単一資源を使用することができる。
ティング・システム・パーソナリティからのセマフォア
APIをエミュレートしてそれに応答することができる
汎用セマフォア動作を提供することに関する。本発明の
セマフォア動作により、複数オペレーティング・システ
ム・パーソナリティからの並行資源制御及びプロセス同
期化が可能になる。このため、様々なオペレーティング
・システム・パーソナリティを使用するアプリケーショ
ンによって単一資源を使用することができる。
【0017】本発明の上記その他の目的、特徴、利点
は、添付図面に示すように、以下に示す本発明の好まし
い実施例の詳細な説明から明らかになるだろう。なお、
添付図面では、同様の参照番号は本発明の同様の部分を
表している。
は、添付図面に示すように、以下に示す本発明の好まし
い実施例の詳細な説明から明らかになるだろう。なお、
添付図面では、同様の参照番号は本発明の同様の部分を
表している。
【0018】
【発明の実施の形態】本発明を説明するため、セマフォ
アは、符号付き整数値と、セマフォア上で待機中の1組
のスレッドとを有するものとして定義する。この値は、
絶対的または相対的に変更することができる。すなわ
ち、所与の符号付き整数をセマフォアに追加するための
動作ならびにその値を所与の整数に設定するための動作
が存在する。本発明によるセマフォアは、以下の不変の
関係を維持しなければならない。すなわち、セマフォア
上で待機中のスレッドの数は、セマフォア値が負以外の
ときに0になり、セマフォア値が負のときにセマフォア
値の絶対値と等しくなる。
アは、符号付き整数値と、セマフォア上で待機中の1組
のスレッドとを有するものとして定義する。この値は、
絶対的または相対的に変更することができる。すなわ
ち、所与の符号付き整数をセマフォアに追加するための
動作ならびにその値を所与の整数に設定するための動作
が存在する。本発明によるセマフォアは、以下の不変の
関係を維持しなければならない。すなわち、セマフォア
上で待機中のスレッドの数は、セマフォア値が負以外の
ときに0になり、セマフォア値が負のときにセマフォア
値の絶対値と等しくなる。
【0019】上記の不変の関係は、以下の意味を有す
る。セマフォアの値を減分することをスレッドが要求し
た場合、結果値が負であれば、スレッドを待機セットに
追加しなければならない。「犠牲者」はその動作を要求
したスレッドであり、そのスレッドのIDはそのセマフ
ォアの待機スレッドのセットに追加しなければならな
い。セマフォアの値を1より大きい数だけ減分するため
の動作は許されない。というのは、そのためには待機待
ち行列に2つまたはそれ以上のスレッドを入れることが
必要になるはずであり、呼出し側のIDだけが分かって
いるからである。待機スレッドがタイムアウトになる
と、カウントは増分される。
る。セマフォアの値を減分することをスレッドが要求し
た場合、結果値が負であれば、スレッドを待機セットに
追加しなければならない。「犠牲者」はその動作を要求
したスレッドであり、そのスレッドのIDはそのセマフ
ォアの待機スレッドのセットに追加しなければならな
い。セマフォアの値を1より大きい数だけ減分するため
の動作は許されない。というのは、そのためには待機待
ち行列に2つまたはそれ以上のスレッドを入れることが
必要になるはずであり、呼出し側のIDだけが分かって
いるからである。待機スレッドがタイムアウトになる
と、カウントは増分される。
【0020】本発明は、複数オペレーティング・システ
ム・パーソナリティをサポートするマイクロカーネル・
システムにセマフォア動作を提供することに関する。マ
イクロカーネル・システムについては、図1を参照して
説明する。マイクロカーネル・システムは全体を102
で示す。マイクロカーネル・サービスは、ハードウェア
・プラットフォーム110の上に設けられる。マイクロ
カーネル・サービスはマシン非依存コード104とマシ
ン依存コード106とを含む。マシン依存コードを単一
層106に分離すると、コードに最小限の変更を加える
だけで、マイクロカーネル・サービスを複数のハードウ
ェア・プラットフォーム110に移植することできる。
マイクロカーネル・サービス104はプロセス間通信を
サポートし、メモリ管理、ブート管理、オペレーティン
グ・システム・パーソナリティの呼出しなどの諸機能を
提供する。本発明のセマフォア動作は、マイクロカーネ
ル・サービスのマシン非依存コードで実施される。
ム・パーソナリティをサポートするマイクロカーネル・
システムにセマフォア動作を提供することに関する。マ
イクロカーネル・システムについては、図1を参照して
説明する。マイクロカーネル・システムは全体を102
で示す。マイクロカーネル・サービスは、ハードウェア
・プラットフォーム110の上に設けられる。マイクロ
カーネル・サービスはマシン非依存コード104とマシ
ン依存コード106とを含む。マシン依存コードを単一
層106に分離すると、コードに最小限の変更を加える
だけで、マイクロカーネル・サービスを複数のハードウ
ェア・プラットフォーム110に移植することできる。
マイクロカーネル・サービス104はプロセス間通信を
サポートし、メモリ管理、ブート管理、オペレーティン
グ・システム・パーソナリティの呼出しなどの諸機能を
提供する。本発明のセマフォア動作は、マイクロカーネ
ル・サービスのマシン非依存コードで実施される。
【0021】マイクロカーネル・サービスは112及び
114に示すように複数オペレーティング・システム・
パーソナリティをサポートする。オペレーティング・シ
ステム・パーソナリティとしては、IBMのOS/2オ
ペレーティング・システム、IBMのAIXオペレーテ
ィング・システム、アップルのマッキントッシュ・オペ
レーティング・システム、マイクロカーネル・サービス
とともに動作するように変更されたその他のオペレーテ
ィング・システムの変形を含むことができる。さらに、
マイクロカーネルは、ファイル管理、セキュリティ、認
証など、オペレーティング・システム・パーソナリティ
中立サービス116をサポートする。
114に示すように複数オペレーティング・システム・
パーソナリティをサポートする。オペレーティング・シ
ステム・パーソナリティとしては、IBMのOS/2オ
ペレーティング・システム、IBMのAIXオペレーテ
ィング・システム、アップルのマッキントッシュ・オペ
レーティング・システム、マイクロカーネル・サービス
とともに動作するように変更されたその他のオペレーテ
ィング・システムの変形を含むことができる。さらに、
マイクロカーネルは、ファイル管理、セキュリティ、認
証など、オペレーティング・システム・パーソナリティ
中立サービス116をサポートする。
【0022】複数オペレーティング・システム・パーソ
ナリティの実現により、アプリケーション・プログラム
120は様々なオペレーティング・システム・パーソナ
リティ用の固有のオペレーティング・システム・インタ
フェースで動作することができる。このため、様々なオ
ペレーティング・システム用に作成されたプログラムを
単一コンピュータ装置上で並行動作させることができ
る。たとえば、アプリケーション122は、OS/2パ
ーソナリティ112によりIBMのOS/2オペレーテ
ィング・システム・インタフェースを使用することがで
きる。第2のプログラム126は、マッキントッシュ・
パーソナリティ114によりマッキントッシュ・オペレ
ーティング・システム・インタフェースを使用すること
ができる。このような2通りのプロセスがディスク・ユ
ニットまたは通信処理装置などの単一資源へのアクセス
を必要とする場合、セマフォア動作が必要になる可能性
がある。
ナリティの実現により、アプリケーション・プログラム
120は様々なオペレーティング・システム・パーソナ
リティ用の固有のオペレーティング・システム・インタ
フェースで動作することができる。このため、様々なオ
ペレーティング・システム用に作成されたプログラムを
単一コンピュータ装置上で並行動作させることができ
る。たとえば、アプリケーション122は、OS/2パ
ーソナリティ112によりIBMのOS/2オペレーテ
ィング・システム・インタフェースを使用することがで
きる。第2のプログラム126は、マッキントッシュ・
パーソナリティ114によりマッキントッシュ・オペレ
ーティング・システム・インタフェースを使用すること
ができる。このような2通りのプロセスがディスク・ユ
ニットまたは通信処理装置などの単一資源へのアクセス
を必要とする場合、セマフォア動作が必要になる可能性
がある。
【0023】本発明は、図2に全体を示すようなコンピ
ュータ・システム上で動作する。コンピュータ・システ
ム200は、プロセッサ複合体202を含み、Inte
lの486、IntelのPentium、IBMのP
owerPCプロセッサなどの1つまたは複数の中央演
算処理装置を含む。メモリ204は、システム用に用意
され、ランダム・アクセス・メモリと読取り専用メモリ
とを含む。ネットワーク・コントローラ206により、
ローカル・ネットワーク及び遠隔ネットワークとの通信
が可能になる。入出力コントローラ208は、磁気また
は光ディスクなどの永続記憶装置210への接続と、入
出力装置への接続をサポートする。入出力装置として
は、ディスプレイ・モニタ216、キーボード218、
ポインティング・デバイス220、取外し可能記憶装置
222などを含むことができる。取外し可能記憶装置2
22は、フレキシブル・ディスケット、CD−ROM、
または同様の技術などの任意の既知または将来の装置を
含むことができる。このようなコンピュータ・システム
の説明は例示のみを目的とするものであり、本発明は特
定の1つのハードウェア・アーキテクチャに限定されな
い。
ュータ・システム上で動作する。コンピュータ・システ
ム200は、プロセッサ複合体202を含み、Inte
lの486、IntelのPentium、IBMのP
owerPCプロセッサなどの1つまたは複数の中央演
算処理装置を含む。メモリ204は、システム用に用意
され、ランダム・アクセス・メモリと読取り専用メモリ
とを含む。ネットワーク・コントローラ206により、
ローカル・ネットワーク及び遠隔ネットワークとの通信
が可能になる。入出力コントローラ208は、磁気また
は光ディスクなどの永続記憶装置210への接続と、入
出力装置への接続をサポートする。入出力装置として
は、ディスプレイ・モニタ216、キーボード218、
ポインティング・デバイス220、取外し可能記憶装置
222などを含むことができる。取外し可能記憶装置2
22は、フレキシブル・ディスケット、CD−ROM、
または同様の技術などの任意の既知または将来の装置を
含むことができる。このようなコンピュータ・システム
の説明は例示のみを目的とするものであり、本発明は特
定の1つのハードウェア・アーキテクチャに限定されな
い。
【0024】図3は、ある特定のオペレーティング・シ
ステムの構文で作成されたセマフォア動作を汎用セマフ
ォア構文に変換するプロセスを示す。アプリケーション
・プログラム122は、API302を使用してセマフ
ォア動作を呼び出すことができる。これは、エミュレー
タ304により、セマフォア306を管理する汎用セマ
フォア動作に変換される。セマフォア動作からの復帰3
07は、アプリケーション・プログラム122が受け取
る予想復帰310に変換される。同様に、アプリケーシ
ョン・プログラム126は、エミュレータ322により
セマフォア306を管理するためのAPI呼出し324
に変換されるAPI動作320を呼び出すことができ
る。戻り値325は予想復帰326に変換され、これが
アプリケーション・プログラムに渡される。汎用セマフ
ォア・サービス306は、セマフォア・プロセスにより
管理される複数セマフォアを含むことができる。
ステムの構文で作成されたセマフォア動作を汎用セマフ
ォア構文に変換するプロセスを示す。アプリケーション
・プログラム122は、API302を使用してセマフ
ォア動作を呼び出すことができる。これは、エミュレー
タ304により、セマフォア306を管理する汎用セマ
フォア動作に変換される。セマフォア動作からの復帰3
07は、アプリケーション・プログラム122が受け取
る予想復帰310に変換される。同様に、アプリケーシ
ョン・プログラム126は、エミュレータ322により
セマフォア306を管理するためのAPI呼出し324
に変換されるAPI動作320を呼び出すことができ
る。戻り値325は予想復帰326に変換され、これが
アプリケーション・プログラムに渡される。汎用セマフ
ォア・サービス306は、セマフォア・プロセスにより
管理される複数セマフォアを含むことができる。
【0025】本発明によるセマフォア・アプリケーショ
ン・プログラミング・インタフェースを図4に示す。第
1のフィールド402は、この動作によって変更される
セマフォアのIDを含む。動作フィールド404は、そ
のセマフォア上で実行される動作を記述する命令コード
を含む。このような動作については以下に詳述する。
「値」フィールド406は、セマフォアを特定の値に設
定するか、または1より大きい特定の値だけ増分する場
合に使用する。設定と加算の両方の場合、「値」406
は負以外でなければならない。タイムアウト・パラメー
タ408は、待機待ち行列にスレッドを入れる場合に使
用するタイムアウトである。スレッドが制御を受け取る
前にタイムアウトが満了した場合、エラーが返される。
タイムアウト・パラメータは、「無限タイムアウト」す
なわち、スレッドを無限に待機させ決して満了しないタ
イムアウトを示すようにコード化することができる。本
発明の好ましい実施例では、タイムアウトを無視し、ス
レッドを無限にブロックさせるように、タイムアウト・
ビットが設定される。最後に、「前の値」フィールド4
10は、動作が実行される前にセマフォアの値を返す。
呼出しルーチンは、メモリ位置を指すポインタをセマフ
ォア機能に提供し、ポインタがヌルの場合、セマフォア
機能は「前の値」を返さない。
ン・プログラミング・インタフェースを図4に示す。第
1のフィールド402は、この動作によって変更される
セマフォアのIDを含む。動作フィールド404は、そ
のセマフォア上で実行される動作を記述する命令コード
を含む。このような動作については以下に詳述する。
「値」フィールド406は、セマフォアを特定の値に設
定するか、または1より大きい特定の値だけ増分する場
合に使用する。設定と加算の両方の場合、「値」406
は負以外でなければならない。タイムアウト・パラメー
タ408は、待機待ち行列にスレッドを入れる場合に使
用するタイムアウトである。スレッドが制御を受け取る
前にタイムアウトが満了した場合、エラーが返される。
タイムアウト・パラメータは、「無限タイムアウト」す
なわち、スレッドを無限に待機させ決して満了しないタ
イムアウトを示すようにコード化することができる。本
発明の好ましい実施例では、タイムアウトを無視し、ス
レッドを無限にブロックさせるように、タイムアウト・
ビットが設定される。最後に、「前の値」フィールド4
10は、動作が実行される前にセマフォアの値を返す。
呼出しルーチンは、メモリ位置を指すポインタをセマフ
ォア機能に提供し、ポインタがヌルの場合、セマフォア
機能は「前の値」を返さない。
【0026】好ましい実施例の動作フィールド404
は、4バイトずつに分割された32ビット・フィールド
で実現される。第1のバイト420は、セマフォア値が
正である場合に実行される動作を含む。第2のバイト4
22は、セマフォア値が0である場合に実行される動作
を含み、フィールド424は、セマフォア値が負である
場合に実行される動作を含む。フィールド426は、前
のフィールドの動作を変更するフラグを含む。上位3バ
イト(420、422、424)のいずれかに0がある
場合、これは、その値がそれぞれ正、0、または負のと
きにいかなる動作も実行されないことをセマフォア機能
に示すものである。ただし、前の値は返される。
は、4バイトずつに分割された32ビット・フィールド
で実現される。第1のバイト420は、セマフォア値が
正である場合に実行される動作を含む。第2のバイト4
22は、セマフォア値が0である場合に実行される動作
を含み、フィールド424は、セマフォア値が負である
場合に実行される動作を含む。フィールド426は、前
のフィールドの動作を変更するフラグを含む。上位3バ
イト(420、422、424)のいずれかに0がある
場合、これは、その値がそれぞれ正、0、または負のと
きにいかなる動作も実行されないことをセマフォア機能
に示すものである。ただし、前の値は返される。
【0027】最初の3つのバイト位置は、以下の動作を
実行するためのインジケータを含むことができる。セマ
フォア値Vは以下のように操作することができる。 減分する(V=V−1) 増分する(V=V+1) 0に設定する(V=0) 1に設定する(V=1) 設定する(V=C)、ただし(C=値406) 加算する(V=V+C) セマフォアVの値に基づく上記動作の呼出しに加え、V
の値にかかわらず、すべての動作を実行することができ
る。また、それが正ではない(すなわち、0または負で
ある)か、または負ではない(すなわち、0または正で
ある)場合にその値を変更するための能力を含む、諸条
件の組合せも実現することができる。最後に、待機スレ
ッドが決してタイムアウトしないようにタイムアウト・
ビットを設定するために、「フラグ値」フィールドが設
けられている。
実行するためのインジケータを含むことができる。セマ
フォア値Vは以下のように操作することができる。 減分する(V=V−1) 増分する(V=V+1) 0に設定する(V=0) 1に設定する(V=1) 設定する(V=C)、ただし(C=値406) 加算する(V=V+C) セマフォアVの値に基づく上記動作の呼出しに加え、V
の値にかかわらず、すべての動作を実行することができ
る。また、それが正ではない(すなわち、0または負で
ある)か、または負ではない(すなわち、0または正で
ある)場合にその値を変更するための能力を含む、諸条
件の組合せも実現することができる。最後に、待機スレ
ッドが決してタイムアウトしないようにタイムアウト・
ビットを設定するために、「フラグ値」フィールドが設
けられている。
【0028】表1は、数通りのオペレーティング・シス
テムのセマフォアをエミュレートした本発明の汎用セマ
フォアにマッピングした場合を示す。このリストは徹底
的なものではなく、本発明の応用の一例にすぎない。
テムのセマフォアをエミュレートした本発明の汎用セマ
フォアにマッピングした場合を示す。このリストは徹底
的なものではなく、本発明の応用の一例にすぎない。
【0029】 表1 セマフォア名 動作 エミュレーション Dijkstraカウント・セマフォア P DECR V INCR シーケンサ チケット INCR OS/2 EventSem DosPostEventSem SET_TO_ONE_IF_NEG | INCR_IF_NOT_NEG DosWaitEventSem DECR_IF_NOT_POS DosResetEventSem SET_TO_ZERO_IF_POS タリジェントTMonitorCondition 待機 Sync_wait (1) 通知 INCR_IF_NEG 同報 SET_TO_ZERO POSIX条件変数 pthread_cond_init Sync_wait (1) pthread_cond_signal INCR_IF_NEG pthread_cond_broadcast SET_TO_ZERO POSIXカウント・セマフォア sem_wait DECR sem_post INCR OS/400送受信カウント 受信 DECR 送信 INCR Kaleida条件 獲得 DECR 解放 SET_TO_ZERO Kaleidaフラグ 獲得 DECR_IF_NEG 解放 SET_TO_ZERO Windows NT手動事象 SetEvent SET_TO_ONE ResetEvent SET_TO_ZERO PulseEvent SET_TO_ZERO_IF_NEG WaitForSingleObject DECR_IF_NOT_POS Windows NT自動事象 SetEvent INCR_IF_NEG | SET_TO_ONE_IF_NOT_N EG ResetEvent SET_TO_ZERO PulseEvent INCR_IF_NEG WaitForSingleObject DECR Windows NTセマフォア ReleaseSemaphore ADD WaitForSingleObject DECR ethreads条件変数 condition_wait Sync_wait (1) condition_signal INCR_IF_NEG condition_broadcast SET_TO_ZERO (1)Sync_waitは、ロック及びセマフォアに適用され
る動作をエミュレートするために使用する。
る動作をエミュレートするために使用する。
【0030】動作時に、特定のオペレーティング・シス
テムのセマフォア呼出しは、マイクロカーネル・サービ
スによって汎用セマフォアに変換される。セマフォアは
汎用セマフォア動作が指定するように変更され、必要な
値がオペレーティング・システムに返される。
テムのセマフォア呼出しは、マイクロカーネル・サービ
スによって汎用セマフォアに変換される。セマフォアは
汎用セマフォア動作が指定するように変更され、必要な
値がオペレーティング・システムに返される。
【0031】図5は、本発明によるセマフォアの状態遷
移を示す。
移を示す。
【0032】上記の説明により、その真の精神を逸脱せ
ずに本発明の好ましい実施例において様々な修正及び変
更が可能であることが分かるだろう。この説明は例示の
みを目的とし、限定の意味に解釈すべきではないものと
する。本発明の範囲は、特許請求の範囲の表現によって
のみ制限されるものとする。
ずに本発明の好ましい実施例において様々な修正及び変
更が可能であることが分かるだろう。この説明は例示の
みを目的とし、限定の意味に解釈すべきではないものと
する。本発明の範囲は、特許請求の範囲の表現によって
のみ制限されるものとする。
【0033】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0034】(1)プロセッサ手段と、メモリ手段と、
並行して実行される2つまたはそれ以上のオペレーティ
ング・システム・パーソナリティとを有するコンピュー
タ・システム内の動作を同期化するためのシステムにお
いて、前記システムが、オペレーティング・システム固
有のセマフォア動作を受け取るための手段と、前記オペ
レーティング・システム固有のセマフォア動作を汎用セ
マフォア動作に変換するための手段と、汎用セマフォア
動作を実行するための実行手段と、前記汎用セマフォア
動作の結果を格納するための記憶手段とを含むことを特
徴とするシステム。 (2)前記変換手段が、オペレーティング・システム・
セマフォア動作を前記実行手段による実行のために汎用
セマフォア機能アプリケーション・プログラミング・イ
ンタフェースに変換することを特徴とする、上記(1)
に記載のシステム。 (3)前記汎用セマフォア・アプリケーション・プログ
ラミング・インタフェースが、セマフォアIDと、命令
コードと、セマフォア値とを含むことを特徴とする、上
記(2)に記載のシステム。 (4)前記命令コードが、セマフォアを減分する、セマ
フォアを増分する、セマフォアを0に設定する、セマフ
ォアを1に設定する、セマフォアを負以外の値に設定す
る、負以外の値をセマフォアに加算するのいずれか1つ
にすることができることを特徴とする、上記(3)に記
載のシステム。 (5)前記セマフォア値が正ではない場合に、セマフォ
ア動作を要求するスレッドを1組の待機スレッドに追加
するための手段をさらに含むことを特徴とする、上記
(3)に記載のシステム。 (6)2つまたはそれ以上のオペレーティング・システ
ム・パーソナリティを実行するコンピュータ・システム
内のスレッドを同期化するための方法であって、前記オ
ペレーティング・システム・パーソナリティが少なくと
も2通りの同期構文を有し、前記方法が、前記2つまた
はそれ以上のオペレーティング・システム・パーソナリ
ティからの各同期要求を代行受信するステップと、前記
代行受信した要求を汎用同期フォーマットに変換するス
テップと、前記同期動作を実行するステップとを含むこ
とを特徴とする方法。 (7)前記汎用同期フォーマットがセマフォアIDとセ
マフォア動作とを含み、前記同期動作を実行するステッ
プが、セマフォア状態を判定するために前記セマフォア
IDが示す格納済みセマフォア値をテストするステップ
と、前記セマフォア状態と前記同期動作とに基づいて前
記格納済みセマフォア値を変更するステップとを含むこ
とを特徴とする、上記(6)に記載の方法。 (8)前記代行受信した要求が要求側スレッドから発生
し、前記方法が、前記セマフォア状態が前記スレッドの
それ以降の実行をブロックする場合に前記スレッド用の
インジケータを1組の待機スレッドに追加するステップ
を含むことを特徴とする、上記(7)に記載の方法。 (9)少なくとも2通りの同期フォーマットを有する2
つまたはそれ以上のオペレーティング・システム・パー
ソナリティ間のスレッド動作を同期化させるためにその
上に記録されたコンピュータ・プログラム論理を有する
コンピュータ読取り可能媒体を有するコンピュータ・プ
ログラム製品であって、前記コンピュータ・プログラム
製品が、前記2つまたはそれ以上のオペレーティング・
システム・パーソナリティのうちの1つからの同期要求
を代行受信するためのコンピュータ読取り可能手段を有
するコンピュータ・プログラム製品手段と、前記要求を
汎用セマフォア動作に変換するためのコンピュータ読取
り可能手段を有するコンピュータ・プログラム製品手段
と、前記汎用セマフォア動作を実行するためのコンピュ
ータ読取り可能手段を有するコンピュータ・プログラム
製品手段とを含むことを特徴とするコンピュータ・プロ
グラム製品。 (10)セマフォア状態を判定するために前記セマフォ
ア動作をテストするためのコンピュータ読取り可能手段
を有するコンピュータ・プログラム製品手段と、前記状
態と前記セマフォア動作とに基づいてセマフォア値を変
更するためのコンピュータ読取り可能手段を有するコン
ピュータ・プログラム製品手段とをさらに含むことを特
徴とする、上記(9)に記載のコンピュータ・プログラ
ム製品。 (11)前記セマフォア状態に応答して同期化を要求す
るスレッド動作のインジケータを1組の待機スレッドに
追加するためのコンピュータ読取り可能手段を有するコ
ンピュータ・プログラム製品手段をさらに含むことを特
徴とする、上記(10)に記載のプログラム製品。
並行して実行される2つまたはそれ以上のオペレーティ
ング・システム・パーソナリティとを有するコンピュー
タ・システム内の動作を同期化するためのシステムにお
いて、前記システムが、オペレーティング・システム固
有のセマフォア動作を受け取るための手段と、前記オペ
レーティング・システム固有のセマフォア動作を汎用セ
マフォア動作に変換するための手段と、汎用セマフォア
動作を実行するための実行手段と、前記汎用セマフォア
動作の結果を格納するための記憶手段とを含むことを特
徴とするシステム。 (2)前記変換手段が、オペレーティング・システム・
セマフォア動作を前記実行手段による実行のために汎用
セマフォア機能アプリケーション・プログラミング・イ
ンタフェースに変換することを特徴とする、上記(1)
に記載のシステム。 (3)前記汎用セマフォア・アプリケーション・プログ
ラミング・インタフェースが、セマフォアIDと、命令
コードと、セマフォア値とを含むことを特徴とする、上
記(2)に記載のシステム。 (4)前記命令コードが、セマフォアを減分する、セマ
フォアを増分する、セマフォアを0に設定する、セマフ
ォアを1に設定する、セマフォアを負以外の値に設定す
る、負以外の値をセマフォアに加算するのいずれか1つ
にすることができることを特徴とする、上記(3)に記
載のシステム。 (5)前記セマフォア値が正ではない場合に、セマフォ
ア動作を要求するスレッドを1組の待機スレッドに追加
するための手段をさらに含むことを特徴とする、上記
(3)に記載のシステム。 (6)2つまたはそれ以上のオペレーティング・システ
ム・パーソナリティを実行するコンピュータ・システム
内のスレッドを同期化するための方法であって、前記オ
ペレーティング・システム・パーソナリティが少なくと
も2通りの同期構文を有し、前記方法が、前記2つまた
はそれ以上のオペレーティング・システム・パーソナリ
ティからの各同期要求を代行受信するステップと、前記
代行受信した要求を汎用同期フォーマットに変換するス
テップと、前記同期動作を実行するステップとを含むこ
とを特徴とする方法。 (7)前記汎用同期フォーマットがセマフォアIDとセ
マフォア動作とを含み、前記同期動作を実行するステッ
プが、セマフォア状態を判定するために前記セマフォア
IDが示す格納済みセマフォア値をテストするステップ
と、前記セマフォア状態と前記同期動作とに基づいて前
記格納済みセマフォア値を変更するステップとを含むこ
とを特徴とする、上記(6)に記載の方法。 (8)前記代行受信した要求が要求側スレッドから発生
し、前記方法が、前記セマフォア状態が前記スレッドの
それ以降の実行をブロックする場合に前記スレッド用の
インジケータを1組の待機スレッドに追加するステップ
を含むことを特徴とする、上記(7)に記載の方法。 (9)少なくとも2通りの同期フォーマットを有する2
つまたはそれ以上のオペレーティング・システム・パー
ソナリティ間のスレッド動作を同期化させるためにその
上に記録されたコンピュータ・プログラム論理を有する
コンピュータ読取り可能媒体を有するコンピュータ・プ
ログラム製品であって、前記コンピュータ・プログラム
製品が、前記2つまたはそれ以上のオペレーティング・
システム・パーソナリティのうちの1つからの同期要求
を代行受信するためのコンピュータ読取り可能手段を有
するコンピュータ・プログラム製品手段と、前記要求を
汎用セマフォア動作に変換するためのコンピュータ読取
り可能手段を有するコンピュータ・プログラム製品手段
と、前記汎用セマフォア動作を実行するためのコンピュ
ータ読取り可能手段を有するコンピュータ・プログラム
製品手段とを含むことを特徴とするコンピュータ・プロ
グラム製品。 (10)セマフォア状態を判定するために前記セマフォ
ア動作をテストするためのコンピュータ読取り可能手段
を有するコンピュータ・プログラム製品手段と、前記状
態と前記セマフォア動作とに基づいてセマフォア値を変
更するためのコンピュータ読取り可能手段を有するコン
ピュータ・プログラム製品手段とをさらに含むことを特
徴とする、上記(9)に記載のコンピュータ・プログラ
ム製品。 (11)前記セマフォア状態に応答して同期化を要求す
るスレッド動作のインジケータを1組の待機スレッドに
追加するためのコンピュータ読取り可能手段を有するコ
ンピュータ・プログラム製品手段をさらに含むことを特
徴とする、上記(10)に記載のプログラム製品。
【図1】本発明によるマイクロカーネル・オペレーティ
ング・システムを示すブロック図である。
ング・システムを示すブロック図である。
【図2】本発明が動作するコンピュータ・システムを示
すブロック図である。
すブロック図である。
【図3】汎用セマフォア動作によって提供される並行エ
ミュレーションを示す図である。
ミュレーションを示す図である。
【図4】本発明の好ましい実施例の汎用アプリケーショ
ン・プログラミング・インタフェースを示す図である。
ン・プログラミング・インタフェースを示す図である。
【図5】本発明によるセマフォアの状態遷移を示す状態
図である。
図である。
102 マイクロカーネル・システム 104 マシン非依存コード 106 マシン依存コード 110 ハードウェア・プラットフォーム 112 オペレーティング・システム・パーソナリティ 114 オペレーティング・システム・パーソナリティ 116 オペレーティング・システム・パーソナリティ
中立サービス 120 アプリケーション・プログラム 122 アプリケーション 126 第2のプログラム 304 エミュレータ 306 セマフォア 322 エミュレータ
中立サービス 120 アプリケーション・プログラム 122 アプリケーション 126 第2のプログラム 304 エミュレータ 306 セマフォア 322 エミュレータ
Claims (11)
- 【請求項1】プロセッサ手段と、メモリ手段と、並行し
て実行される2つまたはそれ以上のオペレーティング・
システム・パーソナリティとを有するコンピュータ・シ
ステム内の動作を同期化するためのシステムにおいて、
前記システムが、 オペレーティング・システム固有のセマフォア動作を受
け取るための手段と、 前記オペレーティング・システム固有のセマフォア動作
を汎用セマフォア動作に変換するための手段と、 汎用セマフォア動作を実行するための実行手段と、 前記汎用セマフォア動作の結果を格納するための記憶手
段とを含むことを特徴とするシステム。 - 【請求項2】前記変換手段が、オペレーティング・シス
テム・セマフォア動作を前記実行手段による実行のため
に汎用セマフォア機能アプリケーション・プログラミン
グ・インタフェースに変換することを特徴とする、請求
項1に記載のシステム。 - 【請求項3】前記汎用セマフォア・アプリケーション・
プログラミング・インタフェースが、セマフォアID
と、命令コードと、セマフォア値とを含むことを特徴と
する、請求項2に記載のシステム。 - 【請求項4】前記命令コードが、セマフォアを減分す
る、セマフォアを増分する、セマフォアを0に設定す
る、セマフォアを1に設定する、セマフォアを負以外の
値に設定する、負以外の値をセマフォアに加算するのい
ずれか1つにすることができることを特徴とする、請求
項3に記載のシステム。 - 【請求項5】前記セマフォア値が正ではない場合に、セ
マフォア動作を要求するスレッドを1組の待機スレッド
に追加するための手段をさらに含むことを特徴とする、
請求項3に記載のシステム。 - 【請求項6】2つまたはそれ以上のオペレーティング・
システム・パーソナリティを実行するコンピュータ・シ
ステム内のスレッドを同期化するための方法であって、
前記オペレーティング・システム・パーソナリティが少
なくとも2通りの同期構文を有し、前記方法が、 前記2つまたはそれ以上のオペレーティング・システム
・パーソナリティからの各同期要求を代行受信するステ
ップと、 前記代行受信した要求を汎用同期フォーマットに変換す
るステップと、 前記同期動作を実行するステップとを含むことを特徴と
する方法。 - 【請求項7】前記汎用同期フォーマットがセマフォアI
Dとセマフォア動作とを含み、前記同期動作を実行する
ステップが、 セマフォア状態を判定するために前記セマフォアIDが
示す格納済みセマフォア値をテストするステップと、 前記セマフォア状態と前記同期動作とに基づいて前記格
納済みセマフォア値を変更するステップとを含むことを
特徴とする、請求項6に記載の方法。 - 【請求項8】前記代行受信した要求が要求側スレッドか
ら発生し、前記方法が、 前記セマフォア状態が前記スレッドのそれ以降の実行を
ブロックする場合に前記スレッド用のインジケータを1
組の待機スレッドに追加するステップを含むことを特徴
とする、請求項7に記載の方法。 - 【請求項9】少なくとも2通りの同期フォーマットを有
する2つまたはそれ以上のオペレーティング・システム
・パーソナリティ間のスレッド動作を同期化させるため
にその上に記録されたコンピュータ・プログラム論理を
有するコンピュータ読取り可能媒体を有するコンピュー
タ・プログラム製品であって、前記コンピュータ・プロ
グラム製品が、 前記2つまたはそれ以上のオペレーティング・システム
・パーソナリティのうちの1つからの同期要求を代行受
信するためのコンピュータ読取り可能手段を有するコン
ピュータ・プログラム製品手段と、 前記要求を汎用セマフォア動作に変換するためのコンピ
ュータ読取り可能手段を有するコンピュータ・プログラ
ム製品手段と、 前記汎用セマフォア動作を実行するためのコンピュータ
読取り可能手段を有するコンピュータ・プログラム製品
手段とを含むことを特徴とするコンピュータ・プログラ
ム製品。 - 【請求項10】セマフォア状態を判定するために前記セ
マフォア動作をテストするためのコンピュータ読取り可
能手段を有するコンピュータ・プログラム製品手段と、 前記状態と前記セマフォア動作とに基づいてセマフォア
値を変更するためのコンピュータ読取り可能手段を有す
るコンピュータ・プログラム製品手段とをさらに含むこ
とを特徴とする、請求項9に記載のコンピュータ・プロ
グラム製品。 - 【請求項11】前記セマフォア状態に応答して同期化を
要求するスレッド動作のインジケータを1組の待機スレ
ッドに追加するためのコンピュータ読取り可能手段を有
するコンピュータ・プログラム製品手段をさらに含むこ
とを特徴とする、請求項10に記載のプログラム製品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/742,104 US6519623B1 (en) | 1996-10-31 | 1996-10-31 | Generic semaphore for concurrent access by multiple operating systems |
US08/742104 | 1996-10-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10143379A true JPH10143379A (ja) | 1998-05-29 |
Family
ID=24983496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9292285A Pending JPH10143379A (ja) | 1996-10-31 | 1997-10-24 | 複数オペレーティング・システムによるスレッド同期化方法及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6519623B1 (ja) |
JP (1) | JPH10143379A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122916A (ja) * | 1998-10-12 | 2000-04-28 | Emerging Architectures Llc | 原子的更新処理を実行する方法 |
CN115794450A (zh) * | 2023-02-13 | 2023-03-14 | 中国人民解放军国防科技大学 | 一种面向微内核系统服务的并行性优化方法、系统及介质 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6744894B1 (en) | 1994-04-01 | 2004-06-01 | Mitsubishi Corporation | Data management system |
JPH07271865A (ja) * | 1994-04-01 | 1995-10-20 | Mitsubishi Corp | データベース著作権管理方法 |
US7036019B1 (en) | 1994-04-01 | 2006-04-25 | Intarsia Software Llc | Method for controlling database copyrights |
US7302415B1 (en) * | 1994-09-30 | 2007-11-27 | Intarsia Llc | Data copyright management system |
US6424715B1 (en) | 1994-10-27 | 2002-07-23 | Mitsubishi Corporation | Digital content management system and apparatus |
EP1691315A1 (en) | 1994-10-27 | 2006-08-16 | Intarsia Software LLC | Data copyright management system |
DE69532434T2 (de) | 1994-10-27 | 2004-11-11 | Mitsubishi Corp. | Gerät für Dateiurheberrechte-Verwaltungssystem |
US8595502B2 (en) * | 1995-09-29 | 2013-11-26 | Intarsia Software Llc | Data management system |
US7801817B2 (en) * | 1995-10-27 | 2010-09-21 | Makoto Saito | Digital content management system and apparatus |
JP4763866B2 (ja) | 1998-10-15 | 2011-08-31 | インターシア ソフトウェア エルエルシー | 2重再暗号化によりデジタルデータを保護する方法及び装置 |
WO2001020456A1 (fr) * | 1999-09-10 | 2001-03-22 | Hitachi, Ltd. | Systeme de gestion et procede pour systeme d'exploitation |
EP1085396A1 (en) * | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
US20040226020A1 (en) * | 2000-09-28 | 2004-11-11 | Ati Technologies, Inc. | Method and system for using general and appliance operating systems in a single information handling device |
US6604209B1 (en) * | 2000-09-29 | 2003-08-05 | Sun Microsystems, Inc. | Distributed component testing in an enterprise computer system |
GB2376763B (en) * | 2001-06-19 | 2004-12-15 | Hewlett Packard Co | Demonstrating integrity of a compartment of a compartmented operating system |
GB0102516D0 (en) * | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Trusted gateway system |
GB0102518D0 (en) * | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Trusted operating system |
GB2372592B (en) | 2001-02-23 | 2005-03-30 | Hewlett Packard Co | Information system |
GB2372595A (en) * | 2001-02-23 | 2002-08-28 | Hewlett Packard Co | Method of and apparatus for ascertaining the status of a data processing environment. |
US7237013B2 (en) * | 2001-04-16 | 2007-06-26 | National Instruments Corporation | Network system including data socket components for accessing internet semaphores |
GB2376762A (en) * | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | Renting a computing environment on a trusted computing platform |
GB0114898D0 (en) * | 2001-06-19 | 2001-08-08 | Hewlett Packard Co | Interaction with electronic services and markets |
GB2376764B (en) | 2001-06-19 | 2004-12-29 | Hewlett Packard Co | Multiple trusted computing environments |
GB2378013A (en) * | 2001-07-27 | 2003-01-29 | Hewlett Packard Co | Trusted computer platform audit system |
GB2382419B (en) * | 2001-11-22 | 2005-12-14 | Hewlett Packard Co | Apparatus and method for creating a trusted environment |
US20030145035A1 (en) * | 2002-01-15 | 2003-07-31 | De Bonet Jeremy S. | Method and system of protecting shared resources across multiple threads |
FR2840082B1 (fr) * | 2002-05-24 | 2006-04-07 | Bull Sa | Procede d'echange d'informations entre systemes d'exploitation cohabitant sur un meme ordinateur |
US7036125B2 (en) * | 2002-08-13 | 2006-04-25 | International Business Machines Corporation | Eliminating memory corruption when performing tree functions on multiple threads |
US8424023B2 (en) * | 2003-10-24 | 2013-04-16 | Hewlett-Packard Development Company, L.P. | Program interface architecture |
EP1866825A1 (en) | 2005-03-22 | 2007-12-19 | Hewlett-Packard Development Company, L.P. | Methods, devices and data structures for trusted data |
GB0516426D0 (en) * | 2005-08-10 | 2005-09-14 | Symbian Software Ltd | A method of operating a computing device through the use of extensible thread states |
US8473948B1 (en) * | 2007-08-08 | 2013-06-25 | Nvidia Corporation | Method for synchronizing independent cooperative thread arrays running on a graphics processing unit |
US8370845B1 (en) | 2007-08-08 | 2013-02-05 | Nvidia Corporation | Method for synchronizing independent cooperative thread arrays running on a graphics processing unit |
US8341643B2 (en) * | 2010-03-29 | 2012-12-25 | International Business Machines Corporation | Protecting shared resources using shared memory and sockets |
US8719478B2 (en) | 2011-08-11 | 2014-05-06 | Hewlett-Packard Development Company, L.P. | Deadlock prevention |
US10565024B2 (en) * | 2016-10-19 | 2020-02-18 | Oracle International Corporation | Generic concurrency restriction |
US20230185637A1 (en) * | 2021-12-10 | 2023-06-15 | Nvidia Corporation | Application programming interfaces for interoperability |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0365728B1 (en) * | 1988-10-28 | 1993-12-29 | International Business Machines Corporation | Resource access for a multiprocessing computer system |
US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
US5379432A (en) | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US5519867A (en) | 1993-07-19 | 1996-05-21 | Taligent, Inc. | Object-oriented multitasking system |
-
1996
- 1996-10-31 US US08/742,104 patent/US6519623B1/en not_active Expired - Fee Related
-
1997
- 1997-10-24 JP JP9292285A patent/JPH10143379A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122916A (ja) * | 1998-10-12 | 2000-04-28 | Emerging Architectures Llc | 原子的更新処理を実行する方法 |
CN115794450A (zh) * | 2023-02-13 | 2023-03-14 | 中国人民解放军国防科技大学 | 一种面向微内核系统服务的并行性优化方法、系统及介质 |
CN115794450B (zh) * | 2023-02-13 | 2023-06-06 | 中国人民解放军国防科技大学 | 一种面向微内核系统服务的并行性优化方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
US6519623B1 (en) | 2003-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10143379A (ja) | 複数オペレーティング・システムによるスレッド同期化方法及びシステム | |
US5889988A (en) | Debugger for debugging tasks in an operating system virtual device driver | |
US5822585A (en) | System and method for cooperative processing using object-oriented framework | |
JP3072709B2 (ja) | 要求伝達方法 | |
US5938778A (en) | System and method for tracing instructions in an information handling system without changing the system source code | |
US5305455A (en) | Per thread exception management for multitasking multithreaded operating system | |
KR100537813B1 (ko) | 에뮬레이션 코프로세서 | |
US6438616B1 (en) | Method and apparatus for fast, local corba object references | |
EP2132640B1 (en) | Abstracting operating environment from operating system | |
US6044409A (en) | Framework for marshaling and unmarshaling argument object references | |
US8020173B2 (en) | Method and system for associating parameters of containers and contained objects | |
US8028298B2 (en) | Systems and methods for managing shared resources in a computer system | |
US20030110416A1 (en) | Methods and systems for creating and communicating with computer processes | |
JP2004054948A (ja) | 非同期のエミュレートされた割込みの同期化 | |
JPH07508116A (ja) | イベントの認識および通知を行なう装置およびシステム | |
KR20030045027A (ko) | 컴퓨터 애플리케이션 실행 방법 및 컴퓨터 프로그램 제품및 컴퓨터 시스템 및 컴퓨터 서버 | |
CA2386658A1 (en) | System of reusable software parts for implementing concurrency and hardware access, and methods of use | |
GB2412201A (en) | Inter processor communication on a multi-processor system using proxies | |
EP0834808B1 (en) | Method and apparatus for user-level support for multiple event synchronization | |
EP0575073A2 (en) | Objects with run-time classes | |
US20050132121A1 (en) | Partitioned operating system tool | |
JPH02153434A (ja) | データ処理システム | |
US5623663A (en) | Converting a windowing operating system messaging interface to application programming interfaces | |
US5909576A (en) | Method and apparatus for using device drivers of a first operating system, under the control of a second operating system | |
EP0889396B1 (en) | Thread synchronisation via selective object locking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040511 |