JPH0426737B2 - - Google Patents
Info
- Publication number
- JPH0426737B2 JPH0426737B2 JP61221497A JP22149786A JPH0426737B2 JP H0426737 B2 JPH0426737 B2 JP H0426737B2 JP 61221497 A JP61221497 A JP 61221497A JP 22149786 A JP22149786 A JP 22149786A JP H0426737 B2 JPH0426737 B2 JP H0426737B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- module
- program
- macro
- sub
- 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
Landscapes
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の詳細な説明】
〔概要〕
テスト時において、領域管理モジユールに領域
の開放依頼があつたとき、その領域内のビツトを
反転して開放することにより、誤つて開放された
領域を参照するような誤動作を検出しやすくす
る。
の開放依頼があつたとき、その領域内のビツトを
反転して開放することにより、誤つて開放された
領域を参照するような誤動作を検出しやすくす
る。
本発明は、情報処理システムにおけるプログラ
ムのテスト方式に関するものであり、特にプログ
ラムテスト時に一旦獲得された領域が返却によ
り、開放された後、その開放された領域を誤つて
参照するプログラムがあつた場合、誤動作として
検出しやすくするための領域管理方式に関する。
ムのテスト方式に関するものであり、特にプログ
ラムテスト時に一旦獲得された領域が返却によ
り、開放された後、その開放された領域を誤つて
参照するプログラムがあつた場合、誤動作として
検出しやすくするための領域管理方式に関する。
一般に、複数のモジユールで構成されるプログ
ラムでは、メモリ資源の効率的利用の面から、そ
れぞれのモジユールが実行時に必要とする領域を
獲得し、処理終了とともにその領域を返却して開
放し、他の使用を可能にする方法がとられてい
る。この場合、領域獲得にはGETMAINマクロ
を発行し、領域返却にはFREEMAINマクロを発
行して、それぞれスーパーバイザプログラムのサ
ービスを受ける。
ラムでは、メモリ資源の効率的利用の面から、そ
れぞれのモジユールが実行時に必要とする領域を
獲得し、処理終了とともにその領域を返却して開
放し、他の使用を可能にする方法がとられてい
る。この場合、領域獲得にはGETMAINマクロ
を発行し、領域返却にはFREEMAINマクロを発
行して、それぞれスーパーバイザプログラムのサ
ービスを受ける。
たとえば、第3図に示すような構成のプログラ
ムを考える。このプログラムでは、主制御モジユ
ールMAINのもとに複数個のサブモジユール
SUB−1,SUB−2,…,SUB−nが従属され
ている。ここで、次のような領域使用が要求され
るものとする。
ムを考える。このプログラムでは、主制御モジユ
ールMAINのもとに複数個のサブモジユール
SUB−1,SUB−2,…,SUB−nが従属され
ている。ここで、次のような領域使用が要求され
るものとする。
MAINで獲得された領域をSUB−1〜nで
参照し、MAINで返却する。
参照し、MAINで返却する。
SUB−1で獲得し使用された領域をSUB−
1で返却する。
1で返却する。
SUB−2で獲得された領域をSUB−1〜n
で参照し、SUB−nで返却する。
で参照し、SUB−nで返却する。
MAINで獲得し使用された領域をMAINで
返却する。
返却する。
通常この場合、〜での領域獲得時には、そ
の都度GETMAINマクロが発行されるが、
GETMAINマクロによりSVC(スーパーバイザコ
ール)が発生し、スーパーバイザプログラムの処
理に切り替えることから、オーバヘツドが大きく
なり、性能が低下する。このため第4図に示され
るように、プログラム独自の領域管理モジユール
を設ける方法がしばしばとられる。
の都度GETMAINマクロが発行されるが、
GETMAINマクロによりSVC(スーパーバイザコ
ール)が発生し、スーパーバイザプログラムの処
理に切り替えることから、オーバヘツドが大きく
なり、性能が低下する。このため第4図に示され
るように、プログラム独自の領域管理モジユール
を設ける方法がしばしばとられる。
この領域管理モジユールの機能は、予め
GETMAINマクロを発行して、スーパーバイザ
プログラムからあるまとまつた大きさの領域を獲
得しておき、他の各モジユールがGETMAINマ
クロを発行したとき、自分がGETMAINマクロ
で獲得してある領域を分割して使用可能な領域を
要求元モジユールに通知し、また各モジユールか
らのFREEMAINマクロによる領域開放依頼(返
却)についても、実際にはFREEMAINマクロを
発行することなく、その領域を次のGETMAIN
マクロに対する使用可能領域として領域管理モジ
ユールに管理させることで代えるものである。
GETMAINマクロを発行して、スーパーバイザ
プログラムからあるまとまつた大きさの領域を獲
得しておき、他の各モジユールがGETMAINマ
クロを発行したとき、自分がGETMAINマクロ
で獲得してある領域を分割して使用可能な領域を
要求元モジユールに通知し、また各モジユールか
らのFREEMAINマクロによる領域開放依頼(返
却)についても、実際にはFREEMAINマクロを
発行することなく、その領域を次のGETMAIN
マクロに対する使用可能領域として領域管理モジ
ユールに管理させることで代えるものである。
上記した第3図の例を第4図の場合で説明する
と、上記の〜の領域の獲得・返却要求はそれ
ぞれ領域管理モジユールを呼び出すことにより行
われる。
と、上記の〜の領域の獲得・返却要求はそれ
ぞれ領域管理モジユールを呼び出すことにより行
われる。
の獲得要求では、あるまとまつた単位(1ペ
ージ等)でGETMAINマクロを発行し要求元に
その一部を渡す。
ージ等)でGETMAINマクロを発行し要求元に
その一部を渡す。
の獲得要求では、で獲得した領域の残りか
ら、その一部を要求元に返す。また、この時の返
却要求ではその領域を未使用情報として管理して
おく。
ら、その一部を要求元に返す。また、この時の返
却要求ではその領域を未使用情報として管理して
おく。
の獲得要求では、で未使用状態として管理
してある領域から要求元に返す。この時の返却要
求でも、その領域を未使用状態として管理してお
く。
してある領域から要求元に返す。この時の返却要
求でも、その領域を未使用状態として管理してお
く。
でも同様である。
そしてこのプログラム中で、領域管理モジユー
ルにより実際にGETMAINマクロで獲得された
領域は、そのプログラムの最後でFREEMAINマ
クロで返却する。
ルにより実際にGETMAINマクロで獲得された
領域は、そのプログラムの最後でFREEMAINマ
クロで返却する。
これにより、GETMAIN,FREEMAINの回
数が大幅に削減される。
数が大幅に削減される。
第4図に示されているような領域管理モジユー
ルをもつプログラムにおいて、あるモジユール
が、誤つて開放すべきでない領域に対して
FREEMAINマクロを発行して開放してしまい、
さらにその後でその領域が他のモジユールからの
GETMAINマクロによつて再利用されている場
合、たとえばその領域が制御表として使用されて
いれば、再利用した他のモジユールによつて制御
表の内容が書き替えられてしまう可能性がある。
ルをもつプログラムにおいて、あるモジユール
が、誤つて開放すべきでない領域に対して
FREEMAINマクロを発行して開放してしまい、
さらにその後でその領域が他のモジユールからの
GETMAINマクロによつて再利用されている場
合、たとえばその領域が制御表として使用されて
いれば、再利用した他のモジユールによつて制御
表の内容が書き替えられてしまう可能性がある。
そこで、先に誤つて領域を開放したモジユール
が開放していないものとしてその領域の制御表を
参照した場合、他のモジユールによつて既に内容
が書き替えられていれば誤動作するため、誤つて
領域を開放したというプログラムの誤りが発見さ
れる。
が開放していないものとしてその領域の制御表を
参照した場合、他のモジユールによつて既に内容
が書き替えられていれば誤動作するため、誤つて
領域を開放したというプログラムの誤りが発見さ
れる。
しかし、上記他のモジユールが再利用した領域
の制御表の書き替えをしていない場合、元のモジ
ユールの制御表データがそのまま保存されている
ため、元のモジユールが制御表を参照した場合に
正しく動作しているように見え、誤動作とならな
い。
の制御表の書き替えをしていない場合、元のモジ
ユールの制御表データがそのまま保存されている
ため、元のモジユールが制御表を参照した場合に
正しく動作しているように見え、誤動作とならな
い。
また、GETMAINマクロによる領域の利用を
最適化する必要から、FREEMAINマクロが発行
されて開放された領域が次に再利用されるタイミ
ングはまちまちとなる。そのためテスト段階での
FREEMAINマクロ発行誤りの検出は一層困難と
なる。
最適化する必要から、FREEMAINマクロが発行
されて開放された領域が次に再利用されるタイミ
ングはまちまちとなる。そのためテスト段階での
FREEMAINマクロ発行誤りの検出は一層困難と
なる。
そこで従来は、FREEMAINマクロにより開放
する領域を、“FFFF…”または“0000…”でク
リアする方法がとられることもあつたが、その場
合元のデータに“F”あるいは“0”の連続デー
タが含まれている場合、完全にクリアできないた
め、誤動作とならない可能性が残つた。
する領域を、“FFFF…”または“0000…”でク
リアする方法がとられることもあつたが、その場
合元のデータに“F”あるいは“0”の連続デー
タが含まれている場合、完全にクリアできないた
め、誤動作とならない可能性が残つた。
その結果、プログラムテストでは誤りが発見さ
れずに、顧客へ出荷されてから誤動作するという
問題があつた。
れずに、顧客へ出荷されてから誤動作するという
問題があつた。
本発明は、上記した従来の問題点を解決するた
め、FREEMAINマクロにより開放する領域のビ
ツトの値を全て反転することによつて、元のデー
タを完全に破壊し、誤つてFREEMAINマクロを
発行したモジユールがその後で、その領域を参照
した場合、確実に誤動作を生じるようにさせるも
のである。
め、FREEMAINマクロにより開放する領域のビ
ツトの値を全て反転することによつて、元のデー
タを完全に破壊し、誤つてFREEMAINマクロを
発行したモジユールがその後で、その領域を参照
した場合、確実に誤動作を生じるようにさせるも
のである。
第1図に本発明の原理的構成を示す。
図において、1ないし5はテスト対象プログラ
ムを構成するモジユールであり、そのうち1は主
制御モジユールMAIN、2,3,4はそれぞれ
副モジユールSUB−1,SUB−2,…,SUB−
n、5は領域管理モジユールである。
ムを構成するモジユールであり、そのうち1は主
制御モジユールMAIN、2,3,4はそれぞれ
副モジユールSUB−1,SUB−2,…,SUB−
n、5は領域管理モジユールである。
6は、領域管理モジユール5が領域獲得命令
(GETMAINマクロ)を発行して獲得した領域で
ある。
(GETMAINマクロ)を発行して獲得した領域で
ある。
7は、他のモジユールが発行した領域獲得命令
(GETMAINマクロ)に応じて、領域6から使用
可能領域を切り出して、領域獲得命令発行元モジ
ユールに割り付ける処理を行う領域獲得命令対応
部である。
(GETMAINマクロ)に応じて、領域6から使用
可能領域を切り出して、領域獲得命令発行元モジ
ユールに割り付ける処理を行う領域獲得命令対応
部である。
8は、他のモジユールが発行した領域開放命令
(FREEMAINマクロ)により返却された該当領
域を使用可能領域に変更する処理を行う領域開放
命令対応部である。
(FREEMAINマクロ)により返却された該当領
域を使用可能領域に変更する処理を行う領域開放
命令対応部である。
9は、領域開放命令対応部8が、返却された領
域を使用可能領域に変更する際に、その領域の各
ビツトの値を反転するビツト反転機能であり、プ
ログラムがテスト環境にあるときに働かされる。
域を使用可能領域に変更する際に、その領域の各
ビツトの値を反転するビツト反転機能であり、プ
ログラムがテスト環境にあるときに働かされる。
第1図に示された本発明の原理的構成におい
て、たとえばモジユールSUB−1が領域獲得命
令を発行し、領域獲得依頼を行つた場合、領域管
理モジユール5の領域獲得命令対応部7は領域6
の中の未使用領域から必要な大きさの領域を切り
出して、依頼元のモジユールSUB−1にその領
域を割り付け通知する。
て、たとえばモジユールSUB−1が領域獲得命
令を発行し、領域獲得依頼を行つた場合、領域管
理モジユール5の領域獲得命令対応部7は領域6
の中の未使用領域から必要な大きさの領域を切り
出して、依頼元のモジユールSUB−1にその領
域を割り付け通知する。
モジユールSUB−1は処理を終了すると、領
域開放命令を発行し、獲得してある領域の返却を
依頼する。これに応じて、領域管理モジユール5
の領域開放命令対応部8は、依頼元のモジユール
SUB−1に割り付けてある領域を未使用領域に
変更する。その際、未使用領域に変更した領域内
の全ビツトについて、ビツト反転機能9を用いて
各“0”を“1”に、各“1”を“0”にそれぞ
れ反転する。
域開放命令を発行し、獲得してある領域の返却を
依頼する。これに応じて、領域管理モジユール5
の領域開放命令対応部8は、依頼元のモジユール
SUB−1に割り付けてある領域を未使用領域に
変更する。その際、未使用領域に変更した領域内
の全ビツトについて、ビツト反転機能9を用いて
各“0”を“1”に、各“1”を“0”にそれぞ
れ反転する。
このようにして、返却された領域内のデータは
完全に破壊されるので、もしもあるモジユールが
領域開放命令を誤つて発行して領域を返却した
後、その領域を参照した場合、確実に誤動作し、
プログラムの誤りを発見できる。
完全に破壊されるので、もしもあるモジユールが
領域開放命令を誤つて発行して領域を返却した
後、その領域を参照した場合、確実に誤動作し、
プログラムの誤りを発見できる。
第2図に本発明の実施例を示す。
図において、15は領域管理モジユール、16
は領域、16aはフラグテーブル、17は
GETMAIN対応部、18はFREEMAIN対応部、
19はビツト反転機能、20はプログラム実行に
使用される主制御表、21はデバツグモードか通
常モードかを表示するモード表示フイールドであ
る。なお、第2図中に15ないし19で示されて
いる構成要素は、第1図中に5ないし9で示され
ている構成要素に対応している。
は領域、16aはフラグテーブル、17は
GETMAIN対応部、18はFREEMAIN対応部、
19はビツト反転機能、20はプログラム実行に
使用される主制御表、21はデバツグモードか通
常モードかを表示するモード表示フイールドであ
る。なお、第2図中に15ないし19で示されて
いる構成要素は、第1図中に5ないし9で示され
ている構成要素に対応している。
簡単に説明すると、領域管理モジユール15
は、GETMAINマクロを用いて獲得した領域1
6を一定の大きさに分割し、それぞれの領域が未
使用か使用中かを“0”,“1”でフラグ表示する
フラグテーブル16aを用いて領域管理する。
は、GETMAINマクロを用いて獲得した領域1
6を一定の大きさに分割し、それぞれの領域が未
使用か使用中かを“0”,“1”でフラグ表示する
フラグテーブル16aを用いて領域管理する。
GETMAIN対応部17は、他のモジユールか
らのGETMAINマクロに応答して、フラグテー
ブル16aから未使用領域(フラグ“0”の領
域)を探し、必要な大きさの領域を割り付ける。
また割り付けた領域に対応するフラグを“0”か
ら“1”に変更し、使用中(割り付け済)表示と
する。
らのGETMAINマクロに応答して、フラグテー
ブル16aから未使用領域(フラグ“0”の領
域)を探し、必要な大きさの領域を割り付ける。
また割り付けた領域に対応するフラグを“0”か
ら“1”に変更し、使用中(割り付け済)表示と
する。
FREEMAIN対応部18は、領域使用中のモジ
ユールからのFREEMAINマクロに応答して、割
り付けてある該当領域を開放する。その場合、フ
ラグテーブル16aの対応するフラグを“1”か
ら“0”に変更し、さらにテストモード時にはビ
ツト反転機能19を動作させる。
ユールからのFREEMAINマクロに応答して、割
り付けてある該当領域を開放する。その場合、フ
ラグテーブル16aの対応するフラグを“1”か
ら“0”に変更し、さらにテストモード時にはビ
ツト反転機能19を動作させる。
主制御表20には、処理のモードか通常モード
かデバツグモードかを表すためのモード表示フイ
ールド21が設けられている。そしてプログラム
テスト実行時には、デバツグモード表示が設定さ
れる(たとえば、ソースのコンパイル処理時にオ
プシヨンでデバツグ指定を行う)。
かデバツグモードかを表すためのモード表示フイ
ールド21が設けられている。そしてプログラム
テスト実行時には、デバツグモード表示が設定さ
れる(たとえば、ソースのコンパイル処理時にオ
プシヨンでデバツグ指定を行う)。
ビツト反転機能19は、上記のモード表示フイ
ールド21がデバツグモードを表示しているとき
にのみ起動され、開放対象領域内の番地を順次読
み出し、各読み出したデータと“FFF…F”(all
“1”)との排他的論理和演算を行い、ビツト反転
された結果を元の番地に書き込む。このようにし
て、開放対象領域内の全ビツトの値を反転し、元
の値を破壊する。
ールド21がデバツグモードを表示しているとき
にのみ起動され、開放対象領域内の番地を順次読
み出し、各読み出したデータと“FFF…F”(all
“1”)との排他的論理和演算を行い、ビツト反転
された結果を元の番地に書き込む。このようにし
て、開放対象領域内の全ビツトの値を反転し、元
の値を破壊する。
以上述べたように、本発明によれば、独自の領
域管理モジユールをもつプログラムのテストにお
いて、プログラムに含まれる領域返却および参照
の誤りの発見が容易となり、プログラムの信頼性
を向上させることができる。
域管理モジユールをもつプログラムのテストにお
いて、プログラムに含まれる領域返却および参照
の誤りの発見が容易となり、プログラムの信頼性
を向上させることができる。
第1図は本発明の原理的構成図、第2図は本発
明の1実施例の構成図、第3図および第4図はそ
れぞれ従来の異なる領域管理方式の説明図であ
る。 第1図中、1……主制御モジユールMAIN、
2,3,4……副モジユールSUB−1,SUB−
2,SUB−n、5……領域管理モジユール、6
……領域、7……領域獲得命令対応部、8……領
域開放命令対応部、9……ビツト反転機能。
明の1実施例の構成図、第3図および第4図はそ
れぞれ従来の異なる領域管理方式の説明図であ
る。 第1図中、1……主制御モジユールMAIN、
2,3,4……副モジユールSUB−1,SUB−
2,SUB−n、5……領域管理モジユール、6
……領域、7……領域獲得命令対応部、8……領
域開放命令対応部、9……ビツト反転機能。
Claims (1)
- 【特許請求の範囲】 1 独自の領域管理モジユール5を含む複数のモ
ジユールで構成されたプログラムを処理する情報
処理システムにおいて、 上記領域管理モジユール5は、領域獲得命令を
発行してある大きさの領域6を獲得した後、プロ
グラム内の他のモジユールが領域獲得命令を発行
して領域獲得依頼を行つたとき、自モジユールが
先に獲得してある領域6の中の未使用領域を切り
出して依頼元のモジユールに割り付け、使用可能
にする領域獲得命令対応部7と、プログラム内の
他のモジユールが領域開放命令を発行して、使用
中の領域について領域返却依頼を行つたとき、該
当する割り付け済み領域を未使用領域に変更し再
使用を可能にする領域開放命令対応部8とをそな
え、 上記領域開放命令対応部8は、プログラムのテ
スト時に、返却された割り付け済み領域を未使用
領域に変更する際、その領域内の全てのビツトの
値を反転することを特徴とするプログラムテスト
における領域管理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61221497A JPS6376029A (ja) | 1986-09-19 | 1986-09-19 | プログラムテストにおける領域管理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61221497A JPS6376029A (ja) | 1986-09-19 | 1986-09-19 | プログラムテストにおける領域管理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6376029A JPS6376029A (ja) | 1988-04-06 |
| JPH0426737B2 true JPH0426737B2 (ja) | 1992-05-08 |
Family
ID=16767633
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61221497A Granted JPS6376029A (ja) | 1986-09-19 | 1986-09-19 | プログラムテストにおける領域管理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6376029A (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04217048A (ja) * | 1990-12-18 | 1992-08-07 | Pfu Ltd | メモリ管理装置 |
-
1986
- 1986-09-19 JP JP61221497A patent/JPS6376029A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6376029A (ja) | 1988-04-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4387427A (en) | Hardware scheduler/dispatcher for data processing system | |
| US4480304A (en) | Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment | |
| US5274789A (en) | Multiprocessor system having distributed shared resources and dynamic and selective global data replication | |
| US6542919B1 (en) | Operating system for use with protection domains in a single address space | |
| US5088031A (en) | Virtual machine file control system which translates block numbers into virtual addresses then into real addresses for accessing main storage | |
| GB2265734A (en) | Free memory cell management system | |
| JPH0776944B2 (ja) | 仮想索引機構 | |
| US6473848B2 (en) | Method for controlling memory access on a machine with non-uniform memory access and machine for implementing such a method | |
| EP0294499B1 (en) | Control scheme for segmented buffers based on a shared reference count | |
| US5809551A (en) | Pending page release | |
| JPH0426737B2 (ja) | ||
| EP0049423B1 (en) | Multiprocessor system | |
| JP3351469B2 (ja) | 情報処理システム及びそれに用いるデータコピーを伴う障害処理方式 | |
| Attanasio | Virtual Control Storage-curity measures in VM/370 | |
| JP2864496B2 (ja) | 多重処理計算機 | |
| JP2798140B2 (ja) | 仮想空間制御方式 | |
| JPH09282291A (ja) | 共通記憶装置のロックフラグ解除方式および方法 | |
| JP2535584B2 (ja) | 実記憶固定処理計算機 | |
| JPS60215272A (ja) | マルチプロセツサシステム | |
| JPH0534705B2 (ja) | ||
| Barkley et al. | A performance study of the UNIX® System V fork system call using CASPER | |
| JPS63266554A (ja) | プログラムデバグ方式 | |
| JPH07120305B2 (ja) | マルチプロセッサによるデータベース処理方式 | |
| JPH03232051A (ja) | セマフォアクセス制御方法 | |
| JPS5918787B2 (ja) | Tlbパ−テイシヨン方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |