JPH0799502B2 - コンピュータ・システム - Google Patents

コンピュータ・システム

Info

Publication number
JPH0799502B2
JPH0799502B2 JP4199422A JP19942292A JPH0799502B2 JP H0799502 B2 JPH0799502 B2 JP H0799502B2 JP 4199422 A JP4199422 A JP 4199422A JP 19942292 A JP19942292 A JP 19942292A JP H0799502 B2 JPH0799502 B2 JP H0799502B2
Authority
JP
Japan
Prior art keywords
event
monitor
signal
events
notification
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.)
Expired - Lifetime
Application number
JP4199422A
Other languages
English (en)
Other versions
JPH05197568A (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 JPH05197568A publication Critical patent/JPH05197568A/ja
Publication of JPH0799502B2 publication Critical patent/JPH0799502B2/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にコンピュータの
オペレーティング・システムに関し、より具体的にはコ
ンピュータ・オペレーティング・システム内部のイベン
ト管理サービスに関する。
【0002】
【従来の技術】コンピュータ・システムを操作するプロ
セスでは、多くのタイプのイベント、たとえばキーボー
ド上の実行(機能)キーの押下、ディスクからメモリへ
のデータのロード、重大なエラーや追跡イベントの発生
などが起こる可能性がある。データは、実行キーの前に
押された文字キーや、ロードされたディスクの名前など
のイベントに関連していることがある。既知のオペレー
ティング・システムは、次のようにイベントを管理す
る。すなわち、イベントが発生したとき、オペレーティ
ング・システムは、そのイベントに関係のある、オペレ
ーティング・システム内で実行中の1つまたは複数の適
用業務プログラムにその旨を通知し、関連するイベント
・データがあればそれを供給する。通知後、適用業務プ
ログラムは、イベントの通知に応答して、そのイベント
・データを処理しまたは他の処置を取ることができる。
【0003】従来技術のIBMシステム/38オペレー
ティング・システムは、次のようにしてイベントを管理
する。各イベントは、クラス、タイプ及びサブタイプか
らなる所定の1組の数字名のうちの1つの名前を使用し
て定義される。このオペレーティング・システムは、共
通のハードウェア及びソフトウェア・イベントを表すた
めに、これらの所定の名前のいくつかを予約し、他の名
前は、他のイベントを識別するために適用業務プログラ
ムが使用できる。また適用業務プログラムは、定義され
たイベントの通知を受け取るようにイベント・モニタを
動的に定義することができる。イベントが発生したと
き、オペレーティング・システム、またはそのイベント
を検出した適用業務は、EventSignal機能を
呼び出してから、その他の処理を続ける。EventS
ignal機能は、そのイベントに関係のある1つまた
は複数のイベント・モニタ、すなわちイベント定義中に
見られるのと同じクラス、タイプ、及びサブタイプ識別
情報を有するイベントを指名するすべてのイベント・モ
ニタに通知する。総称的なタイプまたはサブタイプ指定
も可能である。関係のあるイベント・モニタが複数ある
場合、EventSignal機能は、同報通信モード
で、すなわち実質的に同時に、これら関係のあるイベン
ト・モニタに通知する。つぎに、イベント・モニタは、
そのイベントに関係のある適用業務プログラムの当該の
各イベント処理サブルーチンに、そのイベント通知に作
用し、またはイベント・データを処理し、あるいはその
両方を行うよう通知する。
【0004】イベント・ハンドラは、イベントの発生に
対して同期的にまたは非同期的に動作する。非同期「ト
ラップ」モードでは、イベント・ハンドラはイベントの
通知を要求するが、イベントがまだ発生していない場合
に、イベントが発生するのを待って遊休状態に留まるこ
とはない。イベントが発生し、当該のイベント・モニタ
が通知を受けたとき、そのイベント・モニタは、割込み
信号とそれに続いてイベント・データを送ることによっ
て、イベント・ハンドラに通知する。同期「テスト」モ
ードでは、イベント・ハンドラは、イベントが発生した
かどうかをイベント・モニタに周期的に照会し、発生し
た場合、そのイベントに応答し、またはイベント・デー
タを処理し、あるいはその両方を行う。イベントが発生
していない場合、イベント・ハンドラは他の作業を実行
する。同期「トラップ」モードでは、イベント・ハンド
ラはイベント通知及びイベント・データを一回要求し、
イベントが発生するまでスリープ・モードで待ち、イベ
ント通知によって覚醒する。システム/38オペレーテ
ィング・システムはまた、イベント・モニタの動的イネ
ーブリング及びディスエーブリングをサポートする。デ
ィスエーブルされたイベント・モニタは、対応するイベ
ント・ハンドラにイベントを通知しない。また、システ
ム/38オペレーティング・システムでは、イベント信
号を受け取らないようにイベント・ハンドラをマスクす
ることができる。
【0005】プログラム・トレース・イベントなどある
タイプのイベントは周期的に発生する。システム/38
オペレーティング・システムでは、関心があるイベント
・モニタに結び付けて保持すべきイベント及び関連する
イベント・データの最大数を指定することができ、また
は関心があるイベント・モニタがディスエーブルされて
いる間、これらのイベント及び関連イベント・データを
無制限に保持すると指定することができる。前者の場
合、イベント及び関連イベント・データの最大数を超え
たとき、最大水準を超える以後の新しいイベント及び関
連するイベント・データが放棄される。システム/38
オペレーティング・システムでは、イベントを管理する
際にかなりの量の制御及び効率がもたらされ、関連する
適用業務プログラムがイベント管理サービスの定義に参
加することが可能であるが、コンピュータ・システム及
び関連する適用業務プログラムの具体的要件に応じてオ
ペレーティング・システムがより効率的かつ包括的にイ
ベントを管理できるようにするために、一層の改良が望
まれる。
【0006】
【発明が解決しようとする課題】したがって、本発明の
全般的目的は、効率的かつ包括的にイベントを管理し、
関連する適用業務プログラム、及びコンピュータ・シス
テムの他の部分が、イベント管理サービスをそれらの特
定のニーズに合わせて調整することを可能にする、イベ
ント管理サービスを提供することである。
【0007】本発明の別の目的は、関連するイベント・
シグナラ、イベント・デファイナまたはイベント・ハン
ドラあるいはそれらのいくつかが効率的かつ最適の形で
動作できるようにする、前記のタイプのイベント管理サ
ービスを提供することである。
【0008】
【課題を解決するための手段】本発明は、当該の各プロ
グラム内の複数のイベント・ハンドラにとって関心があ
るイベントを管理する、コンピュータ・オペレーティン
グ・システムに関する。これらのイベント・ハンドラ
は、イベントの発生の順次通知を受け取るためにシーケ
ンスとして配列されている。イベントが発生したとき、
このシーケンス内の第1のイベント・ハンドラが通知を
受け、次いでそのイベントを処理する。次に、第1のイ
ベント・ハンドラは、シーケンス内の第2イベント・ハ
ンドラにそのイベントについて通知すべきかどうかを決
定する。イエスの場合、シーケンス内の第2のイベント
・ハンドラがイベント通知を受け取り、イベントを処理
し、次いでシーケンス内の第3のイベント・ハンドラに
通知すべきかどうかを決定する。このようにして、イベ
ント通知が、シーケンス内のイベント・ハンドラからイ
ベント・ハンドラへと伝搬できるが、シーケンス内の通
知を受け取るどのイベント・ハンドラも、イベント通知
の以後の伝搬をブロックすることができる。この技法
は、シーケンス内の(第1イベント・ハンドラより後
の)いくつかのまたはすべてのイベント・ハンドラがイ
ベント通知から利益を受けない場合に、処理時間を節約
する。このような場合、イベント通知はそれらのイベン
ト・ハンドラに伝搬されない。たとえば、第1イベント
・ハンドラの機能が障害の重大性を分析することであ
り、第2イベント・ハンドラの機能がその障害から回復
することであり、その障害が回復不可能なほど重大であ
る場合、第1イベント・ハンドラは第2イベント・ハン
ドラへの通知を許すべきではない。そうしても、単にプ
ロセッサ時間を浪費するだけである。
【0009】本発明によれば、オペレーティング・シス
テムは、そのイベントに関心を持つすべてのイベント・
ハンドラに通知するモードとして、前記の伝搬モード、
または関心があるすべてのイベント・ハンドラが同時に
または少なくとも偶発的でなしにイベント通知を受け取
る同報通信モードを選択することが可能である。プログ
ラムは、イベントの定義に関する対応するパラメータを
供給することによって、関心があるイベント・ハンドラ
に通知するモードを指定する。イベントが発生したと
き、オペレーティング・システム内のイベント・マネー
ジャが、イベント定義を読み取って、関心があるイベン
ト・ハンドラに通知するモードを決定する。プログラム
は、同じタイプまたは異なるタイプのイベントの組合せ
に対する関係を指定することができ、伝搬モードが選択
された場合、イベントの通知を受け取るシーケンス内の
各イベント・ハンドラが、関心があるいくつかのイベン
ト信号を伝搬するか、または全く伝搬しないかを決定す
ることができる。
【0010】本発明によれば、また、適用業務プログラ
ム、またはオペレーティング・システムの別の部分が、
イベントを定義する。各イベント定義は、イベントの発
生に対する若干のオペレーティング・システムを制御す
る、そのイベントの1つまたは複数の属性を含んでい
る。定義されたイベントの発生後、適用業務プログラ
ム、またはオペレーティング・システムの別の部分がイ
ベント・マネージャにその旨を通知する。イベント・マ
ネージャは対応するイベント定義を読み取って、そのイ
ベントのシグナラまたはイベント・シグナラに関連する
プロセスの動作モードを決定する。動作モードには、イ
ベントが処理されるまでイベント・シグナラまたは関連
プロセスが処理を中断する同期モードと、イベントの処
理中にイベント・シグナラまたは関連プロセスが処理を
継続できる非同期モードとが含まれる。イベント定義を
読み取った後、イベント・マネージャは、同期的に進め
るのかそれとも非同期的に進めるのかをイベント・シグ
ナラに知らせる。イベント処理後、中断されていたイベ
ント・シグナラが再開される。同期モードは、イベント
・ハンドラが「出口ルーチン」であるとき、特に有用で
ある。
【0011】さらに、イベント定義は、現在そのイベン
トに関心があるプログラムがないときに記憶されるいく
つかのイベント信号指定など他の属性を含み、イベント
定義がオペレーティング・システムの動作中を通じて動
的に受取りまたは更新できる。
【0012】本発明によれば、また、適用業務プログラ
ム、またはオペレーティング・システムの別の部分が、
1つまたは複数のタイプのイベントを監視するイベント
・モニタを定義する。この定義は、イベント・モニタを
満足するために必要な前記1つまたは複数のタイプのイ
ベントの発生の組合せをも指定する。監視される各イベ
ントが発生するとき、イベント・モニタは、信号を受
け、イベント信号を記憶する。イベント・モニタは、そ
のイベント・モニタを満足する信号を記憶した時、(イ
ベント・ハンドラによる同時または事後の照会に従っ
て)イベント・ハンドラにその旨を通知することができ
る。その後、イベント・ハンドラは記憶されたイベント
信号にアクセスすることができる。
【0013】本発明によれば、また、適用業務プログラ
ム、またはオペレーティング・システムの別の部分が、
それに代わって1つまたは複数のタイプのイベントを監
視するイベント・モニタを定義する。監視される各イベ
ントが発生した時、イベント・モニタは信号を受け取
り、イベント信号を記憶する。一定の条件の下で、イベ
ント・モニタはイベント・ハンドラに通知することがで
き、イベント・ハンドラは記憶されたイベント信号にア
クセスすることができる。イベント・モニタは、動的
に、すなわちコンピュータの動作中を通してコンピュー
タ・システムを停止または再結合することなく、定義し
確立することができる。あるイベントに関心があるイベ
ント・モニタがない場合でも、そのイベントの信号が記
憶される。関心があるイベント・モニタが後で確立され
た時、以前に記憶されたイベント信号が関心があるイベ
ント・モニタに転送される。従って、イベント・ハンド
ラは以前のイベント信号の利益を享受できる。
【0014】イベントはトレース・イベントであってよ
く、各イベント・モニタに関連するイベント・ハンドラ
は、トレース・イベントを実時間で受け取り処理するこ
とができる。
【0015】
【実施例】これから図面を詳細に参照するが、図面全体
を通して同じ参照番号は同じ要素を指す。図1は、本発
明による多重タスク処理オペレーティング・システム1
1のイベント管理サービス部分を示す。このオペレーテ
ィング・システム11は、磁気ディスクやテープなどの
コンピュータ可読媒体上に実行可能な形でプログラミン
グされ、コンピュータ・メモリ21にロードされ、CP
U19上で実行されることが好ましい。ただし、オペレ
ーティング・システム11またはその一部分を、同等の
ハードウェアで実施することも可能である。
【0016】オペレーティング・システム11及び関連
する適用業務プログラムは、以下で詳細に述べる多くの
機能を提供する。これらの機能は、以下のカテゴリのグ
ループ分けすることができる。イベント定義、イベント
信号通知、イベント・モニタ作成、イベント監視、イベ
ント・モニタ処理及びイベント処理。
【0017】イベント定義は、イベントを識別するため
のイベント名と、イベントに関するいくつかのオペレー
ティング・システム応答を制御するためのイベント属性
とを含む。オペレーティング・システムは定義されたイ
ベントだけを認識する。
【0018】オペレーティング・システムまたは適用業
務プログラムは、イベントの発生を通信するためにイベ
ントを信号で通知する。イベント信号は、イベントを信
号で通知するプロセスと常に関連する。イベントは、そ
の信号がこのプロセスの内部でだけ認識されるように、
またはこのプロセスを含むセッション全体を通して認識
されるように定義することができる。イベント信号は、
イベントに関連するデータ、及びイベントの特定の発生
を指定するキー、またはイベント・データのソースなど
イベント・データのタイプのサブセットを含むことがで
きる。
【0019】適用業務プログラム、またはオペレーティ
ング・システム11内部の他の機能が、イベントの通知
及びイベント・データ(もしあれば)を受け取ることに
関与する場合、適用業務プログラムまたは他のオペレー
ティング・システム機能が、イベント・モニタを定義す
る。この定義は、イベント・モニタに関心がある、1つ
のイベント、または同じタイプもしくは異なるタイプの
イベントの組合せを指定する。本明細書で詳細に記述す
る本発明の実施例では、イベント・モニタを満足させる
ために同じタイプのイベントが2回以上発生する必要が
ある場合、イベント・タイプはイベント・モニタ定義中
で2回以上リストされる。(別法として、各イベント・
タイプをイベント・モニタ定義中で1回だけリストし、
イベント・モニタを満足させるために必要なタイプのイ
ベントの最低数を示すカウントを各イベント・タイプご
とに提供することもできる。)また、この定義で、イベ
ント・モニタに関心があるイベント発生を制限するため
の、各イベント名付きのキーを指定することもできる。
イベント・モニタは、同じプロセス内の他のプログラム
・スレッドによって提供されるイベント信号、またはセ
ッション範囲によって定義されるイベントの信号を監視
することができる。またイベント・モニタ定義は、イベ
ント・モニタを「満足させる」ために必要な個別のイベ
ント信号の数または「カウント」、すなわち少なくとも
1回起こったはずの指定されたイベントの数を指定す
る。イベント・モニタが満足されたときだけ、イベント
・モニタは関連するイベント・ハンドラが記憶されたイ
ベント信号にアクセスすることを許す。このようなアク
セスを提供するために、イベント・ハンドラはイベント
・モニタに要求を行い、イベント・モニタが満足された
場合、イベント・モニタはイベント・ハンドラにイベン
ト・モニタが満足されたこと、及び記憶されたイベント
信号の位置を通知する。この要求は、EventTra
p、EventWait、またはEventTest呼
出しの形をとることができる。イベント・モニタが満足
されたという通知を受け取った後、イベント・ハンドラ
はイベント・データを取り出し処理することができる。
イベント・データを解釈するこの方式は、イベント・シ
グナラとイベント・ハンドラの間の専用プロトコルに基
づいており、各名前付きイベントごとに別々に確立され
る。オペレーティング・システム11内部のイベント管
理サービスは、イベント通知及びイベント・データをイ
ベント・ハンドラに渡すためのチャネルを提供する。イ
ベント・ハンドラがイベント・データを取り出し処理し
た後、イベント・モニタをリセットしてからでないと、
イベント・ハンドラは新しいイベント信号を取り出して
処理することができない。
【0020】オペレーティング・システム11内部のイ
ベント管理サービスは、イベント・デファイナ12a、
b、結果として得られるイベント定義16a〜d、イベ
ント・モニタ28a〜d、イベント・シグナラ18a、
b、及びイベント信号マネージャ26を含む。図示され
ていないが、オペレーティング・システム11はイベン
ト・モニタ・デファイナとイベント・ハンドラを含むこ
ともできる。図1は、オペレーティング・システム11
上で走行する当該の各適用業務プログラム・スレッド内
部のイベント・デファイナ13a、b、イベント・シグ
ナラ15a、b、イベント・モニタ・デファイナ17a
〜d、及びイベント・ハンドラ14a〜dをも示してい
る。前記の適用業務プログラム・スレッド13a、b、
14a〜d、15a、b及び17a〜dはそれぞれ異な
るコンピュータ・プロセスの要素でもよいが、通常は、
イベント・モニタ・デファイナとイベント・ハンドラの
各対(17a、14a)、(17b、14b)、(17
c、14c)、(17d、14d)が同じプロセスの一
部分である。またイベント・デファイナとイベント・シ
グナラの各対は、同じプロセスの一部分であったり、オ
ペレーティング・システム11の内部にあってもよく、
あるいはイベント・デファイナがオペレーティング・シ
ステム内部にあり、イベント・シグナラが適用業務プロ
グラムとしてオペレーティング・システムの外部にあっ
てもよい。
【0021】次にオペレーティング・システム11及び
関連する適用業務プログラム・スレッドの動作の高水準
の説明を行う。イベント・シグナラ18a、b及び15
a、bは、イベントの発生を検出し、イベント信号マネ
ージャ26にイベントの発生の指示、イベント名、イベ
ント・キー(すなわち、イベントに付随するイベント・
データのタイプのサブセット)、及び特定のイベント・
データを信号で通知する。これに応答して、イベント信
号マネージャは、信号で通知されたイベントの名前をイ
ベント定義16a〜d内のイベント名と比較して、その
名前付きイベントが定義されているかどうかを決定し、
定義されている場合、イベントの属性を読み取る。それ
らの属性は、イベント・シグナラが、他の作業に進む前
にイベントが処理されるのを待たなければならないの
か、それともイベント・シグナラがイベント処理中に他
の作業に進むことができなければならないのか、現在イ
ベントに関心があるイベント・モニタがない場合に記憶
できるイベント信号の最大数、及びイベントに関心があ
る複数のイベント・モニタに通知するための同報通信モ
ードまたは伝搬モードを示す。第1の属性に基づいて、
イベント信号マネージャはイベント・シグナラにイベン
ト処理が完了するのを待たせ、あるいはイベント処理が
完了する前にイベント・シグナラに処理を継続させる。
イベント信号マネージャはまた、イベント・モニタ28
a〜dの定義を検討して、制限イベント・キーをもつ名
前付きイベントを参照する、すなわちそれに関心がある
1つまたは複数のイベント・モニタが定義されているか
どうかを決定する。定義されていない場合、イベント信
号マネージャは、イベント定義の第2の属性に従って、
イベント定義に関連づけられたイベント信号を記憶す
る。しかし、少なくとも1つのイベント・モニタが、制
限イベント・キーを伴う名前付きイベントに関係がある
場合、イベント信号マネージャはイベント・モニタにイ
ベント通知及びイベント・データを信号で通知する。関
心があるイベント・モニタが2つ以上ある場合、イベン
ト信号マネージャはイベント定義で指定された同報通信
モードまたは伝搬モードで関心があるイベント・モニタ
に信号で通知する。イベント・モニタ定義は、関心があ
るイベント・ハンドラに後で送るためにイベント・モニ
タに関連づけて記憶できる、リストされた各イベントの
信号の最大数と、イベント・モニタを「満足させる」た
めに必要な個別のイベント信号の数を示す。満足された
場合、信号で通知された各イベント・モニタは、イベン
ト・ハンドラから要求された時、要求された方式で、す
なわち待機モード、トラップ・モードまたはテスト・モ
ードで、当該の各イベント・ハンドラにイベントについ
て通知する資格がある。イベント・ハンドラはイベント
通知に応答し、イベント・データがあればそれを処理す
る。
【0022】次に本発明についてより詳細に説明する。
オペレーティング・システムは、プロセス作成、プロセ
ス削除、開始コマンド、終了コマンド、コマンドが見つ
からない、リセット、プログラム・ロード、プログラム
・アンロード、コンソール出力完了、コンソール入力使
用可能、エラー、タイマ、トレース、入出力、会計イベ
ントなどのイベントを定義することができる。エラー・
イベントは、たとえばプログラム・チェック、接続の切
断、またはその他のシステム障害である。タイマ・イベ
ントはタイミング期間の終了である。トレース・イベン
トは、プログラム・サブルーチン、プログラムのスレッ
ドまたは重要ステップ(たとえば、データ・アクセス、
データ送信、新しいスレッドの指名、スレッドの中断な
ど)の完了である。会計イベントは、ユーザへの請求金
額を計算するコンピュータ・システムの使用である。適
用業務プログラムは、機能の完了、機能内のチェックポ
イント、データ作成、データ削除、適用業務プログラム
・エラー・イベント(たとえばユーザ入力エラー)、応
答活動の要求など、任意のタイプのイベントを定義する
ことができる。たとえば、適用業務プログラムがロボッ
トのアームを制御しようとする場合、適用業務プログラ
ムは、そのアームを移動する要求であるイベントを定義
し、その後でイベント、すなわちその要求を信号で通知
し、アームをどの方向にどれだけ移動するかを定義する
イベント・データを提供することができる。オペレーテ
ィング・システムまたは適用業務プログラムは、いつで
も、すなわちセッション初期設定中、イベントを検出す
るサービスの最初の呼出し時、またはその他のときに、
これらのイベントを定義することができる。各イベント
は、イベント信号マネージャ26内でEventCre
ate機能40を呼び出し、定義パラメータを指定する
ことによって定義される。イベント信号マネージャ26
内部でのこの機能及び他の各機能の呼出しについては、
下記の「イベント信号マネージャ機能呼出し」と題する
節で詳細に説明する。
【0023】呼出しのパラメータに基づいて、各イベン
ト定義16a〜dは、イベント名及びイベントの重要な
属性または特性を含む。各イベント名は、イベント・デ
ファイナによって決定される長さ及び構成をもつ文字ス
トリングであり、イベントの主要な識別情報を提供す
る。属性には、イベント名の有効範囲、ルース信号限
界、関心があるイベント・モニタ28a〜dに信号で通
知するモード、及びイベント通知及び処理中の当該の各
イベント・シグナラ15a、bまたは18a、bの動作
状況が含まれる。イベント定義はまた、図15及び図1
7を参照して下記で説明するイネーブル・フィールド及
び選択フィールドを含む。また、図2ないし4を参照し
て以下で詳細に説明するように、イベント・シグナラ
は、イベントをどのように管理するかを部分的に決定す
るために、名前付きイベントの属性を読み取る、イベン
ト信号マネージャ内のEventSignal機能49
を呼び出す。
【0024】イベント名属性の有効範囲は、そのイベン
ト名が意味をもつ、単一のプロセスまたはセッション全
体を示す。イベント名がプロセスの範囲しかもたない場
合、イベントを定義したプロセスだけがそのイベントを
信号で通知することができ、イベント名を参照する、そ
のプロセス内で定義されたイベント・モニタだけにEv
entSignal機能によって信号で通知できる。し
かし、イベント名がセッション全体の範囲をもつ場合
は、どのプロセスがイベントを信号で通知したかにかか
わらず、そのイベント名を参照するすべてのイベント・
モニタに、イベント信号を受け取った後、EventS
ignal機能によって信号で通知できる。セッション
全体の範囲をもつ各イベント名は、オペレーティング・
システム内で一義的でなければならないが、プロセスの
範囲をもつ各イベント名は、そのイベントを信号で通知
し監視するプロセス内でだけ一義的であればよい。
【0025】ルース信号限界属性は、イベントが定義さ
れイベントが発生した後に、対応するイベント定義に関
連づけて、ただし現在イベントに関心があるイベント・
モニタがない状況で、EventSignal機能の指
令で記憶される、イベント及び関連するイベント・デー
タ(「ルース信号」41)の数である。イベント信号の
ルース信号限界に達した後、それ以後の各イベント信号
は、最も古いイベント信号が消去されてその位置に記憶
される。このルース信号の記憶は、そのイベントに関心
があるイベント・モニタが後で定義されたとき、以前の
イベント信号から利益を得ることができるので、重要で
ある。
【0026】信号通知モード属性は、同じイベントに関
心がある2つ以上のイベント・モニタに信号で通知する
方法を示す。同報通信モードでは、EventSign
al機能は、偶発的でなしに、通常は実質的に同時に、
関心があるすべてのイベント・モニタに信号で通知す
る。関心があるすべてのイベント・モニタが、イベント
の性質にかかわらずイベント通知及びイベント・データ
から利益を得ることができるとき、イベント定義は、同
報通信モードを指示すべきである。たとえば、イベント
がディスクからメモリにデータをロードすることであ
り、そのデータを読み取ることに関心があるイベント・
ハンドラが複数ある場合、任意選択の同時性を得るた
め、これらのイベント・ハンドラがオペレーティング・
システムによって指名されるように、イベントの発生後
すぐに、かつ偶発的でなく、イベント通知及びイベント
・データを(関連するイベント・モニタを介して)イベ
ント・ハンドラに同報通信するのが最も効率的である。
FIFO(先入れ先出し)伝搬モードでは、イベント・
モニタは各イベント・モニタの作成順に通知を受け、L
IFO(後入れ先出し)伝搬モードでは、イベント・モ
ニタは各イベント・モニタの作成順とは逆の順序で通知
を受ける。信号で通知される各イベント・モニタに関連
するイベント・ハンドラが、シーケンス内の次のイベン
ト・モニタにイベントの発生について信号で通知するか
どうかを制御する。これを実行するために、イベント信
号を受け取る各イベント・ハンドラは、現信号セット内
の指定されたイベント信号がシーケンス内の次のイベン
ト・モニタに伝搬できるように、EventMonit
orReset機能を呼び出す。またシーケンス内の各
イベント・ハンドラは、シーケンス内の次の(及び下流
側のすべての)イベント・モニタへの1つまたは複数の
イベント信号の伝搬を防止するために、EventDi
scard機能を呼び出すことができる。イベント信号
伝搬規則は、プロセスごとに適用される。関心があるイ
ベント・ハンドラが異なるプロセス中にあるときは、イ
ベント信号は、必ずこれらのプロセスのそれぞれにおい
て少なくとも1つのイベント・モニタに渡される。この
制御については、下記で図10及び図11を参照してよ
り詳細に説明するが、それによって、イベント信号の伝
搬によってオペレーティング・システムが利益を得ない
とイベント・ハンドラが判断したとき、シーケンス内の
各イベント・ハンドラは、シーケンス内の以後のイベン
ト・ハンドラによるイベント・データの処理を回避する
ことができる。たとえば、イベントが重大な障害であ
り、シーケンス内の第1のイベント・ハンドラの機能が
この障害の性質を分析することであり、シーケンス内の
次のイベント・ハンドラの機能がこの障害から回復する
ことであると仮定する。回復が不可能なほど障害が重大
である場合、第1イベント・ハンドラは、シーケンス内
の次のイベント・ハンドラへのイベント信号の伝搬をブ
ロックすべきである。すなわち、このようなブロッキン
グの効果は、オペレーティング・システムの全体的効率
を向上させることである。
【0027】イベント定義内の動作状況属性は、Eve
ntSignal機能がイベント・モニタに信号で通知
し、イベント・モニタがイベント・ハンドラに通知し、
イベント・ハンドラがイベントに作用し、イベント・デ
ータを処理する間に、イベントを信号で通知するプロセ
スの同期的または非同期的処理を指す。たとえば、イベ
ントが、そのイベントを信号で通知したプロセス内での
エラーである場合、そのエラーが関心があるイベント・
ハンドラによって回復されるまで、そのイベントを信号
で通知したプロセスを中断する(同期処理)ことが好ま
しいことがある。しかし、そのイベントがイベント・シ
グナラの正常な動作を表しており、イベント・シグナラ
がキーボード機能キーの押下など他の類似のイベントを
処理する準備ができているはずの場合(非同期処理)、
イベント・モニタが信号で通知を受け、イベント・ハン
ドラに通知し、イベント・ハンドラがイベント・データ
を処理する間、イベント・シグナラ・プロセスを中断す
べきではない。イベントが出口ルーチンの「呼出し」を
表す場合、その出口ルーチンを信号で通知した、または
呼び出したプロセスは、そのイベントが処理されるまで
中断すべきであり、そのイベント属性は同期処理を示す
べきである。出口ルーチンとは、ユーザ特有の機能また
は導入システム特有の機能を実行するために、オペレー
ティング・システム11のユーザによって通常提供され
るコードのブロックである。このような機能は、その製
品の動作に対するオプション、追加または他の外部的な
ものでもよい。出口ルーチン・イベント用のイベント・
モニタが定義されていない場合、呼出し側プログラムは
実行を続け、システム障害はない。また、出口ルーチン
は、呼出し側プロセスの資源を出口ルーチンから保護す
るため、呼出し側とは異なるプロセス内に存在すること
ができる。イベント・ハンドラは出口ルーチンを提供す
ることができ、その場合、出口ルーチンが実行されるま
で制御は通常呼出し側に戻されない。したがって、出口
ルーチンは、同期属性をもつイベントとして定義すべき
である。
【0028】イベント・モニタ・デファイナ17a〜d
(またはオペレーティング・システム11内の、図示さ
れていない他のイベント・モニタ・デファイナ)は、E
ventMonitorCreate機能42を呼び出
し、イベント・モニタ・パラメータを指定することによ
って、それぞれイベント・モニタ28a〜dを定義す
る。各呼出しは、1つまたは複数のイベント名、当該の
イベント・キー、イベント・モニタを満足させるための
当該イベントの発生回数、及び各イベントに対する結合
信号限界及びイベント・モニタのその他の属性を識別す
る。イベント・キーは、イベント・モニタがすべてのタ
イプの名前付きイベントに関係があることを示す「ワイ
ルドカード」でも、それらのタイプの名前付きイベント
のサブセットでもよい。またイベント・モニタ定義は、
下記のイネーブル、選択、削除、待機及びトラップ・フ
ィールドを含む。上記のように、イベント・シグナラか
らイベント名及びイベント・キーを受け取り、名前付き
イベントがすでに定義済みであることを検証した後、E
ventSignal機能はイベント・モニタ定義を読
み取り、どのイベント・モニタ定義(もしあれば)がイ
ベント名及びキーを記述しているかを決定する。1つま
たは複数のそのようなイベント・モニタが定義済みであ
る場合、EventSignal機能はイベント定義中
で指定された同報通信モードまたは伝搬モードでそれら
のイベント・モニタを呼び出す。
【0029】イベント・キーを使用すると、入力キーの
押下、メモリへのディスクのロードなど、一般イベント
名をリストできるイベントの定義が簡単になり、イベン
ト・モニタ定義は、イベント・モニタ定義内のキーに基
づいてイベント・モニタへのイベント信号通知を制限す
る。たとえば、イベント・モニタ・キーを、特定の1組
の文字キーまたはロードされたディスクのタイプのみに
制限することができる。
【0030】上記にリストしたイベント・モニタ定義中
の次の属性である、イベント・モニタを満足させるのに
必要な個別のイベント信号の数またはカウントが、イベ
ント・モニタに、イベント・モニタ定義中で指名され
た、指定された数の個別のイベントが発生するまで、関
連するイベント・ハンドラへのイベント信号の通知を抑
えさせる。たとえば、通信エラーを回復する機能をもつ
イベント・ハンドラは、以後の分析を正当化するため、
合計10個の通信機能エラーまたはパリティ・エラーあ
るいはその両方が発生したときだけ、そのようなエラー
の通知を受け取ることに関与し、それ以下の数の通信エ
ラーは、回復を開始するほど重大とは判断されない。本
発明のこの実施例では、通信エラーが10回リストさ
れ、パリティ・エラーが10回リストされ、カウントが
10に指定されている場合、どちらか一方または両方の
タイプのエラーが合計10回発生している限り、指定さ
れた各タイプのエラーの数の内訳は、イベント・モニタ
を満足させるのに重要ではない。しかし、通信エラーが
5回リストされ、パリティ・エラーが5回リストされ、
カウントが10である場合は、イベント・モニタを満足
させるために各タイプのイベントが5回発生しなければ
ならない。このように、イベント・モニタ・デファイナ
は、イベント・モニタを満足させるために必要な、関心
がある各タイプのイベントの特定の発生回数を指定する
ことができる。
【0031】上記にリストしたイベント・モニタ定義中
の最後の属性である結合信号限界は、関心があるイベン
ト・モニタの指令で、関心があるイベント・モニタ内の
指名された各イベントと結合してまたは関連づけて記憶
できる、未処理のイベント信号の数である。この限界を
超えたとき、最も古い結合イベント信号が消去され、最
新のイベント信号がイベント・モニタに結合される。た
とえば、固定数のトレース・イベント及びデータの記憶
に対する結合信号限界は、イベント状態の障害追求を行
う助けとして有用であるが、追加のより古いトレース・
データは、現在の問題を反映しないので、役立たないこ
とがある。結合信号は、結合信号セット47内に記憶さ
れる。イベント・モニタが満足され、イベント・ハンド
ラがイベント通知を要求するとき、イベント・モニタ
は、イベント・ハンドラがアクセスすべき現信号セット
45として、最も古い異なる結合イベント信号を指定す
る。イベント・モニタを満足させるために同じタイプの
イベントの発生が2回以上必要な場合、現信号セット
は、少なくともイベント・モニタを満足させるために必
要な数の、そのタイプのイベント信号を含む。
【0032】イベント・モニタ定義中のもう1つの属性
は、イベント・モニタが、作成されたとき、そのイベン
ト・モニタの作成前に発生し、ルース信号セット内に記
憶された、そのイベント・モニタが関心があるタイプの
信号を受け取るべきか否かを指定するものである。受け
取るべき場合は、ルース信号がイベント・モニタの作成
時に結合信号セット47に転送される。イベント・モニ
タ定義中のさらに別の属性は、イベント・モニタが満足
された後、及びイベント・ハンドラがイベント通知を受
け取りそのイベントを処理する間に、イベント・ハンド
ラと同じプロセス内の他のプログラム・スレッドを中断
すべきか否かを指定するものである。イベントが、異常
終了を必要とするシステム障害、またはイベント・ハン
ドラにプロセス全体の「スナップショット」を取らせる
イベントである場合は、他のプログラム・スレッドの実
行を中断することが重要である。
【0033】先に指摘したように、通常、各イベント・
モニタ・デファイナ及び関連するイベント・ハンドラは
同じプロセスの一部分であって、あるプロセスが1つの
イベントまたは複数のイベントの組合せを監視し、その
イベントまたは組合せを処理しようとするとき、そのプ
ロセスがイベント・モニタを定義し、関連するイベント
・ハンドラを提供する。このイベント・ハンドラは、イ
ベント・ハンドラによるEventTest、Even
tTrapまたはEventWait機能の呼出しに基
づいて通知を受ける。このプロセスはイベント・モニタ
を定義または削除し、動的に、すなわちいつでも、Ev
entMonitorCreateまたはEventM
onitorDelete機能及びEventTes
t、EventTrapまたはEventWait機能
を呼び出すことによって、他のプログラムを再連係また
は割り込むことなしに、イベント・ハンドラと関与する
ことができる。また、複数のプロセスが、複数のイベン
ト・モニタを定義し、同じまたは異なるイベントまたは
複数のイベントの組合せ用の複数のイベント・ハンドラ
を提供することもできる。呼出しを受け取った後、Ev
entMonitorCreate機能は、その呼出し
内のすべてのパラメータを読み取り記憶する(図20の
段階80)。次に、EventMonitorCrea
te機能は、ルース信号を結合すべきことをイベント・
モニタ・フラグ・パラメータが示すかどうかを判定する
(判断ブロック82)。イエスの場合、EventMo
nitorCreate機能は、イベント・モニタにと
って関心がある各イベントの定義に関連するルース信号
セットを読み取って、イベント・モニタにとって関心の
ある制限キーをもつルース信号(「適格イベント」)が
あるかどうか決定する。イベント・モニタにとって関係
があるためには、ルース信号は、セッション範囲をもつ
か、またはプロセス範囲をもたなければならず、そのイ
ベントはイベント・モニタを定義したのと同じプロセス
によって定義される。以前にイベントの発生がなかった
場合、または別のイベント・モニタがそのイベントに関
与するように以前に定義されていた場合、ルース信号は
ない。関心があるルース信号がある場合、EventM
onitorCreate機能は、これらすべてのルー
ス信号をイベント・モニタに転送し(段階86)、イベ
ント・モニタは、下記で図2の段階115を参照して述
べる結合限界に従って、それらのルース信号を自分自身
に関連づける。その後、EventMonitorCr
eate機能は、その呼出し側に戻る(段階88)。
【0034】イベント・モニタ・デファイナ17a〜d
がイベント・モニタを定義した後はいつでも、関連する
イベント・ハンドラは、そのイベント・モニタが満足さ
れたとき通知を要求することができる。要求のタイプに
は、テスト・モード、トラップ・モード、及び待機モー
ドがあり、イベント・ハンドラはEventTest機
能50、EventTrap機能52、またはEven
tWait機能54の呼出しによって所望のモードを選
択する。各呼出しの効果は、当該のイベント・モニタの
状態に依存する。
【0035】イベント・モニタがまだ満足されていない
場合、以下のことが起こる。
【0036】1)EventTest機能は、イベント
・ハンドラによって呼び出された場合、イベント・ハン
ドラに各イベント名/イベント・キー対(イベント・ハ
ンドラに関連するイベント・モニタで参照される)の状
態、すなわち当該のキーを伴う名前付きイベントが発生
したのか、それとも削除されたのかを報告する。
【0037】2)EventWait機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タが満足されるまでそのイベント・ハンドラを中断す
る。満足されたとき、イベント・モニタはイベント・ハ
ンドラを覚醒させ、各イベント名/イベント・キー対の
状態を報告する。
【0038】3)EventTrap機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タが満足されたときにトラップ・ルーチンを実行するよ
うにとオペレーティング・システムに知らせる。オペレ
ーティング・システムは、どの環境でトラップ・ルーチ
ンが実行されるかを知らないので、イベント・モニタの
状態に関する情報は最初トラップ・ルーチンに渡されて
いない。したがって、イベント・モニタが満足されたと
き、イベント・モニタはトラップ・ルーチンを呼び込
み、トラップ・ルーチンはEventTest機能を呼
び出して、各イベント名/イベント・キー対の状態に関
する報告を得る。イベント・モニタが満足されたとき、
EventTrap機能及びEventWait機能の
両方が呼び出されている場合は、EventWait機
能が優先され、トラップ・ルーチンは実行されない。
【0039】イベント・モニタが満足されたが、まだ活
動化されていない(すなわち、イベント・ハンドラから
イベント通知をまだ要求されていない)場合は、以下の
ことが起こる。
【0040】1)EventTest機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タを活動化し、イベント・モニタに現信号セットを確立
させ、イベント・ハンドラに各イベント名/イベント・
キー対の状態を報告させる。
【0041】2)EventWait機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タを活動化し、イベント・モニタに現信号セットを確立
させ、イベント・ハンドラを覚醒させ、各イベント名/
イベント・キー対の状態を報告させる。
【0042】3)EventTrap機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タに現信号セットを確立させ、指定されたトラップ・ル
ーチンを実行させる。
【0043】EventWait機能、EventTr
ap機能またはEventTest機能の呼出しの結
果、イベント処理プログラムが実行している間、(イベ
ント・モニタが満足され、イベント・ハンドラがイベン
ト通知を要求した後)イベント・モニタは「活動状態」
である。イベント・モニタが現在活動状態である場合、
以下のことが起こる。
【0044】1)EventTest機能は、イベント
・ハンドラによって呼び出された場合、イベント・ハン
ドラに各イベント名/イベント・キー対の状態を報告す
る。 2)EventWait機能は、イベント・ハンドラに
よって呼び出された場合、イベント・モニタをリセット
し、イベント・モニタが再び満足されるまでイベント・
ハンドラを中断する。
【0045】3)EventTrap機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タを使ってトラップ・ルーチンのアドレスを監視し、こ
のイベント・モニタと以前に関連していたすべてのトラ
ップ・ルーチンのアドレスを上書きする。
【0046】イベント・モニタが活動状態であるとき、
それが監視する新しいイベント信号は、まだイベント・
モニタに結合されており、EventMonitorR
eset機能62が実行された後にイベント・モニタに
よって処理される。その後で、イベント・モニタは残り
の結合信号を検査し、それらの結合信号がイベント・モ
ニタを満足させるのに十分である場合、イベント・モニ
タは再び活動化する資格を得る。
【0047】図2は、イベント・ハンドラがEvent
Wait機能54を呼び出すときの、オペレーティング
・システム11、具体的にはEventSignal機
能49、イベント・モニタ28a及びイベント・ハンド
ラ14aの動作を示す流れ図である。段階90の間、オ
ペレーティング・システム内部のイベント・デファイナ
12aが(セッションの範囲で)イベントAを定義する
が、適用業務プログラム内部のイベント・デファイナ1
3aもイベントAを定義できたはずである。たとえば、
イベントAは、ある文字キーの押下とそれに続くキーボ
ード上の入力キーの押下である。同時にまたは後で、適
用業務プログラム内部のイベント・モニタ・デファイナ
17aが、EventMonitorCreate機能
を呼び出すことによって、イベントAに関心があるイベ
ント・モニタ28aを定義する(段階92)。その後、
イベント・ハンドラ14aが、EventWait機能
54を呼び出して、イベント・モニタ28aがイベント
について信号で通知されるのをイベント・ハンドラが同
期的に待つことを示し、イベント・データをどこに記憶
すべきかをEventWait機能に知らせる(段階9
4)。この呼出しに応答して、EventWait機能
は、イベント・モニタ28a内の待機ビットをセット
し、イベント・モニタ28aによって呼出し側(イベン
ト・ハンドラ14a)をリストし(段階95)、イベン
ト・ハンドラを、他の動作を実行せずに(段階94)イ
ベント通知を待つスリープ・モードにする。その後、人
が文字キーを押し、続いて実行キーを押し、キーボード
を連続的に監視するサブルーチン(イベント・シグナラ
18a)がこれらのキーの押下を検出する。これに応答
して、イベント・シグナラ18aが、EventSig
nal機能49を呼び出し、イベント名、制限キー(も
しあれば)、及びイベント・データを提供する(段階1
00)。EventSignal機能49が、イベント
定義16a〜dを読み取って、イベントAがイベント・
シグナラ18aと同じプロセス範囲またはセッション範
囲で定義されているかどうか判定する(段階102及び
判断ブロック104)。ノーの場合、EventSig
nal機能はエラー・コードをイベント・シグナラに返
す(段階105)。しかし、図2の例では、イベントA
はセッション範囲で定義されており、EventSig
nal機能は判断ブロック106でイベント定義がオン
に選択されたことを知る(下記で図17を参照して説明
する)。次に、EventSignal機能は、イベン
ト定義属性に基づいて、そのイベントが処理されるまで
イベント・シグナラを停止す(同期処理)べきか否かを
決定し(判断ブロック107)、イエスの場合、イベン
ト・シグナラを停止させる(段階108)。いずれの場
合も、EventSignal機能は次にイベント・モ
ニタ定義28a〜dを読み取って、イベントAに関係が
あるイベント・モニタがあるかどうか、及び制限キー
(もしあれば)がイベント・モニタの関係を制限するか
どうかを決定する(段階109及び判断ブロック11
0)。そのイベント及び制限キーに関係があるイベント
・モニタがない場合、EventSignal機能は、
ルース信号限界に従って信号をイベント定義に結びつけ
る(段階111)。ルース信号限界にすでに達している
場合、最も古いルース信号が放棄される。制限キーを伴
うそのイベント名に関心があるイベント・モニタが1つ
または複数あり、それがオンに選択されている場合(判
断ブロック112)、イベント定義が同報通信モード属
性を指定しているならば(段階114a)、Event
Signal機能はイベント信号(イベント名及びイベ
ント・データ)をそれらすべてにほぼ同時に提供し、イ
ベント定義が伝搬モード属性を指定しているならば(段
階114b)、シーケンス内の第1のイベント・モニタ
に提供する。図2の例では、制限キーを伴う名前付きイ
ベントに関係があり、オンに選択されているイベント・
モニタは1つしかない。しかし、制限キーを伴うイベン
トに関係のあったすべてのイベント・モニタがオフに選
択された場合は、これらのイベント・モニタは通知を受
けず、イベント信号はルース信号セット41内のイベン
ト定義に結合されることになる(段階111)。信号で
通知されたイベント・モニタ28aは、イベント信号を
結合信号セット47に記憶することによって、イベント
信号をそれ自体に結合する。次に、イベント・モニタ
は、結合信号セット47内に記憶された個別のイベント
信号の数を、イベント・モニタ定義内の"event_count"
フィールドと比較することによって、イベント・モニタ
が満足されているかどうかを決定する(段階116)。
イベント・モニタを満足させるには、イベント・モニタ
が関心を持つイベントの個別の信号が、イベント・カウ
ントによって示される数だけ発生しなければならない。
先に指摘したように、1つのタイプのイベントが、イベ
ント・モニタ定義内で2回以上リストできる。上述した
本発明の代替実施例では、段階116で、イベント・モ
ニタは、イベント・モニタを満足させるために各イベン
ト・タイプが指定された回数だけ発生したかどうか判定
する。イベント・モニタがまだ満足されていない場合、
イベントAのこの発生の結果として、イベント・モニタ
または関連するイベント・ハンドラはそれ以上の処置を
取らない。しかし、イベント・モニタが満足された場合
は、イベント・モニタは先に進んで、待機ビットを読み
取ることによって、未処理のEventWait呼出し
があるかどうか決定する(判断ブロック117)。この
例では、待機ビットは段階95でセットされ、イベント
・モニタは先に進んで、結合信号セット47からすべて
の異なる信号を指定することによって、現信号セット4
5を確立し(段階118)、EventWait機能に
よってリストされたイベント・ハンドラを覚醒させる
(段階119)。覚醒すると、イベント・ハンドラは、
呼出し側がイベント・モニタである(以下に説明するE
ventMonitorDelete機能ではない)と
決定し(判断ブロック1120)、現信号セット内に記
憶された英数字データを取り出すためにEventRe
trieve機能56を呼び出し(段階1121)、次
にイベント・データを処理する(段階1122)。次
に、いずれかのイベントに関心がある他のイベント・モ
ニタがあるかどうかをイベント・ハンドラ14aが知る
必要がなくても、またイベント定義が伝搬モードを指定
していても、イベント・ハンドラは、現信号セット内の
いずれかまたはすべてのイベント信号を伝搬のために使
用可能にすべきか、それともどのイベント信号も使用可
能にすべきではないかを決定する。いずれかまたはすべ
てのイベント信号を伝搬のために使用可能にしたくはな
い場合、イベント・ハンドラ14aはEventDis
card機能58を呼び出し、イベント・モニタ28
a、及び現信号セット内のいずれかまたはすべてのイベ
ント信号を放棄するように指定する。これによって、イ
ベント・モニタ28aの現信号セットからの指定された
イベント信号の伝搬がブロックされる(段階112
5)。
【0048】呼び出されたとき、EventDisca
rd機能は、名前付きイベント・モニタ28aの現信号
セットから指定された信号を消去する(図5の段階18
6)。次に、EventDiscard機能は、信号で
通知されたイベント定義のこの属性に従って、放棄され
たイベント信号のイベント・シグナラが待機状態にある
か否か判定し、待機状態にある場合は、イベント・シグ
ナラを覚醒させる(判断ブロック188及び段階19
0)。次に、EventDiscard機能は、イベン
ト・ハンドラに戻る(段階191)。段階191の後、
またはイベント・ハンドラがすべてのイベント信号を伝
播のために使用可能にしたことを判断ブロック1124
が示す場合、イベント・ハンドラは図6に示すEven
tMonitorReset機能を直接呼び出すことが
でき、またはイベント・モニタに戻って、イベント・モ
ニタが次にEventMonitorReset機能を
呼び出すことができる。イベント・ハンドラはまたそれ
自体を終了することができ、その場合は、その終了を助
ける機能がEventMonitorReset機能を
呼び出す。通常、イベント・ハンドラは、段階1120
〜1125の後でイベント・モニタに戻る。イベント・
ハンドラは、たとえばトラップ・ルーチンに再び入る、
またはEventTest機能を使ってイベント・モニ
タを継続的にポーリングさせるために、EventMo
nitorReset機能を呼び出して、処理の時期尚
早な終了を示すだけである。また、イベント・モニタは
イベント・ハンドラと関連づけられているので、イベン
ト・ハンドラが終了したとき、イベント・ハンドラはE
ventMonitorReset機能を間接的に呼び
出す。
【0049】図6の段階172で、EventMoni
torReset機能は、現信号セットを読み取って、
残りの信号を識別する。現信号セットは、判断ブロック
1124から段階1126に直接進む場合は、満杯であ
るが、イベント・ハンドラが段階1125でEvent
Discard機能を呼び出した場合は、部分的にまた
は完全に空である。現信号セットが空でない場合(判断
ブロック173)、EventMonitorRese
t機能は、現信号セット内の各イベント信号のイベント
定義を読み取って、関係がある他のイベント・モニタの
信号通知モードを決定する(段階176)。各イベント
信号について、信号通知モードが同報通信モードである
場合(判断ブロック177)、EventMonito
rReset機能は段階180に進み、(関心がある他
のイベント・モニタがイベント信号をすでに受け取った
ので)EventMonitorReset呼出し中で
指名されたイベント・モニタの現信号セットからイベン
ト信号を消去する。しかし、イベント定義がいずれかの
イベント信号についてFIFOまたはLIFO伝搬モー
ドを示す場合は、判断ブロック177から段階174に
進み、そこでEventMonitorReset機能
が他のイベント・モニタ定義を読み取って、そのイベン
ト信号に関心があるものがあるか否かを判定する(段階
174)。イエスの場合(判断ブロック175)、Ev
entMonitorReset機能は、当該のイベン
ト信号に関するシーケンス内の次のイベント・モニタに
信号で通知し、段階180に進む。このようにして、伝
搬モード用に定義されているイベントに関する現信号セ
ット内に残っているイベント信号が、各イベントに関す
るシーケンス内の次のイベント・モニタに伝搬される。
また、そのイベント・モニタは図2ないし4に示す段階
115〜119のシーケンスを実行し、当該のイベント
・ハンドラが段階1120〜1126を実行する。段階
180の後で、EventMonitorReset機
能は、下記で説明するようにイベント・モニタ28aが
削除のためにマークされているか否かを判定する(判断
ブロック181)。イエスの場合、EventMoni
torReset機能は、下記で説明するEventM
onitorDelete機能68を呼び出す(段階1
85)。ノーの場合、またはEventMonitor
Delete機能からの戻りを受け取った後、Even
tMonitorReset機能はその呼出し側に戻る
(段階182)。
【0050】図7は、イベント・ハンドラ14cがEv
entTest機能を呼び出すときのオペレーティング
・システム11の動作を示す流れ図である。段階150
で、イベント・デファイナ12bまたは13bがイベン
トBを定義する。同時にまたは後で、イベント・モニタ
・デファイナ17bが、イベントBに関心があるイベン
ト・モニタ28bを定義する(段階151)。次に、イ
ベント・ハンドラ14bが、EventTest機能5
0を呼び出して、イベント・モニタ28bに関する状況
情報を要求する(段階153)。これに応答して、Ev
entTest機能がイベント・モニタ28bを見つけ
(判断ブロック154)、イベント・モニタ28bの結
合信号セットを読み取り(段階155)、次いでイベン
ト・モニタ28bが満足されたか否かを判定する(段階
156)。イエスの場合、EventTest機能はイ
ベント・モニタを活動化し、現信号セットを確立する
(段階157)。段階158でイベント・モニタがEv
entTest機能に戻った後、またはイベント・モニ
タが満足されなかった場合、EventTest機能
は、イベント・モニタが満足されたか否か、イベント・
モニタが満足されたときどのイベント信号が現信号セッ
ト内にあるか、及び各信号の長さをイベント・ハンドラ
14bに知らせる(段階158)。イベント・モニタ2
8bが満足された場合(判断ブロック160)、イベン
ト・ハンドラはEventRetrieve機能を呼び
出してイベント・データを得(段階164)、データを
処理し(段階166)、次いで上記の段階1124〜1
126を実行する。しかし、イベント・モニタが満足さ
れなかった場合は、イベント・ハンドラは段階164、
166及び1124〜1126を回避し、他の作業を実
行することができる。
【0051】図8、9は、EventTrap機能52
が呼び出されたときのオペレーティング・システム11
の動作を示す流れ図である。段階130で、オペレーテ
ィング・システム11内のイベント・デファイナ12b
または適用業務プログラム内のイベント・デファイナ1
3bが、イベントCを定義する。同時にまたは後で、イ
ベント・モニタ・デファイナ17cが、イベントCに関
心があるイベント・モニタ28cを定義する(段階13
1)。次に、イベント・ハンドラ14bがEventT
rapt機能52を呼び出して、イベント・モニタが満
足されたとき、イベント・モニタ28cがイベント・ハ
ンドラ14c内のトラップ・ルーチンに通知すべきこ
と、及びトラップ・ルーチンの名前またはアドレスを指
定する(段階132)。段階132の後で、イベント・
ハンドラ14bは他の作業を実行することができ、イベ
ント・トラップ・モードで遊休状態でイベント通知を待
つことはない。この呼出しに応答して、EventTr
ap機能はイベント・トラップ・ビットをセットし、イ
ベント・モニタ28cを使ってトラップ・ルーチンの名
前またはアドレスをリストする(段階133)。その
後、イベントCが発生し、イベント・シグナラ18bま
たは15bがEventSignal機能49を呼び出
す(段階134)。次に、EventSignal機能
が上記の段階102〜114を実行し、イベント・モニ
タは上記の段階115〜117を実行するが、段階11
7はイベント待機ビットがセットされていないことを示
す。したがって、イベント・モニタは先に進んで、イベ
ント・トラップ・ビットがセットされていると判定し
(判断ブロック120)、イベント・ハンドラ14c内
部のトラップ・ルーチンを呼び出す(段階122)。ト
ラップ・ルーチンは、図7に示すEventTest機
能50を呼び出して、イベント・モニタ、イベント名及
びイベント・キーを指定する(段階138)。次に、E
ventTest機能が上記の段階154〜158を実
行する。EventTest機能から受け取った情報に
基づいて、トラップ・ルーチンはイベント・モニタが見
つかったと判定する(判断ブロック139)。次に、ト
ラップ・ルーチンは、EventRetrieve機能
を呼び出して、現信号セットからイベント・データを取
り出し(段階140)、イベント・データを処理し(段
階142)、上記の段階1124〜1126を実行す
る。トラップ・ルーチンがイベント・モニタをリセット
せずに戻った場合、イベント・モニタは、イベント・ハ
ンドラから戻りを受け取ったとき、EventMoni
torReset機能を呼び出す(段階128)。
【0052】図10は、2つの関心があるイベント・モ
ニタへのイベント信号の同報通信を示す流れ図である。
段階380で、イベントHが定義される。この定義に
は、イベントの名前、及び関心があるすべてのイベント
・モニタに同報通信モードで、すなわち実質的に同時に
通知すべきであるとの指示が含まれる。同時にまたは後
で、イベント・モニタ・デファイナ17aが、イベント
Hに関心があるイベント・モニタ28aを定義し(段階
382)、イベント・モニタ・デファイナ17bが、や
はりイベントHに関心があるイベント・モニタ28bを
定義する(段階384)。次に、イベント・ハンドラ1
4aは、EventWait機能を呼び出し、それ自体
をスリープ・モードにして、イベントHの通知を待つ
(段階386)。EventWait機能が、イベント
・モニタ28a用の待機ビットをセットし、イベント・
モニタ28aの呼出し側をリストする(段階387)。
同様に、イベント・ハンドラ14bは、EventWa
it機能を呼び出し、それ自体をスリープ・モードにし
て、イベントHの通知を待つ(段階388)。Even
tWait機能は、イベント・モニタ28b用の待機ビ
ットをセットし、イベント・モニタ28bの呼出し側を
リストする(段階389)。その後、イベントHが発生
し、イベント・シグナラはEventSignal機能
49を呼び出す(段階390)。これに応答して、Ev
entSignal機能が上記の段階102〜114を
実行し、段階102で、同報通信モードが指定されてい
ると判定する。段階110で、EventSignal
機能は、2つのイベント・モニタ28a及び28bがと
もにイベントHに関係があることを知る。段階114a
で、EventSignal機能は両方のイベント・モ
ニタにほぼ同時に信号で通知するが、どちらのイベント
・モニタも他のイベント・モニタへの信号通知を妨げる
ことはできない。イベント信号を受け取った後、イベン
ト・モニタ28aは段階115〜119を実行し、関連
するイベント・ハンドラ14aが上記の段階1120〜
1126を実行する。同様に、イベント信号を受け取っ
た後、イベント・モニタ28bは段階115〜119を
実行し、関連するイベント・ハンドラ14bが上記の段
階1120〜1126を実行する。当該のイベント・モ
ニタ28a及び28bが段階128を実行する。したが
って、イベントHが発生した後、イベント・ハンドラ1
4a及び14bはともにイベント通知及びイベント・デ
ータをほぼ同時に受け取り、どちらのイベント・ハンド
ラも他のイベント・ハンドラがイベント通知及びイベン
ト・データを受け取ることを妨げることはできない。
【0053】図11は、シーケンス内の第1のイベント
・モニタから第2のイベント・モニタへのイベント信号
の伝搬を示す流れ図である。シーケンス内の第1のイベ
ント・モニタは、シーケンス内の第2のイベント・モニ
タへのイベント信号の伝搬を妨げる権利をもつ。段階4
20で、イベントIが定義される。この定義には、関心
があるイベント・モニタに作成順に順次に信号を通知す
べきことを意味する、FIFO伝搬属性が含まれる。同
時にまたは後で、イベント・モニタ・デファイナ17c
が、イベントIに関心があるイベント・モニタ28cを
定義し(段階422)、イベント・モニタ・デファイナ
17dが、やはりイベントIに関心があるイベント・モ
ニタ28dを定義する(段階424)。図12に示すよ
うに、各イベント・モニタが作成されたとき、それが、
同じイベントに関心がある以前に作成されたイベント・
モニタに連鎖され、またはアドレスによって参照され
る。これは作成の順序を示す。これらのイベント・モニ
タが定義された後、イベント・ハンドラ14cが、Ev
entWait機能を呼び出して、イベント・モニタ2
8cを指定する(段階426)、EventWait機
能は待機ビットをセットし、呼出し側をリストする(段
階429)。イベント・ハンドラ14dが、Event
Wait機能を呼び出して、イベント・モニタ28dを
指定する(段階428)、EventWait機能は待
機ビットをセットし、呼出し側をリストする(段階42
9)。その後、イベントIが発生し、イベント・シグナ
ラはEventSignal機能49を呼び出す(段階
430)。これに応答して、EventSignal機
能が段階102〜114を実行し、段階102で、FI
FO伝搬モードが指定されていることをイベント定義か
ら知る。段階110で、EventSignal機能は
また、イベント・モニタ28c及び28dがともにイベ
ントIに関係があること、及びイベント・モニタの連鎖
の順序からイベント・モニタ28cが最初に作成された
ことを知る。次に、段階114bで、EventSig
nal機能は、シーケンス内の関心がある最初のイベン
ト・モニタ、すなわちイベント・モニタ28cに信号で
通知する。次に、イベント・モニタ28cが段階115
〜119を実行し、段階119でイベント・ハンドラ1
4cを覚醒させる。次に、イベント・ハンドラ14cが
段階1120〜1124及び1126を実行し、判断ブ
ロック1124で、イベント信号を伝搬のために使用可
能にすべきだと決定する。次に、イベント・ハンドラ1
4cは、段階1126で、イベント・モニタに戻り、イ
ベント・モニタはEventMonitorReset
機能を自動的に呼び出す(段階128)。しかし、イベ
ント・ハンドラ14cは、判断ブロック1124で、現
信号セット内のいずれかまたはすべてのイベント信号を
伝搬のために使用可能にすべきではないと決定し、Ev
entDiscard機能58を呼び出して、どれを放
棄すべきかを指定することもできたはずである。段階1
125で、現信号セット内のすべてのイベント信号(こ
の例ではイベントI用の単独信号)を放棄すべきである
とイベント・ハンドラ14cが指定した場合、図5の段
階186で、それらのイベント信号が放棄され、現信号
セットが空であるので、EventMonitorRe
set機能は、イベント・モニタ28dに何も伝搬しな
い(図6の判断ブロック173)。しかし、この例で
は、イベント・ハンドラ14cは、イベントI用の信号
を放棄せず、イベント・モニタ28cがリセットされ、
EventMonitorReset機能は、図6の段
階178でイベント・モニタ28dに信号で通知し、イ
ベント・モニタ28dは段階115〜119を実行す
る。次に、イベント・ハンドラ14dは段階1120〜
1126を実行する。イベント・ハンドラ14dが段階
1125でイベントIを放棄した場合、EventMo
nitorReset機能が呼び出されたとき、現信号
セットが空であるので、図6の判断ブロック173で
は、イベント信号を伝搬しようとする試みを避けること
になる。イベント・ハンドラ14dが段階1125でイ
ベントIを放棄しない場合は、EventMonito
rReset機能が呼び出されたとき、関心があるイベ
ント・モニタがもうないので、判断ブロック175で
は、伝搬の試みを避けることになる。
【0054】図13は、伝搬の順序を示すより複雑なイ
ベント・モニタの連鎖の例を示す。イベント・モニタ2
8eは、イベントM、N及びOに関係があり、最初に作
成された。イベント・モニタ28fは、イベント・モニ
タ28eより後で作成されたが、イベントM及びPに関
係があり、両方のイベント・モニタがイベントMに関係
があることを示すため、イベント・モニタ28e内のイ
ベントMの参照から連鎖される。イベント・モニタ28
gも、イベント・モニタ28eより後で作成されたが、
イベントN及びOに関係があり、両方のイベント・モニ
タがイベントN及びOに関係があることを示すため、イ
ベント・モニタ28e内のイベントN及びイベントOの
参照から連鎖される。同様に、イベント・モニタ28h
及び28iは、イベント・モニタ28fより後で作成さ
れたが、それぞれイベントM及びPに関係があり、それ
ぞれイベント・モニタ28f内のイベントM及びイベン
トPの参照から連鎖されている。このようにして、これ
らのイベント・モニタのどれかから各イベント信号を伝
搬する必要があるとき、EventMonitorRe
set機能は、イベント・モニタ定義を読み取って、特
定のイベントに関心があるFIFOまたはLIFOシー
ケンス内の次のイベント・モニタを識別する。
【0055】イベントを定義した後いつでも、そのイベ
ントを定義したプロセスは、EventDelete機
能69またはEventModify機能71を呼び出
すことによって、イベント定義を削除または修正するこ
とができる。EventDelete機能は図14に示
されている。EventDelete機能は、現信号セ
ットの現在の処理に影響を与えないが、削除すべきイベ
ントに関心がある各イベント・モニタに関する結合信号
セット及びそのイベント用のルース信号セット41を読
み取って、現信号セットに関係のないイベント信号があ
るかどうか判定定する(判断ブロック296)。イエス
の場合、それらのイベント信号は放棄される(段階29
8)。次に、EventDelete機能は、イベント
に関心がある各イベント・モニタの定義中で、そのイベ
ントが削除されたことを示す(段階300)。次に、E
ventDelete機能は、そのイベントに関係があ
り未処理のEventWaitsを有するイベント・モ
ニタがあるかどうか判定する(判断ブロック302)。
イエスの場合、EventDelete機能は、段階1
19でイベント・モニタを呼び出し(段階303)、段
階120〜128が実行される。段階120で、イベン
ト・ハンドラは、イベントが削除されたこと、及びその
結果イベント・ハンドラに関連するイベント・モニタが
決して満足されないことを知る。次に、EventDe
lete機能は、そのイベントに関係があり未処理のイ
ベント・トラップを有するイベント・モニタがあるかど
うか判定する(判断ブロック304)。イエスの場合、
EventDelete機能は、段階122でイベント
・モニタを呼び出し(段階305)、段階138〜14
2及び1124〜1126が実行される。(段階138
でトラップ・ルーチンによって呼び出された)Even
tTest機能の段階158で、EventTest機
能は、イベント・モニタが決して満足されないことをト
ラップ・ルーチンに通知する。最後に、EventDe
lete機能はイベント定義を削除する(段階30
6)。
【0056】EventModify機能は、イベント
定義の内部の信号通知属性のルース信号限界または操作
状況を変更するために呼び出される。ルース信号限界属
性の変更はただちに効果を示すが、動作状況属性の変更
は後の信号が発行されるまで効果を示さない。
【0057】イベントが最初に作成されたとき、そのイ
ベントは自動的にイネーブルされる。EventEna
ble機能44は、イベントが作成された後そのイベン
トをディスエーブルするために、またはディスエーブル
されたイベントをイネーブルするために呼び出すことが
できる。イベントがディスエーブルされたとき、そのイ
ベントに関する信号は、関心があるイベント・モニタに
結合されるが、そ(れら)のイベント・モニタを満足さ
せる方向にカウントしない。
【0058】図15は、EventEnable機能を
示す流れ図である。段階202で、イベント・デファイ
ナ13aがイベントDを定義し、段階204で、イベン
ト・モニタ・デファイナ17dがイベントDに関心があ
るイベント・モニタ28dを定義する。次に、イベント
・モニタ28dに関連するイベント・ハンドラ14d
が、EventEnable機能を呼び出し、イベント
Dをディスエーブルすべきことを指定することができる
(段階206)。これに応答して、EventEnab
le機能はイベントD用のイベント定義をディスエーブ
ル済みとマークする(段階208)。その後、イベント
Dが発生し、イベント・シグナラはEventSign
al機能を呼び出し(段階210)、EventSig
nal機能が上記の段階102〜114を実行する。次
に、イベント・モニタは、イベント信号をイベント・モ
ニタ28dに結合するが、イベント信号がイベント・モ
ニタ28dを満足させる方向にカウントすべきではない
と指示する(判断ブロック212及び段階213)。次
に、イベント・モニタ28dは、段階116及び図2に
記載の後続の段階117〜119に進むが、段階116
では、イベントDの最後の発生をイベント・モニタ28
dを満足させる方向にカウントしない。
【0059】先に指摘したように、イベント・モニタが
最初に作成されたとき、そのイベント・モニタは自動的
にイネーブルされる。しかし、EventMonito
rEnable機能64を呼び出して、作成後イベント
・モニタをディスエーブルし、またはディスエーブルさ
れたイベント・モニタをイネーブルすることができる。
イベント信号はディスエーブルされたイベント・モニタ
に結合されるが、ディスエーブルされたイベント・モニ
タを満足させることはできない。
【0060】図16は、EventMonitorEn
able機能を示す流れ図である。イベントEが作成さ
れ(段階220)、関心があるイベント・モニタが作成
された(段階222)後、イベント・ハンドラは、Ev
entMonitorEnable機能を呼び出して名
前付きイベント・モニタをディスエーブルすべきことを
指定することができる(段階224)。これに応答し
て、EventMonitorEnable機能が、E
ventMonitor定義をディスエーブル標識でマ
ークする(段階226)。イベントEが発生したとき、
イベント・シグナラはEventSignal機能を呼
び出し(段階228)、EventSignal機能が
上記の段階102〜114を実行する。次に、イベント
・モニタは、イベント信号をイベント・モニタに結合す
る(段階115)が、イベント・モニタ定義内にディス
エーブル標識があるため、判断ブロック116でイベン
ト・モニタはイベント・モニタを満足させる方向にこの
信号またはいかなる信号もカウントせず、イベント・モ
ニタはそれ以上の処置を取らない。
【0061】イベントが最初に定義されたとき、監視が
自動的に開始する。監視が開始したままである場合、E
ventSignal機能は、図2〜4及び7〜9に記
載の方式で、関心があるイベント・モニタに信号で通知
する。しかし、EventSelect機能60を呼び
出して、特定のイベントの監視を停止し、または監視が
停止された後に監視を再開することができる。監視が停
止されたとき、以後のイベント信号は、EventSe
lect機能を発行したプロセスで、どのイベント・モ
ニタにも結合されない。
【0062】図17はEventSelect機能を示
す。段階250で、イベントFが定義され、監視が自動
的に開始する。次に、イベント・モニタが定義される
(段階252)。その後、イベント・ハンドラがEve
ntSelect機能を呼び出し、名前付きイベントの
監視を停止すべきことを指定する(段階254)。これ
に応答して、EventSelect機能は、名前付き
イベント用のイベント定義を監視が停止されたとマーク
する(段階256)。その後、イベントFが発生し、イ
ベント・シグナラはEventSignal機能を呼び
出す(段階258)。EventSignal機能は上
記の段階102及び104を実行し、次にイベント定義
から監視を停止すべきであると決定する(判断ブロック
106)。その結果、EventSignal機能は、
イベント定義内部のルース信号限界に従ってイベント信
号をイベント定義に結合する(段階262)。監視が停
止されているので、EventSelect機能はどの
イベント・モニタにも信号で通知せず、関心があるイベ
ント・モニタにも信号で通知しない。
【0063】イベント・モニタが最初に作成されたと
き、そのイベント・モニタに関する監視が自動的に開始
する。しかし、EventMonitorSelect
機能66を呼び出して、イベント・モニタによる監視を
停止し、または停止されたイベント・モニタによる監視
を再開することができる。EventMonitorS
elect機能66は、EventMonitorEn
able機能64とは異なる。なぜなら、停止されたイ
ベント・モニタにとって関心がある信号はそのイベント
・モニタに結合されていないが、ディスエーブルされた
イベント・モニタにとって関心がある信号はそのイベン
ト・モニタに結合されているからである。
【0064】図18は、EventMonitorSe
lect機能を示す流れ図である。段階270で、イベ
ントGが定義され、段階272で、関心があるイベント
・モニタ28bが定義される。段階274で、イベント
・ハンドラ14bは、EventMonitorSel
ect機能を呼び出して、イベント・モニタ28bが監
視を停止すべきであると指定する。これに応答して、E
ventMonitorSelect機能は、イベント
・モニタ定義を監視が停止されたとマークする(段階2
76)。イベントGが発生し、イベント・シグナラがE
ventSignal機能を呼び出した(段階278)
後、EventSignal機能は上記の段階102〜
114を実行し、判断ブロック112で、イベント・モ
ニタ28bの監視が停止されていると判定する。その結
果、EventSignal機能は、イベント信号をイ
ベントGのイベント定義に結合するが、イベント・モニ
タ28bに信号で通知せず、またイベント信号をイベン
ト・モニタ28bに結合しない。イベントGに関係があ
り、その監視が開始されたイベント・モニタが他にある
場合、それらの他のイベント・モニタは段階112でイ
ベント信号を受け取り、イベント信号はイベント定義に
結合されないことに留意されたい。
【0065】イベント・モニタの作成後いつでも、その
イベント・モニタを作成したプロセスは、図19に示す
EventMonitorDelete機能68を呼び
出すことによって、そのイベント・モニタを削除するこ
ともできる。プロセスが終了したとき、そのプロセスは
EventMonitorDelete機能を呼び出し
て、そのプロセスによって定義されたすべてのイベント
・モニタを削除する。段階400で、EventMon
itorDelete機能は、イベント・モニタに関連
する情報(定義、結合信号、状況など)を読み取る。イ
ベント・モニタが活動状態である場合(判断ブロック4
02)、EventMonitorDelete機能
は、イベント・モニタが次にリセットされたときそのイ
ベント・モニタを削除すべきであるとの標識でイベント
・モニタをマークする(段階404)。これによって、
EventMonitorReset機能は、図6の段
階185でEventMonitorDelete機能
を呼び出す。しかし、EventMonitorDel
ete機能は、現信号セットの処理に干渉しない。判断
ブロック402でイベント・モニタが非活動状態である
ことが判明した場合、または現信号セットの処理及びE
ventMonitorReset機能の以後の実行後
にイベント・モニタが非活動状態になった後、Even
tMonitorDelete機能はそのイベント・モ
ニタを連鎖から除去し、したがってそのイベント・モニ
タは他の機能にもはやアクセスできなくなる(段階40
6)。次に、EventMonitorDelete機
能は、イベント・モニタが関係をもついずれかのイベン
トが伝搬属性で定義されているかどうか、及び他の関心
がある下流側イベント・モニタがあるかどうか判定する
(判断ブロック408)。両方の条件が満足された場
合、EventMonitorDelete機能は、両
条件を満たす各結合イベント信号を当該のシーケンス内
の次のイベント・モニタに伝搬する(段階410)。E
ventMonitorDelete機能は、両方の条
件に合致しない結合信号を放棄する(段階412)。次
に、EventMonitorDelete機能は、イ
ベント・モニタ内のイベント待機ビットを読み取って、
未処理のEventWaitがあるかどうか判定する
(判断ブロック414)。イエスの場合、EventM
onitorDelete機能は、当該のイベント・ハ
ンドラを覚醒させ、イベント・モニタが削除されつつあ
ることを示す(段階416)。次に、EventMon
itorDelete機能は、トラップ・ビットを読み
取って、未処理のイベント・トラップがあるか否かを決
定する(判断ブロック418)。イエスの場合、Eve
ntMonitorDelete機能は、トラップ・ル
ーチンを呼び出す(段階420)。トラップ・ルーチン
がEventTest機能を呼び込んだとき(図6の段
階138)、図6の判断ブロック139で、Event
Test機能はイベント・モニタの位置を見つけられ
ず、イベント・モニタが存在しないとトラップ・ルーチ
ンに報告する。その後、トラップ・ルーチンはオペレー
ティング・システムに戻り、オペレーティング・システ
ムは暗示的にEventMonitorReset機能
を呼び出す。最後に、EventMonitorDel
ete機能がイベント・モニタ定義を消去する(段階4
22)。
【0066】本発明の代替実施例では、イベント・モニ
タにとって関心があるイベントを含めて、既存のイベン
ト・モニタのどの属性も動的に修正することができる。
あるイベント・タイプがイベント・モニタにとって関心
があるイベントのリストから削除された場合、削除され
たイベント・タイプの結合信号は、EventMoni
torDelete機能68内で記述されるように処理
される。あるイベント・タイプがイベント・モニタ定義
に追加された場合、そのイベント・タイプのルース信号
は、EventMonitorCreate機能42内
で記述されるように処理される。実際に、イベント・モ
ニタの修正は、EventMonitorDelete
機能68でイベント・モニタを原始的に削除すること、
及びEventMonitorCreate機能42で
イベント・モニタを再作成することと、次の点を除き機
能的に等価である。イベント・モニタにとって関心があ
るイベントの結合信号は、結合信号限界が低減され、低
減された限界より多くの結合信号がある場合を除き、修
正の前後で放棄も伝搬もされない。前記の場合は、過剰
な最も古い結合信号が放棄される。また、イベント・モ
ニタ定義は原始的に(すなわち1段階で)修正されるの
で、イベント・モニタ定義が修正されている間に発生す
るイベント用の信号が失われる可能性はない。
【0067】イベント信号マネージャ機能呼出し EventCreate retcode rsncode event_name event_name_length event_flag event_flag_size loose_signal_limit signal_timeout_period パラメータ: "EventCreate"は、呼び込まれる機能の名前
である。
【0068】"retcode"は、EventCrea
teからの戻りコードを保持するための符号付き4バイ
ト2進変数である。「戻りコード」は、呼出しまたはパ
ラメータの成否またはエラーの有無を示す。
【0069】"rsncode"は、EventCrea
teからの理由コードを保持するための符号付き4バイ
ト2進変数である。「理由コード」は、呼出しまたはパ
ラメータの失敗またはエラーの理由を示す。
【0070】"event_name"は、定義されるイ
ベントの名前を含む文字変数である。
【0071】"event_name_length"
は、event_nameの長さを含む符号付き4バイ
ト2進変数である。
【0072】"event_flag"は、4バイト2進
変数のアレイであり、その各要素はどのようにイベント
を管理すべきかの情報を含む。以下の各セットからそれ
ぞれ1つのオプションだけを指定することができる。特
定のセットからのオプションが指定されていない場合、
省略時指定がとられる。イベント名の範囲は、プロセス
及びセッションで示される。すなわち、このプロセスだ
けがこのイベントを監視でき、このプロセスだけがこの
イベントを信号で通知できることを示す"vm_evn
_process_scope"、及びセッション内の
すべてのプロセスが、このイベントを監視することも信
号で通知することもできることを示す"vm_evn_
session_scope"である。イベント信号を
1つのプロセスで複数のイベント・モニタに渡す方式
は、同報通信、FIFOまたはLIFOモードとして示
される。すなわち、信号がすべての適格モニタに同時に
渡されることを示す"vm_evn_broadcas
t_signals"、モニタが作成された順序で信号
が一時に1つの適格モニタに渡されることを示す"vm
_evn_fifo_signals"、及びFIFO
オプションによって定義されたイベントとは逆の順序で
信号が一時に1つの適格モニタに渡されることを示す"
vm_evn_lifo_signals"である。
【0073】シグナラの処理は、"vm_evn_as
ync_signals"、"vm_evn_sync_
thread_signals"、または"vm_evn
_sync_process_signals"として
示される。vm_evn_async_signals
は、信号通知スレッドが実行を継続できることを示す
(省略時指定)。vm_evn_sync_threa
d_signalsは、信号処理が完了するまで信号通
知スレッドが中断されることを示す。1つのプロセスに
おける信号処理は、すべての適格モニタがその信号の処
理を完了したとき、完了したと見なされ、また適格モニ
タがない場合は、ルース信号限界を超えたとき、最も古
いルース信号となった結果、信号が放棄される。信号が
イベント・モニタの現信号セットの一部分になり、その
イベント・モニタがその後リセットされたとき、そのイ
ベント・モニタは信号の処理を完了したと見なされる。
FIFO及びLIFOイベントでは、結合信号は、それ
が結合されているイベント名/イベント・キー対の結合
信号限界を超えたとき、その結合信号が最も古い結合信
号である場合、EventDiscardによって明示
的に放棄され、または暗示的に放棄される。いずれの場
合も、そのプロセスによって放棄された信号の処理は、
完了したと見なされる。これがセッション・レベルのイ
ベントである場合、すべてのプロセスが処理を完了して
からでないと、信号処理が完了したと見なされない。v
m_evn_sync_process_signal
sは、この信号によってイベント・モニタが活動化され
た結果として走行しているスレッドを除き、現在信号通
知プロセスにあるすべてのスレッドがイベント処理の結
果を待って中断されていることを示す。イベント・モニ
タが活動化された結果走行しているスレッドは、最初は
中断されていない追加のスレッドを作成することができ
る。しかし、EventMonitorReset時
に、これらの追加のスレッドも他のスレッドと同様に処
理される。
【0074】"event_flag_size"は、e
vent_flagアレイ内の要素の数を含む符号付き
の4バイト2進変数である。
【0075】"loose_signal_limit"
は、イベントが信号で通知されたときにイベント信号を
結合する適格イベント・モニタが存在しない場合に保持
されるイベント信号の数を含む、符号付きの4バイト2
進変数である。限界を超えたとき、新しく到着した信号
用の場所をあけるために最も古いルース信号が放棄され
る。値0は、ルース信号が保持されないことを示す。値
−1は、仮想記憶域が利用できるという条件の下でルー
ス信号リストが無制限に成長できることを意味する。そ
の他の負の値はエラーと見なされる。
【0076】"signal_timeout_per
iod"は、信号通知スレッドが信号の処理の完了を待
って中断状態に留まる、マイクロ秒で指定された時間の
最大長さを表す、符号付きの4バイト2進変数である。
値0は、信号通知スレッドが信号処理の完了を無限に待
たなければならないことを示す。信号通知スレッドが処
理を続けることを指定するオプションがevent_f
lagアレイ内に含まれている場合、このパラメータは
無視される。
【0077】 Event Delete retcode rsncode event_name event_name_length パラメータ: "EventDelete"は、呼び出される機能の名前
である。
【0078】"retcode"は、EventDele
teからの戻りコードを保持するための符号付きの4バ
イト2進変数である。
【0079】"rsncode"は、EventDele
teからの理由コードを保持するための符号付きの4バ
イト2進変数である。
【0080】"event_name"は、その定義が削
除されるイベントの名前を含む文字変数である。
【0081】"event_name_length"
は、event_nameの長さを含む符号付きの4バ
イト2進変数である。
【0082】 EventDiscard retcode, rsncode, monitor_token, index パラメータ: "EventDiscard"は、呼び出される機能の名
前である。
【0083】"retcode"は、EventDisc
ardからの戻りコードを保持するための符号付きの4
バイト2進変数である。
【0084】"rsncode"は、EventDisc
ardからの理由コードを保持するための符号付きの4
バイト2進変数である。
【0085】"monitor_token"は、その現
信号セットから信号が放棄されるイベント・モニタを識
別するトークンを含む符号付きの4バイト2進変数であ
る。値0は、現スレッド上で最近に活動化された活動状
態のイベント・モニタを識別するために使用される。"
index"は、イベント・モニタの作成時に指定され
たevent_name_address、event
_name_length、event_key_ad
dress及びevent_key_lengthアレ
イへのインデックスとして、放棄される信号に対応する
event_nameとevent_keyの対を識別
する、符号付きの4バイト2進変数である。値0は、現
信号セット内のすべての信号を放棄すべきことを指示す
るために使用される。
【0086】 EventEnable retcode rsncode number_of_events event_name_address event_name_length event_enablement_mask パラメータ: "EventEnable"は、呼び出される機能の名前
である。
【0087】"retcode"は、EventEnab
leからの戻りコードを保持するための符号付きの4バ
イト2進変数である。
【0088】"rsncode"は、EventEnab
leからの理由コードを保持するための符号付きの4バ
イト2進変数である。
【0089】"number_of_events"は、
関心があるevent_nameとevent_key
の対の数を含む符号付きの4バイト2進変数である。
【0090】"event_name_address"
は、number_of_events個の4バイト・
ポインタ変数のアレイであり、その各要素はその発生を
監視すべきイベントの名前のアドレスを含む。
【0091】"event_name_length"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素はeven
t_name_addressアレイの対応する要素が
指すevent_nameの長さを含む。
【0092】"event_enablement_m
ask"は、number_of_events個の符
号付き4バイト2進変数のアレイであり、その各要素は
event_name_addressアレイの対応す
る要素が指すevent_nameのイネーブル・マス
クを含む。イベント・イネーブル・マスクは、プロセス
ごとに維持され、EventEnableコマンドは発
行プロセスだけに影響を与える。イネーブル・マスクの
値が、実行される以下の処置を決定する。すなわち、e
vent_name_addressアレイの対応する
要素によって指示されるevent_nameをディス
エーブルすることを示す"vm_evn_disabl
e"、またはevent_name_addressア
レイの対応する要素によって指示されるevent_n
ameをイネーブルすることを示す"vm_evn_e
nable"である。
【0093】 EventModify retcode rsncode event_name event_name_length event_flag event_flag_size loose_signal_limit signal_timeout_period パラメータ: "EventModify"は、呼び出される機能の名前
である。
【0094】"retcode"は、EventModi
fyからの戻りコードを保持するための符号付きの4バ
イト2進変数である。
【0095】"rsncode"は、EventModi
fyからの理由コードを保持するための符号付きの4バ
イト2進変数である。
【0096】"event_name"は、その定義が修
正されるイベントの名前を含む文字変数である。
【0097】"event_name_length"
は、event_nameの長さを含む符号付きの4バ
イト2進変数である。
【0098】"event_flag"は、4バイト2進
変数のアレイであり、その各要素はイベントをどのよう
に管理すべきかの情報を含む。以下のセットからただ1
つのオプションを指定することができる。このセットか
らのオプションが指定されない場合、オプションの既存
の値が修正されないままとなる。シグナラの処理は、信
号通知スレッドが実行を継続できることを示すvm_e
vn_async_signals(省略時指定)、信
号通知スレッドがイベント処理の結果を待って中断され
ることを示すvm_evn_sync_thread_
signals、または信号によってモニタが活動化さ
れた結果走行しているスレッドを除き、信号通知プロセ
ス内のすべてのスレッドがイベント処理の結果を待って
中断されることを示すvm_evn_sync_pro
cess_signalsによって指示される。
【0099】"event_flag_size"は、e
vent_flag_array内の要素の数を含む符
号付きの4バイト2進変数である。
【0100】"loose_signal_limit"
は、イベントが信号で通知されたときイベント信号を結
合する適格イベント・モニタが存在しない場合に保持さ
れるイベント信号の数を含む符号付きの4バイト2進変
数である。限界を超えたとき、新しく到着した信号用の
場所をあけるために最も古いルース信号が放棄される。
値0は、ルース信号が保持されないことを示す。値−1
は、仮想記憶域が利用できるという条件の下でルース信
号リストが無制限に成長できることを意味する。値−2
は、既存のloose_signal_limitが修
正されないままとなることを意味する。その他の負の値
はエラーと見なされる。
【0101】"signal_timeout_per
iod"は、信号通知スレッドが信号の処理の完了を待
って中断状態に留まる、マイクロ秒で指定された時間の
最大長さを表す、符号付きの4バイト2進変数である。
値0は、信号通知スレッドが信号処理の完了を無限に待
たなければならないことを示す。値−1は、既存のsi
gnal_timeout_periodが修正されな
いままとなることを意味する。シグナラの中断を指定す
るオプションがevent_flagアレイ内に含まれ
ていない場合、このパラメータは無視される。
【0102】 EventMonitorCreate retcode rsncode monitor_token monitor_flag monitor_flag_size number_of_events event_name_address event_name_length event_key_address event_key_length bound_signal_limit event_count パラメータ: "EventMonitorCreate"は、呼び出さ
れる機能の名前である。
【0103】"retcode"は、EventMoni
torCreateからの戻りコードを保持するための
符号付き4バイト2進変数である。
【0104】"rsncode"は、EventMoni
torCreateからの理由コードを保持するための
符号付き4バイト2進変数である。
【0105】"monitor_token"は、他のイ
ベント管理機能が後で呼び込まれるときにイベント・モ
ニタを識別するトークンがその中で返される、符号付き
の4バイト2進変数である。
【0106】"monitor_flag"は、符号付き
の4バイト2進変数のアレイであり、その各要素は、イ
ベント・モニタをどのように管理すべきかの情報を含
む。以下の各セットからそれぞれただ1つのオプション
を指定することができる。特定のセットからのオプショ
ンが与えられていない場合、省略時指定が適用される。
【0107】モニタの寿命は、イベント・モニタが明示
的EventMonitorDeleteまで持続する
ことを意味する"vm_evn_no_auto_de
lete"(省略時)、またはイベント・モニタが最初
に非活動化されるときに、またはEventMonit
orReset時に自動的に削除されることを意味す
る"vm_evn_auto_delete"によって指
示される。指名可能性に対するモニタ活動化の効果は、
そのモニタを含むプロセス内のすべてのスレッドが指名
可能なままとなることを意味する"vm_evn_as
ync_monitor"(省略時指定)、またはその
上でモニタが活動化されているスレッド(すなわち、こ
のイベント・モニタ用のイベント・ハンドラ)を除き、
現在そのモニタを含むプロセス内にあるすべてのスレッ
ドが、モニタが非活動化されるまで中断されることを意
味する"vm_evn_sync_process_m
onitor"によって指示される。ルース信号のこの
モニタへの結合は、モニタが作成されたときまたはEv
entSelectもしくはEventMonitor
Selectによって監視が再開されたときにこのモニ
タがそれに対して適格な任意のルース信号がこのモニタ
に結合されることを意味する"vm_evn_bind
_loose_signals"(省略時指定)、また
はいかなるルース信号もこのモニタに結合されていない
ことを意味する"vm_evn_ignore_loo
se_signals"によって指示される。
【0108】"monitor_flag_size"
は、monitor_flagアレイ内の要素の数を含
む符号付きの4バイト2進変数である。
【0109】"number_of_events"は、
関心があるevent_nameとevent_key
の対の数を含む符号付きの4バイト2進変数である。
【0110】"event_name_address"
は、number_of_events個の4バイト・
ポインタ変数のアレイであり、その各要素は、その発生
が監視されるイベントの名前のアドレスを含む。
【0111】"event_name_length"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素は、eve
nt_name_addressアレイの対応する要素
が指すevent_nameの長さを含む。
【0112】"event_key_address"
は、number_of_events個の4バイト・
ポインタ変数のアレイであり、その各要素は、監視され
るevent_name_addressアレイの対応
するエントリが指すevent_nameの特定のイン
スタンスをさらに特徴づけるキーのアドレスを含む。こ
のキーは、関心がある信号によって搬送されるキーとぴ
ったり一致するように選択することができ、または部分
キー(おそらくワイルドカード文字を含む)をより広い
範囲の発生に合致するように使用することができる。
【0113】"event_key_length"は、
number_of_events個の符号付き4バイ
ト2進変数のアレイであり、その各要素は、event
_key_addressアレイの対応する要素が指す
event_keyの長さを含む。このキーは、関心が
ある発生を定義するためにイベントの2次的特徴付けが
必要でない場合は、空でよい(すなわち、その長さは0
でよい)。モニタ内の空白キーは信号上の任意のキーに
合致する。
【0114】"bound_signal_limit"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素は、モニタ
がすでに活動状態またはテスト可能である間、または監
視された条件が満足されないままである間、イベント・
モニタに結合されているが未処理の状態に保持できる、
対応するイベント名/イベント・キー対の信号の数を含
む。限界を超えたとき、特定のevent_name/
event_key対の最も古い結合信号が新しく到着
した信号用の場所をあけるために放棄される。許される
最小値は1であり、これは各信号の最近のインスタンス
だけが保持されることを意味する。値−1は、仮想記憶
域が利用できるという条件の下で結合信号リストが無制
限に成長できることを意味する。その他の負の値または
0は、エラーと見なされる。
【0115】"event_count"は、監視された
条件が満足されたと見なされるために信号がモニタに結
合されなければならない、指定されたevent_na
meとevent_keyの対の数を含む符号付き4バ
イト2進変数である。この値は1とnumber_of
_eventsの間でなければならない。あるいは、本
発明の別の実施例では、event_countは、イ
ベント・モニタを満足させるために必要な各イベント・
タイプの発生回数を示すために、各イベント・タイプご
とに指定される。
【0116】 EventMonitorDelete retcode rsncode monitor_token パラメータ: "EventMonitorDelete"は、呼び出さ
れる機能の名前である。
【0117】"retcode"は、EventMoni
torDeleteからの戻りコードを保持するための
符号付き4バイト2進変数である。
【0118】"rsncode"は、EventMoni
torDeleteからの理由コードを保持するための
符号付き4バイト2進変数である。
【0119】"monitor_token"は、削除さ
れるイベント・モニタを識別するトークンを含む符号付
きの4バイト2進変数である。値0は、現スレッド上で
最近に活動化された活動状態のイベント・モニタを識別
するために使用される。
【0120】 EventMonitorEnable retcode rsncode number_of_monitors monitor_tokens monitor_enablement_masks パラメータ: "EventMonitorEnable"は、呼び出さ
れる機能の名前である。
【0121】"retcode"は、EventMoni
torEnableからの戻りコードを保持するための
符号付き4バイト2進変数である。
【0122】"rsncode"は、EventMoni
torEnableからの理由コードを保持するための
符号付き4バイト2進変数である。
【0123】"number_of_monitors"
は、関心があるmonitor_tokensの数を含
む符号付き4バイト2進変数である。
【0124】"monitor_tokens"は、nu
mber_of_monitors個の4バイト・ポイ
ンタ変数のアレイであり、その各要素は、イネーブルま
たはディスエーブルされるモニタのトークンを含む。値
0は、現スレッド上で最近に活動化された活動状態のイ
ベント・モニタを識別するために使用される。
【0125】"monitor_enablement
_masks"は、number_of_monito
rs個の符号付き4バイト2進変数のアレイであり、そ
の各要素は、monitor_tokensアレイの対
応する要素によって識別されるモニタ用のイネーブル・
マスクを含む。モニタ・イネーブル・マスクの値が、実
行される以下の処置を決定する。すなわち、monit
or_tokensアレイの対応する要素によって識別
されるモニタをディスエーブルすることを示す"vm_
evn_disable"、及びmonitor_to
kensアレイの対応する要素によって識別されるモニ
タをイネーブルすることを示す"vm_evn_ena
ble"である。
【0126】EventMonitorQuery−適
用業務プログラムは、以前に作成されたイベント・モニ
タの定義及び状況に関する情報を得るために、この機能
を呼び出すことができる。
【0127】 EventMonitorQuery retcode rsncode monitor_token monitor_flag monitor_flag_size monitor_flag_count number_of_events event_name_buffer_address event_name_buffer_length event_name_length event_key_buffer_address event_key_buffer_length event_key_length bound_signal_limit bound_signal_count monitor_selection_mask monitor_enablement_mask event_count present_event_count trap_routine_address trap_routine_name パラメータ: "EventMonitorQuery"は、呼び出され
る機能の名前である。
【0128】"retcode"は、EventMoni
torQueryからの戻りコードを保持するための符
号付き4バイト2進変数である。
【0129】"rsncode"は、EventMoni
torQueryからの理由コードを保持するための符
号付き4バイト2進変数である。
【0130】"monitor_token"は、それに
関する情報が返されるイベント・モニタを識別する符号
付きの4バイト2進変数である。値0は、現スレッド上
で最近に活動化された活動状態のイベント・モニタを識
別するために使用される。
【0131】"monitor_flag"は、符号付き
の4バイト2進変数のアレイであり、その各要素中で、
イベント・モニタをどのように管理すべきかの情報が返
される。以下の各セットからそれぞれただ1つのオプシ
ョンを含む。
【0132】モニタの寿命は、イベント・モニタが明示
的EventMonitorDeleteまで、または
定義プロセスの終了まで持続することを意味する"vm
_evn_no_auto_delete"、またはイ
ベント・モニタが最初に非活動化されたときまたはEv
entMonitorReset呼出し時に自動的に削
除されることを意味する"vm_evn_auto_d
elete"によって指示される。
【0133】指名可能性に関するモニタ活動化の効果
は、モニタを含むプロセス内のすべてのスレッドが指名
可能なままとなることを意味する"vm_evn_as
ync_monitor"(省略時指定)、またはモニ
タがその上で活動化されているスレッド(すなわち、こ
のイベント・モニタ用のイベント・ハンドラ)を除き、
現在モニタを含むプロセス内にあるすべてのスレッド
が、そのモニタが非活動化されるまで中断されることを
意味する"vm_evn_sync_process_
monitor"によって指示される。
【0134】ルース信号のこのモニタへの結合は、モニ
タが作成されたまたはオンに選択された時点で存在する
任意の適格ルース信号がこのモニタに結合されているこ
とを意味する"vm_evn_bind_loose_
signals"(省略時指定)、またはいかなるルー
ス信号もこのモニタに結合されていないことを意味す
る"vm_evn_ignore_loose_sig
nals"によって指示される。
【0135】モニタの現在の活動化状態は、監視される
条件が満たされており、信号処理プログラムが実行中で
あることを意味する"vm_evn_monitor_
active"、モニタが活動状態でなく、監視される
条件が満たされておらず、モニタに関連する未処理のE
ventWaitがあることを意味する"vm_evn
_monitor_waiting"、モニタが活動状
態でも待機状態でもなく、監視される条件が満たされて
おらず、モニタに関連するトラップ・ルーチンがあるこ
とを意味する"vm_evn_monitor_tra
pping"、またはモニタが活動状態でも待機状態で
もトラッピング状態でもなく、監視される条件は満たさ
れていることも満たされていないこともあり、モニタに
関連する未処理のEventWaitもトラップ・ルー
チンもないことを意味する"vm_evn_monit
or_testable"によって指示される。
【0136】"monitor_flag_size"
は、monitor_flagアレイ内の要素の数を含
む、符号付きの4バイト2進変数である。
【0137】"monitor_flag_count"
は、EventMonitorQueryによってセッ
トされたmonitor_flagアレイ内の要素の数
がその中で返される、符号付きの4バイト2進変数であ
る。
【0138】"number_of_events"は、
関心があるevent_nameとevent_key
の対の数を含む、符号付きの4バイト2進変数である。
【0139】"event_name_buffer_
address"は、number_of_event
s個の4バイト・ポインタ変数のアレイであり、その各
要素は、その発生が監視されるイベントの名前がその中
で返される、文字変数のアドレスを含む。
【0140】"event_name_buffer_
length"は、number_of_events
個の符号付き4バイト2進変数のアレイであり、その各
要素は、event_name_buffer_add
ressアレイの対応する要素が指すevent_na
me_bufferの長さを含む。
【0141】"event_name_length"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素中で、ev
ent_name_buffer_addressアレ
イの対応する要素が指すバッファに記憶されているev
ent_nameの実際の長さが返される。この名前が
バッファより長い場合、それは切り捨てられる。短い場
合は、バッファの終りにある過剰スペースは変化しな
い。
【0142】"event_key_buffer_a
ddress"は、number_of_events
個の4バイト・ポインタ変数のアレイであり、その各要
素は、監視されているevent_name_buff
er_arrayの対応するエントリが指すevent
_nameの特定のインスタンスをさらに特徴づけるキ
ーがその中で返される、バッファのアドレスを含む。
【0143】"event_key_buffer_l
ength"は、number_of_events個
の符号付き4バイト2進変数のアレイであり、その各要
素は、event_key_buffer_addre
ssアレイの対応する要素が指すバッファの長さを含
む。
【0144】"event_key_length"は、
number_of_events個の符号付き4バイ
ト2進変数のアレイであり、その各要素中で、even
t_key_buffer_addressアレイの対
応する要素が指すバッファに記憶されているevent
_keyの実際の長さが返される。このキーがバッファ
より長い場合、それは切り捨てられる。短い場合は、バ
ッファの終りにある過剰スペースは変化しない。
【0145】"bound_signal_limit"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素中で、モニ
タがすでに活動状態またはテスト可能である期間、また
は監視される条件が満足されないままである間、イベン
ト・モニタに結合されているが未処理の状態に保持され
る対応するイベント名/イベント・キー対の信号の数が
返される。限界を超えたとき、特定のevent_na
meとevent_keyの対の最も古い結合信号が新
しく到着した信号用の場所をあけるために放棄される。
許容される最小値は1であり、これは各信号の最近のイ
ンスタンスだけが保持されることを意味する。値−1
は、仮想記憶域が利用できるという条件の下で結合信号
リストが無制限に成長できることを意味する。
【0146】"bound_signal_count"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素中で、イベ
ント・モニタに現在結合されているが未処理である対応
するイベント名/イベント・キー対の信号の数が返され
る。
【0147】"monitor_selection_
mask"は、このモニタ用の選択マスクがその中で返
される、4バイト変数である。この変数は、このモニタ
がオフに選択されるかオンに選択されるかを示す。
【0148】"monitor_enablement
_mask"は、このモニタ用のイネーブル・マスクが
その中で返される、4バイト2進変数である。この変数
は、このモニタがディスエーブルされるかイネーブルさ
れるかを示す。
【0149】"event_count"は、監視される
条件が満足されたと見なすためにそれに対する信号がモ
ニタに結合されなければならない、指定されたeven
t_nameとevent_keyの対の数がその中で
返される、符号付き4バイト2進変数である。
【0150】"present_event_coun
t"は、それに対する信号がイベント・モニタに現在結
合されている、指定されたevent_nameとev
ent_keyの対の数がその中で返される、符号付き
4バイト2進変数である。
【0151】"trap_routine_addre
ss"は、モニタによって定義された条件が満たされる
ことが、EventTrap機能によって確立されたと
きに呼び込まれるルーチンのアドレスがその中で返され
る、4バイト2進変数である。EventTrapによ
ってアドレスが確立されていない場合は、値0が返され
る。
【0152】"trap_routine_name"
は、モニタによって定義された条件が満たされることが
EventTrap機能によって確立されたときに、呼
び込まれるルーチンの名前がその中で返される8バイト
変数であり、またどのイベント・トラップもモニタと関
連していない場合はブランクが返される。
【0153】 EventMonitorReset retcode rsncode monitor_token パラメータ: "EventMonitorReset"は、呼び込まれ
る機能の名前である。
【0154】"retcode"は、EventMoni
torResetからの戻りコードを保持するための符
号付き4バイト2進変数である。
【0155】"rsncode"は、EventMoni
torResetからの理由コードを保持するための符
号付き4バイト2進変数である。
【0156】"monitor_token"は、その状
態がリセットされるモニタを識別するトークンを含む、
符号付きの4バイト2進変数である。値0は、現スレッ
ド上で最近に活動化された活動状態のイベント・モニタ
を識別するために使用される。
【0157】 EventMonitorSelect retcode rsncode number_of_monitors monitor_tokens monitor_selection_masks パラメータ: "EventMonitorSelect"は、呼び込ま
れる機能の名前である。
【0158】"retcode"は、EventMoni
torSelectからの戻りコードを保持するための
符号付き4バイト2進変数である。
【0159】"rsncode"は、EventMoni
torSelectからの理由コードを保持するための
符号付き4バイト2進変数である。
【0160】"number_of_monitors"
は、関心があるmonitor_tokensの数を含
む、符号付き4バイト2進変数である。
【0161】"monitor_tokens"は、nu
mber_of_monitors個の4バイト2進変
数のアレイであり、その各要素は、オンまたはオフに選
択されるモニタのトークンを含む。値0は、現スレッド
上で最近に活動化された活動状態のイベント・モニタを
識別するために使用される。
【0162】"monitor_selection_
masks"は、number_of_monitor
s個の符号付き4バイト2進変数のアレイであり、その
各要素は、monitor_tokensアレイの対応
する要素によって識別されるモニタ用の選択マスクを含
む。選択マスクの値が、実行される処置、すなわち、m
onitor_tokensアレイの対応する要素によ
って識別されるモニタの監視の停止を意味する"vm_
evn_select_off"、及びmonitor
_tokensアレイの対応する要素によって識別され
るモニタの監視の開始を意味する"vm_evn_se
lect_on"を決定する。
【0163】EventQuery−適用業務プログラ
ムは、イベント発生の影響を受ける可能性のある、現プ
ロセスにおいて定義されているすべてのイベント・モニ
タのリストを含む既存のイベント定義に関する情報を得
るために、この機能を呼び出すことができる。Even
t Monitor Query機能は、特定のイベン
ト・モニタに関するより詳しい情報を得るために使用で
きる。
【0164】 EventQuery retcode rsncode event_name event_name_length event_flag event_flag_size event_flag_count loose_signal_limit signal_timeout_period loose_signal_count event_selection_mask event_enablement_mask monitor_token monitor_token_size monitor_token_count パラメータ: "EventQuery"は、呼び込まれる機能の名前で
ある。
【0165】"retcode"は、EventQuer
yからの戻りコードを保持するための符号付き4バイト
2進変数である。
【0166】"rsncode"は、EventQuer
yからの理由コードを保持するための符号付き4バイト
2進変数である。
【0167】"event_name"は、照会されるイ
ベントの名前を含む文字変数である。
【0168】"event_name_length"
は、event_nameの長さを含む符号付き4バイ
ト2進変数である。
【0169】"event_flag"は、イベントがど
のように管理されるかに関する情報がその中で返され
る、符号付きの4バイト2進変数のアレイである。以下
の各セットからのそれぞれただ1つのオプションが含ま
れる。
【0170】イベント名の範囲は、指定されたプロセス
を意味する"vm_evn_process_scop
e"、または指定されたセッションを意味する"vm_e
vn_session_scope"によって指示され
る。
【0171】イベント信号が複数のイベント・モニタに
伝搬される方式は、同報通信を意味する"vm_evn
_broadcast_signals"、FIFOシ
ーケンスを意味する"vm_evn_fifo_sig
nals"、またはLIFOシーケンスを意味する"vm
_evn_lifo_signals"によって指示さ
れる。
【0172】シグナラの処理は、信号通知スレッドが実
行を継続できることを意味する"vm_evn_asy
nc_signals"(省略時指定)、信号通知スレ
ッドがイベント処理の結果を待って中断されていること
を意味する"vm_evn_sync_thread_
signals"、またはモニタが信号によって活動化
された結果として走行しているスレッドを除く、信号通
知プロセスにおけるすべてのスレッドが、イベント処理
の結果を待って中断されていることを意味する"vm_
evn_sync_process_signals"
によって指示される。
【0173】"event_flag_size"は、e
vent_flagアレイ内の要素の数を含む符号付き
4バイト2進変数である。
【0174】"event_flag_count"は、
EventQueryによってセットされたevent
_flagアレイ内の要素の数がその中で返される、符
号付き4バイト2進変数である。
【0175】"loose_signal_limit"
は、信号が結合される適格イベント・モニタが存在しな
い場合、またはイベントが信号で通知された時点でプロ
セスがイベントについて監視していない場合に保持され
るイベント信号の数がその中で返される、符号付き4バ
イト2進変数のアレイである。限界を超えたとき、最も
古いルース信号が、新しく到着した信号用の場所をあけ
るために放棄される。値0は、ルース信号が保持されて
いないことを示す。値−1は、仮想記憶域が利用できる
という条件の下でルース信号セットが無制限に成長でき
ることを意味する。
【0176】"signal_timeout_per
iod"は、信号通知スレッドが信号の処理の完了を待
って中断状態に留まることができる、マイクロ秒で指定
された時間の最大長さがその中で返される、符号付きの
4バイト2進変数である。値0は、信号通知スレッドが
信号処理の完了を無限に待つことを示す。信号通知スレ
ッドが処理を続けることを指定するオプションがeve
nt_flagアレイ内に含まれている場合、このパラ
メータは無意味である。
【0177】"loose_signal_count"
は、特定のイベントに関して現在保持されているルース
信号の数がその中で返される、符号付き4バイト2進変
数である。
【0178】"event_selection_ma
sk"は、イベント選択マスクの状態、すなわちeve
nt_nameについて監視しないことを意味する"v
m_evn_select_off"、またはeven
t_nameについて監視することを意味する"vm_
evn_select_on"がその中で返される、符
号付き4バイト2進変数である。
【0179】"event_enablement_m
ask"は、イベント・イネーブル・マスクの状態、す
なわちevent_nameについてディスエーブルさ
れたことを意味する"vm_evn_disable"、
またはevent_nameについてイネーブルされた
ことを意味する"vm_evn_enable"がその中
で返される、4バイト2進変数である。イベント選択マ
スク及びイネーブル・マスクは、プロセスごとに維持さ
れ、発行プロセスについてだけ報告される。
【0180】"monitor_token"は、指定さ
れたイベントの影響を受ける可能性のある、現プロセス
において定義されたイベント・モニタを識別するトーク
ンのリストがその中で返される、符号付きの4バイト2
進変数のアレイである。順次式と定義されたイベントで
は、トークンはイベントが処理される順序で出力され
る。同報通信と定義されたイベントでは、トークンはモ
ニタが作成された順序で出力される。
【0181】"monitor_token_size"
は、充填に使用できるmonitor_tokenアレ
イ内の要素の数を含む、符号付きの4バイト2進変数で
ある。
【0182】"monitor_token_coun
t"は、指定されたイベントの影響を受ける可能性のあ
る、現プロセスにおいて定義されたイベント・モニタの
総数がその中で返される、符号付きの4バイト2進変数
である。monitor_token_countがm
onitor_token_sizeより大きくない場
合、monitor_tokenアレイの第1のmon
itor_token_count要素は、モニタ・セ
ット全体を識別するトークンを含み、アレイの残りの要
素は不変である。そうでない場合は、第1monito
r_token_size個のモニタ・トークンが返さ
れる。
【0183】EventQueryAll−適用業務プ
ログラムは、すべてのイベントの名前、及びこのプロセ
スにとって可視のすべてのイベント・モニタ用のトーク
ンを得るために、この機能を呼び出すことができる。E
ventQuery及びEventMonitorQu
ery機能は、イベント及びイベント・モニタに関する
より詳しい情報を得るために使用される。
【0184】 EventQueryAll retcode rsncode number_of_events event_name_address event_name_length actual_name_length monitor_token monitor_token_size monitor_token_count パラメータ: "EventQueryAll"は、呼び込まれる機能の
名前である。
【0185】"retcode"は、EventQuer
yAllからの戻りコードを保持するための符号付き4
バイト2進変数である。
【0186】"rsncode"は、EventQuer
yAllからの理由コードを保持するための符号付き4
バイト2進変数である。
【0187】"number_of_events"は、
以下の3つのアレイ内の要素の数を含む符号付きの4バ
イト2進変数である。
【0188】"event_name_address"
は、number_of_events個の4バイト・
ポインタ変数のアレイであり、その各要素は、定義され
たイベントの名前がその中で返される文字変数のアドレ
スを含む。
【0189】"event_name_length"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素は、eve
nt_name_addressアレイの対応する要素
のバッファの長さを含む。この名前がバッファより長い
場合、それは切り捨てられる。短い場合は、バッファの
終りにある過剰スペースは不変である。
【0190】"actual_name_length"
は、number_of_events個の符号付き4
バイト2進変数のアレイである。この機能は、このアレ
イを使用してevent_name_addressア
レイの対応する要素が指すイベント名の長さを出力す
る。
【0191】"monitor_token"は、現プロ
セスにおいて定義されたすべてのイベント・モニタを識
別するトークンのリストがその中で返される、符号付き
の4バイト2進変数のアレイである。
【0192】"monitor_token_size"
は、充填に使用できるmonitor_tokenアレ
イ内の要素の数を含む、符号付きの4バイト2進変数で
ある。
【0193】"monitor_token_coun
t"は、現プロセスにおいて定義されたイベント・モニ
タの総数がその中で返される、符号付きの4バイト2進
変数である。monitor_token_count
がmonitor_token_sizeより大きくな
い場合、monitor_tokenアレイの第1のm
onitor_token_count要素は、モニタ
・セット全体を識別するトークンを含み、アレイの残り
の要素は不変である。そうでない場合は、第1moni
tor_token_size個のモニタ・トークンだ
けが返される。
【0194】 EventRetrieve retcode rsncode monitor_token index data_buffer data_buffer_length event_data_length パラメータ: "EventRetrieve"は、呼び込まれる機能の
名前である。
【0195】"retcode"は、EventRetr
ieveからの戻りコードを保持するための符号付き4
バイト2進変数である。
【0196】"rsncode"は、EventRetr
ieveからの理由コードを保持するための符号付き4
バイト2進変数である。
【0197】"monitor_token"は、その現
信号セットから取出しが実行されるモニタを識別するト
ークンを含む、符号付きの4バイト2進変数のアレイで
ある。値0は、現スレッド上で最近に活動化された活動
状態のイベント・モニタを識別するために使用される。
【0198】"index"は、イベント・モニタの作成
時に指定されたevent_name_addres
s、event_name_length、event
_key_address及びevent_key_l
engthアレイへのインデックスとして、データがそ
こから取り出される信号に対応するevent_nam
eとevent_keyの対を識別する、符号付きの4
バイト2進変数である。
【0199】"data_buffer"は、インデック
スによって識別されたevent_nameとeven
t_keyの対に関する信号で通知されたデータがその
中で返される文字変数である。
【0200】"data_buffer_length"
は、data_bufferの定義された長さを含む符
号付きの4バイト2進変数である。
【0201】"event_data_length"
は、インデックスによって識別されたevent_na
meとevent_keyの対に関する信号で通知され
たデータの長さがその中で返される、符号付きの4バイ
ト2進変数である。event_data_lengt
hがdata_buffer_lengthより大きい
場合、信号で通知されたデータは右側が切り捨てられ、
警告戻りコードが生成される。
【0202】 EventSelect retcode rsncode number_of_events event_name_address event_name_length event_selection_mask パラメータ: "EventSelect"は、呼び込まれる機能の名前
である。
【0203】"retcode"は、EventSele
ctからの戻りコードを保持するための符号付き4バイ
ト2進変数である。
【0204】"rsncode"は、EventSele
ctからの理由コードを保持するための符号付き4バイ
ト2進変数である。
【0205】"number_of_events"は、
関心があるイベントの数を含む符号付き4バイト2進変
数である。
【0206】"event_name_address"
は、number_of_events個の4バイト・
ポインタ変数のアレイであり、その各要素は、その信号
がオンまたはオフに選択されるイベントの名前のアドレ
スを含む。
【0207】"event_name_length"
は、number_of_events個の符号付き4
バイト2進変数のアレイであり、その各要素は、eve
nt_name_addressアレイの対応する要素
が指すevent_nameの長さを含む。
【0208】"event_selection_ma
sk"は、number_of_events個の符号
付き4バイト2進変数のアレイであり、その各要素は、
event_name_addressアレイの対応す
る要素が指すevent_nameの選択マスクを含
む。選択マスクの値が、実行される処置、すなわちev
ent_name_addressアレイの対応する要
素が指すevent_nameの監視を停止することを
意味する"vm_evn_select_off"、また
はevent_name_addressアレイの対応
する要素が指すevent_nameの監視を開始する
ことを意味する"vm_evn_select_on"を
決定する。
【0209】 EventSignal retcode rsncode event_name event_name_length event_data event_data_length event_key_offset event_key_length パラメータ: "EventSignal"は、呼び込まれる機能の名前
である。
【0210】"retcode"は、EventSign
alからの戻りコードを保持するための符号付き4バイ
ト2進変数である。
【0211】"rsncode"は、EventSign
alからの理由コードを保持するための符号付き4バイ
ト2進変数である。
【0212】"event_name"は、その発生が信
号で通知されるイベントの名前を含む文字変数である。
【0213】"event_name_length"
は、event_nameの長さを含む符号付き4バイ
ト2進変数である。
【0214】"event_data"は、関心があるイ
ベント・モニタにとって使用可能となるデータを含む文
字変数である。
【0215】"event_data_length"
は、event_dataの長さを与える符号付き4バ
イト2進変数キーである。
【0216】"event_key_offset"は、
信号で通知されるイベントの特定のインスタンスを特徴
づけるキーの第1バイトのevent_dataにおけ
るオフセットを含む符号付き4バイト2進変数である。
【0217】"event_key_length"は、
event_dataに含まれるキーの長さを含む符号
付き4バイト2進変数である。このタイプのイベント
に、またはイベントのこの発生にイベントの2次的特性
づけが必要でない場合は、このキーは空白となる(すな
わち、その長さは0である)。
【0218】 EventTest retcode rsncode monitor_token number_of_events event_flag パラメータ: "EventTest"は、呼び込まれる機能の名前であ
る。
【0219】"retcode"は、EventTest
からの戻りコードを保持するための符号付き4バイト2
進変数である。
【0220】"rsncode"は、EventTest
からの理由コードを保持するための符号付き4バイト2
進変数である。
【0221】"monitor_token"は、その条
件がテストされるモニタを識別するトークンを含む符号
付きの4バイト2進変数である。値0は、現スレッド上
で最近に活動化された活動状態のイベント・モニタを識
別するために使用される。
【0222】"number_of_events"は、
その発生がテストされるイベントの数を含む符号付き4
バイト2進変数である。一般に、これは、イベント・モ
ニタの定義中で指定されたevent_nameとev
ent_keyの組合せの数と同じになるはずである。
【0223】"event_flag"は、number
_of_events個の符号付き4バイト2進変数の
アレイであり、その各要素中で、イベント・モニタを定
義する際に使用されたevent_name_addr
ess、event_name_length、eve
nt_key_address及びevent_key
_lengthアレイの対応する要素によって指定され
たevent_nameとevent_keyの対によ
って識別されるイベントの発生または非発生の指示が返
される。すなわち、 0、1、2...イベントが信号で通知され、その数
が、EventRetrieve機能によって得られる
信号に関する提供されるデータの長さであることを示
す。
【0224】−1......イベントが信号で通知さ
れていないことを示す。
【0225】−2......イベント定義が削除され
たことを示す。
【0226】−3......対応するevent_n
ameとevent_keyの対がイベント・モニタ内
で定義されていなかったことを示す。
【0227】 EventTrap retcode rsncode monitor_token trap_routine_address trap_routine_name パラメータ: "EventTrap"は、呼び込まれる機能の名前であ
る。
【0228】"retcode"は、EventTrap
からの戻りコードを保持するための符号付き4バイト2
進変数である。
【0229】"rsncode"は、EventTrap
からの理由コードを保持するための符号付き4バイト2
進変数である。
【0230】"monitor_token"は、その条
件がトラップされるモニタを識別するトークンを含む、
符号付きの4バイト2進変数である。値0は、現スレッ
ド上で最近に活動化された活動状態のイベント・モニタ
を識別するために使用される。
【0231】"trap_routine_addre
ss"は、モニタによって定義された条件が満たされた
ときに呼び込まれるルーチンのアドレスを含む4バイト
2進変数である。あるアドレスがそのイベント・モニタ
と以前に関連づけられていた場合、そのアドレスは新し
いtrap_routine_addressで自動的
に置き換えられる。アドレスが非0値である場合、tr
ap_routine_nameパラメータは無意味で
ある。
【0232】"trap_routine_name"
は、モニタによって定義される条件が満たされたときに
呼び込まれるルーチンの名前を含む8バイト文字変数で
ある。このパラメータは、trap_routine_
addressパラメータが0の場合にだけ意味をも
つ。ある名前がそのイベント・モニタと以前に関連づけ
られていた場合は、その名前は新しいtrap_rou
tine_nameで自動的に置き換えられる。tra
p_routine_addressパラメータが0で
あり、trap_routine_nameがブランク
である場合は、指定されたイベント・モニタに関連する
トラップが取り消される。
【0233】 EventWait retcode rsncode monitor_token number_of_events event_flag パラメータ: "EventWait"は、呼び込まれる機能の名前であ
る。
【0234】"retcode"は、EventWait
からの戻りコードを保持するための符号付き4バイト2
進変数である。
【0235】"rsncode"は、EventWait
からの理由コードを保持するための符号付き4バイト2
進変数である。
【0236】"monitor_token"は、その条
件を待つべきモニタを識別するトークンを含む、符号付
きの4バイト2進変数である。モニタは、すでに待機状
態にあってはならない。モニタにとって未処理の待機は
一時にせいぜい1つである。値0は、現スレッド上で最
近に活動化された活動状態のイベント・モニタを識別す
るために使用される。
【0237】"number_of_events"は、
EventWait機能が完了するときにその発生が示
されるイベントの数を含む、符号付き4バイト2進変数
である。一般に、これは、イベント・モニタの定義中で
指定されたevent_nameとevent_key
の組合せの数と同じとなるはずである。
【0238】"event_flag"は、number
_of_events個の符号付き4バイト2進変数の
アレイであり、その各要素中で、イベント・モニタを定
義する際に使用されたevent_name_addr
ess、event_name_length、eve
nt_key_address及びevent_key
_lengthアレイの対応する要素によって指定され
るevent_nameとevent_keyの対によ
って識別されるイベントの発生または非発生の指示が返
される。すなわち、 0、1、2...イベントが信号で通知され、その数
が、EventRetrieve機能によって得られる
信号に関する提供されるデータの長さであることを示
す。
【0239】−1......イベントが信号で通知さ
れていないことを示す。
【0240】−2......イベント定義が削除され
たことを示す。
【0241】−3......対応するevent_n
ameとevent_keyの対がイベント・モニタ内
で定義されていなかったことを示す。
【0242】トレース・テーブル 上述のイベント管理サービスは、イベントがトレース・
イベントであるとき、下記のようにしてトレース・テー
ブルを確立し処理するために使用できる。先に指摘した
ように、各イベント定義は、(オンに選択されている)
関心があるイベント・モニタがないときにルース信号セ
ット41内のイベント定義に記憶し結合することのでき
るイベント信号の最大数を指定するルース信号限界を含
む。ルース信号限界に達したとき、以後の各イベント信
号は、最も古いイベント信号が消去されてその位置に記
憶される。一般に新しいイベント信号ほどより重要なト
レース情報を提供する。したがって、ルース信号セット
は、関心があるイベント・モニタの定義を遅らせること
によって、後で定義されるイベント・モニタ用のイベン
ト信号のトレース・テーブルまたは「プール」として使
用することができる。あるプロセスがトレース・イベン
ト信号を処理することに関与するとき、そのプロセス
は、そのイベントに関心があるイベント・モニタを定義
し、EventWait機能、EventTrap機能
またはEventTest機能を呼び出す。イベント・
モニタ作成の結果、イベント・モニタにとって関心があ
るイベント用のルース信号が、図20を参照して上述し
たようにイベント・モニタの結合信号セットに転送され
る。これらの信号がイベント・モニタを満足させるのに
十分である場合、イベント・モニタはEventWai
t機能、EventTrap機能またはEventTe
st機能の呼出しに応答して現信号セットを確立し、関
連するプロセス内のイベント・ハンドラが、現信号セッ
ト内のイベント信号にアクセスすることができる。
【0243】このように、1つまたは複数のイベント定
義のルース信号セットは、該当するイベント・モニタを
後で定義することによって、関心があるイベント・ハン
ドラがそれらの特定の要件に従ってそれにアクセスする
ことができる。また、各イベント・ハンドラは、実時間
で、すなわち要求があったとき、トレース・テーブルに
アクセスすることができ、現信号セットから直接に(直
接アクセス記憶装置(DASD)などの外部記憶装置に
アクセスする必要なしに)トレース・データを処理する
ことができる。
【0244】ルース信号セットから結合信号セットへの
転送は、前述の各種の機能を使用して異なる方式で制御
できる。最初にイベントをオフに選択することなく、す
べてのトレース信号に関心があるイベント・モニタが作
成された場合、そのイベント用のルース信号セット内の
すべてのルース信号がイベント・モニタに転送され、次
いでルース信号セットが完全に削除される。その結果、
関心がある第2のイベント・モニタが後で定義された場
合、これらのルース信号は関心がある第2のイベント・
モニタには使用できなくなる。しかし、2つ以上のイベ
ント・モニタがルース信号セットのコピーを必要とする
場合は、ルース信号をそれらのイベント・モニタのすべ
てに提供するために、以下の手順が利用できる。まず関
心があるイベントが、EventSelect機能の呼
出しによってオフに選択され(図17の段階254)、
次いでこの機能がイベント定義を「オフに選択済み」と
マークする。次に、イベント・モニタが定義され、その
後、EventSelect機能の別の呼出しによって
そのイベントがオンに選択される(図17の段階26
6)。これに応答して、EventSelect機能が
イベント定義をオンに選択済みとマークし(段階26
8)、イベント・モニタ定義を読み取ることによってそ
のイベントに関心があるすべてのイベント・モニタを識
別する(段階270)。次に、EventSelect
機能は、イベント定義中で同報通信モードが指定されて
いる場合は、すべてのルース信号のコピーをそのような
関心があるすべてのイベント・モニタに転送し(ルース
信号セットを消去し)、またイベント定義中で伝搬モー
ドが指定されている場合は、すべてのルース信号をシー
ケンス内の第1のイベント・モニタに転送(しルース信
号セットを消去)する(段階272)。
【0245】やはり先に指摘したように、各イベント・
モニタ定義は、イベント・モニタに関心がある各イベン
トに関する結合信号限界及び満足レベルを含んでいる。
各イベントの結合信号限界は、イベント・モニタに結合
して記憶できる、そのイベント用のイベント信号の最大
数を示す。このイベント・タイプの次のイベント信号が
受け取られたとき、それは同じタイプのイベント用の最
も古いイベント信号を消去してその位置に記憶される。
同じイベント・モニタにとって関心がある個別のイベン
トの結合信号限界は変わり得る。各イベントの満足レベ
ルは、イベント・モニタが、関連するイベント・ハンド
ラに現信号セットからのイベント信号を提供できるよう
にするのに必要なイベントの発生の数を示す。同じイベ
ント・モニタにとって関心がある異なるイベントの満足
レベルは、変わり得る。すべてのイベントについて満足
レベルが満足されたときだけ、イベント・ハンドラは現
信号セットにアクセスすることができる。任意の数のイ
ベント・モニタを定義することができ、これらの定義は
イベント・タイプの同じ、異なる、または部分的にオー
バーラップするセットを参照することができる。1つの
イベントまたはイベント・セットは、複数のイベント・
モニタにとって関係があることができる。各適用業務プ
ログラムは、そ(れら)のイベント・モニタに対してそ
れ自体のパラメータ、すなわち関心があるイベント・タ
イプ、結合限界、及び満足レベルを指定することができ
る。また、各適用業務プログラムは、EventDel
ete機能69、EventEnable機能44、E
ventModify機能71、EventMonit
orDelete機能68、EventMonitor
Enable機能64、及びEventMonitor
Select機能66の呼出しによって、それ自体のト
レース・テーブルを制御することができる。このような
制御ならびにイベント・モニタの作成は、いつでも、す
なわち動的に行える。
【0246】したがって、ルース信号セットを後で定義
されたイベント・モニタ用のトレース・テーブルまたは
プールとして使用する方法の代替法として、関心がある
イベントの発生前にイベント・モニタを定義し、これを
直接使用してトレース・テーブルを提供することができ
る。結合限界が「ラップ・サイズ」を確立し、満足レベ
ルは、要求に応じてイベント・ハンドラにとって使用可
能になる各タイプの信号の数を確立する。この構成で
は、イベント・モニタが満足される前にイベント・ハン
ドラがEventTrapまたはEventWait機
能を呼び出した場合、イベント・ハンドラは実時間で、
すなわちイベント・モニタが満足され次第、トレース・
テーブル(現信号セット)にアクセスすることができ
る。また、現信号セットが確立されており、イベント・
ハンドラが現信号セットにアクセスするとき、結合信号
セット内に新しいイベント信号用の場所をあけるために
現信号セットが消去される。この代替法は、ルース信号
セットをトレース・テーブルまたはプールとして使用す
るよりも優れたいくつかの利点を提供するが、複数のイ
ベント・モニタが同じイベントに関係があるときは、こ
の代替法ではすべてのイベント信号が(ルース信号限界
を超えたイベント信号さえも)すべてのイベント・モニ
タの結合信号セットに転送されるので、幾分より高いオ
ペレーティング・システム・オーバーヘッドを必要とす
る。これとは対照的に、ルース信号セットをトレース・
テーブルまたはプールとして利用する前の方法では、イ
ベント・モニタへの以後の転送のオーバーヘッドを必要
とするイベント信号の最大数がルース信号限界である。
【0247】トレース・テーブルの適切な確立、管理及
び使用を容易にし、確実にするために、適用業務プログ
ラム・インターフェースを含む下記の追加のトレース管
理サービスが提供される。これらのトレース管理サービ
スは、ITRACE及びETRACEキーボード・コマ
ンド、またはTRACECONTROL呼出しによって
管理される。TRACECONTROL呼出しは、所定
のセット中のどのトレース・イベントが信号で通知され
るか、及び信号で通知されたトレース・イベントの属性
を定義し、またいくつかの追加のトレース処理オプショ
ンを提供する。TRACECONTROL呼出しは、オ
ペレーティング・システム11の会話モニタ・システム
(CMS)部分に対して行われる。オペレーティング・
システム11の会話モニタ・システム部分の標準機能の
多くは、IBMコーポレイションから1990年6月に
発行されたVM/ESA CMS Application Development Refer
ence(IBM資料番号SC24−5451−00)と題
する印刷物に記載されている。TRACECONTRO
L呼出しのフォーマットは以下の通りである。
【0248】 TRACECONTROL Rtncode Rsncode Traceflg Wrapsize Function N Tracetype(N) Tracetype_Setting(N) パラメータ: "Rtncode"は、TRACECONTROLからの
戻りコードを保持するための符号付き4バイト2進変数
である。
【0249】"Rsncode"は、TRACECONT
ROLからの理由コードを保持するための符号付き4バ
イト2進変数である。
【0250】"Traceflg"は、トレース・イベン
トのシグナラがどの程度同期化されるべきかを指定す
る。それは、符号付き4バイト2進整数であり、有効値
は以下の通りである。
【0251】0(ASYNC) 信号通知スレッドがイ
ベント処理とは独立に処理を続ける。
【0252】1(TSYNC) 信号通知スレッドがイ
ベント処理の結果を待って中断される。
【0253】2(PSYNC) 信号通知プロセスがイ
ベント処理の結果を待って中断される。
【0254】3(DSYNC) 信号通知プロセス及び
そのすべての子孫がイベント処理の結果を待って中断さ
れる。
【0255】−1(UNCH) 同期化が変更されな
い。
【0256】"Wrapsize"は、イベントが信号で
通知されるときに適格なトレース・イベント・モニタが
存在しない場合、いくつのトレース・イベントが保持さ
れるかを指定する。これは、ルース信号限界に対応す
る。wrapsizeを超えたとき、最も古いトレース
・イベントが、新しく到着した信号用の場所をあけるた
めに放棄される。これは、4バイトの符号付き2進整数
である。値0は、トレース・イベントが保持されないこ
とを示す。値−1は、仮想記憶域がなくなるまでトレー
ス・イベントが保持され続けることを示す。値−2は、
wrapsizeが変更されないことを示す。その他の
負の値は無効である。
【0257】"Function"は、後に続くアレイの
使用を指定する。これは4バイトの符号付き2進整数で
あり、有効値は以下の通りである。
【0258】0(QUERY ITRACE) ITR
ACEトレースタイプが照会され、それらの設定がtr
acetype_settingsアレイ中で返され
る。
【0259】1(QUERY ETRACE) ETR
ACEトレースタイプが照会され、それらの設定がtr
acetype_settingsアレイ中で返され
る。
【0260】2(ITRACE) tracetype
及びtracetype_settingが、ITRA
CEコマンドへの呼出し可能なインターフェースとして
使用される。
【0261】3(ETRACE) tracetype
及びtracetype_settingが、ETRA
CEコマンドへの呼出し可能なインターフェースとして
使用される。
【0262】−1(UNCH) 後続のアレイが無視
されることを示す。
【0263】"N"は、セットされるトレース・タイプの
数を指定する。これは4バイトの符号付き2進整数であ
る。
【0264】"Tracetype"は、セットされるト
レース・タイプを指定する。それは、4バイトの符号付
き2進整数のアレイであり、有効値は以下の通りであ
る。
【0265】 0(ALL) すべてのトレース・タイプ 1(COMM) 通信イベント 2(DISP) 指名イベント 3(STOR) 記憶管理イベント 4(IO) 入出力イベント 5(PRGMAN) プログラム管理イベント 6(PRCMAN) プロセス管理イベント 7(MISC) タイマ、外部割込み及び機械チェック・イベント 8(DTMAN) データ管理イベント 9(GROUP) 以前の設定が、仮想機械グループ内のすべての機械に関す るものである。
【0266】"tracetype_setting"
は、tracetypeアレイに対応する設定を指定す
る。これは、4バイトの符号付き2進整数のアレイであ
り、有効値は以下の通りである。
【0267】0(オフ) 対応するトレース・タイプが
オフにセットされる。
【0268】0(オン) 対応するトレース・タイプが
オンにセットされる。
【0269】TRACECONTROL呼出しは、常に
セッション範囲のイベント定義及び同報通信信号をもた
らす。信号通知スレッドがイベント処理と独立に処理を
続けない場合、中断されたスレッドは無限に待つ、すな
わちタイムアウト期限はない。tracetypeアレ
イ及びtracetype_settingアレイは配
列順に処理される。たとえば、ALL及びOFFに対応
する値がそれぞれのアレイ内の第1の要素である場合、
すべてのトレース・カテゴリがオフにセットされてか
ら、これらのアレイ内の後続の要素が処理される。その
結果、一般に、アレイ要素は、後続のアレイ要素によっ
て空白にされる。CMSは、その初期設定の一環として
以下のパラメータ設定でTRACECONTROLルー
チンを呼び出す。Function=ITRACE、T
raceflg=ASYNC、Wrapsize=DM
SNGPから決定、N=1、Tracetype=AL
L、Tracetype_Setting=ON。これ
らの設定は、システム・プロファイルが実行される前に
セットされ、したがってシステム・プロファイルによっ
てオーバーライドされることがある。
【0270】ITRACEキーボード・コマンドは、効
果の点でTRACECONTROLAPI呼出しと類似
しており、CMSによってイベント信号マネージャへ信
号で通知するために、事前定義されたトレース・イベン
トのうちのどれが選択されるか、及び「ラップ・サイ
ズ」またはルース信号限界を指定する。そのフォーマッ
トは以下の通りである。
【0271】 ITRACE ALL ON/OFF COMMUNICATION ON/OFF DISPATCH ON/OFF STORAGE ON/OFF I/O ON/OFF PROGMAN ON/OFF PROCMAN ON/OFF DATAMAN ON/OFF MISC ON/OFF GROUP ON/OFF END WRAPSIZE XXXXXXXX "All"は、すべてのトレース・エントリが信号で通知
されるか否かを指定する。許容される値は以下の通りで
ある。
【0272】ON トレース・エントリが信号で通知
される。
【0273】OFF トレース・エントリが信号で通知
されない。
【0274】"Communication"は、通信ト
レース・エントリが信号で通知されるか否かを指定す
る。このタイプのトレース・エントリの可能な例は、I
UCV及びAPPCトランザクション及び待ち行列動作
である。許容される値は以下の通りである。
【0275】ON トレース・エントリが信号で通知
される。
【0276】OFF トレース・エントリが信号で通知
されない。
【0277】"Dispatch"は、指名トレース・エ
ントリが信号で通知されるか否かを指定する。このタイ
プのトレース・エントリの可能な例は、Thread
Dispatch及びThread Priority
Modificationである。許容される値は以
下の通りである。
【0278】ON トレース・エントリが信号で通知
される。
【0279】OFF トレース・エントリは信号で通知
されない。
【0280】"Storage"は、記憶トレース・エン
トリが信号で通知されるか否かを指定する。このタイプ
のトレース・エントリの可能な例は、Free Sto
rage Obtain及びFree Storage
Returnである。許容される値は以下の通りであ
る。
【0281】ON トレース・エントリが信号で通知
される。
【0282】OFF トレース・エントリが信号で通知
されない。
【0283】"I/O"は、入出力トレース・エントリが
信号で通知されるか否かを指定する。このタイプのトレ
ース・エントリの可能な例は、入出力要求及び入出力割
込み発生である。許容される値は以下の通りである。
【0284】ON トレース・エントリが信号で通知
される。
【0285】OFF トレース・エントリが信号で通知
されない。
【0286】"Progman"は、プログラム管理トレ
ース・エントリが信号で通知されるか否かを指定する。
このタイプのトレース・エントリの可能な例は、Com
mand Load及びProgram Loadであ
る。許容される値は以下の通りである。
【0287】ON トレース・エントリが信号で通知
される。
【0288】OFF トレース・エントリが信号で通知
されない。
【0289】"Procman"は、プロセス管理トレー
ス・エントリが信号で通知されるか否かを指定する。こ
のタイプのトレース・エントリの可能な例は、Proc
ess Create及びThread Create
である。許容される値は以下の通りである。
【0290】ON トレース・エントリが信号で通知
される。
【0291】OFF トレース・エントリが信号で通知
されない。
【0292】"Dataman"は、データ管理トレース
・エントリが信号で通知されるか否かを指定する。この
タイプのトレース・エントリの可能な例は、File
System Read及びFile System
Writeである。許容される値は以下の通りである。
【0293】ON トレース・エントリが信号で通知
される。
【0294】OFF トレース・エントリが信号で通知
されない。
【0295】"Misc"は、類別できないトレース・エ
ントリが信号で通知されるか否かを指定する。このタイ
プのトレース・エントリの可能な例は、機械チェック、
外部割込み及びタイマ割込みである。許容される値は以
下の通りである。
【0296】ON トレース・エントリが信号で通知
される。
【0297】OFF トレース・エントリが信号で通知
されない。
【0298】"Group"は、信号で通知されるトレー
ス・エントリが発行側の仮想機械グループ内のすべての
機械において信号で通知されるか否かを指定する。この
オペランドは、GROUPオペランドが処理されている
とき現在信号で通知されているトレース・エントリだけ
に適用される。すなわち、GROUPオペランドの右側
のオペランドは、GROUPオペランドの影響を受けな
い。このオペランドは、グループの一部分でない仮想機
械によって指定されない。許容される値は以下の通りで
ある。
【0299】ON 仮想機械グループ内のすべての機
械においてトレース・エントリが信号で通知される。
【0300】OFF 仮想機械グループ内の他のいずれ
かの機械においてトレース・エントリが信号で通知され
ない。
【0301】"End"は、トレース・エントリが信号で
通知されないことを指定する。
【0302】"Wrapsize xxx"は、トレース
・エントリが信号で通知されるとき適格なトレース・イ
ベント・モニタが存在しない場合に、いくつのトレース
・エントリがトレース・テーブル内に保持されるかを指
定する。ラップサイズを超えたとき、新しく到着した信
号用の場所をあけるために最も古いトレース・エントリ
が放棄される。値0は、トレース・エントリが保持され
ないことを示す。
【0303】ETRACEコマンドは、イベント信号を
スプール・ファイルに記録するために、選択されたトレ
ース・イベントのうちのどれがオペレーティング・シス
テム11の制御プログラム内の所定のイベント・ハンド
ラに送られるかを指定する。この制御プログラムは、I
BMコーポレイションから1990年6月に発行された
VM/ESA Diagnostics Guide for 370(IBM資料番号L
Y24−5242−00)と題する印刷物に記載されて
いる多くの標準機能を提供する。ETRACEコマンド
のフォーマットは以下の通りである。
【0304】ETRACE EVENTNAME ON
OR OFF、EVENTNAMEON OR OF
F ETC.トレース管理サービスの利用に関する段階
は、以下の通りである。
【0305】まず、適用業務プログラムがTRACEC
ONTROL呼出しを発行し、またはユーザがキーボー
ドを介して、どのトレース・イベントが構築され信号で
通知されるかを定義するITRACEコマンド、ならび
にラップ・サイズを入力する。次に、これらのトレース
・イベントが、CMSの処理における適当な時点で発生
し、CMSがシグナラとして機能して、イベント・デー
タを含むトレース・イベントを信号で通知する。トレー
ス・エントリのフォーマットは以下の通りである。
【0306】1.HEADER LENGTH−トレー
ス・ヘッダ情報の長さ。
【0307】2.USERID−トレース信号を発行す
る仮想機械のユーザ識別。
【0308】3.PROCESSID−その代りにこの
トレース・エントリが信号で通知されるプロセスの一義
的プロセス識別子。
【0309】4.TREADID−その代りにこのトレ
ース・エントリが信号で通知されるスレッドの一義的ス
レッド識別子。
【0310】5.TRACEID−トレース・エントリ
の特定のタイプ。
【0311】6.TIMESTAMP−トレース・エン
トリが信号で通知される時間(タイマ単位で)。
【0312】7.FORMAT ROUTINE−この
トレース・エントリをフォーマットするのに必要なルー
チンの識別子。
【0313】8.VARIABLE HEADER D
ATA−ヘッダに含まれるその他のデータ。
【0314】9.DATA LENGTH−実際のトレ
ース・データの長さ。
【0315】10.VARIABLE DATA−実際
のトレース・データ。
【0316】イベント・モニタがトレース・イベントに
関係がない限り、記憶されるトレース・イベント信号の
最大数はラップ・サイズに等しく、これらのトレース・
イベントはルース信号セット内に記憶される。次に、ユ
ーザ適用業務プログラムは、EventMonitor
Create機能を呼び出して、イベントに関心がある
イベント・モニタを確立する。EventMonito
rCreate呼出しは、イベント・モニタの関係を制
限する制限キーの指定を含むことができる。このシナリ
オでは、イベントに関心がある確立された第1のイベン
ト・モニタだけがルース信号セットの内容を受け取る。
別法として、先に指摘したように、ルース信号セットの
コピーを2つ以上のイベント・モニタに提供するため
に、2つ以上のイベント・モニタが作成される前にイベ
ントをオフに選択することもできる。次に、ユーザ適用
業務プログラムは、EventWaitまたはEven
tTrap機能を呼び出して、イベント・モニタが満足
されたとき現信号セットを得る。ユーザ適用業務プログ
ラムは、イベント・モニタが満足されたときその通知を
受け、EventRetrieve機能を呼び出して現
信号セットの内容を読み取り、次いでイベント・データ
を処理することができる。
【0317】前述のトレース管理サービス及び適用業務
プログラム・インターフェースは仮想機械環境に関する
ものであるが、それらは他の環境でも有用であることを
理解されたい。
【0318】図21及び図22は、多重タスク処理オペ
レーティング・システム内でどのプログラム・スレッド
が実行されたか(障害追求のため)、及び各スレッドに
関する実行時間を追跡するために、トレース管理サービ
ス及び適用業務プログラム・インターフェースを使用す
る例を示す流れ図である。図21は、この機能に関係す
る実際のトレース管理サービス及び適用業務プログラム
・インターフェースを示す。段階500で、オペレーテ
ィング・システムは、EventCreate機能40
の呼出しによって"Trace"という名前のイベントを
作成する。次に、ユーザ適用業務プログラムは、TRA
CECONTROL呼出しを発行し、その呼出し内のパ
ラメータとしてDispatchイベント・タイプを指
定する(段階506)。オペレーティング・システム
は、その呼出しからDispatchパラメータを読み
取り(段階508)、次いでDispatchイベント
を信号で通知するようディスパッチャに通知する(段階
510)。ディスパッチャは、CPU19によって実行
されるプログラム・スレッドを選択する機能である。
【0319】図22は、図21で参照されたディスパッ
チャの流れ図である。段階530で、ディスパッチャ
は、CPUから古いスレッドを除去し、新しいスレッド
の実行を開始する。トレース・イベント信号を伴うイベ
ント・データを提供するために、ディスパッチャは現時
間を読み取り(クロックは図示せず)(段階532)、
この現時間を、新スレッドが実行を開始し旧スレッドが
実行を停止した時間として記憶する(段階534)。次
にディスパッチャは、旧スレッドのCPU実行時間を、
現時間と以前に記憶された旧スレッドの開始時間との差
として計算する(段階536)。次に、ディスパッチャ
は、EventSignal機能を呼び出し、以下のイ
ベント・データ、すなわち旧スレッドID、旧スレッド
のCPU使用時間、及び新スレッドIDを提供する(段
階540)。
【図面の簡単な説明】
【図1】本発明によるイベント管理サービスを提供する
オペレーティング・システムの重要な構成要素、及び関
連する適用業務プログラムのスレッド及びハードウェア
を示すブロック・ダイアグラムである。
【図2】イベントが発生し、関心がある適用業務プログ
ラム・スレッドが待機モードでそのイベントの通知を受
けたときの、図1のオペレーティング・システムの動作
を示す流れ図である。
【図3】イベントが発生し、関心がある適用業務プログ
ラム・スレッドが待機モードでそのイベントの通知を受
けたときの、図1のオペレーティング・システムの動作
を示す流れ図である。
【図4】イベントが発生し、関心がある適用業務プログ
ラム・スレッドが待機モードでそのイベントの通知を受
けたときの、図1のオペレーティング・システムの動作
を示す流れ図である。
【図5】図1のオペレーティング・システムのEven
tDiscard機能を示す流れ図である。
【図6】図1のオペレーティング・システムのEven
tMonitorReset機能を示す流れ図である。
【図7】イベントが発生し、関心がある適用業務プログ
ラム・スレッドがテスト・モードでそのイベントの通知
を受けたときの、図1のオペレーティング・システムの
動作を示す流れ図である。
【図8】イベントが発生し、関心がある適用業務プログ
ラム・スレッドがトラップ・モードでそのイベントの通
知を受けたときの、図1のオペレーティング・システム
の動作を示す流れ図である。
【図9】イベントが発生し、関心がある適用業務プログ
ラム・スレッドがトラップ・モードでそのイベントの通
知を受けたときの、図1のオペレーティング・システム
の動作を示す流れ図である。
【図10】同じイベントに関心がある2つのイベント・
モニタに信号で通知する同報通信モードを示す流れ図で
ある。
【図11】同じイベントに関心がある2つのイベント・
モニタに信号で通知する伝搬モードを示す流れ図であ
る。
【図12】同じイベントに関心がある、図1のオペレー
ティング・システム内部の2つのイベント・モニタの連
鎖を示すブロック・ダイアグラムである。
【図13】異なるイベント・セットに関心がある、図1
のオペレーティング・システム内部の5つのイベント・
モニタの連鎖を示すブロック・ダイアグラムである。
【図14】図1のオペレーティング・システムのEve
ntDelete機能を示す流れ図である。
【図15】図1のオペレーティング・システムのEve
ntEnable機能を示す流れ図である。
【図16】図1のオペレーティング・システムのEve
ntMonitorEnable機能を示す流れ図であ
る。
【図17】図1のオペレーティング・システムのEve
ntSelect機能を示す流れ図である。
【図18】図1のオペレーティング・システムのEve
ntMonitorSelect機能を示す流れ図であ
る。
【図19】図1のオペレーティング・システムのEve
ntMonitorDelete機能を示す流れ図であ
る。
【図20】図1のオペレーティング・システムのEve
ntMonitorCreate機能を示す流れ図であ
る。
【図21】図1のオペレーティング・システムのトレー
ス管理サービスを示す流れ図である。
【図22】図1のオペレーティング・システムのトレー
ス管理サービスを示す流れ図である。
【符号の説明】
11 オペレーティング・システム 12 イベント・ディファイナ 13 イベント・ディファイナ 14 イベント・ハンドラ 15 イベント・シグナラ 16 イベント定義 17 イベント・モニタ・ディファイナ 18 イベント・シグナラ 19 中央演算処理装置(CPU) 21 コンピュータ・メモリ 26 イベント信号マネージャ 28 イベント・モニタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アン・マリー・シェパード アメリカ合衆国13760、ニューヨーク州エ ンドウェル、ワトソン・ブールバード 3606番地 (72)発明者 スティーブン・ソール・シュルツ アメリカ合衆国13760、ニューヨーク州エ ンディコット、バーナード・ブールバード 2016番地 (56)参考文献 特開 昭63−228335(JP,A) 特開 平2−230455(JP,A)

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】イベントを管理するためのコンピュータ・
    システムにおいて、 複数のプログラムまたはその部分があるイベントの通知
    を受け取ることができるシーケンスを定義する手段と、 シーケンス内の前記のプログラムまたは部分のうち第1
    のものにイベントの発生について通知する手段と、 イベント通知を前記シーケンス内の次のプログラムまた
    は部分に伝搬すべきか否かを示す指示を、前記プログラ
    ムまたは部分の第1のものから受け取る手段と、 前記の指示がイベント通知を伝搬することである場合
    に、イベント通知をシーケンス内の前記の次のプログラ
    ムまたは部分に伝搬する手段と、 前記の指示がイベント通知を伝搬しないことである場合
    に、シーケンス内の前記の次のプログラムまたは部分へ
    のイベント通知の伝搬をブロックする手段と を含むコンピュータ・システム。
  2. 【請求項2】さらに、イベントを定義するパラメータを
    受け取る手段を含み、前記パラメータの1つが、イベン
    ト通知を受け取るシーケンス内の各プログラムまたは部
    分による、イベント通知を伝搬するようにとの指示に従
    って、イベント通知が伝搬手段によってシーケンス内の
    次のプログラムまたは部分に順次伝搬できるかどうか、
    または、そのイベントに関係のあるすべてのプログラム
    またはその部分にイベント通知を同報通信すべきかどう
    かを指定する、請求項1に記載のコンピュータ・システ
    ム。
  3. 【請求項3】さらに、同報通信パラメータで定義される
    イベントの信号に応答して、関係のあるすべてのプログ
    ラムまたは部分にイベントの通知を同報通信する手段を
    含む、請求項2に記載のコンピュータ・システム。
  4. 【請求項4】シーケンス中の先行するプログラムまたは
    その部分によりイベントの通知を伝搬して良いとの指示
    を受けることにより、それぞれのプログラムまたはその
    部分のためにイベントの通知を受け取って、それぞれの
    プログラムまたはその部分による要求があるときイベン
    トの通知をそれぞれのプログラムまたはその部分に渡す
    イベント・モニタを複数個生成するオペレーティング・
    システムと、 イベントの発生を検知してこれをシーケンスの第1のイ
    ベント・モニタに知らせる検知手段と、 を含む請求項1に記載のコンピュータ・システム。
  5. 【請求項5】前記シーケンスを定義する手段が、連鎖の
    中で各イベント・モニタの位置が前記シーケンス中のイ
    ベント・モニタの位置を示し且つこれにより前記シーケ
    ンス中のそれぞれのプログラムまたはその部分の位置を
    示すようにイベント・モニタを連鎖するものである、請
    求項4に記載のコンピュータ・システム。
  6. 【請求項6】前記イベント・モニタのシーケンスが、イ
    ベントの通知を前記プログラムまたはその部分が受け取
    る順番をなし、 前記伝搬する手段が、前記シーケンス中のプログラムま
    たはその部分によりイベントを伝搬させて良いとの指示
    を受けたときイベントの通知を前記シーケンス中のイベ
    ント・モニタの第1のものから次のイベント・モニタに
    伝搬させる、 ことを特徴とする請求項4に記載のコンピュータ・シス
    テム。
  7. 【請求項7】異なるタイプのイベントの定義を受け取っ
    てこれを記憶する手段であって、各定義がイベントの処
    理中における前記イベントのシグナラの動作モードを指
    定し、前記動作モードには、イベントが処理されるまで
    イベント・シグナラが処理を中断する同期モードと、イ
    ベントの処理中にイベント・シグナラが処理を継続する
    非同期モードとが含まれる、手段と、 前記イベント・シグナラおよび前記記憶する手段に結合
    され、前記イベントのイベント信号を受信し、各イベン
    トのイベント・シグナラに、イベント定義に従って同期
    的に進めるのかそれとも非同期的に進めるのかを通知す
    るためのイベント・マネージャ手段と を含むコンピュータ・システム。
  8. 【請求項8】前記イベント・マネージャ手段に結合さ
    れ、前記コンピュータ内部で実行される適用業務プログ
    ラム内に常駐し、前記イベントの通知を受取り済みで前
    記イベントを処理中または処理済みのイベント・ハンド
    ラから、前記イベント・シグナラが他の処理を続行でき
    るかどうかの通知を受け取る手段を含み、 前記イベント・マネージャ手段が、前記イベント・シグ
    ナラに、前記イベント・シグナラまたは関連プロセスが
    中断されている場合、前記イベント・ハンドラからの前
    記通知に基づいて他の処理を続行するかどうかを通知す
    ることを特徴とする、 請求項7に記載のコンピュータ・システム。
  9. 【請求項9】対応するイベント定義に関連するイベント
    信号を記憶する手段を含み、 前記イベント・マネージャが、何らかの適用業務プログ
    ラムがイベントの通知を要求する前に、記憶手段へのイ
    ベント信号の記憶を制御することを特徴とする、 請求項7に記載のコンピュータ・システム。
  10. 【請求項10】何らかの適用業務プログラムがイベント
    の通知を要求する前に、対応するイベント定義に関連す
    る記憶手段に記憶されうるイベント信号の最大数を示す
    限界を前記イベント定義の各々が含み、前記イベント信
    号は前記限界に従って記憶されることを特徴とする請求
    項9に記載のコンピュータ・システム。
  11. 【請求項11】イベント・モニタについての定義を受け
    取る手段であって、該定義が、イベント・モニタにより
    通知を要求される複数のタイプのイベント、および該イ
    ベント・モニタに関連するプログラムに通知させる前記
    タイプのイベントの発生回数について1より大なる数値
    を指定する如きものと、 前記受取り手段に結合され、前記定義に従って前記イベ
    ント・モニタを確立する手段であって、複数のタイプの
    イベントの発生の通知を要求し、かつ複数のタイプのイ
    ベントの発生について前記個数の信号を受け取ったとき
    関連するプログラムに通知するイベント・モニタを確立
    する、イベント・モニタ確立手段と、 前記イベント・モニタに論理的に結合され、前記イベン
    ト・モニタが通知を要求している前記複数のタイプのイ
    ベントを含む種々のタイプのイベントの発生についての
    信号を受け取り、前記イベント・モニタが通知を要求し
    ている前記複数のタイプのイベントの発生についての信
    号を前記イベント・モニタに転送する、イベント・マネ
    ージャ手段と を含み、 前記イベント・モニタは、前記複数のタイプのイベント
    の発生について指定された個数の信号を受け取ったと
    き、該イベント・モニタに関連するプログラムに通知す
    る手段を含むことを特徴とするコンピュータ・システ
    ム。
  12. 【請求項12】イベント・モニタについての定義を受け
    取る手段であって、該定義が、イベント・モニタにより
    通知を要求される複数のタイプのイベント、および該イ
    ベント・モニタに関連するプログラムに通知すべき前記
    タイプのイベントの発生回数について1より大なる数値
    を指定する如きものと、 前記受取り手段に結合され、前記定義に従って前記イベ
    ント・モニタを確立する手段であって、複数のタイプの
    イベントの発生の通知を要求し、かつ複数のタイプのイ
    ベントの発生について前記指定された個数の信号を受け
    取ったとき関連するプログラムに通知するイベント・モ
    ニタを確立する、イベント・モニタ確立手段と、 前記イベント・モニタが通知を要求している前記複数の
    タイプのイベントを含む種々のタイプのイベントの発生
    についての信号を受け取り、前記イベント・モニタが通
    知を要求している前記複数のタイプのイベントの発生に
    ついての信号を前記イベント・モニタに転送する、イベ
    ント・マネージャ手段と を含み、 前記イベント・モニタは、前記複数のタイプのイベント
    の発生について指定された個数の通知を受け取ったと
    き、該イベント・モニタに関連するプログラムに通知し
    該プログラムにイベント・モニタが通知を受けたイベン
    ト信号を与える手段を含むことを特徴とするコンピュー
    タ・システム。
