JP2008529115A - マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法 - Google Patents

マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法 Download PDF

Info

Publication number
JP2008529115A
JP2008529115A JP2007551686A JP2007551686A JP2008529115A JP 2008529115 A JP2008529115 A JP 2008529115A JP 2007551686 A JP2007551686 A JP 2007551686A JP 2007551686 A JP2007551686 A JP 2007551686A JP 2008529115 A JP2008529115 A JP 2008529115A
Authority
JP
Japan
Prior art keywords
task
access
data
shared
target resource
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
JP2007551686A
Other languages
English (en)
Other versions
JP4866864B2 (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.)
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 JP2008529115A publication Critical patent/JP2008529115A/ja
Application granted granted Critical
Publication of JP4866864B2 publication Critical patent/JP4866864B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

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)
  • Multi Processors (AREA)

Abstract

本発明は、マルチ・プロセッサ又はマルチ・コンピュータ環境内で共有されるリソースへのアクセスを、これらのプロセッサが物理的に並列に作業している間も含めて、管理する方法に関する。そのようなアクセス管理は、そのような並列環境を使用するマルチ・タスク・アプリケーション内でのプロセスの機能を安定させ又は最適化するために、そのようなリソース(例えば共有されるメモリ)へのアクセスの制御を実行するために特に有益である。
この方法は、特に、その起動期間のうちの少なくとも1つ(SchA)に、アクセッシングと称される第1のタスク(TA)が、前記ターゲット・リソースへのアクセスを求めるリクエスト(InstrA)に応答して、アクセスを求める前記リクエストの直後に、前記ターゲット・リソースへの連続的と称されるアクセスを、すなわち、アクセッシング・タスクの全起動期間(SchA)にわたって少なくとも1つの第2タスク(TB)による前記ターゲット・リソース(ShMPi)へのアクセスを排除するように、割り当てることを含む。

Description

