JPS5878238A - 待ち行列制御方式 - Google Patents

待ち行列制御方式

Info

Publication number
JPS5878238A
JPS5878238A JP17672781A JP17672781A JPS5878238A JP S5878238 A JPS5878238 A JP S5878238A JP 17672781 A JP17672781 A JP 17672781A JP 17672781 A JP17672781 A JP 17672781A JP S5878238 A JPS5878238 A JP S5878238A
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.)
Granted
Application number
JP17672781A
Other languages
English (en)
Other versions
JPH0247772B2 (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)

Abstract

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

Description

【発明の詳細な説明】 本発明は、待ち行列制御方式に関し、詳しくは待ち行列
管形成するために必要なデータ・エリアを最小にして、
主メモリの容量増大を防止することが可能な制御方式に
関するものである。
コンピュータ・システムには、種々の共有リソース(資
源)、例えば中央処理装@ (aptr)、チャネル、
メモリ、回線等が存在する。そして、コンピュータ・シ
ステムの使用効率を向上するために多重プリグラミング
が導入された結果、システム内では多数のプロセスが共
存することになり、使用可能な共有リソースの制限から
、これらリソースの奪い合いによる待ち行列が生じてい
る。
一方、コンピュータ・システムのメモリには、共有リソ
ースの管理、ジョブや制御の流れのスケジューリング、
ブ四グラムの結合の管理、コマンド、ジ舊プ制御言語等
ユーザからジョブ処理の指令を受けたり、ジ璽ブの出力
を出す等のユーザとのインク7エ〜ス、ユーザのプνグ
ラムからサブルーチン的に利用されるファイルのアクセ
ス等に関する機能をもつオペレーティング・システムが
格納されている。
ところで、待ち行列を形成する場合には、従来より待ち
行列に登録される可能性のあるすべての制御テーブルに
、待ち行列を形成するために必要なポインタ・−リアを
設けている。しかし、2れらの閣御テーブルのすべてが
同時に待ち行列につながれることはなく、また待ち行列
に接続されたとき、運営、その数は少ないため、多くの
制御テーブルのポインタ・エリアが無駄になっている。
しかも、1!1lIlテーブルの数が増加すればする纜
ど、無駄なポインタ・エリアが増大するので、オペレー
ティング・システム(以下08と記す)全体が占有する
メモリ容量は膨大となり、それkともないユーザ領域が
圧迫されるという問題がある。
/ コンピュータ・システムにおいて発生する待ち行列の代
褒的なものは、ユーザ・プログラム(以下タスクと呼ぶ
)の実行待ち行列や、タスク間での共有リソース占有待
ち行列である。
第1−は、従来の待ち行列を形成するために必要なOS
の制御テーブルの説明図である。
O8は、各タスクごとにタスクの状態を管理するテーブ
ル100.120.・・・130 をPけ、それらをタ
スク番号順に並べ、その先順アドレス全ポインタ140
により管理する。また、O8は、実行待ち行列を管理す
るために1タスクの優先レベルに対応し7た実行待ち行
列用キューヘッダ150゜155および各種共有リソー
スに対応した共有リソース占有待ち行列用キューヘッダ
160,170t1それぞれ設ける。
上記の各種待ち行列け、該当する待ち行列用キューヘッ
ダにタスク管理テーブル100,110゜120.13
041−接続することによって管理されるのであるが、
そのため各タスク管理テーブル100.110,120
.130 にはタスクの状l!!Jを管理する情報11
0の他に、実行待ち行列用の前向きポインタ102、後
向きポインタ104、および共有リソース占有待ち行列
用の前向きポインタ106、後向きポインタ108を設
けている。
前向きと後向きの両ポインタを設ける必要性は、リング
状に結合されるアドレスのうちの途中の一部を取り外す
とき、あるいは順次発生するタスクを待ち行列の最@に
結合させると11の制御を高速に行うためである。
また、各キューヘッダ150.155.160.170
にも、それぞれ前向tIフインタ152.162と後向
きポインタ154,164 を設ける。これらの前向き
lインタと後向きポインタの大きさは、それぞれ冬バイ
シである。
第2図c&)伽)は、それぞれ従来の待ち行列管理状s
t−示す説明図である。
実行要求が出されたタスクがあると、O8はそのタスク
の優先レベルに対応した実行待ち行列用キューヘッダ1
50により管コされる実行待ち行列の末尾にそのタスク
の管理テーブルを挿入し、そのタスクの実行の順番を待
機させる。
いま、第2図(、)に示すように、実行待ち行列用キュ
ーヘッダ150にタスク管理テーブル100゜1203
が鎗続されており、タスク管理テーブル130をテーブ
ル1200次に挿入する場合には、08は、タスク管理
テーブル120の前向きポインタ122にテーブル13
0の先頭アドレスを設定し、テーブル130の前向きポ
インタ132に実行待ち行列用キューヘッダ150の先
頭アドレスYr設定し、テーブル130の後向きポイン
タ134にテーブル120の先頭アドレスを設定し、実
行待ち行列用キューヘッダ150の後向きポインタ15
4にテーブル130の先順アドレスを設定することによ
って、タスク管理テーブル130をキューヘッダ150
に管理される実行待ち行列に登録する。実行の順番がき
て、処理が終了すると、そのタスクの管理テーブルは、
O8により実行待ち行列から取り外される。
一方、実行中に共有リソースの占有待ちを生じたタスク
があると、08はその共有リソースに対応する占有待ち
キューヘッダ160によって管理される共有リソース占
有待ち行列の末尾にそのタスクの管理テーブル全挿入し
、この共有リソースの占有待ちが解除されるt″′Cそ
のタスクの実行を中断させる。
この場合、第2図cb)K示すように、すでに宥行待ち
行列用キューヘッダ155にタスク管理テーブル180
,190 が接続されているとI!には、タスクの管理
テーブル190は実行待ち行列から取り外されて新たに
共有リソース占有待ち行列用中ニーヘッダ160に接続
されるのではなく、実行要求が出された時点での先着順
序tm持するために、実行待ち行列に接続した11.さ
らに別の共有リソース占有待ち行列KIe1棲続する方
法を用いている。すなわち、タスク管理テーブル190
に対応するタスクを実行中に、キューヘッダ160に対
応する共有リソースの占有待ちが生じた場合、[K、−
?ニーヘッダ160にはどのテーブルも接続されていな
いものとすると、O8はキューヘッダ160の前向きポ
インタ162および後向きメインタ164にテーブル1
90の先頭アドレスを設定し、テーブル190の前向き
ポインタ196および後向きポインタ198にキューへ
ラダ160の先頭アドレスtV定することkより、テー
ブル190をキューヘッダ160にて管理される共有リ
ソース占有待ち行列に登録する。そして、共有リンース
占有待ちが解除されると、そのタスクの管理テーブル1
90は、O8により占有待ち行列から取り外される。
このように、従来は、タスク管理テープN100に対し
て、待ち行列を形成するための前向きポインタ102,
106、後向きポインタ164,108を設ける必替が
あり、管理テーブル1ケースごとに16バイシががイン
タとして使用されている。
例えば、登録されたタスク11256個とすると、管理
テーブルのポインタに要する全体のメモリ容量は409
6バイト(−16X256)であり、また同時に実行待
ち行列に接続されるタスク数を多めに予測して324J
iAとすると、そのときに有効に利用しているポインタ
・エリアは512バイト(−16X32)しかないこと
になり、その他の5584バイトは無駄になっている。
本発明の目的は、このような従来の欠点を除去するため
、待ち行列を形成するために必要な制御テーブルの容量
を最小1[Kして、無駄なエリアをなくすことができ、
しかも従来と同一のインク7エースでユーザにより待ち
行列の操作が可能な待ち行列制御方式を提供することに
ある。
上記目的を達成するため、本発明の待ち行列制御方式は
、待ち行列の形成に必要なポインタを、タスクの状態全
管理する情報管食も第1の制御テーブルから分離して該
ポインタのみからなる第2の制御デープルを構成し、該
第20制御テーブル上に上記第1の制御テーブルの先頭
アドレスを設定して、待ち行列に登録した後、処理が終
了すると、上記第2の制御テーブル上の設定を取り消し
て上記待ち行列から切り離すことを特徴としてしする。
以下、本発明の実施@を、wA−により説明する。
第3図は、本発明の実施例を示す待ち行列制御システム
の概略ブ關ツク図である。
主メモリ300上のoat格納するエリアには、タスク
管理テープ4400.420・・・・がタスク番号順に
配置され、テーブル400の先頭アドレスをもつポイン
タ440、タスクの実行待ち行列用キューヘッダ450
.各種共有リソース占有待ち行列用キューヘッダ460
が設けられる他に1本発明により新設された行列ポイン
タ・テーブル(以後キューブロックと記す)490.4
95およびそれらの空きを管理するキューヘッダ480
噂の制御テーブル類が設けられる。その他、プログラム
310.3151も格納されている。
共有リソースである処理装置370には、演算回路54
0.制御回路3δ0.制御メモリ360およびメモリ・
アドレス・レジスタ330.メモリ・データ・レジスタ
335等全含もインタフェース回路が設けられ、その動
作は従来と同じである。すなわち、制御回路350の指
令により次に実行すべき命令のアドレスプ;演U回路3
40を経由してメモリ・アドレス・レジスタ330にセ
ットされ、主メモリ300にアクセス要求が出されるこ
とにより、主メモリ300から次に実行すべき命令が読
み出されて、メモリ・データ・レジスタ336にセット
される。メモリ・データ・レジスタ335にセットされ
た命令は直ちに制御回路350に送られ、そこで解読さ
れて制御メモリ360に格納されているマイクロプログ
ラムのうち、その命令全実行するマイクロプログラム7
00゜900.1100.IIJo、1400.145
0 に制御が渡される。制御回路350は、マイクロプ
ログラムを逐次、制御メモリ360から読み出して解読
し、それに基づいて演算同熱340やメモリ・インク7
エースやメモリ制御回路δ20を制御する。
本発明により新設された待ち行列操作命令は、マイクロ
プログラムToo、900,1100.1150゜14
00.1450である。
第4図は、本発明の実施例を示す制御テーブルの構造図
である。
タスク管理テーブル400,420.、・・・430け
、従来と同じように゛タスク番号順に配置され、その先
頭アドレスがポインタ440によって管理される。タス
ク管理テーブル1ケースの構成は、従来のタス。り管理
テーブルから待ち行列用のlインタ群(16バイト)を
取り除い′だ残りのタスク状態情報エリア404と、待
ち行列に接続するときにキューブシック490,495
・・・を対応づけるためのポインタ402  (4バイ
))を設けたものである。
キューブロック490,495は、待ち行列を形成する
ときに必要なポインタ情報を持つテーブルであり、1ケ
ースの構成はlhlキヱ=(実行待ち行列)用の前向き
ポインタ492、後向きポインタ494、第2キユー(
共有リソース占有待ち行列)用の前向きポインタ496
.後向きポインタ498、および対応づけられたテーブ
ル用のポインタ499からなり、全部で20パイ)(4
バイシ×5)である。これらのキューブロック490.
495は、初期状態時、つまり不使用時には空きのキュ
ーブシック・リストとして管理され、この管理のために
空き管理キューヘッダ480が新たに設けられる。空き
管理キューヘッダ480は、空きキューブリックを接続
するための前向きポインタ482、後向きポインタ48
牛を持つ。実行待ち行列用キューヘッダ養60.455
 は従来と同じように双方向ポインタをもつタスクの轍
