JPH0766331B2 - プログラム出口の動的非アクティブ化方法および装置 - Google Patents
プログラム出口の動的非アクティブ化方法および装置Info
- Publication number
- JPH0766331B2 JPH0766331B2 JP3115823A JP11582391A JPH0766331B2 JP H0766331 B2 JPH0766331 B2 JP H0766331B2 JP 3115823 A JP3115823 A JP 3115823A JP 11582391 A JP11582391 A JP 11582391A JP H0766331 B2 JPH0766331 B2 JP H0766331B2
- Authority
- JP
- Japan
- Prior art keywords
- exit
- program
- scheduled
- call
- calls
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】本発明は、データ処理およびデー
タ処理システムに関する。特に、本発明は情報をアプリ
ケーションへ送る目的のためのシステム・ソフトウエア
とアプリケーション・プログラム間のインターフェース
に関する。
タ処理システムに関する。特に、本発明は情報をアプリ
ケーションへ送る目的のためのシステム・ソフトウエア
とアプリケーション・プログラム間のインターフェース
に関する。
【0002】
【従来の技術】システム・プログラムの制御下で実行す
るアプリケーション・プログラムは、出口と呼ばれるあ
る定義されたプログラム・モジュールとしばしば関連付
けられる。システム・プログラムは、これら出口を呼出
して事象、システムその他についての情報をアプリケー
ション・プログラムへ送る。出口の典型的な使い方は、
システム・エラー情報をアプリケーション・プログラム
へ送ることである。別の事例は、ネットワーク・リンク
の状態情報を、これを監視して通信ネットワークを管理
することがその仕事であるアプリケーション・プログラ
ムへ送ることである。
るアプリケーション・プログラムは、出口と呼ばれるあ
る定義されたプログラム・モジュールとしばしば関連付
けられる。システム・プログラムは、これら出口を呼出
して事象、システムその他についての情報をアプリケー
ション・プログラムへ送る。出口の典型的な使い方は、
システム・エラー情報をアプリケーション・プログラム
へ送ることである。別の事例は、ネットワーク・リンク
の状態情報を、これを監視して通信ネットワークを管理
することがその仕事であるアプリケーション・プログラ
ムへ送ることである。
【0003】出口モジュールと関連するパラメータある
いはモジュール自体の変更のため、ユーザはしばしば出
口モジュールをロードし直す必要がある。出口モジュー
ルを修正するプロセスは、この変更がソース・モジュー
ルになされること、およびこの新しいモジュールがコン
パイルされてシステムにロードされることを要求する。
しかし、その時アクティブ状態であると、その時点での
出口モジュールがそのときアクティブ状態であると、こ
の出口モジュールは新しいモジュールをロードする前
に、まず非アクティブ状態にされねばならない。現在の
非アクティブ化方法は、システム・プログラム全体を停
止させるか、あるいは出口の呼出しがアクティブ状態か
あるいはペンディング中であるかを最初に判定すること
なく出口を非アクティブ状態にするかのいずれかを必要
とする。
いはモジュール自体の変更のため、ユーザはしばしば出
口モジュールをロードし直す必要がある。出口モジュー
ルを修正するプロセスは、この変更がソース・モジュー
ルになされること、およびこの新しいモジュールがコン
パイルされてシステムにロードされることを要求する。
しかし、その時アクティブ状態であると、その時点での
出口モジュールがそのときアクティブ状態であると、こ
の出口モジュールは新しいモジュールをロードする前
に、まず非アクティブ状態にされねばならない。現在の
非アクティブ化方法は、システム・プログラム全体を停
止させるか、あるいは出口の呼出しがアクティブ状態か
あるいはペンディング中であるかを最初に判定すること
なく出口を非アクティブ状態にするかのいずれかを必要
とする。
【0004】出口モジュールをロードし直す第1の従来
技術の方法は、システム・プログラムの正しい順序での
停止を必要とする。この結果、システム・プログラムが
実行中でない期間中システム機能が完全に失われる。こ
れは、システムの中断であるので、たとえ短い期間でも
ユーザにとっては受入られない。例えば、VTAM(V
TAMはIBM社の商標)ソフトウエアの如き通信アク
セス制御ソフトウエアの場合には、停止はネットワーク
全体の通信機能の停止を意味する。第2の方法は、シス
テム・プログラムを終ることなく特定の出口の非アクテ
ィブ化を可能にするが、出口モジュールがその時実行中
であるかもしれなこと、あるいは1つ以上の呼出しがペ
ンディング(待ち行列)であるかもしれないことの可能
性を考慮に入れていない。このような状態では、アプリ
ケーション・プログラムは、非アクティブ状態の出口が
呼出される時陳腐化した情報を受取ることがあり、ある
いはおそらくは異常終了して、これまた重大な結果を生
じるおそれがある。もはや存在しない出口に対して呼出
しが生じる時には、他の問題も生起し得る。
技術の方法は、システム・プログラムの正しい順序での
停止を必要とする。この結果、システム・プログラムが
実行中でない期間中システム機能が完全に失われる。こ
れは、システムの中断であるので、たとえ短い期間でも
ユーザにとっては受入られない。例えば、VTAM(V
TAMはIBM社の商標)ソフトウエアの如き通信アク
セス制御ソフトウエアの場合には、停止はネットワーク
全体の通信機能の停止を意味する。第2の方法は、シス
テム・プログラムを終ることなく特定の出口の非アクテ
ィブ化を可能にするが、出口モジュールがその時実行中
であるかもしれなこと、あるいは1つ以上の呼出しがペ
ンディング(待ち行列)であるかもしれないことの可能
性を考慮に入れていない。このような状態では、アプリ
ケーション・プログラムは、非アクティブ状態の出口が
呼出される時陳腐化した情報を受取ることがあり、ある
いはおそらくは異常終了して、これまた重大な結果を生
じるおそれがある。もはや存在しない出口に対して呼出
しが生じる時には、他の問題も生起し得る。
【0005】他の従来技術、例えば、IBM社により市
販されるソフトウエア製品である「ジョブ・エントリ・
システム(Job Entry System)」は、
制御コンソールから手動で出口をアクティブにし、ある
いは非アクティブにする手段を提供する。しかし、この
技術においてもすら、その非アクティブ化以前に出口が
呼出されているか、あるいは呼出しがペンディング状態
にあるかを判定する手法がない。このようなシステムに
おいて出口を単に非アクティブ化することは、既に述べ
たことに似た問題を惹き起すおそれがある。このため、
従来技術においては、システム・プログラムの作動を正
しい方法で停止することによる以外に、ロードのやり直
しその他のため出口を安全に非アクティブ化する方法が
ない。
販されるソフトウエア製品である「ジョブ・エントリ・
システム(Job Entry System)」は、
制御コンソールから手動で出口をアクティブにし、ある
いは非アクティブにする手段を提供する。しかし、この
技術においてもすら、その非アクティブ化以前に出口が
呼出されているか、あるいは呼出しがペンディング状態
にあるかを判定する手法がない。このようなシステムに
おいて出口を単に非アクティブ化することは、既に述べ
たことに似た問題を惹き起すおそれがある。このため、
従来技術においては、システム・プログラムの作動を正
しい方法で停止することによる以外に、ロードのやり直
しその他のため出口を安全に非アクティブ化する方法が
ない。
【0006】
【発明の概要】本発明は、コンピュータ・システムにお
いて出口を動的に非アクティブ化する装置および方法に
係る。出口は、第1のプログラムと関連するプログラム
・モジュールであり、これはアクティブ状態にある間、
予め決められたシステム事象の発生に応答して第2のプ
ログラムにより呼出される。出口を非アクティブ化する
要求が受取られると、出口の1つ以上の呼出しが進行中
であるかあるいは予定されているかが判定される。もし
出口の呼出しが進行中でないかあるいは予定されていな
ければ、この出口は非アクティブ状態としてマークされ
る。しかし、もし出口の1つ以上の呼出しが進行中か予
定されていると、この出口は、進行中あるいは予定され
ている全ての呼出しが完了した時に初めて非アクティブ
状態としてマークされる。
いて出口を動的に非アクティブ化する装置および方法に
係る。出口は、第1のプログラムと関連するプログラム
・モジュールであり、これはアクティブ状態にある間、
予め決められたシステム事象の発生に応答して第2のプ
ログラムにより呼出される。出口を非アクティブ化する
要求が受取られると、出口の1つ以上の呼出しが進行中
であるかあるいは予定されているかが判定される。もし
出口の呼出しが進行中でないかあるいは予定されていな
ければ、この出口は非アクティブ状態としてマークされ
る。しかし、もし出口の1つ以上の呼出しが進行中か予
定されていると、この出口は、進行中あるいは予定され
ている全ての呼出しが完了した時に初めて非アクティブ
状態としてマークされる。
【0007】望ましい実施態様においては、出口の1つ
以上の呼出しが進行中かあるいは予定されていることが
判定されると、出口の状態はペンディングの非アクティ
ブ状態としてマークされる。出口のいかなる呼出しも、
出口の状態がアクティブ状態としてマークされなけれ
ば、認められない。出口に対する進行中あるいは予定さ
れた全ての呼出しの完了は、出口に対する呼出しが成功
する度ににカウンタをカウントアップし、出口に対する
呼出しの完了毎にカウンタをカウントダウンすることに
より判定される。このカウンタのゼロ状態は、このよう
な進行中あるいは予定される呼出しが無いことを意味す
る。呼出しが完了しカウンタの状態がゼロである時、出
口の状態が「ペンディングの非アクティブ状態」である
ならば、出口を非アクティブ化しても何の問題もない。
以上の呼出しが進行中かあるいは予定されていることが
判定されると、出口の状態はペンディングの非アクティ
ブ状態としてマークされる。出口のいかなる呼出しも、
出口の状態がアクティブ状態としてマークされなけれ
ば、認められない。出口に対する進行中あるいは予定さ
れた全ての呼出しの完了は、出口に対する呼出しが成功
する度ににカウンタをカウントアップし、出口に対する
呼出しの完了毎にカウンタをカウントダウンすることに
より判定される。このカウンタのゼロ状態は、このよう
な進行中あるいは予定される呼出しが無いことを意味す
る。呼出しが完了しカウンタの状態がゼロである時、出
口の状態が「ペンディングの非アクティブ状態」である
ならば、出口を非アクティブ化しても何の問題もない。
【0008】
【実施例】図1は、システム・プログラム102、アプ
リケーション・プログラム104および複数の出口プロ
グラム・モジュール106−1乃至106−Nを含むコ
ンピュータ・システム100を示している。出口プログ
ラム・モジュールは、情報をアプリケーション・プログ
ラムへ送るためシステム・プログラムにより使用され
る。システムと関連しているのは、出口モジュールを定
義するためのデータ構造108である。本発明により出
口を制御するためのアクティブ化プログラム110、非
アクティブ化ぷろぐらむ112および呼出しプログラム
114もまたシステムと関連している。
リケーション・プログラム104および複数の出口プロ
グラム・モジュール106−1乃至106−Nを含むコ
ンピュータ・システム100を示している。出口プログ
ラム・モジュールは、情報をアプリケーション・プログ
ラムへ送るためシステム・プログラムにより使用され
る。システムと関連しているのは、出口モジュールを定
義するためのデータ構造108である。本発明により出
口を制御するためのアクティブ化プログラム110、非
アクティブ化ぷろぐらむ112および呼出しプログラム
114もまたシステムと関連している。
【0009】出口定義データ構造は、1つ以上の出口を
識別する手段をシステムに与える。図2は出口定義に関
するデータ構造を示す。出口がアクティブ化、非アクテ
ィブ化あるいは呼出されるべき時、システムはマスター
出口制御ブロック200を参照する。このマスター制御
ブロックは、多数の出口制御ブロック(XCB)の最初
のものに対するポインタ202を含む。定義された各出
口は、個々のXCBと関連付けられる。図3は、XCB
の詳細を例示している。各出口は、名前フィールド30
0に記憶されるそれ自体の名前を有する。出口がロード
される主メモリー・アドレス、即ち呼出しアドレスある
いはエントリ指定アドレスは、フィールド302に記憶
される。フィールド304は、明らかなように、1つの
出口のその時アクティブな呼出し(段階)の数を追跡す
るため使用される呼出しカウンタを含む。フィールド3
06は、出口の状態表示を含む。このフィールドの右側
に示されるように、4つの状態、即ち「非アクティブ状
態」、「ペンディングのアクティブ状態」、「アクティ
ブ状態」および「ペンディングの非アクティブ状態」が
定義される。最後に、フィールド308が、出口をアク
ティブ化するプログラムの識別子を含む。マスター制御
ブロック200およびXCBは、出口と関連するシステ
ム・プログラムの初期化の間に主メモリーへロードされ
る。
識別する手段をシステムに与える。図2は出口定義に関
するデータ構造を示す。出口がアクティブ化、非アクテ
ィブ化あるいは呼出されるべき時、システムはマスター
出口制御ブロック200を参照する。このマスター制御
ブロックは、多数の出口制御ブロック(XCB)の最初
のものに対するポインタ202を含む。定義された各出
口は、個々のXCBと関連付けられる。図3は、XCB
の詳細を例示している。各出口は、名前フィールド30
0に記憶されるそれ自体の名前を有する。出口がロード
される主メモリー・アドレス、即ち呼出しアドレスある
いはエントリ指定アドレスは、フィールド302に記憶
される。フィールド304は、明らかなように、1つの
出口のその時アクティブな呼出し(段階)の数を追跡す
るため使用される呼出しカウンタを含む。フィールド3
06は、出口の状態表示を含む。このフィールドの右側
に示されるように、4つの状態、即ち「非アクティブ状
態」、「ペンディングのアクティブ状態」、「アクティ
ブ状態」および「ペンディングの非アクティブ状態」が
定義される。最後に、フィールド308が、出口をアク
ティブ化するプログラムの識別子を含む。マスター制御
ブロック200およびXCBは、出口と関連するシステ
ム・プログラムの初期化の間に主メモリーへロードされ
る。
【0010】出口のアクティブ化は、関連するアプリケ
ーションへ情報を送るためシステムにより呼出すことが
できるように、出口を使用可能にする。出口の非アクテ
ィブ化は、出口を使用不能にすることによりその呼出し
を阻止する。出口のアクティブ化、非アクティブ化およ
び呼出しは、パラメータACT(アクティブ化)、IN
ACT(非アクティブ化)あるいはINVOKE(呼出
し)のいずれかをそれぞれ指定するインライン・マクロ
の使用によってトリガーされる。下記の表1は、インラ
イン・マクロのフォーマットおよびそのパラメータを記
述する。この表中、( )がマクロに与えられねばなら
ない可変データを囲む。「|」は与えられるデータに関
するオプションを分けている。
ーションへ情報を送るためシステムにより呼出すことが
できるように、出口を使用可能にする。出口の非アクテ
ィブ化は、出口を使用不能にすることによりその呼出し
を阻止する。出口のアクティブ化、非アクティブ化およ
び呼出しは、パラメータACT(アクティブ化)、IN
ACT(非アクティブ化)あるいはINVOKE(呼出
し)のいずれかをそれぞれ指定するインライン・マクロ
の使用によってトリガーされる。下記の表1は、インラ
イン・マクロのフォーマットおよびそのパラメータを記
述する。この表中、( )がマクロに与えられねばなら
ない可変データを囲む。「|」は与えられるデータに関
するオプションを分けている。
【0011】
【表1】 インライン・マクロ INLINE ACT|INACT|INVOKE EXIT(名前) PLIST(parm1、parm2、、、parmn) AREA(作業域アドレス) RTNCODE(戻りコード・アドレス) PROG(プログラムID)。
【0012】ACTは出口のアクティブ化を要求する。
INACTは、出口の非アクティブ化を要求する。IN
VOKEは、出口を呼出す。EXITは、問題となる出
口を名指す。PLISTは、呼出された出口へ送られる
パラメータをリストする。AREAは、出口に送られる
べきパラメータ・リストを形成するため使用されるメモ
リー作業域を指定する。RTNCODEは、要求の戻り
コードを記憶する記憶場所を指定する。PROGは、マ
クロを実行しているプログラムの識別を含む。
INACTは、出口の非アクティブ化を要求する。IN
VOKEは、出口を呼出す。EXITは、問題となる出
口を名指す。PLISTは、呼出された出口へ送られる
パラメータをリストする。AREAは、出口に送られる
べきパラメータ・リストを形成するため使用されるメモ
リー作業域を指定する。RTNCODEは、要求の戻り
コードを記憶する記憶場所を指定する。PROGは、マ
クロを実行しているプログラムの識別を含む。
【0013】インライン・マクロの多くの特徴は、本発
明とは関係がなく、詳細には論述しない。
明とは関係がなく、詳細には論述しない。
【0014】インライン・マクロは、アクティブ化およ
び非アクティブ化のため用いられる時、それぞれ図4お
よび図5のアクティブ化および非アクティブ化プログラ
ムを呼出すため、システム・ソフトウエアにより後で処
理される要求を待ち行列に入れる。出口の呼出しのため
のマクロの使用は、図6に示される呼出しプログラムの
直接呼出しをもたらす結果となる。従って、望ましい実
施態様においては、全ての呼出し要求は、出口に対する
ペンディングの(待ち行列にある)要求とは対照的に、
出口モジュールの段階の即時の実行をもたらす結果とな
る。しかし、これは直裁な設計上の選択であって、本発
明の範囲を一切限定するものではない。ペンディングの
出口は、図6に関して述べるように出口の呼出しが生成
される時よりも、呼出し要求が待ち行列にある時呼出し
カウンタを単に増分することにより容易に許される。
び非アクティブ化のため用いられる時、それぞれ図4お
よび図5のアクティブ化および非アクティブ化プログラ
ムを呼出すため、システム・ソフトウエアにより後で処
理される要求を待ち行列に入れる。出口の呼出しのため
のマクロの使用は、図6に示される呼出しプログラムの
直接呼出しをもたらす結果となる。従って、望ましい実
施態様においては、全ての呼出し要求は、出口に対する
ペンディングの(待ち行列にある)要求とは対照的に、
出口モジュールの段階の即時の実行をもたらす結果とな
る。しかし、これは直裁な設計上の選択であって、本発
明の範囲を一切限定するものではない。ペンディングの
出口は、図6に関して述べるように出口の呼出しが生成
される時よりも、呼出し要求が待ち行列にある時呼出し
カウンタを単に増分することにより容易に許される。
【0015】図4の出口アクティブ化プログラムは、シ
ステムが出口のアクティブ化に対する待ち行列を要求す
る時実行される。このようなアクティブ化は、システム
・プログラムあるいはアプリケーションにより要求され
ることがある。ステップ400は、図3における出口状
態フィールド306を調べることにより、最初に問題と
なる出口が非アクティブ状態にあることを検証する。も
し出口が非アクティブ状態以外の状態にあるならば、ス
テップ402が、アクティブ化要求が失敗したことを要
求元プログラムに通知する。出口の状態フィールド30
6が出口が非アクティブ状態にあることを示すならば、
ステップ404がフィールド306を「ペンディングの
アクティブ状態」へ更新する。次に、ステップ406
は、出口モジュールを主メモリーへロードして、必要と
し得る初期化の実行のためこれを呼出す。出口の初期化
の完了と同時に、ステップ408が出口状態フィールド
306をアクティブ状態としてマークし、要求元プログ
ラムの識別をXCBのアクティブ状態プログラムIDフ
ィールド308に保管する。このプログラムIDは、イ
ンライン・マクロ呼出しに含まれ、アクティブ化待ち行
列要求に格納される。この時、要求元プログラムは、要
求が成功したことを通知され、出口は以降の非アクティ
ブ化および呼出し要求を処理する用意ができる。
ステムが出口のアクティブ化に対する待ち行列を要求す
る時実行される。このようなアクティブ化は、システム
・プログラムあるいはアプリケーションにより要求され
ることがある。ステップ400は、図3における出口状
態フィールド306を調べることにより、最初に問題と
なる出口が非アクティブ状態にあることを検証する。も
し出口が非アクティブ状態以外の状態にあるならば、ス
テップ402が、アクティブ化要求が失敗したことを要
求元プログラムに通知する。出口の状態フィールド30
6が出口が非アクティブ状態にあることを示すならば、
ステップ404がフィールド306を「ペンディングの
アクティブ状態」へ更新する。次に、ステップ406
は、出口モジュールを主メモリーへロードして、必要と
し得る初期化の実行のためこれを呼出す。出口の初期化
の完了と同時に、ステップ408が出口状態フィールド
306をアクティブ状態としてマークし、要求元プログ
ラムの識別をXCBのアクティブ状態プログラムIDフ
ィールド308に保管する。このプログラムIDは、イ
ンライン・マクロ呼出しに含まれ、アクティブ化待ち行
列要求に格納される。この時、要求元プログラムは、要
求が成功したことを通知され、出口は以降の非アクティ
ブ化および呼出し要求を処理する用意ができる。
【0016】出口を非アクティブ化する要求は、呼出さ
れた出口が復元不能な誤り(図示せず)に遭遇した場合
に、アプリケーション・プログラムあるいはシステムの
いずれか一方によって生成される。非アクティブ化要求
は、パラメータINACTを指定するインライン・マク
ロを生じることにより開始される。図5は、非アクティ
ブ化の待ち行列要求がシステムにより処理される時実行
される非アクティブ化シーケンスのフローを示す。ステ
ップ500に示されるように、出口の非アクティブ化要
求は、出口の状態が「出口制御ブロック」の出口状態フ
ィールド306においてアクティブ状態でマークされる
場合にのみ処理される。さもなければ、ステップ502
が、要求するプログラムに非アクティブ化要求が不成功
であったことを通知する。ステップ500が出口の状態
がアクティブ状態であることを検証した後、ステップ5
04が出口状態フィールド306を更新して非アクティ
ブ化要求がペンディングであることを表示する。この要
求は、ステップ506がこの出口に対する進行中の(ま
たは待ち行列の呼出しが使用される場合はばペンディン
グの)呼出しがないと判定したときにのみ終了する。こ
れは、以下に説明するように、出口制御ブロックの呼出
しカウント・フィールド304のゼロ状態によって表示
される。もし呼出しカウント状態がゼロでなければ、こ
の非アクティブ化要求は当面無視される。これは、呼出
される出口の最後のアクティブな段階が終了した時、図
6の呼出しシーケンスによって後に復元される。ステッ
プ506において進行中の呼出しが存在しなければ、出
口が必要とするクリーンアップ処理を行うため出口が呼
出される。出口が制御を戻すと、ステップ508は主メ
モリーから出口モジュールを削除し、出口状態フィール
ド306を更新して出口がその時非アクティブ状態であ
ることを表示する。次いで、その非アクティブ化要求が
完了したことを警報するため非アクティブ化要求を生じ
たプログラムに対する応答が発せられる。出口が非アク
ティブ化されると、この出口に対する正しい要求のみが
アクティブ化用となる。
れた出口が復元不能な誤り(図示せず)に遭遇した場合
に、アプリケーション・プログラムあるいはシステムの
いずれか一方によって生成される。非アクティブ化要求
は、パラメータINACTを指定するインライン・マク
ロを生じることにより開始される。図5は、非アクティ
ブ化の待ち行列要求がシステムにより処理される時実行
される非アクティブ化シーケンスのフローを示す。ステ
ップ500に示されるように、出口の非アクティブ化要
求は、出口の状態が「出口制御ブロック」の出口状態フ
ィールド306においてアクティブ状態でマークされる
場合にのみ処理される。さもなければ、ステップ502
が、要求するプログラムに非アクティブ化要求が不成功
であったことを通知する。ステップ500が出口の状態
がアクティブ状態であることを検証した後、ステップ5
04が出口状態フィールド306を更新して非アクティ
ブ化要求がペンディングであることを表示する。この要
求は、ステップ506がこの出口に対する進行中の(ま
たは待ち行列の呼出しが使用される場合はばペンディン
グの)呼出しがないと判定したときにのみ終了する。こ
れは、以下に説明するように、出口制御ブロックの呼出
しカウント・フィールド304のゼロ状態によって表示
される。もし呼出しカウント状態がゼロでなければ、こ
の非アクティブ化要求は当面無視される。これは、呼出
される出口の最後のアクティブな段階が終了した時、図
6の呼出しシーケンスによって後に復元される。ステッ
プ506において進行中の呼出しが存在しなければ、出
口が必要とするクリーンアップ処理を行うため出口が呼
出される。出口が制御を戻すと、ステップ508は主メ
モリーから出口モジュールを削除し、出口状態フィール
ド306を更新して出口がその時非アクティブ状態であ
ることを表示する。次いで、その非アクティブ化要求が
完了したことを警報するため非アクティブ化要求を生じ
たプログラムに対する応答が発せられる。出口が非アク
ティブ化されると、この出口に対する正しい要求のみが
アクティブ化用となる。
【0017】出口の呼出し要求は、パラメータINVO
KEを指定するインライン・マクロを用いてシステム・
プログラム内の予め決められた呼出し点から開始され
る。図6の呼出しプログラムは、多くの段階が同時に実
行できるように再入可能なようにコード化される。各段
階は、下記のステップを実行する。指定された出口の状
態がステップ600で調べられて、これがその時アクテ
ィブ状態であることを検証する。もしそうでなければ、
エラー・メッセージがステップ602において要求元へ
戻され、この要求は無視される。もし出口がアクティブ
状態であれば、ステップ604は進行中である出口の呼
出し数を反映するように呼出しカウンタ304を進め
る。そして、出口がステップ606において呼出され
る。前に述べたように、この呼出しは望ましい実施態様
においては出口を直ちに実行する。もし待ち行列入れ呼
出しが代わりに用いられるならば、ステップ606は待
ち行列要求で置換され後で出口を呼出すことになる。出
口がその処理を完了して制御を戻すと、呼出しカウンタ
304がステップ608でカウントダウンされる。図6
のこのステップおよび残りのステップは、もしそのよう
な実施態様が用いられるならば、呼出し待ち行列サーバ
により行われることになる。ステップ610は、この
時、非アクティブ化プログラムのステップ606におい
て無視された以前の非アクティブ化要求がこの時処理の
ため再び待ち行列に入れられるべきかどうかを決定す
る。もし出口の非アクティブ化がペンディングであり、
呼出しカウンタ304がこの時ゼロであるならば、ステ
ップ612がこの出口に対する非アクティブ化要求を再
び待ち行列に入れる。このため、図5における非アクテ
ィブ化プログラムに対する以降のエントリを生じる。呼
出しカウンタ304が呼出しプログラムのこの段階に対
するステップ610においてゼロでなければ、以後の段
階が完了すべき最後の段階であるならば、非アクティブ
化要求を再び待ち行列に入れる。
KEを指定するインライン・マクロを用いてシステム・
プログラム内の予め決められた呼出し点から開始され
る。図6の呼出しプログラムは、多くの段階が同時に実
行できるように再入可能なようにコード化される。各段
階は、下記のステップを実行する。指定された出口の状
態がステップ600で調べられて、これがその時アクテ
ィブ状態であることを検証する。もしそうでなければ、
エラー・メッセージがステップ602において要求元へ
戻され、この要求は無視される。もし出口がアクティブ
状態であれば、ステップ604は進行中である出口の呼
出し数を反映するように呼出しカウンタ304を進め
る。そして、出口がステップ606において呼出され
る。前に述べたように、この呼出しは望ましい実施態様
においては出口を直ちに実行する。もし待ち行列入れ呼
出しが代わりに用いられるならば、ステップ606は待
ち行列要求で置換され後で出口を呼出すことになる。出
口がその処理を完了して制御を戻すと、呼出しカウンタ
304がステップ608でカウントダウンされる。図6
のこのステップおよび残りのステップは、もしそのよう
な実施態様が用いられるならば、呼出し待ち行列サーバ
により行われることになる。ステップ610は、この
時、非アクティブ化プログラムのステップ606におい
て無視された以前の非アクティブ化要求がこの時処理の
ため再び待ち行列に入れられるべきかどうかを決定す
る。もし出口の非アクティブ化がペンディングであり、
呼出しカウンタ304がこの時ゼロであるならば、ステ
ップ612がこの出口に対する非アクティブ化要求を再
び待ち行列に入れる。このため、図5における非アクテ
ィブ化プログラムに対する以降のエントリを生じる。呼
出しカウンタ304が呼出しプログラムのこの段階に対
するステップ610においてゼロでなければ、以後の段
階が完了すべき最後の段階であるならば、非アクティブ
化要求を再び待ち行列に入れる。
【0018】上記の構成が本発明の原理の応用の単なる
例示であること、および本発明の趣旨および範囲を逸脱
することなく他の構成が当業者によって想到し得ること
を理解すべきである。
例示であること、および本発明の趣旨および範囲を逸脱
することなく他の構成が当業者によって想到し得ること
を理解すべきである。
【図1】システム・プログラム、アプリケーション・プ
ログラム、システム・プログラムからアプリケーション
・プログラムへの情報の送付のため使用される複数の出
口、出口を定義するデータ構造、および本発明による出
口を制御するためのアクティブ化、非アクティブ化およ
び呼出しプログラムを含むコンピュータ・システムを示
す図である。
ログラム、システム・プログラムからアプリケーション
・プログラムへの情報の送付のため使用される複数の出
口、出口を定義するデータ構造、および本発明による出
口を制御するためのアクティブ化、非アクティブ化およ
び呼出しプログラムを含むコンピュータ・システムを示
す図である。
【図2】システムにおける定義された各出口に対する1
つの制御ブロックを含む例示的出口制御ブロック・デー
タ構造を示す図である。
つの制御ブロックを含む例示的出口制御ブロック・デー
タ構造を示す図である。
【図3】1つの出口制御ブロックを例示する詳細図であ
る。
る。
【図4】出口モジュールをアクティブ化するためのステ
ップを例示するフローチャートである。
ップを例示するフローチャートである。
【図5】出口モジュールを非アクティブ化するためのス
テップを例示するフローチャートである。
テップを例示するフローチャートである。
【図6】出口モジュールを呼出すステップを例示するフ
ローチャートである。
ローチャートである。
100 コンピュータ・システム 104 アプリケーション・プログラム 106−1〜106−n 出口プログラム・モジュール 108 出口定義データ構造 110 出口アクティブ化プログラム 112 出口非アクティブ化プログラム 114 出口呼出しプログラム 200 マスター出口制御ブロック 202 出口制御ブロック(XCB)に対するポインタ 300 名前フィールド 302 出口エントリ・アドレス 304 呼出しカウンタ 306 出口状態フィールド 308 出口アクティブ化プログラム識別子を含むフィ
ールド
ールド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グラハム・ポール・ベイ アメリカ合衆国20878、メリーランド州 ガイザーズバーグ、ヒドン・ブルック・テ ラス 12176番地 (72)発明者 アラン・フランク・ブロッドニック アメリカ合衆国27613、ノース・カロライ ナ州 ローリー、スリー・ブリッジス・サ ークル 7012番地 (72)発明者 ジョール・マーティン・サルツマン アメリカ合衆国20878、メリーランド州 ノース・ポトマック、ペブル・ヒル・レー ン 14728番地 (72)発明者 ティモシー・リー・スピックラー アメリカ合衆国21769、メリーランド州 ミドルタウン、アスペン・コート 7305番 地
Claims (12)
- 【請求項1】少なくとも1つのコンピュータ、メモリ、
システム・プログラムおよび前記システム・プログラム
の制御のもとで前記コンピュータにより実行されるアプ
リケーション・プログラムを含むシステムにおいて、前
記アプリケーション・プログラムに関連づけられたプロ
グラム・モジュールよりなり所定のシステム事象の発生
に応答して前記システム・プログラムにより呼び出され
るべくスケジュールされている出口を、前記システム・
プログラムが走っている間前記システム・プログラムに
対して呼出し不能にすることによって前記出口を動的に
非アクティブ化する方法であって、 a)前記出口を非アクティブ化する要求に応答して、前
記出口に対する1つ以上の呼出しが進行中かまたは予定
されているかを前記メモリを探索することにより判定す
る段階と、 b)前記出口に対する呼出しが進行中でなくまたは予定
されていなければ、前記出口に関連するメモリ位置で前
記出口の状態を非アクティブ状態としてマークして前記
出口を前記システム・プログラムに対して呼出し不能に
する段階と、 c)前記出口に対する1つ以上の呼出しが進行中または
予定されているならば、かかる進行中または予定されて
いる呼出しがすべて完了した時に初めて前記出口の状態
を非アクティブ状態としてマークする段階と、 よりなるプログラムの出口の動的非アクティブ化方法。 - 【請求項2】前記段階c)が更に、前記出口に対する1
つ以上の呼出しが進行中または予定されているならば、
該出口の状態をペンディングの非アクティブ状態として
マークする段階を含む、請求項1の方法。 - 【請求項3】前記段階c)が更に、前記出口に対する進
行中または予定されている呼出しがすべて完了したかを
定期的にテストする段階を含む、請求項1の方法。 - 【請求項4】前記出口を呼出すに際して前記出口の状態
を検査し、前記出口の状態がアクティブ状態としてマー
クされていなければ呼出しを打ち消す段階を更に含む、
請求項1、2または3の方法。 - 【請求項5】前記出口に対する呼出しが成功する度にカ
ウンタをカウントアップし、前記出口に対する呼出しが
完了する毎に前記カウンタをカウントダウンする段階を
更に含む、請求項3の方法。 - 【請求項6】前記テストの段階が更に前記カウンタが非
ゼロ状態かをテストする段階を含む、請求項5の方法。 - 【請求項7】少なくとも1つのコンピュータ、メモリ、
システム・プログラムおよび前記システム・プログラム
の制御のもとで前記コンピュータにより実行されるアプ
リケーション・プログラムを含むシステムにおいて、前
記アプリケーション・プログラムに関連づけられたプロ
グラム・モジュールよりなり所定のシステム事象の発生
に応答して前記システム・プログラムにより呼び出され
るべくスケジュールされている出口を、前記システム・
プログラムが走っている間前記システム・プログラムに
対して呼出し不能にすることによって前記出口を動的に
非アクティブ化する方法であって、 前記出口に対する進行中または予定されている呼出しが
なければ、前記出口を非アクティブ化する要求に応答し
て、前記出口に関連づけられたメモリ位置で前記出口の
状態を非アクティブ状態にマークする段階と、 前記出口に対する1つ以上の呼出しが進行中または予定
されているならば、非アクティブ化要求を保留して前記
該出口の状態をペンディングの非アクティブ状態として
マークする段階と、 前記出口の状態がペンディングの非アクティブ状態とし
てマークされる間、前記出口に対するすべての新しい呼
出し要求を打消す段階と、 前記出口の状態がペンディングの非アクティブ状態とし
てマークされる間、各呼出し要求の完了時に前記出口に
対するすべての予定されている呼出しが完了したかテス
トする段階と、 全ての呼出しが完了したとき、前記出口の状態を非アク
ティブ状態としてマークする段階と、 よりなるプログラムの出口の動的非アクティブ化方法。 - 【請求項8】少なくとも1つのコンピュータ、メモリ、
システム・プログラムおよび前記システム・プログラム
の制御のもとで前記コンピュータにより実行されるアプ
リケーション・プログラムを含むシステムにおいて、前
記アプリケーション・プログラムに関連づけられたプロ
グラム・モジュールよりなり所定のシステム事象の発生
に応答して前記システム・プログラムにより呼び出され
るべくスケジュールされている出口を、前記システム・
プログラムが走っている間前記システム・プログラムに
対して呼出し不能にすることによって前記出口を動的に
非アクティブ化するように前記システムを制御する装置
であって、 a)出口非アクティブ化要求信号に応答して、前記出口
に対する1つ以上の呼出しが進行中または予定されてい
るかを判定するために前記メモリを探索する探索手段
と、 b)前記探索手段に応答して前記出口に対する呼出しが
進行中でないかまたは予定されていなければ、前記出口
を非アクティブ化するアクティブ化手段と、 c)前記探索手段によりアクティブ化されて前記出口に
対する現在のまたは予定された呼出しが完了する時を確
認する確認手段と、 d)前記確認手段に応答して以後前記出口を非アクティ
ブ化する非アクティブ化手段と、 よりなる制御装置。 - 【請求項9】前記探索手段は、前記出口に対する1つ以
上の呼出しが進行中または予定されているならば、該出
口の状態をペンディングの非アクティブ状態としてマー
クする手段を更に含む、請求項8の制御装置。 - 【請求項10】前記出口を呼出す際に前記出口の状態を
テストするテスト手段と、前記テスト手段に応答して前
記出口の状態がアクティブ状態としてマークされていな
ければ、呼出しを打消す手段とを更に含む、請求項8ま
たは9の制御装置。 - 【請求項11】前記探索手段が更に、カウンタと、前記
出口に対する呼出しが成功する度に前記カウンタをカウ
ントアップする手段と、前記出口に対する呼出しが完了
する毎に前記カウンタをカウントダウンする手段を更に
含む、請求項8の制御装置。 - 【請求項12】前記確認手段が更に、前記カウンタが非
ゼロ状態かをテストする手段を含む、請求項11の制御
装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US541429 | 1990-06-21 | ||
| US07/541,429 US5136710A (en) | 1990-06-21 | 1990-06-21 | Dynamic inactivation of program exits of the application program while the system program is running |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0540635A JPH0540635A (ja) | 1993-02-19 |
| JPH0766331B2 true JPH0766331B2 (ja) | 1995-07-19 |
Family
ID=24159562
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3115823A Expired - Lifetime JPH0766331B2 (ja) | 1990-06-21 | 1991-05-21 | プログラム出口の動的非アクティブ化方法および装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5136710A (ja) |
| EP (1) | EP0462913A3 (ja) |
| JP (1) | JPH0766331B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0548869B1 (en) * | 1991-12-23 | 2000-06-14 | Microsoft Corporation | Method for integrating a discrete subprogram into a main program |
| JPH07281873A (ja) * | 1994-02-21 | 1995-10-27 | Tohoku Nippon Denki Software Kk | 出口ルーチン管理システム |
| US5724585A (en) * | 1995-10-06 | 1998-03-03 | International Business Machines Corporation | Method for processing an application termination initiated from a pre-initialized computer language execution environment |
| DE69841526D1 (de) | 1997-03-04 | 2010-04-15 | Panasonic Corp | Zur effizienten Ausführung vieler asynchronen Ereignisaufgaben geeigneter Prozessor |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4389706A (en) * | 1972-05-03 | 1983-06-21 | Westinghouse Electric Corp. | Digital computer monitored and/or operated system or process which is structured for operation with an improved automatic programming process and system |
| JP2509952B2 (ja) * | 1987-10-28 | 1996-06-26 | 富士通株式会社 | オンライン中におけるロ―ドモジュ―ル入替方式 |
| JPH01205358A (ja) * | 1988-02-12 | 1989-08-17 | Nec Corp | 周辺制御装置 |
| US5067073A (en) * | 1988-08-02 | 1991-11-19 | International Business Machines Corporation | Embedded tracing method for identifying program executed paths |
| US5036484A (en) * | 1988-11-23 | 1991-07-30 | International Business Machines Corporation | Personal computer/host emulation system for handling host data with personal computer application programs at personal computers |
-
1990
- 1990-06-21 US US07/541,429 patent/US5136710A/en not_active Expired - Lifetime
-
1991
- 1991-04-30 EP EP19910480073 patent/EP0462913A3/en not_active Withdrawn
- 1991-05-21 JP JP3115823A patent/JPH0766331B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0462913A2 (en) | 1991-12-27 |
| JPH0540635A (ja) | 1993-02-19 |
| EP0462913A3 (en) | 1993-10-13 |
| US5136710A (en) | 1992-08-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2002314786B2 (en) | Extensible event notification mechanism | |
| US5784618A (en) | Method and system for managing ownership of a released synchronization mechanism | |
| US5748959A (en) | Method of conducting asynchronous distributed collective operations | |
| KR100463987B1 (ko) | 공통처리알고리즘을이용한다수의큐핸들링방법및장치 | |
| JP3701816B2 (ja) | タスク終了を通知する方法および装置 | |
| JPH03224036A (ja) | 資源の排他制御方式 | |
| JPH0766331B2 (ja) | プログラム出口の動的非アクティブ化方法および装置 | |
| JP3090641B2 (ja) | 並列データ処理システムおよびその制御方法 | |
| JPH0635758A (ja) | プログラム監視制御装置 | |
| JPH05134930A (ja) | メモリ保護装置 | |
| JP2998721B2 (ja) | 並列処理プログラムとコプロセッサとの間の排他制御方法およびその排他制御機能を有する計算システム | |
| CN115904621B (zh) | 超融合系统主机维护方法及装置 | |
| JPH04314141A (ja) | マルチタスク制御方法とその機構 | |
| JPH09114673A (ja) | プログラムロード装置と方法 | |
| JP2641919B2 (ja) | ジョブスケジュール停止装置 | |
| JPS60252966A (ja) | フアイルアクセス可能時間事前通知処理方式 | |
| JPH05113891A (ja) | 疑似セマフオア方式 | |
| JP3075359B2 (ja) | プログラムデバッグ開始処理方式 | |
| JPH04205231A (ja) | プログラム実行制御方式 | |
| JPH09114683A (ja) | 計算機システムの制御方法 | |
| JP2500446B2 (ja) | 間欠動作機能を有する電文一括処理システム | |
| JPS63128442A (ja) | 周期起動タスク制御装置 | |
| JPH04127333A (ja) | アプリケーションタスクの障害検出方式 | |
| JPS6385938A (ja) | プログラムの多重並行動作制御装置 | |
| JPH02170219A (ja) | デバイスクロスコール制御方式 |