JP2010504581A - マルチスレッドアプリケーションにおけるロバストなクリティカルセクション設計 - Google Patents

マルチスレッドアプリケーションにおけるロバストなクリティカルセクション設計 Download PDF

Info

Publication number
JP2010504581A
JP2010504581A JP2009528848A JP2009528848A JP2010504581A JP 2010504581 A JP2010504581 A JP 2010504581A JP 2009528848 A JP2009528848 A JP 2009528848A JP 2009528848 A JP2009528848 A JP 2009528848A JP 2010504581 A JP2010504581 A JP 2010504581A
Authority
JP
Japan
Prior art keywords
function code
thread
section
exclusive function
code section
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.)
Withdrawn
Application number
JP2009528848A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2010504581A publication Critical patent/JP2010504581A/ja
Withdrawn legal-status Critical Current

Links

Images

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
    • 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
    • G06F9/526Mutual exclusion algorithms
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

マルチスレッドコンピュータアプリケーションは、デッドロック状態が防止されるように、単一のプログラムのインスタンシエーション(スレッド)としてよりロバストな相互排他的アクセスを提供する。このアプリケーション方法は、排他的アクセスが許可されるべき機能的コードに対して'ゲート'機能S1、S4、S6、S21、S24、S30を提供するシステムサービスを実施するのにシステムプリミティブを使用する。クリティカルセクションは依然として存在するが、状態変数の管理及びこの'ゲート'機構の決定分岐に対してのみ使用される。また、タイムリミット規定S15は、非許可スレッドの遮断を防止するように実施される。前記方法は、前記クリティカルセクションの外側で'排他的機能的コードセクション'を実行するステップを含み、これは従来技術の設計モデルのように決して終了しない又は無限クリティカルセクションによる遮断効果のカスケードを防止する。

Description