先レベル対応の実行待ち行列キューへ、ラダであり、共
有リソース占有待ち行列用キュ、−ヘッダ460,47
0  も、従来と同じように双方向ポインタをもつ各共
有リソース対応の占有待ち行列キューヘッダである。
第5図(、)(b)は、本発明の実施例を示す待ち行列
の形成方法の説明図である。
第5 図(a)では、タスク管理テーブル550で示さ
れるタスクが、実行待ち行列用キューヘッダ4δ0によ
り管理される実行待ち行列に接続されている場合につい
て説明する。
タスク管理テーブル6δ0で示されるタスクに実行要求
が出されると、O8は空き管理キューヘッダ480によ
り管理されている空きキューブVツタ行列の先頭から1
つのキューブシック500を取り外し、タスク管理テー
ブルδδ0のポインタ552に+ニーブロック500の
先頭アドレスを設定し、一方そのキューブシック500
のテーブル用ポインタ509にテーブル6δ0の先頭ア
ドレス全設定することにより、そのテーブル5δ0トキ
ユーブロツク500との対応づけを行う。
さらに1・O8は、そのキューブロック500に関して
従来と同じように実行待ち行列への挿入操作を行う。す
なわち、キューブロック600の前向きポインタ502
は次に並んでいるキューブロック510の先頭アドレス
を保持し、彼向きポインタ504はその口σに並んでい
る実行待ち行列用キューヘッダ450の先頭アドレス全
保持するように情報を設定する。なお、実行待ち行列用
キューヘッダ4−50の次に他のキューブロックが接続
されているときには、前に並んでいるキューブシックの
先頭アドレスを保持することになる。
次に、第5図伽)においては、タスク管理テーブルδ9
0で表されるタスクの実行中に、共有リソース占有待ち
行列用キューヘッダ460に対応する共有リソースの占
有待ちが生じたものとする。
この場合には、テーブル590に対応するキューブロッ
ク540に一キューヘッダ460により管理される占有
待ち行列に挿入する操作全行うが、キューヘッダ460
およびキューブロック540のポインタ値は、キューヘ
ッダ460の先頭アドレスあるいはキューブロック54
00第2キュー用前向きポインタ546のアドレス七す
る。すなわち、O8は、キューヘッダ460の彼向きポ
インタ46キにはキューブシックδ4oの前向きポイン
タ546のアドレスを設定し、キューブロック540の
前向きポインタ546.後向きポインタ548にはキュ
−ヘッダ4600先頭アドレスを設定する。
第6図は、本発明の実施例を示す待ち行列繰作命令の説
明図である・ 第6図において、大文字′(英字)は各命令のニモニッ
クを示し、子文字(英字)はオペランドを示す。to)
qhdはキューヘッダの先頭アドレスを、toptbj
はテーブルの先頭アドレスを、r・gはレジスタ番号を
、また・ad4r は異常時のジャンプ先アドレスを、
それぞれ示す。
(a) G T I Q T命令は、topqhdで示
す空き管理中ニーヘッダ(I Q B H)によって管
理されている空きのキューブロック・リストの先頭から
キューブロック(QIm)を1つ外し、toptbjで
示すタスク管理テーブル(T OB)とそのキューブリ
ック(QIm)との対応づけを行い、そのキューブロッ
ク(Q B)の先頭アドレスをr@gで示すレジスタに
設定する機能を果す。このとき、topqhdで示す空
き管理キューヘッダ(gq、na)  に空きのキュー
ブロック(QB)S全くない場合には、何もせずに、e
id4rで示される番地にジャンプする。
%)ffRBQ’j’命令は、toptbjで示すタス
ク管理テーブル(T OB)に対応づけられているキュ
ーバッファ(QB)とそのタスク管理テーブル(T O
!1)との対応づけ全解消し、そのキューブシック(Q
 B))topqhdて示す空き管理キューヘッダ(鵞
QBM)により管理されている空きキューブシック・リ
ストの先頭に挿入する機能を果す。
(Q)工NQLテ命令は、topqblで示すキュー 
ヘッダ(IQBH)により管理されている待ち行列の末
尾に、toptbjで示すタスク管理テーブル(実際に
はこのタスク管理テープ、1%/(TCB)に対応する
キューブ・ロック(QB))’?その待ち行列が第1キ
ユーになるように挿入する機能を果す。
(a)工NQLS命令は、topqb4で示すキューヘ
ッダ(KQBH)により管理されている待ち行列の末尾
に、t−optblで示すテーブル(実際には、このデ
ープル(テOB)に対応するキューブロック(QB))
をその待ち行列が第2キユーになるように挿入する機能
を果す。
(e) RM V Q T命令け、toptbjで示す
テーブル(実際には、このテーブル(’!’ OB)に
対応するキューブロック(QB))を第1キユーから取
り外す機能を果す。
(f)RMTQS命令は、toptbjで示すテーブル
(実際には、このテーブルに対応するキューブロック)
を第2キユーから取り外す機能を果す。
第7図は、第6図に示すGTFQT命令の処理手順の7
0−チャート、第8図は同じ(GTFQ、T命令のデー
タ操作説明図である。
ブロック705では、第8図(a)に示すよう如、to
pqhd 602  で示される空き管理キューヘッダ
480の前向きポインタ482の内容を取り出す。
次に、ブロック710では、前向きポインタ482の内
容とjopqhd 602 (すなわち、管理キューヘ
ッダ480の先頭アドレス)を比較し、空きキューブロ
ックがないか否かをチェックする。
すなわち、前向きポインタ482がキューヘッダ自身全
指示している場合には、何も接続されていないことKな
るので、ポインタ482の内容を調べる。比r!結平が
等しいときには、空きキューブロックはないので、ブロ
ック735に進みユーザの処理にまかせる。つまり、e
addr  に分岐するヨウに、プログラム・カウンタ
Vこeaddr  を設定する。・:れによって、・a
6dr 番地の命令へ移る。
空きキューブロックがあれば、ブロック715で、前向
きポインタ4已2の内容(すなわち、空きキューブロッ
クの先頭アドレス)をre(606で示されるレジスタ
800に設定する(第8図の点線矢印)。
次に、ブリック720では、以下の操作を行うことによ
り空きキューブロック・リストの先頭のキューブロック
810奢リストから取り外す。
すなわち、キューブロック810の前向きポインタ81
2の内容を空き管理キューヘッダ480の前向きポイン
タ482に?定しく第8図の点線矢印)、キューブロッ
ク810の後向きポインタ8140内容管前向きポイン
タ812の内容によって示されるキューブジッタ820
の後向きポインタ824(あるいは管理キューヘッド+
80の後向きポインタ484)に設定する(第8図の点
線矢印)0 次に、ブロック725では、以下の操作によりキューブ
−ツタ81・0とtoptb1604で示されるテーブ
ル830との対応づけを行う(第8図6)参照)。すな
わち、キューブロック810のテーブル用ポインタ81
9にtoptbz604 (すなわち、テーブル830
の先頭アドレス)Yt段設定、テーブル830のポイン
タ832にブロック715においてレジスタ800に設
定したキューブロック810の先頭アドレスを設定する
(第8図の点線矢印)。ブロック725の処理を終了す
ると、本命令は終了するので、次の番地の命令実行に移
る(730)。
第8図(荀の状態から、第a m cb>の状態に移る
ことにより、空きキューブロック01つ810がtop
tb/  で示すテーブル830と対応づけられたこと
になる。
第9図は、第6図における?R11Q?命令の処理手順
を示すフローチャートであり、第10図は同じくそのデ
ータ操作図である。
ブロック906では、toptb1614で示されるテ
ーブル103040ポインタ1032の内容(そのテー
ブルに対応するキュープルツタ10100先il!アド
レス)を取り出す。次に、ブロック910では、以下の
操作により、キューブロック1010をtopqha6
12で示され、かつキューヘッダ480で管理される空
きキューブロック・リストの先頭に挿入する。すなわち
、キューヘッダ+80の前向きポインタ482の内容を
キュープロッタ1010の前向きポインタ1012に設
定し、topqha612をキュープリッタ1010の
後向きポインタ1014に設定し、またキューヘッダ4
80の前向きポインタ482の内容で示されるキューブ
璽ツク1020の後向色ポインタ1024(あるいはキ
ューヘッダ480の後向きlインタ484)にテーブル
1030のポインタ10320内容を設定する。
次に、ブロック415と920では、以下の操作により
テーブル1030とキューブロック1010との対応づ
け全解消する。すなわち、テーブル1030のポインタ
1032とキューブロック】OlOのポインタ1019
にそれぞれオールゼ1=f1000を設定する。ブロッ
ク920が終了したと倉、本命令は終了するので、次の
番地の命令を実行する(925)。
第11図(A)は、第6図における工NQLT命令の処
理手順を示す7u−チャートであり、第12W1は同じ
くそのデータ操作図である。
ブロック1105では、toptb1624で示される
テーブル1230のポインタ1232の内界を取り出す
。次に、ブロック1110では、toH,ha622で
示されるタスク実行待ち行列キューヘッダ450の後向
きポインタ464の内容を取り出す。
次に、ブロック1116では、以下の操作によりテーブ
ル1230のポインタ1232で示されるキューブジッ
タ1210t、待ち行列キューヘッダ450で管理され
る待ち行列の第1キユーとして、そO待ち行列の末尾に
挿入する。すなわち、キューヘッダ450の後向きポイ
ンタ454の内容で示されるキューブジッタ1200の
tliJ向きポインタ1202(あるいは待ち行列キュ
ーヘッダ4−50の前向きlインタ462)および待ち
行列キューヘッダ460の後向きポインタキろ4に設定
する。ブロック1115’を終了することにより、本命
令′ft終了し、次の命令の実行に移る(1120)。
第11図(B)は、第6図における工NQLB命令の処
理手順を示すフリーチャートであり、第13図は同じく
そのデータ操作しIである。
工NQLT命令と本命令(工yQLs)との相違点は、
前者が第1キユー全対象とするのに対し、後者は第2キ
ユーを対象とするところにある。すなわち、第11図(
B)のブロック1155.1160は、第11図(A)
のブロック1105.1110と同一内容であるので、
相違点であるブロック1165について説明するO プロッタ1165では、以下の操作によりデープル13
30のポインタ1332で示されるキュープロツク13
101共有リソース占有待ち行列キューヘッダ460で
管理される待ち行列を、第2キユーとしてその待ち行列
の末尾に挿入する。すなわ、ち、待ち行列キューヘッダ
400の後向きポインタ464の内容で示されるキュー
ブロック13000前向きポインタ1306 (あるい
は待ち行列キューヘッダ460の前向きポインタ462
)の内容をキューブロック151Oの前向きポインタ1
316に設定し、待ち行列キューヘッダ460の後向き
ポインタ464の内容をキューブロック1310の後向
きポインタ1318に設定し、テーブル1330のlイ
ンタ1332の内容に8(バイト)1340を加えた値
(スなわち、キューブ−ツク1310の前向きlインタ
1316のアドレス)kキューブ四ツク1300の前向
きポインタ1306 (あるいけ待ち行列キューヘッダ
460の前向きポインタL62)および持ち行列キュー
ヘッダ460・の後向きメインタ464に設定する。
第14図体)は、第6図におけるRMVQ〒命令の処理
手順を示すフローチャーtであり、!15gは同じくそ
のデータ操作図である。
ブロック1405では、toptb/642で示される
テーブル1540のポインタ1542の内容を取り出す
・次に、ブロック1410では、以下の掃作によりテー
ブル1540のlインタ1542の内容で示されるキュ
ーブロック151Oをそれが接続されている第1キユー
から取り外す。キューブロック151Oの前向きポイン
タ1512の内容を、後向きポインタ1514の内容で
示されるキューブロック15000前向きポインタ15
02 (あるいは実行待ち行列キューヘッダ450の前
向きポインタ462)に設定し、キューブロック151
00後向きぎインタ1514の内容を前向きポインタ1
512の内容で示されるキューブロック1520の後向
きポインタ1δ24(あるいは待ち行列キューヘッダ4
50の後向きポインタ冬54)に設定する。
ブロック1410の処理を終えると、本命令は終了して
、次の命令の実行に移る(1415)。
第14図に)は、第611JKおけるRM’1rQB命
令の処理手順を示す7撃−チャードであり、第16図は
同じくそのデータ操作図である。
先忙述べたILMVQ、テ命令と本命令との相違は、前
者が第1キユーに対するものであるのに対して、後者は
第2キユーに対するものである点にある。
したがって、第14図伸)のプ胃ツタ1465は第14
図((転)のブロック1406と同一であり、ブロック
1460のみが異なるので、異なる動作についてのみ説
明する。
to)t’bj652で示されるテーブル1640のポ
インタ16420内容により示されるキューブジッター
161Oの前向きポインタ1616の内容を、後向きポ
インタ1618の内容で示されるキューブロック160
00前向きポインタ1606 (あるいは共有リソース
占有待ち行列キューヘッダ460の前向自ポインタ46
2)に設定し、キューブロック1610の後向11電イ
ンタ16180内容を前向自がインク1616の内容で
示されるキューブロック16200後向きポインタ16
28 (あるいはキューヘッダ460の彼向きポインタ
464)K設定する。
以上、第6図に示す各命令について、動作を説明したが
、これらの説明から明らかなように、タスク管理テーブ
ル(T OB)から待ち行列用のポインタを切り離して
キューブロック(Q B)として独立させ、かつキュー
ブロック(QB) ′ft必要最少限のケース数のみ用
意し、必要に応じてタスク管理テーブル(T OB)と
キューブロック(QB)t一対応づけてテーブル(T 
OB)の待ち行列全形成するテーブル構造にするので、
ポインタ・エリアの無駄なメモリ容量を側限することが
できる。例えば、タスクIIHk’Th 256個、キ
ューブロック(QB)のケース数(同時に実行可能なタ
スク数)’t64個、同時実行中のタスク全県めに見て
32個と仮定すると、管理テーブル(T OB)のポイ
ンタおよびキューブロック全体の容量は2304バイト
(−4バイト×δX64+4バイトx256)であり、
このうち有効に利用されているエリアは768(−4バ
イト×5×32+冬バイト×32)になる。すなわち、
従来は、待ち行列W塩のために4096バイト(−4パ
イ)X4X256)を要していたのに対して、230’
バイトに減少することができ、かつそれらのエリアの利
用度全向上できる。
次に、第6図に示すGTFQ’E’、FRICqT、I
NQLτ、INQLS、RMVQT、RMVQS 等の
命令全役けることKよって、ユーザはキューブロックの
構造やキューブロック間の結合を意識することなく、従
来と同じようにタスク管理テーブル(TOB)の先頭ア
ドレス全意識するのみで、タスクの待ち行列制御を行う
ことができ、かつタスク管理テーブル(TCB)とキュ
ーブロック(Q B)の対応づけはマイクロプレグラム
により実現されるので、それらに伴うオーバヘッドは無
視できるほど少なくすることができる。
以上説明したように、本発明によれば、待ち行列に必要
なポインタを一般のテーブルから分離して独立した制御
テーブル全形成し、かつその制御テーブルのケース数を
必要最少限たけ用意し、必要に応じて一般のテーブルと
対応づけ、待ち行列全彫成するテーブル構造とするので
、待ち行列ポインタによる制御テーブル容量の増大およ
び無駄エリアの増大全減少することができる。また、ユ
ーザは上述のようなテーブル構造を全く意識せず、本発
明による待ち行列操作の命令を発行するのみで、従来と
同じインタフェースで待ち行列を操作することができ、
しがも一般テーブルとの対応づけに伴うオーバヘッドも
無視できるはど少なくできる。
【図面の簡単な説明】
第1図は従来の待ち行列に関する制御テーブルの構造図
、第2図は従来の待ち行列管理状態を示す説明図、第3
図は本発明の実施例を示す待ち行列制御システムの概略
ブシツク図、第4図は本発明の実施例を示す制御テーブ
ルの構造図、第5図は本発明の実施例を示す待ち行列の
形成方法の説明図、第6図は本発明の実施例管示す待ち
行列操作命令の説明図、第7図、第9図、第11図およ
び第14図はいずれも第6図に示す制御命令の処理手順
のフローチャ゛−)%ta8図、第10図、第12図、
艶13図、第1♂馳よび第16図はいずれも第6図に示
す制御命令に伴うデータ操作の配明図である。 400.420,430,550,560,570..
580゜590.830.1030.1220.123
0.1320゜1330.1530,1540.155
0.1630.1640゜1650:タスク管理テーブ
ル(TCB)、14ol+牛O:先頭アドレス・ポイン
タ、160.155゜4fi0.455  :実行待ち
行列用キューヘッダ、160.170,460,470
  ?共有リソース占有待ち行列用キューヘッダ、48
