JP3395921B2 - プログラマブル・イベント連絡方法 - Google Patents

プログラマブル・イベント連絡方法

Info

Publication number
JP3395921B2
JP3395921B2 JP15949694A JP15949694A JP3395921B2 JP 3395921 B2 JP3395921 B2 JP 3395921B2 JP 15949694 A JP15949694 A JP 15949694A JP 15949694 A JP15949694 A JP 15949694A JP 3395921 B2 JP3395921 B2 JP 3395921B2
Authority
JP
Japan
Prior art keywords
ecb
event
management table
condition
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP15949694A
Other languages
English (en)
Other versions
JPH086798A (ja
Inventor
喜久雄 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP15949694A priority Critical patent/JP3395921B2/ja
Publication of JPH086798A publication Critical patent/JPH086798A/ja
Application granted granted Critical
Publication of JP3395921B2 publication Critical patent/JP3395921B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、計算機システムにおけ
るプログラムの非同期実行に関し、特に、分散コンピュ
ーティング環境において、ネットワーク上に分散された
複数サーバや複数プロセスと連絡して処理を遂行するよ
うなプログラムが、自ホストや他ホストからの複数のイ
ベントの発生を待つ場合に、個々のイベントの発生をA
NDやORで条件付けして、その条件で組み合わされた
イベントの発生を待つのに好適なプログラマブル・イベ
ント連絡方法に関する。 【0002】 【従来の技術】従来技術におけるイベントの連絡方法と
しては、例えば、株式会社日立製作所のOS(オペレー
ティングシステム)であるVOS3のマニュアルの「ス
ーパバイザマクロ(VOS3/AS 6180−3−1
31−10)」のページ84〜87、94、および95
に記載されているWAIT機能とPOST機能がある。 【0003】WAITマクロは、イベントを待つための
マクロであり、具体的には、イベントを待つにあたって
以下の機能を実現する。 【0004】(1)一個のイベントを指定し当該イベン
トのみの発生を待つ。 (2)複数のイベントを指定して、その内の任意の数の
イベントの発生を待つ。 また、POSTマクロは、上記のWAITマクロで指定
されたイベントの一つに対して、その発生を通知する機
能を実現するマクロである。 【0005】 【発明が解決しようとする課題】上記従来技術では、W
AITマクロの上記(2)の機能により、(1)n個の
イベントを指定し、1個のイベントを待つようにすれ
ば、オア(OR)条件で複数イベントの内の一つを待つ
ことが可能であり、(2)n個のイベントを指定し、こ
れと同数のn個のイベントを待つようにすれば、複数イ
ベントの発生をアンド(AND)条件で待つことが可能
である。 【0006】しかし、複数イベントのうちの、いくつか
のイベントはOR条件を指定し、他のいくつかはAND
条件を指定して、さらに両者の指定条件が共に成立する
のを待つ、と言ったような条件付き組み合わせを指定し
てイベントの発生を待つことが出来ないと言う問題があ
った。 【0007】そのため、上記のようにいくつかのイベン
トに対してOR条件とAND条件を組み合わせた条件で
イベントの発生を待つようにするためには、イベントが
発生する度に、OSからユーザプログラムに制御を戻
し、ユーザプログラムでその条件が満たされたか否かを
判別して処理を進めていく必要があった。しかし、その
ようにすると、イベントが発生する度にOSとユーザプ
ログラム間で制御の受渡やアドレス空間の切り替えが発
生し、これがオーバヘッドとなると言う問題があった。 【0008】本発明の目的は、上記の問題を解決し、よ
り自由度が高く、かつユーザプログラムとOS間の制御
の受渡などのオーバヘッドが少ないプログラマブル・イ
ベント連絡方法を提供することにある。 【0009】 【課題を解決するための手段】本発明では、複数イベン
トを、少なくとも1つのグループは複数のイベントを含
むような複数のグループに分割し、各グループ毎に、A
NDやOR条件を指定できるようにし、さらに各グルー
プ間に対してもANDやOR条件を指定できるようにし
た。特に、前記各グループ毎の条件を葉、各グループ間
の条件を節または根に対応させた木構造を指定できるよ
うにし、ユーザは、上記の木構造を作成してイベントの
発生を待ち、OSが複数イベントの内の、個々のイベン
ト発生が発生した際に、当該イベントがいずれのグルー
プに属するかを調べ、そのグループに指定された条件が
当該イベントの発生により満たされたか否かを調べ、満
たされていれば、木構造の根方向に位置する別のグルー
プに対して同様の処理を繰り返し、順次イベントの発生
を伝搬し、根に達した時点で始めて、ユーザに対しイベ
ントの発生を通知する。 【0010】これにより、指定された条件が整った場合
にのみイベントの発生を連絡するようにしたので、より
自由度の高いプログラマブルかつ、ユーザプログラムと
OS間での制御の受渡やアドレス空間の切り替えが多発
しない低オーバヘッドのイベント連絡方法を提供する事
が可能となる。 【0011】 【作用】複数イベントをグループに分割し、各グループ
毎に条件設定やグルーブ間の条件指定を可能とし、これ
らの条件を木構造で表現する事により、ユーザが任意の
条件組み合わせでイベントの発生を待つ事が可能とな
り、イベント待ち条件の自由度が向上する。また、ユー
ザが指定した任意の条件が整った場合にのみイベントの
発生を連絡するようにしたので、ユーザプログラムとO
S間の前記オーバヘッドの問題も解決出来る。 【0012】 【実施例】以下、図面を用いて本発明の一実施例を述べ
る。 【0013】図1は、本発明のプログラマブル・イベン
ト連絡方法を適用した実施例の全体構成を示す。この実
施例のシステムは、ユーザプログラム1、制御プログラ
ム(以下、OSと呼ぶ)10、ネットワーク20、およ
びディスク21により構成されている。ユーザプログラ
ム1およびOS10は、汎用の計算機上で動作している
プログラムである。 【0014】ユーザプログラム1は、非同期に動作可能
な制御タスク100と制御タスク100の子タスクであ
るタスク200およびタスク300の3つのタスクで構
成される。また、ユーザプログラム1は、ユーザプログ
ラムにイベントの発生を連絡する際に、どのような条件
が整った場合に連絡するかを指定するECBリスト30
を含む。 【0015】OS10は、ユーザプログラム1からの入
出力要求を仲立ちするIOスーババイザ11、イベント
連絡用のWAIT処理12とPOST処理13、および
プログラムの実行をスケジューリングするディスパッチ
ャ14を含む。このうち、本発明に係る特徴的な部分
は、イベント連絡用のWAIT処理12およびPOST
処理13と、OS10からユーザプログラムにイベント
の発生を連絡する際の条件を指定するECBリスト30
である。 【0016】以下では、まず本発明のイベント連絡方法
を利用したプログラム処理全体の処理の流れを説明し、
その後、本発明に係るイベント連絡方法の本実施例にお
ける実現方法について詳細に説明する。 【0017】図1において、まず制御タスク100は、
子タスクの準備完了や後で述べるデータ入力完了などの
イベント連絡用のECBリスト30を作成する(ステッ
プ101)。 【0018】ECBリスト30の構成については後述す
るが、本実施例ではいくつかのイベント発生をand条
件やor条件でグループ化し、さらにそのグループ単位
のイベント発生に対しても同様にand条件やor条件
を付与し、全体としてand条件とor条件を階層的に
組み合わせた複雑な条件でイベント発生を待つことがで
きる。 【0019】図1のECBリスト30の例では、dat
a Aiの入力完了と子タスクAが実行可能となるのを
and条件で待つグループA、およびdata Biの
入力完了と子タスクBが実行可能となるのをand条件
で待つグループBを設定し、グループA,Bのイベント
発生をor条件で待つようにしている。 【0020】なお、前記の子タスクが実行(動作)可能
となると言うことの意味は、プログラムの起動直後では
初期化などの動作が完了しデータを受け付ける事が可能
となった状態を言い、初期化完了以降では以前に受け付
けたデータの処理が完了し新たなデータを受け付ける事
が可能となった状態を言う。 【0021】ECBリスト30の作成(ステップ10
1)の後、前記OS10の一部であるIOスーパバイザ
11に対して、データのREAD(読み込み)を要求す
る(ステップ102,103)。具体的には、ステップ
102でネットワーク20からのdata Ai(iは
順次入力するデータのi番号の意味)のREADを要求
し、ステップ103でディスク21からのdata B
j(jは順次入力するデータのj番号の意味)のREA
Dを要求している。 【0022】その後、後続するステップでこれらのRE
ADの完了と、これらのREADで入力されたデータを
処理する子タスクであるタスク200またはタスク30
0が動作可能となるのを待つため、前記作成済みのEC
Bリスト30を指定してWAITマクロを発行する(ス
テップ104)。ここで発行するWAITマクロは、従
来技術の説明で述べたWAITマクロに対して、本発明
に基づいて機能拡張したものである。 【0023】発行されたWAITマクロは、OS10の
一部であるWAIT処理12により処理される。WAI
T処理12の詳細は図4を参照して詳述するが、その処
理の概要は以下のようなものである。 【0024】即ち、WAIT処理12は、待つべき要求
されたイベントの発生を管理するテーブル(図5で詳述
するPOST管理テーブル)を作成した後、制御タスク
100をWAIT状態にするために所定のフラグを操作
し、タスクのスケジュールを担当するディスパッチャ1
4に制御を渡し、処理を終える。 【0025】ディスパッチャ14は、制御が渡される
と、制御タスク100をスケジュール対象から外し、そ
のOS10で定められているスケジューリングに従って
他のタスクの起動を実施する。 【0026】前記WAITマクロ発行時のECBリスト
30で指定した各々の条件のイベントが発生すると、そ
れらのイベントに対応するPOSTが各々発行される。
例えば、IOスーパバイザ11からはdata Aiや
data BjのREAD完了を示すPOSTが発行さ
れ、タスクA200やタスクB300からはタスクが実
行(動作)可能となったときレディ通知のPOSTが発
行される。 【0027】これらのPOSTは、OS10の一部であ
るPOST処理13により処理される。POST処理1
3の詳細は図6を参照して詳述するが、その概要は、E
CBリストやPOST管理テーブルを参照して、指定さ
れた条件が満たされていたときは制御タスク100を再
起動するために所定のフラグを操作して、ディスパッチ
ャ14に制御を渡し処理を終える、というものである。 【0028】これにより、WAIT状態であった制御タ
スク100はディスパッチャ14により再起動され、制
御タスク100の前記WAITマクロ(ステップ10
4)の直後からの処理が続行される。 【0029】再起動された制御タスク100では、ま
ず、再起動の要因となったイベントが何で有るかをEC
Bリスト30から知る(ステップ105)。具体的に
は、ECBリスト30上のECB管理テーブル40−1
から知るが、ECB管理テーブル40−1の詳細につい
ては後述する。 【0030】次に、次回のWAITマクロの発行に備え
て(ECBリスト30に設定した条件を変更したい場合
は必要に応じて)ECBリスト30を再設定し(ステッ
プ106)、上記で調べたイベント発生要因に対応した
子タスク(タスクAまたはタスクB)を起動し(ステッ
プ107)、入力されたデータの処理を行なう。 【0031】前記ECBリスト30では、図1に示すよ
うな条件が指定されており、ネットワーク20からデ
ータが到着し、かつ、それを処理すべきタスクAがデー
タを受け入れ可能状態にある場合、または、ディスク
21からのデータ入力が完了し、かつ、それを処理すべ
きタスクBがデータを受け入れ可能状態にある場合のい
ずれかの場合(または、両方の場合)に、WAIT(ス
テップ104)が解除され、対応する処理が実行され
る。 【0032】以上のようにして、子タスクを起動し子タ
スクが処理を実行している間に、次のデータを入力する
ために、前記READ(ステップ102)からの処理を
繰り返す。 【0033】以上が本発明のイベント連絡方法を利用し
たユーザプログラム1の全体動作の概要である。 【0034】なお、図1に示す実施例では、説明の簡単
化のためにREAD(ステップ102)とREAD(ス
テップ103)が繰り返しループ内で常に実施されるよ
うになっているが、正確にはステップ105で調べたイ
ベント発生要因に対応してREADが発行される。 【0035】また、図1にECBリスト30で指定され
ている条件や個々のイベントの数や種類は、本実施例に
固有のものであり、本発明に制約を与えるものではな
い。 【0036】次に、図2〜図6を用いて、上述した本実
施例のイベント連絡方法の詳細について説明する。ま
ず、図1のECBリスト30の詳細、即ちOS10から
ユーザプログラム1にイベントの発生を連絡する際に、
どのような条件が整ったら連絡するか、その条件を示す
ためのECBリスト30の詳細を述べる。 【0037】図3はECBリスト30の全体の構成を示
し、図2はECBリスト30を構成する1つのECB管
理テーブル40の形式を示す。図3において、40−
1、40−2,40−3は、それぞれ、図2の形式のE
CB管理テーブルである。図3に示すように、ECBリ
スト30は、図2の形式のECB管理テーブルにより構
成される木構造となっている。木構造にしたがって、各
ECB管理テーブルは、各々、ルート(根)、ノード
(節)、またはリーフ(葉)の何れかに対応する。 【0038】なお図3では、説明の簡単化のため、ノー
ドに相当するECB管理テーブルは省略し、ECB管理
テーブル40−1がルートに、ECB管理テーブル40
−2と40−3がリーフに、それぞれ相当する構成とし
ている。 【0039】このような木構造のリーフに相当するEC
B管理テーブル(図3では40−2と40−3)から、
個々のイベントに関する実際のECB−1(51)〜E
CB−4(54)が指し示される。 【0040】図2を参照して、ECB管理テーブルの形
式について詳しく説明する。ECB管理テーブルは、複
数イベントをグループ化しグループに含まれる個別の各
イベント間の関係条件を指定したり、また、複数のグル
ープ間の関係条件を指定するためのテーブルである。 【0041】ECB管理テーブルが、図3の木構造のリ
ーフに相当する場合、そのECB管理テーブルは、複数
イベントをグループ化しグループに含まれる個別の各イ
ベント間の関係条件を指定する役割を果たす。この場
合、図2のECB管理テーブル40のフィールド45群
は、複数の個別のイベントのECBをポイントし、これ
らポイントされた個別イベントがグループ化され、その
グループ化された個別イベントの数がフィールド41に
セットされる。 【0042】この場合、フィールド42には、当該グル
ープに属する個別イベント間の関係条件を指定する。こ
れは、グループに属するすべての個別イベントの内、い
くつの数の個別イベントが発生すれば当該グループ全体
としてのイベントが発生したとみなすか、その数をフィ
ールド42にセットする事で指定する。即ち、OR条件
にしたい場合はフィールド42に1をセットし、AND
条件にしたい場合はフィールド41にセットした値と同
じ値、即ちグループ内に属するすべての個別イベント数
をセットする。 【0043】なお、フィールド42には、フィールド4
1の値以下の任意の整数nをセット可能であり、この場
合には、任意のn個の数の個別イベントが発生するのを
待つと言う条件の指定になる。 【0044】フィールド43は、当該ECB管理テーブ
ルがECBリストの木構造のどの階層に属するか、その
階層レベルを示す。いま、リーフに相当するECB管理
テーブルについて説明しているが、その場合、階層レベ
ル43には0がセットされる。 【0045】ECB管理テーブルが、図3の木構造のル
ートまたはノードに相当する場合、そのECB管理テー
ブルは、複数のグループ間の関係条件を指定する役割を
果たす。この場合、図2のECB管理テーブル40のフ
ィールド45群は、1つ下の階層の複数のECB管理テ
ーブルをポイントし、これらポイントされたECB管理
テーブルの数がフィールド41にセットされる。 【0046】この場合、フィールド42には、フィール
ド45群でポイントした下位のECB管理テーブルに対
応する複数のグループ間の関係条件を指定する。指定の
仕方は、上述したリーフに相当するECB管理テーブル
の場合と同様である。即ち、ポイントする複数のグルー
プの内、いくつのグループのイベントが発生すれば全体
としてのイベントが発生したとみなすか、その数をフィ
ールド42にセットする。 【0047】上述のリーフの場合と同様にして、グルー
プ間でOR条件やAND条件が設定可能である。また、
フィールド42には、フィールド41の値以下の任意の
整数nをセット可能であることも同じである。 【0048】木構造のルートまたはノードに相当するE
CB管理テーブルでは、階層レベル43には1がセット
される。したがって、ECB管理テーブル40が、個別
イベントをグループ化するためのもの(リーフの場合)
であるか、グループをさらにまとめてグループ間の関係
条件を指定するためのもの(ノードまたはルートの場
合)であるかは、フィールド43の階層レベルが0か否
かによって識別可能となっている。 【0049】ECB管理テーブル40のフィールド44
には、木構造に沿って、上位のECB管理テーブルのア
ドレスがセットされる。ルートに相当するECB管理テ
ーブル40では、フィールド44に0がセットされる。 【0050】ルート以外のECB管理テーブル40は、
上位のECB管理テーブル40のフィールド45群から
ポイントされている。そこで、ECB管理テーブル40
のフィールド47には、上位のECB管理テーブル40
のフィールド45群のうちの何番目のエントリからポイ
ントされているか、その上位テーブル上の位置をセット
する。 【0051】フィールド45群の各エントリに対応し
て、fi(i=1〜n)フィールド46群が設けられて
いる。このfiフィールド46は、初期値として0がセ
ットされ、対応する条件のイベント(即ち、対応するフ
ィールド45でポイントされるECBのイベントまたは
ECB管理テーブルのグループのイベント)が発生した
場合には1がセットされるようになっている。したがっ
て、制御タスク100は、このフィールドfiを参照す
ることにより(図1のステップ105)、自タスクの再
起動要因となったイベントが何であるかが分かるように
なっている(fi=1のものが複数ある場合も有りう
る)。 【0052】次に、図3を参照して、本実施例における
具体的なECBリスト30の例について詳細に説明す
る。 【0053】図3において、ECB管理テーブル40−
2は、発生を待つべき複数の個々のイベントの内、da
ta Aiの入力完了を待つためのECB−1(51)
とタスクAの準備完了(ready)を待つためのEC
B−2(52)とをグループ化し、AND条件でこの2
つのイベントの発生を待つ事を表している。即ち、 (1)ネットワーク20からデータが到着し、かつ、そ
れを処理すべきタスクAがデータを受け入れ可能にある
場合と言う条件を表している。 【0054】そのために、ECB管理テーブル40−2
のフィールド45群からECB−1(51)とECB−
2(52)をポイントしている。2つのイベントをグル
ープ化しているので、ECB管理テーブル40−2のイ
ベント数41には2がセットされている。また、待ちイ
ベント数42には2がセットされ、2つのイベントの両
方が発生することを待つ、即ち2つのイベントをand
条件で待つ、ということを表している。ECB管理テー
ブル40−2はリーフであるので、階層レベル43には
0がセットされている。 【0055】ECB管理テーブル40−3は、発生を待
つべき複数の個々のイベントの内、data Bjの入
力完了を待つためのECB−3(53)とタスクBの準
備完了(ready)を待つためのECB−4(54)
とをグループ化し、AND条件でこの2つのイベントの
発生を待つ事を表している。即ち、 (2)ディスク21からのデータ入力が完了し、かつ、
それを処理すべきタスクBがデータを受け入れ可能にあ
る場合と言う条件を表している。 【0056】そのために、ECB管理テーブル40−3
のフィールド45群からECB−3(53)とECB−
4(54)をポイントしている。2つのイベントをグル
ープ化しているので、ECB管理テーブル40−3のイ
ベント数41には2がセットされている。また、待ちイ
ベント数42には2がセットされ、2つのイベントの両
方が発生することを待つ、即ち2つのイベントをand
条件で待つ、ということを表している。ECB管理テー
ブル40−3はリーフであるので、階層レベル43には
0がセットされている。 【0057】ECB管理テーブル40−1は、上記の
(1)と(2)の2つグループをOR条件で関連付け
し、いずれか一方のグループにおいてその条件が満たさ
れたならば、OS10がイベントの発生をユーザプログ
ラム1に連絡する旨が表現されている。 【0058】即ち、ECB管理テーブル40−1のフィ
ールド44の上位テーブルへのアドレスがこのテーブル
40−1のみ0であり、これによりECB管理テーブル
40−1が木構造のルートである事が分かる。したがっ
て、ECB管理テーブル40−1の条件が満たされたと
き、ユーザプログラム1に連絡する必要がある事がOS
10にて認識される。 【0059】ECB管理テーブル40−1のフィールド
45群は、ECB管理テーブル40−2とECB管理テ
ーブル40−3をポイントしている。2つのグループを
関連付けているので、ECB管理テーブル40−1のイ
ベント数41には2がセットされている。また、待ちイ
ベント数42には1がセットされ、2つのECB管理テ
ーブル40−2と40−3のいずれかの条件が満たされ
ることを待つ、即ち2つのグループのイベントをor条
件で待つ、ということを表している。ECB管理テーブ
ル40−1はルートであるので、階層レベル43には1
がセットされている。 【0060】また、ECB管理テーブル40−1のフィ
ールド45群のうち、第1番目のエントリにECB管理
テーブル40−2のアドレスがセットされているので、
ECB管理テーブル40−2の上位テーブルの位置47
には1がセットされている。同様に、ECB管理テーブ
ル40−1のフィールド45群のうち、第2番目のエン
トリにECB管理テーブル40−3のアドレスがセット
されているので、ECB管理テーブル40−3の上位テ
ーブルの位置47には2がセットされている。 【0061】さらに、ECB管理テーブル40−1,4
0−2,40−3のfiフィールド46は、何れも初期
値として0がセットされている。 【0062】以上述べた図3の木構造を持つECBリス
ト30が指定されたWAITマクロが発行されると(図
1のステップ104)、OS10の一部であるWAIT
処理12に制御が渡され、処理される。 【0063】次に、図4を用いて、このWAIT処理1
2の動作を説明する。 【0064】図4に示すように、WAIT処理12に制
御が渡ると、まずパラメータを解析し、指定された上記
ECBリスト30の所在を知る(ステップ400)。次
に、当該要求に対するイベントが既に発生済みか否かを
調べる(ステップ405)。 【0065】このステップ405の判別は、ECBリス
ト30のルートである前記図3で説明したECB管理テ
ーブル40−1のフィールド42を調べることにより行
なう。このフィールド42は、前述の図2の説明で述べ
たように、指定した複数のイベントの内、いくつの数の
イベントが発生すれば当該グループ全体としてのイベン
トが発生したものとみなすか、その数を記したものであ
り、さらに、後述するPOST処理13により個々のイ
ベントが発生する都度このフィールドの値から1が減算
される。従って、ルートノードであるテーブル40−1
のフィールド42の値が0であればイベントが発生済み
と判断でき、0以上であればその数分の待つべきイベン
トがまだ発生していないと判断出来る。 【0066】ステップ405でイベントが発生済みと判
断された場合には、当該WAITマクロ処理から即座に
当該WAITマクロ発行元に制御を戻し(ステップ43
0)処理を終了する。 【0067】一方、ステップ405でイベントがまだ発
生していないと判断された場合には、図5に示すPOS
T管理テーブル70を作成する(ステップ410)。P
OST管理テーブル70は、WAITマクロのパラメー
タであるECBリストに基づいて作成する。 【0068】ここで、図5を参照して、POST管理テ
ーブル70について説明する。POST管理テーブル7
0は、各ECBのアドレスと、そのECBをポイントす
るECB管理テーブル40のアドレスと、そのECB管
理テーブル40の当該ECBに対応するfiフィールド
46のアドレスとを、対応させて管理するためのテーブ
ルである。 【0069】図5のPOST管理テーブル70は、図3
のECBリストにしたがって作成されたものである。E
CB−1(ECB51)のアドレスがエントリされ、こ
れに対応して、このECBをポイントするECB管理テ
ーブル40−2のアドレス、およびそのECB管理テー
ブル40−2の当該ECB−1に対応するfiフィール
ド46−1のアドレスが設定されている。同様に、EC
B−2(ECB52)のアドレスがエントリされ、これ
に対応して、このECBをポイントするECB管理テー
ブル40−2のアドレス、およびそのECB管理テーブ
ル40−2の当該ECB−2に対応するfiフィールド
46−2のアドレスが設定されている。 【0070】図5に示すように、ECBは、その先頭部
分に、W(WAIT)ビット2、およびP(POST)
ビット3を備えている。Wビット2は、当該ECBがW
AIT状態のときオン(on)される。Pビット3は、
当該ECBがPOSTされたときオンされる。 【0071】再び、図4を参照して、WAIT処理12
の説明を続ける。図5のPOST管理テーブル70を作
成した(ステップ410)後、当該WAITマクロで指
定されたECB−1(51)〜ECB−4(54)のW
ビット2をオンし(ステップ415)し、当該WAIT
マクロ発行元タスクをWAIT状態にするためにスケジ
ュール可能ビットをオフ(off)する(ステップ42
0)。スケジュール可能ビットは、ディスパッチャが参
照するスケジューリングのためのビットである。 【0072】その後、ディスパッチャに制御を渡し、デ
ィスパッチャは、当該WAITマクロ発行元タスクに対
応するスケジュール可能ビットがオフされているので、
当該WAITマクロ発行元タスクをWAIT状態にする
(ステップ425)。 【0073】以上でWAIT処理12の動作説明を終え
る。 【0074】次に、上記のステップ425でWAIT状
態となったタスクが待っているイベントが発生した場合
の、POST処理13の動作を説明する。 【0075】POST処理13は、図1に示すネットワ
ーク20、またはディスク21からのデータ入力が完了
した時点でIOスパーバイザが発行するPOSTに応じ
て起動される。あるいは、タスクA200、または、タ
スクB300が現行の処理を終えwaiting fo
r work状態(次の処理要求を待つ状態)となる時
にPOSTを発行し、これにより起動される。 【0076】図6を用いて、POST処理13の動作を
説明する。以降では、上記のPOST処理13の起動ケ
ースの内、ネットワーク20からデータが到着しデータ
の入力が完了した場合を例に具体的に説明する。 【0077】なお、POSTマクロの形式は従来技術で
述べたものと同じであり、イメージ的には、ECBのア
ドレスとイベントコードをパラメータとして持つ以下の
ような形式のPOSTマクロが発行された場合を例に具
体的に説明する。 【0078】「POST 個別ECBのアドレス,イベ
ントコード」 上記のPOSTが発行され、POST処理13が起動さ
れると、図6に示すように、まずPOSTマクロのパラ
メータで指定されているECBアドレスに対応するEC
Bの当該イベントが発生した事を示すためのフィールド
であるところのポストビット(図に示すPビット3)を
オンする(ステップ500)。この例では、ネットワー
ク20からデータが到着し、ECB−1(図5の51)
のPビット3がオンされる。 【0079】ただし、図6では省略したが、前記ポスト
ビット3が既にオンされていた場合は、誤って重複して
POSTが発行された場合であり、これを検知した時点
でPOST処理13は処理を終了する。従って、以下の
動作説明では重複して発行されたPOST処理は考慮し
ていない。 【0080】次に、先に述べた図5に示すPOST管理
テーブル70を検索し、POSTマクロのパラメータで
指定されているECBのアドレスと同じアドレスがセッ
トされているエントリを見つける(ステップ505)。
今は、ECB−1のアドレスと同じアドレスがセットさ
れている1番めのエントリを見つける事になる。 【0081】次に、当該エントリの第3カラムに格納さ
れているECB管理テーブル40−nのアドレスを取り
出し、当該イベントをグループ管理しているテーブル4
0−2を特定し、さらに第2カラムに格納されているE
CB管理テーブル40−2のフィールド46−nのアド
レスを取り出し、フィールド46−1を特定する(ステ
ップ510)。そして、このフィールド46−1にイベ
ントが発生した事を覚えておくために1をセットする
(ステップ515)。 【0082】次に、当該ECB管理テーブル40−2の
フィールド42(待ちイベント数)が0であるか否かを
判定する(ステップ520)。この判定が成り立つ場合
は、既に当該グループ全体の条件を満たすイベントが発
生済みの場合であり、以降の処理(ステップ525〜5
30)は実施せず、他のPOSTの発生を待つためディ
スパッチャに制御を渡し処理を終了する(ステップ53
5)。 【0083】これは、今説明しているケースから外れる
が、OR条件で複数のイベントをグループ管理している
場合に、最初に発生したイベントを処理する場合にの
み、そのイベントの発生を上位のECB管理テーブルに
通知すれば良く、当該OR条件グループに含まれる2番
目以降に発生したイベントについてはその必要が無く
(既に最初のイベント発生時に上位のECB管理テーブ
ルに通知してあるからである)、2番目以降の処理を抑
止するための判定である。 【0084】ステップ520の判定が成立しない場合に
は、当該ECB管理テーブル40により管理されるイベ
ントグループは条件を満たすべきイベントが発生するの
を待っている場合であり、当該処理中のPOSTにより
条件が満たされるか否かをチェックする。 【0085】このチェックのために、まず、今処理中の
POSTにより、待つべきイベントの数が1つ減った訳
であるから、当該ECB管理テーブル40のフィールド
42にセットされているイベント待ち数を1減じる(ス
テップ525)。そして、再び当該フィールド42の待
ちイベント数が0であるか否かを判定する(ステップ5
30)。0でないときは、さらに別のイベントの発生を
待つため、ディスパッチャに制御を渡し当該POST処
理を終了する(ステップ535)。 【0086】以上のようにして、図3に示した木構造の
条件の内、ECB管理テーブル40−2でAND条件で
管理されるグループに属するECB−1(51)に対応
する1つのイベントの発生によるPOST処理が終了し
た事になる。 【0087】なお、先に図2の説明で述べたように、本
実施例では指定した複数イベントの内、いくつのイベン
トの発生を待つかを(ECB管理テーブル40のフィー
ルド42で)指定する事で、ANDやORの条件を指定
する。従って、上記で述べて来たECB管理テーブル4
0−2では、ECB−1(51)とECB−2(52)
の2つのイベントが登録されており、フィールド42に
は始めにイベントの全数(即ち、2)のイベントを待つ
事が指定されているから、これら2つのイベントのAN
D条件をとることを表している。 【0088】今、上記の動作説明で述べたECB−1
(51)に対応するイベント発生により、ECB管理テ
ーブル40−2のフィルード42の残りの待つべきイベ
ント数が1となる。次に残りのイベントであるECB−
2(52)に対応するイベントが発生すれば、当該グル
ープに対するAND条件が満たされ、さらには、ルート
であるテーブル40−1がOR条件(フィルード42に
1がセットされてる)であるため、木構造全体の条件が
満たされユーザにイベントの連絡をする事になる。 【0089】以下に、このECB−2(52)に対応す
るイベントが発生した場合のPOST処理の手順を述べ
る。 【0090】ECB−2(52)に対応するイベント
は、ディスク21(図1)のREAD要求が完了すると
発生し、前記と同様にPOST処理13に制御が渡って
くる。そして、POST処理13では、上記で述べて来
た先行して発生したECB−1(51)の場合と同様
に、ECB管理テーブル40−2に対してステップ50
0〜530を実施する。ステップ525においてフィー
ルド42が0となり、ステップ530にて判定が成立す
るから、処理はステップ540に進む。 【0091】そして、当該ECB管理テーブル40−2
がルートか否かを調べるため、上位テーブルアドレス4
4が0かどうか判断する(ステップ540)。当該テー
ブル40−2は、図3に示したようにルートでは無いた
め、上位テーブルアドレス44にはECB管理テーブル
40−1のアドレスが格納されている。従って、条件は
成り立たず、この場合には、当該グループの条件が満た
された事を上位テーブル(即ち、テーブル40−1)に
反映させるために、ステップ545以降の処理が実行さ
れる。 【0092】即ち、ECB管理テーブル40−2上のフ
ィールド44により上位テーブルであるECB管理テー
ブル40−1(図3)を特定し、ECB管理テーブル4
0−2上のフィールド47により上位テーブル40−1
上のフィールド46群の内、自グループに対応するエン
トリを特定し、当該グループの条件が満たされた事を示
すために対応するfiフィールド46に1をセットする
(ステップ545)。そして、上位テーブル40−1に
対して、前記ステップ520からの処理を前記と同様に
繰り返す。 【0093】今、図3に示すECB管理テーブル40−
3でグループ化されたグループの条件が満たされていな
いと仮定すると、ECB管理テーブル40−1のフィー
ルド42は1であり、ステップ520は成り立たず、ス
テップ525にてフィールド42が1減じられ残りの待
つべきイベント数が0となり、ステップ530が成り立
ち、ステップ540でルートノードであるか否が判定さ
れる。 【0094】ECB管理テーブル40−1の上位テーブ
ルアドレス44は0であり、ステップ540が成立する
から、木構造全体の条件が満たされたことになる。そこ
で、ユーザにイベントの連絡をするために、イベントを
待っているタスクのスケジュール可能ビットをオン(ス
テップ550)した後、ディスパッチャに制御を渡し
(ステップ555)、イベントを待っているタスクの起
動を依頼する事によりユーザへのイベントの連絡を実施
する。 【0095】以上で、図3に示す木構造化された条件に
対する一連のPOST処理を全て終える。 【0096】なお、上記では図3に示すECB−1(5
1)、ECB−2(52)のグループとECB−3(5
3)、ECB−4(54)のグループの内、前者のグル
ープが先に発生した場合を仮定して、前者のグループに
ついてのみ説明したが、後者のグループが先に発生した
場合も上記の説明と同様の処理であるため説明を省略す
る。 【0097】以上のようにして、ユーザプログラムが複
数のイベントを複数のグループに分割して、各グループ
に含まれる個々のイベント間の条件付けと、グループ間
の条件付けをECBリスト30を用いて指定可能とな
り、この指定された条件に従って、条件が満たされた場
合にのみOSからユーザプログラムにイベントの発生を
連絡するようにしたので、より自由度の高いプログラマ
ブル・イベント連絡が可能となり、かつ、ユーザプログ
ラムとOS間での制御の受渡やアドレス空間の切り替え
回数が減少し処理効率の向上が図れる。 【0098】 【発明の効果】本発明では、複数イベントをグループに
分割し、各グループ毎に条件設定やグルーブ間の条件指
定できるようにしているので、ユーザが任意の条件組み
合わせでイベントの発生を待つ事が可能となり、イベン
ト待ち条件の自由度が向上する。また、ユーザが指定し
た任意の条件が整った場合にのみイベントの発生を連絡
するようにしたので、ユーザプログラムとOS間の制御
の受渡やアドレス空間の切り替え回数が減少し、処理効
率の向上を図ることができる。
【図面の簡単な説明】 【図1】本発明の一実施例の全体構成を示す図。 【図2】本発明の実施例におけるグループ化されたイベ
ント群に含まれる個々のイベント間の条件を指定するた
めの管理(連絡)用のECB管理テーブルを示す図。 【図3】本発明の実施例におけるイベントの発生を連絡
する際の条件を表すための木構造を示す図。 【図4】本発明の実施例におけるWAITマクロの処理
フローチャート図。 【図5】本発明の実施例におけるPOST管理テーブル
を示す図。 【図6】本発明の実施例におけるPOSTマクロの処理
フローチャート図。 【符号の説明】 1…ユーザプログラム、2…ウエイトビット、3…ポス
トビット、10…制御プログラム、11…IOスーパバ
イザ、12…WAIT処理、13…POST処理、14
…ディスパッチャ、20…ネットワーク、21…ディス
ク、30…ECBリスト、100…制御タスク、200
…タスクA、300…タスクB。
フロントページの続き (56)参考文献 特開 平6−35724(JP,A) 特開 平3−102532(JP,A) 特開 平6−89190(JP,A) 特開 平1−189733(JP,A) 特開 昭63−41937(JP,A) 特開 平5−73635(JP,A) 特開 平5−204666(JP,A) 実開 平2−46249(JP,U) 多賀直久,ソフトウェア・ノート:P C−9801用リアルタイム/マルチタス ク・モニタ ELX−86M,ELX− 286の機能概要,インターフェース,C Q出版株式会社,1989年 1月 1日, 第15巻,第1号,p.224−225 山本洋一,リアルタイム・システム設 計のポイント,インターフェース,CQ 出版株式会社,1993年12月 1日,第19 巻,第12号,p.151−162 HI−UX/WE2 オンライントラ ンザクション処理機能/カーネル TA CT/KERNEL,株式会社日立製作 所,1994年 3月31日,第2版,p.55 −56 OS IV/XSP タスク管理マク ロ命令文法書 AF II V10用,富 士通株式会社,1992年11月30日,第2 版,p.92−100 坂村健,ITRON標準ガイドブック ’92−’93,社団法人トロン協会,パー ソナルメディア株式会社,1992年12月20 日,第1版,p.193−194 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 - 9/55 G06F 11/30 - 11/34 G06F 15/16 - 15/177 G06F 15/76 - 15/82

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】計算機システムにおいて、タスクがイベン
    トの発生を待ち、イベントが発生した場合に、オペレー
    ティングシステムがそのイベントの発生を前記タスクに
    通知するプログラマブル・イベント連絡方法であって、ユーザプログラム内にイベント連絡用のリストを作成す
    ることにより、複数の個別イベントをグループ分けした
    各グループとしてのイベント発生の条件成立がグループ
    内の個別イベントの発生のAND条件によるのかOR条
    件によるのかをそれぞれ設定し、かつ前記タスクに通知
    すべき全体としてのイベント発生の条件成立が前記各グ
    ループのイベント発生のAND条件によるのかOR条件
    によるのかを設定する条件指定を行い、 前記オペレーティングシステムは、前記タスクから前記
    リストが指定されて指示されると、前記リストに基づい
    て、前記各グループのイベント発生の有無を判断し、か
    つ全体としてのイベント発生の条件が成立したことを判
    断したときに前記タスクに対してイベントの発生を通知
    することを特徴とする プログラマブル・イベント連絡方
    法。
JP15949694A 1994-06-17 1994-06-17 プログラマブル・イベント連絡方法 Expired - Fee Related JP3395921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15949694A JP3395921B2 (ja) 1994-06-17 1994-06-17 プログラマブル・イベント連絡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15949694A JP3395921B2 (ja) 1994-06-17 1994-06-17 プログラマブル・イベント連絡方法

Publications (2)

Publication Number Publication Date
JPH086798A JPH086798A (ja) 1996-01-12
JP3395921B2 true JP3395921B2 (ja) 2003-04-14

Family

ID=15695043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15949694A Expired - Fee Related JP3395921B2 (ja) 1994-06-17 1994-06-17 プログラマブル・イベント連絡方法

Country Status (1)

Country Link
JP (1) JP3395921B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5884901B2 (ja) * 2012-04-20 2016-03-15 富士通株式会社 プログラム、情報処理装置およびイベント処理方法
JP2016025649A (ja) 2014-07-24 2016-02-08 富士通株式会社 電子装置及び機器検知方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
HI−UX/WE2 オンライントランザクション処理機能/カーネル TACT/KERNEL,株式会社日立製作所,1994年 3月31日,第2版,p.55−56
OS IV/XSP タスク管理マクロ命令文法書 AF II V10用,富士通株式会社,1992年11月30日,第2版,p.92−100
坂村健,ITRON標準ガイドブック’92−’93,社団法人トロン協会,パーソナルメディア株式会社,1992年12月20日,第1版,p.193−194
多賀直久,ソフトウェア・ノート:PC−9801用リアルタイム/マルチタスク・モニタ ELX−86M,ELX−286の機能概要,インターフェース,CQ出版株式会社,1989年 1月 1日,第15巻,第1号,p.224−225
山本洋一,リアルタイム・システム設計のポイント,インターフェース,CQ出版株式会社,1993年12月 1日,第19巻,第12号,p.151−162

Also Published As

Publication number Publication date
JPH086798A (ja) 1996-01-12

Similar Documents

Publication Publication Date Title
JP2779587B2 (ja) コンピュータシステムに用いる名前スペースの一部分を別の名前スペースの一部分として利用可能にするための装置及びその方法
JP2724256B2 (ja) コンピュータシステム
US6014673A (en) Simultaneous use of database and durable store in work flow and process flow systems
US5455903A (en) Object oriented customer information exchange system and method
US4901231A (en) Extended process for a multiprocessor system
US5446878A (en) Method for selectively enabling subset of embedded event-making instructions and selecting types and items of event-based data to be collected per enabled instruction
JP3636744B2 (ja) 分散システムおよび分散システムの自動運転スケジュールの作成方法
US8185578B2 (en) Client server system and method for executing an application utilizing distributed objects
JPH04505977A (ja) オブジェクト指向分散処理システム
JPH04299414A (ja) コンピュータシステムの性能を動的にモデル化するインタフェース
CN111400011B (zh) 一种实时任务调度方法、系统、设备及可读存储介质
TW405090B (en) Predictive cache loading by program address discontinuity history
CN104615487A (zh) 并行任务优化系统和方法
US20020042814A1 (en) Processing common work using flexible command strings
CN1147112A (zh) 多处理机控制系统中控制单位程序信息过载的方法
JPH0668032A (ja) データベースシステム
JP3395921B2 (ja) プログラマブル・イベント連絡方法
JP2809389B2 (ja) プログラムの遠隔呼出方法及び装置
JP2583018B2 (ja) 資源管理コンピュータ・システム
CN112613792A (zh) 数据处理方法、系统、计算机设备和存储介质
US8175905B2 (en) Source allocation system, program and method
JPH09160847A (ja) クライアント・サーバ型分散処理システム
CN110795223A (zh) 一种针对资源统一管理的集群调度系统及方法
CN111435350A (zh) 海量数据的实时监控方法、系统、设备及存储介质
JPH06314262A (ja) 分散処理システム

Legal Events

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