JPS5878238A - Queue controlling system - Google Patents

Queue controlling system

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
control
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
Japanese (ja)
Other versions
JPH0247772B2 (en
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/en
Publication of JPS5878238A publication Critical patent/JPS5878238A/en
Publication of JPH0247772B2 publication Critical patent/JPH0247772B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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

PURPOSE:To minimize the capacity of a required control table to facilitate the instruction processing for the operation of a queue, by separating pointers required for the queue from general tables to form an independent control table by allowing said control table to respond to the general table when necessary. CONSTITUTION:Task management tables 400, 420... arranged in order of task number are provided in an area of a main memory 300, and a pointer 400 having the start address of the table 400, queue headers 450 for execution queue, and queue headers 460 for shared resource occupation queue are formed. Control tables due to idle management queue headers 480 or the like are provided in accordance with separate queue blockd 490, 495.... A processing device 370 is provided as the shared resource for the memory 300. When the processing is terminated after start addresses of tables 400, 420... are set onto control tables due to headers 480 or the like and are registered to the queue, setting of control tables is canceled, and they are disengaged from the queue.

Description

【発明の詳細な説明】 本発明は、待ち行列制御方式に関し、詳しくは待ち行列
管形成するために必要なデータ・エリアを最小にして、
主メモリの容量増大を防止することが可能な制御方式に
関するものである。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a queue control method, and more particularly, to a queue control method that minimizes the data area required to form a queue,
The present invention relates to a control method that can prevent an increase in the capacity of main memory.

コンピュータ・システムには、種々の共有リソース(資
源)、例えば中央処理装@ (aptr)、チャネル、
メモリ、回線等が存在する。そして、コンピュータ・シ
ステムの使用効率を向上するために多重プリグラミング
が導入された結果、システム内では多数のプロセスが共
存することになり、使用可能な共有リソースの制限から
、これらリソースの奪い合いによる待ち行列が生じてい
る。
Computer systems include various shared resources, such as central processing units (APTRs), channels,
Memory, lines, etc. exist. As a result of the introduction of multiple programming to improve the efficiency of computer system usage, a large number of processes coexist within the system, and due to the limited number of shared resources that can be used, wait times due to competition for these resources are reduced. There is a queue.

一方、コンピュータ・システムのメモリには、共有リソ
ースの管理、ジョブや制御の流れのスケジューリング、
ブ四グラムの結合の管理、コマンド、ジ舊プ制御言語等
ユーザからジョブ処理の指令を受けたり、ジ璽ブの出力
を出す等のユーザとのインク7エ〜ス、ユーザのプνグ
ラムからサブルーチン的に利用されるファイルのアクセ
ス等に関する機能をもつオペレーティング・システムが
格納されている。
A computer system's memory, on the other hand, is used to manage shared resources, schedule jobs and flow of control,
management of the combination of four-grams, commands, zip control language, etc., receiving job processing instructions from the user, outputting the output, etc., from the user's program ν-gram. An operating system with functions related to file access and the like used in subroutines is stored.

ところで、待ち行列を形成する場合には、従来より待ち
行列に登録される可能性のあるすべての制御テーブルに
、待ち行列を形成するために必要なポインタ・−リアを
設けている。しかし、2れらの閣御テーブルのすべてが
同時に待ち行列につながれることはなく、また待ち行列
に接続されたとき、運営、その数は少ないため、多くの
制御テーブルのポインタ・エリアが無駄になっている。
By the way, when forming a queue, conventionally all control tables that may be registered in the queue are provided with pointers and rears necessary for forming the queue. However, all of these two cabinet tables are not queued at the same time, and when they are queued, the number of management tables is small, so much control table pointer area is wasted. It has become.

しかも、1!1lIlテーブルの数が増加すればする纜
ど、無駄なポインタ・エリアが増大するので、オペレー
ティング・システム(以下08と記す)全体が占有する
メモリ容量は膨大となり、それkともないユーザ領域が
圧迫されるという問題がある。
Moreover, as the number of 1!1IlIl tables increases, the useless pointer area increases, so the memory capacity occupied by the entire operating system (hereinafter referred to as 08) becomes enormous, and the user area There is a problem of being under pressure.

/ コンピュータ・システムにおいて発生する待ち行列の代
褒的なものは、ユーザ・プログラム(以下タスクと呼ぶ
)の実行待ち行列や、タスク間での共有リソース占有待
ち行列である。
/Representatives of queues that occur in computer systems are execution queues for user programs (hereinafter referred to as tasks) and queues for shared resource occupancy among tasks.

第1−は、従来の待ち行列を形成するために必要なOS
の制御テーブルの説明図である。
The first is the OS required to form a traditional queue.
FIG. 2 is an explanatory diagram of a control table of FIG.

O8は、各タスクごとにタスクの状態を管理するテーブ
ル100.120.・・・130 をPけ、それらをタ
スク番号順に並べ、その先順アドレス全ポインタ140
により管理する。また、O8は、実行待ち行列を管理す
るために1タスクの優先レベルに対応し7た実行待ち行
列用キューヘッダ150゜155および各種共有リソー
スに対応した共有リソース占有待ち行列用キューヘッダ
160,170t1それぞれ設ける。
O8 has tables 100, 120, . ...130, arrange them in order of task number, and point all the destination addresses 140
Managed by. In addition, O8 includes queue headers 150 and 155 for execution queues corresponding to the priority level of one task and queue headers 160 and 170t1 for shared resource occupation queues corresponding to various shared resources in order to manage the execution queues. Provide each.

上記の各種待ち行列け、該当する待ち行列用キューヘッ
ダにタスク管理テーブル100,110゜120.13
041−接続することによって管理されるのであるが、
そのため各タスク管理テーブル100.110,120
.130 にはタスクの状l!!Jを管理する情報11
0の他に、実行待ち行列用の前向きポインタ102、後
向きポインタ104、および共有リソース占有待ち行列
用の前向きポインタ106、後向きポインタ108を設
けている。
The various queues listed above, the task management table 100, 110゜120.13 in the queue header for the corresponding queue.
041-Managed by connecting,
Therefore, each task management table 100, 110, 120
.. 130 has the status of the task! ! Information for managing J 11
In addition to 0, forward pointers 102 and backward pointers 104 are provided for execution queues, and forward pointers 106 and backward pointers 108 are provided for shared resource occupancy queues.

前向きと後向きの両ポインタを設ける必要性は、リング
状に結合されるアドレスのうちの途中の一部を取り外す
とき、あるいは順次発生するタスクを待ち行列の最@に
結合させると11の制御を高速に行うためである。
The need to provide both forward and backward pointers makes the control of 11 faster when removing a part of the address that is linked in a ring, or when tasks that occur sequentially are linked to the top of the queue. This is to do so.

また、各キューヘッダ150.155.160.170
にも、それぞれ前向tIフインタ152.162と後向
きポインタ154,164 を設ける。これらの前向き
lインタと後向きポインタの大きさは、それぞれ冬バイ
シである。
Also, each queue header 150.155.160.170
Also provided are forward tI pointers 152 and 162 and backward pointers 154 and 164, respectively. The sizes of these forward pointers and backward pointers are the same.

第2図c&)伽)は、それぞれ従来の待ち行列管理状s
t−示す説明図である。
Figure 2 c &) 伽) are respectively conventional queue management letters s.
It is an explanatory diagram showing t-.

