JPH05197568A - コンピュータ・システムおよびイベント管理方法 - Google Patents

コンピュータ・システムおよびイベント管理方法

Info

Publication number
JPH05197568A
JPH05197568A JP4199422A JP19942292A JPH05197568A JP H05197568 A JPH05197568 A JP H05197568A JP 4199422 A JP4199422 A JP 4199422A JP 19942292 A JP19942292 A JP 19942292A JP H05197568 A JPH05197568 A JP H05197568A
Authority
JP
Japan
Prior art keywords
event
monitor
signal
definition
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.)
Granted
Application number
JP4199422A
Other languages
English (en)
Other versions
JPH0799502B2 (ja
Inventor
Stephen E Record
スティーヴン・エリオット・リコード
Ann Marie Shepherd
アン・マリー・シェパード
Steven S Shultz
スティーブン・ソール・シュルツ
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

Landscapes

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

Abstract

(57)【要約】 【目的】 特定のニーズに合わせて調整可能なイベント
管理サービスの提供。 【構成】 コンピュータ・オペレーティング・システム
が、当該のプログラム内の複数のイベント・ハンドラに
とって関係のあるイベントを管理する。イベント通知
が、シーケンス内のイベント・ハンドラからイベント・
ハンドラへと伝搬されるが、シーケンス内の通知を受け
取るどのイベント・ハンドラもイベント通知の以後の伝
搬をブロックすることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にコンピュータの
オペレーティング・システムに関し、より具体的にはコ
ンピュータ・オペレーティング・システム内部のイベン
ト管理サービスに関する。
【0002】
【従来の技術】コンピュータ・システムを操作するプロ
セスでは、多くのタイプのイベント、たとえばキーボー
ド上の実行(機能)キーの押下、ディスクからメモリへ
のデータのロード、重大なエラーや追跡イベントの発生
などが起こる可能性がある。データは、実行キーの前に
押された文字キーや、ロードされたディスクの名前など
のイベントに関連していることがある。既知のオペレー
ティング・システムは、次のようにイベントを管理す
る。すなわち、イベントが発生したとき、オペレーティ
ング・システムは、そのイベントに関係のある、オペレ
ーティング・システム内で実行中の1つまたは複数の適
用業務プログラムにその旨を通知し、関連するイベント
・データがあればそれを供給する。通知後、適用業務プ
ログラムは、イベントの通知に応答して、そのイベント
・データを処理しまたは他の処置を取ることができる。
【0003】従来技術のIBMシステム/38オペレー
ティング・システムは、次のようにしてイベントを管理
する。各イベントは、クラス、タイプ及びサブタイプか
らなる所定の1組の数字名のうちの1つの名前を使用し
て定義される。このオペレーティング・システムは、共
通のハードウェア及びソフトウェア・イベントを表すた
めに、これらの所定の名前のいくつかを予約し、他の名
前は、他のイベントを識別するために適用業務プログラ
ムが使用できる。また適用業務プログラムは、定義され
たイベントの通知を受け取るようにイベント・モニタを
動的に定義することができる。イベントが発生したと
き、オペレーティング・システム、またはそのイベント
を検出した適用業務は、EventSignal機能を
呼び出してから、その他の処理を続ける。EventS
ignal機能は、そのイベントに関係のある1つまた
は複数のイベント・モニタ、すなわちイベント定義中に
見られるのと同じクラス、タイプ、及びサブタイプ識別
情報を有するイベントを指名するすべてのイベント・モ
ニタに通知する。総称的なタイプまたはサブタイプ指定
も可能である。関係のあるイベント・モニタが複数ある
場合、EventSignal機能は、同報通信モード
で、すなわち実質的に同時に、これら関係のあるイベン
ト・モニタに通知する。つぎに、イベント・モニタは、
そのイベントに関係のある適用業務プログラムの当該の
各イベント処理サブルーチンに、そのイベント通知に作
用し、またはイベント・データを処理し、あるいはその
両方を行うよう通知する。
【0004】イベント・ハンドラは、イベントの発生に
対して同期的にまたは非同期的に動作する。非同期「ト
ラップ」モードでは、イベント・ハンドラはイベントの
通知を要求するが、イベントがまだ発生していない場合
に、イベントが発生するのを待って遊休状態に留まるこ
とはない。イベントが発生し、当該のイベント・モニタ
が通知を受けたとき、そのイベント・モニタは、割込み
信号とそれに続いてイベント・データを送ることによっ
て、イベント・ハンドラに通知する。同期「テスト」モ
ードでは、イベント・ハンドラは、イベントが発生した
かどうかをイベント・モニタに周期的に照会し、発生し
た場合、そのイベントに応答し、またはイベント・デー
タを処理し、あるいはその両方を行う。イベントが発生
していない場合、イベント・ハンドラは他の作業を実行
する。同期「トラップ」モードでは、イベント・ハンド
ラはイベント通知及びイベント・データを一回要求し、
イベントが発生するまでスリープ・モードで待ち、イベ
ント通知によって覚醒する。システム/38オペレーテ
ィング・システムはまた、イベント・モニタの動的イネ
ーブリング及びディスエーブリングをサポートする。デ
ィスエーブルされたイベント・モニタは、対応するイベ
ント・ハンドラにイベントを通知しない。また、システ
ム/38オペレーティング・システムでは、イベント信
号を受け取らないようにイベント・ハンドラをマスクす
ることができる。
【0005】プログラム追跡イベントなどあるタイプの
イベントは周期的に発生する。システム/38オペレー
ティング・システムでは、関係のあるイベント・モニタ
に結合された保持すべきイベント及び関連するイベント
・データの最大数を指定することができ、または関係の
あるイベント・モニタがディスエーブルされている間、
これらのイベント及び関連イベント・データを無制限に
保持すると指定することができる。前者の場合、イベン
ト及び関連イベント・データの最大数を超えたとき、最
大水準を超える以後の新しいイベント及び関連するイベ
ント・データが放棄される。
【0006】システム/38オペレーティング・システ
ムでは、イベントを管理する際にかなりの量の制御及び
効率がもたらされ、関連する適用業務プログラムがイベ
ント管理サービスの定義に参加することが可能である
が、コンピュータ・システム及び関連する適用業務プロ
グラムの具体的要件に応じてオペレーティング・システ
ムがより効率的かつ包括的にイベントを管理できるよう
にするために、一層の改良が望まれる。
【0007】
【発明が解決しようとする課題】したがって、本発明の
全般的目的は、効率的かつ包括的にイベントを管理し、
関連する適用業務プログラム、及びコンピュータ・シス
テムの他の部分が、イベント管理サービスをそれらの特
定のニーズに合わせて調整することを可能にする、イベ
ント管理サービスを提供することである。
【0008】本発明の別の目的は、関連するイベント・
シグナラ、イベント・デファイナまたはイベント・ハン
ドラあるいはそれらのいくつかが効率的かつ最適の形で
動作できるようにする、前記のタイプのイベント管理サ
ービスを提供することである。
【0009】
【課題を解決するための手段】本発明は、当該の各プロ
グラム内の複数のイベント・ハンドラにとって関係のあ
るイベントを管理する、コンピュータ・オペレーティン
グ・システムに関する。これらのイベント・ハンドラ
は、イベントの発生の順次通知を受け取るためにシーケ
ンスとして配列されている。イベントが発生したとき、
このシーケンス内の第1のイベント・ハンドラが通知を
受け、次いでそのイベントを処理する。次に、第1のイ
ベント・ハンドラは、シーケンス内の第2イベント・ハ
ンドラにそのイベントについて通知すべきかどうかを決
定する。イエスの場合、シーケンス内の第2のイベント
・ハンドラがイベント通知を受け取り、イベントを処理
し、次いでシーケンス内の第3のイベント・ハンドラに
通知すべきかどうかを決定する。このようにして、イベ
ント通知が、シーケンス内のイベント・ハンドラからイ
ベント・ハンドラへと伝搬できるが、シーケンス内の通
知を受け取るどのイベント・ハンドラも、イベント通知
の以後の伝搬をブロックすることができる。この技法
は、シーケンス内の(第1イベント・ハンドラより後
の)いくつかのまたはすべてのイベント・ハンドラがイ
ベント通知から利益を受けない場合に、処理時間を節約
する。このような場合、イベント通知はそれらのイベン
ト・ハンドラに伝搬されない。たとえば、第1イベント
・ハンドラの機能が障害の重大性を分析することであ
り、第2イベント・ハンドラの機能がその障害から回復
することであり、その障害が回復不可能なほど重大であ
る場合、第1イベント・ハンドラは第2イベント・ハン
ドラへの通知を許すべきではない。そうしても、単にプ
ロセッサ時間を浪費するだけである。
【0010】本発明によれば、オペレーティング・シス
テムは、すべてがそのイベントに関係する複数のイベン
ト・ハンドラに通知するモード、前記の伝搬モード、ま
たは関係のあるすべてのイベント・ハンドラが同時にま
たは少なくとも偶然でなしにイベント通知を受け取る同
報通信モードを選択することが可能である。プログラム
は、イベントの定義に関する対応するパラメータを供給
することによって、関係のあるイベント・ハンドラに通
知するモードを指定する。イベントが発生したとき、オ
ペレーティング・システム内のイベント・マネージャ
が、イベント定義を読み取って、関係のあるイベント・
ハンドラに通知するモードを決定する。プログラムは、
同じタイプまたは異なるタイプのイベントの組合せに対
する関係を指定することができ、伝搬モードが選択され
た場合、イベントの通知を受け取るシーケンス内の各イ
ベント・ハンドラが、関係のあるいくつかのイベント信
号を伝搬するか、または全く伝搬しないかを決定するこ
とができる。
【0011】本発明によれば、また、適用業務プログラ
ム、またはオペレーティング・システムの別の部分が、
イベントを定義する。各イベント定義は、イベントの発
生に対する若干のオペレーティング・システムを制御す
る、そのイベントの1つまたは複数の属性を含んでい
る。定義されたイベントの発生後、適用業務プログラ
ム、またはオペレーティング・システムの別の部分がイ
ベント・マネージャにその旨を通知する。イベント・マ
ネージャは対応するイベント定義を読み取って、そのイ
ベントのシグナラまたはイベント・シグナラに関連する
プロセスの動作モードを決定する。動作モードには、イ
ベントが処理されるまでイベント・シグナラまたは関連
プロセスが処理を中断する同期モードと、イベントの処
理中にイベント・シグナラまたは関連プロセスが処理を
継続できる非同期モードとが含まれる。イベント定義を
読み取った後、イベント・マネージャは、同期的に進め
るのかそれとも非同期的に進めるのかをイベント・シグ
ナラに知らせる。イベント処理後、中断されていたイベ
ント・シグナラが再開される。同期モードは、イベント
・ハンドラが「出口ルーチン」であるとき、特に有用で
ある。
【0012】さらに、イベント定義は、現在そのイベン
トに関係のあるプログラムがないときに記憶されるいく
つかのイベント信号指定など他の属性を含み、イベント
定義がオペレーティング・システムの動作中を通じて動
的に受取りまたは更新できる。
【0013】本発明によれば、また、適用業務プログラ
ム、またはオペレーティング・システムの別の部分が、
1つまたは複数のタイプのイベントを監視するイベント
・モニタを定義する。この定義は、イベント・モニタを
満足するために必要な上記1つまたは複数のタイプのイ
ベントの発生の組合せをも指定する。監視される各イベ
ントが発生するとき、イベント・モニタは、信号を受
け、イベント信号を記憶する。イベント・モニタは、そ
のイベント・モニタを満足する信号を記憶した時、(イ
ベント・ハンドラによる同時または事後の照会に従っ
て)イベント・ハンドラにその旨を通知することができ
る。その後、イベント・ハンドラは記憶されたイベント
信号にアクセスすることができる。
【0014】本発明によれば、また、適用業務プログラ
ム、またはオペレーティング・システムの別の部分が、
それに代わって1つまたは複数のタイプのイベントを監
視するイベント・モニタを定義する。監視される各イベ
ントが発生した時、イベント・モニタは信号を受け取
り、イベント信号を記憶する。一定の条件の下で、イベ
ント・モニタはイベント・ハンドラに通知することがで
き、イベント・ハンドラは記憶されたイベント信号にア
クセスすることができる。イベント・モニタは、動的
に、すなわちコンピュータの動作中を通してコンピュー
タ・システムを停止または再結合することなく、定義し
確立することができる。あるイベントに関係のあるイベ
ント・モニタがない場合でも、そのイベントの信号が記
憶される。関係のあるイベント・モニタが後で確立され
た時、以前に記憶されたイベント信号が関係のあるイベ
ント・モニタに転送される。従って、イベント・ハンド
ラは以前のイベント信号の利益を享受できる。
【0015】イベントはトレース・イベントであってよ
く、各イベント・モニタに関連するイベント・ハンドラ
は、トレース・イベントを実時間で受け取り処理するこ
とができる。
【0016】
【実施例】これから図面を詳細に参照するが、図面全体
を通して同じ参照番号は同じ要素を指す。図1は、本発
明による多重タスク処理オペレーティング・システム1
1のイベント管理サービス部分を示す。このオペレーテ
ィング・システム11は、磁気ディスクやテープなどの
コンピュータ可読媒体上に実行可能な形でプログラミン
グされ、コンピュータ・メモリ21にロードされ、CP
U19上で実行されることが好ましい。ただし、オペレ
ーティング・システム11またはその一部分を、同等の
ハードウェアで実施することも可能である。
【0017】オペレーティング・システム11及び関連
する適用業務プログラムは、以下で詳細に述べる多くの
機能を提供する。これらの機能は、以下のカテゴリのグ
ループ分けすることができる。イベント定義、イベント
信号通知、イベント・モニタ作成、イベント監視、イベ
ント・モニタ処理及びイベント処理。
【0018】イベント定義は、イベントを識別するため
のイベント名と、イベントに関するいくつかのオペレー
ティング・システム応答を制御するためのイベント属性
とを含む。オペレーティング・システムは定義されたイ
ベントだけを認識する。
【0019】オペレーティング・システムまたは適用業
務プログラムは、イベントの発生を通信するためにイベ
ントを信号で通知する。イベント信号は、イベントを信
号で通知するプロセスと常に関連する。イベントは、そ
の信号がこのプロセスの内部でだけ認識されるように、
またはこのプロセスを含むセッション全体を通して認識
されるように定義することができる。イベント信号は、
イベントに関連するデータ、及びイベントの特定の発生
を指定するキー、またはイベント・データのソースなど
イベント・データのタイプのサブセットを含むことがで
きる。
【0020】適用業務プログラム、またはオペレーティ
ング・システム11内部の他の機能が、イベントの通知
及びイベント・データ(もしあれば)を受け取ることに
関与する場合、適用業務プログラムまたは他のオペレー
ティング・システム機能が、イベント・モニタを定義す
る。この定義は、イベント・モニタに関係のある、1つ
のイベント、または同じタイプもしくは異なるタイプの
イベントの組合せを指定する。本明細書で詳細に記述す
る本発明の実施例では、イベント・モニタを満足させる
ために同じタイプのイベントが2回以上発生する必要が
ある場合、イベント・タイプはイベント・モニタ定義中
で2回以上リストされる。(別法として、各イベント・
タイプをイベント・モニタ定義中で1回だけリストし、
イベント・モニタを満足させるために必要なタイプのイ
ベントの最低数を示すカウントを各イベント・タイプご
とに提供することもできる。)また、この定義で、イベ
ント・モニタに関係のあるイベント発生を制限するため
の、各イベント名付きのキーを指定することもできる。
イベント・モニタは、同じプロセス内の他のプログラム
・スレッドによって提供されるイベント信号、またはセ
ッション範囲によって定義されるイベントの信号を監視
することができる。またイベント・モニタ定義は、イベ
ント・モニタを「満足させる」ために必要な異なるイベ
ント信号の数または「カウント」、すなわち少なくとも
1回起こったはずの指定されたイベントの数を指定す
る。イベント・モニタが満足されたときだけ、イベント
・モニタは関連するイベント・ハンドラに記憶されたイ
ベント信号へのアクセスを許す。このようなアクセスを
提供するために、イベント・ハンドラはイベント・モニ
タに要求を行い、イベント・モニタが満足された場合、
イベント・モニタはイベント・ハンドラにイベント・モ
ニタが満足されたこと、及び記憶されたイベント信号の
位置を通知する。この要求は、EventTrap、E
ventWait、またはEventTest呼出しの
形をとることができる。イベント・モニタが満足された
という通知を受け取った後、イベント・ハンドラはイベ
ント・データを取り出し処理することができる。イベン
ト・データを解釈するこの方式は、イベント・シグナラ
とイベント・ハンドラの間の専用プロトコルに基づいて
おり、各名前付きイベントごとに別々に確立される。オ
ペレーティング・システム11内部のイベント管理サー
ビスは、イベント通知及びイベント・データをイベント
・ハンドラに渡すためのチャネルを提供する。イベント
・ハンドラがイベント・データを取り出し処理した後、
イベント・モニタをリセットしてからでないと、イベン
ト・ハンドラは新しいイベント信号を取り出して処理す
ることができない。
【0021】オペレーティング・システム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の内部にあってもよく、
あるいはイベント・デファイナがオペレーティング・シ
ステム内部にあり、イベント・シグナラが適用業務プロ
グラムとしてオペレーティング・システムの外部にあっ
てもよい。
【0022】次にオペレーティング・システム11及び
関連する適用業務プログラム・スレッドの動作の高水準
の説明を行う。イベント・シグナラ18a、b及び15
a、bは、イベントの発生を検出し、イベント信号マネ
ージャ26にイベントの発生の指示、イベント名、イベ
ント・キー(すなわち、イベントに付随するイベント・
データのタイプのサブセット)、及び特定のイベント・
データを信号で通知する。これに応答して、イベント信
号マネージャは、信号で通知されたイベントの名前をイ
ベント定義16a〜d内のイベント名と比較して、その
名前付きイベントが定義されているかどうかを決定し、
定義されている場合、イベントの属性を読み取る。それ
らの属性は、イベント・シグナラが、他の作業に進む前
にイベントが処理されるのを待たなければならないの
か、それともイベント・シグナラがイベント処理中に他
の作業に進むことができなければならないのか、現在イ
ベントに関係のあるイベント・モニタがない場合に記憶
できるイベント信号の最大数、及びイベントに関係のあ
る複数のイベント・モニタに通知するための同報通信モ
ードまたは伝搬モードを示す。第1の属性に基づいて、
イベント信号マネージャはイベント・シグナラにイベン
ト処理が完了するのを待たせ、あるいはイベント処理が
完了する前にイベント・シグナラに処理を継続させる。
イベント信号マネージャはまた、イベント・モニタ28
a〜dの定義を検討して、制限イベント・キーをもつ名
前付きイベントを参照する、すなわちそれに関係のある
1つまたは複数のイベント・モニタが定義されているか
どうかを決定する。定義されていない場合、イベント信
号マネージャは、イベント定義の第2の属性に従って、
イベント定義に結合されたイベント信号を記憶する。し
かし、少なくとも1つのイベント・モニタが、制限イベ
ント・キーを伴う名前付きイベントに関係がある場合、
イベント信号マネージャはイベント・モニタにイベント
通知及びイベント・データを信号で通知する。関係のあ
るイベント・モニタが2つ以上ある場合、イベント信号
マネージャはイベント定義で指定された同報通信モード
または伝搬モードで関係のあるイベント・モニタに信号
で通知する。イベント・モニタ定義は、関係のあるイベ
ント・ハンドラに後で送るためにイベント・モニタに結
合して記憶できる、リストされた各イベントの信号の最
大数と、イベント・モニタを「満足させる」ために必要
な異なるイベント信号の数を示す。満足された場合、信
号で通知された各イベント・モニタは、イベント・ハン
ドラから要求された時、要求された方式で、すなわち待
機モード、トラップ・モードまたはテスト・モードで、
当該の各イベント・ハンドラにイベントについて通知す
る資格がある。イベント・ハンドラはイベント通知に応
答し、イベント・データがあればそれを処理する。
【0023】次に本発明についてより詳細に説明する。
オペレーティング・システムは、プロセス作成、プロセ
ス削除、開始コマンド、終了コマンド、コマンドが見つ
からない、リセット、プログラム・ロード、プログラム
・アンロード、コンソール出力完了、コンソール入力使
用可能、エラー、タイマ、トレース、入出力、会計イベ
ントなどのイベントを定義することができる。エラー・
イベントは、たとえばプログラム・チェック、接続の切
断、またはその他のシステム障害である。タイマ・イベ
ントはタイミング期間の終了である。トレース・イベン
トは、プログラム・サブルーチン、プログラムのスレッ
ドまたは重要ステップ(たとえば、データ・アクセス、
データ送信、新しいスレッドの指名、スレッドの中断な
ど)の完了である。会計イベントは、ユーザへの請求金
額を計算するコンピュータ・システムの使用である。適
用業務プログラムは、機能の完了、機能内のチェックポ
イント、データ作成、データ削除、適用業務プログラム
・エラー・イベント(たとえばユーザ入力エラー)、応
答活動の要求など、任意のタイプのイベントを定義する
ことができる。たとえば、適用業務プログラムがロボッ
トのアームを制御しようとする場合、適用業務プログラ
ムは、そのアームを移動する要求であるイベントを定義
し、その後でイベント、すなわちその要求を信号で通知
し、アームをどの方向にどれだけ移動するかを定義する
イベント・データを提供することができる。オペレーテ
ィング・システムまたは適用業務プログラムは、いつで
も、すなわちセッション初期設定中、イベントを検出す
るサービスの最初の呼出し時、またはその他のときに、
これらのイベントを定義することができる。各イベント
は、イベント信号マネージャ26内でEventCre
ate機能40を呼び出し、定義パラメータを指定する
ことによって定義される。イベント信号マネージャ26
内部でのこの機能及び他の各機能の呼出しについては、
下記の「イベント信号マネージャ機能呼出し」と題する
節で詳細に説明する。
【0024】呼出しのパラメータに基づいて、各イベン
ト定義16a〜dは、イベント名及びイベントの重要な
属性または特性を含む。各イベント名は、イベント・デ
ファイナによって決定される長さ及び構成をもつ文字ス
トリングであり、イベントの主要な識別情報を提供す
る。属性には、イベント名の有効範囲、ルース信号限
界、関係のあるイベント・モニタ28a〜dに信号で通
知するモード、及びイベント通知及び処理中の当該の各
イベント・シグナラ15a、bまたは18a、bの動作
状況が含まれる。イベント定義はまた、図15及び図1
7を参照して下記で説明するイネーブル・フィールド及
び選択フィールドを含む。また、図2ないし4を参照し
て以下で詳細に説明するように、イベント・シグナラ
は、イベントをどのように管理するかを部分的に決定す
るために、名前付きイベントの属性を読み取る、イベン
ト信号マネージャ内のEventSignal機能49
を呼び出す。
【0025】イベント名属性の有効範囲は、そのイベン
ト名が意味をもつ、単一のプロセスまたはセッション全
体を示す。イベント名がプロセスの範囲しかもたない場
合、イベントを定義したプロセスだけがそのイベントを
信号で通知することができ、イベント名を参照する、そ
のプロセス内で定義されたイベント・モニタだけにEv
entSignal機能によって信号で通知できる。し
かし、イベント名がセッション全体の範囲をもつ場合
は、どのプロセスがイベントを信号で通知したかにかか
わらず、そのイベント名を参照するすべてのイベント・
モニタに、イベント信号を受け取った後、EventS
ignal機能によって信号で通知できる。セッション
全体の範囲をもつ各イベント名は、オペレーティング・
システム内で一義的でなければならないが、プロセスの
範囲をもつ各イベント名は、そのイベントを信号で通知
し監視するプロセス内でだけ一義的であればよい。
【0026】ルース信号限界属性は、イベントが定義さ
れイベントが発生した後に、対応するイベント定義と関
連して、ただし現在イベントに関係のあるイベント・モ
ニタがない状況で、EventSignal機能の指令
で記憶される、イベント及び関連するイベント・データ
(「ルース信号」41)の数である。イベント信号のル
ース信号限界に達した後、それ以後の各イベント信号
は、最も古いイベント信号が消去されてその位置に記憶
される。このルース信号の記憶は、そのイベントに関係
のあるイベント・モニタが後から定義でき、以前のイベ
ント信号から利益を得ることができるので、重要であ
る。
【0027】信号通知モード属性は、同じイベントに関
係のある2つ以上のイベント・モニタに信号で通知する
方法を示す。同報通信モードでは、EventSign
al機能は、偶然でなしに、通常は実質的に同時に、関
係のあるすべてのイベント・モニタに信号で通知する。
関係のあるすべてのイベント・モニタが、イベントの性
質にかかわらずイベント通知及びイベント・データから
利益を得ることができるとき、イベント定義は、同報通
信モードを指示すべきである。たとえば、イベントがデ
ィスクからメモリにデータをロードすることであり、そ
のデータを読み取ることに関係のあるイベント・ハンド
ラが複数ある場合、任意選択の同時性を得るため、これ
らのイベント・ハンドラがオペレーティング・システム
によって指名されるように、イベントの発生後すぐに、
かつ偶然でなく、イベント通知及びイベント・データを
(関連するイベント・モニタを介して)イベント・ハン
ドラに同報通信するのが最も効率的である。FIFO
(先入れ先出し)伝搬モードでは、イベント・モニタは
各イベント・モニタの作成順に通知を受け、LIFO
(後入れ先出し)伝搬モードでは、イベント・モニタは
各イベント・モニタの作成順とは逆の順序で通知を受け
る。信号で通知される各イベント・モニタに関連するイ
ベント・ハンドラが、シーケンス内の次のイベント・モ
ニタにイベントの発生について信号で通知するかどうか
を制御する。これを実行するために、イベント信号を受
け取る各イベント・ハンドラは、現信号セット内の指定
されたイベント信号がシーケンス内の次のイベント・モ
ニタに伝搬できるように、EventMonitorR
eset機能を呼び出す。またシーケンス内の各イベン
ト・ハンドラは、シーケンス内の次の(及び下流側のす
べての)イベント・モニタへの1つまたは複数のイベン
ト信号の伝搬を防止するために、EventDisca
rd機能を呼び出すことができる。イベント信号伝搬規
則は、プロセスごとに適用される。関係のあるイベント
・ハンドラが異なるプロセス中にあるときは、イベント
信号は、必ずこれらのプロセスのそれぞれにおいて少な
くとも1つのイベント・モニタに渡される。この制御に
ついては、下記で図10及び図11を参照してより詳細
に説明するが、それによって、イベント信号の伝搬によ
ってオペレーティング・システムが利益を得ないとイベ
ント・ハンドラが判断したとき、シーケンス内の各イベ
ント・ハンドラは、シーケンス内の以後のイベント・ハ
ンドラによるイベント・データの処理を回避することが
できる。たとえば、イベントが重大な障害であり、シー
ケンス内の第1のイベント・ハンドラの機能がこの障害
の性質を分析することであり、シーケンス内の次のイベ
ント・ハンドラの機能がこの障害から回復することであ
ると仮定する。回復が不可能なほど障害が重大である場
合、第1イベント・ハンドラは、シーケンス内の次のイ
ベント・ハンドラへのイベント信号の伝搬をブロックす
べきである。すなわち、このようなブロッキングの効果
は、オペレーティング・システムの全体的効率を向上さ
せることである。
【0028】イベント定義内の動作状況属性は、Eve
ntSignal機能がイベント・モニタに信号で通知
し、イベント・モニタがイベント・ハンドラに通知し、
イベント・ハンドラがイベントに作用し、イベント・デ
ータを処理する間に、イベントを信号で通知するプロセ
スの同期的または非同期的処理を指す。たとえば、イベ
ントが、そのイベントを信号で通知したプロセス内での
エラーである場合、そのエラーが関係のあるイベント・
ハンドラによって回復されるまで、そのイベントを信号
で通知したプロセスを中断する(同期処理)ことが好ま
しいことがある。しかし、そのイベントがイベント・シ
グナラの正常な動作を表しており、イベント・シグナラ
がキーボード機能キーの押下など他の類似のイベントを
処理する準備ができているはずの場合(非同期処理)、
イベント・モニタが信号で通知を受け、イベント・ハン
ドラに通知し、イベント・ハンドラがイベント・データ
を処理する間、イベント・シグナラ・プロセスを中断す
べきではない。イベントが出口ルーチンの「呼出し」を
表す場合、その出口ルーチンを信号で通知した、または
呼び出したプロセスは、そのイベントが処理されるまで
中断すべきであり、そのイベント属性は同期処理を示す
べきである。出口ルーチンとは、ユーザ特有の機能また
は導入システム特有の機能を実行するために、オペレー
ティング・システム11のユーザによって通常提供され
るコードのブロックである。このような機能は、その製
品の動作に対するオプション、追加または他の外部的な
ものでもよい。出口ルーチン・イベント用のイベント・
モニタが定義されていない場合、呼出し側プログラムは
実行を続け、システム障害はない。また、出口ルーチン
は、呼出し側プロセスの資源を出口ルーチンから保護す
るため、呼出し側とは異なるプロセス内に存在すること
ができる。イベント・ハンドラは出口ルーチンを提供す
ることができ、その場合、出口ルーチンが実行されるま
で制御は通常呼出し側に戻されない。したがって、出口
ルーチンは、同期属性をもつイベントとして定義すべき
である。
【0029】イベント・モニタ・デファイナ17a〜d
(またはオペレーティング・システム11内の、図示さ
れていない他のイベント・モニタ・デファイナ)は、E
ventMonitorCreate機能42を呼び出
し、イベント・モニタ・パラメータを指定することによ
って、それぞれイベント・モニタ28a〜dを定義す
る。各呼出しは、1つまたは複数のイベント名、当該の
イベント・キー、イベント・モニタを満足させるための
当該イベントの発生回数、及び各イベントに対する結合
信号限界及びイベント・モニタのその他の属性を識別す
る。イベント・キーは、イベント・モニタがすべてのタ
イプの名前付きイベントに関係があることを示す「ワイ
ルドカード」でも、それらのタイプの名前付きイベント
のサブセットでもよい。またイベント・モニタ定義は、
下記のイネーブル、選択、削除、待機及びトラップ・フ
ィールドを含む。上記のように、イベント・シグナラか
らイベント名及びイベント・キーを受け取り、名前付き
イベントがすでに定義済みであることを検証した後、E
ventSignal機能はイベント・モニタ定義を読
み取り、どのイベント・モニタ定義(もしあれば)がイ
ベント名及びキーを記述しているかを決定する。1つま
たは複数のそのようなイベント・モニタが定義済みであ
る場合、EventSignal機能はイベント定義中
で指定された同報通信モードまたは伝搬モードでそれら
のイベント・モニタを呼び出す。
【0030】イベント・キーを使用すると、入力キーの
押下、メモリへのディスクのロードなど、一般イベント
名をリストできるイベントの定義が簡単になり、イベン
ト・モニタ定義は、イベント・モニタ定義内のキーに基
づいてイベント・モニタへのイベント信号通知を制限す
る。たとえば、イベント・モニタ・キーを、特定の1組
の文字キーまたはロードされたディスクのタイプのみに
制限することができる。
【0031】上記にリストしたイベント・モニタ定義中
の次の属性である、イベント・モニタを満足させるのに
必要な異なるイベント信号の数またはカウントが、イベ
ント・モニタに、イベント・モニタ定義中で指名され
た、指定された数の異なるイベントが発生するまで、関
連するイベント・ハンドラへのイベント信号の通知を抑
えさせる。たとえば、通信エラーを回復する機能をもつ
イベント・ハンドラは、以後の分析を正当化するため、
合計10個の通信機能エラーまたはパリティ・エラーあ
るいはその両方が発生したときだけ、そのようなエラー
の通知を受け取ることに関与し、それ以下の数の通信エ
ラーは、回復を開始するほど重大とは判断されない。本
発明のこの実施例では、通信エラーが10回リストさ
れ、パリティ・エラーが10回リストされ、カウントが
10に指定されている場合、どちらか一方または両方の
タイプのエラーが合計10回発生している限り、指定さ
れた各タイプのエラーの数の内訳は、イベント・モニタ
を満足させるのに重要ではない。しかし、通信エラーが
5回リストされ、パリティ・エラーが5回リストされ、
カウントが10である場合は、イベント・モニタを満足
させるために各タイプのイベントが5回発生しなければ
ならない。このように、イベント・モニタ・デファイナ
は、イベント・モニタを満足させるために必要な、関係
のある各タイプのイベントの特定の発生回数を指定する
ことができる。
【0032】上記にリストしたイベント・モニタ定義中
の最後の属性である結合信号限界は、関係のあるイベン
ト・モニタの指令で、関係のあるイベント・モニタ内の
指名された各イベントと結合してまたは関連づけて記憶
できる、未処理のイベント信号の数である。この限界を
超えたとき、最も古い結合イベント信号が消去され、最
新のイベント信号がイベント・モニタに結合される。た
とえば、固定数のトレース・イベント及びデータの記憶
に対する結合信号限界は、イベント状態の障害追求を行
う助けとして有用であるが、追加のより古いトレース・
データは、現在の問題を反映しないので、役立たないこ
とがある。結合信号は、結合信号セット47内に記憶さ
れる。イベント・モニタが満足され、イベント・ハンド
ラがイベント通知を要求するとき、イベント・モニタ
は、イベント・ハンドラがアクセスすべき現信号セット
45として、最も古い異なる結合イベント信号を指定す
る。イベント・モニタを満足させるために同じタイプの
イベントの発生が2回以上必要な場合、現信号セット
は、少なくともイベント・モニタを満足させるために必
要な数の、そのタイプのイベント信号を含む。
【0033】イベント・モニタ定義中のもう1つの属性
は、イベント・モニタが、作成されたとき、そのイベン
ト・モニタの作成前に発生し、ルース信号セット内に記
憶された、そのイベント・モニタが関係のあるタイプの
信号を受け取るべきか否かを指定するものである。受け
取るべき場合は、ルース信号がイベント・モニタの作成
時に結合信号セット47に転送される。イベント・モニ
タ定義中のさらに別の属性は、イベント・モニタが満足
された後、及びイベント・ハンドラがイベント通知を受
け取りそのイベントを処理する間に、イベント・ハンド
ラと同じプロセス内の他のプログラム・スレッドを中断
すべきか否かを指定するものである。イベントが、異常
終了を必要とするシステム障害、またはイベント・ハン
ドラにプロセス全体の「スナップショット」を取らせる
イベントである場合は、他のプログラム・スレッドの実
行を中断することが重要である。
【0034】先に指摘したように、通常、各イベント・
モニタ・デファイナ及び関連するイベント・ハンドラは
同じプロセスの一部分であって、あるプロセスが1つの
イベントまたは複数のイベントの組合せを監視し、その
イベントまたは組合せを処理しようとするとき、そのプ
ロセスがイベント・モニタを定義し、関連するイベント
・ハンドラを提供する。このイベント・ハンドラは、イ
ベント・ハンドラによるEventTest、Even
tTrapまたはEventWait機能の呼出しに基
づいて通知を受ける。このプロセスはイベント・モニタ
を定義または削除し、動的に、すなわちいつでも、Ev
entMonitorCreateまたはEventM
onitorDelete機能及びEventTes
t、EventTrapまたはEventWait機能
を呼び出すことによって、他のプログラムを再連係また
は割り込むことなしに、イベント・ハンドラと関与する
ことができる。また、複数のプロセスが、複数のイベン
ト・モニタを定義し、同じまたは異なるイベントまたは
複数のイベントの組合せ用の複数のイベント・ハンドラ
を提供することもできる。
【0035】呼出しを受け取った後、EventMon
itorCreate機能は、その呼出し内のすべての
パラメータを読み取り記憶する(図20の段階80)。
次に、EventMonitorCreate機能は、
ルース信号を結合すべきことをイベント・モニタ・フラ
グ・パラメータが示すかどうかを判定する(判断ブロッ
ク82)。イエスの場合、EventMonitorC
reate機能は、イベント・モニタにとって関係のあ
る各イベントの定義に関連するルース信号セットを読み
取って、イベント・モニタにとって関心のある制限キー
をもつルース信号(「適格イベント」)があるかどうか
決定する。イベント・モニタにとって関係があるために
は、ルース信号は、セッション範囲をもつか、またはプ
ロセス範囲をもたなければならず、そのイベントはイベ
ント・モニタを定義したのと同じプロセスによって定義
される。以前にイベントの発生がなかった場合、または
別のイベント・モニタがそのイベントに関与するように
以前に定義されていた場合、ルース信号はない。関係の
あるルース信号がある場合、EventMonitor
Create機能は、これらすべてのルース信号をイベ
ント・モニタに転送し(段階86)、イベント・モニタ
は、下記で図2の段階115を参照して述べる結合限界
に従って、それらのルース信号をそれ自体に結合する。
その後、EventMonitorCreate機能
は、その呼出し側に戻る(段階88)。
【0036】イベント・モニタ・デファイナ17a〜d
がイベント・モニタを定義した後はいつでも、関連する
イベント・ハンドラは、そのイベント・モニタが満足さ
れたとき通知を要求することができる。要求のタイプに
は、テスト・モード、トラップ・モード、及び待機モー
ドがあり、イベント・ハンドラはEventTest機
能50、EventTrap機能52、またはEven
tWait機能54の呼出しによって所望のモードを選
択する。各呼出しの効果は、当該のイベント・モニタの
状態に依存する。
【0037】イベント・モニタがまだ満足されていない
場合、以下のことが起こる。
【0038】1)EventTest機能は、イベント
・ハンドラによって呼び出された場合、イベント・ハン
ドラに各イベント名/イベント・キー対(イベント・ハ
ンドラに関連するイベント・モニタで参照される)の状
態、すなわち当該のキーを伴う名前付きイベントが発生
したのか、それとも削除されたのかを報告する。
【0039】2)EventWait機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タが満足されるまでそのイベント・ハンドラを中断す
る。満足されたとき、イベント・モニタはイベント・ハ
ンドラを覚醒させ、各イベント名/イベント・キー対の
状態を報告する。
【0040】3)EventTrap機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タが満足されたときにトラップ・ルーチンを実行するよ
うにとオペレーティング・システムに知らせる。オペレ
ーティング・システムは、どの環境でトラップ・ルーチ
ンが実行されるかを知らないので、イベント・モニタの
状態に関する情報は最初トラップ・ルーチンに渡されて
いない。したがって、イベント・モニタが満足されたと
き、イベント・モニタはトラップ・ルーチンを呼び込
み、トラップ・ルーチンはEventTest機能を呼
び出して、各イベント名/イベント・キー対の状態に関
する報告を得る。イベント・モニタが満足されたとき、
EventTrap機能及びEventWait機能の
両方が呼び出されている場合は、EventWait機
能が優先され、トラップ・ルーチンは実行されない。
【0041】イベント・モニタが満足されたが、まだ活
動化されていない(すなわち、イベント・ハンドラから
イベント通知をまだ要求されていない)場合は、以下の
ことが起こる。
【0042】1)EventTest機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タを活動化し、イベント・モニタに現信号セットを確立
させ、イベント・ハンドラに各イベント名/イベント・
キー対の状態を報告させる。
【0043】2)EventWait機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タを活動化し、イベント・モニタに現信号セットを確立
させ、イベント・ハンドラを覚醒させ、各イベント名/
イベント・キー対の状態を報告させる。
【0044】3)EventTrap機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タに現信号セットを確立させ、指定されたトラップ・ル
ーチンを実行させる。
【0045】EventWait機能、EventTr
ap機能またはEventTest機能の呼出しの結
果、イベント処理プログラムが実行している間、(イベ
ント・モニタが満足され、イベント・ハンドラがイベン
ト通知を要求した後)イベント・モニタは「活動状態」
である。イベント・モニタが現在活動状態である場合、
以下のことが起こる。
【0046】1)EventTest機能は、イベント
・ハンドラによって呼び出された場合、イベント・ハン
ドラに各イベント名/イベント・キー対の状態を報告す
る。
【0047】2)EventWait機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タをリセットし、イベント・モニタが再び満足されるま
でイベント・ハンドラを中断する。
【0048】3)EventTrap機能は、イベント
・ハンドラによって呼び出された場合、イベント・モニ
タを使ってトラップ・ルーチンのアドレスを監視し、こ
のイベント・モニタと以前に関連していたすべてのトラ
ップ・ルーチンのアドレスを上書きする。
【0049】イベント・モニタが活動状態であるとき、
それが監視する新しいイベント信号は、まだイベント・
モニタに結合されており、EventMonitorR
eset機能62が実行された後にイベント・モニタに
よって処理される。その後で、イベント・モニタは残り
の結合信号を検査し、それらの結合信号がイベント・モ
ニタを満足させるのに十分である場合、イベント・モニ
タは再び活動化する資格を得る。
【0050】図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)、EventS
ignal機能はイベント信号(イベント名及びイベン
ト・データ)をそれらすべてにほぼ同時に提供し、イベ
ント定義が伝搬モード属性を指定しているならば(段階
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)。
【0051】呼び出されたとき、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機能を間接的に呼び
出す。
【0052】図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)。
【0053】図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を回避し、他の作業を実
行することができる。
【0054】図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)。
【0055】図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はともにイベント通知及びイベント・デ
ータをほぼ同時に受け取り、どちらのイベント・ハンド
ラも他のイベント・ハンドラがイベント通知及びイベン
ト・データを受け取ることを妨げることはできない。
【0056】図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で
は、伝搬の試みを避けることになる。
【0057】図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シー
ケンス内の次のイベント・モニタを識別する。
【0058】イベントを定義した後いつでも、そのイベ
ントを定義したプロセスは、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)。
【0059】EventModify機能は、イベント
定義の内部の信号通知属性のルース信号限界または操作
状況を変更するために呼び出される。ルース信号限界属
性の変更はただちに効果を示すが、動作状況属性の変更
は後の信号が発行されるまで効果を示さない。
【0060】イベントが最初に作成されたとき、そのイ
ベントは自動的にイネーブルされる。EventEna
ble機能44は、イベントが作成された後そのイベン
トをディスエーブルするために、またはディスエーブル
されたイベントをイネーブルするために呼び出すことが
できる。イベントがディスエーブルされたとき、そのイ
ベントに関する信号は、関係のあるイベント・モニタに
結合されるが、そ(れら)のイベント・モニタを満足さ
せる方向にカウントしない。
【0061】図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を満足させる方向にカウントしない。
【0062】先に指摘したように、イベント・モニタが
最初に作成されたとき、そのイベント・モニタは自動的
にイネーブルされる。しかし、EventMonito
rEnable機能64を呼び出して、作成後イベント
・モニタをディスエーブルし、またはディスエーブルさ
れたイベント・モニタをイネーブルすることができる。
イベント信号はディスエーブルされたイベント・モニタ
に結合されるが、ディスエーブルされたイベント・モニ
タを満足させることはできない。
【0063】図16は、EventMonitorEn
able機能を示す流れ図である。イベントEが作成さ
れ(段階220)、関係のあるイベント・モニタが作成
された(段階222)後、イベント・ハンドラは、Ev
entMonitorEnable機能を呼び出して名
前付きイベント・モニタをディスエーブルすべきことを
指定することができる(段階224)。これに応答し
て、EventMonitorEnable機能が、E
ventMonitor定義をディスエーブル標識でマ
ークする(段階226)。イベントEが発生したとき、
イベント・シグナラはEventSignal機能を呼
び出し(段階228)、EventSignal機能が
上記の段階102〜114を実行する。次に、イベント
・モニタは、イベント信号をイベント・モニタに結合す
る(段階115)が、イベント・モニタ定義内にディス
エーブル標識があるため、判断ブロック116でイベン
ト・モニタはイベント・モニタを満足させる方向にこの
信号またはいかなる信号もカウントせず、イベント・モ
ニタはそれ以上の処置を取らない。
【0064】イベントが最初に定義されたとき、監視が
自動的に開始する。監視が開始したままである場合、E
ventSignal機能は、図2〜4及び7〜9に記
載の方式で、関係のあるイベント・モニタに信号で通知
する。しかし、EventSelect機能60を呼び
出して、特定のイベントの監視を停止し、または監視が
停止された後に監視を再開することができる。監視が停
止されたとき、以後のイベント信号は、EventSe
lect機能を発行したプロセスで、どのイベント・モ
ニタにも結合されない。
【0065】図17はEventSelect機能を示
す。段階250で、イベントFが定義され、監視が自動
的に開始する。次に、イベント・モニタが定義される
(段階252)。その後、イベント・ハンドラがEve
ntSelect機能を呼び出し、名前付きイベントの
監視を停止すべきことを指定する(段階254)。これ
に応答して、EventSelect機能は、名前付き
イベント用のイベント定義を監視が停止されたとマーク
する(段階256)。その後、イベントFが発生し、イ
ベント・シグナラはEventSignal機能を呼び
出す(段階258)。EventSignal機能は上
記の段階102及び104を実行し、次にイベント定義
から監視を停止すべきであると決定する(判断ブロック
106)。その結果、EventSignal機能は、
イベント定義内部のルース信号限界に従ってイベント信
号をイベント定義に結合する(段階262)。監視が停
止されているので、EventSelect機能はどの
イベント・モニタにも信号で通知せず、関係のあるイベ
ント・モニタにも信号で通知しない。
【0066】イベント・モニタが最初に作成されたと
き、そのイベント・モニタに関する監視が自動的に開始
する。しかし、EventMonitorSelect
機能66を呼び出して、イベント・モニタによる監視を
停止し、または停止されたイベント・モニタによる監視
を再開することができる。EventMonitorS
elect機能66は、EventMonitorEn
able機能64とは異なる。なぜなら、停止されたイ
ベント・モニタにとって関係のある信号はそのイベント
・モニタに結合されていないが、ディスエーブルされた
イベント・モニタにとって関係のある信号はそのイベン
ト・モニタに結合されているからである。
【0067】図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でイ
ベント信号を受け取り、イベント信号はイベント定義に
結合されないことに留意されたい。
【0068】イベント・モニタの作成後いつでも、その
イベント・モニタを作成したプロセスは、図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)。
【0069】本発明の代替実施例では、イベント・モニ
タにとって関係のあるイベントを含めて、既存のイベン
ト・モニタのどの属性も動的に修正することができる。
あるイベント・タイプがイベント・モニタにとって関係
のあるイベントのリストから削除された場合、削除され
たイベント・タイプの結合信号は、EventMoni
torDelete機能68内で記述されるように処理
される。あるイベント・タイプがイベント・モニタ定義
に追加された場合、そのイベント・タイプのルース信号
は、EventMonitorCreate機能42内
で記述されるように処理される。実際に、イベント・モ
ニタの修正は、EventMonitorDelete
機能68でイベント・モニタを原子的に削除すること、
及びEventMonitorCreate機能42で
イベント・モニタを再作成することと、次の点を除き機
能的に等価である。イベント・モニタにとって関係のあ
るイベントの結合信号は、結合信号限界が低減され、低
減された限界より多くの結合信号がある場合を除き、修
正の前後で放棄も伝搬もされない。前記の場合は、過剰
な最も古い結合信号が放棄される。また、イベント・モ
ニタ定義は原子的に(すなわち1段階で)修正されるの
で、イベント・モニタ定義が修正されている間に発生す
るイベント用の信号が失われる可能性はない。
【0070】イベント信号マネージャ機能呼出し EventCreate retcode rsncode event_name event_name_length event_flag event_flag_size loose_signal_limit signal_timeout_period
【0071】パラメータ:"EventCreate"
は、呼び込まれる機能の名前である。"retcode"
は、EventCreateからの戻りコードを保持す
るための符号付き4バイト2進変数である。「戻りコー
ド」は、呼出しまたはパラメータの成否またはエラーの
有無を示す。"rsncode"は、EventCrea
teからの理由コードを保持するための符号付き4バイ
ト2進変数である。「理由コード」は、呼出しまたはパ
ラメータの失敗またはエラーの理由を示す。"even
t_name"は、定義されるイベントの名前を含む文
字変数である。"event_name_length"
は、event_nameの長さを含む符号付き4バイ
ト2進変数である。"event_flag"は、4バイ
ト2進変数のアレイであり、その各要素はどのようにイ
ベントを管理すべきかの情報を含む。以下の各セットか
らそれぞれ1つのオプションだけを指定することができ
る。特定のセットからのオプションが指定されていない
場合、省略時指定がとられる。イベント名の範囲は、プ
ロセス及びセッションで示される。すなわち、このプロ
セスだけがこのイベントを監視でき、このプロセスだけ
がこのイベントを信号で通知できることを示す"vm_
evn_process_scope"、及びセッショ
ン内のすべてのプロセスが、このイベントを監視するこ
とも信号で通知することもできることを示す"vm_e
vn_session_scope"である。イベント
信号を1つのプロセスで複数のイベント・モニタに渡す
方式は、同報通信、FIFOまたはLIFOモードとし
て示される。すなわち、信号がすべての適格モニタに同
時に渡されることを示す"vm_evn_broadc
ast_signals"、モニタが作成された順序で
信号が一時に1つの適格モニタに渡されることを示す"
vm_evn_fifo_signals"、及びFI
FOオプションによって定義されたイベントとは逆の順
序で信号が一時に1つの適格モニタに渡されることを示
す"vm_evn_lifo_signals"である。
【0072】シグナラの処理は、"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時
に、これらの追加のスレッドも他のスレッドと同様に処
理される。
【0073】"event_flag_size"は、e
vent_flagアレイ内の要素の数を含む符号付き
の4バイト2進変数である。
【0074】"loose_signal_limit"
は、イベントが信号で通知されたときにイベント信号を
結合する適格イベント・モニタが存在しない場合に保持
されるイベント信号の数を含む、符号付きの4バイト2
進変数である。限界を超えたとき、新しく到着した信号
用の場所をあけるために最も古いルース信号が放棄され
る。値0は、ルース信号が保持されないことを示す。値
−1は、仮想記憶域が利用できるという条件の下でルー
ス信号リストが無制限に成長できることを意味する。そ
の他の負の値はエラーと見なされる。
【0075】"signal_timeout_per
iod"は、信号通知スレッドが信号の処理の完了を待
って中断状態に留まる、マイクロ秒で指定された時間の
最大長さを表す、符号付きの4バイト2進変数である。
値0は、信号通知スレッドが信号処理の完了を無限に待
たなければならないことを示す。信号通知スレッドが処
理を続けることを指定するオプションがevent_f
lagアレイ内に含まれている場合、このパラメータは
無視される。
【0076】 Event Delete retcode rsncode event_name event_name_length
【0077】パラメータ:"EventDelete"
は、呼び出される機能の名前である。"retcode"
は、EventDeleteからの戻りコードを保持す
るための符号付きの4バイト2進変数である。"rsn
code"は、EventDeleteからの理由コー
ドを保持するための符号付きの4バイト2進変数であ
る。"event_name"は、その定義が削除される
イベントの名前を含む文字変数である。"event_
name_length"は、event_nameの
長さを含む符号付きの4バイト2進変数である。
【0078】 EventDiscard retcode, rsncode, monitor_token, index
【0079】パラメータ:"EventDiscard"
は、呼び出される機能の名前である。"retcode"
は、EventDiscardからの戻りコードを保持
するための符号付きの4バイト2進変数である。"rs
ncode"は、EventDiscardからの理由
コードを保持するための符号付きの4バイト2進変数で
ある。"monitor_token"は、その現信号セ
ットから信号が放棄されるイベント・モニタを識別する
トークンを含む符号付きの4バイト2進変数である。値
0は、現スレッド上で最近に活動化された活動状態のイ
ベント・モニタを識別するために使用される。"ind
ex"は、イベント・モニタの作成時に指定されたev
ent_name_address、event_na
me_length、event_key_addre
ss及びevent_key_lengthアレイへの
インデックスとして、放棄される信号に対応するeve
nt_nameとevent_keyの対を識別する、
符号付きの4バイト2進変数である。値0は、現信号セ
ット内のすべての信号を放棄すべきことを指示するため
に使用される。
【0080】 EventEnable retcode rsncode number_of_events event_name_address event_name_length event_enablement_mask
【0081】パラメータ:"EventEnable"
は、呼び出される機能の名前である。"retcode"
は、EventEnableからの戻りコードを保持す
るための符号付きの4バイト2進変数である。"rsn
code"は、EventEnableからの理由コー
ドを保持するための符号付きの4バイト2進変数であ
る。"number_of_events"は、関係のあ
るevent_nameとevent_keyの対の数
を含む符号付きの4バイト2進変数である。"even
t_name_address"は、number_o
f_events個の4バイト・ポインタ変数のアレイ
であり、その各要素はその発生を監視すべきイベントの
名前のアドレスを含む。"event_name_le
ngth"は、number_of_events個の
符号付き4バイト2進変数のアレイであり、その各要素
はevent_name_addressアレイの対応
する要素が指すevent_nameの長さを含む。"
event_enablement_mask"は、n
umber_of_events個の符号付き4バイト
2進変数のアレイであり、その各要素はevent_n
ame_addressアレイの対応する要素が指すe
vent_nameのイネーブル・マスクを含む。イベ
ント・イネーブル・マスクは、プロセスごとに維持さ
れ、EventEnableコマンドは発行プロセスだ
けに影響を与える。イネーブル・マスクの値が、実行さ
れる以下の処置を決定する。すなわち、event_n
ame_addressアレイの対応する要素によって
指示されるevent_nameをディスエーブルする
ことを示す"vm_evn_disable"、またはe
vent_name_addressアレイの対応する
要素によって指示されるevent_nameをイネー
ブルすることを示す"vm_evn_enable"であ
る。
【0082】 EventModify retcode rsncode event_name event_name_length event_flag event_flag_size loose_signal_limit signal_timeout_period
【0083】パラメータ:"EventModify"
は、呼び出される機能の名前である。"retcode"
は、EventModifyからの戻りコードを保持す
るための符号付きの4バイト2進変数である。"rsn
code"は、EventModifyからの理由コー
ドを保持するための符号付きの4バイト2進変数であ
る。"event_name"は、その定義が修正される
イベントの名前を含む文字変数である。"event_
name_length"は、event_nameの
長さを含む符号付きの4バイト2進変数である。"ev
ent_flag"は、4バイト2進変数のアレイであ
り、その各要素はイベントをどのように管理すべきかの
情報を含む。以下のセットからただ1つのオプションを
指定することができる。このセットからのオプションが
指定されない場合、オプションの既存の値が修正されな
いままとなる。シグナラの処理は、信号通知スレッドが
実行を継続できることを示すvm_evn_async
_signals(省略時指定)、信号通知スレッドが
イベント処理の結果を待って中断されることを示すvm
_evn_sync_thread_signals、
または信号によってモニタが活動化された結果走行して
いるスレッドを除き、信号通知プロセス内のすべてのス
レッドがイベント処理の結果を待って中断されることを
示すvm_evn_sync_process_sig
nalsによって指示される。
【0084】"event_flag_size"は、e
vent_flag_array内の要素の数を含む符
号付きの4バイト2進変数である。
【0085】"loose_signal_limit"
は、イベントが信号で通知されたときイベント信号を結
合する適格イベント・モニタが存在しない場合に保持さ
れるイベント信号の数を含む符号付きの4バイト2進変
数である。限界を超えたとき、新しく到着した信号用の
場所をあけるために最も古いルース信号が放棄される。
値0は、ルース信号が保持されないことを示す。値−1
は、仮想記憶域が利用できるという条件の下でルース信
号リストが無制限に成長できることを意味する。値−2
は、既存のloose_signal_limitが修
正されないままとなることを意味する。その他の負の値
はエラーと見なされる。
【0086】"signal_timeout_per
iod"は、信号通知スレッドが信号の処理の完了を待
って中断状態に留まる、マイクロ秒で指定された時間の
最大長さを表す、符号付きの4バイト2進変数である。
値0は、信号通知スレッドが信号処理の完了を無限に待
たなければならないことを示す。値−1は、既存のsi
gnal_timeout_periodが修正されな
いままとなることを意味する。シグナラの中断を指定す
るオプションがevent_flagアレイ内に含まれ
ていない場合、このパラメータは無視される。
【0087】 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
【0088】パラメータ:"EventMonitor
Create"は、呼び出される機能の名前である。"r
etcode"は、EventMonitorCrea
teからの戻りコードを保持するための符号付き4バイ
ト2進変数である。"rsncode"は、EventM
onitorCreateからの理由コードを保持する
ための符号付き4バイト2進変数である。"monit
or_token"は、他のイベント管理機能が後で呼
び込まれるときにイベント・モニタを識別するトークン
がその中で返される、符号付きの4バイト2進変数であ
る。"monitor_flag"は、符号付きの4バイ
ト2進変数のアレイであり、その各要素は、イベント・
モニタをどのように管理すべきかの情報を含む。以下の
各セットからそれぞれただ1つのオプションを指定する
ことができる。特定のセットからのオプションが与えら
れていない場合、省略時指定が適用される。モニタの寿
命は、イベント・モニタが明示的EventMonit
orDeleteまで持続することを意味する"vm_
evn_no_auto_delete"(省略時)、
またはイベント・モニタが最初に非活動化されるとき
に、またはEventMonitorReset時に自
動的に削除されることを意味する"vm_evn_au
to_delete"によって指示される。指名可能性
に対するモニタ活動化の効果は、そのモニタを含むプロ
セス内のすべてのスレッドが指名可能なままとなること
を意味する"vm_evn_async_monito
r"(省略時指定)、またはその上でモニタが活動化さ
れているスレッド(すなわち、このイベント・モニタ用
のイベント・ハンドラ)を除き、現在そのモニタを含む
プロセス内にあるすべてのスレッドが、モニタが非活動
化されるまで中断されることを意味する"vm_evn
_sync_process_monitor"によっ
て指示される。ルース信号のこのモニタへの結合は、モ
ニタが作成されたときまたはEventSelectも
しくはEventMonitorSelectによって
監視が再開されたときにこのモニタがそれに対して適格
な任意のルース信号がこのモニタに結合されることを意
味する"vm_evn_bind_loose_sig
nals"(省略時指定)、またはいかなるルース信号
もこのモニタに結合されていないことを意味する"vm
_evn_ignore_loose_signal
s"によって指示される。"monitor_flag_
size"は、monitor_flagアレイ内の要
素の数を含む符号付きの4バイト2進変数である。"n
umber_of_events"は、関係のあるev
ent_nameとevent_keyの対の数を含む
符号付きの4バイト2進変数である。"event_n
ame_address"は、number_of_e
vents個の4バイト・ポインタ変数のアレイであ
り、その各要素は、その発生が監視されるイベントの名
前のアドレスを含む。"event_name_len
gth"は、number_of_events個の符
号付き4バイト2進変数のアレイであり、その各要素
は、event_name_addressアレイの対
応する要素が指すevent_nameの長さを含
む。"event_key_address"は、num
ber_of_events個の4バイト・ポインタ変
数のアレイであり、その各要素は、監視されるeven
t_name_addressアレイの対応するエント
リが指すevent_nameの特定のインスタンスを
さらに特徴づけるキーのアドレスを含む。このキーは、
関係のある信号によって搬送されるキーとぴったり一致
するように選択することができ、または部分キー(おそ
らくワイルドカード文字を含む)をより広い範囲の発生
に合致するように使用することができる。"event
_key_length"は、number_of_e
vents個の符号付き4バイト2進変数のアレイであ
り、その各要素は、event_key_addres
sアレイの対応する要素が指すevent_keyの長
さを含む。このキーは、関係のある発生を定義するため
にイベントの2次的特徴付けが必要でない場合は、空で
よい(すなわち、その長さは0でよい)。モニタ内の空
白キーは信号上の任意のキーに合致する。"bound
_signal_limit"は、number_of
_events個の符号付き4バイト2進変数のアレイ
であり、その各要素は、モニタがすでに活動状態または
テスト可能である間、または監視された条件が満足され
ないままである間、イベント・モニタに結合されている
が未処理の状態に保持できる、対応するイベント名/イ
ベント・キー対の信号の数を含む。限界を超えたとき、
特定のevent_name/event_key対の
最も古い結合信号が新しく到着した信号用の場所をあけ
るために放棄される。許される最小値は1であり、これ
は各信号の最近のインスタンスだけが保持されることを
意味する。値−1は、仮想記憶域が利用できるという条
件の下で結合信号リストが無制限に成長できることを意
味する。その他の負の値または0は、エラーと見なされ
る。"event_count"は、監視された条件が満
足されたと見なされるために信号がモニタに結合されな
ければならない、指定されたevent_nameとe
vent_keyの対の数を含む符号付き4バイト2進
変数である。この値は1とnumber_of_eve
ntsの間でなければならない。あるいは、本発明の別
の実施例では、event_countは、イベント・
モニタを満足させるために必要な各イベント・タイプの
発生回数を示すために、各イベント・タイプごとに指定
される。
【0089】 EventMonitorDelete retcode rsncode monitor_token
【0090】パラメータ:"EventMonitor
Delete"は、呼び出される機能の名前である。"r
etcode"は、EventMonitorDele
teからの戻りコードを保持するための符号付き4バイ
ト2進変数である。"rsncode"は、EventM
onitorDeleteからの理由コードを保持する
ための符号付き4バイト2進変数である。"monit
or_token"は、削除されるイベント・モニタを
識別するトークンを含む符号付きの4バイト2進変数で
ある。値0は、現スレッド上で最近に活動化された活動
状態のイベント・モニタを識別するために使用される。
【0091】 EventMonitorEnable retcode rsncode number_of_monitors monitor_tokens monitor_enablement_masks
【0092】パラメータ:"EventMonitor
Enable"は、呼び出される機能の名前である。"r
etcode"は、EventMonitorEnab
leからの戻りコードを保持するための符号付き4バイ
ト2進変数である。"rsncode"は、EventM
onitorEnableからの理由コードを保持する
ための符号付き4バイト2進変数である。"numbe
r_of_monitors"は、関係のあるmoni
tor_tokensの数を含む符号付き4バイト2進
変数である。"monitor_tokens"は、nu
mber_of_monitors個の4バイト・ポイ
ンタ変数のアレイであり、その各要素は、イネーブルま
たはディスエーブルされるモニタのトークンを含む。値
0は、現スレッド上で最近に活動化された活動状態のイ
ベント・モニタを識別するために使用される。"mon
itor_enablement_masks"は、n
umber_of_monitors個の符号付き4バ
イト2進変数のアレイであり、その各要素は、moni
tor_tokensアレイの対応する要素によって識
別されるモニタ用のイネーブル・マスクを含む。モニタ
・イネーブル・マスクの値が、実行される以下の処置を
決定する。すなわち、monitor_tokensア
レイの対応する要素によって識別されるモニタをディス
エーブルすることを示す"vm_evn_disabl
e"、及びmonitor_tokensアレイの対応
する要素によって識別されるモニタをイネーブルするこ
とを示す"vm_evn_enable"である。
【0093】EventMonitorQuery−適
用業務プログラムは、以前に作成されたイベント・モニ
タの定義及び状況に関する情報を得るために、この機能
を呼び出すことができる。
【0094】 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
【0095】パラメータ:"EventMonitor
Query"は、呼び出される機能の名前である。"re
tcode"は、EventMonitorQuery
からの戻りコードを保持するための符号付き4バイト2
進変数である。"rsncode"は、EventMon
itorQueryからの理由コードを保持するための
符号付き4バイト2進変数である。"monitor_
token"は、それに関する情報が返されるイベント
・モニタを識別する符号付きの4バイト2進変数であ
る。値0は、現スレッド上で最近に活動化された活動状
態のイベント・モニタを識別するために使用される。"
monitor_flag"は、符号付きの4バイト2
進変数のアレイであり、その各要素中で、イベント・モ
ニタをどのように管理すべきかの情報が返される。以下
の各セットからそれぞれただ1つのオプションを含む。
モニタの寿命は、イベント・モニタが明示的Event
MonitorDeleteまで、または定義プロセス
の終了まで持続することを意味する"vm_evn_n
o_auto_delete"、またはイベント・モニ
タが最初に非活動化されたときまたはEventMon
itorReset呼出し時に自動的に削除されること
を意味する"vm_evn_auto_delete"に
よって指示される。指名可能性に関するモニタ活動化の
効果は、モニタを含むプロセス内のすべてのスレッドが
指名可能なままとなることを意味する"vm_evn_
async_monitor"(省略時指定)、または
モニタがその上で活動化されているスレッド(すなわ
ち、このイベント・モニタ用のイベント・ハンドラ)を
除き、現在モニタを含むプロセス内にあるすべてのスレ
ッドが、そのモニタが非活動化されるまで中断されるこ
とを意味する"vm_evn_sync_proces
s_monitor"によって指示される。ルース信号
のこのモニタへの結合は、モニタが作成されたまたはオ
ンに選択された時点で存在する任意の適格ルース信号が
このモニタに結合されていることを意味する"vm_e
vn_bind_loose_signals"(省略
時指定)、またはいかなるルース信号もこのモニタに結
合されていないことを意味する"vm_evn_ign
ore_loose_signals"によって指示さ
れる。モニタの現在の活動化状態は、監視される条件が
満たされており、信号処理プログラムが実行中であるこ
とを意味する"vm_evn_monitor_act
ive"、モニタが活動状態でなく、監視される条件が
満たされておらず、モニタに関連する未処理のEven
tWaitがあることを意味する"vm_evn_mo
nitor_waiting"、モニタが活動状態でも
待機状態でもなく、監視される条件が満たされておら
ず、モニタに関連するトラップ・ルーチンがあることを
意味する"vm_evn_monitor_trapp
ing"、またはモニタが活動状態でも待機状態でもト
ラッピング状態でもなく、監視される条件は満たされて
いることも満たされていないこともあり、モニタに関連
する未処理のEventWaitもトラップ・ルーチン
もないことを意味する"vm_evn_monitor
_testable"によって指示される。"monit
or_flag_size"は、monitor_fl
agアレイ内の要素の数を含む、符号付きの4バイト2
進変数である。"monitor_flag_coun
t"は、EventMonitorQueryによって
セットされたmonitor_flagアレイ内の要素
の数がその中で返される、符号付きの4バイト2進変数
である。"number_of_events"は、関係
のあるevent_nameとevent_keyの対
の数を含む、符号付きの4バイト2進変数である。"e
vent_name_buffer_address"
は、number_of_events個の4バイト・
ポインタ変数のアレイであり、その各要素は、その発生
が監視されるイベントの名前がその中で返される、文字
変数のアドレスを含む。"event_name_bu
ffer_length"は、number_of_e
vents個の符号付き4バイト2進変数のアレイであ
り、その各要素は、event_name_buffe
r_addressアレイの対応する要素が指すeve
nt_name_bufferの長さを含む。"eve
nt_name_length"は、number_o
f_events個の符号付き4バイト2進変数のアレ
イであり、その各要素中で、event_name_b
uffer_addressアレイの対応する要素が指
すバッファに記憶されているevent_nameの実
際の長さが返される。この名前がバッファより長い場
合、それは切り捨てられる。短い場合は、バッファの終
りにある過剰スペースは変化しない。"event_k
ey_buffer_address"は、numbe
r_of_events個の4バイト・ポインタ変数の
アレイであり、その各要素は、監視されているeven
t_name_buffer_arrayの対応するエ
ントリが指すevent_nameの特定のインスタン
スをさらに特徴づけるキーがその中で返される、バッフ
ァのアドレスを含む。"event_key_buff
er_length"は、number_of_eve
nts個の符号付き4バイト2進変数のアレイであり、
その各要素は、event_key_buffer_a
ddressアレイの対応する要素が指すバッファの長
さを含む。"event_key_length"は、n
umber_of_events個の符号付き4バイト
2進変数のアレイであり、その各要素中で、event
_key_buffer_addressアレイの対応
する要素が指すバッファに記憶されているevent_
keyの実際の長さが返される。このキーがバッファよ
り長い場合、それは切り捨てられる。短い場合は、バッ
ファの終りにある過剰スペースは変化しない。"bou
nd_signal_limit"は、number_
of_events個の符号付き4バイト2進変数のア
レイであり、その各要素中で、モニタがすでに活動状態
またはテスト可能である期間、または監視される条件が
満足されないままである間、イベント・モニタに結合さ
れているが未処理の状態に保持される対応するイベント
名/イベント・キー対の信号の数が返される。限界を超
えたとき、特定のevent_nameとevent_
keyの対の最も古い結合信号が新しく到着した信号用
の場所をあけるために放棄される。許容される最小値は
1であり、これは各信号の最近のインスタンスだけが保
持されることを意味する。値−1は、仮想記憶域が利用
できるという条件の下で結合信号リストが無制限に成長
できることを意味する。"bound_signal_
count"は、number_of_events個
の符号付き4バイト2進変数のアレイであり、その各要
素中で、イベント・モニタに現在結合されているが未処
理である対応するイベント名/イベント・キー対の信号
の数が返される。"monitor_selectio
n_mask"は、このモニタ用の選択マスクがその中
で返される、4バイト変数である。この変数は、このモ
ニタがオフに選択されるかオンに選択されるかを示
す。"monitor_enablement_mas
k"は、このモニタ用のイネーブル・マスクがその中で
返される、4バイト2進変数である。この変数は、この
モニタがディスエーブルされるかイネーブルされるかを
示す。"event_count"は、監視される条件が
満足されたと見なすためにそれに対する信号がモニタに
結合されなければならない、指定されたevent_n
ameとevent_keyの対の数がその中で返され
る、符号付き4バイト2進変数である。"presen
t_event_count"は、それに対する信号が
イベント・モニタに現在結合されている、指定されたe
vent_nameとevent_keyの対の数がそ
の中で返される、符号付き4バイト2進変数である。"
trap_routine_address"は、モニ
タによって定義された条件が満たされることが、Eve
ntTrap機能によって確立されたときに呼び込まれ
るルーチンのアドレスがその中で返される、4バイト2
進変数である。EventTrapによってアドレスが
確立されていない場合は、値0が返される。"trap
_routine_name"は、モニタによって定義
された条件が満たされることがEventTrap機能
によって確立されたときに、呼び込まれるルーチンの名
前がその中で返される8バイト変数であり、またどのイ
ベント・トラップもモニタと関連していない場合はブラ
ンクが返される。
【0096】 EventMonitorReset retcode rsncode monitor_token
【0097】パラメータ:"EventMonitor
Reset"は、呼び込まれる機能の名前である。"re
tcode"は、EventMonitorReset
からの戻りコードを保持するための符号付き4バイト2
進変数である。"rsncode"は、EventMon
itorResetからの理由コードを保持するための
符号付き4バイト2進変数である。"monitor_
token"は、その状態がリセットされるモニタを識
別するトークンを含む、符号付きの4バイト2進変数で
ある。値0は、現スレッド上で最近に活動化された活動
状態のイベント・モニタを識別するために使用される。
【0098】 EventMonitorSelect retcode rsncode number_of_monitors monitor_tokens monitor_selection_masks
【0099】パラメータ:"EventMonitor
Select"は、呼び込まれる機能の名前である。"r
etcode"は、EventMonitorSele
ctからの戻りコードを保持するための符号付き4バイ
ト2進変数である。"rsncode"は、EventM
onitorSelectからの理由コードを保持する
ための符号付き4バイト2進変数である。"numbe
r_of_monitors"は、関係のあるmoni
tor_tokensの数を含む、符号付き4バイト2
進変数である。"monitor_tokens"は、n
umber_of_monitors個の4バイト2進
変数のアレイであり、その各要素は、オンまたはオフに
選択されるモニタのトークンを含む。値0は、現スレッ
ド上で最近に活動化された活動状態のイベント・モニタ
を識別するために使用される。"monitor_se
lection_masks"は、number_of
_monitors個の符号付き4バイト2進変数のア
レイであり、その各要素は、monitor_toke
nsアレイの対応する要素によって識別されるモニタ用
の選択マスクを含む。選択マスクの値が、実行される処
置、すなわち、monitor_tokensアレイの
対応する要素によって識別されるモニタの監視の停止を
意味する"vm_evn_select_off"、及び
monitor_tokensアレイの対応する要素に
よって識別されるモニタの監視の開始を意味する"vm
_evn_select_on"を決定する。
【0100】EventQuery−適用業務プログラ
ムは、イベント発生の影響を受ける可能性のある、現プ
ロセスにおいて定義されているすべてのイベント・モニ
タのリストを含む既存のイベント定義に関する情報を得
るために、この機能を呼び出すことができる。Even
t Monitor Query機能は、特定のイベン
ト・モニタに関するより詳しい情報を得るために使用で
きる。
【0101】 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
【0102】パラメータ:"EventQuery"は、
呼び込まれる機能の名前である。"retcode"は、
EventQueryからの戻りコードを保持するため
の符号付き4バイト2進変数である。"rsncode"
は、EventQueryからの理由コードを保持する
ための符号付き4バイト2進変数である。"event
_name"は、照会されるイベントの名前を含む文字
変数である。"event_name_length"
は、event_nameの長さを含む符号付き4バイ
ト2進変数である。"event_flag"は、イベン
トがどのように管理されるかに関する情報がその中で返
される、符号付きの4バイト2進変数のアレイである。
以下の各セットからのそれぞれただ1つのオプションが
含まれる。イベント名の範囲は、指定されたプロセスを
意味する"vm_evn_process_scop
e"、または指定されたセッションを意味する"vm_e
vn_session_scope"によって指示され
る。イベント信号が複数のイベント・モニタに伝搬され
る方式は、同報通信を意味する"vm_evn_bro
adcast_signals"、FIFOシーケンス
を意味する"vm_evn_fifo_signal
s"、またはLIFOシーケンスを意味する"vm_ev
n_lifo_signals"によって指示される。
シグナラの処理は、信号通知スレッドが実行を継続でき
ることを意味する"vm_evn_async_sig
nals"(省略時指定)、信号通知スレッドがイベン
ト処理の結果を待って中断されていることを意味する"
vm_evn_sync_thread_signal
s"、またはモニタが信号によって活動化された結果と
して走行しているスレッドを除く、信号通知プロセスに
おけるすべてのスレッドが、イベント処理の結果を待っ
て中断されていることを意味する"vm_evn_sy
nc_process_signals"によって指示
される。"event_flag_size"は、eve
nt_flagアレイ内の要素の数を含む符号付き4バ
イト2進変数である。"event_flag_cou
nt"は、EventQueryによってセットされた
event_flagアレイ内の要素の数がその中で返
される、符号付き4バイト2進変数である。"loos
e_signal_limit"は、信号が結合される
適格イベント・モニタが存在しない場合、またはイベン
トが信号で通知された時点でプロセスがイベントについ
て監視していない場合に保持されるイベント信号の数が
その中で返される、符号付き4バイト2進変数のアレイ
である。限界を超えたとき、最も古いルース信号が、新
しく到着した信号用の場所をあけるために放棄される。
値0は、ルース信号が保持されていないことを示す。値
−1は、仮想記憶域が利用できるという条件の下でルー
ス信号セットが無制限に成長できることを意味する。"
signal_timeout_period"は、信
号通知スレッドが信号の処理の完了を待って中断状態に
留まることができる、マイクロ秒で指定された時間の最
大長さがその中で返される、符号付きの4バイト2進変
数である。値0は、信号通知スレッドが信号処理の完了
を無限に待つことを示す。信号通知スレッドが処理を続
けることを指定するオプションがevent_flag
アレイ内に含まれている場合、このパラメータは無意味
である。"loose_signal_count"は、
特定のイベントに関して現在保持されているルース信号
の数がその中で返される、符号付き4バイト2進変数で
ある。"event_selection_mask"
は、イベント選択マスクの状態、すなわちevent_
nameについて監視しないことを意味する"vm_e
vn_select_off"、またはevent_n
ameについて監視することを意味する"vm_evn
_select_on"がその中で返される、符号付き
4バイト2進変数である。"event_enable
ment_mask"は、イベント・イネーブル・マス
クの状態、すなわちevent_nameについてディ
スエーブルされたことを意味する"vm_evn_di
sable"、またはevent_nameについてイ
ネーブルされたことを意味する"vm_evn_ena
ble"がその中で返される、4バイト2進変数であ
る。イベント選択マスク及びイネーブル・マスクは、プ
ロセスごとに維持され、発行プロセスについてだけ報告
される。"monitor_token"は、指定された
イベントの影響を受ける可能性のある、現プロセスにお
いて定義されたイベント・モニタを識別するトークンの
リストがその中で返される、符号付きの4バイト2進変
数のアレイである。順次式と定義されたイベントでは、
トークンはイベントが処理される順序で出力される。同
報通信と定義されたイベントでは、トークンはモニタが
作成された順序で出力される。"monitor_to
ken_size"は、充填に使用できるmonito
r_tokenアレイ内の要素の数を含む、符号付きの
4バイト2進変数である。"monitor_toke
n_count"は、指定されたイベントの影響を受け
る可能性のある、現プロセスにおいて定義されたイベン
ト・モニタの総数がその中で返される、符号付きの4バ
イト2進変数である。monitor_token_c
ountがmonitor_token_sizeより
大きくない場合、monitor_tokenアレイの
第1のmonitor_token_count要素
は、モニタ・セット全体を識別するトークンを含み、ア
レイの残りの要素は不変である。そうでない場合は、第
1monitor_token_size個のモニタ・
トークンが返される。
【0103】EventQueryAll−適用業務プ
ログラムは、すべてのイベントの名前、及びこのプロセ
スにとって可視のすべてのイベント・モニタ用のトーク
ンを得るために、この機能を呼び出すことができる。E
ventQuery及びEventMonitorQu
ery機能は、イベント及びイベント・モニタに関する
より詳しい情報を得るために使用される。
【0104】 EventQueryAll retcode rsncode number_of_events event_name_address event_name_length actual_name_length monitor_token monitor_token_size monitor_token_count
【0105】パラメータ:"EventQueryAl
l"は、呼び込まれる機能の名前である。"retcod
e"は、EventQueryAllからの戻りコード
を保持するための符号付き4バイト2進変数である。"
rsncode"は、EventQueryAllから
の理由コードを保持するための符号付き4バイト2進変
数である。"number_of_events"は、以
下の3つのアレイ内の要素の数を含む符号付きの4バイ
ト2進変数である。"event_name_addr
ess"は、number_of_events個の4
バイト・ポインタ変数のアレイであり、その各要素は、
定義されたイベントの名前がその中で返される文字変数
のアドレスを含む。"event_name_leng
th"は、number_of_events個の符号
付き4バイト2進変数のアレイであり、その各要素は、
event_name_addressアレイの対応す
る要素のバッファの長さを含む。この名前がバッファよ
り長い場合、それは切り捨てられる。短い場合は、バッ
ファの終りにある過剰スペースは不変である。"act
ual_name_length"は、number_
of_events個の符号付き4バイト2進変数のア
レイである。この機能は、このアレイを使用してeve
nt_name_addressアレイの対応する要素
が指すイベント名の長さを出力する。"monitor
_token"は、現プロセスにおいて定義されたすべ
てのイベント・モニタを識別するトークンのリストがそ
の中で返される、符号付きの4バイト2進変数のアレイ
である。"monitor_token_size"は、
充填に使用できるmonitor_tokenアレイ内
の要素の数を含む、符号付きの4バイト2進変数であ
る。"monitor_token_count"は、現
プロセスにおいて定義されたイベント・モニタの総数が
その中で返される、符号付きの4バイト2進変数であ
る。monitor_token_countがmon
itor_token_sizeより大きくない場合、
monitor_tokenアレイの第1のmonit
or_token_count要素は、モニタ・セット
全体を識別するトークンを含み、アレイの残りの要素は
不変である。そうでない場合は、第1monitor_
token_size個のモニタ・トークンだけが返さ
れる。
【0106】 EventRetrieve retcode rsncode monitor_token index data_buffer data_buffer_length event_data_length
【0107】パラメータ:"EventRetriev
e"は、呼び込まれる機能の名前である。"retcod
e"は、EventRetrieveからの戻りコード
を保持するための符号付き4バイト2進変数である。"
rsncode"は、EventRetrieveから
の理由コードを保持するための符号付き4バイト2進変
数である。"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進変数
である。"data_buffer"は、インデックスに
よって識別されたevent_nameとevent_
keyの対に関する信号で通知されたデータがその中で
返される文字変数である。"data_buffer_
length"は、data_bufferの定義され
た長さを含む符号付きの4バイト2進変数である。"e
vent_data_length"は、インデックス
によって識別されたevent_nameとevent
_keyの対に関する信号で通知されたデータの長さが
その中で返される、符号付きの4バイト2進変数であ
る。event_data_lengthがdata_
buffer_lengthより大きい場合、信号で通
知されたデータは右側が切り捨てられ、警告戻りコード
が生成される。
【0108】 EventSelect retcode rsncode number_of_events event_name_address event_name_length event_selection_mask
【0109】パラメータ:"EventSelect"
は、呼び込まれる機能の名前である。"retcode"
は、EventSelectからの戻りコードを保持す
るための符号付き4バイト2進変数である。"rsnc
ode"は、EventSelectからの理由コード
を保持するための符号付き4バイト2進変数である。"
number_of_events"は、関係のあるイ
ベントの数を含む符号付き4バイト2進変数である。"
event_name_address"は、numb
er_of_events個の4バイト・ポインタ変数
のアレイであり、その各要素は、その信号がオンまたは
オフに選択されるイベントの名前のアドレスを含む。"
event_name_length"は、numbe
r_of_events個の符号付き4バイト2進変数
のアレイであり、その各要素は、event_name
_addressアレイの対応する要素が指すeven
t_nameの長さを含む。"event_selec
tion_mask"は、number_of_eve
nts個の符号付き4バイト2進変数のアレイであり、
その各要素は、event_name_address
アレイの対応する要素が指すevent_nameの選
択マスクを含む。選択マスクの値が、実行される処置、
すなわちevent_name_addressアレイ
の対応する要素が指すevent_nameの監視を停
止することを意味する"vm_evn_select_
off"、またはevent_name_addres
sアレイの対応する要素が指すevent_nameの
監視を開始することを意味する"vm_evn_sel
ect_on"を決定する。
【0110】 EventSignal retcode rsncode event_name event_name_length event_data event_data_length event_key_offset event_key_length
【0111】パラメータ:"EventSignal"
は、呼び込まれる機能の名前である。"retcode"
は、EventSignalからの戻りコードを保持す
るための符号付き4バイト2進変数である。"rsnc
ode"は、EventSignalからの理由コード
を保持するための符号付き4バイト2進変数である。"
event_name"は、その発生が信号で通知され
るイベントの名前を含む文字変数である。"event
_name_length"は、event_name
の長さを含む符号付き4バイト2進変数である。"ev
ent_data"は、関係のあるイベント・モニタに
とって使用可能となるデータを含む文字変数である。"
event_data_length"は、event
_dataの長さを与える符号付き4バイト2進変数キ
ーである。"event_key_offset"は、信
号で通知されるイベントの特定のインスタンスを特徴づ
けるキーの第1バイトのevent_dataにおける
オフセットを含む符号付き4バイト2進変数である。"
event_key_length"は、event_
dataに含まれるキーの長さを含む符号付き4バイト
2進変数である。このタイプのイベントに、またはイベ
ントのこの発生にイベントの2次的特性づけが必要でな
い場合は、このキーは空白となる(すなわち、その長さ
は0である)。
【0112】 EventTest retcode rsncode monitor_token number_of_events event_flag
【0113】パラメータ:"EventTest"は、呼
び込まれる機能の名前である。"retcode"は、E
ventTestからの戻りコードを保持するための符
号付き4バイト2進変数である。"rsncode"は、
EventTestからの理由コードを保持するための
符号付き4バイト2進変数である。"monitor_
token"は、その条件がテストされるモニタを識別
するトークンを含む符号付きの4バイト2進変数であ
る。値0は、現スレッド上で最近に活動化された活動状
態のイベント・モニタを識別するために使用される。"
number_of_events"は、その発生がテ
ストされるイベントの数を含む符号付き4バイト2進変
数である。一般に、これは、イベント・モニタの定義中
で指定されたevent_nameとevent_ke
yの組合せの数と同じになるはずである。"event
_flag"は、number_of_events個
の符号付き4バイト2進変数のアレイであり、その各要
素中で、イベント・モニタを定義する際に使用されたe
vent_name_address、event_n
ame_length、event_key_addr
ess及びevent_key_lengthアレイの
対応する要素によって指定されたevent_name
とevent_keyの対によって識別されるイベント
の発生または非発生の指示が返される。すなわち、 0、1、2...イベントが信号で通知され、その数
が、EventRetrieve機能によって得られる
信号に関する提供されるデータの長さであることを示
す。 −1......イベントが信号で通知されていないこ
とを示す。 −2......イベント定義が削除されたことを示
す。 −3......対応するevent_nameとev
ent_keyの対がイベント・モニタ内で定義されて
いなかったことを示す。
【0114】 EventTrap retcode rsncode monitor_token trap_routine_address trap_routine_name
【0115】パラメータ:"EventTrap"は、呼
び込まれる機能の名前である。"retcode"は、E
ventTrapからの戻りコードを保持するための符
号付き4バイト2進変数である。"rsncode"は、
EventTrapからの理由コードを保持するための
符号付き4バイト2進変数である。"monitor_
token"は、その条件がトラップされるモニタを識
別するトークンを含む、符号付きの4バイト2進変数で
ある。値0は、現スレッド上で最近に活動化された活動
状態のイベント・モニタを識別するために使用され
る。"trap_routine_address"は、
モニタによって定義された条件が満たされたときに呼び
込まれるルーチンのアドレスを含む4バイト2進変数で
ある。あるアドレスがそのイベント・モニタと以前に関
連づけられていた場合、そのアドレスは新しいtrap
_routine_addressで自動的に置き換え
られる。アドレスが非0値である場合、trap_ro
utine_nameパラメータは無意味である。"t
rap_routine_name"は、モニタによっ
て定義される条件が満たされたときに呼び込まれるルー
チンの名前を含む8バイト文字変数である。このパラメ
ータは、trap_routine_addressパ
ラメータが0の場合にだけ意味をもつ。ある名前がその
イベント・モニタと以前に関連づけられていた場合は、
その名前は新しいtrap_routine_name
で自動的に置き換えられる。trap_routine
_addressパラメータが0であり、trap_r
outine_nameがブランクである場合は、指定
されたイベント・モニタに関連するトラップが取り消さ
れる。
【0116】 EventWait retcode rsncode monitor_token number_of_events event_flag
【0117】パラメータ:"EventWait"は、呼
び込まれる機能の名前である。"retcode"は、E
ventWaitからの戻りコードを保持するための符
号付き4バイト2進変数である。"rsncode"は、
EventWaitからの理由コードを保持するための
符号付き4バイト2進変数である。"monitor_
token"は、その条件を待つべきモニタを識別する
トークンを含む、符号付きの4バイト2進変数である。
モニタは、すでに待機状態にあってはならない。モニタ
にとって未処理の待機は一時にせいぜい1つである。値
0は、現スレッド上で最近に活動化された活動状態のイ
ベント・モニタを識別するために使用される。"num
ber_of_events"は、EventWait
機能が完了するときにその発生が示されるイベントの数
を含む、符号付き4バイト2進変数である。一般に、こ
れは、イベント・モニタの定義中で指定されたeven
t_nameとevent_keyの組合せの数と同じ
となるはずである。"event_flag"は、num
ber_of_events個の符号付き4バイト2進
変数のアレイであり、その各要素中で、イベント・モニ
タを定義する際に使用されたevent_name_a
ddress、event_name_length、
event_key_address及びevent_
key_lengthアレイの対応する要素によって指
定されるevent_nameとevent_keyの
対によって識別されるイベントの発生または非発生の指
示が返される。すなわち、 0、1、2...イベントが信号で通知され、その数
が、EventRetrieve機能によって得られる
信号に関する提供されるデータの長さであることを示
す。 −1......イベントが信号で通知されていないこ
とを示す。 −2......イベント定義が削除されたことを示
す。 −3......対応するevent_nameとev
ent_keyの対がイベント・モニタ内で定義されて
いなかったことを示す。
【0118】トレース・テーブル 上述のイベント管理サービスは、イベントがトレース・
イベントであるとき、下記のようにしてトレース・テー
ブルを確立し処理するために使用できる。先に指摘した
ように、各イベント定義は、(オンに選択されている)
関係のあるイベント・モニタがないときにルース信号セ
ット41内のイベント定義に記憶し結合することのでき
るイベント信号の最大数を指定するルース信号限界を含
む。ルース信号限界に達したとき、以後の各イベント信
号は、最も古いイベント信号が消去されてその位置に記
憶される。一般に新しいイベント信号ほどより重要なト
レース情報を提供する。したがって、ルース信号セット
は、関係のあるイベント・モニタの定義を遅らせること
によって、後で定義されるイベント・モニタ用のイベン
ト信号のトレース・テーブルまたは「プール」として使
用することができる。あるプロセスがトレース・イベン
ト信号を処理することに関与するとき、そのプロセス
は、そのイベントに関係のあるイベント・モニタを定義
し、EventWait機能、EventTrap機能
またはEventTest機能を呼び出す。イベント・
モニタ作成の結果、イベント・モニタにとって関係のあ
るイベント用のルース信号が、図20を参照して上述し
たようにイベント・モニタの結合信号セットに転送され
る。これらの信号がイベント・モニタを満足させるのに
十分である場合、イベント・モニタはEventWai
t機能、EventTrap機能またはEventTe
st機能の呼出しに応答して現信号セットを確立し、関
連するプロセス内のイベント・ハンドラが、現信号セッ
ト内のイベント信号にアクセスすることができる。
【0119】このように、1つまたは複数のイベント定
義のルース信号セットは、該当するイベント・モニタを
後で定義することによって、関係のあるイベント・ハン
ドラがそれらの特定の要件に従ってそれにアクセスする
ことができる。また、各イベント・ハンドラは、実時間
で、すなわち要求があったとき、トレース・テーブルに
アクセスすることができ、現信号セットから直接に(直
接アクセス記憶装置(DASD)などの外部記憶装置に
アクセスする必要なしに)トレース・データを処理する
ことができる。
【0120】ルース信号セットから結合信号セットへの
転送は、前述の各種の機能を使用して異なる方式で制御
できる。最初にイベントをオフに選択することなく、す
べてのトレース信号に関係のあるイベント・モニタが作
成された場合、そのイベント用のルース信号セット内の
すべてのルース信号がイベント・モニタに転送され、次
いでルース信号セットが完全に削除される。その結果、
関係のある第2のイベント・モニタが後で定義された場
合、これらのルース信号は関係のある第2のイベント・
モニタには使用できなくなる。しかし、2つ以上のイベ
ント・モニタがルース信号セットのコピーを必要とする
場合は、ルース信号をそれらのイベント・モニタのすべ
てに提供するために、以下の手順が利用できる。まず関
係のあるイベントが、EventSelect機能の呼
出しによってオフに選択され(図17の段階254)、
次いでこの機能がイベント定義を「オフに選択済み」と
マークする。次に、イベント・モニタが定義され、その
後、EventSelect機能の別の呼出しによって
そのイベントがオンに選択される(図17の段階26
6)。これに応答して、EventSelect機能が
イベント定義をオンに選択済みとマークし(段階26
8)、イベント・モニタ定義を読み取ることによってそ
のイベントに関係のあるすべてのイベント・モニタを識
別する(段階270)。次に、EventSelect
機能は、イベント定義中で同報通信モードが指定されて
いる場合は、すべてのルース信号のコピーをそのような
関係のあるすべてのイベント・モニタに転送し(ルース
信号セットを消去し)、またイベント定義中で伝搬モー
ドが指定されている場合は、すべてのルース信号をシー
ケンス内の第1のイベント・モニタに転送(しルース信
号セットを消去)する(段階272)。
【0121】やはり先に指摘したように、各イベント・
モニタ定義は、イベント・モニタに関係のある各イベン
トに関する結合信号限界及び満足レベルを含んでいる。
各イベントの結合信号限界は、イベント・モニタに結合
して記憶できる、そのイベント用のイベント信号の最大
数を示す。このイベント・タイプの次のイベント信号が
受け取られたとき、それは同じタイプのイベント用の最
も古いイベント信号を消去してその位置に記憶される。
同じイベント・モニタにとって関係のある異なるイベン
トの結合信号限界は変わり得る。各イベントの満足レベ
ルは、イベント・モニタが、関連するイベント・ハンド
ラに現信号セットからのイベント信号を提供できるよう
にするのに必要なイベントの発生の数を示す。同じイベ
ント・モニタにとって関係のある異なるイベントの満足
レベルは、変わり得る。すべてのイベントについて満足
レベルが満足されたときだけ、イベント・ハンドラは現
信号セットにアクセスすることができる。任意の数のイ
ベント・モニタを定義することができ、これらの定義は
イベント・タイプの同じ、異なる、または部分的にオー
バーラップするセットを参照することができる。1つの
イベントまたはイベント・セットは、複数のイベント・
モニタにとって関係があることができる。各適用業務プ
ログラムは、そ(れら)のイベント・モニタに対してそ
れ自体のパラメータ、すなわち関係のあるイベント・タ
イプ、結合限界、及び満足レベルを指定することができ
る。また、各適用業務プログラムは、EventDel
ete機能69、EventEnable機能44、E
ventModify機能71、EventMonit
orDelete機能68、EventMonitor
Enable機能64、及びEventMonitor
Select機能66の呼出しによって、それ自体のト
レース・テーブルを制御することができる。このような
制御ならびにイベント・モニタの作成は、いつでも、す
なわち動的に行える。
【0122】したがって、ルース信号セットを後で定義
されたイベント・モニタ用のトレース・テーブルまたは
プールとして使用する方法の代替法として、関係のある
イベントの発生前にイベント・モニタを定義し、これを
直接使用してトレース・テーブルを提供することができ
る。結合限界が「ラップ・サイズ」を確立し、満足レベ
ルは、要求に応じてイベント・ハンドラにとって使用可
能になる各タイプの信号の数を確立する。この構成で
は、イベント・モニタが満足される前にイベント・ハン
ドラがEventTrapまたはEventWait機
能を呼び出した場合、イベント・ハンドラは実時間で、
すなわちイベント・モニタが満足され次第、トレース・
テーブル(現信号セット)にアクセスすることができ
る。また、現信号セットが確立されており、イベント・
ハンドラが現信号セットにアクセスするとき、結合信号
セット内に新しいイベント信号用の場所をあけるために
現信号セットが消去される。この代替法は、ルース信号
セットをトレース・テーブルまたはプールとして使用す
るよりも優れたいくつかの利点を提供するが、複数のイ
ベント・モニタが同じイベントに関係があるときは、こ
の代替法ではすべてのイベント信号が(ルース信号限界
を超えたイベント信号さえも)すべてのイベント・モニ
タの結合信号セットに転送されるので、幾分より高いオ
ペレーティング・システム・オーバーヘッドを必要とす
る。これとは対照的に、ルース信号セットをトレース・
テーブルまたはプールとして利用する前の方法では、イ
ベント・モニタへの以後の転送のオーバーヘッドを必要
とするイベント信号の最大数がルース信号限界である。
【0123】トレース・テーブルの適切な確立、管理及
び使用を容易にし、確実にするために、適用業務プログ
ラム・インターフェースを含む下記の追加のトレース管
理サービスが提供される。これらのトレース管理サービ
スは、ITRACE及びETRACEキーボード・コマ
ンド、またはTRACECONTROL呼出しによって
管理される。TRACECONTROL呼出しは、所定
のセット中のどのトレース・イベントが信号で通知され
るか、及び信号で通知されたトレース・イベントの属性
を定義し、またいくつかの追加のトレース処理オプショ
ンを提供する。TRACECONTROL呼出しは、オ
ペレーティング・システム11の会話モニタ・システム
(CMS)部分に対して行われる。オペレーティング・
システム11の会話モニタ・システム部分の標準機能の
多くは、IBMコーポレイションから1990年6月に
発行されたVM/ESA CMS Application Development Refer
ence(IBM資料番号SC24−5451−00)と題
する印刷物に記載されている。TRACECONTRO
L呼出しのフォーマットは以下の通りである。
【0124】 TRACECONTROL Rtncode Rsncode Traceflg Wrapsize Function N Tracetype(N) Tracetype_Setting(N)
【0125】パラメータ:"Rtncode"は、TRA
CECONTROLからの戻りコードを保持するための
符号付き4バイト2進変数である。"Rsncode"
は、TRACECONTROLからの理由コードを保持
するための符号付き4バイト2進変数である。"Tra
ceflg"は、トレース・イベントのシグナラがどの
程度同期化されるべきかを指定する。それは、符号付き
4バイト2進整数であり、有効値は以下の通りである。 0(ASYNC) 信号通知スレッドがイベント処理と
は独立に処理を続ける。 1(TSYNC) 信号通知スレッドがイベント処理の
結果を待って中断される。 2(PSYNC) 信号通知プロセスがイベント処理の
結果を待って中断される。 3(DSYNC) 信号通知プロセス及びそのすべての
子孫がイベント処理の結果を待って中断される。 −1(UNCH) 同期化が変更されない。 "Wrapsize"は、イベントが信号で通知されると
きに適格なトレース・イベント・モニタが存在しない場
合、いくつのトレース・イベントが保持されるかを指定
する。これは、ルース信号限界に対応する。wraps
izeを超えたとき、最も古いトレース・イベントが、
新しく到着した信号用の場所をあけるために放棄され
る。これは、4バイトの符号付き2進整数である。値0
は、トレース・イベントが保持されないことを示す。値
−1は、仮想記憶域がなくなるまでトレース・イベント
が保持され続けることを示す。値−2は、wrapsi
zeが変更されないことを示す。その他の負の値は無効
である。"Function"は、後に続くアレイの使用
を指定する。これは4バイトの符号付き2進整数であ
り、有効値は以下の通りである。 0(QUERY ITRACE) ITRACEトレー
スタイプが照会され、それらの設定がtracetyp
e_settingsアレイ中で返される。 1(QUERY ETRACE) ETRACEトレー
スタイプが照会され、それらの設定がtracetyp
e_settingsアレイ中で返される。 2(ITRACE) tracetype及びtrac
etype_settingが、ITRACEコマンド
への呼出し可能なインターフェースとして使用される。 3(ETRACE) tracetype及びtrac
etype_settingが、ETRACEコマンド
への呼出し可能なインターフェースとして使用される。 −1(UNCH) 後続のアレイが無視されることを
示す。 "N"は、セットされるトレース・タイプの数を指定す
る。これは4バイトの符号付き2進整数である。"Tr
acetype"は、セットされるトレース・タイプを
指定する。それは、4バイトの符号付き2進整数のアレ
イであり、有効値は以下の通りである。 0(ALL) すべてのトレース・タイプ 1(COMM) 通信イベント 2(DISP) 指名イベント 3(STOR) 記憶管理イベント 4(IO) 入出力イベント 5(PRGMAN) プログラム管理イベント 6(PRCMAN) プロセス管理イベント 7(MISC) タイマ、外部割込み及び機械チェ
ック・イベント 8(DTMAN) データ管理イベント 9(GROUP) 以前の設定が、仮想機械グループ
内のすべての機械に関するものである。 "tracetype_setting"は、trace
typeアレイに対応する設定を指定する。これは、4
バイトの符号付き2進整数のアレイであり、有効値は以
下の通りである。 0(オフ) 対応するトレース・タイプがオフにセット
される。 0(オン) 対応するトレース・タイプがオンにセット
される。
【0126】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。これ
らの設定は、システム・プロファイルが実行される前に
セットされ、したがってシステム・プロファイルによっ
てオーバーライドされることがある。
【0127】ITRACEキーボード・コマンドは、効
果の点でTRACECONTROLAPI呼出しと類似
しており、CMSによってイベント信号マネージャへ信
号で通知するために、事前定義されたトレース・イベン
トのうちのどれが選択されるか、及び「ラップ・サイ
ズ」またはルース信号限界を指定する。そのフォーマッ
トは以下の通りである。 "All"は、すべてのトレース・エントリが信号で通知
されるか否かを指定する。許容される値は以下の通りで
ある。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Communication"は、通信トレース・エン
トリが信号で通知されるか否かを指定する。このタイプ
のトレース・エントリの可能な例は、IUCV及びAP
PCトランザクション及び待ち行列動作である。許容さ
れる値は以下の通りである。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Dispatch"は、指名トレース・エントリが信号
で通知されるか否かを指定する。このタイプのトレース
・エントリの可能な例は、Thread Dispat
ch及びThread Priority Modif
icationである。許容される値は以下の通りであ
る。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリは信号で通知されない。 "Storage"は、記憶トレース・エントリが信号で
通知されるか否かを指定する。このタイプのトレース・
エントリの可能な例は、Free Storage O
btain及びFree Storage Retur
nである。許容される値は以下の通りである。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "I/O"は、入出力トレース・エントリが信号で通知さ
れるか否かを指定する。このタイプのトレース・エント
リの可能な例は、入出力要求及び入出力割込み発生であ
る。許容される値は以下の通りである。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Progman"は、プログラム管理トレース・エント
リが信号で通知されるか否かを指定する。このタイプの
トレース・エントリの可能な例は、Command L
oad及びProgram Loadである。許容され
る値は以下の通りである。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Procman"は、プロセス管理トレース・エントリ
が信号で通知されるか否かを指定する。このタイプのト
レース・エントリの可能な例は、Process Cr
eate及びThread Createである。許容
される値は以下の通りである。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Dataman"は、データ管理トレース・エントリが
信号で通知されるか否かを指定する。このタイプのトレ
ース・エントリの可能な例は、File System
Read及びFile System Writeで
ある。許容される値は以下の通りである。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Misc"は、類別できないトレース・エントリが信号
で通知されるか否かを指定する。このタイプのトレース
・エントリの可能な例は、機械チェック、外部割込み及
びタイマ割込みである。許容される値は以下の通りであ
る。 ON トレース・エントリが信号で通知される。 OFF トレース・エントリが信号で通知されない。 "Group"は、信号で通知されるトレース・エントリ
が発行側の仮想機械グループ内のすべての機械において
信号で通知されるか否かを指定する。このオペランド
は、GROUPオペランドが処理されているとき現在信
号で通知されているトレース・エントリだけに適用され
る。すなわち、GROUPオペランドの右側のオペラン
ドは、GROUPオペランドの影響を受けない。このオ
ペランドは、グループの一部分でない仮想機械によって
指定されない。許容される値は以下の通りである。 ON 仮想機械グループ内のすべての機械においてト
レース・エントリが信号で通知される。 OFF 仮想機械グループ内の他のいずれかの機械にお
いてトレース・エントリが信号で通知されない。 "End"は、トレース・エントリが信号で通知されない
ことを指定する。"Wrapsize xxx"は、トレ
ース・エントリが信号で通知されるとき適格なトレース
・イベント・モニタが存在しない場合に、いくつのトレ
ース・エントリがトレース・テーブル内に保持されるか
を指定する。ラップサイズを超えたとき、新しく到着し
た信号用の場所をあけるために最も古いトレース・エン
トリが放棄される。値0は、トレース・エントリが保持
されないことを示す。
【0128】ETRACEコマンドは、イベント信号を
スプール・ファイルに記録するために、選択されたトレ
ース・イベントのうちのどれがオペレーティング・シス
テム11の制御プログラム内の所定のイベント・ハンド
ラに送られるかを指定する。この制御プログラムは、I
BMコーポレイションから1990年6月に発行された
VM/ESA Diagnostics Guide for 370(IBM資料番号L
Y24−5242−00)と題する印刷物に記載されて
いる多くの標準機能を提供する。ETRACEコマンド
のフォーマットは以下の通りである。 ETRACE EVENTNAME ON OR OF
F、EVENTNAMEON OR OFF ETC.
【0129】トレース管理サービスの利用に関する段階
は、以下の通りである。
【0130】まず、適用業務プログラムがTRACEC
ONTROL呼出しを発行し、またはユーザがキーボー
ドを介して、どのトレース・イベントが構築され信号で
通知されるかを定義するITRACEコマンド、ならび
にラップ・サイズを入力する。次に、これらのトレース
・イベントが、CMSの処理における適当な時点で発生
し、CMSがシグナラとして機能して、イベント・デー
タを含むトレース・イベントを信号で通知する。トレー
ス・エントリのフォーマットは以下の通りである。 1.HEADER LENGTH−トレース・ヘッダ情
報の長さ。 2.USERID−トレース信号を発行する仮想機械の
ユーザ識別。 3.PROCESSID−その代りにこのトレース・エ
ントリが信号で通知されるプロセスの一義的プロセス識
別子。 4.TREADID−その代りにこのトレース・エント
リが信号で通知されるスレッドの一義的スレッド識別
子。 5.TRACEID−トレース・エントリの特定のタイ
プ。 6.TIMESTAMP−トレース・エントリが信号で
通知される時間(タイマ単位で)。 7.FORMAT ROUTINE−このトレース・エ
ントリをフォーマットするのに必要なルーチンの識別
子。 8.VARIABLE HEADER DATA−ヘッ
ダに含まれるその他のデータ。 9.DATA LENGTH−実際のトレース・データ
の長さ。 10.VARIABLE DATA−実際のトレース・
データ。
【0131】イベント・モニタがトレース・イベントに
関係がない限り、記憶されるトレース・イベント信号の
最大数はラップ・サイズに等しく、これらのトレース・
イベントはルース信号セット内に記憶される。次に、ユ
ーザ適用業務プログラムは、EventMonitor
Create機能を呼び出して、イベントに関係のある
イベント・モニタを確立する。EventMonito
rCreate呼出しは、イベント・モニタの関係を制
限する制限キーの指定を含むことができる。このシナリ
オでは、イベントに関係のある確立された第1のイベン
ト・モニタだけがルース信号セットの内容を受け取る。
別法として、先に指摘したように、ルース信号セットの
コピーを2つ以上のイベント・モニタに提供するため
に、2つ以上のイベント・モニタが作成される前にイベ
ントをオフに選択することもできる。次に、ユーザ適用
業務プログラムは、EventWaitまたはEven
tTrap機能を呼び出して、イベント・モニタが満足
されたとき現信号セットを得る。ユーザ適用業務プログ
ラムは、イベント・モニタが満足されたときその通知を
受け、EventRetrieve機能を呼び出して現
信号セットの内容を読み取り、次いでイベント・データ
を処理することができる。
【0132】前述のトレース管理サービス及び適用業務
プログラム・インターフェースは仮想機械環境に関する
ものであるが、それらは他の環境でも有用であることを
理解されたい。
【0133】図21及び図22は、多重タスク処理オペ
レーティング・システム内でどのプログラム・スレッド
が実行されたか(障害追求のため)、及び各スレッドに
関する実行時間を追跡するために、トレース管理サービ
ス及び適用業務プログラム・インターフェースを使用す
る例を示す流れ図である。図21は、この機能に関係す
る実際のトレース管理サービス及び適用業務プログラム
・インターフェースを示す。段階500で、オペレーテ
ィング・システムは、EventCreate機能40
の呼出しによって"Trace"という名前のイベントを
作成する。次に、ユーザ適用業務プログラムは、TRA
CECONTROL呼出しを発行し、その呼出し内のパ
ラメータとしてDispatchイベント・タイプを指
定する(段階506)。オペレーティング・システム
は、その呼出しからDispatchパラメータを読み
取り(段階508)、次いでDispatchイベント
を信号で通知するようディスパッチャに通知する(段階
510)。ディスパッチャは、CPU19によって実行
されるプログラム・スレッドを選択する機能である。
【0134】図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番地

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】イベントを管理するためのコンピュータ・
    システムにおいて、 複数のプログラム、同じプログラムの複数の部分、また
    は異なるプログラムの複数の部分があるイベントの通知
    を受け取ることができる、シーケンスを定義する手段
    と、 シーケンス内の前記のプログラムまたは部分のうち第1
    のものにイベントの発生について通知する手段と、 イベント通知を前記シーケンス内の次のプログラムまた
    は部分に伝搬すべきか否かを示す、前記第1のプログラ
    ムまたは部分からの指示を受け取る手段と、 前記の指示がイベント通知を伝搬することである場合
    に、イベント通知をシーケンス内の前記の次のプログラ
    ムまたは部分に伝搬する手段と、 前記の指示がイベント通知を伝搬しないことである場合
    に、シーケンス内の前記の次のプログラムまたは部分へ
    のイベント通知の伝搬をブロックする手段とを含むコン
    ピュータ・システム。
  2. 【請求項2】さらに、イベントを定義するパラメータを
    受け取る手段を含み、前記パラメータの1つが、イベン
    ト通知を受け取るシーケンス内の各プログラムまたは部
    分による、イベント通知を伝搬するようにとの指示に従
    って、イベント通知が伝搬手段によってシーケンス内の
    次のプログラムまたは部分に順次伝搬できるかどうか、
    または、前記のプログラムまたは部分による承認を得て
    または承認を得ないで、そのイベントに関係のあるすべ
    てのプログラム、同じプログラムのすべての部分、また
    は異なるプログラムのすべての部分にイベント通知を同
    報通信すべきかどうかを指定する、請求項1に記載のコ
    ンピュータ・システム。
  3. 【請求項3】さらに、同報通信パラメータで定義される
    イベントの信号に応答して、関係のあるすべてのプログ
    ラムまたは部分にイベントの通知を同報通信する手段を
    含む、請求項1に記載のコンピュータ・システム。
  4. 【請求項4】コンピュータ・システム内でイベントを管
    理する方法であって、 複数のプログラム、同じプログラムの複数の部分、また
    は異なるプログラムの複数の部分があるイベントの通知
    を受け取ることができる、シーケンスを定義する段階
    と、 シーケンス内の前記のプログラムまたは部分のうち第1
    のものにイベントの発生について通知する段階と、 イベント通知を前記シーケンス内の次のプログラムまた
    は部分に伝搬すべきか否かを示す、前記第1のプログラ
    ムまたは部分からの指示を受け取る段階と、 前記の指示がイベント通知を伝搬することである場合
    に、イベント通知をシーケンス内の前記の次のプログラ
    ムまたは部分に伝搬する段階と、 前記の指示がイベント通知を伝搬しないことである場合
    に、シーケンス内の前記の次のプログラムまたは部分へ
    のイベント通知の伝搬をブロックする段階とを含む方
    法。
  5. 【請求項5】さらに、イベントを定義するパラメータを
    受け取る段階を含み、前記パラメータの1つが、イベン
    ト通知を受け取るシーケンス内の各プログラムまたは部
    分による、イベント通知を伝搬するようにとの指示に従
    って、イベント通知が伝搬手段によってシーケンス内の
    次のプログラムまたは部分に順次伝搬できるかどうか、
    または前記のプログラムまたは部分による承認を得てま
    たは承認を得ないで、そのイベントに関係のあるすべて
    のプログラム、同じプログラムのすべての部分、または
    異なるプログラムのすべての部分にイベント通知を同報
    通信すべきかどうかを指定する、請求項4に記載の方
    法。
  6. 【請求項6】さらに、同報通信パラメータで定義される
    イベントの信号を受け取る段階と、 関係のあるすべてのプログラムまたは部分にイベントの
    通知を同報通信する段階とを含む、請求項4に記載の方
    法。
  7. 【請求項7】各定義が、あるイベントの処理中に上記イ
    ベントのシグナラまたは上記イベント・シグナラに関連
    するプロセスの動作モードを指定し、上記動作モードに
    は、イベントが処理されるまでイベント・シグナラまた
    は関連プロセスが処理を中断する同期モードと、イベン
    トの処理中にイベント・シグナラまたは関連プロセスが
    処理を継続する非同期モードとが含まれる、異なるタイ
    プのイベントの定義を受け取る手段と、 上記イベント・シグナラに結合された、上記イベントの
    イベント信号を受信し、各イベントのイベント・シグナ
    ラまたは関連プロセスに、イベント定義に従って同期的
    に進めるのかそれとも非同期的に進めるのかを通知する
    ためのイベント・マネージャ手段とを含むコンピュータ
    ・システム。
  8. 【請求項8】さらに、上記イベント・マネージャ手段に
    結合された、上記コンピュータ内部で実行される適用業
    務プログラム内に常駐し、上記イベントの通知を受取り
    済みで上記イベントを処理中または処理済みのあるイベ
    ント・ハンドラから、上記イベント・シグナラまたは関
    連プロセスが他の処理を続行できるかどうかの通知を受
    け取る手段を含み、 上記イベント・マネージャ手段が、上記イベント・シグ
    ナラまたは関連プロセスに、上記イベント・シグナラま
    たは関連プロセスが中断されている場合、上記イベント
    ・ハンドラからの上記通知に基づいて他の処理を続行す
    るかどうかを通知することを特徴とする、 請求項7に記載のコンピュータ・システム。
  9. 【請求項9】さらに、対応するイベント定義に関連する
    イベント信号を記憶する手段を含み、 上記イベント・マネージャが、現在上記イベントに関係
    のある適用業務プログラムがない時、記憶手段へのイベ
    ント信号の記憶を制御することを特徴とする、 請求項7に記載のコンピュータ・システム。
  10. 【請求項10】あるイベントの定義を受け取るステップ
    であって、上記定義が、イベントの処理中にイベントの
    シグナラまたは上記イベント・シグナラに関連するプロ
    セスの動作モードを指定し、上記動作モードには、イベ
    ントが処理されるまでイベント・シグナラまたは関連プ
    ロセスが処理を中断する同期モードと、イベントの処理
    中にイベント・シグナラまたは関連プロセスが処理を続
    行する非同期モードとが含まれる、イベント定義受取り
    ステップと、 イベントの信号を受け取るステップと、 そのイベントのイベント・シグナラまたは関連プロセス
    に、当該のイベント定義に従って同期的に進めるのかそ
    れとも非同期的に進めるのかを通知するステップとを含
    む、コンピュータ・システム内でイベントを管理する方
    法。
  11. 【請求項11】さらに、コンピュータ・システム内部で
    実行される適用業務プログラム内に常駐し、イベントの
    通知を受け取ったイベント・ハンドラから、イベント・
    シグナラまたは関連プロセスが他の処理を続行できるか
    どうかの通知を受け取るステップと、 上記イベント・シグナラまたは関連プロセスに、上記イ
    ベント・シグナラまたは関連プロセスが中断している場
    合、上記イベント・ハンドラからの上記通知に基づいて
    他の処理を続行するかどうか知らせるステップとを含
    む、請求項10に記載の方法。
  12. 【請求項12】さらに、現在そのイベントに関係のある
    適用業務プログラムがない時、対応するイベント定義に
    関連する上記イベントの発生の信号を記憶するステップ
    を含む、請求項10に記載の方法。
  13. 【請求項13】通知を受け取る際にイベント・モニタが
    関係のあるイベントを指定する、イベント・モニタ用の
    定義を受け取る手段と、 上記受取り手段に結合され、上記定義に従って上記イベ
    ント・モニタを確立する手段であって、複数のタイプの
    イベントの発生の通知を受け取ることに関係のあるイベ
    ント・モニタを確立する能力を有する、イベント・モニ
    タ確立手段と、 上記イベント・モニタにとって関係のある上記タイプの
    イベントを含む様々なタイプのイベントの発生の信号を
    受け取り、上記イベント・モニタに上記イベント・モニ
    タにとって関係のある上記イベントの信号を転送する、
    イベント・マネージャ手段とを含む、コンピュータ・シ
    ステム。
  14. 【請求項14】上記イベント・モニタが、イベント・モ
    ニタ定義で指定されたタイプのイベントの信号を受け取
    った時、関係のあるプログラムにその旨を通知する手段
    を含むことを特徴とする、請求項13に記載のコンピュ
    ータ・システム。
  15. 【請求項15】上記受取り手段が、それぞれの定義が通
    知を受け取る際に当該の各イベント・モニタが関係のあ
    るイベントを指定する、異なる複数のイベント・モニタ
    用の複数の定義を受け取ることができ、 確立手段が、当該の定義に従って複数のイベント・モニ
    タを確立し、同じイベントの発生の通知を受け取ること
    に関係のある複数のイベント・モニタを確立する能力を
    有し、 イベント・マネージャ手段が、上記の同じイベントの発
    生に関係のある上記複数のイベント・モニタに、上記イ
    ベントの発生の信号を送ることができることを特徴とす
    る、請求項13に記載のコンピュータ・システム。
  16. 【請求項16】イベント・モニタ用の定義を受け取る手
    段であって、上記定義が、通知を受け取る際に上記イベ
    ント・モニタが関係のあるイベントを指定し、上記イベ
    ント・モニタを満足するには上記イベントの複数回の発
    生が必要である、受取り手段と、 上記受取り手段に結合され、上記定義に従って上記イベ
    ント・モニタを確立する手段と、 上記イベントの複数の発生の信号を受け取り、上記イベ
    ント信号を上記イベント・モニタに転送する、イベント
    ・マネージャ手段とを含み、 上記イベント・モニタが、上記イベント・モニタが満足
    された時、上記イベント・モニタに関連する関係のある
    プログラムにその旨を通知する手段を含む、 コンピュータ・システム。
  17. 【請求項17】イベント・モニタ用の定義を受け取る手
    段であって、上記定義が通知を受け取る際にイベント・
    モニタが、関係のあるイベントを指定する、受取り手段
    と、 上記受取り手段に結合され、上記定義に従って上記イベ
    ント・モニタを確立する手段と、 上記イベントの発生の信号を受け取り、上記信号を上記
    イベント・モニタに転送する、イベント・マネージャ手
    段とを含み、 上記受取り手段が、上記イベント・マネージャ手段の動
    作期間の大部分を通じてあるプログラムから上記定義を
    受け取ることができ、上記確立手段が、上記コンピュー
    タ・システムの動作を停止することなく、上記定義に従
    って上記イベント・モニタを動的に確立することがで
    き、 さらに、上記イベントに関係のあるイベント・モニタが
    ない場合に、あるイベントの1つまたは複数のイベント
    信号を記憶する手段と、 上記イベントに関係のあるイベント・モニタがない場合
    に記憶された上記イベントの上記イベント信号を、後で
    作成される、上記イベントに関係のあるイベント・モニ
    タに転送する手段とを含む、 コンピュータ・システム。
  18. 【請求項18】上記イベント・モニタが、上記イベント
    ・モニタが上記イベントの1つまたは複数の信号を受け
    取った時、関係のあるプログラムにその旨を通知する手
    段を含むことを特徴とする、請求項17に記載のコンピ
    ュータ・システム。
  19. 【請求項19】上記受取り手段が、異なる複数のイベン
    ト・モニタ用の複数の定義を受け取り、上記各定義が、
    上記イベントの通知を受け取ることに上記各イベント・
    モニタが関係のあることを指定し、 上記確立手段が、当該の定義に従って複数のイベント・
    モニタを確立し、 上記各イベント・モニタが、上記コンピュータ・システ
    ムを停止することなく、上記イベント・マネージャ手段
    の動作期間の大部分を通じて適用業務プログラムによっ
    て異なる時に定義し確立することができ、 イベント・マネージャが、そのイベントが発生した時に
    確立済みであったイベント・モニタに上記イベントの各
    発生の信号を送ることができ、 さらに、上記イベントに関係のあるイベント・モニタが
    ない時に記憶された上記イベントのイベント信号を後で
    生成される、上記イベントに関係のある複数のイベント
    ・モニタに転送する手段を含む、 請求項17に記載のコンピュータ・システム。
  20. 【請求項20】関係のあるプログラムがない場合に記憶
    されるイベント信号の最大数を指定する、あるイベント
    の定義を記憶するステップと、 上記イベントの発生の信号を受け取るステップと、 上記イベントに関係のあるプログラムがない場合に、上
    記イベント定義中の上記最大数による制限の下でイベン
    ト信号を上記イベント定義と関連して記憶するステップ
    と、 上記記憶ステップに続いて、記憶されるイベント信号の
    最大数を指定する定義で上記プログラム用のイベント・
    モニタを定義することにより、上記イベントに対する上
    記プログラムの関係を確立するステップと、 確立ステップの後、上記イベント定義中の上記最大数と
    は異なってもよい上記イベント・モニタ定義中の上記最
    大数による制限の下で、記憶されたイベント信号を上記
    イベント・モニタに転送するステップとを含む、コンピ
    ュータ・システム中でイベントを管理する方法。
  21. 【請求項21】さらに、関係のあるプログラムから上記
    イベント・モニタへの要求に応じて、上記プログラムに
    上記イベントの発生を通知するステップを含む、請求項
    20に記載の方法。
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 true JPH05197568A (ja) 1993-08-06
JPH0799502B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233158A (ja) * 2006-12-29 2011-11-17 Intel Corp Pcuにプロセッサアーキテクチャイベントをファクタリングすることによる電力使用の最適化

