JPH09502558A - マルチタスクオペレーティングシステムにおける共用コード及びデータを保護するための方法およびシステム - Google Patents

マルチタスクオペレーティングシステムにおける共用コード及びデータを保護するための方法およびシステム

Info

Publication number
JPH09502558A
JPH09502558A JP8503459A JP50345996A JPH09502558A JP H09502558 A JPH09502558 A JP H09502558A JP 8503459 A JP8503459 A JP 8503459A JP 50345996 A JP50345996 A JP 50345996A JP H09502558 A JPH09502558 A JP H09502558A
Authority
JP
Japan
Prior art keywords
code
scheduled
ownership
threads
synchronization mechanism
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
JP8503459A
Other languages
English (en)
Other versions
JP3837453B2 (ja
Inventor
マイケル エイ シュミット
ジョナサン ジー トマソン
スコット エム カッツホール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH09502558A publication Critical patent/JPH09502558A/ja
Application granted granted Critical
Publication of JP3837453B2 publication Critical patent/JP3837453B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Abstract

(57)【要約】 マルチタスクオペレーティングシステムにおける共用コード及びデータ、特に、共用システムコード及びデータを保護する方法及びシステムが提供される。オペレーティングシステムは、協調型サブシステムと割り込み型サブシステムとを備える。協調型サブシステムは、共用システムコード及びデータを備える。この方法及びシステムは、スレッドによって共用システムコード及びデータへのアクセスを制御するための同期メカニズムを備える。同期メカニズムの所有権は、協調的に予定されたスレッドが協調型サブシステムにおいて実行できるようになる前に要求され、獲得されなければならない。さらに、同期メカニズムの所有権は、協調型サブシステムにおける共用システムコードを割り込み的に予定されたスレッドが実行可能になる前に要求され、獲得されなければならない。同期メカニズムが既に所有されている場合には、要求スレッドは、所有権が解放されるまでブロックされる。そうでなければ、要求スレッドが、所有権を許可されることになる。あるスレッドが同期メカニズムを所有している間は他のスレッドは同期メカニズムの所有権を獲得することはできないので、協調型サブシステムにおける共用システムコード及びデータは、保護される。

Description

【発明の詳細な説明】 マルチタスクオペレーティングシステムにおける共用コード 及びデータを保護するための方法およびシステム 背景技術 1.発明の分野 本発明は、一般に、マルチタスクオペレーティングシステムに関し、特に、マ ルチタスクオペレーティングシステムの共用コード及びデータを保護するための 方法及びシステムに関する。 2.関連技術の説明 多くのオペーレーティングシステムがマルチタスクを支持している。あるタス クは、独立したエンティティとして実行されるスタンド−アローン・アプリケー ションプログラムすなわちサブプログラムである。 マルチタスクは、コンピュータのシステムのコンポーネントの効率を改良する ために、一度にメモリ内に1以上のタスクを持つ、現在実行しているいずれかの タスクに切換えるコンピュータの能力である。 マルチタスクオペレーティングシステムは、共用コード及びデータを保護する ためのメカニズムを提供する。共用コードは、1つ以上のタスクによって実行す ることができるコードであり、共用データは、1つ以上のタスクによってアクセ スすることができるデータである。マルチタスクオペレーティングシステムによ って提供されるメカニズムは、コード共用及びデータ共用に関係する問題を防止 する。コード共用及びデータ共用の問題は、1つのタスクが共用コードが処理す る共用コード及びあるいはデータを変更し、その共用コードあるいは共用データ が変更されたのち他のタスクが開始しあるいは継続してその共用コードを使用す る場合に、発生する。コードあるいはそのデータの変更の後、開始し、あるいは 継続して実行されるタスクはそのコード及びデータに対する変更によって意外な 結果を生じせしめる可能性がある。 マルチタスクオペレーティングシステムの1つのタイプは、非割り込み型、す なわち、協調型、マルチタスクオペレーティングシステムである。協調型マルチ タスクオペレーティングシステムでは、コンピュータシステムが適正に機能する ために、タスク間の協調が必要となる。そのようなオペレーティングシステムに ついて、第1のタスクがCPUの制御に割りつけられると、他のスベテのタスク は、その第1のタスクがCPUの制御を放棄するまで、ブロック(たとえば、C PUの制御が得られなくなる)される。したがって、共用コード及びデータは、 そのようなオペレーティングシステムで本来的に保護される。特に、CPUの制 御は、いったんタスクが割りつけられると、タスクから離れることはできないの で、あるタスクが共用コードあるいはそのデータを変更し、他のタスクが、その 共用コードあるいはそのデータが変更された後に他のタスクが開始し、あるいは 、その共用コードの実行を継続することは不可能である。CPUの制御に割りつ けられたタスクはそのタスクが共用コードの実行を完了するまでCPUの制御を 放棄しない。 他の形式のマルチタスクオペレーティングシステムは、割り込み型マルチタス クオペレーティングシステムである。協調型システムと異なり、割り込み型マル チタスクオペレーティングシステムは、コンピュータシステムが適正に機能する ために、タスク間の協調は必要とならない。このようなオペレーティングシステ ムに関し、システムは、1つのタスクに対してCPUの制御を割りつけ、その後 特定の時間が経過するか、特定の事象が発生したときそのタスクから制御を引き 上げる。したがって、共用コードと共用データは、そのようなオペレーティング システムに、本来的に保護されているものではない。例えば、あるタスクは、オ ペレーティングシステムが当該タスクからCPUの制御を引き上げるときに共用 コードあるいはそのデータを変更することができる。この結果、共用コードある いはそのデータが変更された後において、他のタスクがCPUの制御に割りつけ られ、その共用コードの実行を開始あるいは継続することができる。この結果、 この状況によって、上記したコード共用及びデータ共用問題が生じる可能性があ る。 発明の概要 本発明の1つの特徴は、共用コード及びデータを保護するための方法及びシス テムを提供することであり、特に、マルチタスクオペレーティングシステムにお ける共用システムコード及びデータを保護するための方法を及びシステムを提供 することである。このオペレーティングシステムは、協調型サブシステムと割り 込み型サブシステムとを備えている。協調型サブシステムは、共用システムコー ド及びデータを含んでいる。この方法及びシステムは、スレッドによって共用シ ステムコード及びデータにアクセスするように制御するための同期メカニズムを 備えている。同期メカニズムの所有権は、協調的に予定されたスレッドがが協調 型サブシステムで実行することができるようになる前に要求され、かつ獲得され なければならない。さらに、同期メカニズムの所有権は、割り込み的に予定され たスレッドが協調型サブシステムにおける共用システムコードを実行することが できるようになる前に、要求され、獲得されなければならない。同期メカニズム が既に所有されている場合には、所有権が解放されるまで要求スレッドはブロッ クされる。そうでなければ、要求スレッドは所有権を許可されることになる。他 のいずれのスレッドも、あるスレッドが同期メカニズムを所有している間は、同 期メカニズムの所有権を得ることができないので、協調型サブシステムにおける 共用システムコード及びデータは保護される。 図面の簡単な説明 図1は、本発明の好ましい実施例が動作するコンピュータシステムのコンポー ネントを図示するブロックダイヤグラムであり、 図2は、図1のオペレーティングシステムのコンポーネントをさらに詳細に図 示したブロックダイヤグラムであり、 図3は、本発明の好ましい実施例にしたがって16−ビット−スレッドがミュ ーテックスの所有権を要求し、獲得し、そして解放するかを図示したハイ−レベ ルフローチャートであり、 図4及び図5は、本発明の好ましい実施例にしたがって32−ビット−スレッ ドがミューテックスの所有権を要求し、獲得し、そして解放するかを図示したハ イ−レベルフローチャートである。 好ましい実施例の詳細な説明 本発明の好ましい実施例は、共用コード及びデータ、特に、マルチタスクオペ レーティングシステムにおける共用システムコード及びデータを保護する方法と システムを提供するものである。 本発明の方法及びシステムは、マルチタスクオペレーティングシステムにおけ る共用システムコード及びデータを保護する同期メカニズムを備えている。オペ レーティングシステムは、協調型サブシステム及び割り込み型サブシステムを備 えている。協調型サブシステムは、共用システムコード及びデータを含んでいる 。後述するように同期メカニズムの所有権は、協調的に予定されたスレッドが協 調型サブシステムにおいて実行可能になる前に要求され、獲得されなければなら ない。さらに、同期メカニズムの所有権は、割り込み的に予定されたスレッドが 協調型サブシステムにおいて共用システムコードを実行できるようになる前に要 求され、獲得されなければならない。本発明の同期メカニズムは、協調的サブシ ステムにおける共用コード及びデータを、割り込み型サブシステムの割り込み可 能性から保護することによって協調型サブシステム及び割り込み型サブシステム の両方を含むオペレーティングシステムにおける両立性を提供する。 内部において本発明の好ましい実施例が動作するコンピュータシステム10が 図1に図示されている。コンピュータシステム10は、中央演算ユニット(CP U)12、主記憶装置14、第2記憶装置16及び入出力(I/O)装置18を 備えている。オペレーティングシステム20及びアプリケーションプログラム2 2は、第2記憶装置16にストアされており、CPU12の実行のために主記憶 装置14にロードされる。アプリケーションプログラム22のように、主記憶装 置14にロードされ、CPU12によって実行のために用意された、プログラム は、プロセスとよばれる。プロセスは、コード、データ及びプログラムに属する 他のリソースを有する。プロセスにおける実行パスは、スレッドとよばれる。ス レッドは、一連の実行命令、関係するCPUレジスタ値、及びスタックを有する 。プロセスは、少なくとも1つのスレッドを有する。マルチスレッデッドオペレ ーティングシステムでは、プロセスは、1つ以上のスレッドを持つことができる 。スレッドは、CPU12の制御を受け入れるエンティティである。 オペレーティングシステム20のコンポーネントは、図2に示されている。本 発明の好ましい実施例では、オペレーティングシステム20は、協調型マルチタ スクオペレーティングサブシステム24及び割り込み型マルチタスクサブシステ ム26を備えている。さらに、協調型マルチタスクサブシステム24は、16− ビットシステム(以下16−ビットサブシステムという)であり、割り込み型マ ルチタスサブシステム26は32−ビットシステム(以下32−ビットサブシス テムという)である。したがって、アプリケーションプログラム22は、協調的 に予定された16−ビットアプリケーション28と割り込み的に予定された32 −ビットアプリケーション30の両方を備えている。オペレーティングシステム 20は、“マイクロソフトウインドウズ”バージョン3.1の改良バージョンで あり、ワシントン州レッドモンドのマイクロソフトコーポレーションによって販 売されているオペレーティングシステムである。ウインドウズ3.1は、協調型 マルチタスクオペレーティングシステムである。本発明の好ましい実施例におけ るオペレーティングシステム20は、ウインドウズ3.1によって提供される協 調型マルチタスクサブシステムに対する改良として、割り込み型マルチタスクサ ブシステムを提供するものである。このような改良バージョンは、早い時期の協 調型システムに対して書かれたアプリケーションと、最近の割り込み型システム ように書かれたアプリケーションとの両立を与えるものである。 本発明は、ウインドウズ3.1の改良バージョンに関して記載されたものであ るが、当業者は、他のオペレーティングシステムが本発明を実施するのに使用で きることを理解するであろう。ウインドウズ3.1の改良バージョンの選択は、 単に例示的なものである。 16−ビットサブシステム24は、16−ビット−アプリケーション28が、 オペレーティングシステム20によって与えられたロー−レベルサービスを要求 し、実行することができる16−ビットアプリケーションプログラムインターフ ェース(API)備えている。同様に、32−ビットサブシステム26は、32 −ビットアプリケーション30が、オペレーティングシステム20によって与え られたロー−レベルサービスを要求し、実行することができる32−ビットAP Iを備えている。さらに、16−ビットサブシステムは、16−ビットアプリケ ーション28の協調的スケジュールを処理することを担当する16−ビットスケ ジューラー32を備えるとともに、32−ビットサブシステム26は、32−ビ ットアプリケーション30の割り込み型スケジューリングを処理するのを担当す るロー−レベルスケジューラー34を備えている。そのような16−ビットスケ ジューラーは、ワシントン州、レッドモンドのマイクロソフト・コーポレーショ ンによって販売されているマイクロソフト・ウインドウズバージョン3.1、オ ペレーティングシステムによって与えられるものであり、そのようなローレベル スケジューラーはマイクロソフト・ウインドウズ NTオペレーティングシステ ムによって与えられるものである。 16−ビットアプリケーション28が16−ビットAPIファンクションをコ ールすると、そのコールは、16−ビットサブシステム24によって直接取り扱 われる。しかし、32−ビットアプリケーション30が32−ビットAPIファ ンクションをコールした場合には、そのコールは、通常は、32−ビットサブシ ステム26によっては直接取り扱われない。むしろ、32−ビットAPIファン クションと同じ目的をもつ16−ビットAPIファンクションが存在する場合に は、その32−ビットAPIファンクションに対するコールは、通常は、同等な 16−ビットAPIファンクションに対するコールに変換され、16−ビットサ ブシステム24によって取り扱われる。しかし、32−ビットAPIファンクシ ョンと同じ目的をもつ16−ビットAPIファンクションが存在しない場合には 、あるいは、32−ビットAPIファンクションが32−ビットサブシステム2 6によって効率的に処理することができるならば、その32−ビットAPIファ ンクションに対するコールは32−ビットサブシステム26によって直接処理さ れる。32−ビットAPIファンクションに対するコールを同等な16−ビット APIファンクションに対するコールに変換し、つぎに、16−ビットAPIフ ァンクションの結果を32−ビットフォーマットに再変換するプロセスは、“サ ンキング(thunking)”として知られている。このプロセスは、32− ビットサンク(thunk)レヤー36で発生するものであって、16−ビット フォーマットに、及びこれからの変換を行なうコードである。このサンクレヤー はマイクロソフト・ウインドウズ NTオペレーティングシステムによって提供 される。 16−ビットAPIと32−ビットAPIの両方が1連のダイナミック・リン ク・ライブラリ(DDL’s)として実行される。DLLは、さまざまなファン クションを実行する実行可能コードを含むライブラリモジュールである。各ファ ンクションについてのコードは、DDL内にストアされている。アプリケーショ ン・プログラムがDDL内のファンクションへのコールを含む場合には、DDL は、実行時においてそのアプリケーション・プログラムにダイナミックリンクさ れる。アプリケーション・プログラムは、そのファンクションがアプリケーショ ン・プログラムのコードの一部であるかのようにDDL内におけるファンクショ ンを使用するものである。 本発明のAPI’sを形成するDDL’sは、リエントラントではない。リエ ントラントであるコードは実行時中に修正不可能であり、幾つかのスレッドによ って享有することができるように書かれている。あるスレッドがリエントラント コードを実行しており、かつ他のスレッドがその第1のスレッドの実行をインタ ラプトしているとき、第2のスレッドがなんらのコード共用あるいはデータ共用 の問題なしに同じコードの実行を開始し、あるいは継続することができる。した がって、DDLがリエントラントであるならば、1つ以上のスレッドが単一のD DLを使用するプロセス中に存在することとなる。DDLがリエントラントでな い場合に生じる問題は、コードが変更可能であり、DDLにある同じコード及び データがDDLを使用するすべてのスレッドの中で共用されるということである 。この結果、1つのスレッドが非リエントラントDDL中のコードを実行してお り、他のスレッドが第1のスレッドの実行をインタラプトし、DDL中の同じコ ードの実行を開始し、あるいは継続しようとしている場合には、コード共用ある いはデータ共用の問題が生じる可能性がある。本発明の16−ビットAPIを形 成するDDLは、非リエントラントであり、オペレーティングシステム20が協 調型16−ビットサブシステム24及び割り込み型32−ビットサブシステム2 6を備えているので、第1のスレッドが他の16−ビットAPIファンクション の実行を完了する前に、メカニズムは、第2のスレッドが16−ビットAPIフ ァンクションを実行しないようにする必要がある。 16−ビットAPI中の共用コード及びデータを保護するための、本発明によ って提供される方法及びシステムは、ミューテックス(mutex)の形態の同 期メカニズムを備えている。当業者は、本発明が、他の同期メカニズム、例えば 、クリティカル・セクションあるいはセマフォなどを同様に使用することができ ること理解するであろう。ミューテックスは、共用リソースの同時使用を防止す るのに使用できるデータストラクチァである。この場合、共用リソースは、16 −ビットAPIのコード及びデータである。スレッドが共用リソースの使用を望 む場合には、スレッドは、そのミューテックスの所有権を要求する。もしミュー テックスがすでに他のスレッドで所有されている場合には、要求スレッドは、所 有権が解放されるまでブロックされる。そうでなければ、要求スレッドは、所有 権が許容されるからである。本発明の好ましい実施例では、スレッドがミューテ ックスの所有権を要求し、獲得し、そして解放する時間と方法は、16−ビット スレッドと32−ビットスレッドとで異なる。 16−ビットスレッドに対しては、ミューテックスの所有権は、16−ビット スレッドがそのアプリケーションコードをコールイン(呼び込む)する前に要求 され、獲得されなければならない。図3は、16−ビットスレッドがミューテッ クスの所有権を要求し、獲得し、そして解放するように実行されるステップを示 している。まず、16−ビットアプリケーション28がスタートすると、16− ビットステップS1が作られ、16−ビットスケジューラー32にリンクされる (ステップS38)。16−ビットスレッドがそのアプリケーションコードにコ ールインする前にその16−ビットスレッド16−ビットスケジューラー32の 中でミューテックスの所有権を要求する(ステップS40)。ミューテックスが すでに所有されていた場合には(ステップS42)、16−ビットスレッドは、 所有権が解放され、そのスレッドが実行の優先権を有するまでブロックされる( ステップS44)。そうでなければ、16−ビットスレッドは所有権を許される からであり(ステップS46)、そのアプリケーションコードをコールインして 実行するからである(ステップS48)。16−ビットスレッドがCPU12の 16−ビットスケジューラー32に対する制御を放棄したとき、16−ビットス レッドは、16−ビットスケジューラー32の内のミューテックスの所有権を解 放する(ステップS50)。16−ビットスレッドがミューテックスを所有して いる間、16−ビットスレッドは、16−ビットAPI内のファンクションに 対して多重コールを行なうことができる。16−ビットスレッドがロットを所有 している間、他のスレッドは、ミューテックスの所有権を獲得することができな いので、16−ビットAPI内のコードとデータは保護される。 32−ビットスレッドについては、(同等の32−ビットAPIファンクショ ンへのコールからサンク(thunk)された16−ビットAPIファンクショ ンへのコールが実行を始める前に)要求され、獲得されなければならない。図4 及び図5は、ミューテックスの所有権を要求し、獲得しそして解放するために3 2−ビットスレッドがおこなうべきステップを集合的に図示したものである。ま ず、32−ビットアプリケーション30がスタートし、32−ビットが作られロ ー−レベルスケジューラー34(ステップS52)にリンクされる。32−ビッ トスレッドがCPU12の制御に割りつけられると、32−ビットスレッドがそ のアプリケーションコードにコールインされ、実行される(ステップ54)。実 行中、32−ビットスレッドがサンクしなければならない(すなわち、同等の1 6−ビットAPIファンクションへのコールに変換しなければならない)32− ビットAPIファンクションをコールしたときには(ステップ56)、32−ビ ットAPIファンクションは、その32−ビットサンクレヤー36に制御を移行 する(ステップ58)。32−ビットサンクレヤー36は32−ビットAPIフ ァンクションへのコールを同等な16−ビットAPIファンクションへのコール に変換し(ステップ60)、32−ビットスレッドは、32−ビットサンクレヤ ー36内のミューテックスの所有権を要求する(ステップ62)。もし、ミュー テックスがすでに所有されている場合には(ステップ64)、32−ビットスレ ッドは、所有権が解放され、スレッドが実行の優先権をもつまでブロックされる (ステップ66)。そうしなければ、32−ビットスレッドは、所有権を許容さ れ(ステップ68)、同等の16−ビットAPIファンクションをコールするこ とになる(ステップ70)。16−ビットAPIファンクションはそのコールを 処理し、その結果を32−ビットサンクレヤー36に戻し、32−ビットスレッ ドは、32−ビットサンクレヤー36内のミューテックスの所有権を解放する( ステップ74)。最後に、32−ビットサンクレヤー36は、16−ビットAP Iファンクションからの結果を32−ビットフォーマットに再変換し、制御を 32−ビットスレッドに戻す(ステップ76)。上記したように、32−ビット スレッドがロックを所有しているあいだ他のスレッドは、ミューテックスの所有 権を獲得することはできないので、16−ビットAPIのコードとデータは保護 される。 上記の32−ビットスレッドに関連する議論において、ミューテックスの所有 権は、32−ビットAPIファンクションへのコールが同等の16−ビットAP Iファンクションへのコールに変換された後要求され、16−ビットAPIファ ンクションからの結果が32−ビットフォーマットに再変換される前に、解放さ れる。当業者は、ミューテックスの所有権が、32−ビットAPIファンクショ ンへのコールが同等の16−ビットAPIファンクションへのコールに変換され る前に要求でき、16−ビットAPIファンクションからの結果が32−ビット フォーマットに再変換される前に解放することもできることを理解するであろう 。 当業者は、本発明が共用コード及びデータ、特に、マルチタスクオペレーティ ングシステムにおける共用システムコード及びデータにおけるを保護するための 方法及びシステムを提供するものであることを理解するであろう。この方法及び システムは、マルチタスクオペレーティングシステムの共用システムコード及び データを保護する同期メカニズムを備えている。オペレーティングシステムは、 協調型サブシステム及び割り込み型サブシステムを備えている。協調型サブシス テムは、共用システムコード及びデータを備えている。同期メカニズムの所有権 は、協調的に予定されたスレッドが協調型サブシステムにおいて実行することか できるようになる前に要求され、獲得されなければならない。さらに、同期メカ ニズムの所有権が、割り込み的に予定されたスレッドが、協調型サブシステムに おいて共用システムコードを実行できるようになる前に、要求され、獲得されな ければならない。本発明の同期メカニズムは、割り込み型サブシステムの割り込 み的な能力から協調型サブシステムにおける共用コード及びデータを保護するこ とによって協調型サブシステム及び割り込み型サブシステムの両方を備えたオペ レーティングシステムの両立性を与えるものでる。本発明は、実施例に関連して 図示され、記載されているが、本明細書を読み、理解することによって当業者は 、同等な修正、変更を行なうであろう。本発明は、そのようなすべての同等な修 正、 変更を包含するものであり、以下の特許請求の範囲によってのみ限定されるもの である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トマソン ジョナサン ジー アメリカ合衆国 ワシントン州 98053 レッドモンド トゥーハンドレッドアンド サーティフィフス プレイス ノースイー スト 7845 (72)発明者 カッツホール スコット エム アメリカ合衆国 ワシントン州 98014 カーネイション トゥーハンドレッドアン ドエイティナインス アベニュー ノース イースト 816 【要約の続き】 有権を獲得することはできないので、協調型サブシステ ムにおける共用システムコード及びデータは、保護され る。

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータシステムにおいて、協調型サブシステム及び割り込み型サブシ ステムを有するマルチタスクオペレーティングシステムにおける共用システムコ ード及びデータを保護する方法であって、前記協調型サブシステムが共用システ ムコード及びデータを備えており、 スレッドによって共用システムコード及びデータへのアクセスを制御するた めの同期メカニズムを提供し、及び 協調型サブシステムを実行するための協調的に予定されたスレッドを提供し 、該協調的に予定されたスレッドが実行開始される前に同期メカニズムの所有権 を要求するステップを有することを特徴とする方法。 2.コンピュータシステムにおいて、協調型サブシステム及び割り込み型サブシ ステムを有するマルチタスクオペレーティングシステムにおける共用システムコ ード及びデータを保護する方法であって、前記協調型サブシステムが共用システ ムコード及びデータを備えており、 スレッドによって共用システムコード及びデータへのアクセスを制御するた めの同期メカニズムを提供し、 協調型サブシステムを実行するための協調的に予定されたスレッドを提供し 、該協調的に予定されたスレッドが実行開始される前に同期メカニズムの所有権 を要求し、同期メカニズムがまだ所有されていない場合には、協調的に予定され たスレッドに対する同期メカニズムの所有権を許可し、 同期メカニズムの所有権が獲得されている場合には、前記協調的に予定され たスレッドが実行されることを許容し、及び 同期メカニズムの所有権が獲得されていない場合には、前記協調的に予定さ れたスレッドが実行されないようにブロックするステップを有することを特徴と する方法。 3.同期メカニズムの所有権が獲得されていた場合には、前記協調的に予定され たスレッドが実行された後、同期メカニズムの所有権を解放するステップをさら に有することを特徴とする請求項2の方法。 4.同期メカニズムを提供するステップが、スレッドによって共用システムコー ド及びデータへのアクセスを制御するためのミューテックスを提供するステップ を備えていることを特徴とする請求項2の方法。 5.前記共用システムコード及びデータがオペレーティングシステムによって提 供されるサービスをスレッドが要求できるアプリケーションプログラムインター フェイスを備え、該アプリケーションプログラムインターフェイスが1連のダイ ナミック・リンク・ライブラリとして実行されることを特徴とする請求項2の方 法。 6.コンピュータシステムにおいて、協調型サブシステムと割り込み型サブシス テムとを有するマルチタスクオペレーティングシステムにおける方法であって、 協調型サブシステムにおける共用システムコード及びデータを提供し、 前記共用システムコード及びデータが前記オペレーティングシステムによっ て提供されるサービスをスレッドが要求できるアプリケーション・プログラム・ インターフェイスを備えており、該アプリケーション・プログラム・インターフ ェイスが一連のダイナミック・リンク・ライブラリとして実行されるものであり 、該ダイナミック・リンク・ライブラリが前記オペレーティングシステムによっ て提供されるサービスを実行するためのコードを含んでおり、 スレッドによってダイナミック・リンク・ライブラリへのアクセスを制御す るためのミューテックスの形態で同期メカニズムを提供し、 前記協調型サブシステムを実行するための協調的に予定されたスレッドを提 供し、 該協調的に予定されたスレッドが実行開始される前にミューテックスの所有 権を要求し、 ミューテックスがまだ所有されてない場合には、前記協調的に予定されたス レッドに対するミューテックスの所有権を許可し、 ミューテックスの所有権が獲得されている場合には、前記協調的に予定され たスレッドが実行されることを許容し、そして、 ミューテックスの所有権が獲得されていない場合には、前記協調的に予定さ れたスレッドが実行されないようにブロックするステップを備えたことを特徴と する方法。 7.コンピュータシステムにおいて、協調型サブシステム及び割り込み型サブシ ステムを有するマルチタスクオペレーティングシステムにおける共用システムコ ード及びデータを保護する方法であって、前記協調型サブシステムが共用システ ムコード及びデータを備えており、 スレッドによって共用システムコード及びデータへのアクセスを制御するた めの同期メカニズムを提供し、 協調型サブシステムにおいて共用システムコードを実行するための割り込み 的に予定されたスレッドを提供し、そして、 前記割り込み的に予定されたスレッドが前記共用システムコードの実行を開 始する前に前記同期メカニズムの所有権を要求するスレッドを有することを特徴 とする方法。 8 コンピュータシステムにおいて、協調型サブシステム及び割り込み型サブシ ステムを有するマルチタスクオペレーティングシステムにおける共用システムコ ード及びデータを保護する方法であって、前記協調型サブシステムが共用システ ムコード及びデータを備えており、 スレッドによって共用システムコード及びデータへのアクセスを制御するた めの同期メカニズムを提供し、 協調型サブシステムにおいて共用システムコードを実行するための割り込み 的に予定されたスレッドを提供し、 割り込み的に予定されたスレッドが共用システムコードの実行を開始する前 に同期メカニズムの所有権を要求し、 同期メカニズムがまだ所有されていない場合には、前記割り込み的に予定さ れたスレッドに対する同期メカニズムの所有権を許可し、 同期メカニズムの所有権が獲得されていた場合には、前記割り込み的に予定 されたスレッドが前記共用システムコードを実行することを許容し、 同期メカニズムの所有権が獲得されていない場合には、前記割り込み的に予 定されたスレッドが共用システムコードを実行しないようにブロックするステッ プを備えた方法。 9.さらに、同期メカニズムの所有権が獲得されている場合には前記割り込み的 に予定されたスレッドが共用システムコードを実行した後前記同期メカニズムの 所有権を解放するステップを備えていることを特徴とする方法。 10.同期メカニズムを提供するステップがスレッドによって共用システムコード 及びデータへのアクセスを制御するためのミューテックスを提供するステップを 備えていることを特徴とする請求項8の方法。 11.共用システムコード及びデータが、前記オペレーティングシステムによって 提供されるサービスをスレッドが要求することができるアプリケーション・プロ グラム・インターフェイスを備えていることを特徴とする請求項8の方法。 12.コンピュータシステムにおいて、協調型サブシステムと割り込み型サブシス テムとを有するマルチタスクオペレーティングシステムにおける方法であって、 前記協調型サブシステムにおいて共用システムコード及びデータを提供し、 該共用システムコード及びデータは前記オペレーティングシステムによって提供 されるサービスをスレッドが要求することかできるアプリケーション・プログラ ム・インターフェイスを備えており、該アプリケーション・プログラム・インタ ーフェイスは、一連のダイナミック・リンク・ライブラリとして実行されるもの であり、該ダイナミック・リンク・ライブラリは、オペレーティングシステムに よって提供されるサービスを実行するためのコードを有しており、 スレッドによってダイナミック・リンク・ライブラリへのアクセスを制御す るためのミューテックスの形態で同期メカニズムを提供し、 前記ダイナミック・リンク・ライブラリのコードを実行するために割り込み 的に予定されたスレッドを提供し、 該割り込み的に予定されたスレッドが前記ダイナミック・リンク・ライブラ リにおけるコードの実行を開始する前にミューテックスの所有権を要求し、 ミューテックスがまだ所有されていない場合には、前記割り込み的に予定さ れたスレッドに対するミューテックスの所有権を許可し、 ミューテックスの所有権が獲得されている場合には、割り込み的に予定され たスレッドのダイナミック・リンク・ライブラリのコードの実行を許容し、そし て、 ミューテックスの所有権がまだ獲得されていない場合には、ダイナミック・ リンク・ライブラリのコードが実行されないように割り込み的に予定されたスレ ッドをブロックするステップを備えたことを特徴とする方法。 13.コンピュータシステムにおいて、協調型サブシステムと割り込み型サブシス テムとを有するマルチタスクオペレーティングシステムにおける共用システムコ ード及びデータを保護する方法であって、 前記協調型サブシステムが前記共用システムコード及びデータを備えており 、 スレッドによって前記共用システムコード及びデータへのアクセスを制御す るための同期メカニズムを提供し、 前記オペレーティングシステムにおいて実行するために協調的に予定された スレッドを提供し、 前記協調型サブシステムにおける共用システムコードを実行するために割り 込み的に予定されたスレッドを提供し、 前記協調的に予定されたスレッドが実行を開始される前に、前記同期メカニ ズムの所有権を要求し、 前記同期メカニズムがまだ所有されていない場合には、前記協調的に予定さ れたスレッドに対する同期メカニズムの所有権を許可し、 前記同期メカニズムの所有権が協調的に予定されたスレッドによって獲得さ れている場合には協調的に予定されたスレッドが実行されることを許容し、 同期メカニズムの所有権が協調的に予定されたスレッドによって獲得されて いない場合には協調的に予定されたスレッドが実行されないようにブロックし、 前記割り込み的に予定されたスレッドが共用システムコードの実行を開始す る前に同期メカニズムの所有権を要求し、 同期メカニズムがまだ所有されていない場合には、割り込み的に予定された スレッドに対する同期メカニズムの所有権を許可し、 同期メカニズムの所有権が前記割り込み的に予定されたスレッドによって獲 得されている場合には、割り込み的に予定されたスレッドが共用システムコード を実行することを許容し、そして、 同期メカニズムの所有権がまだ割り込み的に予定されたスレッドによって獲 得されていない場合には、割り込み的に予定されたスレッドが共用システムコ ードを実行しないようにブロックするステップを備えたことを特徴とする方法。 14.さらに、同期メカニズムの所有権が協調的に予定されたスレッド獲得されて いる場合には、協調的に予定されたスレッドが実行された後に同期メカニズムの 所有権を解放し、そして、 同期メカニズムの所有権が割り込み的に予定されたスレッドによって獲得さ れている場合には、割り込み的に予定されたスレッドが共用システムコードを実 行した後同期メカニズムの所有権を解放するステップを備えたことを特徴とする 請求項13の方法。 15.同期メカニズムを提供するステップが、スレッドによって共用システムコー ド及びデータへのアクセスを制御するミューテックスを提供するステップを備え ていることを特徴とする請求項13の方法。 16.前記共用システムコード及びデータが、前記オペレーティングシステムによ って提供されるサービスをスレッドが要求できるアプリケーション・プログラム ・インターフェイスを備え、該アプリケーション・プログラム・インターフェイ スが一連のダイナミック・リンク・ライブラリとして実行されることを特徴とす る請求項13の方法。 17.コンピュータシステムにおいて、協調型サブシステムと割り込み型サブシス テムを有するマルチタスクオペレーティングシステムにおける方法であって、前 記協調型サブシステムにおける共用システムコード及びデータを提供し、該共用 システムコード及びデータは前記オペレーティングシステムによって提供される サービスをスレッドが要求することかできるアプリケーション・プログラム・イ ンターフェイスを備えており、該アプリケーション・プログラム・インターフェ イスは、一連のダイナミック・リンク・ライブラリとして実行されるものであり 、該ダイナミック・リンク・ライブラリは、オペレーティングシステムによって 提供されるサービスを実行するためのコードを有しており、 スレッドによってダイナミック・リンク・ライブラリへのアクセスを制御す るためのミューテックスの形態で同期メカニズムを提供し、 前記ダイナミック・リンク・ライブラリのコードを実行するために割り込み 的に予定されたスレッドを提供し、 前記ダイナミック・リンク・ライブラリにおけるコードを実行するために割 り込み的に予定されたスレッドを提供し、 前記協調的に予定されたスレッドが実行を開始する前にミューテックスの所 有権を要求し、 ミューテックスがまだ所有されていない場合には、前記協調的に予定された スレッドに対するミューテックスの所有権を許可し、 ミューテックスの所有権が協調的に予定されたスレッドによって獲得されて いる場合には、協調的に予定されたスレッドの実行を許容し、 ミューテックスの所有権がまだ獲得されていない場合には、協調的に予定さ れたスレッドが実行されないようにブロックし、 割り込み的に予定されたスレッドが前記ダイナミック・リンク・ライブラリ のコードの実行を開始する前にミューテックスの所有権を要求し、 前記ミューテックスがまだ所有されていない場合には割り込み的に予定され たスレッドに対するミューテックスの所有権を許可し、 ミューテックスの所有権が前記割り込み的に予定されたスレッドによって獲 得されている場合には、割り込み的に予定されたスレッドが前記ダイナミック・ リンク・ライブラリのコードを実行することを許容し、 そして、ミューテックスの所有権が割り込み的に予定されたスレッドによっ て獲得されていない場合には、割り込み的に予定されたスレッドがダイナミック ・リンク・ライブラリのコードを実行しないようにブロックするステップを備え たことを特徴とする方法。 18.コンピュータシステムにおいて、協調型サブシステムと割り込み型サブシス テムとを有するマルチタスクオペレーティングシステムにおける共用システムコ ード及びデータを保護するシステムであって、前記協調型サブシステムが共用シ ステムコード及びデータとを備えており、 スレッドによって共用システムコード及びデータへのアクセスを制御する同 期メカニズムと、 協調型サブシステムにおいて実行するための協調的に予定されたスレッドと 、 前記協調型サブシステムにおける共用システムコードを実行するための割り 込み的に予定されたスレッドと、 協調的に予定されたスレッドの実行開始が許容される前に同期メカニズムの 所有権を要求し、獲得しかつ協調的に予定されたスレッドが実行された後同期メ カニズムの所有権を解放する協調型スケジューラーと、 割り込み的に予定されたスレッドが共用システムコードの実行を許容される 前に同期メカニズムの所有権を要求し、獲得し、前記かつ割り込み的に予定され たスレッドが共用システムコードを実行した後同期メカニズムの所有権を解放す るサンクレヤーとを備えていることを特徴とするシステム。 19.同期メカニズムがミューテックスであることを特徴とする請求項18のシス テム。 20.共用システムコード及びデータが、前記オペレーティングシステムによって 提供されるサービスをスレッドが要求できるアプリケーション・プログラム・イ ンターフェイスを備えており、該アプリケーション・プログラム・インターフェ イスが一連のダイナミック・リンク・ライブラリとして実行されることを特徴と する請求項18記載のシステム。 21.コンピュータシステムにおいて、協調型サブシステムと割り込み型サブシス テムとを有するマルチタスクオペレーティングシステムであって、 協調型サブシステムにおける共用システムコード及びデータであって、該共 用システムコード及びデータは前記オペレーティングシステムによって提供され るサービスをスレッドが要求することができるアプリケーション・プログラム・ インターフェイスを備えており、該アプリケーション・プログラム・インターフ ェイスは一連のダイナミック・リンク・ライブラリとして実行されるものであり 、該ダイナミック・リンク・ライブラリは前記オペレーティングシステムによっ て提供されるサービスを実行するためのコードを備えており、 該システムは、さらに、 ダイナミック・リンク・ライブラリのコードを実行するスレッドによって前 記ダイナミック・リンク・ライブラリへのアクセスを制御するためのミューテッ クスの形態の同期メカニズムと、 前記協調型サブシステムにおいて実行される協調的に予定されたスレッドと 、 前記ダイナミック・リンク・ライブラリのコードを実行するための割り込み 的に予定されたスレッドと、 協調的に予定されたスレッドが実行開始を許容される前にミューテックスの 所有権を要求して獲得するための協調型スケジューラーと、 前記割り込み的に予定されたスレッドがダイナミック・リンク・ライブラリ のコードの実行開始を許容される前に、ミューテックスの所有権を要求し、獲得 するサンクレヤーとを備えたことを特徴とするシステム。
JP50345996A 1994-06-30 1995-06-30 マルチタスクオペレーティングシステムにおける共用コード及びデータを保護するための方法およびシステム Expired - Lifetime JP3837453B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/268,442 1994-06-30
US08/268,442 US6148325A (en) 1994-06-30 1994-06-30 Method and system for protecting shared code and data in a multitasking operating system
PCT/US1995/008287 WO1996000941A1 (en) 1994-06-30 1995-06-30 Method and system for protecting shared code and data in a multitasking operating system

Publications (2)

Publication Number Publication Date
JPH09502558A true JPH09502558A (ja) 1997-03-11
JP3837453B2 JP3837453B2 (ja) 2006-10-25

Family

ID=23023024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50345996A Expired - Lifetime JP3837453B2 (ja) 1994-06-30 1995-06-30 マルチタスクオペレーティングシステムにおける共用コード及びデータを保護するための方法およびシステム

Country Status (5)

Country Link
US (1) US6148325A (ja)
EP (1) EP0715732B1 (ja)
JP (1) JP3837453B2 (ja)
DE (1) DE69530048T2 (ja)
WO (1) WO1996000941A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981258B1 (en) 1999-10-19 2005-12-27 Nec Electronics Corporation Process scheduler without long overhead and large memory and scheduling method used therein

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405234B2 (en) * 1997-09-11 2002-06-11 International Business Machines Corporation Full time operating system
US6850990B1 (en) * 1999-07-14 2005-02-01 Landesk Software Limited Transfer of synchronized data from 16-bit code to a 32-bit process
JP2001306341A (ja) * 2000-04-26 2001-11-02 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
US6982728B1 (en) * 2000-05-18 2006-01-03 Palm, Inc. Portable electronic system having multiple display modes for reorienting the display of data on a display screen
US7089557B2 (en) * 2001-04-10 2006-08-08 Rusty Shawn Lee Data processing system and method for high-efficiency multitasking
US7320075B2 (en) 2001-11-20 2008-01-15 Safenet, Inc. Software protection method utilizing hidden application code in a protection dynamic link library object
US20030145035A1 (en) * 2002-01-15 2003-07-31 De Bonet Jeremy S. Method and system of protecting shared resources across multiple threads
US7827339B2 (en) * 2005-01-25 2010-11-02 American Megatrends, Inc. System management interrupt interface wrapper
US8024405B2 (en) * 2006-03-30 2011-09-20 Microsoft Corporation Declarative model for concurrency-control across lightweight threads
US8041929B2 (en) * 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US8010966B2 (en) * 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks
US8166492B2 (en) * 2007-04-10 2012-04-24 Microsoft Corporation Application compatibility using a hybrid environment
US10002161B2 (en) * 2008-12-03 2018-06-19 Sap Se Multithreading and concurrency control for a rule-based transaction engine
KR101052586B1 (ko) * 2010-08-20 2011-07-29 주식회사 파수닷컴 훅 재진입 방지 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2539352B2 (ja) * 1984-06-20 1996-10-02 株式会社日立製作所 階層型多重計算機システム
EP0381655A3 (en) * 1989-01-31 1992-12-02 International Business Machines Corporation Method for synchronizing the dispatching of tasks among multitasking operating systems
US5487158A (en) * 1993-04-06 1996-01-23 International Business Machines Corporation Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
CA2093451C (en) * 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
US5481706A (en) * 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981258B1 (en) 1999-10-19 2005-12-27 Nec Electronics Corporation Process scheduler without long overhead and large memory and scheduling method used therein

Also Published As

Publication number Publication date
EP0715732B1 (en) 2003-03-26
JP3837453B2 (ja) 2006-10-25
US6148325A (en) 2000-11-14
DE69530048D1 (de) 2003-04-30
DE69530048T2 (de) 2003-09-25
EP0715732A1 (en) 1996-06-12
WO1996000941A1 (en) 1996-01-11

Similar Documents

Publication Publication Date Title
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
US5515538A (en) Apparatus and method for interrupt handling in a multi-threaded operating system kernel
US6173442B1 (en) Busy-wait-free synchronization
JPH09502558A (ja) マルチタスクオペレーティングシステムにおける共用コード及びデータを保護するための方法およびシステム
US7191444B2 (en) Stream management in a multithreaded environment
JP4170227B2 (ja) 多重処理環境における処理の実行
US6029190A (en) Read lock and write lock management system based upon mutex and semaphore availability
EP1031925B1 (en) Cooperative processing of tasks in multi-threaded computing system
JPH05216692A (ja) プログラム実行を管理する方法およびシステム
JPH05189251A (ja) 多重タスク処理オペレーティング・システム及びそのコンピュータの動作方法
JPH0283627A (ja) インタプリタ
US20080005438A1 (en) Methods and Apparatuses to Maintain Multiple Execution Contexts
US20020178208A1 (en) Priority inversion in computer system supporting multiple processes
US4945470A (en) Hierarchy multi-processor system and control method therefor
US6378006B1 (en) Data processing method, recording medium and data processing apparatus
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
US6507861B1 (en) System and method for avoiding deadlock in a non-preemptive multi-threaded application running in a non-preemptive multi-tasking environment
US7594229B2 (en) Predictive resource allocation in computing systems
JPH0468461A (ja) 資源管理方式
EP1197857A2 (en) Method of controlling a computer
JPS58181149A (ja) 計算機システムの制御方式
Furr What is real time and why do i need it?
Evans et al. Kernel-scheduled entities for FreeBSD
JP3422504B2 (ja) タスク間排他制御方法
KR20050049170A (ko) 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040706

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041006

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060410

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: 20060627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060705

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090811

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120811

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130811

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term