JPS63208154A - Multi-processor schedule system - Google Patents
Multi-processor schedule systemInfo
- Publication number
- JPS63208154A JPS63208154A JP4165287A JP4165287A JPS63208154A JP S63208154 A JPS63208154 A JP S63208154A JP 4165287 A JP4165287 A JP 4165287A JP 4165287 A JP4165287 A JP 4165287A JP S63208154 A JPS63208154 A JP S63208154A
- Authority
- JP
- Japan
- Prior art keywords
- task
- flag
- program
- slave
- cpu
- 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
Links
- 238000000034 method Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 241000277269 Oncorhynchus masou Species 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、マスタ/スレーブ型マルチプロセッサ計算
機システムにおいて、ユーザがタスクスケジュールなど
を行うためのマルチプロセッサスケジュール方式に関す
るものである。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a multiprocessor scheduling method for a user to schedule tasks in a master/slave type multiprocessor computer system.
第3図は従来のマルチプロセッサスケジュール方式を説
明するためのマスタ/スレーブ型マルチプロセッサ計算
機システムの構成図である。図において、1は主メモリ
、2はスレーブCPU (スレーブ型中央処理装置)、
3はマスタCPU (マスタ型中央処理装置)、4はC
RTである。また、主メモリ1にはO3(オペレイティ
ングシステム)1a、タスク待ちキュ lb、スレーブ
CPU2で実行されるタスクICおよびマスタCPU3
で実行されるタスク1dが設けられる。FIG. 3 is a block diagram of a master/slave type multiprocessor computer system for explaining the conventional multiprocessor scheduling method. In the figure, 1 is the main memory, 2 is the slave CPU (slave type central processing unit),
3 is the master CPU (master type central processing unit), 4 is the C
It is RT. The main memory 1 also includes an O3 (operating system) 1a, a task waiting queue lb, a task IC executed by the slave CPU 2, and a master CPU 3.
A task 1d to be executed is provided.
一般に、マスタ/スレーブ型マルチプロセッサ計算機シ
ステムでは入出力処理や5VC(supervisor
call監視プログラム呼出し)処理などはマスタC
PU3によらなくては処理することができない。一方、
スレーブCPU2では演算処理などの制約されたCPU
バウンド(bound)な処理しかできず、スレーブC
PU2上で入出力要求やSVC要求などが発行されると
、その度にマスタCPU3へ実行の割り込みが入り、マ
スタCPU3ヘスイツチングしてその要求処理が実行さ
れる。Generally, in a master/slave type multiprocessor computer system, input/output processing and 5VC (supervisor
call monitoring program call) processing etc. is performed by master C.
It cannot be processed without using PU3. on the other hand,
Slave CPU2 is a CPU with restrictions such as arithmetic processing.
Slave C can only perform bound processing.
Whenever an input/output request, SVC request, etc. is issued on the PU 2, an execution interrupt is sent to the master CPU 3, and the request processing is executed by switching to the master CPU 3.
次に動作について説明する。031aはタスク待ちキュ
ー1bに並んでいる各実行待ちタスクを順々に取り出し
くデキュー)していき、マスタCPU3及びスレーブC
PU2の内のどちらか空いている(処理可能状態の)C
PUに順々に割り付けていく。例えば、タスクICをス
レーブCPU2へ、タスク1dをマスタCPU3へ割り
付ける。もし、スレーブCPU2へ割り付けたタスクI
Cが入出力要求の多いタスクであり、マスタCPU3へ
割り付けたタスク1dは演算処理などのCPUバウンド
なタスクであった場合、タスクICは入出力要求を発行
する度にマスタCPU3にスイッチングを繰り返し、ま
た一方、タスク1dはスレーブCPU2でも実行できる
タスクであるのにもかかわらずマスタCPU3で実行さ
れ、マスタCPU3に負荷が集中する。Next, the operation will be explained. 031a sequentially takes out each execution-waiting task lined up in the task waiting queue 1b (dequeuing), and sends the master CPU 3 and slave C
Either C in PU2 is free (ready to process)
Allocate them to PUs one after another. For example, the task IC is assigned to the slave CPU2, and the task 1d is assigned to the master CPU3. If task I is assigned to slave CPU2,
If C is a task with many input/output requests, and task 1d assigned to the master CPU 3 is a CPU-bound task such as arithmetic processing, the task IC repeatedly switches to the master CPU 3 every time it issues an input/output request. On the other hand, although the task 1d can be executed by the slave CPU 2, it is executed by the master CPU 3, and the load is concentrated on the master CPU 3.
このように従来のスケジュール方式は031aの動作に
まかせてスレーブCPU2とマスタCPU3とにタスク
を割り振りして処理を行っているので、タスクの種類に
応じて的確なスケジュールを行うことができず、CPU
バウンドなタスクをマスタCPU3へ割り付けたり、逆
に入出力要求の多いタスクをスレーブCPU2へ割り付
けたりすると、マスタCPU3への割り込みのスイッチ
ングばかりを発生し、これによりマルチプロセッサの性
能を十分に生かせず、計算機システム全体のスループッ
ト(throughput)を落としてしまうという問
題点があった。In this way, the conventional scheduling method allocates tasks to the slave CPU 2 and master CPU 3 and processes them depending on the operation of 031a, so it is not possible to perform accurate scheduling according to the type of task, and the CPU
If a bound task is assigned to the master CPU 3, or if a task with many input/output requests is assigned to the slave CPU 2, interrupts will only be switched to the master CPU 3, and the performance of the multiprocessor will not be fully utilized. There is a problem in that the throughput of the entire computer system is reduced.
この発明は上記のような問題点を解消するためになされ
たもので、処理プロセスの属性を理解しているユーザに
CPUバウンドなタスクはスレーブ型中央処理装置で実
行させるように明示的に指定させ、この指定に従ってオ
ペレイティングシステムが各タスクを各中央処理装置へ
スケジュールすることによりマルチプロセッサの機能を
十分に生かし、計算機システム全体としてスループット
を高めることができるマルチプロセッサスケジュール方
式を提供することを目的とする。This invention was made to solve the above-mentioned problems, and allows users who understand the attributes of processing processes to explicitly specify that CPU-bound tasks be executed on slave central processing units. The purpose of this paper is to provide a multiprocessor scheduling method that allows the operating system to schedule each task to each central processing unit according to this specification, thereby making full use of the functions of the multiprocessor and increasing the throughput of the computer system as a whole. do.
c問題点を解決するための手段〕
この発明に係るマルチプロセッサスケジュール方式は、
実行形式のロードモジュールを有するプログラム1 e
、、 1 fのインデクスに、そのプログラムle、
ifを実行するスレーブ型中央処理装置2あるいはマス
タ型中央処理装置3を選択するためのフラグIg、lh
を設け、このフラグ1g。Means for Solving Problem c] The multiprocessor scheduling method according to the present invention has the following features:
Program 1 having an executable load module e
,, 1 At the index of f, the program le,
Flags Ig and lh for selecting the slave type central processing unit 2 or master type central processing unit 3 that executes if
This flag is 1g.
1hをユーザに予め明示的に指定させ、そのプログラム
le、ifの実行時にはそのフラグ1g。1h is explicitly specified by the user in advance, and the flag 1g is set when the programs le and if are executed.
1hに従ってオペレイティングシステム1aが各中央処
理装置2,3ヘタスクli、ljの割り付けを行うもの
である。1h, the operating system 1a allocates tasks li and lj to each central processing unit 2 and 3.
プログラムle、Ifにそれぞれ起動がかかると、オペ
レイティングシステム1aは、フラグを識別し、そのフ
ラグがフラグ1gのときスレーブ型中央処理装置2を選
択し、この中央処理装置2が処理可能状態であればプロ
グラムleをタスク11として中央処理装置2へ割り付
けを行い、また、識別したフラグがフラグ1hのときマ
スタ型中央処理装置3を選択し、この中央処理装置3が
〔発明の実施例〕
以下、この発明の一実施例を図について説明する。第1
図はこの発明の一実施例に係るマルチプロセッサスケジ
ュール方式を説明するためのマスタ/スレーブ型マルチ
プロセッサ計算機システムの構成図である。図において
、1は主メモリ、2はスレーブCPU (スレーブ型中
央処理装置)、3はマスタCPU (マスタ型中央処理
装置)であ ・る。また、主メモリ1上において、1a
はO8(オペレイティングシステム)、1bはタスク待
ちキュー、li、ljは主メモリ1の外部に設けられた
ディスク上の実行形式のロードモジュールを有するプロ
グラムle、ifにそれぞれ対応するタスク、Ig、l
hはプログラムle、Ifの各インデクスに設けられた
フラグである。When the programs le and If are activated, the operating system 1a identifies the flag, selects the slave central processing unit 2 when the flag is 1g, and selects the slave central processing unit 2 even if the central processing unit 2 is ready for processing. For example, program le is assigned to the central processing unit 2 as task 11, and when the identified flag is flag 1h, the master type central processing unit 3 is selected, and this central processing unit 3 [Embodiment of the Invention] Hereinafter, An embodiment of the present invention will be described with reference to the drawings. 1st
FIG. 1 is a configuration diagram of a master/slave type multiprocessor computer system for explaining a multiprocessor scheduling method according to an embodiment of the present invention. In the figure, 1 is a main memory, 2 is a slave CPU (slave type central processing unit), and 3 is a master CPU (master type central processing unit). Also, on the main memory 1, 1a
is O8 (operating system), 1b is a task waiting queue, li and lj are tasks corresponding to programs le and if, respectively, which have executable load modules on a disk provided outside the main memory 1, Ig and l
h is a flag provided at each index of programs le and If.
次に動作について説明する。まず、ユーザは予めCPU
バウンドな動作を行うことが分かっているプログラム1
eのインデクス中に、そのプログラム1eを実行するス
レーブCPU2を選択するためのフラグ1gのみを論理
「1」にしておく。Next, the operation will be explained. First, the user uses the CPU
Program 1 that is known to perform bound movements
In the index of e, only the flag 1g for selecting the slave CPU 2 that executes the program 1e is set to logic "1".
その他のプログラム1fのインデクス中のフラグ1hは
何もせず論理「0」のままにしておく。このようなフラ
グ状態でプログラムle、Ifにそれぞれ起動がかかる
と、プログラムle、ifはタスクli、ljとして主
メモリ1上に登録されタスク待ちキュー1bにそれぞれ
つながれ、081aによりタスク実行スケジュールされ
るのを待つ。その後、031aは第2図のフローチャー
トの処理に従い、タスク待ちキュー1bの先頭から順次
タスクを取り出し、そのタスクのフラグが論理「1」で
あるか否かを識別して、そのフラグが論理「1」でかつ
スレーブCPU2が処理可能状態であればそのタスクを
スレーブCPU2へ、そうでなければマスタCPU3へ
割り付けを行う。The flag 1h in the index of the other program 1f is left at logic "0" without doing anything. When the programs le and If are activated in such a flag state, the programs le and if are registered as tasks li and lj in the main memory 1 and connected to the task waiting queue 1b, respectively, and scheduled for task execution by 081a. wait. Thereafter, 031a sequentially takes out tasks from the head of the task waiting queue 1b according to the process of the flowchart in FIG. 2, identifies whether or not the flag of the task is logic "1", and ” and the slave CPU 2 is in a processing ready state, the task is assigned to the slave CPU 2, otherwise the task is assigned to the master CPU 3.
ここで、このような動作を第2図のフローチャートを参
照して説明する。タスク実行スケジュールが開始しくス
テップSL)、031aはスレーブCPU2が処理可能
状態の空き状態であるか否かを判断しくステップS2)
、空き状態のときタスク待ちキューibの先頭から順次
タスクを取り出し、論理「1」のフラグを有するタスク
を探索する(ステップS3)。次に031aは論理「1
」のフラグを有するタスクがあったと判断すると(ステ
ップS4)、例えば論理「1」のフラグIgを有するタ
スク11があったと判断すると、そのタスク11をスレ
ーブCPU2へ割り付ける(ステップS5)。次に、0
31aは、マスタCPU3が空き状態であるか否かを判
断しくステップS6)、空き状態であるときタスク待ち
キューlbの先頭のタスク、例えばタスク1jをタスク
待ちキュー1bから取り出しマスタCPU3へ割り付け
(ステップS7)、割り付は処理を終了する(ステップ
38)。Here, such an operation will be explained with reference to the flowchart of FIG. 2. When the task execution schedule starts (step SL), step 031a determines whether the slave CPU 2 is in an idle state ready for processing (step S2).
, when the task queue ib is free, the tasks are taken out sequentially from the head of the task waiting queue ib, and a task with a flag of logic "1" is searched for (step S3). Next, 031a has logic “1”
For example, if it is determined that there is a task with a flag Ig of logic "1", the task 11 is assigned to the slave CPU 2 (step S5). Next, 0
31a determines whether or not the master CPU 3 is in the free state (step S6), and if it is in the free state, takes out the task at the head of the task waiting queue lb, for example, task 1j, from the task waiting queue 1b and assigns it to the master CPU 3 (step S6). S7), the allocation ends the process (step 38).
一方、ステップS2において、スレーブCPU2が空き
状態でないと判断されたときステップS6に移り、また
、ステップS4において、論理「1」のフラグを有する
タスクがないと判断されたときもステップS6に移る。On the other hand, when it is determined in step S2 that the slave CPU 2 is not in an idle state, the process moves to step S6, and also when it is judged in step S4 that there is no task with a flag of logic "1", the process moves to step S6.
従って、マスタCPU3が空き状態である限り、ステッ
プS7の処理が行われ、空き状態でないときはステップ
S9に移り処理は終了する。Therefore, as long as the master CPU 3 is in the free state, the process of step S7 is performed, and when it is not in the free state, the process moves to step S9 and ends.
なお、第1図に示すような状態では、フラグ1gが論理
rlJでかつスレーブCPU2が空き状態であるので、
タスク11はスレーブCPU2へ割り付けられる。また
、フラグ1hが論理「0」でかつマスタCPU3が空き
状態であるので、タスク1jはマスタCPU3へ割り付
けられる。Note that in the state shown in FIG. 1, the flag 1g is logical rlJ and the slave CPU 2 is in an idle state, so
Task 11 is assigned to slave CPU2. Furthermore, since the flag 1h is logic "0" and the master CPU 3 is in an idle state, the task 1j is assigned to the master CPU 3.
このように上記実施例によれば、CPUバウンドなタス
クliはスレーブ’CP U 2で、その他の入出力処
理中心のタスク1jはマスタCPU3でそれぞれ実行さ
せることができ、計算機システム全体のスループットを
最大限に引き上げることができる。In this way, according to the above embodiment, the CPU-bound task li can be executed by the slave CPU 2, and the other input/output processing-oriented tasks 1j can be executed by the master CPU 3, thereby maximizing the throughput of the entire computer system. It can be raised to the limit.
なお、上記実施例ではユーザがスレーブCPUで実行さ
せるタスクを明示的に指定させる単位はロードモジュー
ル単位としたが、これをサブルーチン単位またはサブル
ーチン中の文豚単位にユーザに明示的に指定させてもよ
い。この場合も同様な効果を奏する。In the above embodiment, the unit in which the user explicitly specifies the task to be executed by the slave CPU is in the load module unit, but it is also possible to have the user explicitly specify the task in the subroutine unit or in the subroutine unit. good. In this case as well, similar effects can be achieved.
以上のように本発明によれば、実行形式のロードモジュ
ールを有するプログラムのインデクスに、そのプログラ
ムを実行するマスタ型中央処理装置あるいはスレーブ型
中央処理装置を選択するためのフラグを設け、このフラ
グをユーザに予め明示的に指定させ、そのプログラムの
実行時にはそのフラグに従ってオペレイティングシステ
ムが各中央処理装置へタスクの割り付けを行うようにし
たので、タスクの種類に応じてユーザが指定してマスタ
型中央処理装置とスレーブ型中央処理装置とを選択的に
使用することができ、従ってマルチプロセッサの機能を
十分に生かし、計算機システム全体としてスループット
を高めることができるという効果が得られる。As described above, according to the present invention, a flag for selecting a master central processing unit or a slave central processing unit that executes the program is provided in the index of a program having an executable load module, and this flag is set to the index of a program having an executable load module. The user is required to explicitly specify tasks in advance, and when the program is executed, the operating system allocates tasks to each central processing unit according to the flags. It is possible to selectively use the processing unit and the slave type central processing unit, thereby making full use of the functions of the multiprocessor, resulting in the effect that the throughput of the computer system as a whole can be increased.
第1図はこの発明の一実施例に係るマルチプロセッサス
ケジュール方式を説明するためのマスタ/スレーブ型マ
ルチプロセッサ計算機システムの構成図、第2図はこの
実施例のマルチプロセッサスケジュール方式の動作を説
明するためのフローチャート、第3図は従来のマルチプ
ロセッサスケジュール方式を説明するためのマスタ/ス
レーブ型マルチプロセッサ計算機システムの構成図であ
る。
2・・・スレーブ型中央処理装置、3・・・マスタ型中
央処理装置、le、If・・・プログラム、Ig、lh
・・・フラグ、li、1j・・・タスク、1a・・・オ
ペレイティングシステム。
代理人 大 岩 増 tIjl(ばか2名)第
3図
(社) Φ :、−FIG. 1 is a configuration diagram of a master/slave type multiprocessor computer system for explaining a multiprocessor scheduling method according to an embodiment of the present invention, and FIG. 2 explains the operation of the multiprocessor scheduling method of this embodiment. FIG. 3 is a block diagram of a master/slave type multiprocessor computer system for explaining the conventional multiprocessor scheduling method. 2...Slave type central processing unit, 3...Master type central processing unit, le, If...Program, Ig, lh
...Flag, li, 1j...Task, 1a...Operating system. Agent Masu Oiwa tIjl (2 idiots) Figure 3 (company) Φ:, -
Claims (1)
えるマスタ/スレーブ型のマルチプロセッサ計算機シス
テムにおいて、実行形式のロードモジュールを有するプ
ログラムのインデクスに、そのプログラムを実行する上
記マスタ型中央処理装置あるいは上記スレーブ型中央処
理装置を選択するためのフラグを設け、このフラグをユ
ーザに予め明示的に指定させ、そのプログラムの実行時
にはそのフラグに従ってオペレーティングシステムが上
記各中央処理装置へタスクの割り付けを行うことを特徴
とするマルチプロセッサスケジュール方式。In a master/slave type multiprocessor computer system comprising a master type central processing unit and a slave type central processing unit, an index of a program having an executable-format load module is specified by the master type central processing unit that executes the program or the type described above. A flag is provided to select a slave type central processing unit, the user is required to explicitly specify this flag in advance, and when the program is executed, the operating system allocates tasks to each of the above central processing units according to the flag. Features a multiprocessor scheduling method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4165287A JPS63208154A (en) | 1987-02-25 | 1987-02-25 | Multi-processor schedule system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4165287A JPS63208154A (en) | 1987-02-25 | 1987-02-25 | Multi-processor schedule system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63208154A true JPS63208154A (en) | 1988-08-29 |
Family
ID=12614294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4165287A Pending JPS63208154A (en) | 1987-02-25 | 1987-02-25 | Multi-processor schedule system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63208154A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5447666B2 (en) * | 2010-06-25 | 2014-03-19 | 富士通株式会社 | Multiprocessor system and scheduling method |
-
1987
- 1987-02-25 JP JP4165287A patent/JPS63208154A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5447666B2 (en) * | 2010-06-25 | 2014-03-19 | 富士通株式会社 | Multiprocessor system and scheduling method |
US9367326B2 (en) | 2010-06-25 | 2016-06-14 | Fujitsu Limited | Multiprocessor system and task allocation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7926062B2 (en) | Interrupt and exception handling for multi-streaming digital processors | |
US6389449B1 (en) | Interstream control and communications for multi-streaming digital processors | |
US5257372A (en) | Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system | |
JP2561801B2 (en) | Method and system for managing process scheduling | |
JPH0673108B2 (en) | How to restrict guest behavior to system resources allocated to guests | |
JPH09269903A (en) | Process management method | |
AU603876B2 (en) | Multiple i/o bus virtual broadcast of programmed i/o instructions | |
CN112817762A (en) | Dispatching system based on adaptive automobile open system architecture standard and dispatching method thereof | |
JP3644042B2 (en) | Multitask processing device | |
WO2000070482A1 (en) | Interrupt and exception handling for multi-streaming digital processors | |
JPS63208154A (en) | Multi-processor schedule system | |
CN115269139A (en) | Dual-operating-system mixed real-time task scheduling method and system based on trusted area | |
JPH05108380A (en) | Data processing system | |
JP2000215071A (en) | Virtual computer system | |
JPH11249917A (en) | Parallel computers, their batch processing method, and storage medium | |
WO1992003783A1 (en) | Method of implementing kernel functions | |
JPH07182168A (en) | Arithmetic unit and its control method | |
JPS61143858A (en) | How to share files under multiple operating systems | |
JPH0793267A (en) | Computer system | |
JPS63159941A (en) | Task control system for real time os | |
JPH08314878A (en) | Computer system | |
JP2002007143A (en) | Batch job execution scheduling method by transition scheduler | |
JPH01217636A (en) | Task control system | |
JPH113235A (en) | Task control system using virtual processor | |
JPH03116335A (en) | System for transferring from non-privileged cpu to privileged cpu |