JP4199422A 1991-08-12 1992-07-27 コンピュータ・システム Expired - Lifetime JPH0799502B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/744,850 US5305454A (en) 1991-08-12 1991-08-12 Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US744850 1996-11-07

Publications (2)

Publication Number Publication Date
JPH05197568A JPH05197568A (ja) 1993-08-06
JPH0799502B2 true JPH0799502B2 (ja) 1995-10-25

Family

ID=24994211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4199422A Expired - Lifetime JPH0799502B2 (ja) 1991-08-12 1992-07-27 コンピュータ・システム

Country Status (3)

Country Link
US (2) US5305454A (ja)
EP (1) EP0528222A3 (ja)
JP (1) JPH0799502B2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3002302B2 (ja) * 1991-07-25 2000-01-24 キヤノン株式会社 データ処理装置
US5752034A (en) * 1993-01-15 1998-05-12 Texas Instruments Incorporated Apparatus and method for providing an event detection notification service via an in-line wrapper sentry for a programming language
US5430875A (en) * 1993-03-31 1995-07-04 Kaleida Labs, Inc. Program notification after event qualification via logical operators
US6035343A (en) * 1993-06-11 2000-03-07 Fujitsu Limited Method for executing software formed of software components and a system for executing such software
DE69426751T2 (de) * 1993-12-06 2001-09-06 Canon Kk Benutzerdefinierbares interaktives System
US6708226B2 (en) 1994-02-28 2004-03-16 At&T Wireless Services, Inc. Multithreaded batch processing system
US7412707B2 (en) * 1994-02-28 2008-08-12 Peters Michael S No-reset option in a batch billing system
US6658488B2 (en) 1994-02-28 2003-12-02 Teleflex Information Systems, Inc. No-reset option in a batch billing system
AU727444B2 (en) * 1994-02-28 2000-12-14 Telefonaktiebolaget Lm Ericsson (Publ) Tracing with keys and locks
US5999916A (en) 1994-02-28 1999-12-07 Teleflex Information Systems, Inc. No-reset option in a batch billing system
US5668993A (en) * 1994-02-28 1997-09-16 Teleflex Information Systems, Inc. Multithreaded batch processing system
US5471526A (en) * 1994-02-28 1995-11-28 Telefonaktiebolaget L M Ericsson (Publ.) Tracing with keys and locks on a telecommunication network
US5754855A (en) * 1994-04-21 1998-05-19 International Business Machines Corporation System and method for managing control flow of computer programs executing in a computer system
US5566337A (en) * 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system
FR2723226B1 (fr) * 1994-07-29 1996-09-20 Bull Sa Procede de detection des sequences d'echecs dans un systeme de reconnaissance de situations
US6366966B1 (en) 1994-12-13 2002-04-02 Microsoft Corporation Method and system for automatically running a program
WO1996020448A1 (en) 1994-12-23 1996-07-04 Southwestern Bell Technology Resources, Inc. Flexible network platform and call processing system
KR100221374B1 (ko) * 1995-01-19 1999-09-15 포만 제프리 엘 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
SE504072C2 (sv) * 1995-02-08 1996-11-04 Ericsson Telefon Ab L M Anordning och förfarande vid kommunikationshantering och ett telekommunikationssystem med en hanterande anordning
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
GB2309103A (en) * 1996-01-09 1997-07-16 Nokia Mobile Phones Ltd Processing events
US5828882A (en) * 1996-03-15 1998-10-27 Novell, Inc. Event notification facility
US5878258A (en) * 1996-05-06 1999-03-02 Merrill Lynch, Pierce, Fenner & Smith Seamless application interface manager
US5878382A (en) * 1996-06-20 1999-03-02 International Business Machines Corporation Method and apparatus for timing and monitoring inactivity periods
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US6226665B1 (en) * 1996-09-19 2001-05-01 Microsoft Corporation Application execution environment for a small device with partial program loading by a resident operating system
WO1998037497A1 (fr) * 1997-02-19 1998-08-27 Japan System Supply Ltd. Processeur d'informations relatives a un espace virtuel
AU9468298A (en) * 1997-10-06 1999-04-27 Telefonaktiebolaget Lm Ericsson (Publ) Event distributor
US5999963A (en) * 1997-11-07 1999-12-07 Lucent Technologies, Inc. Move-to-rear list scheduling
US6658486B2 (en) * 1998-02-25 2003-12-02 Hewlett-Packard Development Company, L.P. System and method for efficiently blocking event signals associated with an operating system
US6094681A (en) * 1998-03-31 2000-07-25 Siemens Information And Communication Networks, Inc. Apparatus and method for automated event notification
US6292841B1 (en) * 1998-04-29 2001-09-18 Xerox Corporation Machine control using a ReferenceClock construct
US6347330B1 (en) 1998-09-04 2002-02-12 International Business Machines Corporation Dynamic selective distribution of events to server receivers
WO2000028397A2 (en) * 1998-11-10 2000-05-18 Farrow Robert C An intrinsically parallel programming system and method using procedural objects
US6363503B1 (en) * 1998-11-24 2002-03-26 Autodesk, Inc. Error handling and representation in a computer-aided design environment
BR9916597A (pt) * 1998-12-31 2002-06-04 Computer Ass Think Inc Método e aparelho para uma estrutura de eventos extensìvel a um usuário
US7086035B1 (en) * 1999-05-13 2006-08-01 International Business Machines Corporation Method and system for counting non-speculative events in a speculative processor
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US20010032126A1 (en) * 1999-12-17 2001-10-18 Macartney-Filgate Bruce C. System and method for tracking web campaign effectiveness
US7069507B1 (en) * 2000-09-29 2006-06-27 Microsoft Corporation Event routing model for an extensible editor
US7043566B1 (en) * 2000-10-11 2006-05-09 Microsoft Corporation Entity event logging
US6748454B1 (en) * 2001-06-18 2004-06-08 Computer Associates Think, Inc. Method and apparatus for a user extensible event structure
US7177925B2 (en) * 2002-09-27 2007-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Event management system
US7552445B2 (en) * 2002-12-13 2009-06-23 Savvis Communications Corporation Systems and methods for monitoring events from multiple brokers
US20040122892A1 (en) * 2002-12-24 2004-06-24 Brittenham Peter J. Method, apparatus, and computer-program product for event service declaration, registration, and notification
US20050166177A1 (en) * 2004-01-27 2005-07-28 Ylian Saint-Hilaire Thread module chaining
US7406696B2 (en) * 2004-02-24 2008-07-29 Dialogic Corporation System and method for providing user input information to multiple independent, concurrent applications
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7434230B2 (en) * 2004-12-02 2008-10-07 International Business Machines Corporation Method and system for time bounding notification delivery in an event driven system
US7493306B2 (en) * 2005-05-19 2009-02-17 International Business Machines Corporation Tracking premature termination of a database query
US7848928B2 (en) * 2005-08-10 2010-12-07 Nuance Communications, Inc. Overriding default speech processing behavior using a default focus receiver
US20070136658A1 (en) * 2005-11-29 2007-06-14 International Business Machines Corporation Handling events in a descriptive context
WO2007123753A2 (en) * 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US7921075B2 (en) * 2006-09-29 2011-04-05 International Business Machines Corporation Generic sequencing service for business integration
US9274857B2 (en) * 2006-10-13 2016-03-01 International Business Machines Corporation Method and system for detecting work completion in loosely coupled components
US9514201B2 (en) * 2006-10-13 2016-12-06 International Business Machines Corporation Method and system for non-intrusive event sequencing
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
US7752370B2 (en) * 2007-04-12 2010-07-06 International Business Machines Corporation Splitting one hardware interrupt to multiple handlers
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
JP2011524144A (ja) * 2008-06-10 2011-08-25 トムソン ライセンシング ネットワークモニタリングシステムにおけるメッセージフィルタリング
WO2009155483A1 (en) 2008-06-20 2009-12-23 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US9418005B2 (en) 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing system
US20100017583A1 (en) * 2008-07-15 2010-01-21 International Business Machines Corporation Call Stack Sampling for a Multi-Processor System
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US20100333071A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines
US20110072442A1 (en) 2009-09-22 2011-03-24 International Business Machines Corporation Event-handler for selecting responsive actions
US9401813B2 (en) * 2009-12-29 2016-07-26 Iheartmedia Management Services, Inc. Media stream monitor
US9176783B2 (en) 2010-05-24 2015-11-03 International Business Machines Corporation Idle transitions sampling with execution context
US8843684B2 (en) 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8661089B2 (en) 2010-12-08 2014-02-25 International Business Machines Corporation VIOS cluster alert framework
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
US9003323B2 (en) * 2011-05-19 2015-04-07 International Business Machines Corporation Method for management and broadcasting an event context
US9043807B2 (en) * 2012-07-30 2015-05-26 Chegg, Inc. Application gateway in a browser based environment
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4034353A (en) * 1975-09-15 1977-07-05 Burroughs Corporation Computer system performance indicator
US4166290A (en) * 1978-05-10 1979-08-28 Tesdata Systems Corporation Computer monitoring system
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
US4395758A (en) * 1979-12-10 1983-07-26 Digital Equipment Corporation Accelerator processor for a data processing system
US4333144A (en) * 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4367525A (en) * 1980-06-06 1983-01-04 Tesdata Systems Corporation CPU Channel monitoring system
US4429363A (en) * 1981-10-15 1984-01-31 International Business Machines Corporation Method and apparatus for managing data movements from a backing store to a caching buffer store
US4462077A (en) * 1982-06-24 1984-07-24 Bell Telephone Laboratories, Incorporated Trace facility for use in multiprocessing environment
US4503499A (en) * 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
US4514846A (en) * 1982-09-21 1985-04-30 Xerox Corporation Control fault detection for machine recovery and diagnostics prior to malfunction
US4636940A (en) * 1983-03-31 1987-01-13 Hewlett-Packard Company Logic analyzer using source program or other user defined symbols in the trace specification and the trace listing
US4598364A (en) * 1983-06-29 1986-07-01 International Business Machines Corporation Efficient trace method adaptable to multiprocessors
US4595980A (en) * 1983-07-27 1986-06-17 International Business Machines Corp. Interactive data processing system having concurrent multi-lingual inputs
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
US4748556A (en) * 1985-05-28 1988-05-31 Tektronix, Inc. Variable tracking word recognizer for detecting the occurrence of a dynamic-variable address
US4835733A (en) * 1985-09-30 1989-05-30 Sgs-Thomson Microelectronics, Inc. Programmable access memory
US4779194A (en) * 1985-10-15 1988-10-18 Unisys Corporation Event allocation mechanism for a large data processing system
US4796178A (en) * 1985-10-15 1989-01-03 Unisys Corporation Special purpose processor for off-loading many operating system functions in a large data processing system
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
US4916608A (en) * 1986-05-30 1990-04-10 International Business Machines Corporation Provision of virtual storage resources to an operating system control program
US4821178A (en) * 1986-08-15 1989-04-11 International Business Machines Corporation Internal performance monitoring by event sampling
GB2197506A (en) * 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
JPS63228335A (ja) * 1987-03-18 1988-09-22 Fujitsu Ltd 計算機システムにおける事象通知・受取処理方式
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
DE3855029T2 (de) * 1987-06-12 1996-09-05 Bmc Software Inc Supervisorverfahren für ein Rechnerbetriebssystem
US4833629A (en) * 1987-07-14 1989-05-23 The Johns Hopkins University Apparatus for categorizing and accumulating events
US4855936A (en) * 1987-09-25 1989-08-08 International Business Machines Corp. Full-screen input/output application program interface
JP2635058B2 (ja) * 1987-11-11 1997-07-30 株式会社日立製作所 アドレス変換方式
US4918653A (en) * 1988-01-28 1990-04-17 International Business Machines Corporation Trusted path mechanism for an operating system
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
JPH07104842B2 (ja) * 1989-03-03 1995-11-13 日本電気株式会社 外部記憶装置の割込み制御方式
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system