本発明は、マルチ・プロセッサ又はマルチ・コンピュータ環境内で共有されるリソースへのアクセスを、これらのプロセッサが物理的に並列に作業している間も、管理する方法に関する。そのようなアクセス管理は、そのような並列環境を使用するマルチ・タスク・アプリケーション内でのプロセスの機能を安定させ又は最適化するために、そのようなリソース(例えば共有されるメモリ)へのアクセスの制御を実行するために特に有益である。
並列環境は一般に現存するハードウェア・エレメントから、より大きな計算能力を得るために設計され使用される。大抵の場合に、これは、本質的にこれを念頭において設計された技術的な又は科学的なアプリケーションにおける煩わしくて複雑な計算の実行に当てはまる。
このような環境は、数個のプロセッサを単一のコンピュータに統合することにより作られ得、これは、これに要求される計算作業をそれらに分配する。時には数個のコンピュータがネットワークで結合されて、ユーザの介入を殆ど又は全く受けずに一定の作業負荷を分担するように管理される。
これらのいろいろな特定のエレメント(プロセッサ又はコンピュータ)が、後に再順序付けされる別々のタスクに対して同時に作業を行うことができるときには、例えば、単一のエレメントの作業時間を数個の仮想作業区域で分け合うことによりシミュレートされる並列性と対立するものとしての物理的並列性という用語が使用される。
マルチ・プロセッサ又はマルチ・コンピュータを必要とする物理的並列能力を備えた現存する環境は、大抵、全体として最大の計算能力を得るように設計され最適化される。そのために、いろいろなエレメントは、なるべく遠くに切り離され、エレメント間で殆ど協調すること無く、作業する。
例えばコスト或いは柔軟性についての理由から、大型の中央コンピュータの代わりに単独の又はグループを成すマイクロ・コンピュータ又はワークステーションを使用しようとすることが良くある。そのような機械は、より大きな能力を求めて並列に作業するマルチ・プロセッサ・バージョンとして存在し、或いは外部に対して単一の並列作業環境を構成する、すなわち外部に対して単一のレスポンデントとして振舞う、ネットワーク自体の中で並列に作業するために、グループ化され得る。
従って、膨大な計算アプリケーション、特に、企業経営領域、或いはワークステーション・ネットワーク、或いは通信ネットワークにおいて普通のトランザクション型のマルチ・タスク・アプリケーション、とは異なる或いは違うアプリケーションを実行するためにそのような並列環境を使用することは興味あることであろう。そのようなアプリケーションは、様々な構造を良く有し、同じ環境内で共有されるリソースを使用する数個のタスクを非常に良く含む。
しかし、これらのオペレーティング・システム又はこれらのアプリケーションは、モノ・プロセッサ・マシンのために設計されるので、物理的並列の場合のように実際に同時に実行されている2つのタスク間の干渉を処理するように設計されていないことが良くある。従って、同時に実行される数個のタスクが単一のデータにアクセスしなければならないときには(“競合状態”)、タスクによる読み出しの結果は、その読み出しの前又は後に別のタスクによる変更が生じたか否かによって非常に異なり得る。
また、マルチ・タスク・オペレーティング・システムの大多数は、実際に並列に作業する環境を管理するために設計されておらず、まして、共有されているリソースを直接アクセスで管理するためには設計されていない。共有タイプのアクセスのうち、初めに“マップ”型の命令により定められる共有されるメモリ・ゾーンのような、プログラム命令からのアドレス指定によりアクセス可能なものは直接アクセスと見なされ得る。
“オープン”、“リード”又は“ライト”のようなシステム・コールを用いて“パイプ”又は“ソケット”タイプのメッセージを渡すためのリソースのような、システム・コールを必要とする他の共有されるリソースに対立するものとして、並列の数個のタスクによる、直接アクセスを通してのこのタイプの共有リソースへのアクセスは、一般にシステム・ソフトウェアによって少し管理されるか或いは全く管理されない。従って、直接アクセスを通しての共有リソースへのアクセスの管理は、大抵、並列環境では殆ど完全にアプリケーションのタスクである。
従って、このタイプの環境では、これのために設計されていない現存するアプリケーションの使用は、それらがこの目的のために僅かに改変されるか或いは全く改変されなければ(レガシー・アプリケーション)、しばしば多数の問題を引き起こす。場合によっては、例えば単一のアプリケーションの中で別々のタスク間での干渉が管理されないために実行がランダムになるか或いは不可能にさえなり得る。
本発明の1つの目的は、広範或いは柔軟或いは良好に働く、並列環境内での共有されるリソースへのマルチ・タスクでのアクセスの管理又は制御を可能にすることである。
アプリケーションの機能が実行可能であったとしても、その実行は、このアプリケーションの機能の管理を実行するために問題を引き起こす可能性のある非確定的側面を非常にしばしば含む。そのような機能管理は、1つ以上のコンピュータの中での(それらが孤立していても例えば“クラスタ”の形でネットワーク化されていても)そのようなアプリケーションの実行を信頼可能化し、追跡又はデバッグ又は分散(“ロード・バランシング”)できるように、探求され得る。
しかし、このタイプの機能管理は、後に同様の又は同一の仕方でそのランニングを再生できるように、1つ以上のタスクの働きをロギングすることをしばしば含む。これらのロギング又は再生動作を、それに伴う性能低下を制限しながら、実行するためには、特に、それらの動作がもたらす結果において、管理されるタスク或いは管理されるアプリケーションに比して確定的である動作をこのランニングがなるべく含むことが有利である。
従って、並列構造を含む1つ以上のハードウェア環境内でこのようなアプリケーションを管理することをこの様に可能にするために、このアプリケーションで実行される動作のなるべく多くについて確定的挙動を得られることが重要である。
本発明の1つの目的は、共有されるリソースにアクセスする全ての又は一部の動作について、並列環境で確定的な挙動を得ることである。
このために、本発明は、各々のタスクが、それがシステムにより起動させられている期間全体の間、共有されているリソースへの排他的アクセスを得られるように、特に直接アクセスで、共有されるリソースへのアクセスを管理または制御することを可能にする方法を提案する。
この方法は、特に、少なくとも2つの演算装置において同時に数個のタスクを実行することのできる複数の計算手段を含む並列コンピュータ・システムにおいて実行される少なくとも1つのアプリケーションの中で複数のプログラム・タスクを順次起動(sequential activation)を通して管理するシステム・ソフトウェアにおいて実行される。この関係で、この方法は、前記タスクによりアクセス可能な少なくとも1つの共有されるリソース(ターゲット・リソースと称される)へのアクセスを管理する。
この管理はアクセッシング・タスク(accessing task)と称される第1のタスクを含み、このタスクは、その起動期間のうちの少なくとも1つの間に前記ターゲット・リソースへのアクセスを求めるリクエストに応答して、アクセスを求める前記リクエストの直後に、前記ターゲット・リソースへの排他的(又は“連続的”)と称されるアクセスを、すなわち、アクセッシング・タスクの起動期間の残余全体の間に少なくとも1つの第2タスクによる前記ターゲット・リソースへのアクセスを排除するように、受ける。
この方法は、並列コンピュータ・システムにおいて有利に実行され、その並列コンピュータ・システムでは、演算装置の少なくとも1つは、前記コンピュータ・システムのメモリ空間内に格納されている存在データと称される少なくとも1つのデータの値の関数として、所与のリソースへのアクセスを要求するプログラム命令の実行を中断させ、障害管理ソフトウェア・エージェントへのコールをトリガーすることのできる中断メカニズムを含む。
本方法は、次のステップ、すなわち
− アクセッシング・タスクの起動の期間において、ターゲット・リソースへのアクセスを要求する第1命令の実行を中断するステップ、
− 前記メモリ空間に格納されているアクセス・データと称される少なくとも1つのデータを障害マネージャがテストし、前記ターゲット・リソースが前記アクセッシング・タスクを排除する排他的アクセスで他のタスクに現在割り当てられているか否かを示すステップ、
− そのような排他的アクセスが他のタスクに既に割り当てられている場合に、アクセッシング・タスクの実行を一時停止又はその起動期間を終止するステップ、
− それとは反対の場合には、前記ターゲット・リソースに適用される排他的アクセスのアクセッシング・タスクへの割り当てを表す少なくとも1つのアクセス・データを前記メモリ空間に格納するステップ、
− アクセッシング・タスクの起動の期間の最後の命令の実行中又はこの最期の命令の後に、ターゲット・リソースを解放するために、ターゲット・リソースについて得られたその排他的アクセスを表すアクセス・データを改変するステップ、
をも含む。
有利には、本発明は、ターゲット・リソースのアクセス・データをテストするステップが、リソースがアクセッシング・タスクのために自由であることを示すときには、前記テスト・ステップに続く排他的アクセスを格納するステップがこのテスト・ステップと共に並列コンピュータ・システムの機能の中の単一の原子的動作を構成することを特徴とする。
より具体的には、本方法は次のステップ、すなわち
− スケジューラと称されるソフトウェア・エージェントによるタスクの一時停止の後又は一時停止のときに、前記一時停止されたタスクが排他的アクセスを保持している全ての共有されるリソースを識別して解放するために、一時停止されたタスクに対応する全ての存在データをテストすることを含む終止ステップ、
− 前記タスクの起動の期間を開始させるスケジューラと称されるソフトウェア・エージェントによるタスクの解放の前又は解放のときに、前記起動期間中これらの共有されるリソースの1つに対するこのタスクによるこの第1アクセス・リクエストがそのような中断ステップをトリガーするように、前記タスクによりアクセスされ得る全ての共有されるリソースに前記タスクについて対応する全ての存在データを初期化するステップ、
のうちの1つ以上を含む。
1つの特徴によれば、存在データ初期化ステップは、解放されたタスクに対応して、前記タスクが監視されるべきか否か、すなわちアクセス管理方法が前記タスクに適用されるべきか否かを示す、管理データと称されるデータの値のテストの結果に従う。
本発明によれば、少なくとも1つの監視されるタスクを含む少なくとも1つのアプリケーションの実行は、前記タスクが監視されなければならないことを示す少なくとも1つの管理データを記憶するランチャと称されるソフトウェア・エージェントにより開始させられ得る。
本発明によれば、アクセス管理を実行するソフトウェア構造のセットアップは、特に、現存するタスクから始まる、少なくとも1つの生成ソフトウェア・エージェントによる少なくとも1つの新しいタスクの生成又はインスタンス化を含むことができる。このタスク生成は、前記現存するタスクに対応して前記共有されるリソースに関連する存在データから出発して、前記新しいタスクに対応する、共有されるリソースに関連する少なくとも1つの存在データを生成することを含む。
更に、新しいタスクに対応する少なくとも1つの存在データは、マッピングに対して行われた改変に応じて、又は前記存在データが関連する共有されるリソースの割り当てに応じて、割り当てソフトウェア・エージェント(例えばマッピング・エージェント)により更新される。
本発明は、このセットアップとその更新との少なくとも一方を、システム内の、特にシステム・ソフトウェアの、純粋にソフトウェアのエレメントの改変又は計装化によって実行することも提案する。
そのような改変又は計装化は、特に、改変されたルーチンが事前ロードされているライブラリを用いるダイナミック・インターポジション手法により、少なくとも1つのシステム・コールのために、実行され得る。
本発明による方法は、特にユニックス又はリナックス型のオペレーティング・システム内で実行され得、そして“生成”又は“クローン”又は“マップ”型のシステム・コールの、或いはスケジューラ・ソフトウェア・エージェントの、或いはコンテキスト・チェンジ・マネージャの解放及び一時停止ルーチンの、或いはページ・フォールト・ハンドラ・ソフトウェア・エージェントの、或いはカーネル・メモリ・ストラクチャ・データ・テーブルの改変又は計装化を含む。
従ってこれは、例えば、ミドルウェア型の1つ以上の機能性管理アプリケーションにより管理されるクラスタを構成するネットワークなどのコンピュータ・ネットワークの少なくとも1つのノードの中で有利に実行され得る。従って本方法は、特に命令のシーケンスのロギング及び再生のときに、この機能管理の性能及び機能の拡張又は最適化を可能にする。
同じ環境において、本発明は、並列型の1つ以上のコンピュータ・システムに使用され或いは並列型システムを構成し、そして場合によってはネットワークで使用される、本発明の実行を含むシステムをも提案する。
本発明の他の特徴及び利点は、決して限定的ではない実施態様の方法についての詳細な記述と、添付図面とから明らかになろう。
図1において並列マルチ・プロセッサ環境の機能の例が示されており、それはマルチ・プロセッサ環境(例えばリナックス型のシステム)における第1プロセッサμProX 及び第2プロセッサμProYを含む。これら2つのプロセッサは、単一の作業メモリ空間RAMの中で並列に夫々タスクTA及びTBを各々実行し、スケジューラによって調整される。各タスクTA及びTBの起動期間中、そのプログラムEXEA、EXEBからの命令のシーケンスSchA、SchBがプロセッサμProX、μProYにおいて実行される。このシーケンスからの命令InstrA、InstrBの実行中、プロセッサは、レジスタRegA,RegB、スタックPilA,PilBなどの、その内部のリソースを使用することができる。
作業メモリRAMの中に、数個の共有されるメモリ・ゾーンShMPiないしShMPkが例えば“マップ”型の命令により確定されて、いろいろなタスクTA及びTBからそれらの物理的アドレスにより直接アクセスされ得る。
図1は従来技術からの事態を示しており、タスクTA及びTBは共通の期間にわたって並列に実行され、単一の共有されるメモリ・ゾーンShMPiへのアクセスを要求する命令InstrA及びInstrBを各々含む。これら2つのアクセス・リクエストは各プロセッサのメモリ管理ユニットMMUによって独立に処理11,13され、互いに無関係にこの共有されるメモリ・ゾーンに到達12,14する。
システム・コール型の一定の命令からだけアクセス可能であるリソースについては、これらの命令を実行するシステム・ルーチンを計装化すること、すなわちこれらのルーチンを改変すること或いはこれらのシステム・コールを遮断(intercept)するか又はこれらのシステム・コールに反応するエレメントをシステムに挿入することが可能である。ロギング及び再生による機能管理の関係では、この計装化は、後にそれを同一に再生できるようにするために、或いはこの動作が確定的になって記録不要となるようにこの動作を改変するために、特にその動作の記録を可能にすることができる。
これに反して、システム・コール無しで、従って潜在的に任意のプログラム命令から直接アクセス可能なリソースについては、大抵のオペレーティング・システムは、特にユニックス又はリナックス型のものは、この共有されるメモリ・ゾーンShMPiのレベルでこれらのアクセスの到着を制御することを可能にしない。
この問題を解決するために、図2及び3に示されているように、本発明は、現在他の機能のために使われている一定の現存するハードウェア機能を改変又は拡張するように、一定のシステム・ソフトウェア・エレメントのコードを改変すること、或いは一定の他のものを付け加えること、を提案する。
特に、現在のプロセッサのハードウェア特性を改変せずに、ユニックス又はリナックス型のシステム・ソフトウェアの少数のエレメントを改変することによって、この問題を解決することが可能である。従って、その上位互換性を犠牲にすること無く機能を付け加える少数の改変を現存するシステム・ソフトウェアにもたらすことによって、少し改変されたか又は改変されていないマルチ・タスク・アプリケーションを実行し管理するために、ありふれたタイプの、従って経済的で良く保証されている、機械を使用することが可能である。
このために、本発明は、例えばインテル社のペンティアム(Pentium)プロセッサやAMD社のアスロン(Athlon)などの、PCタイプのアーキテクチャに使用されるプロセッサのような最近の幾つかのマイクロ・プロセッサに存在する一定のメカニズムを使用する。これらの、特にペンティアム2以後の、プロセッサは、そのメモリ管理ユニットの中に仮想メモリ管理メカニズムを統合している。このメカニズムは、作業メモリにおいて確定されている一定のページを、それらが使用されない時にハードディスクに“アンロード”し、また、物理的メモリ内の対応するスペースを解放するためにそれらをそこに格納するために、使用される。現在実行中のアプリケーションのために、これらのページは依然として作業メモリにおいてリストされるが、それらは、タスクが実際にそれにアクセスできるようにハードディスクから物理的メモリに再び“ロード”されなければならない。
この仮想メモリを管理するために、図3に示されているように、システム・ソフトウェアは仮想メモリ・マネージャVMMを含んでおり、これは、仮想化可能なメモリの各ページについて、いろいろなアプリケーション・プロセスの各々の中にページ・テーブル・エントリ(“P.T.E.”)を生成する。プロセスの形で、すなわちそれに属する実行コンテキストで各々実行される2つのタスクTA及びTBについて、ページShMPiないしShMPkの各々は、タスクTAのプロセスでページ・テーブル・エントリPTEiAないしPTEkAを、またタスクTBのプロセスでページ・エントリ・テーブルPTEiBないしPTEkBを得る。
仮想メモリ・マネージャVMMはページ・ローダ・ソフトウェアPLを含んでおり、これはメモリ・ページをハードディスク上の“スワップ”ファイルにロードしアンロードするが、それは例えばマイクロソフト社のウィンドウズ・システムにおいて拡張子“.swp”を有するファイルである。ShMPiページの各々のロード及びアンロードの間、物理的メモリにおけるその存在又は不存在の状態は、VMMマネージャによって、それに対応するページ・テーブル・エントリPTEiA及びPTEiBの各々に格納され維持30される。これらのテーブルPTEiA及びPTEiBの中では、この存在状態は夫々データ・ビットPriA及びPriBの形で、存在については値1で不在については値0で、格納される。
各プロセッサμProX及びμProYの中で、メモリ・マネージャMMUX又はMMUYはページ・フォールト・インターラプト・メカニズムPFIntX又はPFIntYを含み、これを、実行されたプログラム命令InstrA又はInstrBから生じたアクセス・リクエストが通過する。もしプロセッサμProXにより実行されるタスクTAからの命令InstrAがメモリ・ページShMPiに関連するアクセスを要求33したならば、このプロセッサの中断メカニズムPFIntXは、対応するエントリ・テーブルPTEiA内のその存在ビットPriAの値を読むことによって、このページが物理的メモリRAM内に存在するか否か検査する。
もしこのビットPriAがそのページの存在を示すならば、中断メカニズムPFIntXはアクセスを許可する。反対の場合、この中断メカニズムPFIntAは、タスクTAの実行を中断させて、システム・ソフトウェアの仮想メモリ・マネージャVMMに含まれる“ページ・フォールト・ハンドラ”ソフトウェア・エージェントPFHにエラーのパラメータを送る。このフォールト・ハンドラPFHはそのとき実行されて、このエラーの結果をシステム・ソフトウェア内でアプリケーションに関して管理する。
図2は、本発明によって共有されるリソースへのアクセスを管理するためにこれらの現存するメカニズムがどのように改変改造若しくは転用されるかを示す。
そのような並列環境で実行されるアプリケーションAPPからのこれらのアクセスを管理するために、図2に示されているように、例えばユニックス又はリナックス型のシステムにおいて、このアプリケーションの実行を開始させるためにランチャ・ソフトウェアLCHが使用される。その開始時に、アプリケーションAPPに、実行“スレッド”ThrA1を含み、タスク・デスクリプタTDAを形成するデータベースを用いるプロセスの形の第1タスクTAが生成される。
このタスク・デスクリプタTDA内に、ランチャは、ここで管理ビットMmAと称される通常使用されないデータ・ビットの状態を1に変更することによって、このタスクTAが管理或いは“監視”されなければならないという事実を格納21する。
ここで共有されるメモリ・ページShMPi,ShMPj,及びShMPkと称される、作業メモリ内のいろいろな共有されるメモリ・ゾーンは、タスクTA内でページ・メモリ構造PMStrAを形成するデータ・テーブルにリストされる。この構造PMStrAにおいて、共有されるページは、前記のように仮想メモリ・マネージャVMMにより使用されるデータ・ビットPriA1ないしPrKA1を各々組み込んだページ・テーブル・エントリPTEiA1ないしPTEkA1の形で記述され更新される。通例、このページ構造PMStrAは、タスクTAと同時に生成されて、共有されるメモリにおける変化と共に、それらの変化を保証する“マップ“型のルーチンのようないろいろなシステム・ルーチンによって、更新20される。
管理されるアプリケーションAPPの実行中に、この第1タスクTAから又は同様に生成された他のものから、“生成”型の命令CREによって他のタスクが生成され得る。新たに生成されたタスクTBも、スレッドThrB1とタスク・デスクリプタTBと、ページ・メモリ構造PMStrBとを含む。その親タスクからの継承関係INHを通して、同様に最新に保たれるその存在ビットPriB1ないしPrkB1を伴ういろいろなページ・テーブル・エントリPTEiB1ないしPTEkB1を含む。
監視されるタスクTAからの新タスクTBの生成CRE時に、新タスクのデスクリプタTDBも管理ビットMmBを含み、その値は親タスクからの管理ビットMmAから継承INHされる。
管理されるアプリケーションAPPの実行中に、初めに単一のスレッドThrB1を有するプロセスの形で機能したタスクTBの中に他のスレッドが生成され得る。
現存して監視されるタスクTBの中で、“クローン”命令のようなシステム・コールによって新しいスレッドThrB2が生成される。通例、マルチ・スレッド・プロセスの形のタスクは、そのページ構造PMStrBの中にエントリ・テーブルPTEiB1ないしPTEkB1の唯一のセットを含む。本発明により、“クローン”システム・コールのような新しいスレッドを生成することのできるシステム・ルーチンの機能は、例えばそれに補助部分CSUPを統合することによって、改変される。この改変は、現存するタスクTBにおける新しいスレッドThrB2の生成が、テーブルPTEiB1ないしPTEkB1の現存するセットの読み出し22と、同じ共有されるページShMPIないしShMPkに対応して特に新しいスレッドThrB2で機能するページ・テーブル・エントリPTEiB2ないしPTEkB2の新しいセットの生成23とを含むように、設計される。この改変は、例えば、同じ出願人からのフランス(FR)特許第2 820 221号に記載されているように、システム内の共有されるライブラリのロードを通してのダイナミック・インタポジションの手法を用いることによって、これらのルーチンCLONEの計装化により行われ得る。
この生成は、新しいテーブルPTEiB2ないしPTEkB2もそれらの親テーブルPTEiB1ないしPTEkB1と同様に、それらをこの更新を管理するシステム・ルーチンMAPに更新のために登録することにより、又はこれらのシステム・ルーチンMAPを例えばそれらに補助部分MSUPを統合することによって計装化することにより、最新に保たれる24,25ことを保証するように、行われる。
図3は、2つのプロセッサμProX及びμProYで並列に実行される2つのモノ・スレッド・タスクTA及びTBを含む例に適用されたこの構造を使用するアクセス管理の機能を示す。各タスク内でクローニングされた各スレッドThrB2へのページ・テーブル・エントリPTEの構造の拡張は、監視されるタスク(それらがモノ・スレッドであってもマルチ・スレッドであっても)に属する全てのスレッドから生じたどんなアクセスをも同様に管理することを可能にする。
ここに記載される実施態様では、本発明によるアクセス管理は、共有されるメモリ・ページへの、それらのコヒーレンス(又は整合性)がシステム・ソフトウェアによって保証される起動期間の全体にわたって排他的であるアクセスを、プロセスTA又はTBの意味での、また各スレッドThrB1又はThrB2の意味での、各タスクに保証するために、構成される。そのような期間はここではシステム・ソフトウェアのスケジューラSCHにより割り当てられ管理される起動期間であると記述される。同じ意図で他のタイプのコヒーレンス期間が選択され得ることは明らかである。
また、それへのアクセスが管理または制御されるところの共有されるリソースは、ここでは、特定のメモリ・ゾーンとして又はメモリ・ページとして確定される共有されるメモリの形で記述される。他のタイプのリソースへも、それらに対応するシステム・ルーチンの類似の計装化によって同じ思想が適用され得る。
本発明の実施は、システム・ソフトウェアの幾つかのエレメントを、それらが以下に記載されるように機能するように、改変することを含み得る。必要な改変のレベルは、確かに、システム・ソフトウェアのタイプ又はバージョンによりまちまちであろう。リナックス型のシステムの場合には、それらの改変は、一般に、前記の“クローン”及び“マップ”型ルーチンの計装化と、スケジューラSCH、ページ・フォールト・ハンドラPFH及びページ・ローダPLを生じさせるエージェント内での改変及びコード追加とを含む。ここに記載されるタイプのアクセス制御を生じさせるために改変されるべきシステム機能は、有利には、標準的システムの機能と比べて全くの拡張に等しい、すなわち、機能を除去せず、或いは少なくとも標準的システム・バージョンのために開発されたアプリケーションとの上位互換性を犠牲にしない。
更に、仮想メモリ管理のためにプロセッサにおいて考慮されるハードウェア・メカニズムを使用するけれども、前記アクセス制御は、この仮想メモリの停止を必ずしも必要とせず、それと両立し得る。ページ・ローダPLは、例えば、物理的メモリRAMへの仮想ページShMPiのロードが、もしこのページが他のタスクTAによって既に使われているならば、監視されているタスクTBによってこのページの存在ビットPriBに反映されないように、計装化又は改変され得る。
図3に示されているように、その起動期間SchAの一つの開始時に、タスクTAは時点SCHALでスケジューラ0SCHにより解放される。このタスクを解放する前に、スケジューラSCHは、このタスクTAの管理ビットMmAを、それに対してアクセス制御が適用されなければならないか否かを確認するために、テスト31する。適用されなければならない場合には、このタスクTAによるアクセス・リクエストが、そこにおいてこのタスクTAが実行され得るようになるところの全てのプロセッサμProXのための中断メカニズムPFIntXにおいてデフォルトでページ・エラーを生じさせるように、スケジューラSCHは、このアクセス制御によって全ての共有される関連ページに対応するページ・テーブル・エントリPTEiAないしPTEkAの全ての存在ビットPriAないしPrkAを0にセット32する。
この起動期間SchAの間にプロセッサμProX内で、命令InstrAは、共有されるメモリ・ページShMPiへのアクセスを要求33する。対応する存在ビットPriAは0であるので、プロセッサμProXの中断メカニズムPFIntXは、このアクセス・リクエストの実行を一時停止させ、システム・ソフトウェアのページ・フォールト・ハンドラPFHを呼び出し、同時にそれにページ及び問題のタスクのIDを送る。
従って、このエラーを処理するとき、ページ・フォールト・ハンドラPFHの補助機能PFHSUPは、システム・ソフトウェアの仮想メモリ・マネージャVMM内のカーネル・メモリ構造KMStr(“カーネル・メモリ構造”)エージェントを形成するデータ・テーブル内でテスト及び改変の少なくとも一方を実行する。
通例、このカーネル・メモリ構造KMStrは、作業環境の全てについて又は作業メモリの全てについて一意的に、メモリ・リソースの構造とそれらの展開(development)とを表すデータを記憶する。本発明によれば、このカーネル・メモリ構造KMStrは、ここでアクセス・ビットKSi、KSj及びKSkと称されるデータ・ビットのセットも含んでおり、これらのビットは、問題の共有されるページShMPiないしShMPkの各々について、このページへのアクセスがタスクに対して現在許可されているか(ビットは1)又は許可されていない(ビットは0)という事実を表す。
ページ・フォールト・ハンドラPFHは、プロセッサμProXにより送られたエラーを処理するとき、問題のShMPiページに対応するアクセス・ビットKSiを調べる34。もしこのアクセス・ビットが現在のアクセスを示していなければ、それは、それがこのページへのアクセスを許可したことを格納するためにこのアクセス・ビットKSiを改変34し、また、このタスクTAが問題のページShMPPiへの排他的アクセスを今持っているという事実を格納するために、要求をしているタスクTAに対応する存在ビットPriAを改変35する(ビットは1に変化する)。
カーネル・メモリ構造KMStrのアクセス・ビットKSiのこれらのテスト及び改変動作は原子的に実行される動作34である、すなわち、それがマルチ・プロセッサ環境においても完全に成し遂げられるか又は全く成し遂げられないということが保証される。
ページ・フォールト・ハンドラPFIntは、要求されたページShMPiに関して排他性を割り当てると、命令InstrAの実行を再開させ、それは実際にこのページの内容にアクセス36する。
その後、他のプロセッサμ0ProYにより並列に実行される他の監視されるタスクTBからの命令InstrBがこの既に割り当てられているページShMPiへのアクセスを要求37したならば、このプロセッサの中断メカニズムPFIntYも、要求をしているタスクTBのためにこのページの存在ビットPriBを調べる。タスクTBは監視されるタスクであるので、調べられる存在ビットPriBは不在位置(値0)にある。従って、中断メカニズムPFIntYは要求をしている命令InstrBを一時停止させて、エラーをページ・フォールト・ハンドラPFHに送る38。
このとき、このページ・フォールト・ハンドラPFHは、このページのアクセス・ビットKSiが1で、このページShMPiに関する排他性が既に他のタスクに許可されていることを示すことに留意する。従って、ページ・フォールト・ハンドラPFHは、要求をしているタスクTBの全体の一時停止を、例えばその起動期間をシステム・ソフトウェア・コンテキスト・チェンジ・マネージャに終わらせることによって、開始39する。従って、その次の起動期間に、このタスクTBは、その実行を、正確にそれが中断させられたポイントまで繰り返して行い、そしてもう一度この同じページShMPiにアクセスしようと試みることができる。
要求をしているタスクがマルチ・スレッド・プロセスに属するスレッドThrB2(図2)である場合には、この単一のスレッドThrB2に固有のページ・テーブル・エントリPTEiB2のセットの存在は、排他的アクセスに既に割り当てられているページへのアクセスを要求したスレッドだけを中断させ、この排他性と矛盾しない他のスレッドThrB1を中断させないことを可能にする。
各タスクの起動期間SchAの完了SCHAS時に、スケジューラは、このタスクの実行を一時停止させ、その実行コンテキストをバックアップする。
この一時停止SCHASに関して、又は既に割り当てられているページ・リクエストでの一時停止39に関して、本発明は、それについてこのタスクが排他的アクセスを受けたところの全ての共有されるメモリ・ページについて、解放フェーズも考慮する。すなわち、スケジューラSCHは、一時停止中のタスクTAが監視されていることに管理ビットMmAを通して気づいた301場合、いろいろな存在ビットPriAないしPrkAの状態を調べることによって、それがどのページに関して排他的アクセスを有するかを確認するために、このタスクの全てのページ・テーブル・エントリPTEiAないしPTEkAをスキャンする。この情報に基づいて、それは、これらのページShMPiの全てを、カーネル・メモリ構造KMStr内のそれらのアクセス・ビットKSiをゼロにリセットすることによって、解放する。
他の表されていない変化形では、管理又は監視の思想を、例えば単一のタスク・デスクリプタ内の数個の管理ビットを考慮することによって、幾つかのタイプの管理に分解することも可能である。従って、タスクは、一定のカテゴリーのタスクに関して排他的アクセスから利益を得るように監視され得る。同様に、タスクは、一定のカテゴリーのタスクによってのみ排除され得る。
既に割り当てられているページへのアクセスを探し求める全てのタスクを一時停止させることを通して、この様にして一時停止させられた他のタスクの実行のコヒーレンスを乱すこと無く、このページの排他性が、それを要求した第1タスクのために得られる。
従って、同時に実行されている2つのタスクにより共有される単一のメモリ・ゾーンの改変を避けることを通して、これは、このメモリ・ゾーンの内容の変更時にそれらの間の干渉を回避する。このメモリ・ゾーンについて所与の初期状態から、それにアクセスするタスクの各起動期間の開始のときに、その内容の変化は、この起動期間中のこのタスクの動作だけによる。例えば予定された起動期間などの、このタスクにより実行される命令の所与のシーケンスについて、既知の初期状態から出発することにより、このシーケンスの、確定的であってこのタスクに関して反復可能な実行を得ることが可能である。
特に、アクセスされるメモリ・ゾーンに関する排他性の割り当てを格納するために原子的動作を使用するので、本方法は、それへのアクセスを探し求める複数のタスク間で共有される単一のリソースのデッドロックのリスクを回避又は低減することを可能にする。
更に、本発明のソフトウェアがたいてい純粋に実行されるという事実の故に、これが組み込んだ利点を持って標準的ハードウェアを使用することが可能である。
ここに記載されたアクセス制御の機能は、システム・ソフトウェアもアプリケーションも、各タスクがその解放中にそこにおいて実行されるところのプロセッサの選択を知り或いは決定しなくてもよいという意味において、ソフトウェア部分をハードウェア部分から完全に分離して使用する。ハードウェアに関して良好な独立性が得られ、それは、特に、インプリメンテーションをより単純に且つ信頼できるものにし、またアーキテクチャ自体がいろいろな計算エレメント(プロセッサ又はコンピュータ)の並列性を最善に管理することを可能にすると同時に良好な性能を保存する。
本発明は、特に、単一の計算エレメント上で時分割(shared time)で機能するマルチ・タスク・アプリケーションのために開発された並列環境動作管理手法に及ぶことができる。従って本発明は特にそのような並列環境をネットワーク又はクラスタに統合することができ、そこでこの動作管理は、例えば“オンデマンド”サービスを提供する分散アプリケーション又は可変配置アプリケーション(variable deployment applications)を管理するために、ミドルウェア型のアプリケーションの中で実行される。
明らかに、本発明は前記の例には限定されなくて、本発明の枠組みから逸脱せずにそれらに多数の変更を加えることができる。
単一の環境の2つの異なるプロセッサにより並列に実行される2つのタスクに共有されるメモリへのアクセスの、従来技術による機能の説明図である。 単一の環境の数個の異なるプロセッサで並列に実行される数個のタスクに共有されるメモリ・ページへのアクセスの制御を可能にする構造の、タスクの中での生成及び維持を本発明に従って示す。 単一の環境の2つの異なるプロセッサで並列に実行される2つのタスクに共有されるメモリ・ページへのアクセスの制御の機能を本発明に従って示す。

