JPS63201730A - ソフトウエアスタツク制御方法 - Google Patents

ソフトウエアスタツク制御方法

Info

Publication number
JPS63201730A
JPS63201730A JP3362287A JP3362287A JPS63201730A JP S63201730 A JPS63201730 A JP S63201730A JP 3362287 A JP3362287 A JP 3362287A JP 3362287 A JP3362287 A JP 3362287A JP S63201730 A JPS63201730 A JP S63201730A
Authority
JP
Japan
Prior art keywords
stack
interrupt
task
exit
interruption
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
JP3362287A
Other languages
English (en)
Inventor
Kazuo Shigaki
紫垣 和夫
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 JP3362287A priority Critical patent/JPS63201730A/ja
Publication of JPS63201730A publication Critical patent/JPS63201730A/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
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Abstract

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

Description

【発明の詳細な説明】 [概要] 本発明は、スタックを必要とするプログラムがハードウ
ェアスタックを有しない電子計算機上でマルチタスクと
して動作する場合において、オペレーティングシステム
(OSと略称する)のスタック制御の負担を制御し、そ
れぞれのタスクが持つスタックを共用することによりス
タック制御によるオーバー7ヘツドを減少させ、OSの
スタック制御を簡単且つ高速に行うものである。
[産業上の利用分野] 本発明は、OSの制御アルゴリズム、特にスタックのプ
ログラムによる制御方法に関する。
スタックを使用するプログラム言語で書かれたプログラ
ムは、通常ハードウェアスタックを有する電子計算機上
で動作させるが、もし電子計算機にハードウェアスタッ
クがない場合にはOSがその制御を行う必要がある。こ
のときの制御は複雑であり、又、OSのオーバーヘッド
が大きくなる原因の一つとなる。このため、簡単で高速
なアルゴリズムが必要とされる。
[従来の技術] 従来のOSでのスタック制御の動作を第4図に示す。図
中、1は一つのプログラム単位であるタスクを示す。2
も同様に別なタスクである。3及び4は割り込みが発生
したときに実行される割り込み処理ルーチン(以下単に
割り込み処理と略す)である。割り込み出口処理(以下
単に出口と略す)5は、割り込み6が発生すると割り込
み処理3によって呼び出される割込み処理の結果の情報
の特定領域に格納する等の出口処理である。7はタスク
1が使用するスタックであり、8はタスク2用のスタッ
クである。これらのスタック7.8は各タスク1.2の
各々に論理的に固定される(割り付けられている)。又
、9及び10は割り込み処理3及び4用のスタック、1
1は割り込み出口5用のスタックである。
タスク2は割り込み処理3に対して、割り込み6が発生
したときに実行して欲しい出口ルーチン5を予め通知す
るようになっている。
タスク1が実行されているときに、割り込み6が発生し
割り込み処理3を実行した後、割り込み出口5を実行す
る場合について説明する。まずタスク1が実行されてい
る時点では、スタック7が使用されている。ここで、割
り込み6が発生すると、割り込み処理3が実行される。
そのときのスタックは、スタック9に切り替わっている
。割り込み処理3が終了すると割り込み出口5が割り込
み処理領域内に登録されているので、その出口5が実行
される。このときのスタックはスタック11である。
このように従来のスタック制御は、それぞれの処理(タ
スク或いは割り込みなど)がそれぞれ固定的に論理結合
されたスタックを持ち、処理が切り替わるごとにスタッ
クも切り替えるため、その処理が複雑であり、又、スタ
ックの切り替えを行うことによるオーバーヘッドも大き
いという問題3一 点があった。
[発明が解決しようとする問題点] 本発明はこのような点に鑑みてなされたもので、簡単で
高速なソフトウェアスタック制御方法を提供することを
目的としている。
[問題点を解決するための手段] 第1図は本発明に係るスタック制御方法の原理を示すフ
ローチャートである。
本発明はハードウェアスタックを有しない電子計算機上
で動作するOSのスタック制御方法であって、 各タスク及び非同期な割り込み処理や出口処理などに共
有可能なスタックを設けておき(ステップ1)、 割り込みが発生したとき、割り込み処理はレジスタなど
の情報を前記スタックに退避しくステップ2)、 次に割り込み処理は前記スタックの内、残りのスタック
から使用分だけ切り出して使用しくステップ3)、 割り込み処理が割り込み出口を呼び出すときは、前記ス
タックから割り込み出口用のスタックを切り出し前記タ
スクに設けられた割り込み出口に渡す(ステップ■)。
[作用] 本発明ではタスクを実行中に非同期の割り込みが発生し
た場合、割り込み処理が当該タスクで使用していたスタ
ックをそのまま使用するため、従来のようなスタック切
り替えを全く必要としない。
[実施例] 以下、図面を参照して本発明の実施例を詳細に説明する
第2図は本発明によるスタック使用状況を示す図である
。第4図と同様の機能は同一の符号を付して示す。図に
おいて、1及び2はタスク、3及び4は割り込みが発生
したときに実行される割り込み処理ルーチンである。5
はタスク2によって割り込み処理3に登録された割り込
み出口ルーチンである。6は割り込み事象の一つである
。70は非同期処理のスタックも兼ねた共用スタックで
ある。
今、タスク1が実行中であるとする。スタック70の一
部71はタスク1により使用されているが、予めスタッ
ク70中には非同期処理用の退避域72が割り付けられ
ている。ここで割り込みが発生づると、割り込み処理3
が実行されるが、割り込み処理3はまずレジスタツクタ
スクなどの情報をスタック70に退避する。その後、ス
タックを割り込み処理3で使用する分だけスタック70
から切り出して(退避域73)使用する。割り込み処理
3には割り込み出口5が登録されており、この割り込み
出口5を呼び出すとぎ出口5用のスタックをスタック7
0から切り出しく退避域74)、割り込み出口5に渡す
第3図は本発明を実施するためのシステム構成図である
。図中、31は中央処理装置(以下単にCPUという)
、32はOSをはじめ各種のタスク(第2図に示すタス
ク1やタスク2など)や割り込み処理のプログラム(第
2図の割り込み処理3.4など)が記憶され、又、第2
図に示すスタック70がそれぞれ設けられたメモリであ
る。スタックはFILO(先入れ後出し)形式となって
いる。
33は各種の必要な情報を入力するためのコンソール、
34は表示出力を表示するCRT表示装置、35はフロ
ッピーディスクを記録媒体とし必要なプログラムやデー
タの読み出し乃至書き込みが可能なフロッピーディスク
ユニットである。コンソール33、CRT表示装置34
及びフロッピーディスクユニット35はアダプター36
を介してバス37に接続されている。CPU31はメモ
リ32上のOSに基づぎ作動する。そして、コンソール
33からの指示により目的のタスク(メモリ32にその
プログラムが格納されている)を実行する。タスクがフ
ロッピーへのデータ格納やCRT表示を要求する場合は
、CPU31によりデ一夕が適宜それら各出力装置へ送
出される。
タスク実行中に割り込みが発生したときに番よ、OSは
この割り込みを受付け、第2図において説明したように
スタック制御を行う。尚、CPU31にはスタック管理
用のレジスタがあり、ここに現在のスタックのポインタ
が格納され、各処理ではこれを参照することによって正
しいスタック使用ができるようになっている。
[発明の効果] 以上詳細に説明したように、本発明によれIfスタック
の切り替えの契機が少なくなりスタック市制御が単純に
なると共に、スタック制御によるオーバーヘッドも減少
する。又、スタックの総数も少なくてすむためメモリの
有効利用を図ることができ、スタックの生成及び消去な
どの回数も減少できる効果がある。
【図面の簡単な説明】
第1図は本発明の原理を示すフローチャート、第2図は
本発明によるスタック使用状況を示す図、 第3図は本発明を実施するためのシステム構成図、 第4図は従来のOSでのスタック制御について説明する
ための説明図である。 第2図において、 1.2はタスク、 3.4は割り込み処理ルーチン、 5は割り込み出口ルーチン、 70は共用スタックである。 第1図 本発明によるスタック使用状況を示す図第2図 第3図

