JPS58114249A - プログラムのダイナミツクエリア管理によるデイスパツチング制御方式 - Google Patents

プログラムのダイナミツクエリア管理によるデイスパツチング制御方式

Info

Publication number
JPS58114249A
JPS58114249A JP21549481A JP21549481A JPS58114249A JP S58114249 A JPS58114249 A JP S58114249A JP 21549481 A JP21549481 A JP 21549481A JP 21549481 A JP21549481 A JP 21549481A JP S58114249 A JPS58114249 A JP S58114249A
Authority
JP
Japan
Prior art keywords
program
task
dynamic area
dispatching
memory
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.)
Pending
Application number
JP21549481A
Other languages
English (en)
Inventor
Shigeji Sugimoto
杉本 茂治
Minako Kogoori
古郡 美奈子
Yasuko Goto
泰子 後藤
Mitsuko Kaseda
加世田 光子
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 JP21549481A priority Critical patent/JPS58114249A/ja
Publication of JPS58114249A publication Critical patent/JPS58114249A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (1)発明の技術分野 本発明は、ダイナミックエリアを有するプログラムを″
ディスパッチングするための管理制御方式に関し、特K
Mダイナミックエリアの管理テーブルを用いて退避およ
び復帰を制御する方式に関する0 (2)技術の背景 一般に、メモリにロードされたプログラムは。
第1図に示すように実行命令部と、コンスタントエリア
およびダイナミックエリアからなるメモリ定義命令部と
からなっている〇 このようなプログラムが′実行されるとき、実行命令部
およびコンスタントエリアは変更されないが、ダイナミ
ックエリア(WORKエリアおよびBUFFER勢)は
更新される〇 複数のタスクの配下で動作するプログラム(プログラム
Aとする)は、第4図の示すようKあるタスクX上で動
作中に、タスクXより上位のタスクYよシ起動要求を受
けた時に中断され、O8(tたはモニタ)は、タスクX
からタスクYへのディスパッチングを行なう。この時に
次のような問題が発生する〇 それは、タスクXからタスクYへ単純にディスパッチン
グを行なった場合、タスクY上でのプログラムAの動作
終了後、タスクYからタスクXヘゲイスパッチングが行
なわれ、中断されていたタスクX上のプログラムAが再
開されるが、この時。
ダイナミックエリアの内容は、中断されていた時点の内
容ではなく、タスクY上で動いた結果に変っている丸め
、再開されたプログラムAは、タスクXで正しく動作し
ないことである。
上述した問題に対する従来の解決方法は。
I)プログラムAをタスク毎にメそり上にロールインし
、制御権を渡す。
「)プログラムAを作成する時に、ダイナミックエリア
を作成しない。
のいずれかの方式によっていた。
(3)従来技術と問題点 以下に、上記した1)およびI)の方式について。
その概要と問題点を説耐する。
1)の方式の説明 この方式は、主として大飄の計算機に使われてる0 ここで、II数のタスク配下で動作するプログラム(プ
ログラムAとする)を呼出すプログラムをXとYとして
、プログラムXの走行タスクレベルをタスクXとし、そ
してプログラムYの走行タスクレベルをタスクYとする
この方式では、プログラムXがプログラムAを呼び出す
際に、゛タスクXの子タスクであるタスクX′を創成し
、且つプログラムAが動作できるメモリ上の空ページに
、プログラムAをディスクからロールインし、タスクX
′上でプログラムAK制御権を移行させる。
同411に、プログラムYがプログラムAを呼び出す際
に、タスクYの子タスクであるタスクY′を創成し、且
つプログラムAが動作できるメモリ上の空ページに、プ
ログラム人をディスクからロールインし、タスクY′上
でプログラムAに制御権を移行させる。
第2図は、タスクYがタスクXよシ上位タスクである時
のタイムチャートを示す。
第2図のに1.Ky時点でのメモリ状態を第3図(・)
K、  Ks、Ks時点でのメモリ状態を第3図(h)
に。
Km、Kg時点でのメモリ状態を第3図(s) K、そ
してに4時点でのメモリ状態を第3図(−に示す。
この方式の欠点は。
■ 1つのプログラムをメ毫り上の固定アドレスで動作
させることが不可能であること(第3図(d)のプログ
ラムAは、同一メモリ上に2つ存在している)。
つt〕、プログラムの作成上の制限として。
アプソリュートプaグラムの作成ができなりこと。
■ ディスクからメモリへプログラムをa−ドする際、
既定のローディングアドレスに変換する必要があるため
、0−ド時間がかかること、但し、プログラムの構成が
BA8KD概念を持っている場合には、この@シでない
■ 置数タースクで動作するプログラムは、メモリ上K
11I数タスク分のプログラムがメモリ上を専有すゐた
め、メモリ効率が悪いこと、また、バーチャルメモリ方
式を用いた場合には、メモリ効率は上がるが、プログツ
ムのロールイン、ロールアウトがふえて、処理効率の悪
化をまねくこと。
であゐ。
l)の方式の説明 この方式は、主に、小型の計算機に用いられ。
複数タスク配下で動作するプログラムを、リエントラン
ト構造で作成すゐことによ〕、複数タスクの配下で動作
させるものである。リエントラント構造の′j:aグラ
ムとは、11行命令のみを用いて構成されたプログラム
で1、メモリ定義命令部のダイナミックエリアを持たな
い形のものである。
ここで再び、プログラムXの走行するタスクをXとし、
プログラムYの走行するタスクをYとして、複数タスク
配下で動作するプログラムAと定義するとき、この方式
では、プログラムXは、そのまま、プログラムAを呼び
出し、プログラム人は、プログラムXの走行するタスク
をそのまま引継いで、タスクX上で動作する。
プログラムYも、同様にそのttプログラムAを呼び出
し、プログラムAは、プログラムYの走行するタスクを
その−it引継いで、タスクY上で動作する。
第4図は、タスクYがタスクXより上位タスクである時
のタイムチャートを示す。
It)の方式が1)の方式と違う点は、  +1)の方
式では、プログラムが複数タスク上で動作する場合であ
って本、メモリ上にはただ1つしか存在していないこと
である。
この方式の欠点は、複数タスクで動作するプログラムは
、リエントラント構造で作成しなければならないことで
ある。つtb、  プログラムは、メモリ定義命令部の
ダイナミックエリアなしに作成されなければならない。
プログラムを実行命令及びコンスタントのメ篭り定義命
令で作成することは、非常圧困難なことであシ、無理に
作成すればメモリ定義命令部のダイナミックエリアを用
いて作成し死時の数倍乃至数十倍の大きさになる。この
ことは、システムにおけるメモリ効率の低下及び、処理
スピードの悪化を招くことkなる。
(4)発明の目的 本発明は、プログラムを複数タスクの配下で使用すゐ場
合に、メモリの使用効率を低下させることなく、またプ
ログラムに構造制限を騨す必要もカいO8/モニタによ
るディスパッチング制御方式を提供することを目的とし
ている。
(5)  発明の構成 本発明の方式は、プログラムの構造が固定部分と可変部
分に分けられるととに着目し、タスクのディスパッチン
グ時に、レジスタ等のセーブの他に、プログラム中の可
変部分(ダイナミックエリア)のみを同時にセーブし、
タスクが再開される時に、レジスタ等の復帰とダイナミ
ックエリアの復帰とを行なうようにし九本のである。
本発明は、そのための構成として、データ処理システム
において、複数タスクの配下で動作するプログラムにつ
いて、そのダイナミックエリアのアドレスを保持するダ
イナミックエリア管理テーブル手段をそなえ、あるタス
クで動作中の該プログラムの処理を中断して他のタスク
へのディスパッチングを行なう@に、上記ダイナ電ツク
エリア管理テーブル手段の内容にしたがって該プログラ
ムのダイナミックエリアを退避させ、上記他のタスクか
ら元のタスクにおけるプログラム中断点に戻る際に、先
に退避したダイナ2ツクエリアを復帰させることを4I
徴としている。
(6)発明の実施例 以下に1本発明を実施例にしたがって説明する。
本実施例では」タスクのディスパッチング時に行なわれ
るプログラムの可変部分(ダイナミックエリア)のセー
ブと復帰とを制御するために、第56iilに示すよう
に6通常のロードモジュールに付加させて、ダイナミッ
クエリア管理テーブルが設けられる。この管理テーブル
は、第6図に示すようにプ■グラムエリア内に存在する
複数のダイナミックエリアの先頭相対アドレスと最終相
対アドレスとを管理する。
通常、10−ドモジユール内のダイナ2ツクエリアは、
プログラムのデバッグをやシ島くするために、  1箇
所Ktとめられてい石ことが多く0分散して複数箇所に
ダイナミックエリアが存在する仁とは少ない。
ダイナミックエリア管理テーブルは、プログラムコーデ
ィング時に、予約語として、ダイナミックエリアの先頭
と最終に宣言する形で記述しておき、コンパイラまたは
アセンブラ−が、その予約語を発見した蒔に、そのアド
レスを、テーブルにセットして行くことKより簡単に作
成することができる0 817図は、ダイナずツクエリア管理テーブルを用いた
ディスパッチング制御方式の1実施例の構成図である。
同図において、1は主メモリ(MSU)。
2は中央処理装置(CPU)、3は複数タスク配下で動
作するプログラム、4は該プログラムのダイナミックエ
リア、5けダイナミックエリア管理テーブル(DAC)
、6は退避用スタック、7はダイナミツクエリアQUE
ブロック(DQB)、8はタスクレベル管理テーブル、
9はタス・り制御プロセフ(TCB)、  1oはタス
ク制御部、11はディスクパッチ制御部、を示す0 第8図は、第7図に示した実施例システムの制御動作を
説明するための機能図で、特KDAC5゜スタック6、
 DQB7. 7ξメスクレベルQUICテーブル8を