実行要求が出されたタスクがあると、O8はそのタスク
の優先レベルに対応した実行待ち行列用キューヘッダ1
50により管コされる実行待ち行列の末尾にそのタスク
の管理テーブルを挿入し、そのタスクの実行の順番を待
機させる。
When there is a task for which an execution request has been issued, the O8 sends the execution queue queue header 1 corresponding to the priority level of that task.
A management table for the task is inserted at the end of the execution queue managed by 50, and the task is made to wait for its turn to be executed.

いま、第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により実行待ち行列から取り外される。
Now, as shown in FIG. 2(,), the task management table 100.
is continued, and when inserting the task management table 130 next to the table 1200, 08 inserts the table 13 into the forward pointer 122 of the task management table 120.
0, set the start address Yr of the execution queue queue header 150 in the forward pointer 132 of the table 130, set the start address of the table 120 in the backward pointer 134 of the table 130, and Backward pointer 15 of header 150
By setting the forwarding address of the table 130 to 4, the task management table 130 is set to the queue header 150
Register it in the execution queue managed by . When the turn for execution comes and the processing is completed, the management table for that task is
It is removed from the execution queue by O8.

一方、実行中に共有リソースの占有待ちを生じたタスク
があると、08はその共有リソースに対応する占有待ち
キューヘッダ160によって管理される共有リソース占
有待ち行列の末尾にそのタスクの管理テーブル全挿入し
、この共有リソースの占有待ちが解除されるt″′Cそ
のタスクの実行を中断させる。
On the other hand, if there is a task that is waiting for exclusive use of a shared resource during execution, 08 inserts the entire management table of that task at the end of the shared resource exclusive queue managed by the exclusive waiting queue header 160 corresponding to that shared resource. However, the execution of the task is interrupted at t'''C when the shared resource is released from the waiting state.

この場合、第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により占有待ち行列から取り外される。
In this case, as shown in FIG.
, 190 is connected, I! In this case, the task management table 190 is not removed from the execution queue and newly connected to the middle knee header 160 for the shared resource occupancy queue; 11. connected to the execution queue. Yet another method of persisting in the shared resource occupation queue KIe1 is used. That is, the task management table 190
If the shared resource corresponding to queue header 160 is waiting for occupancy while executing the task corresponding to [K, -
? Assuming that no table is connected to the knee header 160, O8 stores table 1 in the forward pointer 162 and backward mainter 164 of the queue header 160.
90, and set the start address tV of the ladder 160 to the queue to the forward pointer 196 and backward pointer 198 of the table 190, thereby setting the table 190 to the shared resource exclusive queue managed by the queue header 160. register. Then, when the shared rinse exclusive waiting state is released, the management table 1 of that task is
90 is removed from the occupancy queue by O8.

このように、従来は、タスク管理テープN100に対し
て、待ち行列を形成するための前向きポインタ102,
106、後向きポインタ164,108を設ける必替が
あり、管理テーブル1ケースごとに16バイシががイン
タとして使用されている。
In this way, conventionally, the forward pointer 102 for forming a queue for the task management tape N100,
106, backward pointers 164 and 108 must be provided, and 16 bytes are used as pointers for each case of the management table.

例えば、登録されたタスク11256個とすると、管理
テーブルのポインタに要する全体のメモリ容量は409
6バイト(−16X256)であり、また同時に実行待
ち行列に接続されるタスク数を多めに予測して324J
iAとすると、そのときに有効に利用しているポインタ
・エリアは512バイト(−16X32)しかないこと
になり、その他の5584バイトは無駄になっている。
For example, if there are 11,256 registered tasks, the total memory capacity required for the management table pointer is 409
6 bytes (-16x256), and 324J by estimating the number of tasks that will be connected to the execution queue at the same time.
If it is iA, the pointer area that is effectively used at that time is only 512 bytes (-16×32), and the other 5584 bytes are wasted.

本発明の目的は、このような従来の欠点を除去するため
、待ち行列を形成するために必要な制御テーブルの容量
を最小1[Kして、無駄なエリアをなくすことができ、
しかも従来と同一のインク7エースでユーザにより待ち
行列の操作が可能な待ち行列制御方式を提供することに
ある。
An object of the present invention is to eliminate such conventional drawbacks by reducing the capacity of the control table required to form a queue to a minimum of 1K, thereby eliminating wasted area.
Moreover, it is an object of the present invention to provide a queue control system that allows the user to operate the queue using the same ink 7 ace as the conventional one.

上記目的を達成するため、本発明の待ち行列制御方式は
、待ち行列の形成に必要なポインタを、タスクの状態全
管理する情報管食も第1の制御テーブルから分離して該
ポインタのみからなる第2の制御デープルを構成し、該
第20制御テーブル上に上記第1の制御テーブルの先頭
アドレスを設定して、待ち行列に登録した後、処理が終
了すると、上記第2の制御テーブル上の設定を取り消し
て上記待ち行列から切り離すことを特徴としてしする。
In order to achieve the above object, the queue control method of the present invention separates the pointers necessary for forming the queue from the first control table and consists of only the pointers that manage the entire state of tasks. After configuring the second control table, setting the start address of the first control table on the 20th control table, and registering it in the queue, when the processing is completed, The feature is to cancel the settings and disconnect from the above queue.

以下、本発明の実施@を、wA−により説明する。Hereinafter, the implementation of the present invention will be explained by wA-.

第3図は、本発明の実施例を示す待ち行列制御システム
の概略ブ關ツク図である。
FIG. 3 is a schematic block diagram of a queuing control system illustrating an embodiment of the present invention.

主メモリ300上のoat格納するエリアには、タスク
管理テープ4400.420・・・・がタスク番号順に
配置され、テーブル400の先頭アドレスをもつポイン
タ440、タスクの実行待ち行列用キューヘッダ450
.各種共有リソース占有待ち行列用キューヘッダ460
が設けられる他に1本発明により新設された行列ポイン
タ・テーブル(以後キューブロックと記す)490.4
95およびそれらの空きを管理するキューヘッダ480
噂の制御テーブル類が設けられる。その他、プログラム
310.3151も格納されている。
In the oat storage area on the main memory 300, task management tapes 4400, 420, etc. are arranged in the order of task numbers, a pointer 440 with the start address of the table 400, and a queue header 450 for the task execution queue.
.. Queue header 460 for various shared resource occupancy queues
In addition to the matrix pointer table (hereinafter referred to as a queue block) 490.4 newly created according to the present invention,
95 and a queue header 480 that manages their free space.
Rumored control tables are provided. In addition, programs 310.3151 are also stored.

共有リソースである処理装置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を制御する。
The processing device 370, which is a shared resource, includes an arithmetic circuit 54.
0. Control circuit 3δ0. Control memory 360 and memory
Address register 330. An interface circuit is provided for all the memory data registers 335, etc., and its operation is the same as in the prior art. That is, the address program of the next command to be executed according to the command from the control circuit 350;
40 to the memory address register 330 and an access request is issued to the main memory 300, the next instruction to be executed is read from the main memory 300 and is stored in the memory data register 336. Set. The command set in the memory data register 335 is immediately sent to the control circuit 350, where it is decoded and the microprogram 7 that executes all the instructions among the microprograms stored in the control memory 360 is sent.
00°900.1100. IIJo, 1400.145
Control is passed to 0. The control circuit 350 sequentially reads out and decodes the microprogram from the control memory 360, and based on it reads the microprogram from the control memory 360 and executes the arithmetic operation 340 and the memory ink 7.
Controls the ace and memory control circuit δ20.

本発明により新設された待ち行列操作命令は、マイクロ
プログラムToo、900,1100.1150゜14
00.1450である。
The queue operation instructions newly created by the present invention are microprogram Too, 900, 1100.1150°14
It is 00.1450.

第4図は、本発明の実施例を示す制御テーブルの構造図
である。
FIG. 4 is a structural diagram of a control table showing an embodiment of the present invention.

タスク管理テーブル400,420.、・・・430け
、従来と同じように゛タスク番号順に配置され、その先
頭アドレスがポインタ440によって管理される。タス
ク管理テーブル1ケースの構成は、従来のタス。り管理
テーブルから待ち行列用のlインタ群(16バイト)を
取り除い′だ残りのタスク状態情報エリア404と、待
ち行列に接続するときにキューブシック490,495
・・・を対応づけるためのポインタ402  (4バイ
))を設けたものである。
Task management tables 400, 420. , . . 430 are arranged in the order of task numbers as in the past, and their start addresses are managed by the pointer 440. The configuration of one case of the task management table is the conventional task. The remaining task status information area 404 is removed from the queue management table (16 bytes) and the cube chic 490, 495 is used when connecting to the queue.
. . . is provided with a pointer 402 (4 bytes)) for associating.

キューブロック490,495は、待ち行列を形成する
ときに必要なポインタ情報を持つテーブルであり、1ケ
ースの構成はlhlキヱ=(実行待ち行列)用の前向き
ポインタ492、後向きポインタ494、第2キユー(
共有リソース占有待ち行列)用の前向きポインタ496
.後向きポインタ498、および対応づけられたテーブ
ル用のポインタ499からなり、全部で20パイ)(4
バイシ×5)である。これらのキューブロック490.
495は、初期状態時、つまり不使用時には空きのキュ
ーブシック・リストとして管理され、この管理のために
空き管理キューヘッダ480が新たに設けられる。空き
管理キューヘッダ480は、空きキューブリックを接続
するための前向きポインタ482、後向きポインタ48
牛を持つ。実行待ち行列用キューヘッダ養60.455
 は従来と同じように双方向ポインタをもつタスクの轍
先レベル対応の実行待ち行列キューへ、ラダであり、共
有リソース占有待ち行列用キュ、−ヘッダ460,47
0  も、従来と同じように双方向ポインタをもつ各共
有リソース対応の占有待ち行列キューヘッダである。
The queue blocks 490 and 495 are tables containing pointer information necessary when forming a queue, and the configuration in one case is a forward pointer 492 for lhl key = (execution queue), a backward pointer 494, and a second queue block. (
forward pointer 496 for shared resource occupancy queue)
.. Consists of backward pointer 498 and associated table pointer 499, totaling 20 pies) (4
Baishi x 5). These cube blocks 490.
495 is managed as an empty cubic list in the initial state, that is, when not in use, and a free management queue header 480 is newly provided for this management. The free management queue header 480 includes a forward pointer 482 and a backward pointer 48 for connecting free Kubricks.
have a cow Queue header for execution queue 60.455
is a ladder to the execution queue corresponding to the rut destination level of the task that has a bidirectional pointer as in the past, and is a queue for the shared resource exclusive queue, - header 460, 47
0 is also a dedicated queue queue header corresponding to each shared resource that has a bidirectional pointer as in the past.

第5図(、)(b)は、本発明の実施例を示す待ち行列
の形成方法の説明図である。
FIG. 5(,)(b) is an explanatory diagram of a queue forming method showing an embodiment of the present invention.

第5 図(a)では、タスク管理テーブル550で示さ
れるタスクが、実行待ち行列用キューヘッダ4δ0によ
り管理される実行待ち行列に接続されている場合につい
て説明する。
In FIG. 5(a), a case will be described in which the tasks shown in the task management table 550 are connected to an execution queue managed by the execution queue queue header 4δ0.

タスク管理テーブル6δ0で示されるタスクに実行要求
が出されると、O8は空き管理キューヘッダ480によ
り管理されている空きキューブVツタ行列の先頭から1
つのキューブシック500を取り外し、タスク管理テー
ブルδδ0のポインタ552に+ニーブロック500の
先頭アドレスを設定し、一方そのキューブシック500
のテーブル用ポインタ509にテーブル6δ0の先頭ア
ドレス全設定することにより、そのテーブル5δ0トキ
ユーブロツク500との対応づけを行う。
When an execution request is issued to the task indicated by the task management table 6δ0, O8 executes one from the top of the free cube V vine matrix managed by the free management queue header 480.
Remove the cube chic 500, set the start address of the +knee block 500 in the pointer 552 of the task management table δδ0, and
By setting all the start addresses of the table 6δ0 in the table pointer 509, the table 5δ0 is associated with the block 500.

さらに1・O8は、そのキューブロック500に関して
従来と同じように実行待ち行列への挿入操作を行う。す
なわち、キューブロック600の前向きポインタ502
は次に並んでいるキューブロック510の先頭アドレス
を保持し、彼向きポインタ504はその口σに並んでい
る実行待ち行列用キューヘッダ450の先頭アドレス全
保持するように情報を設定する。なお、実行待ち行列用
キューヘッダ4−50の次に他のキューブロックが接続
されているときには、前に並んでいるキューブシックの
先頭アドレスを保持することになる。
Furthermore, 1.O8 performs an operation of inserting the queue block 500 into the execution queue in the same manner as before. That is, the forward pointer 502 of the queue block 600
holds the start address of the queue block 510 next in line, and information is set so that the pointer 504 for him holds all the start addresses of the execution queue queue headers 450 lined up at its mouth σ. Note that when another queue block is connected next to the execution queue queue header 4-50, the head address of the cube chic that is lined up in front is held.

次に、第5図伽)においては、タスク管理テーブルδ9
0で表されるタスクの実行中に、共有リソース占有待ち
行列用キューヘッダ460に対応する共有リソースの占
有待ちが生じたものとする。
Next, in Figure 5), the task management table δ9
Assume that a shared resource occupancy queue corresponding to the shared resource occupancy queue queue header 460 occurs while the task represented by 0 is being executed.

この場合には、テーブル590に対応するキューブロッ
ク540に一キューヘッダ460により管理される占有
待ち行列に挿入する操作全行うが、キューヘッダ460
およびキューブロック540のポインタ値は、キューヘ
ッダ460の先頭アドレスあるいはキューブロック54
00第2キュー用前向きポインタ546のアドレス七す
る。すなわち、O8は、キューヘッダ460の彼向きポ
インタ46キにはキューブシックδ4oの前向きポイン
タ546のアドレスを設定し、キューブロック540の
前向きポインタ546.後向きポインタ548にはキュ
−ヘッダ4600先頭アドレスを設定する。
In this case, all operations for inserting into the exclusive queue managed by one queue header 460 are performed in the queue block 540 corresponding to the table 590, but the queue header 460
The pointer value of the queue block 540 is the start address of the queue header 460 or the queue block 54
00 The address of the forward pointer 546 for the second queue is 7. That is, O8 sets the address of the forward pointer 546 of the cube chic δ4o in the forward pointer 46 of the queue header 460, and sets the forward pointer 546 . The starting address of the queue header 4600 is set in the backward pointer 548.

第6図は、本発明の実施例を示す待ち行列繰作命令の説
明図である・ 第6図において、大文字′(英字)は各命令のニモニッ
クを示し、子文字(英字)はオペランドを示す。to)
qhdはキューヘッダの先頭アドレスを、toptbj
はテーブルの先頭アドレスを、r・gはレジスタ番号を
、また・ad4r は異常時のジャンプ先アドレスを、
それぞれ示す。
FIG. 6 is an explanatory diagram of a queue manipulation instruction showing an embodiment of the present invention. In FIG. 6, the uppercase letter ' (letter) indicates the mnemonic of each instruction, and the child letter (letter) indicates the operand. . to)
qhd is the start address of the queue header, topbj
is the start address of the table, r・g is the register number, and ・ad4r is the jump destination address in case of an error.
Each is shown below.

(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で示される番地にジャンプする。
(a) The G T I Q T command removes one queue block (QIm) from the head of the free queue block list managed by the free management knee header (I Q B H) indicated by topqhd, and It performs the function of associating the task management table (TOB) shown in FIG. At this time, if there is no free queue block (QB) S in the free management queue header (gq, na) indicated by topqhd, e
Jump to the address indicated by id4r.

%)ffRBQ’j’命令は、toptbjで示すタス
ク管理テーブル(T OB)に対応づけられているキュ
ーバッファ(QB)とそのタスク管理テーブル(T O
!1)との対応づけ全解消し、そのキューブシック(Q
 B))topqhdて示す空き管理キューヘッダ(鵞
QBM)により管理されている空きキューブシック・リ
ストの先頭に挿入する機能を果す。
%) ffRBQ'j' command is used to store the queue buffer (QB) associated with the task management table (TOB) indicated by toptbj and its task management table (TOB).
! 1), and its cube chic (Q
B)) It serves the function of inserting it at the head of the free cubesic list managed by the free management queue header (QBM) indicated by topqhd.

(Q)工NQLテ命令は、topqblで示すキュー 
ヘッダ(IQBH)により管理されている待ち行列の末
尾に、toptbjで示すタスク管理テーブル(実際に
はこのタスク管理テープ、1%/(TCB)に対応する
キューブ・ロック(QB))’?その待ち行列が第1キ
ユーになるように挿入する機能を果す。
(Q) The engineering NQL instruction is in the queue indicated by topqbl.
At the end of the queue managed by the header (IQBH), there is a task management table indicated by toptbj (actually a cube lock (QB) corresponding to this task management tape, 1%/(TCB))'? It performs the function of inserting the queue so that it becomes the first queue.

(a)工NQLS命令は、topqb4で示すキューヘ
ッダ(KQBH)により管理されている待ち行列の末尾
に、t−optblで示すテーブル(実際には、このデ
ープル(テOB)に対応するキューブロック(QB))
をその待ち行列が第2キユーになるように挿入する機能
を果す。
(a) The engineering NQLS command writes a table (actually, a queue block ( QB))
The function is to insert the queue so that it becomes the second queue.

(e) RM V Q T命令け、toptbjで示す
テーブル(実際には、このテーブル(’!’ OB)に
対応するキューブロック(QB))を第1キユーから取
り外す機能を果す。
(e) The RM V Q T command has the function of removing the table indicated by toptbj (actually, the queue block (QB) corresponding to this table ('!' OB)) from the first queue.

(f)RMTQS命令は、toptbjで示すテーブル
(実際には、このテーブルに対応するキューブロック)
を第2キユーから取り外す機能を果す。
(f) The RMTQS command uses the table indicated by toptbj (actually, the queue block corresponding to this table)
The function is to remove the second cue from the second cue.

第7図は、第6図に示すGTFQT命令の処理手順の7
0−チャート、第8図は同じ(GTFQ、T命令のデー
タ操作説明図である。
Figure 7 shows step 7 of the processing procedure of the GTFQT command shown in Figure 6.
0-chart and FIG. 8 are the same (explanatory diagram of data manipulation of GTFQ and T commands).

ブロック705では、第8図(a)に示すよう如、to
pqhd 602  で示される空き管理キューヘッダ
480の前向きポインタ482の内容を取り出す。
In block 705, as shown in FIG. 8(a),
The contents of the forward pointer 482 of the free management queue header 480 indicated by pqhd 602 are retrieved.

次に、ブロック710では、前向きポインタ482の内
容とjopqhd 602 (すなわち、管理キューヘ
ッダ480の先頭アドレス)を比較し、空きキューブロ
ックがないか否かをチェックする。
Next, in block 710, the contents of forward pointer 482 and jopqhd 602 (ie, the start address of management queue header 480) are compared to check whether there is any free queue block.

すなわち、前向きポインタ482がキューヘッダ自身全
指示している場合には、何も接続されていないことKな
るので、ポインタ482の内容を調べる。比r!結平が
等しいときには、空きキューブロックはないので、ブロ
ック735に進みユーザの処理にまかせる。つまり、e
addr  に分岐するヨウに、プログラム・カウンタ
Vこeaddr  を設定する。・:れによって、・a
6dr 番地の命令へ移る。
That is, if the forward pointer 482 points to the entire queue header itself, this means that nothing is connected, so the contents of the pointer 482 are checked. Ratio! If the results are equal, there are no free queue blocks, so the process proceeds to block 735 and is left to the user's processing. In other words, e
When branching to addr, the program counter V is set to eaddr.・:By re, ・a
Move to the order at address 6dr.

空きキューブロックがあれば、ブロック715で、前向
きポインタ4已2の内容(すなわち、空きキューブロッ
クの先頭アドレス)をre(606で示されるレジスタ
800に設定する(第8図の点線矢印)。
If there is an empty queue block, in block 715, the contents of the forward pointer 4x2 (ie, the start address of the empty queue block) are set in the register 800 indicated by re(606 (dotted arrow in FIG. 8)).

次に、ブリック720では、以下の操作を行うことによ
り空きキューブロック・リストの先頭のキューブロック
810奢リストから取り外す。
Next, the brick 720 removes the first cube block 810 from the empty queue block list from the empty queue block list by performing the following operation.

すなわち、キューブロック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)。
That is, the forward pointer 81 of the queue block 810
2 to the forward pointer 482 of the free management queue header 480? cube jitter 820 as indicated by the contents of the backward pointer 8140 of the cube block 810 and the contents of the inner tube forward pointer 812 (dotted arrow in FIG. 8).
backward pointer 824 (or management queue head +
80 backward pointer 484) (dotted line arrow in FIG. 8).Next, in block 725, the following operation is performed to associate the cube-vine 81.0 with the table 830 indicated by toptb1604. (See Figure 8). That is, the table pointer 81 of the queue block 810
toptbz604 (i.e. table 830
Yt stage setting, the start address of the queue block 810 set in the register 800 in block 715 is set in the pointer 832 of the table 830 (dotted line arrow in FIG. 8). When the processing of block 725 is completed, this instruction is completed, and the process moves on to execution of the instruction at the next address (730).

第8図(荀の状態から、第a m cb>の状態に移る
ことにより、空きキューブロック01つ810がtop
tb/  で示すテーブル830と対応づけられたこと
になる。
FIG. 8 (By moving from the state of Xun to the state of
This corresponds to the table 830 indicated by tb/.

第9図は、第6図における?R11Q?命令の処理手順
を示すフローチャートであり、第10図は同じくそのデ
ータ操作図である。
Is Figure 9 the same as Figure 6? R11Q? 10 is a flowchart showing the instruction processing procedure, and FIG. 10 is also a data operation diagram thereof.

ブロック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内容を設定する。
In block 906, the contents of the table 103040 pointer 1032 indicated by toptb 1614 (il! address of the queue pull holder 10100 corresponding to that table) are retrieved. Next, in block 910, the queue block 1010 is set to topqha6 by the following operation.
12 and is inserted at the beginning of the free queue block list managed by the queue header 480. That is, the contents of forward pointer 482 of queue header +80 are set to forward pointer 1012 of queue plotter 1010, topqha 612 is set to backward pointer 1014 of queue plotter 1010, and the contents of queue header 4
The contents of the pointer 10320 of the table 1030 are set in the backward color pointer 1024 of the cube seal 1020 (or the backward l pointer 484 of the queue header 480) indicated by the contents of the forward pointer 482 of 80.

次に、ブロック415と920では、以下の操作により
テーブル1030とキューブロック1010との対応づ
け全解消する。すなわち、テーブル1030のポインタ
1032とキューブロック】OlOのポインタ1019
にそれぞれオールゼ1=f1000を設定する。ブロッ
ク920が終了したと倉、本命令は終了するので、次の
番地の命令を実行する(925)。
Next, in blocks 415 and 920, the association between table 1030 and queue block 1010 is completely canceled by the following operations. That is, pointer 1032 of table 1030 and pointer 1019 of queue block
Allse1=f1000 is set for each. When block 920 ends, this instruction ends, so the instruction at the next address is executed (925).

第11図(A)は、第6図における工NQLT命令の処
理手順を示す7u−チャートであり、第12W1は同じ
くそのデータ操作図である。
FIG. 11(A) is a 7U-chart showing the processing procedure of the NQLT command in FIG. 6, and 12W1 is a data operation diagram thereof.

ブロック1105では、toptb1624で示される
テーブル1230のポインタ1232の内界を取り出す
。次に、ブロック1110では、toH,ha622で
示されるタスク実行待ち行列キューヘッダ450の後向
きポインタ464の内容を取り出す。
In block 1105, the inner bounds of pointer 1232 of table 1230 indicated by toptb 1624 are retrieved. Next, in block 1110, the contents of the backward pointer 464 of the task execution queue queue header 450 indicated by toH, ha 622 are retrieved.

次に、ブロック1116では、以下の操作によりテーブ
ル1230のポインタ1232で示されるキューブジッ
タ1210t、待ち行列キューヘッダ450で管理され
る待ち行列の第1キユーとして、そO待ち行列の末尾に
挿入する。すなわち、キューヘッダ450の後向きポイ
ンタ454の内容で示されるキューブジッタ1200の
tliJ向きポインタ1202(あるいは待ち行列キュ
ーヘッダ4−50の前向きlインタ462)および待ち
行列キューヘッダ460の後向きポインタキろ4に設定
する。ブロック1115’を終了することにより、本命
令′ft終了し、次の命令の実行に移る(1120)。
Next, in block 1116, the cube jitter 1210t indicated by pointer 1232 of table 1230 is inserted at the end of the queue as the first queue of the queue managed by queue header 450 by the following operation. That is, the tliJ pointer 1202 of the cube jitter 1200 indicated by the contents of the backward pointer 454 of the queue header 450 (or the forward linter 462 of the queue queue header 4-50) and the backward pointer 4 of the queue header 460 are set. do. By ending the block 1115', the present instruction 'ft is ended and execution of the next instruction begins (1120).

第11図(B)は、第6図における工NQLB命令の処
理手順を示すフリーチャートであり、第13図は同じく
そのデータ操作しIである。
FIG. 11(B) is a free chart showing the processing procedure of the NQLB command in FIG. 6, and FIG. 13 is the same data manipulation procedure.

工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に設定する。
The differences between the engineering NQLT command and this command (engineering yQLs) are as follows:
While the former targets the entire first queue, the latter targets the second queue. In other words, Fig. 11 (
Blocks 1155 and 1160 of B) are shown in FIG. 11(A).
Since the contents are the same as blocks 1105 and 1110,
O The plotter 1165 will explain the difference in the block 1165.
Queue block 13 indicated by pointer 1332 of 30
The queue managed by the 101 shared resource occupancy queue queue header 460 is inserted at the end of the queue as a second queue. That is, the queue block 13000 forward pointer 1306 indicated by the contents of the backward pointer 464 of the queue queue header 400 (or the forward pointer 462 of the queue queue header 460
) to the forward pointer 1 of the queue block 151O.
316, sets the contents of backward pointer 464 of queue queue header 460 to backward pointer 1318 of queue block 1310, and sets the contents of linter 1332 of table 1330 plus 8 (bytes) 1340 (i.e. , the address of the forward linter 1316 of the cube block 1310) is set in the forward pointer 1306 of the k-cube block 1300 (the forward pointer L62 of the forward queue queue header 460) and the backward mainter 464 of the queue queue header 460.

第14図体)は、第6図におけるRMVQ〒命令の処理
手順を示すフローチャーtであり、!15gは同じくそ
のデータ操作図である。
Figure 14) is a flowchart showing the processing procedure of the RMVQ〒 command in Figure 6. 15g is the same data operation diagram.

ブロック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)に設定する。
In block 1405, the contents of pointer 1542 of table 1540 indicated by toptb/642 are retrieved.Next, in block 1410, the queue block 151O indicated by the contents of linter 1542 of table 1540 is connected by the following sweep. Remove it from the first queue. The contents of the forward pointer 1512 of the queue block 151O are transferred to the forward pointer 15 of the queue block 15000 indicated by the contents of the backward pointer 1514.
02 (or the forward pointer 462 of the execution queue queue header 450) and
00 backward pointer 1514 contents to forward pointer 1
Backward pointer 1δ24 of queue block 1520 (or queue queue header 4
50 backward pointer winter 54).

ブロック1410の処理を終えると、本命令は終了して
、次の命令の実行に移る(1415)。
When the processing of block 1410 is completed, this instruction ends and the execution moves on to the next instruction (1415).

第14図に)は、第611JKおけるRM’1rQB命
令の処理手順を示す7撃−チャードであり、第16図は
同じくそのデータ操作図である。
FIG. 14) is a seven-shot chart showing the processing procedure of the RM'1rQB instruction in the 611JK, and FIG. 16 is a data operation diagram thereof.

先忙述べたILMVQ、テ命令と本命令との相違は、前
者が第1キユーに対するものであるのに対して、後者は
第2キユーに対するものである点にある。
The difference between the ILMVQ and TE commands mentioned earlier and this command is that the former is for the first queue, while the latter is for the second queue.

したがって、第14図伸)のプ胃ツタ1465は第14
図((転)のブロック1406と同一であり、ブロック
1460のみが異なるので、異なる動作についてのみ説
明する。
Therefore, the pupil ivy 1465 in Fig. 14
Since it is the same as block 1406 in the figure ((translation)) and only block 1460 is different, only the different operations will be described.

to)t’bj652で示されるテーブル1640のポ
インタ16420内容により示されるキューブジッター
161Oの前向きポインタ1616の内容を、後向きポ
インタ1618の内容で示されるキューブロック160
00前向きポインタ1606 (あるいは共有リソース
占有待ち行列キューヘッダ460の前向自ポインタ46
2)に設定し、キューブロック1610の後向11電イ
ンタ16180内容を前向自がインク1616の内容で
示されるキューブロック16200後向きポインタ16
28 (あるいはキューヘッダ460の彼向きポインタ
464)K設定する。
to) The contents of the forward pointer 1616 of the cube jitter 161O indicated by the contents of the pointer 16420 of the table 1640 indicated by t'bj 652 are transferred to the cube block 160 indicated by the contents of the backward pointer 1618.
00 forward pointer 1606 (or forward own pointer 46 of shared resource occupancy queue queue header 460
2), set the backward pointer 16180 contents of the cue block 1610 to the backward pointer 16 of the cue block 16200 whose forward self is indicated by the contents of the ink 1616.
28 (or pointer 464 of queue header 460) K is set.

以上、第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’
バイトに減少することができ、かつそれらのエリアの利
用度全向上できる。
The operations of each instruction shown in Figure 6 have been explained above, but as is clear from these explanations, the queue pointer is separated from the task management table (TOB) and becomes an independent queue block (QB). and prepare only the minimum number of cases in the queue block (QB)'ft, and create a table (T
Since we have a table structure that forms the entire queue of OB),
It is possible to limit the wasteful memory capacity of the pointer area. For example, assuming that there are 256 tasks IIHk'Th, the number of queue block (QB) cases (the number of tasks that can be executed simultaneously) 't64, and 32 concurrently executing tasks for all prefectures, the management table (T The total capacity of the pointer and queue block of OB) is 2304 bytes (-4 bytes x δX64 + 4 bytes x 256),
Of these, the area that is effectively used is 768 (-4 bytes x 5 x 32 + winter bytes x 32). That is,
Previously, the queue W salt required 4096 bytes (-4 pies x 4 x 256), whereas 230'
Bytes can be reduced, and the utilization of those areas can be completely improved.

次に、第6図に示すGTFQ’E’、FRICqT、I
NQLτ、INQLS、RMVQT、RMVQS 等の
命令全役けることKよって、ユーザはキューブロックの
構造やキューブロック間の結合を意識することなく、従
来と同じようにタスク管理テーブル(TOB)の先頭ア
ドレス全意識するのみで、タスクの待ち行列制御を行う
ことができ、かつタスク管理テーブル(TCB)とキュ
ーブロック(Q B)の対応づけはマイクロプレグラム
により実現されるので、それらに伴うオーバヘッドは無
視できるほど少なくすることができる。
Next, GTFQ'E', FRICqT, I shown in FIG.
Since all commands such as NQLτ, INQLS, RMVQT, and RMVQS are used, the user can read all the starting addresses of the task management table (TOB) without being aware of the structure of queue blocks or the connections between queue blocks. Task queue control can be performed simply by being aware of it, and the correspondence between the task management table (TCB) and queue block (QB) is realized by microprograms, so the associated overhead can be ignored. It can be reduced as much as possible.

以上説明したように、本発明によれば、待ち行列に必要
なポインタを一般のテーブルから分離して独立した制御
テーブル全形成し、かつその制御テーブルのケース数を
必要最少限たけ用意し、必要に応じて一般のテーブルと
対応づけ、待ち行列全彫成するテーブル構造とするので
、待ち行列ポインタによる制御テーブル容量の増大およ
び無駄エリアの増大全減少することができる。また、ユ
ーザは上述のようなテーブル構造を全く意識せず、本発
明による待ち行列操作の命令を発行するのみで、従来と
同じインタフェースで待ち行列を操作することができ、
しがも一般テーブルとの対応づけに伴うオーバヘッドも
無視できるはど少なくできる。
As explained above, according to the present invention, the pointers necessary for the queue are separated from the general table and all independent control tables are formed, and the number of cases of the control table is prepared to the minimum necessary. Since the table structure is such that the queue pointer is associated with a general table and the entire queue is created, the capacity of the control table due to the queue pointer can be increased and the amount of wasted area can be completely reduced. Furthermore, the user can operate the queue using the same interface as before by simply issuing the queue operation command according to the present invention without being aware of the table structure as described above.
However, the overhead associated with the association with the general table can be minimized to a negligible level.

【図面の簡単な説明】[Brief explanation of the drawing]

第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
Figure 1 is a structural diagram of a control table related to conventional queues, Figure 2 is an explanatory diagram showing the conventional queue management state, and Figure 3 is an explanatory diagram showing the conventional queue management state.
Fig. 4 is a schematic diagram of a queue control system showing an embodiment of the present invention, Fig. 4 is a structural diagram of a control table showing an embodiment of the invention, and Fig. 5 is a queue formation showing an embodiment of the invention. FIG. 6 is an explanatory diagram of the method, and FIG. 6 is an explanatory diagram of the queue operation command shown in the embodiment of the present invention. FIG. 7, FIG. 9, FIG. 11, and FIG. Flowchart of processing procedure) %ta Figure 8, Figure 10, Figure 12,
Figure 13, Figure 1, and Figure 16 are all layout diagrams of data manipulation accompanying the control command shown in Figure 6. 400.420,430,550,560,570. ..
580°590.830.1030.1220.123
0.1320°1330.1530,1540.155
0.1630.1640°1650: Task management table (TCB), 14ol+O: Start address pointer, 160.155°4fi0.455: Queue header for execution queue, 160.170,460,470
? Queue header for shared resource occupancy queue, 48
o: Free management queue header, 490,495.509.
510.520.530゜540.810.820.1
010,1020.1200゜1210.1300.1
310.1500.1510.1520°FfOO+
1610.1620: +:x, -pock, 370
: Processing unit, 300: Main memory, 33o: Memory address ◆ register, 3358 memory data register,
340: If calculation a path, 35o: Control circuit, 360: Control memory, 700 h900, 1100°11δ0, 14
00,1450 j Mytal program for queue operation. Patent Applicant: Hitachi, Ltd. Figure 1 Figure 2 Figure 4 (a) Figure 5 [ Figure 6 Figure 8 Figure 9 Figure 10 Figure 12 622624- Figure 13 632 Mr. A r Figure 14 (A) ■) Figure 15 540

Claims (1)

【特許請求の範囲】[Claims] (1)主メモリと中央処理装置と周辺装置よりなるコン
ピュータ・システムにおいて、タスクあるいは共有リソ
ース占有の待ち行列に必要なポインタを、タスクの状態
を管理する情報を含む@1の制御テーブルから分離して
、該ポインタのみからなる第2の制御テーブル管構唆し
、該第2の制御子−プル上K)E第1の制御テーブルの
先頭アドレスを設定して、待ち行列Kg、録した徒、処
理が終了すると、上記第2の制御テーブル上の設定を取
り消して、上記待ち行列から切り離すことを特徴とする
待ち行列制御方式。 ■前記待ち行列の、登録あるいは更、り離しは、第1の
制御テーブルを指定する命令のみを用いて行うことを特
徴とする特許請求の範囲第i項記載O待ち行列制御方式
(1) In a computer system consisting of a main memory, a central processing unit, and peripheral devices, the pointers required for queues for tasks or shared resources are separated from the @1 control table containing information for managing the state of tasks. Then, construct a second control table consisting only of the pointers, set the top address of the first control table on the second control, and execute the queue Kg, recorded data, and processing. When the process is completed, the settings on the second control table are canceled and the queue is separated from the queue. (2) The queue control method according to claim 1, wherein registration, updating, or deletion of the queue is performed using only a command that specifies the first control table.
JP17672781A 1981-11-04 1981-11-04 MACHIGYORETSUSEIGYOHOSHIKI Expired - Lifetime JPH0247772B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17672781A JPH0247772B2 (en) 1981-11-04 1981-11-04 MACHIGYORETSUSEIGYOHOSHIKI

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17672781A JPH0247772B2 (en) 1981-11-04 1981-11-04 MACHIGYORETSUSEIGYOHOSHIKI

Publications (2)

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

Family

ID=16018718

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0247772B2 (en)

Also Published As

Publication number Publication date
JPH0247772B2 (en) 1990-10-22

Similar Documents

Publication Publication Date Title
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
JPS58151655A (en) Information processing device
JPH0533410B2 (en)
US20110265093A1 (en) Computer System and Program Product
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPH04182858A (en) Shared memory management system
US5764922A (en) I/O system for off-loading operating system functions
US5070477A (en) Port adapter system including a controller for switching channels upon encountering a wait period of data transfer
JPS5878238A (en) Queue controlling system
JPH01500065A (en) Apparatus and method for microprogram information processing system with multiple control stores
JP2003345614A (en) Parallel processing system by os for single processor
EP0297895A2 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPH0895810A (en) Batch job execution system
JPS603229B2 (en) Information processing method
JPH07105120A (en) Input/output controller
JPS6239789B2 (en)
JPS58154058A (en) Executing system of os
JPS61240355A (en) I/o data processing system
JPH0687221B2 (en) Information processing equipment
JPS60254328A (en) Task processing method in data processing system
JPH0533409B2 (en)
EP0290533B1 (en) I/o system for off-loading operating system functions
JPS60100239A (en) Shared file control system