Families Citing this family (79)

* 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
EP0657810B1 (en) * 1993-12-06 2001-02-28 Canon Kabushiki Kaisha User-definable interactive system
US6708226B2 (en) 1994-02-28 2004-03-16 At&T Wireless Services, Inc. Multithreaded batch processing system
US6658488B2 (en) 1994-02-28 2003-12-02 Teleflex Information Systems, Inc. No-reset option in a batch billing system
US7412707B2 (en) * 1994-02-28 2008-08-12 Peters Michael S No-reset option in a batch billing system
US5471526A (en) * 1994-02-28 1995-11-28 Telefonaktiebolaget L M Ericsson (Publ.) Tracing with keys and locks on a telecommunication network
AU727444B2 (en) * 1994-02-28 2000-12-14 Telefonaktiebolaget Lm Ericsson (Publ) Tracing with keys and locks
US5668993A (en) 1994-02-28 1997-09-16 Teleflex Information Systems, Inc. Multithreaded batch processing system
US5999916A (en) * 1994-02-28 1999-12-07 Teleflex Information Systems, Inc. No-reset option in a batch billing system
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
AU4469896A (en) 1994-12-23 1996-07-19 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
JP3927246B2 (ja) * 1997-02-19 2007-06-06 株式会社 デジパーク 仮想空間情報処理装置
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
AU1910700A (en) * 1998-11-10 2000-05-29 Robert C. Farrow 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
KR20010103729A (ko) * 1998-12-31 2001-11-23 엘그레시 도론 사용자 확장 가능 이벤트 구조용 방법 및 장치
US7086035B1 (en) * 1999-05-13 2006-08-01 International Business Machines Corporation Method and system for counting non-speculative events in a speculative processor
WO2000070417A1 (en) 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
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
WO2001044979A2 (en) * 1999-12-17 2001-06-21 I2 Technologies, Inc. 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
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 トムソン ライセンシング ネットワークモニタリングシステムにおけるメッセージフィルタリング
RU2495476C2 (ru) 2008-06-20 2013-10-10 Инвенсис Системз, Инк. Системы и способы для иммерсивного взаимодействия с действительными и/или имитируемыми техническими средствами для управления технологическим процессом, контроля состояния окружающей среды и производственного контроля
US20100017583A1 (en) * 2008-07-15 2010-01-21 International Business Machines Corporation Call Stack Sampling for a Multi-Processor System
US9418005B2 (en) 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing 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
US9063721B2 (en) 2012-09-14 2015-06-23 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63228335A (ja) * 1987-03-18 1988-09-22 Fujitsu Ltd 計算機システムにおける事象通知・受取処理方式
JPH02230455A (ja) * 1989-03-03 1990-09-12 Nec Corp 外部記憶装置の割込み制御方式

