JPH07219789A - 複数スレッド・システムにおける外部事象を処理する方法 - Google Patents

複数スレッド・システムにおける外部事象を処理する方法

Info

Publication number
JPH07219789A
JPH07219789A JP6262140A JP26214094A JPH07219789A JP H07219789 A JPH07219789 A JP H07219789A JP 6262140 A JP6262140 A JP 6262140A JP 26214094 A JP26214094 A JP 26214094A JP H07219789 A JPH07219789 A JP H07219789A
Authority
JP
Japan
Prior art keywords
thread
event
quiesce
threads
execution
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
JP6262140A
Other languages
English (en)
Other versions
JP2856681B2 (ja
Inventor
Donald F Ault
ドナルド・フレッド・オールト
Scott Bender Ernest
アーネスト・スコット・ベンダー
Kevin Franks John
ジョン・ケビン・フランクス
Arthur Helmbold John
ジョン・アーサー・ヘルムボルド
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 JPH07219789A publication Critical patent/JPH07219789A/ja
Application granted granted Critical
Publication of JP2856681B2 publication Critical patent/JP2856681B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】複数スレッド・アプリケーションの付加スレッ
ドの静止を調整して、第1のスレッドによる外部事象の
処理を行う方法を開示する。 【構成】外部事象の検出に応答して、第1のスレッド
は、アプリケーションのその他の付加スレッドへ、その
実行を中断するため静止事象を送信する。各スレッドは
重大な資源を保持せず、従って静止することが安全であ
ると判断される場合に、静止する。最後のスレッドが静
止する前に第1のスレッドは再開され、他の付加スレッ
ドからの干渉なしに重大な動作を自由に行うことができ
る。静止が中断タイプであれば、重大な動作の完了次
第、中断した他の付加スレッドの実行を再開し、アプリ
リケーションはその正常動作に戻る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数スレッドを実行す
るプロセスにおける種々のスレッドの静止(すなわち、
終了または中断)を調整する方法に関するものである。
【0002】
【従来の技術】コンピュータのオペレーティング・シス
テム、すなわち、ユーザ・アプリケーションとハードウ
ェアの間のインターフェースをとり、コンピュータ・シ
ステムの基本的監視機能を遂行するソフトウエアは当業
者によく知られている。多くの現在のオペレーティング
・システムは、1つのプロセスまたはアプリケーション
の中で複数のスレッドを許容する。複数スレッド・アプ
リケーションとは、その仕事を実行するため1つ以上の
スレッドの制御を使用するプログラムと定義される。
(本明細書において、用語「プロセス」と「アプリケー
ション」は、同義語として使われ、両者とも、共通アド
レス空間を共有する1つ以上のスレッドを参照する。)
A. S. Tanenbaum著Modern Operating Systems, (1992)
において、いくつかの現在のオペレーティング・システ
ムが一般的に説明され、特にその507頁から523頁
においてスレッドが記述されている。
【0003】複数スレッド・アプリケーションをサポー
トするオペレーティング・システムの特定の例は、最近
発表されたMVS拡張機能オープン・エディション(O
penEdition)を持つIBM MVS/ESA
オペレーティング・システムである。MVS拡張機能O
penEditionを用いることによって、IBMシ
ステム/390コンピュータとMVS/ESAオペレー
ティング・システムからなるハードウェア/ソフトウェ
ア・プラットホーム上で動作し、かつ、IEEE PO
SIX 1003.1、1003.2および1003.4ド
ラフト標準に準拠したアプリケーションをプログラムす
ることができる。(IBM、OpenEdition、
MVS/ESAおよびSystem/390は、インタ
ーナショナル・ビジネス・マシーンズ・コーポレイショ
ンの登録商標である。)MVS拡張機能OpenEdi
tionの更に多くの情報は、本明細書で引用している
が、下記の刊行物で参照することができる:Ault著 "Fo
rk Clone Address Space Implementation on MVS",IBM
Technical Disclosure Bulletin, vol. 35, no. 6, pp.
363-67 (Nov. 1992);Ault著 "Interoperability Betwe
en MVS and POSIX Functions", IBM TechnicalDisclosu
re Bulletin, vol. 35, no. 6, pp. 383-88 (Nov. 199
2);Ault他著 "Cross-Address Space Control Functio
n", IBM Technical Disclosure Bulletin, vol. 36, n
o. 10, pp. 591-95 (Oct. 1993);Introducing OpenEdit
ion MVS, IBMIBM営業資料番号 GC233010-00(1993);
MVS/ESA Support for IEEE POSIX Standards: Technica
l Presentation Guide,IBM営業資料番号GG24-3867-0
(1993).上述のように、MVS/ESAオペレーティン
グ・システムのMVS拡張機能OpenEdition
は、1つのプロセス内で複数のスレッドの使用を許容す
る。MVSの用語において、スレッドは、1つのタスク
とみなすことができる。従って、複数スレッドは、1つ
のMVSアドレス空間内で複数のMVSタスクを使用す
ることに等しい。
【0004】複数スレッド・アプリケーションは多くの
状況において利点があるが、複数タスク(すなわち、複
数スレッド)アドレス空間における適切なタスク制御が
欠如しているため、終了、デバッグ作業およびダンプ処
理の上で問題が起きる。このため、POSIX規格で
は、複数スレッドの1つが異常終了する場合当該プロセ
ス内のすべてのスレッドの終了が求められる。これは、
MVSでは、ジョブ・ステップ・タスクの停止または該
当タスクを停止するCallRTMを使用することによ
って実行される。しかし、OpenEditionのM
VSスレッドをサポートするMVSタスクに上記のよう
なタイプの非同期停止を送信する場合、多くの問題に遭
遇する。
【0005】発生する1つの問題は、プロセスのスレッ
ドが突然ランダムに停止される場合、実行時ライブラリ
が共通のプロセス資源のクリーンアップを逐次処理する
ことができないというものである。別の問題は、2つの
命令の間で停止されつつある構成要素の多くは十分なエ
ラー回復機能を持っていないというものである。場合に
よっては、これらの欠陥は、例えばファイルシステムの
破壊といった破局的結果を招くことがある。停止誤り回
復手順は改善できるが、この種の停止全体を回避するこ
とが望まれる。
【0006】制御された方法で複数スレッド・アプリケ
ーションの残存スレッドを中断する必要性は、デバッグ
作業において発生することがある。複数スレッド・アプ
リケーションをデバッグする際、デバッグを行うユーザ
は、実行するスレッドとある特定事象に対して中断すべ
きスレッドを選択でき、また、実行/中断状態を動的に
変更することができることを必要とする。この中断プロ
セスは、また、アプリケーションの流れを変えるような
種類のもの、あるいは、中断の時点で当該スレッドが重
大なシステム管理資源を保持していることを許容するよ
うな種類のものであってはならない。
【0007】複数スレッド・アプリケーションの残存ス
レッドを中断する必要性が発生する別の場合は、すべて
のスレッドから得られる情報を用いて当該プロセスのダ
ンプを行う時である。必要性は、上述したデバッグの状
況と同様である。ダンプを要求するタスクは、呼び出し
元タスクがダンプをとることを妨げるような重大なシス
テム資源をその他のアスクが保持していない場合そのよ
うなその他のタスクのすべての実行を中断できなければ
ならない。ダンプがとられたあと、ダンプを行うタスク
は、他のタスクの実行を再開しなければならない。
【0008】
【発明が解決しようとする課題】このように、複数タス
ク・アドレス空間において適切なタスク制御が欠如する
場合は、終了、デバッッグおよびダンプの各局面におい
て問題が発生する。複数スレッドが動作する環境におい
て、予測可能でかつ非破壊的な形態でタスクの実行を終
了あるいは中断させる仕組みが求められる。
【0009】
【課題を解決するための手段】上述の課題は、あるスレ
ッドが起動された時点で当該アドレス空間に存在するす
べての他のスレッド(すなわちタスク)に静止事象(Q
UIESCE EVENT)を送信する新しい静止機能
を作成することによって解決される。静止機能を起動し
たスレッドは、すべての事象が実行され、目標スレッド
が期待した状態に置かれるまで待機する。
【0010】これを達成するため、静止事象を受信次第
オペレーティング・システムがその制御権を渡すべき静
止機能出口(EXIT)ルーチンを、ユーザがオペレーテ
ィング・システムに通知するための登録機能が提供され
る。出口が指定されていない場合は、該事象をいつ処理
するかはオペレーティング・システムが決定する。
【0011】事象の伝達は、目標スレッドの実行に割り
込みを行うサービス要求ブロック/割込み応答ブロック
(SRB/IRB)というブロックの組み合わせによ
る。割り込みの時点で動作していた要求ブロック(R
B)に関し静止事象を実行させることが安全であるかど
うかを検査する種々のチェックがなされる。これらのチ
ェックには、制御を静止機能出口に渡すことがシステム
環境にとって受容可能であるかを確認することが含まれ
る。例えば、システム・サービスに割り込むことは望し
くないからである。制御が静止機能出口に渡され、静止
事象が実行されるべきであると判断されると、適切な処
置がとられる。もしも静止事象が終了のためのものであ
ったとすれば、出口ルーチンは当該スレッドの実行を終
了する。静止事象がスレッドを中断するべきものであっ
たならば、出口は、適切な中断サービスを提供する。
【0012】システムIRBまたはユーザの静止出口が
静止事象を実行できないと判断すると、事象は未処理の
ままにされ、次のシステム・サービスの出口に再び伝達
されるか、あるいは、それより早くユーザが静止事象を
実行できる安全点に達したことを検知すればその時点で
システム・サービスの出口に再伝達される。
【0013】静止事象の伝達は、最後のスレッドが期待
した状態に入るまですべてのスレッドに対して実施され
る。そのような最後のスレッドは、静止機能を起動した
元のスレッドにポスト信号を送信し、該スレッドの待機
を解く(すなわち,元のスレッドを再開する)。
【0014】この解決方法の利点は、静止状態がいつス
レッドに効果を及ぼす状態に入るべきかを決定すること
が可能であるという点である。重大な資源を保持してい
るスレッドを無条件に停止させるという問題は回避され
る。コードの「不安定」または「重大な」部分で実行中
のスレッドを非同期的に停止させることに起因する破壊
的な結果もまた回避される。
【0015】
【実施例】図1は、本発明を組み入れているコンピュー
タ・システム100の概要であり、静止機能の実現のた
めの各システム層の間の関係を示している。これらの層
は、図1の上部から始まって、アプリケーション層10
2、言語サブルーチン/実行時ライブラリー(RTL)
層104、オペレーティング・システムまたはカーネル
層106、およびハードウェア層108である。
【0016】システム100の基部には、1つ以上の中
央処理装置(CPU)、主記憶装置、および、磁気ディ
スク記憶装置、磁気テープ装置、端末、プリンタ等の入
出力装置から構成されるハードウェア層108がある。
これらの構成要素は当業者にとっては周知のものである
ので、特に図示しない。
【0017】ハードウェア層108の上の層のカーネル
層106は、CPU、記憶装置および入出力装置を管理
する基本ハードウェア層を制御し、ハードウェア層にお
ける資源へのアプリケーション・コードのアクセスを可
能にする呼び出し可能サービスを含むソフトウェアから
構成される。(本発明に関連した静止サービスは上記呼
び出し可能サービスの一部である。)カーネル層106
は、IBMシステム/390コンピュータからなるハー
ドウェア上で動く拡張機能OpenEditionを持
つMVS/ESAオペレーティング・システムから構成
される。しかし、本発明は、上記のようなハードウェア
/ソフトウェア・プラットホームに限定されるものでは
なく、他のプラットホームを代替的に使うことができ
る。
【0018】言語サブルーチン/実行時ライブラリ(R
TL)層104は、カーネル層106のすぐ上部に位置
する。層104は、多くのアプリケーションによって使
われる高級言語(HLL)をサポートするルーチンから
構成される。層104は、基本的には、要求されたHL
L機能を、その要求を実行するために適切なカーネル・
サービスに変換する。
【0019】アプリケーション層102は、システム1
00の最上部の層であって、1つ以上のユーザ・アプリ
ケーションを含む。アプリケーションは、カーネル10
6から直接に、あるいは、言語サブルーチン/実行時ラ
イブラリ104を経由してHLLから、システム・サー
ビスを要求することができる。本明細書の仕様の目的か
ら、アプリケーション層102と言語サブルーチン/実
行時ライブラリ104とは集合的に一括してアプリケー
ションとみなすことができる。
【0020】図2は、システム100において実施され
る本発明の静止機能の概略流れ図である。(停止、停止
解除または終了を実行するする)特定の静止機能に関す
るステップはこの流れ図にすべて含まれてはいないが、
すべての静止機能はこの一般的流れ図に従う。
【0021】図2は、図1のシステム100のアプリケ
ーション層102のアプリケーション200を示してい
る。該アプリケーション200は、第1のスレッド20
2(スレッド1)と1つ以上のその他の付加スレッド2
04(スレッド2からN)を含む。スレッド202、2
04は、多くの独立プロセス属性を持つ。例えば、それ
自身のプログラム・カウンタと状態(すなわち実行中、
待機または実行阻止中等の状態)をそれぞれのスレッド
が持つが、 それらスレッドが共通のユーザ・アドレス
空間を共有するという点で独立プロセスとは相違する。
(アプリケーション200は、実際、同一アドレス空間
を共有するスレッド202、204のセットとして定義
することができる。)スレッド202は、必ずしも作成
されるべきアプリケーション200の最初のスレッドで
はない;それが静止サービスを定義して起動するが故
に、他のスレッド204と単に区別するために第1のス
レッドと呼ぶにすぎない。
【0022】図2にはまた、システム100のカーネル
層106に配置された本発明の静止サービス208が示
されている。静止サービス208は、ユーザ・アドレス
空間とは別のカーネル・アドレス空間210に位置し、
以下のような独自のサービス(または機能)を提供す
る: 1. quiesce_exit_registration(出口登録)サービス
306:スレッドが以下にリストされる静止機能の1つ
を要求した時に制御を受け取るべき静止出口ルーチンの
アドレスを初期スレッドが提供することを可能にする。
静止出口は、登録した初期スレッドと関係づけられるス
レッドで発生する静止事象の結果として制御を受け取る
アプリケーション・レベル・ルーチンである。この出口
は、伝達された静止事象を実行させる責任がある。 2. quiesce_freeze(停止)サービス404:すべての
他のスレッドに中断事象を送信し、ユーザ定義静止出口
ルーチンに制御を渡す。この事象に関し、静止出口ルー
チンは、重大な資源がスレッド204によって保持され
ているか判定する。重大な資源が保持されていなけれ
ば、静止出口ルーチンは、quiesce-freeze-selfサービ
スを呼び出す。重大な資源が保持されている場合、重大
な資源が開放されるまで、静止事象の処理は遅延され
る。 3. quiesce_freeze_self(自己停止)サービス72
2:起動元スレッドを中断する。このオプションは、中
断事象の受信時に静止出口ルーチンによって使われる。 4. quiesce_event_put_back(処理遅延)サービス73
4:静止事象の処理を後の時点まで遅延させる。このオ
プションは、現在の実行環境の事情のために処理できな
い中断事象の受信時に静止出口ルーチンによって使われ
る。 5. quiesce_unfreeze(停止解除)サービス806:停
止されたすべてのスレッドを再開する。 6. quiesce_term(終了)サービス904:すべての他
のスレッドに終了事象を送信し、ユーザ定義静止出口が
quiesce_exit_registrationサービスを用いて指定され
ている場合ユーザ定義静止出口に制御を渡す。この事象
に関し、静止出口は、重大な資源がスレッド204によ
って保持されているか判断する。重大な資源が保持され
ていなければ、静止出口は、スレッドを終了させためpt
hread-exitサービスを呼び出す。重大な資源が保持さて
いる場合、重大な資源が開放されるまで、静止事象の処
理は遅延される。 7. quiesce_force(バイパス)サービス:すべての他
のスレッドへ終了事象を送信し、ユーザ定義静止出口へ
の呼び出しをバイパスさせる。
【0023】アプリケーション事象212がスレッド2
02上で検知される時、本発明の動作が始まる。アプリ
ケーション200の他のスレッド204が実行中は、こ
のアプリケーション事象212は処理されることができ
ない。事象212は、実施例によっては、停止、プログ
ラム・チェックまたはブレーク・ポイントであり得る。
この時点で、アプリケーション200は、ダンプをとる
ことができるように、あるいは、診断機能を実行するこ
とができるように、他のスレッド204の実行を中断す
ることを必要とする場合がある。あるいはまた、アプリ
ケーション200は、他のスレッド204が終了しなけ
ればならないことを当該他のスレッドに通知することを
必要とする場合もある。
【0024】上述したように、デバッグ作業にも本発明
を使うことができる。しかし、本発明はそのような使用
に限定されることはなく、また、そのような使用の詳細
は本発明の対象ではない。
【0025】本発明に従って、スレッド202が、アプ
リケーション200において他のスレッド204の静止
を必要とする事象212を通知する時、アプリケーショ
ンの他のスレッドを静止するため、スレッド202は、
カーネル静止サービス208を呼び出す(ステップ21
4)。静止サービス208は、静止通知218を他のス
レッド204へ送信し(ステップ216)、静止通知が
他のスレッドによって実行されるまで待機(すなわち中
断)する(ステップ220)。静止通知218を受信次
第、スレッド204は静止のタイプに基づいて該当する
措置をとる。最後のアプリケーション・スレッド204
は、静止通知を実行する時、カーネル静止サービス20
8で待機中のスレッド202にポスト信号を送る(すな
わち、スレッド202を再開させる)。スレッド202
へのポスト信号の送達とともに、静止サービス208
は、アプリケーション200のスレッド202へ制御を
戻す(ステップ224)。
【0026】スレッド202は、今や、他のスレッド2
04が動作中には処理することができなかった重大なコ
ードを実行することができる(ステップ226)。この
重大なコードの実行が完了し、当初の措置が他のスレッ
ド204を停止させるべきものであったなら、スレッド
202は、他のスレッドを停止解除するため静止サービ
ス208を呼び出す(ステップ228)。
【0027】図3は、アプリケーション200が、静止
事象を扱うアプリケーション定義ルーチン(図7から図
9に記載)である静止出口をどのように登録するかを示
す。以下詳細に説明する。
【0028】静止出口を登録するため、アプリケーショ
ン200の第1のスレッド302が、静止サービス20
8のquiesce_exit_registrationサービス306を呼び
出し(ステップ304)、静止出口ルーチンのアドレス
(quiesce_exit)を渡す。Quiesce-exit-registration
サービス306は、スレッド302を起動するためスレ
ッド制御待ち行列エレメント(TCQE)308にアプ
リケーション静止出口アドレスを記憶する。図6に示さ
れるように、TCQE308は、スレッド302とアプ
リケーション静止出口アドレス604と待機/ポストの
ための事象制御ブロック606とを識別するスレッド識
別子602を含むメモリ上の定義された領域である。今
や、スレッド302は静止事象に関して登録された。
【0029】スレッド302は、カーネル・アドレス空
間におけるスレッド作成(pthread_create)サービス3
14を用いて、その他の付加スレッド312を作成する
ことができる(ステップ310)。カーネル・スレッド
作成サービス314は、適切な方法で実施されるが、そ
の方法は当業者には周知であるので、本明細書には記載
しない。作成する新しいスレッド312(ステップ31
6)の各々に関して、スレッド作成サービスは、スレッ
ド302に関するTCQE308と同様のTCQE30
8を構築し(ステップ318)、固有のスレッド識別子
602を割り当て、作成元スレッド302のTCQE3
08から新たに作成されるスレッド312のTCQE3
08へ静止出口アドレス604をコピーする。
【0030】かくして、アプリケーション中の全てのス
レッド302、312が同一の静止出口アドレス604
を持って登録された。図3で示されるように、各TCQ
E308は、適切な方法で(例えば、ポインタ、連続的
メモリ・ロケーションまたはその他の方法で)次のスレ
ッド312のためのTCQE308に連結し、以下に記
述のようにチェインまたはスレッド制御待ち行列(TC
Q)320を形成し、このため、ある特定のアプリケー
ションに関するTEQE308は逐次走査できる。
【0031】図4は、図2の概略流れ図をより詳細にし
た本発明のプロセス流れ図である。始めに、アプリケー
ション200中のすべての他のスレッド204の停止を
必要とする事象212が、アプリケーション・スレッド
202上で発生する。事象212を検知する時、アプリ
ケーション・スレッド202は、静止サービス208の
quiesce_freezeサービス404を呼び出す(ステップ4
02)。quiesce_freezeサービス404は次に内部事象
生成ルーチン408を呼び出す(ステップ406)。
【0032】アプリケーション200中の起動元スレッ
ド202以外のスレッド204の各々に関して、事象生
成ルーチン408は、静止出口インターフェース・ブロ
ック(QEIB)412を先ず作成する。これは、TC
Q320をサーチして、すべての今後のスレッド204
を識別することによって達成される。図5を参照する
と、QEIB412は、目標スレッドのアドレス502
と、静止事象のタイプ504(すなわち、停止か終了)
と、割り込みプログラム状態語(PSW)およびレジス
タ内容506とを記憶するためのアドレス・ロケーショ
ンを含むユーザ・アドレス空間において定義された領域
である。事象生成ルーチン408は、初期的には、QE
IB412に、目標スレッド・アドレス502と静止事
象タイプ504を格納する。
【0033】次に、上記サーチによってTCQ320で
見い出されたスレッド204の各々に関し、事象生成ル
ーチン408は、サービス要求ブロック(SRB)41
6をスケジュールして(ステップ414)、スレッドへ
停止要求割込みを送信し、該スレッドを停止させる。S
RB416の各々は、ユーザ・アドレス空間206にお
いて実行するためカーネルによってディスパッチされる
1つの作業単位(unitof work)である。各SRB416
は、目標スレッド204に対する割込み要求ブロック
(IRB)418を作成しスケジュールする。IRB4
18は、下記のように動作する。
【0034】すべての該当するスレッド204に対する
割り込みをスケジュールした後、事象生成ルーチン40
8は、quiesce_freezeサービス404に制御を戻す(ス
テップ420)。Quiesce_freezeサービス404は、ス
レッド202に関するTCQE308に配置された事象
制御ブロック606(図6)上で待機する(ステップ4
22)。この待機は、静止事象に応答する最後のスレッ
ド204からのポスト信号によって、最後のスレッドが
停止状態に入る直前に解かれる。
【0035】図7を参照して、上記割り込みメカニズム
をより詳細に説明する。IRB418がアプリケーショ
ン200の制御を獲得すると、実行は、目標スレッド2
04上で(図の符号702の箇所で)停止する。IRB
418は、アプリケーションのスレッド状態をチェック
して、システム環境が静止事象を扱うことを受容できる
ことを確認する。システム環境が受容可能である場合
(ステップ704)、IRB418は、対応するQEI
B412(図5)の部分506に、スレッド204に関
するプログラム状態語(PSW)とレジスタ内容を保存
する。プログラム状態語(PSW)とレジスタ内容は、
スレッド204に関するシステム・ディスパッチャによ
って管理される対応タスク・レベル制御ブロック708
から抽出される。PSWは、静止事象が処理された後再
開されるべき割込み箇所702をポイントする。次に、
IRB418は、目標とされたスレッド204の再開P
SWを以前に登録した静止出口712をポイントするよ
うに修正し(ステップ710)、レジスタ1をスレッド
204のQEIB412をポイントするように修正する
(ステップ714)。次にプロセスはIRB418から
出て(ステップ716)、修正されたPSWとレジスタ
1を用いて目標スレッド204で実行が再開される。
【0036】静止出口712は制御権を獲得しQEIB
412へのアクセスを有する。静止出口712はアプリ
ケーション環境(すなわち、スレッドの実行状態)を検
査し、プロセスを停頓させるような重大な資源をスレッ
ド204が保持していないことを確認する。
【0037】システム環境が受容可能であれば(ステッ
プ718)、静止出口712は、QEIB412の静止
事象タイプ・フィールド504(図5)を調べ、どの事
象タイプを処理するため呼び出されたか、また、それ自
身を中断または終了させるべきかを判断する。あり得る
2つの事象タイプは、スレッド204の中断を要求する
事象とスレッドの終了を要求する事象とである。本例に
おけるように、事象がスレッド204の中断を要求する
タイプである場合、静止出口712は、静止サービス2
08のquiesce_freeze_selfサービス722を起動する
(ステップ720)。Quiesce_freeze_selfサービス7
22は、呼び出し元スレッド204がアプリケーション
200中で静止状態になるべき最後のスレッドであるか
を調べる。そうならば(ステップ724)、Quiesce_fr
eeze_selfサービス722は、quiesce_freezeサービス
404に、従って、quiesce_freezeサービスを当初起動
したスレッド202(図4)に、ポスト信号を送る(ス
テップ726)。Quiesce_freeze_selfサービス722
は、スレッド204を待機状態に入らせるためシステム
待機サービスを呼び出すことによってスレッド204の
実行を中断する(ステップ728)。
【0038】静止出口712は、アプリケーション環境
が受容できないと判断する場合(ステップ730)、qu
iesce_event_put_backサービス734を起動して事象を
カーネルへ戻す(ステップ732)。Quiesce_event_pu
t_backサービス734は、静止事象をこの時点で取り扱
うことができないこと、および、アプリケーション20
0が後刻事象の送達を要求するであろうこと、をカーネ
ルに通知する。これは、静止事象がなお未処理状態にあ
ることを示すため該当するTCQE308の事象制御ブ
ロック606(図6)にマークをつけることによって行
われる。環境から障害を取り除く責任は、アプリケーシ
ョン200にある。アプリケーション・スレッド204
が静止される準備状態になると、Quiesce_freeze_self
サービス722を呼び出すか、又は、代替的方法とし
て、静止出口712を再起動するようカーネルに要求す
る。
【0039】上述のように、すべてのスレッド204が
quiesce‐freeze‐selfサービス72
2を起動したとき、quiesce_freeze‐selfサ
ービス726は、静止停止サービス404(図4)にポ
スト信号を送り、制御は、その呼び手(アプリケーショ
ン200のスレッド202)に戻される。
【0040】上述のように、すべてのスレッド204が
quiesce_freeze_selfサービス722を起動した時、qui
esce_freeze_selfサービス722はquiesce_freezeサー
ビス404(図4)にポスト信号を送り、制御は、その
呼び手(アプリケーション200のスレッド202)に
戻される。図8を参照すると、今やすべての他のスレッ
ド204が停止されているので、1つの実行中のスレッ
ド202が、アプリケーション200中の他のスレッド
204からの干渉なしに、要求される重大な作業を遂行
することができる(ステップ802)。重大な作業が完
了次第、スレッド202は、静止サービス208のquie
sce_unfreezeサービス806を呼び出す(ステップ80
4)。quiesce_unfreezeサービス806は、pthread_cr
eate(図3)の間に構築されたスレッド制御待ち行列エ
レメント308のTCQ320を通して動き、quiesce_
freeze_selfサービス722内で現在待機中のスレッド
204の各々にポスト信号を送る(ステップ808)。
ポスト信号発信次第、quiesce_freeze_selfサービス
は、各停止スレッド204の制御を対応する静止出口7
12に戻し(ステップ810)、割込み箇所702での
実行を再開する(ステップ812)。この再開は、QE
IB412に保存したPSWとレジスタ内容506を使
用して行われる。次に、quiesce_unfreezeサービス80
6は、スレッド202に制御を復帰し(ステップ81
4)、アプリケーション処理を再開する(ステップ81
6)。
【0041】図9は、静止終了要求のプロセスの流れを
示す。静止終了要求は、呼び出し元スレッド202を除
き、アプリケーション中のスレッド204のすべてを終
了させる機能を持つ。終了するスレッド204は、終了
する前にアプリケーション上重大なコードを完了した
り、あるいは、スレッド関連資源を問題の起きない状態
にする機会を与えられる。
【0042】図9に示されるように、アプリケーション
200中の他のスレッド204を終了させることを要求
する事象212が通知され次第、スレッド202は、ア
プリケーションの他のスレッドの終了を要求するため、
静止サービス904のquiesce_termサービス904を呼
び出す(ステップ902)。quiesce_termサービス90
4は、TCQチェイン320を走査し、呼び出し元スレ
ッド202に関するTCQEを除くすべてのチェイン上
のTCQE308の各々に関するquiesce_term事象90
8を生成する。図9には示されていないが、このquiesc
e_term事象908は、第4図で示された方法と同様にサ
ービス要求ブロック(SRBS)と割込み要求ブロック
(IRBS)とを使用してスレッド204へ伝達される
ことが好ましい。次に、quiesce_termサービス904
は、他のスレッド204が終了させられるまで、待機す
る(ステップ910)。
【0043】quiesce_termサービス904によって生成
された事象908をスレッド204が受信すると、アプ
リケーションの通常の流れは、上述の通り箇所702で
割り込まれ、静止出口712に制御権が与えられる。静
止出口712は、停止に関し上述したケース(図7)と
同様にアプリケーション環境をチェックする。アプリケ
ーション環境が受容可能で、生成された静止事象が(Q
EIB412の静止事象タイプ・フィールド504によ
って標示されるが)終了のためのものであれば(ステッ
プ912)、静止出口712は、スレッド・クリーンア
ップ・ルーチン(pthread_exit)922を起動する(ス
テップ914)。
【0044】Pthread_exitルーチン922は、終了する
スレッド204に関係したシステム資源を解放する。当
該終了スレッド204が、アプリケーション中で、生成
されたquiesce_term事象を持った最後のスレッドであれ
ば(ステップ916)、pthread_exitルーチン922
は、quiesce_termサービス904で待機中のスレッド2
02にポスト信号を送る(ステップ918)。スレッド
202が上記ポスト信号を受信しquiesce_termサービス
904での待機を解いた後(ステップ918)、アプリ
ケーション200に制御が戻され、受信した事象212
に基づいて適切な措置が取られる(ステップ920)。
【0045】(図示されていないが)quiesce_forceサ
ービスが、quiesce_term サービス904と同様に動作
し、すべての他のスレッド204に終了事象を送信す
る。しかし、quiesce_forceサービスは、ユーザ定義静
止出口の呼び出しをバイパスし、割込み要求ブロック
(IRB)からpthread_exitルーチン922が直接呼び
出される。
【0046】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)第1のスレッドと第2のスレッドが共通アドレス
空間で並列的に実行されるコンピュータ・システムにお
いて、上記第1のスレッドによって外部事象を処理する
ための方法であって、上記第2のスレッドを静止させる
ため、上記第1のスレッドから上記第2のスレッドへ静
止事象を送信するステップと、上記第2のスレッドへ送
信された静止事象に応答して上記第2のスレッドが動作
を静止するまで、上記第1のスレッドの実行を中断する
ステップと、上記第2のスレッドへ送信された静止事象
に応答して上記第2のスレッドが動作を静止した時、上
記事象を処理するため上記第1のスレッドの実行を再開
するステップと、を含む方法。 (2)上記第2のスレッドは、上記アドレス空間におい
て上記第1のスレッドと並列に実行される複数の付加ス
レッドの1つであり、上記第1のスレッドから上記複数
の付加スレッドの各々に上記静止事象が送信される、上
記(1)記載の方法。 (3)上記複数の付加スレッドが当該スレッドへ送信さ
れた静止事象に応答して動作を静止するまで、上記第1
のスレッドの実行が中断される、上記(2)記載の方
法。 (4)静止すべき上記複数の付加スレッドの最後のスレ
ッドが、上記第1のスレッドの実行を再開する、上記
(3)記載の方法。 (5)上記第1のスレッドによる上記外部事象の検出に
応答して、上記静止事象が上記第1のスレッドから上記
第2のスレッドへ送信される、上記(1)記載の方法。 (6)上記静止事象が、上記第2のスレッドを終了させ
るための終了事象である、上記(1)記載の方法。 (7)上記静止事象が、上記第2のスレッドを中断させ
るための中断事象である、上記(1)記載の方法。 (8)静止事象を上記第1のスレッドから上記第2のス
レッドへ送信する上記ステップが、上記第2のスレッド
の実行に割り込み、静止出口ルーチンに制御を与えるス
テップを含む、上記(1)記載の方法。 (9)上記静止出口ルーチンが、上記第2のスレッドが
システム環境に影響を及ぼす程重大な資源を保持してい
るか否かを判断し、上記第2のスレッドが重大な資源を
保持していないと判断する場合、上記第2のスレッドを
静止させる、上記(8)記載の方法。 (10)上記第2のスレッドがシステム環境に影響を及
ぼす程重大な資源を保持しているか否かを判断するステ
ップと、上記第2のスレッドが重大な資源を保持してい
ないと判断する場合、上記第2のスレッドを静止させる
ステップと、を更に含む上記(1)記載の方法。 (11)上記第2のスレッドを静止させる前に上記第2
のスレッドによって保持される重大な資源を解放するス
テップを更に含む、上記(10)記載の方法。 (12)第1のスレッドと第2のスレッドが共通アドレ
ス空間で並列的に実行されるコンピュータ・システムに
おいて、上記第1のスレッドによって外部事象を処理す
るための方法であって、上記第2のスレッドを中断させ
るため、上記第1のスレッドから上記第2のスレッドへ
中断事象を送信するステップと、上記第2のスレッドへ
送信された中断事象に応答して上記第2のスレッドが動
作を中断するまで、上記第1のスレッドの実行を中断す
るステップと、上記第2のスレッドへ送信された中断事
象に応答して上記第2のスレッドが動作を中断した時、
上記事象を処理するため上記第1のスレッドの実行を再
開するステップと、上記第1のスレッドによる上記事象
の処理の後、上記第2のスレッドの実行を再開するステ
ップと、を含む方法。 (13)複数の付加スレッドが上記アドレス空間におい
て上記第1のスレッドと並列に実行され、上記第1のス
レッドから上記複数の付加スレッドの各々に上記中断事
象が送信される、上記(12)記載の方法。 (14)上記複数の付加スレッドが当該スレッドへ送信
された中断事象に応答して動作を中断するまで、上記第
1のスレッドの実行が中断される、上記(13)記載の
方法。
【0047】
【発明の効果】本発明によって、静止状態がいつスレッ
ドに効果を及ぼす状態に入るべきかを決定することが可
能となる。また、重大な資源を保持しているスレッドを
無条件に停止させるという問題が回避される。コードの
「不安定」または「重大な」部分で実行中のスレッドを
非同期的に停止させることに起因する破壊的な結果もま
た回避される。
【図面の簡単な説明】
【図1】本発明を組み入れているコンピュータ・システ
ムの概要を示す図である。
【図2】本発明に従って他のスレッドを静止(すなわち
停止または終了)させるための一般的手続きを示す図で
ある。
【図3】本発明に従って静止出口を初期登録するための
手続きを示す図である。
【図4】本発明に従って他のスレッドを停止(すなわ
ち、中断 )する手続きの初期局面を示す図である。
【図5】図4で示される停止手続きの初期局面の間に作
成される静止出口インターフェース・ブロック(QEI
B)を示す図である。
【図6】図3で示される初期登録手続きの間に作成され
るスレッド制御待ち行列エレメント(TCQE)を示す
図である。
【図7】本発明に従って他のスレッドを停止させる手続
きの最終局面を示す図である。
【図8】本発明に従って他のスレッドの停止を解く(す
なわち、再開する)ための手続きを示す図である。
【図9】本発明に従って他のスレッドを終了させるため
の手続きを示す図である。
【符号の説明】
100 コンピュータ・システム 102 アプリケーション層 104 言語サブルーチン/実行ライ
ブラリ層 106 オペレーティング・システム
またはカーネル層 108 ハードウエア層 200 アプリケーション 202、302 第1のスレッド 204、304、312 第2のスレッド 206 ユーザ・アドレス空間 208 静止サービス 212 アプリケーション事象 218 静止通知 306 quiesce_exit_registration
(出口登録)サービス 308 スレッド制御待ち行列エレメ
ント(TCQE) 314 pthread_create(スレッド作
成)サービス 320 スレッド制御待ち行列(TC
Q) 404 quiesce_freeze(停止)サー
ビス 408 内部事象生成ルーチン 412 静止出口インターフェース・
ブロック(QEIB) 416 サービス要求ブロック(SR
B) 418 割り込み要求ブロック(IR
B) 502 目標スレッド・アドレス 504 静止事象タイプ 506 PSWとレジスタ内容 602 スレッド識別子 604 アプリケーション静止出口ア
ドレス 606 事象制御ブロック 702 割り込み箇所 712 静止出口 722 quiesce_freeze_self(自己
停止)サービス 734 quiesce_event_put_back(処
理遅延)サービス 806 quiesce_unfreeze(停止解
除)サービス 904 quiesce_term(終了)サービ
ス 908 quiesce_term事象 922 スレッド・クリーンアップ・
ルーチン(pthread_exit)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アーネスト・スコット・ベンダー アメリカ合衆国12477ニューヨーク州ソー ガティース、パイン・グローブ・スクー ル・ロード 27 (72)発明者 ジョン・ケビン・フランクス アメリカ合衆国12477ニューヨーク州ソー ガティース、デーブ・エリオット・ロード 186 (72)発明者 ジョン・アーサー・ヘルムボルド アメリカ合衆国12401ニューヨーク州キン グストン、リンダーマン・アベニュー 583

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】第1のスレッドと第2のスレッドが共通ア
    ドレス空間で並列的に実行されるコンピュータ・システ
    ムにおいて、前記第1のスレッドによって外部事象を処
    理するための方法であって、 前記第2のスレッドを静止させるため、前記第1のスレ
    ッドから前記第2のスレッドへ静止事象を送信するステ
    ップと、 前記第2のスレッドへ送信された静止事象に応答して前
    記第2のスレッドが動作を静止するまで、前記第1のス
    レッドの実行を中断するステップと、 前記第2のスレッドへ送信された静止事象に応答して前
    記第2のスレッドが動作を静止した時、前記事象を処理
    するため前記第1のスレッドの実行を再開するステップ
    と、 を含む方法。
  2. 【請求項2】前記第2のスレッドは、前記アドレス空間
    において前記第1のスレッドと並列に実行される複数の
    付加スレッドの1つであり、 前記第1のスレッドから前記複数の付加スレッドの各々
    に前記静止事象が送信される、 請求項1記載の方法。
  3. 【請求項3】前記複数の付加スレッドが当該スレッドへ
    送信された静止事象に応答して動作を静止するまで、前
    記第1のスレッドの実行が中断される、 請求項2記載の方法。
  4. 【請求項4】静止すべき前記複数の付加スレッドの最後
    のスレッドが、前記第1のスレッドの実行を再開する、 請求項3記載の方法。
  5. 【請求項5】前記第1のスレッドによる前記外部事象の
    検出に応答して、前記静止事象が前記第1のスレッドか
    ら前記第2のスレッドへ送信される、 請求項1記載の方法。
  6. 【請求項6】前記静止事象が、前記第2のスレッドを終
    了させるための終了事象である、 請求項1記載の方法。
  7. 【請求項7】前記静止事象が、前記第2のスレッドを中
    断させるための中断事象である、 請求項1記載の方法。
  8. 【請求項8】静止事象を前記第1のスレッドから前記第
    2のスレッドへ送信する前記ステップが、前記第2のス
    レッドの実行に割り込み、静止出口ルーチンに制御を与
    えるステップを含む、 請求項1記載の方法。
  9. 【請求項9】前記静止出口ルーチンが、前記第2のスレ
    ッドがシステム環境に影響を及ぼす程重大な資源を保持
    しているか否かを判断し、前記第2のスレッドが重大な
    資源を保持していないと判断する場合、前記第2のスレ
    ッドを静止させる、 請求項8記載の方法。
  10. 【請求項10】前記第2のスレッドがシステム環境に影
    響を及ぼす程重大な資源を保持しているか否かを判断す
    るステップと、 前記第2のスレッドが重大な資源を保持していないと判
    断する場合、前記第2のスレッドを静止させるステップ
    と、 を更に含む請求項1記載の方法。
  11. 【請求項11】前記第2のスレッドを静止させる前に前
    記第2のスレッドによって保持される重大な資源を解放
    するステップを更に含む、 請求項10記載の方法。
  12. 【請求項12】第1のスレッドと第2のスレッドが共通
    アドレス空間で並列的に実行されるコンピュータ・シス
    テムにおいて、前記第1のスレッドによって外部事象を
    処理するための方法であって、 前記第2のスレッドを中断させるため、前記第1のスレ
    ッドから前記第2のスレッドへ中断事象を送信するステ
    ップと、 前記第2のスレッドへ送信された中断事象に応答して前
    記第2のスレッドが動作を中断するまで、前記第1のス
    レッドの実行を中断するステップと、 前記第2のスレッドへ送信された中断事象に応答して前
    記第2のスレッドが動作を中断した時、前記事象を処理
    するため前記第1のスレッドの実行を再開するステップ
    と、 前記第1のスレッドによる前記事象の処理の後、前記第
    2のスレッドの実行を再開するステップと、 を含む方法。
  13. 【請求項13】複数の付加スレッドが前記アドレス空間
    において前記第1のスレッドと並列に実行され、 前記第1のスレッドから前記複数の付加スレッドの各々
    に前記中断事象が送信される、 請求項12記載の方法。
  14. 【請求項14】前記複数の付加スレッドが当該スレッド
    へ送信された中断事象に応答して動作を中断するまで、
    前記第1のスレッドの実行が中断される、 請求項13記載の方法。