o:空き管理キューヘッタ、490,495.509.
510.520.530゜540.810.820.1
010,1020.1200゜1210.1300.1
310.1500.1510.1520゜FfOO+ 
1610.1620 : +:x、−プoツク、370
:処理装置、300:主メモリ、33o:メモリ・アド
レス◆レジスタ、3358メモリ・データーレジスタ、
340:If算a路、35o:制御回路、360:制御
メモリ、700 h900,1100゜11δ0,14
00,1450 j待ち行列操作用マイタルプログラム
。 特許出願人 株式会社 日立製作所 第1図 第2図 170 第3図 兎 第4図         (a) 第5図 [ 伍 第6図 第8図 句 第9図 第10図 第12図 622624− 第13図 632     氏A r 第14図 (A)        ■) 第15図 偕 540

Claims (1)

    【特許請求の範囲】
  1. (1)主メモリと中央処理装置と周辺装置よりなるコン
    ピュータ・システムにおいて、タスクあるいは共有リソ
    ース占有の待ち行列に必要なポインタを、タスクの状態
    を管理する情報を含む@1の制御テーブルから分離して
    、該ポインタのみからなる第2の制御テーブル管構唆し
    、該第2の制御子−プル上K)E第1の制御テーブルの
    先頭アドレスを設定して、待ち行列Kg、録した徒、処
    理が終了すると、上記第2の制御テーブル上の設定を取
    り消して、上記待ち行列から切り離すことを特徴とする
    待ち行列制御方式。 ■前記待ち行列の、登録あるいは更、り離しは、第1の
    制御テーブルを指定する命令のみを用いて行うことを特
    徴とする特許請求の範囲第i項記載O待ち行列制御方式
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 true JPS5878238A (ja) 1983-05-11
JPH0247772B2 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
JPH0247772B2 (ja) 1990-10-22

Similar Documents

Publication Publication Date Title
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US4369494A (en) Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US4395757A (en) Process synchronization utilizing semaphores
EP0087978B1 (en) Information processing unit
JPS6338733B2 (ja)
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US20150268985A1 (en) Low Latency Data Delivery
US4351024A (en) Switch system base mechanism
US5764922A (en) I/O system for off-loading operating system functions
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
EP0301707A2 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
JPH01500065A (ja) 複数制御ストアを有するミクロプログラム情報処理システムの装置と方法
JP2003345614A (ja) シングルプロセッサ向けosによる並列処理システム
EP0297895A2 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPH0895810A (ja) バッチジョブ実行方式
JPS603229B2 (ja) 情報処理方式
JPH07105120A (ja) 入出力制御装置
JPH0687221B2 (ja) 情報処理装置
JPS58154058A (ja) マルチプロセッサシステム
JPH03218524A (ja) 命令処理装置
JPS61240355A (ja) 入出力デ−タ処理方式
JP2594557B2 (ja) マルチタスク処理装置
CN121523737A (zh) 数据处理装置及方法、电子设备
JPS60254328A (ja) デ−タ処理システムにおけるタスク処理方式