Family Cites Families (32)

* 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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63228335A (ja) * 1987-03-18 1988-09-22 Fujitsu Ltd 計算機システムにおける事象通知・受取処理方式
JPH02230455A (ja) * 1989-03-03 1990-09-12 Nec Corp 外部記憶装置の割込み制御方式

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233158A (ja) * 2006-12-29 2011-11-17 Intel Corp Pcuにプロセッサアーキテクチャイベントをファクタリングすることによる電力使用の最適化
US8700933B2 (en) 2006-12-29 2014-04-15 Intel Corporation Optimizing power usage by factoring processor architectural events to PMU
US8966299B2 (en) 2006-12-29 2015-02-24 Intel Corporation Optimizing power usage by factoring processor architectural events to PMU
US9367112B2 (en) 2006-12-29 2016-06-14 Intel Corporation Optimizing power usage by factoring processor architectural events to PMU
US11144108B2 (en) 2006-12-29 2021-10-12 Intel Corporation Optimizing power usage by factoring processor architectural events to PMU

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH05197568A (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
US5109515A (en) User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services
JP3691515B2 (ja) オペレーティングシステムにおけるイベント分配装置及び方法
US6470398B1 (en) Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment
US6105098A (en) Method for managing shared resources
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
US20050028171A1 (en) System and method enabling multiple processes to efficiently log events
CN113342554B (zh) Io多路复用方法、介质、设备和操作系统
JP2000259585A (ja) システムアプリケーション管理方式とその管理方式を実行するためのプログラムを記録した記録媒体
JP2001282558A (ja) マルチオペレーティング計算機システム
JP3738701B2 (ja) トランザクション処理システムにおけるシステム設定方法
JP2677249B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ
JP3207564B2 (ja) イベント記録方法及び装置
JPH0895771A (ja) サ−ビス処理システム
JPH0546452A (ja) コミツトメント制御システム
JP3112287B2 (ja) メッセージ管理処理装置
Lemon Kqueue: A generic and scalable event notification facility for freebsd
JP2845886B2 (ja) 各世代データの管理処理方式
JPH11184712A (ja) 情報処理装置
US20070226737A1 (en) Methods, systems, and storage mediums for monitoring and controlling command usage
JP2904243B2 (ja) ネットワーク管理システムにおける排他制御方式
EP0598673A1 (en) Method of and apparatus for providing a client/server architecture