JPH0452491B2 - - Google Patents

Info

Publication number
JPH0452491B2
JPH0452491B2 JP58056703A JP5670383A JPH0452491B2 JP H0452491 B2 JPH0452491 B2 JP H0452491B2 JP 58056703 A JP58056703 A JP 58056703A JP 5670383 A JP5670383 A JP 5670383A JP H0452491 B2 JPH0452491 B2 JP H0452491B2
Authority
JP
Japan
Prior art keywords
program
work area
reentrant
pool
programs
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
Application number
JP58056703A
Other languages
English (en)
Other versions
JPS59180744A (ja
Inventor
Takanobu Fujimoto
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP58056703A priority Critical patent/JPS59180744A/ja
Publication of JPS59180744A publication Critical patent/JPS59180744A/ja
Publication of JPH0452491B2 publication Critical patent/JPH0452491B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、リエントラントプログラムの作業領
域管理方式に関し、特にGETMAIN/
FREEMAINマクロ命令を用いることなしに、必
要な作業域を未使用域から容易に確保し管理する
ことができる作業領域管理方式に関する。
〔技術の背景〕
マルチプログラミングシステムあるいはマルチ
プロセツサシステムでは、関数計算など各プログ
ラムが共通に必要とする処理のサブルーチンを、
それぞれのプログラムが別々に保有した場合、主
記憶装置の利用効率が低下することから、そのよ
うなサブルーチンについては主記憶装置上に1つ
だけ置いて、各プログラムに共有させることが望
ましい。
しかし、共有サブルーチンは、複数のプログラ
ムにより同時並行的に使用されることがあるた
め、共有サブルーチン内の命令あるいはデータは
どのプログラムによつても書き替えられないよう
にし、かつその作業領域は、共有サブルーチンか
ら切り離して、共有サブルーチンを呼び出した各
プログラムごとに管理する必要がある。このよう
な構造のサブルーチンは、リエントラント(再入
可能)プログラムと呼ばれる。
リエントラントプログラムの作業領域は、呼び
出し元プログラムが確保するか、あるいはリエン
トラントプログラムが実行されるときリエントラ
ントプログラムで動的に確保する必要がある。第
1図は後者の例を示し、1,2はリエントラント
プログラムである。各リエントラントプログラム
の先頭にGETMAINマクロを置き、最後に
FREEMAINマクロを置く。GETMAINマクロ
により、スーパーバイザにリージヨン(メモリの
ユーザ域)内領域の確保を依頼し、また
FREEMAINマクロにより、先に確保した領域の
返却をスーパーバイザに依頼する。通常は、この
方法が多くとられているが、1回の依頼に数百の
命令の実行が必要となるためスーパーバイザの負
担となり、処理性能を低下させる欠点がある。
また、リエントラントプログラム自体の将来の
性能向上を考慮して、予め十分な大きさの領域を
GETMAINマクロで確保しておき、実行時に、
その中から必要なスペースを自前で確保する方法
がある。しかし、この方法では、呼び出し関係に
あるプログラム間のインタフエースが複雑にな
り、第2図に示すように、3,4で示すリエント
ラントプログラムA,Bの間に、領域管理方式が
異なる5のプログラムXが介在するようなときに
は、リエントラントプログラムA,B間の領域を
連結する領域管理が困難となるため、適用できる
プログラムに制約が生じる。
〔発明の目的および構成〕
本発明の目的は、呼び出し関係にある複数のリ
エントラントプログラムの間に領域管理方式が異
なる他のプログラムが挟まれている場合にも、ス
ーパーバイザに依存することなく、自前でかつ簡
単な手段で作業領域の確保を行なうことが可能な
リエントラントプログラムの作業領域管理方式を
提供することにある。
そして、本発明はそのための構成として、リエ
ントラントプログラムを含む複数のプログラムが
多重の呼び出し関係で結合されているシステムに
おいて、最初のリエントラントプログラムが実行
されるとき、自身および後続のプログラムのため
の十分な作業領域プールを確保し、かつ該作業領
域プールの先頭位置情報を含む制御表を作成する
とともに、上記作業領域プールの所定の位置に空
き領域情報を格納し、上記制御表は、順次1つの
プログラムから呼び出された次のプログラムに制
御が渡されるとき同時に引き渡され、各呼び出さ
れたプログラムがリエントラントプログラムであ
るとき、該制御表から作業領域プールの位置情報
を得て、該プール内に格納されている空き領域情
報にもとづいて必要な作業領域を確保しかつ空き
領域情報を更新し、そして上記作業領域プール内
に作業領域を確保したプログラムが処理を終了し
たとき、該作業領域を返却するとともに空き領域
情報を復元することを特徴としている。
〔発明の実施例〕
以下に、本発明の詳細を実施例にしたがつて説
明する。
第3図は、第2図と同じプログラム例について
本発明を適用したものである。図中3,4は、そ
れぞれリエントラントプログラムA,B、5は領
域管理方式が異なるプログラムX、6はスーパー
バイザ、7は作業領域プール、8は制御表Tを示
す。最初にリエントラントプログラムAが、実行
開始時にGETMAINマクロにより十分大きな作
業領域プール7を確保する。このとき作業領域を
管理する制御表Tが作成される。制御表Tは、確
保されている作業領域プールを指すポインタを含
んでいる。
リエントラントプログラムAから、たとえば非
リエントラントプログラムXへ、およびプログラ
ムXからリエントラントプログラムBへ、それぞ
れ呼び出しが行なわれたとき、制御表Tが引き渡
される。この場合、プログラムXは領域管理方式
が異なるため、制御表Tは使用せずに、次のリエ
ントラントプログラムBへそのまま引き渡す。リ
エントラントプログラムBは、制御表T中のポイ
ンタから、確保されている作業領域プールを知
り、後述するように、その中から自身の作業領域
を確保する。
なお、プログラム間で制御表を引き渡す場合、
一般に用いられる手法であるところのプログラム
呼出しのパラメタの形態で行うのが最も簡単な方
法であるが、ジヨブ空間の特定の場所に制御表の
アドレスを設定する方法などの他の慣用されてい
る手法も利用することができる。
第4図は、作業領域の管理方法の1例を示した
ものであり、図中、7は作業領域プール、8は制
御表T、9はプログラムXの作業領域を示す。
制御表Tによりポインタされた作業領域プール
7の先頭アドレスには、作業領域プール7の最終
アドレスP1が格納され、次のアドレスには空き
領域の先頭アドレスP2が格納されている。
P1,P2の設定は、各リエントラントプログラ
ムA,Bにより行なわれ、プログラム中にはその
ための記述を含んでいる。たとえばリエントラン
トプログラムBは、制御表Tから作業領域プール
7の先頭アドレスを求め、P1,P2からプール中
の空き領域の大きさをチエツクし、その中に自身
の作業領域を設定し、P2を新しい空き領域の先
頭アドレスP′2で更新する。
リエントラントプログラムBは処理を終了する
と、作業領域を返却し、P′2をP2に復元し、プロ
グラムXに実行権を戻す。プログラムXが処理を
終了するとリエントラントプログラムAに実行権
を戻す。リエントラントプログラムAは、処理の
終りにFREEMAINマクロを実行し、スーパバイ
ザ6に、作業領域プール7および制御表8の返却
処理を依頼する。
このように、リエントラントプログラムがいく
つ続いても、各リエントラントプログラムは、最
初に確保された作業領域プールの中に自身の作業
領域を設定することができる。また順次呼び出し
たプログラムへ制御表を引き渡す処理を行なうた
めのプログラム記述は、たとえばプログラム呼出
しのためのパラメタ記述中で行われるが、この記
述は、コンパイル処理時にコンパイラにより各リ
エントラントプログラムに対して自動的に付加さ
れるようにすることができる。
〔発明の効果〕
以上のように本発明によれば、GETMAIN/
FREEMAINによるスーパーバイザコール
(SVC)は最初のリエントラントプログラムに限
られるため、呼び出されたリエントラントプログ
ラムからスーパバイザへのこれらのSVCに対し
て、スーパバイザは従来数百の命令の実行を必要
としたものが数十の命令の実行で済ますことが可
能となり、スーパバイザの負担は著しく軽減され
て、実行性能の向上が得られる。
【図面の簡単な説明】
第1図および第2図は、それぞれ従来のリエン
トラントプログラムの作業領域を確保するための
異なる方式を示す図、第3図は本発明方式の実施
例図、第4図はその空き領域管理の説明図であ
る。 図中、3,4はリエントラントプログラム、5
は領域管理方式が異なるプログラム、6はスーパ
ーバイザ、7は作業領域プール、8は制御表を示
す。

Claims (1)

    【特許請求の範囲】
  1. 1 リエントラントプログラムを含む複数のプロ
    グラムが多重の呼び出し関係で結合されているシ
    ステムにおいて、最初のリエントラントプログラ
    ムが実行されるとき、自身および後続のプログラ
    ムのための十分な作業領域プールを確保し、かつ
    該作業領域プールの先頭位置情報を含む制御表を
    作成するとともに、上記作業領域プールの所定の
    位置に空き領域情報を格納し、上記制御表は、順
    次1つのプログラムから呼び出された次のプログ
    ラムに制御が渡されるとき同時に引き渡され、各
    呼び出されたプログラムがリエントラントプログ
    ラムであるとき、該制御表から作業領域プールの
    位置情報を得て、該プール内に格納されている空
    き領域情報にもとづいて必要な作業領域を確保し
    かつ空き領域情報を更新し、そして上記作業領域
    プール内に作業領域を確保したプログラムが処理
    を終了したとき、該作業領域を返却するとともに
    空き領域情報を復元することを特徴とするリエン
    トラントプログラムの作業領域管理方式。
JP58056703A 1983-03-31 1983-03-31 リエントラントプログラムの作業領域管理方式 Granted JPS59180744A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58056703A JPS59180744A (ja) 1983-03-31 1983-03-31 リエントラントプログラムの作業領域管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58056703A JPS59180744A (ja) 1983-03-31 1983-03-31 リエントラントプログラムの作業領域管理方式

Publications (2)

Publication Number Publication Date
JPS59180744A JPS59180744A (ja) 1984-10-13
JPH0452491B2 true JPH0452491B2 (ja) 1992-08-24

Family

ID=13034823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58056703A Granted JPS59180744A (ja) 1983-03-31 1983-03-31 リエントラントプログラムの作業領域管理方式

Country Status (1)

Country Link
JP (1) JPS59180744A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792747B2 (ja) * 1985-05-31 1995-10-09 富士通株式会社 主メモリ共通作業領域の使用制御方式
JP4500040B2 (ja) * 2003-01-06 2010-07-14 パナソニック株式会社 コンパイラプログラム、コンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体、コンパイル方法及びコンパイル装置
JP6444662B2 (ja) * 2014-09-03 2018-12-26 三菱重工業株式会社 制御装置

Also Published As

Publication number Publication date
JPS59180744A (ja) 1984-10-13

Similar Documents

Publication Publication Date Title
JP3659062B2 (ja) 計算機システム
KR100278327B1 (ko) 공유 오프-스크린 메모리를 제공하기 위한 방법 및 장치
US20060150194A1 (en) Methods and apparatuses to maintain multiple execution contexts
JPH0635732A (ja) 記憶装置の領域割り当て方法
US7058656B2 (en) System and method of using extensions in a data structure without interfering with applications unaware of the extensions
JPH0452491B2 (ja)
JPH04155465A (ja) ファイル共用方法
CN109376022B (zh) 一种提升Halide语言在多核系统执行效率的线程模型实现方法
JP3019915B2 (ja) 手続き呼出し方法
JPS603229B2 (ja) 情報処理方式
JP2790472B2 (ja) 多重会話処理制御方式
JP3022398B2 (ja) 仮想計算機方式
JP3511935B2 (ja) マルチスレッド・プログラムにおけるファイル書込方式
JPS6156816B2 (ja)
JPH03218532A (ja) 任意起動プログラム管理方式
JPH0221610B2 (ja)
JP2860990B2 (ja) プログラムの再実行用データ退避/復元方式
JPH03182945A (ja) 主記憶内データ転送方式
JP2926873B2 (ja) 計算機システム
JPH0922363A (ja) タスク構成方式
JPH04205039A (ja) 複数osにおける共有ファイル排他制御方式
JPS61160147A (ja) 仮想計算機制御方式
JPS62217326A (ja) 複数os格納切替可能コンピユ−タ
JPH07134656A (ja) 割り込み制御方法及びそれを実現するマルチタスクシステム
JPH0754481B2 (ja) オーバレイ制御方法