本発明は、広くは、複数のクライアントからの1より多いリソースに対する相互排他的アクセスを持つ自律マルチスレッドコンピュータシステムに関し、特には、デッドロック状態が防止されるように、単一のプログラムのインスタンシエーション(スレッド)としてよりロバストな相互排他的アクセスを必要とするマルチスレッドコンピュータアプリケーションに関する。
電子及びコンピュータ装置における"クライアント"からの複数の機能的要求の非同期並列サービスは、高い頻度で、マルチスレッドプログラミングモデルを、このモデルをサポートするシステムプラットフォーム上で使用して実施されるソフトウェアである。典型的な例は、有限状態機械(FSM)が、全ての可能な入力信号を処理するのに必要とされる全ての状態及び遷移を実施するマルチポート通信システムのシグナルハンドラである。同じFSMの多くの仮想的なインスタンシエーションは、独立に非同期通信ポートを果たすように並列に実行される。このアプローチは、前記システムが、周期的システムプリエンプション又はアプリケーション決定に基づいてコンテキストを適時に切り替えることができることを要する。この環境において、少数のスレッド関連変数のみが、果たされるべき各チャネルに対する状態を具体化するのに使用される。
アクティブスレッドは、同じプロセス空間及びローカルリソースを共有するので、マルチプロセス構成と比較して、マルチスレッドアプリケーションは、コンテキスト切り替え性能及びシステムリソース割り当てに関してはるかに効率的である。良い例は、通信機器に対する高速マトリクス構造スイッチ領域を管理することである。各スイッチは、ホストシステム上で実行され、関連したスイッチを制御するのに使用される共通のインタフェースを通して通信するソフトウェア有限状態機械から操作される。例えば、マルチスレッドOS環境において実行されるマイクロコントローラは、I/O操作により前記スイッチを制御するのに適している。
このシステムの古典的実施は、ソフトウェアコードのクリティカルセクション、すなわち共有されるアクセスが実行されるコードの範囲を定める単純な"同期"プリミティブの使用により行われる。このようなプリミティブは、マルチスレッドOS又はJAVA言語をサポートするのに使用される仮想機械において様々な形で存在する。この単純な設計方法は、開発者が、外的理由でハングアップすることにはなっていないクリティカルセクションにおける共有リソース管理に対する通常規則に従う場合に、良好に動作する。不幸なことに、同期I/Oは、しばしば、共有される機器の制御に専用化されたクリティカルセクションにおいて実行される。このI/Oがいかなる理由でも終了しない場合、全てのスレッドが前記スレッドの番に前記クリティカルセクションに入ろうと試み、各々が無限サスペンド状態になるので、システム全体が、完全なデッドロック状態に達する可能性がある。
マルチスレッディングの問題は、共有アドレス空間から生じるデータ破壊及び頻繁なデッドロックに対するより高い脆弱性である。このような障害は、発生の状況及び時間がほとんどの場合予測不可能であるので、検出及び修理するのが難しい。
プリエンプションシステム上で実行されるマルチスレッドアプリケーションは、共有リソースに対する排他的アクセスを許可する追加の手段を必要とする。上述のように、これは、通常は、このような操作を目的としたソフトウェアコードの'クリティカルセクション'の範囲を定めるシステムプリミティブに対する呼び出しにより達成され、前記ソフトウェアコードの'クリティカルセクション'は、1より多い共有リソースにアクセスする'保護コード'又は命令を含む。前記システムは、1つのスレッドアクセスのみが一度に前記クリティカルセクションコードに入り、実行することを許可し、このクリティカルセクションに入ろうと試みるいかなる同時のスレッドも、許可されたスレッドが前記クリティカルセクションを出るまで、サスペンドされ、すなわち、サスペンド状態に置かれる。
共有リソースに対する保護された又は排他的なアクセスは、ソフトウェアコードのクリティカルセクションの使用を含む、複数の方法により保証されることができる。米国特許5941975は、例えば、マルチユーザ環境をサポートするシステムにおいてクリティカルセクションに対するユーザの同時アクセスを効果的に制御するラッチデータ構造を開示している。前記ラッチデータ構造は、ユーザ要求に対してスケジュールを提供するのに使用される。共有リソースに対する保護されたアクセスを保証する他の方法は、スレッドにロックを割り当てることにより実施されるロックを開示する米国特許6722153において見つけられることができる。前記ロックの状態は、非共有からオブジェクト共有をサポートするアトミック操作に変更されることができる。
クリティカルセクションソフトウェアコードに関する主な問題は、使用及び実施の単純性から生じる。例えば、一部のシステムにおいて、同時スレッドのサスペンド状態は、時間制限されない。更に、正しいソフトウェア実装を仮定すると、クリティカルセクションコード実行が全ての場合に有限の持続時間を持つことを合理的に期待することができる。不幸なことに、クリティカルセクションコードは、依然として、決して戻らないメモリマップI/O操作のような遮断する外的条件のため、ハングアップする、又は終了するのを失敗する可能性がある。この無限条件は、許可されたスレッドを無限に前記クリティカルセクション内でサスペンドさせ、更に、全ての同時スレッドを、同じクリティカルセクションに入ろうと試みる場合にサスペンド状態にトラップされるようにする。従来技術は、無限クリティカルセクション、すなわち、I/O障害のためにデッドロックする又は終了するのに失敗するクリティカルセクションにアドレスしない。
本発明の目的は、デッドロック状態が防止されるマルチスレッドコンピュータシステム及び方法を提供することである。
本発明の他の目的は、自律マルチスレッドシステムにおいて同期I/O障害の影響を最小化する方法を提供することである。
これらの目的に加えて、ソフトウェアコードのクリティカルセクションが、少数のシステムプリミティブを通して保護されたコードに対するアクセス条件を支配する状態変数にアクセスすることにのみ使用されるような解決法が提供される。これらの新しいプリミティブの適切な設計により、前記保護されたコードは、クリティカルセクションコード境界の外側に配置され、したがってカスケードデッドロック効果を防止する。
例えば、I/O装置のような共有装置にアクセスするコード又は命令のような機能的コードをカプセル化又は描写するのに、クリティカルセクションプリミティブ、例えばENTER、EXITを使用することは、当技術分野において既知である。本発明の方法は、しかしながら、排他的アクセスが許可されるべきである機能的コードに対して'ゲート'機能を提供するシステムサービスを実施するのに前記プリミティブを使用する。クリティカルセクションは依然として存在するが、状態変数の管理及びこの'ゲート'機構の決定分岐に対してのみ使用される。また、時間制限規定は、非許可スレッドの遮断を防止するために実施される。新しいサービスの適切な設計により、'排他的機能的コードセクション'は、前記クリティカルセクションの外側で実行され、これは、従来技術の設計モデルのように決して終了しない又は無限クリティカルセクションによる遮断効果のカスケードを防止する。
本発明の目的、フィーチャ及び利点は、以下に記載されるように、好適実施例の説明の文脈内で理解される。前記好適実施例の説明は、本開示の重要な部分を形成する添付図面との関連で理解される。
本発明の概略図を示す。 本発明の一実施例のフローチャートを描く。
'クリティカルセクション'は、前記セクションに入る許可スレッドを同じセクションに対する同時スレッドアクセスから自動的に保護する、2つのシステムプリミティブ、例えばENTER、EXITにより区切られたコードのセクションである。
'排他的機能的コードセクション'は、一度に1つの単一スレッドによりアクセスされるべきである機能的コードである。
本発明は、埋め込みシステムにおいて見つけられる単純なマルチスレッディング環境において利用可能な既存のOSサービスのみを使用する純粋なソフトウェア実装を可能にする。標準的なシステムプリミティブ、例えば'クリティカルセクションに入る(Enter Critical Section)'、'クリティカルセクションを出る(Leave Critical Section)'、同期{}は、前記排他的機能的コードセクションに対するスレッドアクセスを制御及び許可するのに必要とされる決定変数、例えば'所有済み(owned)'、'所有者ID(owner ID)'、'要求カウント(Request Count)'を試験及び操作するのに使用されることができる。したがって、これらの試験及び操作動作は、全て相互排他モードで実行される。相互アクセス条件で実施される全てのシーケンスは、I/O又は他の外部依存性条件を含まないので、有限時間内に完了する。したがって、'同期'スレッドは、決して遮断されない。加えて、動作状態を診断又は回復するストラテジは、リソースを要求するサービスがタイムアウトするときに開始されることができる。
図1は、本発明の一実施例の概略図であり、図2は、この実施例のフローチャートであり、両方とも以下に詳細に記載される。
このシステムは、ステップS1において開始され、ここで前記クリティカルセクションは入られる。ステップS2は、前記要求カウント変数をゼロに初期化し(要求カウント=0)、ステップS3は、前記所有済み変数をFALSEに初期化する。ステップS4において、前記クリティカルセクションは出られる。
前記排他的機能的コードセクションに対するアクセスが、例えばスレッド1により必要とされる場合、手順は以下のとおりである。ステップS5において、スレッド1は、初めに、'要求'プリミティブに対する呼び出しにより前記排他的機能的コードセクションに対する排他的アクセスを要求する。この要求サービスは、ステップS6においてクリティカルセクションに入り、ステップS7において前記要求された排他的機能的コードセクションのステータスを確認する。前記ステータスが値'許可済みでない(not granted)'を持つ場合、以下のアクションが生じる。アクセスがスレッド1に対して可能にされ、前記ステータスは、ステップS8において'スレッド1に対して許可済み(granted to Thread 1)'(例えば、所有済み=TRUE)に変更され、前記所有者ID変数は、ステップS9において呼び出し者(caller)ID(スレッド1)に設定される。次いで、前記要求サービスは、ステップS10において前記クリティカルセクションを出て、ステップS11において結果として'許可済み'とともにスレッド1に戻る。スレッド1は、この場合、前記排他的機能的コードセクションを実行する。
アクセスがスレッド1に対して既に許可済みである間に、スレッド2は、ステップS5において前記排他的機能的コードセクションに対する排他的アクセスを要求する。このシステムサービスは、ステップS6において前記クリティカルセクションに入り、ステップS7において前記排他的機能的コードセクションのステータスを確認する。前記ステータスが値'許可済み'を持ち、スレッド所有者識別(所有者ID)がスレッド2ではない場合、アクセスは、スレッド2に対して直ちに許可されない。代わりに、前記要求カウントが、ステップS12において増加され、前記システムサービスは、ステップS13において前記クリティカルセクションを出て、ステップS14においてスレッド2(呼び出しスレッド)をサスペンド状態にする。スレッド2は、この場合、前記排他的機能的コードセクションの完了時における前記サービスにより、又はタイムアウト条件における前記システムにより送信される'解放'信号を待機する。
前記排他的機能的コードセクションが完了すると、スレッド1は、ステップS23において'解放'プリミティブを明確に呼び出す。この解放サービスは、ステップS24においてクリティカルセクションに入り、ステップS25において、前記要求された機能的コードのステータスを示す変数を確認し、ステップS26において前記所有者識別を示す変数を確認する。前記ステータスが'スレッド1に対して許可済み'である場合、前記サービスは、前記許可されたアクセスを解放する資格を与えられており、以下のステップを実行する。ステップS27において、前記ステータスは、'許可済みでない'に変更され、例えば変数所有済みがFALSEに設定され、ステップS28において、前記要求カウントは、可能なサスペンド中のスレッドについて確認される。サスペンド中のスレッドが示される、例えばステップS29において要求カウントがゼロではない場合、信号が、前記サスペンド中のスレッドを起こすために送信される。次いで、前記サービスは、ステップS30において前記クリティカルセクションを出て、ステップS31において結果として'解放済み(released)'とともにスレッド1に戻る。
サスペンド中のスレッド(スレッド2)が、ステップS15において、タイムアウト条件(例えば、t==tmax)において解放信号を受信する場合、クリティカルセクションは、タイムアウトになった要求をフラッシュするために、ステップS19において入られ、以下のステップが実行される。前記要求カウントは、ステップS20において減少され、前記クリティカルセクションは、ステップS21において出られ、前記サスペンド中のスレッドは、ステップS22において再開する。
サスペンド中のスレッド(スレッド2)が、解放信号を受信し、ステップ15において、タイムアウトが生じていない(例えば、tがtmaxに等しくない)と決定される場合、クリティカルセクションは、ステップS16において入られる。前記排他的機能的コードが許可されない(例えばステップ17において所有済みがTRUEではない)場合、前記要求カウントは、ステップS18において減少され、前記ステータスは、ステップS8において'スレッド2に対して許可済み'(例えば、所有済み=TRUE)に変更され、前記所有者ID変数は、ステップS9において呼び出し者ID(スレッド2)に設定される。次いで、前記要求サービスが、ステップS10において前記クリティカルセクションを出て、ステップS11において結果として'許可済み'とともにスレッド2に戻る。スレッド2は、この場合、前記排他的機能的コードセクションを実行する。しかしながら、前記排他的機能的コードが許可済みである(例えばステップ17において所有済みがTRUEである)場合、前記クリティカルセクションは、ステップS13において出られ、スレッド2はサスペンドのままである。
更に、タイムアウト試行は、例えば、専用モニタリングタスクに対する信号の送信を始めることができる。ステップS22に示されるように、前記信号は、モニタが診断プロセスを開始し、疑わしい回路を分離することができるようにリソースを異常に所有するスレッドIDを示すことができる。
前記ステータス変数(許可、カウンタ等)は、前記排他的機能的コードセクションに対して局所的であり、すなわち、保護されるべき排他的機能的コードと一対一関係を持つユニークなオブジェクトを一緒に形成する。前記排他的機能的コードセクションが、前記システムにとって普通ではない場合、前記オブジェクトは、要求/解放プリミティブの特性(パラメータ)として参照されなければならない。このような場合、前記ステータスオブジェクトを割り当てる/初期化する追加のプリミティブが、実装される必要がある。
ここに開示された本発明が、上に記載された目的を満たすように良好に計算されていることは明らかであるが、多くの修正及び実施例が当業者により考案されてもよいと理解され、添付の請求項が、本発明の真の精神及び範囲に入る全てのこのような修正及び実施例をカバーすると意図される。