JP6262140A 1994-01-27 1994-10-26 外部事象を処理する方法およびシステム Expired - Fee Related JP2856681B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US187675 1988-04-29
US18767594A 1994-01-27 1994-01-27

Publications (2)

Publication Number Publication Date
JPH07219789A true JPH07219789A (ja) 1995-08-18
JP2856681B2 JP2856681B2 (ja) 1999-02-10

Family

ID=22689978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6262140A Expired - Fee Related JP2856681B2 (ja) 1994-01-27 1994-10-26 外部事象を処理する方法およびシステム

Country Status (2)

Country Link
US (1) US8407703B1 (ja)
JP (1) JP2856681B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820155B1 (en) 1999-12-07 2004-11-16 Matsushita Electric Industrial Co., Ltd. Interruption managing device and interruption managing method
WO2004059426A3 (en) * 2002-12-18 2005-11-10 Bea Systems Inc System and method for using native code interpretation to move threads to a safe state in a run-time environment
CN111240749A (zh) * 2018-11-28 2020-06-05 中国移动通信集团浙江有限公司 一种集群系统中实例的挂起控制方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154400B2 (en) * 2011-05-10 2015-10-06 Cray Inc. Dynamically updating routing information while avoiding deadlocks and preserving packet order after a configuration change
US10025608B2 (en) 2014-11-17 2018-07-17 International Business Machines Corporation Quiesce handling in multithreaded environments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01217525A (ja) * 1988-02-25 1989-08-31 Nec Corp タスクデバッグ方法
JPH03257633A (ja) * 1990-03-08 1991-11-18 Hitachi Ltd マルチスレッド環境の計算機システム
JPH05127927A (ja) * 1991-11-05 1993-05-25 Fujitsu Ltd タスク終了処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
EP0381655A3 (en) * 1989-01-31 1992-12-02 International Business Machines Corporation Method for synchronizing the dispatching of tasks among multitasking operating systems
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5404521A (en) * 1990-07-31 1995-04-04 Top Level Inc. Opportunistic task threading in a shared-memory, multi-processor computer system
US5305455A (en) * 1990-12-21 1994-04-19 International Business Machines Corp. Per thread exception management for multitasking multithreaded operating system
US5297274A (en) * 1991-04-15 1994-03-22 International Business Machines Corporation Performance analysis of program in multithread OS by creating concurrently running thread generating breakpoint interrupts to active tracing monitor
US5247675A (en) * 1991-08-09 1993-09-21 International Business Machines Corporation Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
US5519867A (en) * 1993-07-19 1996-05-21 Taligent, Inc. Object-oriented multitasking system
US5428789A (en) * 1993-08-27 1995-06-27 Waldron, Iii; Theodore C. Method and apparatus for optimizing user response time in a priority preemptive operating system
US8527682B2 (en) 2008-08-22 2013-09-03 Mitsubishi Electric Corporation Bus controller, bus communication system, and bus control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01217525A (ja) * 1988-02-25 1989-08-31 Nec Corp タスクデバッグ方法
JPH03257633A (ja) * 1990-03-08 1991-11-18 Hitachi Ltd マルチスレッド環境の計算機システム
JPH05127927A (ja) * 1991-11-05 1993-05-25 Fujitsu Ltd タスク終了処理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820155B1 (en) 1999-12-07 2004-11-16 Matsushita Electric Industrial Co., Ltd. Interruption managing device and interruption managing method
WO2004059426A3 (en) * 2002-12-18 2005-11-10 Bea Systems Inc System and method for using native code interpretation to move threads to a safe state in a run-time environment
US7080374B2 (en) * 2002-12-18 2006-07-18 Bea Systems, Inc. System and method for using native code interpretation to move threads to a safe state in a run-time environment
CN111240749A (zh) * 2018-11-28 2020-06-05 中国移动通信集团浙江有限公司 一种集群系统中实例的挂起控制方法及装置
CN111240749B (zh) * 2018-11-28 2023-07-21 中国移动通信集团浙江有限公司 一种集群系统中实例的挂起控制方法、装置、设备、存储介质