Claims (1)

  1. 【特許請求の範囲】 ハードウェアスタックを有しない電子計算機上で動作す
    るOSのスタック制御方法であつて、各タスク及び非同
    期な割り込み処理や出口処理などに共有可能なスタック
    を設けておき(ステップ1)、 割り込みが発生したとき、割り込み処理はレジスタなど
    の情報を前記スタックに退避し(ステップ2)、 次に割り込み処理は前記スタックの内、残りのスタック
    から使用分だけ切り出して使用し(ステップ3)、 割り込み処理が割り込み出口を呼び出すときは、前記ス
    タックから割り込み出口用のスタックを切り出し前記タ
    スクに設けられた割り込み出口に渡す(ステップ4)、 ようにしたことを特徴とするソフトウェアスタック制御
    方法。
JP3362287A 1987-02-17 1987-02-17 ソフトウエアスタツク制御方法 Pending JPS63201730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3362287A JPS63201730A (ja) 1987-02-17 1987-02-17 ソフトウエアスタツク制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3362287A JPS63201730A (ja) 1987-02-17 1987-02-17 ソフトウエアスタツク制御方法

Publications (1)

Publication Number Publication Date
JPS63201730A true JPS63201730A (ja) 1988-08-19

Family

ID=12391549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3362287A Pending JPS63201730A (ja) 1987-02-17 1987-02-17 ソフトウエアスタツク制御方法

Country Status (1)

Country Link
JP (1) JPS63201730A (ja)

Similar Documents

Publication Publication Date Title
JPS6258341A (ja) 入出力割込処理方式
JP2513024B2 (ja) 拡張記憶アドレス制御方式
JPS60225943A (ja) 例外割込み処理方式
JPS63201730A (ja) ソフトウエアスタツク制御方法
EP0206335B1 (en) Interruption method for a data processing system
JPS61184643A (ja) 仮想計算機の起動制御方式
JP2542573B2 (ja) システムフリ−ズリスタ−ト方式
JPS63163656A (ja) 入出力割込み方法およびシステム
JPH11167494A (ja) 演算処理装置、及び演算処理装置のレジスタ管理方法
JPH02163834A (ja) マルチ・タスク処理方式
JPS61157948A (ja) 割込み要因解析装置
JP3463696B2 (ja) オンラインガーベッジコレクション処理方法
JPS6136850A (ja) 入出力割込通知方式
JPS63305429A (ja) マイクロプロセッサの割込み方式
JPS61248152A (ja) プロシ−ジヤ切替制御方式
JPS60215250A (ja) デ−タ処理装置
JPH03182945A (ja) 主記憶内データ転送方式
JPH11161506A (ja) 情報処理装置のディスパッチ方法、情報処理装置及びその記録媒体
JPH10171670A (ja) タスク切り替え装置及びタスク切り替えプログラムを記録した媒体
JPH04347756A (ja) チャネル状態読み出し方式
JPH0447853B2 (ja)
JPS62276634A (ja) 仮想計算機システム
JPS62140145A (ja) 仮想計算機システム
JPS6394339A (ja) 仮想計算機システム
JPS6222163A (ja) 情報処理装置