Claims (19)

  1. 同期I/O障害の影響を最小化する方法において、前記方法が、
    少なくとも1つのクリティカルセクションの範囲を定めるクリティカルセクションプリミティブを初期化するステップと、
    排他的機能コードセクションに対するスレッドアクセスを制御及び許可する決定変数を初期化するステップと、
    前記スレッドによる前記排他的機能コードセクションに対するアクセスに対する要求に応答して前記排他的機能コードセクションのステータスを決定するステップと、
    前記ステータスが許可済みである場合に前記排他的機能コードセクションを実行し、前記実行の完了によって、前記排他的機能コードセクションを解放し、解放信号を送信するステップと、
    前記ステータスが許可済みでない場合に前記スレッドをサスペンドし、前記解放信号の受信によって、前記排他的機能コードセクションを実行し、前記実行の完了によって前記排他的機能コードセクションを解放するステップと、
    を有し、
    前記少なくとも1つのクリティカルセクションが、外部依存性条件を含まない、方法。
  2. 前記クリティカルセクションプリミティブが、'クリティカルセクションに入る'、'クリティカルセクションを出る'、同期{}からなる、請求項1に記載の方法。
  3. 前記決定変数が、'所有済み'、'所有者ID'、'要求カウント'からなる、請求項1に記載の方法。
  4. 前記ステータスが許可済みである場合に前記排他的機能コードセクションを実行するステップが、前記スレッドに対して1より多い決定変数を設定するステップを更に有する、請求項1に記載の方法。
  5. 前記ステータスが許可済みでない場合に前記スレッドをサスペンドするステップが、要求カウントを増加するステップを更に有する、請求項1に記載の方法。
  6. 同期I/O障害の影響を最小化する方法において、前記方法が、
    少なくとも1つのクリティカルセクションの範囲を定めるクリティカルセクションプリミティブを初期化するステップと、
    排他的機能コードセクションに対するスレッドアクセスを制御及び許可する決定変数を初期化するステップと、
    前記スレッドによる前記排他的機能コードセクションに対するアクセスに対する要求に応答して前記排他的機能コードセクションのステータスを決定するステップと、
    前記ステータスが許可済みである場合に前記排他的機能コードセクションを実行し、前記実行の完了によって、前記排他的機能コードセクションを解放し、解放信号を送信するステップと、
    前記ステータスが許可済みでない場合に前記スレッドをサスペンドし、システムタイムアウト信号の受信によって、前記排他的機能コードセクションを実行し、前記実行の完了によって前記排他的機能コードセクションを解放するステップと、
    を有し、
    前記少なくとも1つのクリティカルセクションが、外部依存性条件を含まない、方法。
  7. クリティカルセクションが、タイムアウト要求をフラッシュするために入られる、請求項6に記載の方法。
  8. 回復動作状態が、前記システムタイムアウト信号に応答して実行される、請求項6に記載の方法。
  9. 信号が、前記システムタイムアウト信号に応答して専用モニタリングタスクに対して送信される、請求項6に記載の方法。
  10. 前記信号が、前記スレッドを示し、前記専用モニタリングタスクが、診断プロセスを開始し、疑わしい回路を分離する、請求項9に記載の方法。
  11. 前記クリティカルセクションプリミティブが、'クリティカルセクションに入る'、'クリティカルセクションを出る'、同期{}からなる、請求項6に記載の方法。
  12. 前記決定変数が、'所有済み'、'所有者ID'、'要求カウント'からなる、請求項6に記載の方法。
  13. 前記ステータスが許可済みである場合に前記排他的機能コードセクションを実行するステップが、前記スレッドに対して1より多い決定変数を設定するステップを更に有する、請求項6に記載の方法。
  14. 前記ステータスが許可済みでない場合に前記スレッドをサスペンドするステップが、要求カウントを増加するステップを更に有する、請求項6に記載の方法。
  15. 同期I/O障害の影響を最小化する方法ステップを実行するように機械により読み取り可能かつ実行可能な命令のセットを具体化するコンピュータ読み取り可能媒体において、前記方法ステップが、
    少なくとも1つのクリティカルセクションの範囲を定めるクリティカルセクションプリミティブを初期化するステップと、
    排他的機能コードセクションに対するスレッドアクセスを制御及び許可する決定変数を初期化するステップと、
    前記スレッドによる前記排他的機能コードセクションに対するアクセスに対する要求に応答して前記排他的機能コードセクションのステータスを決定するステップと、
    前記ステータスが許可済みである場合に前記排他的機能コードセクションを実行し、前記実行の完了によって、前記排他的機能コードセクションを解放し、解放信号を送信するステップと、
    前記ステータスが許可済みでない場合に前記スレッドをサスペンドし、システムタイムアウト信号の受信によって、前記排他的機能コードセクションを実行し、前記実行の完了によって前記排他的機能コードセクションを解放するステップと、
    を有し、
    前記少なくとも1つのクリティカルセクションが、外部依存性条件を含まない、コンピュータ読み取り可能媒体。
  16. 前記クリティカルセクションプリミティブが、'クリティカルセクションに入る'、'クリティカルセクションを出る'、同期{}からなる、請求項15に記載のコンピュータ読み取り可能媒体。
  17. 前記決定変数が、'所有済み'、'所有者ID'、'要求カウント'からなる、請求項15に記載のコンピュータ読み取り可能媒体。
  18. 前記ステータスが許可済みである場合に前記排他的機能コードセクションを実行する方法ステップが、前記スレッドに対して1より多い決定変数を設定するステップを更に有する、請求項15に記載のコンピュータ読み取り可能媒体。
  19. 前記ステータスが許可済みでない場合に前記スレッドをサスペンドする方法ステップが、要求カウントを増加するステップを更に有する、請求項15に記載のコンピュータ読み取り可能媒体。