Claims (13)

  1. 少なくとも2つの演算装置(μProX,μProY)において同時に数個のタスクを実行することのできる複数の計算手段を含む並列コンピュータ・システムにおいて実行される少なくとも1つのコンピュータ・アプリケーション(APP)の中で複数のプログラム・タスク(TA,TB)を順次起動を通して管理するシステム・ソフトウェアで実行されるアクセス管理方法であって、この方法は、前記タスク(TA,TB)によりアクセス可能な少なくとも1つの共有されるターゲット・リソースと称されるリソース(ShMPi)へのアクセスを管理し、
    アクセッシング・タスクと称される第1のタスク(TA)が、その起動期間のうちの少なくとも1つ(SchA)に、前記ターゲット・リソースへのアクセスを求めるリクエスト(InstrA)に応答して、アクセスを求める前記リクエストの直後に、前記ターゲット・リソースへの排他的と称されるアクセスを、すなわち、前記アクセッシング・タスクの前記起動期間(SchA)の残余全体の間に少なくとも1つの第2タスク(TB)による前記ターゲット・リソース(ShMPi)へのアクセスを排除するように、受信することを特徴とする方法。
  2. 前記演算装置の少なくとも1つ(μProX)は、前記並列コンピュータ・システムのメモリ空間(RAM)内に格納されている存在データと称される少なくとも1つのデータ(PriA)の値の関数として、所与のリソースへのアクセスを要求するプログラム命令の実行を中断させ、障害管理ソフトウェア・エージェントへのコールをトリガーすることのできる中断メカニズム(PFIntX)を含み、この方法は、
    − 前記アクセッシング・タスク(TA,TB)の起動の期間(SchA,SchB)において、前記ターゲット・リソースへのアクセスを要求(33,37)する第1命令(InstrA,InstrB)の実行を中断(PFIntX,PFIntY)するステップと、
    − 前記メモリ空間に格納されているアクセス・データ(KSi)と称される少なくとも1つのデータをフォールト・ハンドラ(PFH)がテストし(34)、前記ターゲット・リソースが前記アクセッシング・タスク(TA,TB)を排除する排他的アクセスで他のタスクに現在割り当てられているか否かを示すステップと、、
    − そのような排他的アクセスが他のタスク(TA)に既に割り当てられている場合に、前記アクセッシング・タスク(TB)の実行を一時停止(39)又はその起動期間を終止するステップと、
    − そうでない場合には、前記ターゲット・リソース(ShMPi)に適用される排他的アクセスの前記アクセッシング・タスク(TA)への割り当てを表す少なくとも1つのアクセス・データ(KSi)の前記メモリ空間に格納(34)するステップと、
    − 前記アクセッシング・タスク(TA)の前記起動の期間(SchA)の最後の命令の実行中又はこの最期の命令の後に、前記ターゲット・リソース(ShMPi)を解放するために、前記ターゲット・リソースについて得られたその排他的アクセスを表す前記アクセス・データ(KSi)を改変(303)するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  3. 前記ターゲット・リソースの前記アクセス・データをテストする前記ステップが前記リソースが、前記アクセッシング・タスクのために自由であることを示すときには、前記テスト・ステップに続く排他的アクセスを格納するステップがこのテスト・ステップと共に前記並列コンピュータ・システムの機能の中の単一の原子的動作(34)を構成することを特徴とする請求項2に記載の方法。
  4. スケジューラ(SCH)と称されるソフトウェア・エージェントによるタスク(TA)の一時停止(SCHAL)の後又は一時停止のときに、前記タスクが排他的アクセスを保持している全ての共有されるリソースを識別して解放するために、前記一時停止されたタスク(TA)に対応する全ての前記存在データ(PriAないしPrkA)をテスト(302)することを含む終止ステップを更に含むことを特徴とする請求項2又は3の1つに記載の方法。
  5. 前記タスクの起動の期間(SchA)を開始させるスケジューラ(SCH)と称されるソフトウェア・エージェントによるタスク(TA)の解放(SCHAL)の前又は解放のときに、前記起動期間中これらの共有されるリソースの1つに対するこのタスクによる各第1アクセス・リクエストが中断ステップ(PFIntX)をトリガーするように、前記タスク(TA)によりアクセスされ得る全ての前記共有されるリソース(ShMPiないしShMPk)に前記タスクについて対応する全ての前記存在データを初期化するステップ(33)を更に含むことを特徴とする請求項2ないし4の1つに記載の方法。
  6. 前記存在データ初期化ステップ(33)は、解放された前記タスク(TA)に対応して、前記タスクが監視されるべきか否か、すなわち前記アクセス管理方法が前記タスクに適用されるべきか否かを示す、管理データ(MmA)と称されるデータの値のテスト(31)の結果に従うことを特徴とする請求項5に記載の方法。
  7. 少なくとも1つの新しいタスク(ThrB2)が現存するタスク(ThrB1)から少なくとも1つの生成ソフトウェア・エージェント(CLONE,CSUP)によってインスタンス化又は生成され、この生成は、前記現存するタスク(ThrB1)に対応して前記共有されるリソースに関連する存在データ(PriB1)から出発して、前記新しいタスク(ThrB2)に対応する、共有されるリソース(ShMPi)に関連する少なくとも1つの存在データ(PriB2)を生成(22,23)することを含むことを特徴とする請求項1ないし6の1つに記載の方法。
  8. 前記新しいタスク(ThrB2)に対応する少なくとも1つの存在データ(PriB2)は、前記存在データが関連する前記共有されるリソース(ShMPi)の割り当てに対して行われた改変に応じて、割り当てソフトウェア・エージェント(MAP,MSUP)により更新されることを特徴とする請求項7に記載の方法。
  9. 少なくとも1つの監視されるタスク(TA)を含む少なくとも1つのアプリケーション(APP)の実行は、前記タスク(TA)が監視されなければならないことを示す少なくとも1つの管理データ(MmA)を記憶するランチャと称されるソフトウェア・エージェント(LCH)により開始させられることを特徴とする請求項6ないし8の1つに記載の方法。
  10. 前記方法は、ユニックス又はリナックス型のオペレーティング・システム内で実行され、“生成”又は“クローン”又は“マップ”型のシステム・コールの、或いはスケジューラ・ソフトウェア・エージェント(SCH)の、或いはコンテキスト・チェンジ・マネージャの解放及び一時停止ルーチンの、或いはページ・フォールト・ハンドラ・ソフトウェア・エージェント(PFH)の、或いはカーネル・メモリ・ストラクチャ・データ・テーブル(KMStr)の改変又は計装化を含むことを特徴とする請求項1ないし9の1つに記載の方法。
  11. 少なくとも1つのシステム・コールが、改変されたルーチンの事前ロードされたライブラリを用いるダイナミック・インターポジション手法を通して計装化されることを特徴とする請求項10に記載の方法。
  12. 前記方法はコンピュータ・ネットワークの少なくとも1つのノードの中で実行されることを特徴とする請求項1ないし11の1つに記載の方法
  13. 請求項1ないし12の1つに記載の方法を実行するシステム。