Also Published As

Publication number Publication date
US5305454A (en) 1994-04-19
US5530868A (en) 1996-06-25
JPH05197568A (ja) 1993-08-06
EP0528222A3 (en) 1993-09-29
EP0528222A2 (en) 1993-02-24

Similar Documents

Publication Publication Date Title
JPH0799502B2 (ja) コンピュータ・システム
US5237684A (en) Customized and versatile event monitor within event management services of a computer system
US5355484A (en) Dynamically established event monitors in event management services of a computer system
US5625821A (en) Asynchronous or synchronous operation of event signaller by event management services in a computer system
US6105098A (en) Method for managing shared resources
US5109515A (en) User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services
US7047521B2 (en) Dynamic instrumentation event trace system and methods
US6470398B1 (en) Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment
US4635187A (en) Control for a multiprocessing system program process
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
EP0536073A2 (en) Method and process for interprocess communication using named pipes
US6295602B1 (en) Event-driven serialization of access to shared resources
US5664090A (en) Processor system and method for maintaining internal state consistency between active and stand-by modules
JP2000259585A (ja) システムアプリケーション管理方式とその管理方式を実行するためのプログラムを記録した記録媒体
CN113342554B (zh) Io多路复用方法、介质、设备和操作系统
JP2677249B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ
JPH0588933A (ja) デバツグ機能を有する並列処理システム
JPH0219494B2 (ja)
JP2002312302A (ja) 周辺装置
JPH09282291A (ja) 共通記憶装置のロックフラグ解除方式および方法
JPH0496830A (ja) 分散処理システムにおけるデータ管理方法
JP3096760B2 (ja) 共通データ参照設定装置及び参照設定方法
JPH04287233A (ja) 事象処理制御方法
JP2904243B2 (ja) ネットワーク管理システムにおける排他制御方式
JPH11184712A (ja) 情報処理装置