JP2009528848A 2006-09-25 2007-09-19 マルチスレッドアプリケーションにおけるロバストなクリティカルセクション設計 Withdrawn JP2010504581A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82679106P 2006-09-25 2006-09-25
PCT/IB2007/053802 WO2008038195A2 (en) 2006-09-25 2007-09-19 Robust critical section design in multithreaded applications

Publications (1)

Publication Number Publication Date
JP2010504581A true JP2010504581A (ja) 2010-02-12

Family

ID=39230629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009528848A Withdrawn JP2010504581A (ja) 2006-09-25 2007-09-19 マルチスレッドアプリケーションにおけるロバストなクリティカルセクション設計

Country Status (4)

Country Link
US (1) US20100037086A1 (ja)
JP (1) JP2010504581A (ja)
KR (1) KR20090071563A (ja)
WO (1) WO2008038195A2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8695000B1 (en) * 2007-03-16 2014-04-08 The Mathworks, Inc. Data transfer protection in a multi-tasking modeling environment having a protection mechanism selected by user via user interface
KR101080845B1 (ko) * 2009-10-30 2011-11-07 (주)지노게임즈 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템
US8495638B2 (en) 2010-09-08 2013-07-23 International Business Machines Corporation Component-specific disclaimable locks
US10798146B2 (en) * 2015-07-01 2020-10-06 Oracle International Corporation System and method for universal timeout in a distributed computing environment
CN110809020B (zh) * 2019-09-17 2022-02-08 北京工业大学 一种基于冗余网络异步通信的高可靠数据传输方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771382A (en) * 1995-06-05 1998-06-23 International Business Machines Corporation System and method for synchronizing static variable initialization and reference under a multi-threaded computer environment
KR0146551B1 (ko) * 1995-08-21 1998-09-15 양승택 임계영역을 지원하는 래치 관리방법
US6826752B1 (en) * 1998-12-17 2004-11-30 California Institute Of Technology Programming system and thread synchronization mechanisms for the development of selectively sequential and multithreaded computer programs
US7188344B1 (en) * 1999-12-21 2007-03-06 Unisys Corporation Architecture for a read/write thread lock
US6832367B1 (en) * 2000-03-06 2004-12-14 International Business Machines Corporation Method and system for recording and replaying the execution of distributed java programs
US6772153B1 (en) 2000-08-11 2004-08-03 International Business Machines Corporation Method and apparatus to provide concurrency control over objects without atomic operations on non-shared objects
US20020083063A1 (en) * 2000-12-26 2002-06-27 Bull Hn Information Systems Inc. Software and data processing system with priority queue dispatching
US7080376B2 (en) * 2001-09-21 2006-07-18 Intel Corporation High performance synchronization of accesses by threads to shared resources
US7231554B2 (en) * 2002-03-25 2007-06-12 Availigent, Inc. Transparent consistent active replication of multithreaded application programs
US7200846B2 (en) * 2002-08-05 2007-04-03 Sun Microsystems, Inc. System and method for maintaining data synchronization
US7117481B1 (en) * 2002-11-06 2006-10-03 Vmware, Inc. Composite lock for computer systems with multiple domains
US7594089B2 (en) * 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
US7770172B2 (en) * 2004-09-01 2010-08-03 Microsoft Corporation Conditional variables without spinlocks
US7844973B1 (en) * 2004-12-09 2010-11-30 Oracle America, Inc. Methods and apparatus providing non-blocking access to a resource
US8010969B2 (en) * 2005-06-13 2011-08-30 Intel Corporation Mechanism for monitoring instruction set based thread execution on a plurality of instruction sequencers