取シ出して示しである。以下両図を参照して説明すゐ0 本II施例は、各タスクにおけるプログラムのダイナミ
ックエリア管理テーブルと退避用スタックとの待ち行列
を多重レベルで管理する0デイスパツチングの際、O8
/モニタによJ)DQBt生成し、これを通常のタスク
制御プロツク(TCB)と同様な方法でリンクし、管理
するものである。
タスクレベル管理テーブル8は、タスクレベル0乃至鴨
の各レベル毎に、生成され九DQB待ち行列について、
その先111DQB7と最終DQB7とのアドレスを保
持している。各DQB7.7’は。
当該タスクでのDACおよび退避用スタックのアドレス
と0次層位のDQBへリングするためのアドレスとを保
持している◇DAC5け、10一ドモジユール分のDA
Cと0次層位のDACへリンクする丸めのアドレスとを
保持している。スタック6は、各レベル毎に退避用エリ
アが定められている〇 次に、O8/モニタのもとkあるタスク制御部lOおよ
びディスパッチ制御部110制御動作を説明すゐ・ まず、現在走行中のタスクXの配下で動作しているプロ
グツズをプログラムXとし、タスクXよ)上位レベルの
タスクY配下で動作するプログラムをプログラムYとし
、そして複数タスク配下で動作するプログラム(メモリ
に常駐しているものとすゐ)をプログラムAとする。最
初に、プログラムXがプログラムAをタスクX上で動作
させているものとする。
プログラムAがタスクX上で動作中に、プログラムYよ
り動作要求が発生した場合、O8/モニタは、プログラ
ムムが動作中であることを判定し。
タスクXレベルでのスタックエリアに、プログラムAの
ダイナミックエリア管理テーブルの内容を基に、プログ
ラムAのダイナ建ツクエリアの内容を退避する。次にD
QBにスタックアドレスをセットし、プログラム走行の
ダイナミックエリア管理テーブルのアドレスをリンクす
ゐ。
ここで、タスクXからタスクYへの切替えを行ない、プ
ログラムAの先IIIK制御権を譲渡する。
プログラムAの処理を[、タスクYが実行権を放集した
後、O8/モニタは、タスクXレベルのプログラム走行
を再開する丸めに、DQBにリンクされているダイナミ
ックエリア管理テーブルの内容を基に、スタックエリア
から、ダイナ電ツクエリアの情報を復帰させ、プログラ
ムAの中断点よシ実行を開始させる。
第7図および第8図の実施例では、独立して管理される
DQBを用いてダイナミックエリア管理テーブルの制御
を行なっていたが、とのDQBを。
従来のタスク制御ブロック(第7図のTCB9)に機能
的に含ませ慝ことによシ、実質的に同等の制御を行なわ
せることができる0 第9図は、そのように構成した場合の実施例の機能図で
あゐ0同図において、12はタスクレベル管理テーブル
(LVC)、13はタスク制御プ田ツク、14は本奥施
例により付加されたデータ部分で、ダイナ之ツクエリア
管理テーブルアドレスとスタックア、−ドレスとを含む
もの、15はダイナミックエリア管理テーブル(DAC
)で、pus図のDAC5と同じ本の、そして16はス
タックで、第8図のスタック6と同じ亀のを示している
0制御部作は、”DQBを用いて行なった場合と#1は
同じ手順で行なわれる0 (7)発明の効果 以上述べたように1本発明のディスパッチ制御方式によ
れば、プログラムは、アブンリュート形式のプログラム
が許容され、リエントラント構造に制限する必要がない
0そして、プログラムの実行命令部およびコンスタント
エリアが複数タスクで多重利用されるため、メキリの占
有率が改善される効果が得られる。
【図面の簡単な説明】
第1図は通常のプログラム構造を示す説明図。 第2図は1数タスクでプログラムが走行するときの1従
来例のタイムチャートを示す説明図、第3図は1112
図のタイムチャートの各時点におけるメモリの内容を示
す説明図、第4図は複数タスクでプログラムが走行する
ときの他の従来例のタイムチャートを示す説明図、第5
図は本発明によシブログラムに付設されるダイナミック
エリア管理テーブルを示す説明図、第6図はダイナミッ
クエリア管理テーブルの構成図、第7図は実施例システ
ムの構成図、第8図は第7図のシステムの機能♂。 第9図は他の実施例の機能図、であ石。 図において、1は主メモリ、2けCPU、3はプログラ
ム、4はそのダイナ2ツクエリア、5#1DAC,6F
iスタツク、7はDQB、8はタスクレベルQUEテー
ブル、9はTCB、10はタスク制御部、11はディス
バッチIItll1部、を示す。 特許出願人 富士通株式会社 代理人弁理士 長谷用 文責(外1名)第1 ね #2 町 第4図 第5v!!4 才 6 図

Claims (1)

  1. 【特許請求の範囲】 データ処理システムにおいて、複数タスクの配下で動作
    するプログラムについて、そのダイナミックエリアのア
    ドレスを保持するダイナミックエリア管理テーブル手段
    をそなえ、あゐタスクで動作中の該プログラムの処理を
    中断して他のタスクへのディスパッチングを行なう際に
    、上記ダイナミックエリア管理テーブル手段の内容にし
    たがって該プログラムのダイナミックエリアを退避させ
    。 上舵他のタスクから元のタスクにおけるプログラム中断
    4に戻る際に、先に退避したダイナミックエリアを復帰
    させることを特徴とする。プログラムのグイナiツクエ
    リア管理によるディスパッチング制御方式。
JP21549481A 1981-12-28 1981-12-28 プログラムのダイナミツクエリア管理によるデイスパツチング制御方式 Pending JPS58114249A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21549481A JPS58114249A (ja) 1981-12-28 1981-12-28 プログラムのダイナミツクエリア管理によるデイスパツチング制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21549481A JPS58114249A (ja) 1981-12-28 1981-12-28 プログラムのダイナミツクエリア管理によるデイスパツチング制御方式

Publications (1)

Publication Number Publication Date
JPS58114249A true JPS58114249A (ja) 1983-07-07

Family

ID=16673310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21549481A Pending JPS58114249A (ja) 1981-12-28 1981-12-28 プログラムのダイナミツクエリア管理によるデイスパツチング制御方式

Country Status (1)

Country Link
JP (1) JPS58114249A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5215276A (en) * 1990-12-21 1993-06-01 Kabushikigaisha Tokyo Kikai Seisakusho Remaining paper rewinding device in a printing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5215276A (en) * 1990-12-21 1993-06-01 Kabushikigaisha Tokyo Kikai Seisakusho Remaining paper rewinding device in a printing system

Similar Documents

Publication Publication Date Title
US20060150194A1 (en) Methods and apparatuses to maintain multiple execution contexts
EP0093835B1 (en) Resource switching in a multi-tasking environment
JP3253303B2 (ja) コンテキスト切り換え装置及び方法
US7539989B2 (en) Facilitating intra-node data transfer in collective communications
US20020161957A1 (en) Methods and systems for handling interrupts
US8108880B2 (en) Method and system for enabling state save and debug operations for co-routines in an event-driven environment
US20030041090A1 (en) Yield on multithreaded processors
JPH0544054B2 (ja)
US6883171B1 (en) Dynamic address windowing on a PCI bus
US8732441B2 (en) Multiprocessing system
JPS58114249A (ja) プログラムのダイナミツクエリア管理によるデイスパツチング制御方式
JPH03212753A (ja) 入出力装置に対するアトミックアクセス装置及び方法
JP2002024048A (ja) 高可用性システム
US20030051087A1 (en) Interrupt handlers used in different modes of operations
JP3163196B2 (ja) 仮想記憶制御における命令中断情報格納制御方法
JP2671160B2 (ja) 例外処理方式
JPH05120039A (ja) タスクスケジユーリング方式
JP2790472B2 (ja) 多重会話処理制御方式
JP2002288149A (ja) 並列計算機のチェックポイントリスタートにおけるノード座標変換方法
JPH06187312A (ja) マルチcpuシステムにおける処理方法および装置
JPS63121950A (ja) キヤツシユメモリの管理制御方式
JPH01232392A (ja) 画像処理方法
JPH0296833A (ja) 異機種ジョブ制御方式
WO1984004190A1 (en) Multi-computer computer architecture
JPS59117620A (ja) 計算機システム