JPH0740231B2 - 非同期例外捕獲方式 - Google Patents

非同期例外捕獲方式

Info

Publication number
JPH0740231B2
JPH0740231B2 JP63267633A JP26763388A JPH0740231B2 JP H0740231 B2 JPH0740231 B2 JP H0740231B2 JP 63267633 A JP63267633 A JP 63267633A JP 26763388 A JP26763388 A JP 26763388A JP H0740231 B2 JPH0740231 B2 JP H0740231B2
Authority
JP
Japan
Prior art keywords
exception
processing
asynchronous
module
catching
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
JP63267633A
Other languages
English (en)
Other versions
JPH02113336A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63267633A priority Critical patent/JPH0740231B2/ja
Publication of JPH02113336A publication Critical patent/JPH02113336A/ja
Publication of JPH0740231B2 publication Critical patent/JPH0740231B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は計算機システムにおける非同期例外捕獲方式に
関し、特にリスト処理システム等の如く記憶領域にデー
タを動的に割り付け、処理の実行とともにガーベッジコ
レクションによって前記割り付けられたデータが記憶領
域内で移動するような状況で非同期例外を捕獲する方式
に関するものである。
〔従来の技術〕
従来、利用者からの要求により非同期例外を起こすこと
ができる計算機システムにおいては、利用者からの要求
により非同期例外を発生する非同期例外発生機構とこれ
で発生した非同期例外を検出する非同期例外検出機構と
を設け、利用者からの非同期例外が発生すると、システ
ムがどの処理を実行していようとも即座に現処理を中断
してレジスタの退避を行った後、その非同期例外の種別
に対応して予め利用者が定義した例外捕獲処理へ制御を
渡し、その例外捕獲処理が終了すると、レジスタを例外
発生時の内容に復元してから上記中断した処理を再開し
ていた。
第3図は上述の如き従来の非同期例外捕獲方式を適用し
た計算機システムの機能ブロック図であり、リスト処理
システム等の如きシステムを示す。同図に示すシステム
は、非同期例外発生機構14,非同期例外検出機構15、お
よびLISP処理系の如き処理系16で構成され、処理系16で
は、複数の処理モジュール18−1〜18−mが記憶領域に
格納されたデータを処理し、実行制御部17が、第4図に
示すように、モジュール呼び出し要求を解析する処理S
1,この解析結果に基づいて要求先の処理モジュール18−
1等を呼び出す処理S2、および処理S2で呼び出した処理
モジュール18−1等の処理終了時のモジュール終了処理
S3を繰り返し実行することにより処理モジュール18−1
〜18−mへの制御の受け渡しを司り、全体として処理系
16本来の処理を遂行している。また、非同期例外の種類
別に利用者が定義した例外捕獲処理を行う複数の例外捕
獲処理モジュール19−1〜19−nが非同期例外検出機構
15と関連して登録されている。このような構成におい
て、利用者からの或る非同期例外が発生したときの動作
を説明する。状況としては、例えば処理モジュール18−
1が実行され、その実行途中で処理モジュール18−1か
ら処理モジュール18−2が呼び出され、この処理モジュ
ール18−2の実行中に利用者からの非同期例外が発生し
たものとする。
先ず、実行制御部17の処理S2によって処理モジュール18
−1が呼び出され、処理モジュール18−1の処理の途中
で処理モジュール18−2の呼び出し要求が実行制御部17
に出されると、実行制御部17は処理S1によって要求を解
析し、処理S2によって処理モジュール18−2を呼び出
す。呼び出された処理モジュール18−2の実行中に、非
同期例外発生機構14において利用者からの非同期例外が
生成されると、非同期例外検出機構15により、現処理中
の処理モジュール18−2の状態を反映するレジスタの退
避が行われた後、その非同期例外の種別に対応する例え
ば例外捕獲処理モジュール19−1が呼び出される。例外
捕獲処理モジュール19−1は予め定義された所定の処理
を実行し、その処理が終了すると、制御が非同期例外検
出機構15に戻り、レジスタの状態が例外発生時の状態に
復元され、処理モジュール18−2の例外発生直後の命令
から処理が再開される。そして、処理モジュール18−2
の処理が終了すると、実行制御部17の処理S3によりモジ
ュール終了処理が行われ、その後実行制御部17は処理モ
ジュール18−1の残りの処理が実行されるように制御す
る。
〔発明が解決しようとする課題〕
従来の非同期例外捕獲方式は、利用者からの非同期例外
発生時に即時に現処理を中断して例外捕獲処理を実行す
るため、前述の処理モジュール18−2の如く処理モジュ
ールの実行途中に例外捕獲処理が実行される場合があり
得る。ガーベッジコレクションを実施しないシステムで
は、そのような方式でもあまり問題は生じないが、リス
ト処理システムの如くガーベッジコレクションが必要不
可欠なシステムでは、次のような問題が生じる。
一般に、ガーベッジコレクションでは、記憶領域内で不
要となった部分即ちゴミ(ガーベッジ)を回収して再利
用可能とするが、併せて現在使用中の部分も処理に都合
の良いように並べ換えることがある。このようなガーベ
ッジコレクションとしては、記憶領域内のデータを扱う
上で使用可能な部分が無くなったときに一括してガーベ
ッジコレクションを行う一括方式や、記憶領域内のデー
タを扱う処理によってデータ構造が変化した時点で即時
にガーベッジコレクションを行う即時方式等の各種の方
式が知られている。例外捕獲処理モジュール19−1〜19
−nも他の処理モジュール18−1〜18−mと同様に記憶
領域内のデータを扱うため、ガーベッジコレクションが
実行されてデータ移動してしまうことがあり得る。例え
ば上述の例において、処理モジュール18−2の実行中、
第5図(a)に示すように或るレジスタRが記憶領域内
の或るデータDのアドレスを保持していたとする。この
ときに利用者からの非同期例外が発生すると、非同期例
外検出機構15によってレジスタRの内容が退避され、例
外捕獲処理モジュール19−1が呼び出されるが、このと
きガーベッジコレクションが実行されるとデータDの記
憶領域内における位置が移動してしまう可能性がある。
そうすると、例外捕獲処理モジュール19−1が終了し、
非同期例外検出機構15によってレジスタRの内容が例外
発生直後の状態に戻され、処理モジュール18−2の続き
の処理が再開されるが、第5図(b)に示すように、レ
ジスタRの内容が回復されてもデータD自体の位置が移
動していると、正しくデータDを参照することはできな
くなる。同様な問題は、前述の例において処理モジュー
ル18−1の実行途中で非同期例外が発生したときにも起
こり得るものである。
本発明はこのような事情に鑑みて為されたものであり、
その目的は、例外捕獲処理実行中にガーベッジコレクシ
ョンが発生しても非同期例外発生時に実行中であった処
理モジュールに影響を与えることのない非同期例外捕獲
方式を提供することにある。
〔課題を解決するための手段〕
本発明の非同期例外捕獲方式は、上記の目的を達成する
ために、記憶領域に格納されたデータを処理する複数の
処理モジュールと、モジュール呼び出し要求解析処理,
モジュール呼び出し処理およびモジュール終了処理の実
行により前記複数の処理モジュールへの制御の受け渡し
を司る実行制御部とを含み、前記記憶領域に対するガー
ベッジコレクションを行いつつ処理を進める計算機シス
テムにおいて、 非同期例外の種類別に利用者が定義した例外捕獲処理を
行う複数の例外捕獲処理モジュールと、 例外の種類を表す種別に対応する要素で構成され、各要
素に現在利用者から非同期例外の要求中であるか否かを
示す要求フラグおよびその非同期例外に対応する例外捕
獲処理を行う前記例外捕獲処理モジュールの指定を保持
する例外テーブルと、 制御が渡されることにより、前記実行制御部の前記モジ
ュール終了処理の先頭の分岐命令を元の命令に書き換
え、前記例外デーブル中の要求フラグがオンになってい
る要素を参照して該当する例外捕獲処理モジュールに制
御を移すと共に前記要求フラグをオフにする第二例外ハ
ンドラと、 非同期例外の発生時に制御が渡されることにより、前記
実行制御部の前記モジュール終了処理の先頭の命令を前
記第二例外ハンドラへの分岐命令に書き換え、今回発生
した例外種別に対応する前記例外テーブル中の要素の要
求フラグをオンにして、制御を呼び出し元に戻す第一例
外ハンドラと、 利用者からの非同期例外を検出した時点で、現実行中の
処理を中断して前記第一例外ハンドラを呼び出し、前記
第一例外ハンドラの処理が終了することにより前記中断
した処理を再開させる非同期例外検出機構とを備えてい
る。
〔作用〕
本発明の非同期例外捕獲方式においては、実行制御部
が、モジュール呼び出し要求解析処理,モジュール呼び
出し処理およびモジュール終了処理の実行により複数の
処理モジュールへの制御の受け渡しを制御しており、こ
の実行制御部のモジュール呼び出し処理により呼び出さ
れた或る処理モジュールの実行中に利用者からの非同期
例外が発生すると、非同期例外検出機構がその非同期例
外を検出した時点で現実行中の前記処理モジュールの処
理を中断して第一例外ハンドラを呼び出し、第一例外ハ
ンドラが、実行制御部のモジュール終了処理の先頭の命
令を第二制御ハンドラへの分岐命令に書き換え、今回発
生した例外種別に対応する例外テーブル中の要素の要求
フラグをオンにして制御を非同期例外検出機構に戻し、
非同期例外検出機構が、中断した前記処理モジュールの
処理を再開させる。この再開された処理モジュールの処
理が終了すると、実行制御部がモジュール終了処理を実
行するが、その先頭の命令が分岐命令に書き換えられて
いるため、制御が第二例外ハンドラに移り、第二例外ハ
ンドラが、実行制御部のモジュール終了処理の先頭の分
岐命令を元の命令に書き換え、例外テーブル中の要求フ
ラグがオンになっている要素を参照して該当する例外捕
獲処理モジュールに制御を移すと共に前記要求フラグを
オフにする。これにより、該当する例外捕獲処理モジュ
ールが実行され、利用者によって定義された例外捕獲処
理が行われる。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に説
明する。
第1図は本発明の非同期例外捕獲方式を適用した計算機
システムの機能ブロック図であり、非同期例外発生機構
1と、非同期例外検出機構2と、処理系3とで構成され
ている。また、処理系3は、実行制御部4と、複数の処
理モジュール5−1〜5−mと、例外の種類毎の例外捕
獲処理モジュール6−1〜6−nと、第一例外ハンドラ
9と、第二例外ハンドラ10と、例外テーブル11とを含ん
でいる。
非同期例外発生機構1は、第3図の従来の非同期例外発
生機構14と同じであり、利用者からの要求により非同期
例外を発生する機構である。
非同期例外検出機構2は、非同期例外発生機構1で発生
した利用者からの非同期例外を検出する機構であり、非
同期例外を検出すると、現実行中の処理を中断してレジ
スタの退避を行い、非同期例外発生時に実行すべきもの
として予め登録された第一例外ハンドラ9を呼び出す機
能を有する。また、呼び出した第一例外ハンドラ9の処
理が終了すると、レジスタの回復を行って中断した処理
を再開する機能をも有する。
処理系3は、LISP処理系のような処理系であり、第3図
と同様に複数の処理モジュール5−1〜5−mが記憶領
域に格納されたデータを処理し、システムに唯一存在す
る実行制御部4が、第4図に示したモジュール呼び出し
要求解析処理S1,モジュール呼び出し処理S2,モジュール
終了処理S3の繰り返しにより処理モジュール5−1〜5
−mへの制御の受け渡しを司り、全体として処理系3本
来の処理を遂行している。
例外捕獲処理モジュール6−1〜6−nは、非同期例外
の種類別に利用者が定義した例外捕獲処理を行うモジュ
ールである。これらの例外捕獲処理モジュール6−1〜
6−nは、第3図と異なり非同期例外検出機構2から直
接には呼ばれない。
例外テーブル11は、利用者が定義した例外捕獲処理を例
外の種類別い登録するテーブル手段であり、その一例を
第2図に示す。同図に示すように、例外テーブル11は、
複数の要素11−1,11−2,…で構成され、各要素11−1,11
−2,…は、例外の種類を表す種別,現在利用者から非同
期例外の要求中であるか否かを示す要求フラグ、及びそ
の例外に対する捕獲処理を行う例外捕獲処理モジュール
6−1〜6−nにかかる情報を登録する捕獲処理指定で
構成されている。なお、要求フラグは初期状態では非同
期例外の要求中でないことを示すオフになっている。
第一例外ハンドラ9は、前述したように、非同期例外を
検出したときに非同期例外検出機構2が呼び出すべき相
手として非同期例外検出機構2に登録されている。すな
わち、非同期例外発生時には、制御が第一例外ハンドラ
9に渡ってくるようになっている。この第一例外ハンド
ラ9は、非同期例外検出機構2から制御を引き取ると、
実行制御部4の一部の命令、たとえばモジュール終了処
理(第4図の処理S3)の最初の命令を第二例外ハンドラ
10への分岐命令に書き換え、例外テーブル11の今回の例
外種別に対応する要素の要求フラグをオンにし、その後
制御を呼び出し元の非同期例外検出機構2に戻す機能を
有する。
第二例外ハンドラ10は、上記第一例外ハンドラ9によっ
て実行制御部4のモジュール終了処理S3に埋め込まれた
分岐命令によって制御が移行してくると、その分岐命令
を元の命令に書き換え、例外テーブル11中の要求フラグ
がオンになっている要素の捕獲処理指定を参照して該当
する例外捕獲処理モジュール6−1〜6−nを呼び出す
処理を行う。このとき、要求フラグはオフに戻してお
く。
なお、例外テーブル11,第一例外ハンドラ9および第二
例外ハンドラ10は、機能的には、例外の種類別に利用者
が定義した例外捕捉処理を登録しまたそれを扱う(管理
する)例外テーブル管理手段8を実現し、また、実行制
御部4,第一例外ハンドラ9および第二例外ハンドラ10は
更に、機能的には、例外発生時に実行制御部4の一部の
命令を一時的に例外捕獲処理への分岐命令に変更する実
行制御変更手段7を実現していると言える。
次に、このように構成された本実施例の非同期例外捕獲
方式の動作を、従来の技術で説明したと同様の状況に沿
って説明する。
実行制御部4の第4図の処理S2によって呼び出された処
理モジュール5−1が、処理の途中で処理モジュール5
−2の呼び出し要求を実行制御部4に対して出すと、実
行制御部4は処理S1によって要求を解析し、処理S2によ
って処理モジュール5−2を呼び出す。呼び出された処
理モジュール5−2の実行中に、非同期例外発生機構1
において利用者からの非同期例外が生成されると、非同
期例外検出機構2により、現処理中の処理モジュール5
−2の状態を反映するレジスタの退避が行われた後、第
一例外ハンドラ9が呼び出される。第一例外ハンドラ9
は、実行制御部4のモジュール終了処理S3の最初の命令
を第二例外ハンドラ10への分岐命令に書き換え、命令テ
ーブル11の今回の例外種別に対応する要素の要求フラグ
をオンに設定し、処理を終える。
第一例外ハンドラ9の処理が終わると、非同期例外検出
機構2によって例外発生時のレジスタが回復され、処理
モジュール5−2の続きの処理が再開される。処理モジ
ュール5−2の処理が終了すると、制御が実行制御部4
に戻され、実行制御部4はモジュール終了処理S3を開始
し始める。このとき、モジュール終了処理S3の最初の命
令は第一例外ハンドラ9によって分岐命令に書き換えら
れているので、実行制御部4から第二例外ハンドラ10へ
制御が渡ることになる。
第二例外ハンドラ10は、実行制御部4のモジュール終了
処理S3の最初の命令すなわち分岐命令を元の命令に戻
し、例外テーブル11の要求フラグがオンになっている要
素の捕獲処理指定を参照し、該当する例外捕獲処理モジ
ュールたとえば6−1を呼び出す。また、このとき要求
フラグをオフにする。
上述のようにして例外捕獲処理モジュール6−1が呼び
出されることによって、前記発生した利用者からの非同
期例外にかかる例外捕獲処理が初めて開始される。そし
て、例外捕獲処理が終了すると、制御が実行制御部4の
モジュール終了処理S3に渡り、実行制御部4はこれを処
理モジュール5−2の終了としてとらえてそのモジュー
ル終了処理S3を行い、処理モジュール5−1の残りの処
理が実行されるように制御する。
〔発明の効果〕
以上説明したように、本発明の非同期例外捕獲方式にお
いては、処理モジュールの実行途中で非同期例外が発生
しても処理モジュールの終了を待ち合わせてから例外捕
獲処理へ制御を渡すため、例外捕獲処理実行中にガーベ
ッジコレクションが発生しても例外発生時に実行中であ
った処理モジュールに影響を与えない。
また、非同期例外が発生した場合に限り第一例外ハンド
ラ,第二例外ハンドラが実行されて実行制御部の命令の
分岐命令への書き換えと元の命令への書き換えが行われ
るものであり、非同期例外が発生していない通常の処理
においては分岐命令は使用されずに実行制御部の制御の
下で複数の処理モジュールへの制御の受け渡しが行われ
るため、通常の処理時における効率の低下が全くないと
いう効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の機能ブロック図、 第2図は例外テーブルの構成例を示す図、 第3図は従来方式の機能ブロック図、 第4図は実行制御部の処理の流れを示す図および、 第5図は従来方式の問題点の説明図である。 図において、 1……非同期例外発生機構 2……非同期例外検出機構 3……処理系 4……実行制御部 5−1〜5−m……処理モジュール 6−1〜6−n……例外捕獲処理モジュール 7……実行制御変更手段 8……例外テーブル管理手段 9……第一例外ハンドラ 10……第二例外ハンドラ 11……例外テーブル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】記憶領域に格納されたデータを処理する複
    数の処理モジュールと、モジュール呼び出し要求解析処
    理,モジュール呼び出し処理およびモジュール終了処理
    の実行により前記複数の処理モジュールへの制御の受け
    渡しを司る実行制御部とを含み、前記記憶領域に対する
    ガーベッジコレクションを行いつつ処理を進める計算機
    システムにおいて、 非同期例外の種類別に利用者が定義した例外捕獲処理を
    行う複数の例外捕獲処理モジュールと、 例外の種類を表す種別に対応する要素で構成され、各要
    素に現在利用者から非同期例外の要求中であるか否かを
    示す要求フラグおよびその非同期例外に対応する例外捕
    獲処理を行う前記例外捕獲処理モジュールの指定を保持
    する例外テーブルと、 制御が渡されることにより、前記実行制御部の前記モジ
    ュール終了処理の先頭の分岐命令を元の命令に書き換
    え、前記例外テーブル中の要求フラグがオンになってい
    る要素を参照して該当する例外捕獲処理モジュールに制
    御を移すと共に前記要求フラグをオフにする第二例外ハ
    ンドラと、 非同期例外の発生時に制御が渡されることにより、前記
    実行制御部の前記モジュール終了処理の先頭の命令を前
    記第二例外ハンドラへの分岐命令に書き換え、今回発生
    した例外種別に対応する前記例外テーブル中の要素の要
    求フラグをオンにして、制御を呼び出し元に戻す第一例
    外ハンドラと、 利用者からの非同期例外を検出した時点で、現実行中の
    処理を中断して前記第一例外ハンドラを呼び出し、前記
    第一例外ハンドラの処理が終了することにより前記中断
    した処理を再開させる非同期例外検出機構とを備えるこ
    とを特徴とする非同期例外捕獲方式。