Also Published As

Publication number Publication date
KR20090071563A (ko) 2009-07-01
US20100037086A1 (en) 2010-02-11
WO2008038195A3 (en) 2008-10-23
WO2008038195A2 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
US5918248A (en) Shared memory control algorithm for mutual exclusion and rollback
US5966543A (en) Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US7418718B2 (en) Runtime hosting interfaces
US7788669B2 (en) System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
US6983461B2 (en) Method and system for deadlock detection and avoidance
EP2783291B1 (en) System and method for implementing locks shared between kernel and user space
US8413163B2 (en) Program control device including per-timeslot switching of thread execution
KR20140031947A (ko) 가상 분할 모니터링을 위한 시스템 및 방법
Verbeek et al. Formal API specification of the PikeOS separation kernel
JP2003186746A (ja) ハードウェア実施セマフォおよび他の同様のハードウェア実施直列化および順位付け機構を使用する、コンピュータ内でのメモリへのアクセスのハードウェア実施制御の方法
US20120284720A1 (en) Hardware assisted scheduling in computer system
JPH1115793A (ja) 資源の保全性を保護する方法
US9424104B2 (en) High performance locks
TWI678615B (zh) 在資料處理裝置中進行除錯
JP2010504581A (ja) マルチスレッドアプリケーションにおけるロバストなクリティカルセクション設計
Huyck ARINC 653 and multi-core microprocessors—Considerations and potential impacts
EP0715732B1 (en) Method and system for protecting shared code and data in a multitasking operating system
Hahm et al. Reliable real-time operating system for IoT devices
US6330528B1 (en) Method of terminating temporarily unstoppable code executing in a multi-threaded simulated operating system
US9021483B2 (en) Making hardware objects and operations thread-safe
US20070143738A1 (en) Method for efficient utilization of processors in a virtual shared environment
CN110998575B (zh) 在支持受保护执行环境的处理器上执行可信应用的方法和设备
RU2626350C1 (ru) Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса
US7689992B2 (en) Sharing lock mechanism between protocol layers
Georgiev et al. Some Analysis of the Timing Parameters in Real-time Embedded Systems

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20101207