Also Published As

Publication number Publication date
US8407703B1 (en) 2013-03-26
JP2856681B2 (ja) 1999-02-10

Similar Documents

Publication Publication Date Title
JP2986056B2 (ja) 異なるアドレス空間にわたってスレッド事象を処理する方法
US5748959A (en) Method of conducting asynchronous distributed collective operations
Anderson et al. Scheduler activations: Effective kernel support for the user-level management of parallelism
JP3339482B2 (ja) 分散デバッグ装置及びデバッグ方法並びに制御プログラムを記録した記録媒体
US5666533A (en) Program execution management using process enclaves which define the scope of high-level language semantics and threads improving cooperation between processes written in multiple languages
US6138168A (en) Support for application programs in a distributed environment
US7356680B2 (en) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
US20020161957A1 (en) Methods and systems for handling interrupts
US20040199927A1 (en) Enhanced runtime hosting
EP0817047A2 (en) Generation and delivery of signals in a two-level, multithreaded system
US8060788B2 (en) Real-time signal handling in guest and host operating systems
JPH05189251A (ja) 多重タスク処理オペレーティング・システム及びそのコンピュータの動作方法
JP2004288162A (ja) 同期タスクを利用したオペレーティングシステムアーキテクチャ
US6907605B1 (en) Method and apparatus for providing for notification of task termination
US5862340A (en) Method operating in each node of a computer system providing and utilizing special records for collective communication commands to increase work efficiency at each node
JP2856681B2 (ja) 外部事象を処理する方法およびシステム
JP2001282558A (ja) マルチオペレーティング計算機システム
US5644772A (en) Signal dispatching for C language interrupt handling
US5758161A (en) Testing method for checking the completion of asynchronous distributed collective operations
Steketee et al. Experiences with the implementation of a process migration mechanism for Amoeba
CN117762595A (zh) Python进程池优化方法、装置、设备及存储介质
JPH09305382A (ja) 仮想オペレーティングシステム
Broadman et al. Executing a class member in its own thread
JP2006092057A (ja) プロセスの強制終了処理方法
Ford et al. Center for Software Science Department of Computer Science University of Utah Salt Lake City, UT 84112

Legal Events

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