JP2007551686A 2005-01-24 2006-01-24 マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法およびプログラム Expired - Fee Related JP4866864B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0500720 2005-01-24
FR0500720A FR2881239B1 (fr) 2005-01-24 2005-01-24 Procede de gestion d'acces a des ressources partagees dans un environnement multi-processeurs
PCT/EP2006/050405 WO2006077261A2 (en) 2005-01-24 2006-01-24 Method for managing access to shared resources in a multi-processor environment

Publications (2)

Publication Number Publication Date
JP2008529115A true JP2008529115A (ja) 2008-07-31
JP4866864B2 JP4866864B2 (ja) 2012-02-01

Family

ID=34954503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007551686A Expired - Fee Related JP4866864B2 (ja) 2005-01-24 2006-01-24 マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法およびプログラム

Country Status (6)

Country Link
US (1) US20080109812A1 (ja)
EP (1) EP1842130A2 (ja)
JP (1) JP4866864B2 (ja)
CN (1) CN100533393C (ja)
FR (1) FR2881239B1 (ja)
WO (1) WO2006077261A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1936498A1 (en) * 2006-12-21 2008-06-25 International Business Machines Corporation A method and system to manage memory accesses from multithread programs on multiprocessor systems
US7856536B2 (en) 2007-10-05 2010-12-21 International Business Machines Corporation Providing a process exclusive access to a page including a memory address to which a lock is granted to the process
US8055855B2 (en) 2007-10-05 2011-11-08 International Business Machines Corporation Varying access parameters for processes to access memory addresses in response to detecting a condition related to a pattern of processes access to memory addresses
US7770064B2 (en) 2007-10-05 2010-08-03 International Business Machines Corporation Recovery of application faults in a mirrored application environment
US7921272B2 (en) 2007-10-05 2011-04-05 International Business Machines Corporation Monitoring patterns of processes accessing addresses in a storage device to determine access parameters to apply
CN101276294B (zh) * 2008-05-16 2010-10-13 杭州华三通信技术有限公司 异态性数据的并行处理方法和处理装置
JP2010113574A (ja) * 2008-11-07 2010-05-20 Panasonic Corp マルチプロセッサにおける資源の排他制御方法、排他制御システムおよびその関連技術
US8490181B2 (en) 2009-04-22 2013-07-16 International Business Machines Corporation Deterministic serialization of access to shared resource in a multi-processor system for code instructions accessing resources in a non-deterministic order
US9164812B2 (en) 2009-06-16 2015-10-20 International Business Machines Corporation Method and system to manage memory accesses from multithread programs on multiprocessor systems
KR20110095050A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 공유 라이브러리 디버깅 장치
US8397217B2 (en) * 2010-02-22 2013-03-12 International Business Machines Corporation Integrating templates into tests
US9069893B2 (en) * 2011-03-23 2015-06-30 International Business Machines Corporation Automatic verification of determinism for parallel programs
CN103049420A (zh) * 2011-10-17 2013-04-17 联想(北京)有限公司 内存复用方法及便携终端
US20130262814A1 (en) * 2012-03-29 2013-10-03 Advanced Micro Devices, Inc. Mapping Memory Instructions into a Shared Memory Address Place
CN103793265B (zh) 2012-10-30 2016-05-11 腾讯科技(深圳)有限公司 优化进程的处理方法及装置
CN104461730B (zh) * 2013-09-22 2017-11-07 华为技术有限公司 一种虚拟资源分配方法及装置
US20180067848A1 (en) * 2015-07-30 2018-03-08 Hewlett Packard Enterprise Development Lp Memory access control method and system
CN105159766B (zh) * 2015-08-31 2018-05-25 安一恒通(北京)科技有限公司 数据的同步访问方法和同步访问装置
CN105843690A (zh) * 2016-03-14 2016-08-10 乐视移动智能信息技术(北京)有限公司 一种进行调试信息传输的方法及移动终端
US10402218B2 (en) * 2016-08-30 2019-09-03 Intel Corporation Detecting bus locking conditions and avoiding bus locks
CN109471734A (zh) * 2018-10-27 2019-03-15 哈尔滨工业大学(威海) 一种新型缓存优化多线程确定性方法
JP2020160483A (ja) * 2019-03-25 2020-10-01 株式会社東芝 評価装置、システムlsi及びシステムlsiのための評価プログラム
CN114020470B (zh) * 2021-11-09 2024-04-26 抖音视界有限公司 资源分配方法、装置、可读介质及电子设备
CN116049812B (zh) * 2022-06-28 2023-10-20 荣耀终端有限公司 访问硬件资源的方法和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232747A (ja) * 1989-02-03 1990-09-14 Digital Equip Corp <Dec> マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理
JPH04314151A (ja) * 1991-04-12 1992-11-05 Nec Corp 共用データ域破壊防止方式
JPH05216614A (ja) * 1991-07-05 1993-08-27 Sun Microsyst Inc 共用オフスクリーン・ピクセル記憶装置を付与する方法と装置
JPH09293055A (ja) * 1996-04-26 1997-11-11 Nec Corp 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02195453A (ja) * 1989-01-25 1990-08-02 Toshiba Corp ファイルアクセス制御方式
US5016166A (en) * 1989-04-12 1991-05-14 Sun Microsystems, Inc. Method and apparatus for the synchronization of devices
US5774731A (en) * 1995-03-22 1998-06-30 Hitachi, Ltd. Exclusive control method with each node controlling issue of an exclusive use request to a shared resource, a computer system therefor and a computer system with a circuit for detecting writing of an event flag into a shared main storage
US7424712B1 (en) * 1999-04-30 2008-09-09 Sun Microsystems Inc System and method for controlling co-scheduling of processes of parallel program
US6587964B1 (en) * 2000-02-18 2003-07-01 Hewlett-Packard Development Company, L.P. Transparent software emulation as an alternative to hardware bus lock
FR2820221B1 (fr) * 2001-02-01 2004-08-20 Cimai Technology Procede et systeme pour gerer des executables a bibliotheques partagees

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232747A (ja) * 1989-02-03 1990-09-14 Digital Equip Corp <Dec> マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理
JPH04314151A (ja) * 1991-04-12 1992-11-05 Nec Corp 共用データ域破壊防止方式
JPH05216614A (ja) * 1991-07-05 1993-08-27 Sun Microsyst Inc 共用オフスクリーン・ピクセル記憶装置を付与する方法と装置
JPH09293055A (ja) * 1996-04-26 1997-11-11 Nec Corp 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体

