Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH0247772B2 - Machigyoretsuseigyohoshiki - Google Patents
[go: Go Back, main page]

JPH0247772B2 - Machigyoretsuseigyohoshiki - Google Patents

Machigyoretsuseigyohoshiki

Info

Publication number
JPH0247772B2
JPH0247772B2 JP17672781A JP17672781A JPH0247772B2 JP H0247772 B2 JPH0247772 B2 JP H0247772B2 JP 17672781 A JP17672781 A JP 17672781A JP 17672781 A JP17672781 A JP 17672781A JP H0247772 B2 JPH0247772 B2 JP H0247772B2
Authority
JP
Japan
Prior art keywords
queue
pointer
block
header
task
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
JP17672781A
Other languages
English (en)
Other versions
JPS5878238A (ja
Inventor
Keiichi Nakane
Keiji Kuwabara
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP17672781A priority Critical patent/JPH0247772B2/ja
Publication of JPS5878238A publication Critical patent/JPS5878238A/ja
Publication of JPH0247772B2 publication Critical patent/JPH0247772B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

【発明の詳細な説明】 本発明は、待ち行列制御方式に関し、詳しくは
待ち行列を形成するために必要なデータ・エリア
を最小にして、主メモリの容量増大を防止するこ
とが可能な制御方式に関するものである。
コンピユータ・システムには、種々の共有リソ
ース(資源)、例えば中央処理装置(CPU)、チ
ヤネル、メモリ、回線等が存在する。そして、コ
ンピユータ・システムの使用効率を向上するため
に多重プログラミングが導入された結果、システ
ム内では多数のプロセスが存在することになり、
使用可能な共有リソースの制限から、これらリソ
ースの奪い合いによる待ち行列が生じている。
一方、コンピユータ・システムのメモリには、
共有リソースの管理、ジヨブや制御の流れのスケ
ジユーリング、プログラムの結合の管理、コマン
ド、ジヨブ制御言語等ユーザからジヨブ処理の指
令を受けたり、ジヨブの出力を出す等のユーザと
のインタフエース、ユーザのプログラムからサブ
ルーチン的に利用されるフアイルのアクセス等に
関する機能をもつオペレーテイング・システムが
格納されている。
ところで、待ち行列を形成する場合には、従来
より待ち行列に登録される可能性のあるすべての
制御テーブルに、待ち行列を形成するために必要
なポインタ・エリアを設けている。しかし、それ
らの制御テーブルのすべてが同時に待ち行列につ
ながれることはなく、また待ち行列に接続された
とき、通常、その数は少ないため、多くの制御テ
ーブルのポインタ・エリアが無駄になつている。
しかも、制御テーブルの数が増加すればするほ
ど、無駄なポインタ・エリアが増加するので、オ
ペレーテイング・システム(以下OSと記す)全
体が占有するメモリ容量は膨大となり、それにと
もないユーザ領域が圧迫されるという問題があ
る。
コンピユータ・システムにおいて発生する待ち
行列の代表的なものは、ユーザ・プログラム(以
下タスクと呼ぶ)の実行待ち行列や、タスク間で
の共有リソース占有待ち行列である。
第1図は、従来の待ち行列を形成するために必
要なOSの制御テーブルの説明図である。
OSは、各タスクごとにタスクの状態を管理す
るテーブル100,120,…130を設け、そ
れらをタスク番号順に並べ、その先頭アドレスを
ポインタ140により管理する。また、OSは、
実行待ち行列を管理するために、タスクの優先レ
ベルに対応した実行待ち行列用キユーヘツダ15
0,155および各種共有リソースに対応した共
有リソース占有待ち行列用キユーヘツダ160,
170を、それぞれ設ける。
上記の各種待ち行列は、該当する待ち行列用キ
ユーヘツダにタスク管理テーブル100,11
0,120,130等を接続することによつて管
理されるのであるが、そのため各タスク管理テー
ブル100,110,120,130にはタスク
の状態を管理する情報110の他に、実行待ち行
列用の前向きポインタ102、後向きポインタ1
04、および共有リソース占有待ち行列用の前向
きポインタ106、後向きポインタ108を設け
ている。前向きと後向きの両ポインタを設ける必
要性は、リング状に結合されるアドレスのうちの
途中の一部を取り外すとき、あるいは順次発生す
るタスクを待ち行列の最後に結合させるときの制
御を高速に行うためである。
また、各キユーヘツダ150,155,16
0,170にも、それぞれ前向きポインタ15
2,162と後向きポインタ154,164を設
ける。これらの前向きポインタと後向きポインタ
の大きさは、それぞれ4バイトである。
第2図a,bは、それぞれ従来の待ち行列管理
状態を示す説明図である。
実行要求が出されたタスクがあると、OSはそ
のタスクの優先レベルに対応した実行待ち行列用
キユーヘツダ150により管理される実行待ち行
列の末尾にそのタスクの管理テーブルを挿入し、
そのタスクの実行の順番を待機させる。
いま、第2図aに示すように、実行待ち行列用
キユーヘツダ150にタスク管理テーブル10
0,120が接続されており、タスク管理テーブ
ル130をテーブル120の次に挿入する場合に
は、OSは、タスク管理テーブル120の前向き
ポインタ122にテーブル130の先頭アドレス
を設定し、テーブル130の前向きポインタ13
2に実行待ち行列用キユーヘツダ150の先頭ア
ドレスを設定し、テーブル130の後向きポイン
タ134にテーブル120の先頭アドレスを設定
し、実行待ち行列用キユーヘツダ150の後向き
ポインタ154にテーブル130の先頭アドレス
を設定することによつて、タスク管理テーブル1
30をキユーヘツダ150に管理される実行待ち
行列に登録する。実行の順番がきて、処理が終了
すると、そのタスクの管理テーブルは、OSによ
り実行待ち行列から取り外される。
一方、実行中に共有リソースの占有待ちを生じ
たタスクがあると、OSはその共有リソースに対
応する占有待ちキユーヘツダ160によつて管理
される共有リソース占有待ち行列の末尾にそのタ
スクの管理テーブルを挿入し、この共有リソース
の占有待ちが解除されるまでそのタスクの実行を
中断させる。
この場合、第2図bに示すように、すでに実行
待ち行列用キユーヘツダ155にタスク管理テー
ブル180,190が接続されているときには、
タスクの管理テーブル190は実行待ち行列から
取り外されて新たに共有リソース占有待ち行列用
キユーヘツダ160に接続されるのではなく、実
行要求が出された時点での先着順序を維持するた
めに、実行待ち行列に接続したまま、さらに別の
共有リソース占有待ち行列にも接続する方法を用
いている。すなわち、タスク管理テーブル190
に対応するタスクを実行中に、キユーヘツダ16
0に対応する共有リソースの占有待ちが生じた場
合、仮に、キユーヘツダ160にはどのテーブル
も接続されていないものとすると、OSはキユー
ヘツダ160の前向きポインタ162および後向
きポインタ164にテーブル190の先頭アドレ
スを設定し、テーブル190の前向きポインタ1
96および後向きポインタ198にキユーヘツダ
160の先頭アドレスを設定することにより、テ
ーブル190をキユーヘツダ160にて管理され
る共有リソース占有待ち行列に登録する。そし
て、共有リソース占有待ちが解除されると、その
タスクの管理テーブル190は、OSにより占有
待ち行列から取り外される。
このように、従来は、タスク管理テーブル10
0に対して、待ち行列を形成するための前向きポ
インタ102,106、後向きポインタ104,
108を設ける必要があり、管理テーブル1ケー
スごとに16バイトがポインタとして使用されてい
る。例えば、登録されたタスク数を256個とする
と、管理テーブルのポインタに要する全体のメモ
リ容量は4096バイト(=16×256)であり、また
同時に実行待ち行列に接続されるタスク数を多め
に予測して32個とすると、そのときに有効に利用
しているポインタ・エリアは512バイト(=16×
32)しかないことになり、その他の3584バイトは
無駄になつている。
本発明の目的は、このような従来の欠点を除去
するため、待ち行列を形成するために必要な制御
テーブルの容量を最小限にして、無駄なエリアを
なくすことができ、しかも従来と同一のインタフ
エースでユーザにより待ち行列の操作が可能な待
ち行列制御方式を提供することにある。
上記目的を達成するため、本発明の待ち行列制
御方式は、待ち行列の形成に必要なポインタを、
タスクの状態を管理する情報を含む第1の制御テ
ーブルから分離して該ポインタのみからなる第2
の制御テーブルを構成し、該第2の制御テーブル
上に上記第1の制御テーブルの先頭アドレスを設
定して、待ち行列に登録した後、処理が終了する
と、上記第2の制御テーブル上の設定を取り消し
て上記待ち行列から切り離すことを特徴としてい
る。
以下、本発明の実施例を、図面により説明す
る。
第3図は、本発明の実施例を示す待ち行列制御
システムの概略ブロツク図である。
主メモリ300上のOSを格納するエリアには、
タスク管理テーブル400,420…がタスク番
号順に配置され、テーブル400の先頭アドレス
をもつポインタ440、タスクの実行待ち行列用
キユーヘツダ450、各種共有リソース占有待ち
行列用キユーヘツダ460が設けられる他に、本
発明により設定された行列ポインタ・テーブル
(以下キユーブロツクと記す)490,495お
よびそれらの空きを管理するキユーヘツダ480
等の制御テーブル類が設けられる。その他、プロ
グラム310,315等も格納されている。
共有リソースである処理装置370には、演算
回路340、制御回路350、制御メモリ360
およびメモリ・アドレス・レジスタ330、メモ
リ・データ・レジスタ335等を含むインタフエ
ース回路が設けられ、その動作は従来と同じであ
る。すなわち、制御回路350の指令により次に
実行すべき命令のアドレスが演算回路340を経
由してメモリ・アドレス・レジスタ330にセツ
トされ、主メモリ300にアクセス要求が出され
ることにより、主メモリ300から次に実行すべ
き命令が読み出されて、メモリ・データ・レジス
タ335にセツトされる。メモリ・データ・レジ
スタ335にセツトされた命令は直ちに制御回路
350に送られ、そこで解読されて制御メモリ3
60に格納されているマイクロプログラムのう
ち、その命令を実行するマイクロプログラム70
0,900,1100,1150,1400,1
450に制御が渡される。制御回路350は、マ
イクロプログラムを逐次、制御メモリ360から
読み出して解読し、それに基づいて演算回路34
0やメモリ・インタフエースやメモリ制御回路3
20を制御する。
本発明により新設された待ち行列操作命令は、
マイクロプログラム700,900,1100,
1150,1400,1450である。
第4図は、本発明の実施例を示す制御テーブル
の構造図である。
タスク管理テーブル400,420,…430
は、従来と同じようにタスク番号順に配置され、
その先頭アドレスがポインタ440によつて管理
される。タスク管理テーブル1ケースの構成は、
従来のタスク管理テーブルから待ち行列用のポイ
ンタ群(16バイト)を取り除いた残りのタスク状
態情報エリア404と、待ち行列に接続するとき
にキユーブロツク490,495…を対応づける
ためのポインタ402(4バイト)を設けたもの
である。
キユーブロツク490,495は、待ち行列を
形成するときに必要なポインタ情報を持つテーブ
ルであり、1ケースの構成は第1キユー(実行待
ち行列)用の前向きポインタ492、後向きポイ
ンタ494、第2キユー(共有リソース占有待ち
行列)用の前向きポインタ496、後向きポイン
タ498、および対応づけられたテーブル用のポ
インタ499からなり、全部で20バイト(4バイ
ト×5)である。これらのキユーブロツク49
0,495は、初期状態時、つまり不使用時には
空きのキユーブロツク・リストとして管理され、
この管理のために空き管理キユーヘツダ480が
新たに設けられる。空き管理キユーヘツダ480
は、空きキユーブロツクを接続するための前向き
ポインタ482、後向きポインタ484を持つ。
実行待ち行列用キユーヘツダ450,455は従
来と同じように双方向ポインタをもつタスクの優
先レベル対応の実行待ち行列キユーヘツダであ
り、共有リソース占有待ち行列用キユーヘツダ4
60,470も、従来と同じように双方向ポイン
タをもつ各共有リソース対応の占有待ち行列キユ
ーヘツダである。
第5図a,bは、本発明の実施例を示す待ち行
列の形成方法の説明図である。
第5図aでは、タスク管理テーブル550で示
されるタスクが、実行待ち行列用キユーヘツダ4
50により管理される実行待ち行列に接続されて
いる場合について説明する。
タスク管理テーブル550で示されるタスクに
実行要求が出されると、OSは空き管理キユーヘ
ツダ480により管理されている空きキユーブロ
ツク行列の先頭から1つのキユーブロツク500
を取り外し、タスク管理テーブル550のポイン
タ552にキユーブロツク500の先頭アドレス
を設定し、一方そのキユーブロツク500のテー
ブル用ポインタ509にテーブル550の先頭ア
ドレスを設定することにより、そのテーブル55
0とキユーブロツク500との対応づけを行う。
さらに、OSは、そのキユーブロツク500に関
して従来と同じように実行待ち行列への挿入操作
を行う。すなわち、キユーブロツク500の前向
きポインタ502は次に並んでいるキユーブロツ
ク510の先頭アドレスを保持し、後向きポイン
タ504はその前に並んでいる実行待ち行列用キ
ユーヘツダ450の先頭アドレスを保持するよう
に情報を設定する。なお、実行待ち行列用キユー
ヘツダ450の次に他のキユーブロツクが接続さ
れているときには、前に並んでいるキユーブロツ
クの先頭アドレスを保持することになる。
次に、第5図bにおいては、タスク管理テーブ
ル590で表されるタスクの実行中に、共有リソ
ース占有待ち行列用キユーヘツダ460に対応す
る共有リソースの占有待ちが生じたものとする。
この場合には、テーブル590に対応するキユー
ブロツク540をキユーヘツダ460により管理
される占有待ち行列に挿入する操作を行うが、キ
ユーヘツダ460およびキユーブロツク540の
ポインタ値は、キユーヘツダ460の先頭アドレ
スあるいはキユーブロツク540の第2キユー用
前向きポインタ546のアドレスとする。すなわ
ち、OSは、キユーヘツダ460の後向きポイン
タ464にはキユーブロツク540の前向きポイ
ンタ546のアドレスを設定し、キユーブロツク
540の前向きポインタ546、後向きポインタ
548にはキユーヘツダ460の先頭アドレスを
設定する。
第6図は、本発明の実施例を示す待ち行列操作
命令の説明図である。
第6図において、大文字(英字)は各命令のニ
モニツクを示し、子文字(英字)はオペランドを
示す。topqhdはキユーヘツダの先頭アドレスを、
toptblはテーブルの先頭アドレスを、regはレジ
スタ番号を、またeaddrは異常時のジヤンプ先ア
ドレスを、それぞれ示す。
(a) GTFQT命令は、topqhdで示す空き管理キ
ユーヘツダEQBHによつて管理されている空
きのキユーブロツク・リストの先頭からキユー
ブロツクQBを1つ外し、toptblで示すタスク
管理テーブルTCBとそのキユーブロツクQBと
の対応づけを行い、そのキユーブロツクQBの
先頭アドレスをregで示すレジスタに設定する
機能を果す。このとき、topqhdで示す空き管
理キユーヘツダEQBHに空きのキユーブロツ
クQBが全くない場合には、何もせずに、
eaddrで示される番地にジヤンプする。
(b) FREQT命令は、toptblで示すタスク管理テ
ーブルTCBに対応づけられているキユーバツ
フアQBとそのタスク管理テーブルTCBとの対
応づけを解消し、そのキユーブロツクQBを
topqhdで示す空き管理キユーヘツダEQBHに
より管理されている空きキユーブロツク・リス
トの先頭に挿入する機能を果す。
(c) INQLT命令は、topqhdで示すキユーヘツダ
EQBHにより管理されている待ち行列の末尾
に、toptblで示すタスク管理テーブル(実際に
はこのタスク管理テーブルTCBに対応するキ
ユーブロツクQB)をその待ち行列が第1キユ
ーになるように挿入する機能を果す。
(d) INQLS命令は、topqhdで示すキユーヘツダ
EQBHにより管理されている待ち行列の末尾
に、toptblで示すテーブル(実際には、このテ
ーブルTCBに対応するキユーブロツク(QB))
をその待ち行列が第2キユーになるように挿入
する機能を果す。
(e) RMVQT命令は、toptblで示すテーブル(実
際には、このテーブルTCBに対応するキユー
ブロツクQB)を第1キユーから取り外す機能
を果す。
(f) RMVQS命令は、toptblで示すテーブル(実
際には、このテーブルに対応するキユーブロツ
ク)を第2キユーから取り外す機能を果す。
第7図は、第6図に示すGTFQT命令の処理手
順のフローチヤート、第8図は同じくGTFQT命
令のデータ操作説明図である。
ブロツク705では、第8図aに示すように、
topqhd602で示される空き管理キユーヘツダ
480の前向きポインタ482の内容を取り出
す。次に、ブロツク710では、前向きポインタ
482の内容とtopqhd602(すなわち、管理
キユーヘツダ480の先頭アドレス)を比較し、
空きキユーブロツクがないか否かをチエツクす
る。
すなわち、前向きポインタ482がキユーヘツ
ダ自身を指示している場合には、何も接続されて
いないことになるので、ポインタ482の内容を
調べる。比較結果が等しいときには空きキユーブ
ロツクはないので、ブロツク735に進みユーザ
の処理にまかせる。つまり、eaddrに分岐するよ
うに、プログラム・カウンタにeaddrを設定す
る。eaddr番地の命令へ移る。
空きキユーブロツクがあれば、ブロツク715
で、前向きポインタ482の内容(すなわち、空
きキユーブロツクの先頭アドレス)をreg606
で示されるレジスタ800に設定する(第8図の
点線矢印)。
次に、ブロツク720では、以下の操作を行う
ことにより空きキユーブロツク・リストの先頭の
キユーブロツク810をリストから取り外す。す
なわち、キユーブロツク810の前向きポインタ
812の内容を空き管理キユーヘツダ480の前
向きポインタ482に設定し(第8図の点線矢
印)、キユーブロツク810の後向きポインタ8
14の内容を前向きポインタ812の内容によつ
て示されるキユーブロツク820の後向きポイン
タ824(あるいは管理キユーヘツド480の後
向きポインタ484)に設定する(第8図の点線
矢印)。
次に、ブロツク725では、以下の操作により
キユーブロツク810とtoptbl604で示される
テーブル830との対応づけを行う(第8図b参
照)。すなわち、キユーブロツク810のテーブ
ル用ポインタ819にtoptbl604(すなわち、
テーブル830の先頭アドレス)を設定し、テー
ブル830のポインタ832にブロツク715に
おいてレジスタ800に設定したキユーブロツク
810の先頭アドレスを設定する(第8図の点線
矢印)。ブロツク725の処理を終了すると、本
命令は終了するので、次の番地の命令実行に移る
(730)。
第8図aの状態から、第8図bの状態に移るこ
とにより、空きキユーブロツクの1つ810が
toptblで示すテーブル830と対応づけられたこ
とになる。
第9図は、第6図におけるFREQT命令の処理
手順を示すフローチヤートであり、第10図は同
じくそのデータ操作図である。
ブロツク905では、toptbl614で示される
テーブル1030のポインタ1032の内容(そ
のテーブルに対応するキユーブロツク1010の
先頭アドレス)を取り出す。次に、ブロツク91
0では、以下の操作により、キユーブロツク10
10をtopqhd612で示され、かつキユーヘツ
ダ480で管理される空きキユーブロツク・リス
トの先頭に挿入する。すなわち、キユーヘツダ4
80の前向きポインタ482の内容をキユーブロ
ツク1010の前向きポインタ1012に設定
し、topqhd612をキユーブロツク1010の
後向きポインタ1014に設定し、またキユーヘ
ツダ480の前向きポインタ482の内容で示さ
れるキユーブロツク1020の後向きポインタ1
024(あるいはキユーヘツダ480の後向きポ
インタ484)にテーブル1030のポインタ1
032の内容を設定する。
次に、ブロツク915と920では、以下の操
作によりテーブル1030とキユーブロツク10
10との対応づけを解消する。すなわち、テーブ
ル1030のポインタ1032とキユーブロツク
1010のポインタ1019にそれぞれオールゼ
ロ1000を設定する。ブロツク920が終了し
たとき、本命令は終了するので、次の番地の命令
を実行する(925)。
第11図Aは、第6図におけるINQLT命令の
処理手順を示すフローチヤートであり、第12図
は同じくそのデータ操作図である。
ブロツク1105では、toptbl624で示され
るテーブル1230のポインタ1232の内容を
取り出す。次に、ブロツク1110では、
topqhd622で示されるタスク実行待ち行列キ
ユーヘツダ450の後向きポインタ454の内容
を取り出す。
次に、ブロツク1115では、以下の内容によ
りテーブル1230のポインタ1232で示され
るキユーブロツク1210を、待ち行列キユーヘ
ツダ450で管理される待ち行列の第1キユーと
して、その待ち行列の末尾に挿入する。すなわ
ち、キユーヘツダ450の後向きポインタ454
の内容で示されるキユーブロツク1200の前向
きポインタ1202(あるいは待ち行列キユーヘ
ツダ450の前向きポインタ452)および待ち
行列キユーヘツダ450の後向きポインタ454
に設定する。ブロツク1115を終了することに
より、本命令を終了し、次の命令の実行に移る
(1120)。
第11図Bは、第6図におけるINQLS命令の
処理手順を示すフローチヤートであり、第13図
は同じくそのデータ操作図である。
INQLT命令と本命令(INQLS)との相違点
は、前者が第1キユーを対象とするのに対し、後
者は第2キユーを対象とするところにある。すな
わち、第11図Bのブロツク1155,1160
は、第11図Aのブロツク1105,1110と
同一内容であるので、相違点であるブロツク11
65について説明する。
ブロツク1165では、以下の操作によりテー
ブル1330のポインタ1332で示されるキユ
ーブロツク1310を共有リソース占有待ち行列
キユーヘツダ460で管理される待ち行列を、第
2キユーとしてその待ち行列の末尾に挿入する。
すなわち、待ち行列キユーヘツダ460の後向き
ポインタ464の内容で示されるキユーブロツク
1300の前向きポインタ1306(あるいは待
ち行列キユーヘツダ460の前向きポインタ46
2)の内容をキユーブロツク1310の前向きポ
インタ1316に設定し、待ち行列キユーヘツダ
460の後向きポインタ464の内容をキユーブ
ロツク1310の後向きポインタ1318に設定
し、テーブル1330のポインタ1332の内容
に8(バイト)1340を加えた値(すなわち、
キユーブロツク1310の前向きポインタ131
6のアドレス)をキユーブロツク1300の前向
きポインタ1306(あるいは待ち行列キユーヘ
ツダ460の前向きポインタ462)および待ち
行列キユーヘツダ460の後向きポインタ464
に設定する。
第14図Aは、第6図におけるRMVQT命令
の処理手順を示すフローチヤートであり、第15
図は同じくそのデータ操作図である。
ブロツク1405では、toptbl642で示され
るテーブル1540のポインタ1542の内容を
取り出す。次に、ブロツク1410では、以下の
操作によりテーブル1540のポインタ1542
の内容で示されるキユーブロツク1510をそれ
が接続されている第1キユーから取り外す。キユ
ーブロツク1510の前向きポインタ1512の
内容を、後向きポインタ1514の内容で示され
るキユーブロツク1500の前向きポインタ15
02(あるいは実行待ち行列キユーヘツダ450
の前向きポインタ452)に設定し、キユーブロ
ツク1510の後向きポインタ1514の内容を
前向きポインタ1512の内容で示されるキユー
ブロツク1520の後向きポインタ1524(あ
るいは待ち行列キユーヘツダ450の後向きポイ
ンタ454)に設定する。
ブロツク1410の処理を終えると、本命令は
終了して、次の命令の実行に移る(1415)。
第14図Bは、第6図におけるRMVQS命令の
処理手順を示すフローチヤートであり、第16図
は同じくそのデータ操作図である。
先に述べたRMVQT命令と本命令との相違は、
前者が第1キユーに対するものであるのに対し
て、後者は第2キユーに対するものである点にあ
る。したがつて、第14図Bのブロツク1455
は第14図Aのブロツク1405と同一であり、
ブロツク1460のみが異なるので、異なる動作
についてのみ説明する。
toptbl652で示されるテーブル1640のポ
インタ1642の内容により示されるキユーブロ
ツク1610の前向きポインタ1616の内容
を、後向きポインタ1618の内容で示されるキ
ユーブロツク1600の前向きポインタ1606
(あるいは共有リソース占有待ち行列キユーヘツ
ダ460の前向きポインタ462)に設定し、キ
ユーブロツク1610の後向きポインタ1618
の内容を前向きポインタ1616の内容で示され
るキユーブロツク1620の後向きポインタ16
28(あるいはキユーヘツダ460の後向きポイ
ンタ464)に設定する。
以上、第6図に示す各命令について、動作を説
明したが、これらの説明から明らかなように、タ
スク管理テーブルTCBから待ち行列用のポイン
タを切り離してキユーブロツクQBとして独立さ
せ、かつキユーブロツクQBを必要最小限のケー
ス数のみ用意し、必要に応じてタスク管理テーブ
ルTCBとキユーブロツクQBを対応づけてテーブ
ルTCBの待ち行列を形成するテーブル構造にす
るので、ポインタ・エリアの無駄なメモリ容量を
削減することができる。例えば、タスク総数を
256個、キユーブロツクQBのケース数(同時に
実行可能なタスク数)を64個、同時実行中のタス
クを多めに見て32個と仮定すると、管理テーブル
TCBのポインタおよびキユーブロツク全体の容
量は2304バイト(=4バイト×5×64+4バイト
×256)であり、このうち有効に利用されている
エリアは768(=4バイト×5×32+4バイト×
32)になる。すなわち、従来は、待ち行列管理の
ために4096バイト(=4バイト×4×256)を要
していたのに対して、2304バイトに減少すること
ができ、かつそれらのエリアの利用度を向上でき
る。
次に、第6図に示すGTEQT、FREQT、
INQLT、INQLS、RMVQT、RMVQS等の命令
を設けることによつて、ユーザはキユーブロツク
の構造やキユーブロツク間の結合を意識すること
なく、従来と同じようにタスク管理テーブル
TCBの先頭アドレスを意識するのみで、タスク
の待ち行列制御を行うことができ、かつタスク管
理テーブルTCBとキユーブロツクQBにの対応づ
けはマイクロプログラムにより実現されるので、
それらに伴うオーバーヘツドは無視できるほど少
なくすることができる。
以上説明したように、本発明によれば、待ち行
列に必要なポインタを一般のテーブルから分離し
て独立した制御テーブルを形成し、かつその制御
テーブルのケース数を必要最少限だけ用意し、必
要に応じて一般のテーブルと対応づけ、待ち行列
を形成するテーブル構造とするので、待ち行列ポ
インタによる制御テーブル容量の増大および無駄
エリアの増大を減少することができる。また、ユ
ーザは上記のようなテーブル構造を全く意識せ
ず、本発明による待ち行列操作の命令を発行する
のみで、従来と同じインタフエースで待ち行列を
操作することができ、しかも一般テーブルとの対
応づけに伴うオーバヘツドも無視できるほど少な
くできる。
【図面の簡単な説明】
第1図は従来の待ち行列に関する制御テーブル
の構造図、第2図は従来の待ち行列管理状態を示
す説明図、第3図は本発明の実施例を示す待ち行
列制御システムの概略ブロツク図、第4図は本発
明の実施例を示す制御テーブルの構造図、第5図
は本発明の実施例を示す待ち行列の形成方法の説
明図、第6図は本発明の実施例を示す待ち行列操
作命令の説明図、第7図、第9図、第11図およ
び第14図はいずれも第6図に示す制御命令の処
理手順のフローチヤート、第8図、第10図、第
12図、第13図、第15図および第16図はい
ずれも第6図に示す制御命令に伴うデータ操作の
説明図である。 400,420,430,550,560,5
70,580,590,830,1030,12
20,1230,1320,1330,153
0,1540,1550,1630,1640,
1650:タスク管理テーブル(TCB)、14
0,440:先頭アドレス・ポインタ、150,
155,450,455:実行待ち行列用キユー
ヘツダ、160,170,460,470:共有
リソース占有待ち行列用キユーヘツダ、480:
空き管理キユーヘツダ、490,495,50
9,510,520,530,540,810,
820,1010,1020,1200,121
0,1300,1310,1500,1510,
1520,1600,1610,1620:キユ
ーブロツク、370:処理装置、300:主メモ
リ、330:メモリ・アドレス・レジスタ、33
5:メモリ・データ・レジスタ、340:演算回
路、350:制御回路、360:制御メモリ、7
00,900,1100,1150,1400,
1450:待ち行列操作用マイクロプログラム。

Claims (1)

  1. 【特許請求の範囲】 1 主メモリと中央処理装置と周辺装置よりなる
    コンピユータ・システムにおいて、タスクあるい
    は共有リソース占有の待ち行列に必要なポインタ
    を、タスクの状態を管理する情報を含む第1の制
    御テーブルから分離して、該ポインタのみからな
    る第2の制御テーブルを構成し、該第2の制御テ
    ーブル上に上記第1の制御テーブルの先頭アドレ
    スを設定して、待ち行列に登録した後、処理が終
    了すると、上記第2の制御テーブル上の設定を取
    り消して、上記待ち行列から切り離すことを特徴
    とする待ち行列制御方式。 2 前記待ち行列の登録あるいは切り離しは、第
    1の制御テーブルを指定する命令のみを用いて行
    うことを特徴とする特許請求の範囲第1項記載の
    待ち行列制御方式。
JP17672781A 1981-11-04 1981-11-04 Machigyoretsuseigyohoshiki Expired - Lifetime JPH0247772B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17672781A JPH0247772B2 (ja) 1981-11-04 1981-11-04 Machigyoretsuseigyohoshiki

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17672781A JPH0247772B2 (ja) 1981-11-04 1981-11-04 Machigyoretsuseigyohoshiki

Publications (2)

Publication Number Publication Date
JPS5878238A JPS5878238A (ja) 1983-05-11
JPH0247772B2 true JPH0247772B2 (ja) 1990-10-22

Family

ID=16018718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17672781A Expired - Lifetime JPH0247772B2 (ja) 1981-11-04 1981-11-04 Machigyoretsuseigyohoshiki

Country Status (1)

Country Link
JP (1) JPH0247772B2 (ja)

Also Published As

Publication number Publication date
JPS5878238A (ja) 1983-05-11

Similar Documents

Publication Publication Date Title
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US5701495A (en) Scalable system interrupt structure for a multi-processing system
JPS646488B2 (ja)
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
JP3644042B2 (ja) マルチタスク処理装置
JPH0247772B2 (ja) Machigyoretsuseigyohoshiki
EP0297895B1 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
JPH0895810A (ja) バッチジョブ実行方式
JPS603229B2 (ja) 情報処理方式
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JP2579008B2 (ja) 時分割マルチタスク実行装置
JPH0115899B2 (ja)
JPH0199132A (ja) マルチタスク実行装置
JPH01126738A (ja) 多重ジョブの実行におけるデータセット競合制御方式
JPH0219494B2 (ja)
JPS61160147A (ja) 仮想計算機制御方式
JPH0452490B2 (ja)
JPH0376497B2 (ja)
JPH02143321A (ja) ネットワーク環境の出力サーバ
JPH041370B2 (ja)
JPH01222335A (ja) マルチタスク処理方式
JPH0460842A (ja) 計算機システム
JPH0797322B2 (ja) ディスパッチ制御方式