JP63267633A 1988-10-24 1988-10-24 非同期例外捕獲方式 Expired - Fee Related JPH0740231B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63267633A JPH0740231B2 (ja) 1988-10-24 1988-10-24 非同期例外捕獲方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63267633A JPH0740231B2 (ja) 1988-10-24 1988-10-24 非同期例外捕獲方式

Publications (2)

Publication Number Publication Date
JPH02113336A JPH02113336A (ja) 1990-04-25
JPH0740231B2 true JPH0740231B2 (ja) 1995-05-01

Family

ID=17447391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63267633A Expired - Fee Related JPH0740231B2 (ja) 1988-10-24 1988-10-24 非同期例外捕獲方式

Country Status (1)

Country Link
JP (1) JPH0740231B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0438476A (ja) * 1990-06-01 1992-02-07 Toshiba Corp ディジタル形保護制御計測装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51233A (ja) * 1974-06-19 1976-01-05 Nippon Electric Co

Also Published As

Publication number Publication date
JPH02113336A (ja) 1990-04-25

Similar Documents

Publication Publication Date Title
JPH0895821A (ja) マルチタスクのプログラムデバッグ方法とその装置
JPH09330237A (ja) プロセス切り替え装置およびプロセス切り替え方法
JP2877095B2 (ja) マルチプロセッサシステム
JPH0740231B2 (ja) 非同期例外捕獲方式
JP2762816B2 (ja) トランザクション実行トレース情報採取方式
JP3586943B2 (ja) プログラムロード装置と方法
JP2535568B2 (ja) アプリケ―ションプログラムでの動的バッファ管理方式
JP3022848B2 (ja) マルチタスクのタスク切り替え方法とリアルタイム・オペレーティング・システム
JP4149619B2 (ja) 優先度変換システム
JPH0447350A (ja) 主記憶読み出し応答制御方式
JP3096760B2 (ja) 共通データ参照設定装置及び参照設定方法
JP3706982B2 (ja) メモリ使用状態の保存方法
JPH02306346A (ja) 前置通信処理装置
JPH02253336A (ja) プログラム起動方式
JP2584528Y2 (ja) 情報処理装置
JPH064472A (ja) 入出力優先順位制御方式
JPS61255440A (ja) プログラム中断制御方式
JPS58205258A (ja) デ−タ処理装置
JPS63196935A (ja) 予約情報検索装置
JP2004005302A (ja) モーションプログラムの実行装置およびデバック装置
JPH01295337A (ja) モニタルーチン制御移行方式
JPH03225434A (ja) ジョブ再起動方式
JPS63298442A (ja) アプリケ−ション管理装置
JPH03282742A (ja) コンピュータシステム
JPH09325892A (ja) ジョブ並列実行制御方法

Legal Events

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