Also Published As

Publication number Publication date
FR2881239B1 (fr) 2007-03-23
JP4866864B2 (ja) 2012-02-01
WO2006077261A3 (en) 2007-10-25
US20080109812A1 (en) 2008-05-08
FR2881239A1 (fr) 2006-07-28
EP1842130A2 (en) 2007-10-10
CN101133396A (zh) 2008-02-27
WO2006077261A2 (en) 2006-07-27
CN100533393C (zh) 2009-08-26

Similar Documents

Publication Publication Date Title
JP4866864B2 (ja) マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法およびプログラム
JP5505914B2 (ja) 単一プロセッサまたはマルチプロセッサ・コンピュータ・システムにおけるマルチタスク・アプリケーションのロギングおよび再生を最適化する方法
JP5102634B2 (ja) 決定的イベント・シーケンスのロギングおよび再生のための命令をカウントする方法
US8032899B2 (en) Providing policy-based operating system services in a hypervisor on a computing system
KR101031409B1 (ko) 동적으로 가상 머신을 생성하기 위한 방법, 제조물품 및 시스템
US9875122B2 (en) System and method for providing hardware virtualization in a virtual machine environment
JP4791461B2 (ja) ランタイムシステムにおけるオブジェクトを共有するためのプログラム、方法、装置
JP4837660B2 (ja) ランタイムシステムにおけるオブジェクトを共有するためのプログラム、方法、装置
RU2398267C2 (ru) Иерархическая виртуализация посредством многоуровневого механизма виртуализации
US8490181B2 (en) Deterministic serialization of access to shared resource in a multi-processor system for code instructions accessing resources in a non-deterministic order
US7971205B2 (en) Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status
JP5519909B2 (ja) アプリケーション・プロセスにおいて内部イベントをリプレイするための非侵入的方法およびこの方法を実装するシステム
US20090328058A1 (en) Protected mode scheduling of operations
JP2007538325A (ja) ランタイムシステムの共有プログラム、方法、装置
KR20040086214A (ko) 인핸스드 런타임 호스팅
JP2008529114A5 (ja)
JP2010514030A (ja) マルチプロセッサ・コンピュータ上で実行するプロセスにより生成されるスレッドによってメモリへのアクセスを制御する方法、コンピュータ・プログラムおよびシステム
JP7015203B2 (ja) アプリの実行方法
US20090241111A1 (en) Recording medium having instruction log acquiring program recorded therein and virtual computer system
Agrawal Fundamental Objects in Kubernetes Clusters
CN114691297A (zh) 一种信息读写方法、电子设备、分布式系统以及程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20110803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111114

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

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees