JPS58154058A - Executing system of os - Google Patents

Executing system of os

Info

Publication number
JPS58154058A
JPS58154058A JP57036407A JP3640782A JPS58154058A JP S58154058 A JPS58154058 A JP S58154058A JP 57036407 A JP57036407 A JP 57036407A JP 3640782 A JP3640782 A JP 3640782A JP S58154058 A JPS58154058 A JP S58154058A
Authority
JP
Japan
Prior art keywords
processor
program module
interrupt
processing
management table
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
JP57036407A
Other languages
Japanese (ja)
Other versions
JPH0449146B2 (en
Inventor
Hiroshi Kobayashi
博 小林
Keiichi Nakane
啓一 中根
Toshiro Jinnai
神内 俊郎
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 JP57036407A priority Critical patent/JPS58154058A/en
Publication of JPS58154058A publication Critical patent/JPS58154058A/en
Publication of JPH0449146B2 publication Critical patent/JPH0449146B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions

Abstract

PURPOSE:To attain a parallel operation, by cutting off a part that is capable of a parallel operation as an independent program in an operating system and then allotting a working processor to every program. CONSTITUTION:An operating system OS is roughly provided with an SVC process routine group 420, an interruption process routine group 410, an OS process dispatcher 431, a task dispatcher 441, an idle routine 450 and an OS process group 436. The group 420 serves as an OS service counter to a task group 442. The group 410 processes an interruption.

Description

【発明の詳細な説明】 本発明は、電子計算機、脣に、オペレーティングシステ
ム(以下、O8と略す。)の実行方式に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to an electronic computer, and more particularly, to an execution method of an operating system (hereinafter abbreviated as O8).

従来の計算機システムにおいて、複数の計算機から構成
されたマルチコンピュータシステムは、信頼性の向上9
機能分散、負荷分散等の要求vI−実現するためVC使
われていた。これらの要求は、主に、そのシステムの来
すべき業゛務に対して設定されたものでb)、計算機内
部では、アプリケーションプログラムの分散配置という
形で実現された。
In conventional computer systems, multi-computer systems composed of multiple computers have improved reliability9.
VC was used to achieve vI-requirements such as function distribution and load distribution. These requirements were mainly set for the future tasks of the system b), and were realized within the computer in the form of distributed arrangement of application programs.

したがって、計算機ノット−エアの核と−なる08に対
しては、上記した要求もなく夾施例もない。
Therefore, 08, which is the core of the computer Not-Air, has neither the above requirements nor any examples.

しかし、近年の素子技術の進歩は著しく、安価で高速な
7ステムをコンパクトに実現できる様になル、1つの計
算機を複数の処理装置(プロセッサ)で構成することが
可能となった。そのため、08に対しても、前記した要
求が強くなってきた。ところが、従来方式でこれらの要
求全実現しようとすると、性能低下と−う問題があった
However, in recent years, device technology has made remarkable progress, and it has become possible to realize a compact, inexpensive and high-speed 7-system system, and it has become possible to configure one computer with a plurality of processing units (processors). Therefore, the above-mentioned demands have become stronger for 2008 as well. However, when trying to meet all of these requirements using the conventional method, there was a problem of performance deterioration.

以下、図を用いて従来技術について説明する。Hereinafter, the conventional technology will be explained using figures.

第1図は、従来のマルチコンピュータシステムの構成図
を示す。
FIG. 1 shows a configuration diagram of a conventional multi-computer system.

システムを構成する計算機A、Bには、それぞれ主記憶
装置(以下、MSと略す。)が接続されておシ、2台の
計算機はメモリデータバスを介してグローバルメモリ(
以下、GMと略す。)の几end 、 Writeが行
なえる様になっている。また、割込バスを介して、お互
いが相手計算機に割込をかけられる様になっている。各
計算機は、各々番号(計算機番号と呼ぶ。)t−持って
おシ番号該番によシ識別される。 ゛ 該システム構成を前提に、マルチコンピュータシステム
での計算機間コミュニケーションの一例を、第2図を用
いて説明する。
Computers A and B that make up the system are each connected to a main storage device (hereinafter abbreviated as MS), and the two computers are connected to the global memory (MS) via a memory data bus.
Hereinafter, it will be abbreviated as GM. ), you can now end and write. Also, each computer can interrupt the other computer via an interrupt bus. Each computer has a number (referred to as a computer number) and is identified by the number. ``With this system configuration as the premise, an example of communication between computers in a multi-computer system will be explained using FIG. 2.

計算機人には、アプリケーションプログ2ムがタスクα
として登録されている。同様に、計算機BKはタスクβ
が登録されて−る。一方、08は太きくSVC処理O8
と割込処j!08から構成されている。8vC処理08
ri、タスクから発行されたsvC命令によシ起動され
、タスクが指定した処理を行なう。割込処理O8は、計
算機内部あるーは外部で発生した割込によシ起動され、
割込要因に対応した処理を行なう。
For computer people, application program 2 is task α.
is registered as. Similarly, computer BK has task β
is registered. On the other hand, 08 is thicker and SVC processed O8
And interrupt processing j! It consists of 08. 8vC processing 08
ri is activated by the svC command issued by the task, and performs the processing specified by the task. Interrupt processing O8 is started by an interrupt that occurs inside or outside the computer,
Perform processing corresponding to the interrupt factor.

計算機関での共有メモリGMには、計算機関のコミュニ
ケーションブロックを配置する。このコずエニケーショ
ンブロックには、送信t−要求した計算機番号、処理の
種類管示す処理コード、及び、相手計算機が処j!を行
なうために必要なパラメータをセットする。
A communication block of the computing engine is placed in the shared memory GM of the computing engine. This communication block contains the sending t-requested computer number, the processing code indicating the type of processing, and the process to be processed by the other computer! Set the parameters necessary to perform.

たとえば、計算機Aのタスクαから、計算機Bのタスク
lを起動する場合、まず、タスクαからタスク/l″起
動するためSvC命令が出される。
For example, when starting task l of computer B from task α of computer A, an SvC command is first issued to start task /l'' from task α.

それにより、svc処理O8が起動される。8VC処理
08は、タスクの指定したパラメータにより−計算機B
のタスク起動要求であることを知り、GMのコミュニケ
ーションブロックに必要な情報を書き込む。この場合、
処理要求計算機番号として計算機Aの前号t1処理コー
ドとして、タスク起動を示すコードを、さらに、パラメ
ータとしてタスクβのタスク番号上セツトする。これら
の情報をセットした後、前記割込バスを介して計算機B
に連絡割込をかける。そして、最後にタスクαを応答連
絡待ちとして処理を終了する。
As a result, svc processing O8 is activated. 8VC processing 08 executes - Computer B according to the parameters specified by the task.
Knowing that this is a task activation request, the GM writes the necessary information to the GM's communication block. in this case,
As the processing request computer number, a code indicating task activation is set as the previous t1 processing code of computer A, and the task number of task β is further set as a parameter. After setting this information, computer B is sent via the interrupt bus.
Interrupt the contact. Finally, the process ends with task α waiting for a response.

連絡割込を受けた計算機Bでは、割込処理08が起動さ
れ、GMのコミュニケーションブロックを参照する。こ
の場合、コミュニケーションブロックには、′タスクβ
の起動要求”というメツセージが書かれているので、タ
スクβを起動する。
In computer B that received the communication interrupt, interrupt processing 08 is activated and refers to the GM communication block. In this case, the communication block includes ′ task β
``Startup request'' is written, so start task β.

その後、計算機Aに対して応答を返すためにGMのコミ
ュニケーションブロックに応答情報を書き込む。すなわ
ち、送信要求計算機として計算WABの番号を、処理コ
ードとして応答報告を示すコードを、パラメータとして
処理の結果を示すリターンコードをセットする。最後に
、計算機Aに対して連絡割込をかけ割込処理を科了し、
タスクβに制御を移す。
Thereafter, response information is written to the GM communication block in order to return a response to computer A. That is, the number of the calculation WAB is set as the transmission request computer, the code indicating the response report is set as the processing code, and the return code indicating the result of the processing is set as the parameter. Finally, a communication interrupt is sent to computer A and the interrupt processing is completed.
Transfer control to task β.

一方、連絡割込を受けた計算1kAでは、割込処理08
が起動され、タスクαの応答待ちを解除しタスクαにリ
ターンする。
On the other hand, in the calculation 1kA that received the communication interrupt, interrupt processing 08
is activated, the task α is released from waiting for a response, and returns to task α.

従来のシステムでは、それぞれの計算機に同じosf:
配置し、各計′Ji機のO8間で迷路をと9合うことに
よp1アプリケーションプログラムの分散配置管実現し
ていた。しかし、O8t機能別に分散配置すると−う考
え方はみられず、08の並列処理による性能向上は小さ
いものであった。
In conventional systems, each computer has the same OSF:
Distributed deployment of the p1 application program was realized by arranging the maze and matching nine mazes between the O8 of each 'Ji machine. However, there was no idea of distributing each O8t function, and the performance improvement due to parallel processing in 08 was small.

本発明の目的は、複数のプロセッサから構成されるマル
チプロセッサシステムにおいて、各プロセッサにてO8
を並列動作させるための機構t−提供し、08の性能向
上を図ることにある。
An object of the present invention is to provide O8
The objective is to improve the performance of 08 by providing a mechanism for operating them in parallel.

素子技術の進歩により0.ひとつの計算機システムを複
数のプロセッサで構成するご1.:とが、価格図。
0.0 due to advances in element technology. For configuring one computer system with multiple processors 1. :And price chart.

性能面ともに十分可能となった。そのため、プログラム
の並列動作による性能向上が要求される。
It has become possible in terms of performance. Therefore, performance improvement through parallel operation of programs is required.

しかし、従来はアプリケーションプログラムの並列処理
のみで、08に関してはシーケンシャルな処理を基本と
していた。本発明は、O8の中で、並列動作可能な部分
t−08プロセスと呼ぶ1つの独立したプログラムとし
て切)離し、このOSプロセス毎に動作プロセッサを割
シ当て、もってO8の並列動作を可能ならしめるもので
ある。
However, in the past, application programs were only processed in parallel, and 08 was basically based on sequential processing. The present invention separates a part of O8 that can operate in parallel as an independent program called the t-08 process, and allocates an operating processor to each OS process, thereby allowing O8 to operate in parallel if possible. It is something to tighten.

以下、図を用iて本発明の実#A例を説明する。Hereinafter, practical example #A of the present invention will be explained with reference to the drawings.

第3図は、複数のプロセッサから構成された計算11t
−2台組み合わせたマルチコンピュータシステムのシス
テム構成図である。
FIG. 3 shows a calculation 11t composed of multiple processors.
- It is a system configuration diagram of a multi-computer system in which two computers are combined.

lりの計算機システムは、M8101と該M8を制御す
るためのメモリコントロールユニット(以下MCUと略
す。)301.4台のプロセッサ(以下Pと略す。)3
21,322..323゜324、及び、上記MCU、
Pを接続するシステムバス311から構成される。各プ
ロセッサは、各々プロセッサ番号を有し1.11、線番
号によシ識別される。
The first computer system includes an M8101 and a memory control unit (hereinafter referred to as MCU) 301 for controlling the M8.4 processors (hereinafter referred to as P) 3
21,322. .. 323°324, and the above MCU,
It consists of a system bus 311 to which P is connected. Each processor has a processor number 1.11 and is identified by line number.

また、2つの計算機システAt−結合するためのプロセ
ッサであるリンクプロセッサ(以下、LINKと略す、
)3;10、及び両針算機システムで共用するメモリG
MIIGによシマルテコンピュータシステムを構成する
。従来技術同様、各計算機は、計算機番号によシ繊別さ
れる。
In addition, a link processor (hereinafter abbreviated as LINK), which is a processor for connecting two computer systems At, is also used.
) 3; 10, and memory G shared by the two-hand counting system
Configure the Simalte computer system using MIIG. As in the prior art, each computer is classified by computer number.

08やアプリケーションプログラム及びデータは、1記
したM8101に格納されておシ、各プロセッサP32
1〜a24&cよシ実行される。
08, application programs and data are stored in the M8101 mentioned in 1, and each processor P32.
1 to a24&c are executed.

P321〜324は独立して動作可能で弗ル、メモリ内
のデータtIjlPIILとする時は、咳データの格納
されたアドレスを前記MCυ301に送る。
P321 to P324 can be operated independently, and when the data in the memory is tIjlPIIL, the address where the cough data is stored is sent to the MCυ301.

MC0301は、指定されたアドレスよシM8101上
のデータを読みプロセッサに送る。たとえば、P321
で、あるプログラムを実行してφる場合、P321は咳
プログラムの命令の格納されたアドレスをMCU301
へ送出する。MCU301は、指定され九アドレスから
命令t−in出し、P321へ送る。命令管受は取った
P321は、その命令を解釈実行し、1″:)の命令処
理が終了すると、次の命令なsr出すために再びMCU
301に命令アドレスを送出する。こうして、J腕次M
8101上の命令を収シ出し、解釈実行しプログラムt
−動作させるわけである。この一連の処理を各プロセッ
サで独立して行なうために、2つ以上のプロセッサから
同時にM8101t−アクセスすることがある。そのた
めシステムバス311は、順序制御機能f:有してお!
D、MC0301へ同時に2つ以上のプロセッサから要
求が送られない様にして−る。
MC0301 reads the data on M8101 at the specified address and sends it to the processor. For example, P321
When a certain program is executed and φ is executed, P321 sends the address where the cough program command is stored to MCU301.
Send to. The MCU 301 issues the instruction t-in from the designated address 9 and sends it to P321. The P321 that the command receiver took interprets and executes the command, and when the command processing of 1":) is completed, it sends the MCU again to issue the next command sr.
The command address is sent to 301. In this way, J armji M
Collects the instructions on 8101, interprets and executes the program t
-It makes it work. In order to perform this series of processing independently in each processor, the M8101t may be accessed simultaneously from two or more processors. Therefore, the system bus 311 has a sequence control function f:!
D. Prevent requests from two or more processors from being sent to the MC0301 at the same time.

また、2つのプロセッサ間の交信も、MC0301とM
8101  t−介して行なわれる。たとえば、P32
1とP322で交信を行なう場合、M8101上に交信
用のエリアを設定し、P321は咳エリアに交信情報t
セットした後、システムバス311を経由して連絡割込
t−P322にかける。
Also, communication between two processors is carried out between MC0301 and M
8101t-. For example, P32
1 and P322, set the area for communication on M8101, and P321 sets the communication information t in the cough area.
After setting, a communication interrupt t-P322 is applied via the system bus 311.

割込を受信したP322では前記交信用エリアから交信
情報を取シ出し、該情報に従って処理を行なう。仁の交
信情報のセット、取り出しは、MCU301に交信用エ
リアのアドレスあるいはデータを送出することによシ実
現される。また、前記した連絡割込のために、システム
バス311には割込機能を有している。
At P322, which receives the interrupt, communication information is extracted from the communication area and processing is performed according to the information. Setting and retrieval of the communication information of the user is realized by sending the address or data of the communication area to the MCU 301. Furthermore, the system bus 311 has an interrupt function for the above-mentioned communication interrupt.

さらに、2つの計算機システム間での交信は、LINK
330 、GM 110 t−介して行なわれる。
Furthermore, communication between two computer systems is performed using LINK.
330, GM 110t-.

LINK330 d、GMIIOのBe aa / W
r i t e及び他計算機システムへの割込機能1に
7Nシている。今、P321とP325の交信を考える
。GMIIO上に交信用エリア(従来技術図2のコミュ
ニケーションブロック)を設け、P321が該エリアに
交信情報を七ッ卜する。これは、鋏エリアのアドレス及
びセットする情報’tLINK330に送出することに
よシ行なわれる。交信情報セット後、P321はLIN
K330を介してP325に割込をかける。P325r
i、0M110上の交信用エリアを読み出すために、交
信用エリアのアドレスをLINK33Gへ送出する。L
INK330は、指定されたアドレスからGMIIO上
のデータを読み、P325へ送る。P325は該データ
、すなわち、交信情報を解釈し、該情−に従った処jl
t−行なう。
LINK330 d, GMIIO Be aa/W
7N is used for interrupt function 1 to r ite and other computer systems. Now, consider communication between P321 and P325. A communication area (communication block in conventional technology FIG. 2) is provided on GMIIO, and P321 sends communication information to this area. This is done by sending the address of the scissor area and setting information to 'tLINK 330. After setting communication information, P321 is LIN
Interrupt P325 via K330. P325r
In order to read the communication area on 0M110, the address of the communication area is sent to LINK33G. L
INK330 reads data on GMIIO from the specified address and sends it to P325. P325 interprets the data, that is, the communication information, and performs processing according to the information.
t-do.

第4図は、本発明のプログラム全体構成図である。FIG. 4 is an overall configuration diagram of the program of the present invention.

O8は太きくsvc処理ルーチン群4201割込処理ル
ーテン群410.08プロセスデイスパツチヤ(以下0
81)ISF と略す。)431、タスクディスパッチ
ャ(以下TKDISF  と略す、)441、アイドル
ルーチン(以下、IDLEと略す。)450、及び、0
8プロセス群436から構成される。5vcl&埋ル一
チン群420は、タスク群442に対する08のサービ
スの窓口でめシ、たとえば、他のタスクを起動するため
のsvc処理ルーチン、ディスクをアクセスするための
SVC廻埋ルーチン等が用意されている。また、割込処
理ルーチン群410は、計算機内部あるいは外部からの
割込を処理するルーチンで69、割込要因に対応して用
意されている。たとえば、ディスクからの終了割込を処
理するルーチン、タイマ割込を処理するルーチン等がお
る。
08 is a thick svc processing routine group 4201 interrupt processing routine group 410.08 process dispatcher (hereinafter referred to as 0
81) Abbreviated as ISF. ) 431, task dispatcher (hereinafter abbreviated as TKDISF) 441, idle routine (hereinafter abbreviated as IDLE) 450, and 0
It is composed of eight process groups 436. The 5vcl & filler group 420 is a window for the 08 services for the task group 442, and provides, for example, an svc processing routine for starting other tasks, an svc processing routine for accessing the disk, etc. ing. Further, the interrupt processing routine group 410 is a routine 69 for processing interrupts from inside or outside the computer, and is prepared corresponding to the interrupt cause. For example, there are routines for processing end interrupts from the disk, routines for processing timer interrupts, and the like.

第4図を用いて、08の処理の流れを示す。The flow of processing in step 08 is shown using FIG.

今、タスク群4−’2のうちの1つのタスクが動作して
、ある8VC命令を出したとする。該8vc命令を処理
するため、8vc処理ルーチン#42゜のうちの#当す
るsvcJAImルーチンに制御が移る。5vcI6a
tルーチンでは、08プロセス起動ルーチン432tC
ALLして、08プロセスを起動する。8vC処理ルー
チンの処理が終了すると、制御rjO8DI8P431
に移る。08DIRP 431−t”は、08プロセス
群436のうちから実行可能な08プロ七スt−1個選
択シ、該当OSプロセスに制御を移す、今の場合、前記
SvC処理ルーチンで起動されたOSプロセスが選択さ
れることになる。08プロ七スでは、必要に応じてリソ
ース占有ルーチン434、!jソース解放# −f74
35をCALLL、ある決められた処理を実行する。
Suppose now that one task in task group 4-'2 operates and issues a certain 8VC instruction. In order to process the 8vc instruction, control is transferred to the corresponding svcJAIm routine of the 8vc processing routine #42°. 5vcI6a
In the t routine, the 08 process startup routine 432tC
Click ALL to start the 08 process. When the processing of the 8vC processing routine is completed, the control rjO8DI8P431
Move to. 08DIRP 431-t" selects the executable 08 process t-1 from the 08 process group 436 and transfers control to the corresponding OS process. In this case, the OS process started by the SvC processing routine will be selected. In the 08 Pro 7th, the resource occupancy routine 434, !j source release # -f74 will be selected as necessary.
CALL 35 to execute a certain predetermined process.

08プロセス終了時には、OSプロセス終了ルーチン4
33 t CALLする。該ルーチ/433では、該当
osyaセスを終了状態とし、次に実行すべきOSプロ
セスを選択するため08DI8P431にリンクする。
08 When the process ends, the OS process end routine 4
33 t CALL. The routine/433 terminates the corresponding osya process and links to the 08DI8P431 in order to select the OS process to be executed next.

08DI8Pは、前記したと同様に実行可能な08プロ
セスを選択するが、実行可能なOSプロセスがない場合
、TKDI8P441にリンクする。TKDI8P44
1では、タスク群442のうちの実行可能なタスクを1
個選択して、該タスクに制御を移す。今の場合、前記の
8VC命令発行タスクが選択され、該タスクにリターン
するが、もし、実行可能なタスクがなければ、IDLE
450へリンクする。IDLE450 は、すべての割
込受付可能状態でループするプログラムである。
08DI8P selects an executable 08 process in the same way as described above, but if there is no executable OS process, it links to TKDI8P441. TKDI8P44
1, the executable tasks of the task group 442 are set to 1.
Select one and transfer control to that task. In this case, the above-mentioned 8VC instruction issuing task is selected and returns to that task, but if there is no executable task, IDLE
Link to 450. IDLE450 is a program that loops in all interrupt-enabled states.

IDIJ:450動作時に、割込が発生したとすると、
割込処理ルーチン群410のうちの、該割込要因に対応
した割込6理ルーチンに制御が移る。
If an interrupt occurs during IDIJ:450 operation,
Control is transferred to an interrupt processing routine among the interrupt processing routine group 410 that corresponds to the interrupt cause.

割込処理ルーチンでは、08プロセス起動ルーチン43
2t−CALLして、087oセスを起動する。
In the interrupt processing routine, 08 process startup routine 43
2t-CALL to start the 087o process.

割込処理ルーチンの処理が終了すると、08DI8P4
31に制御が移る。それ以降は、前記したSvC処理の
場合と同様KO8プロセス、タスクの選択丸環が行なわ
れ、最終的にはIDLE45Gへリンクする。
When the processing of the interrupt processing routine is completed, 08DI8P4
Control is transferred to 31. After that, the KO8 process and tasks are selected in the same manner as in the SvC processing described above, and finally linked to the IDLE 45G.

以上、OSプロセスを使用したO8の処理の流れを説明
したが、次KO8プロセスを制御するための機構につい
て詳!lalを説明する。
The flow of O8 processing using the OS process has been explained above, but now let's learn more about the mechanism for controlling the KO8 process! Explain lal.

第5図はOSプロセスの管理テーブルの構成図を示す。FIG. 5 shows a configuration diagram of the OS process management table.

08プロセスt−f埋するために、1個のOSプoセス
に1個の管理テーブルOSプロセスコントロールブロッ
ク(以下08PCBと略す。)500を用意する。
In order to fill in the 08 process tf, one management table OS process control block (hereinafter abbreviated as 08PCB) 500 is prepared for one OS process.

08PCB500は、ロックエリア510.ポインタ1
エリア520.ポインタ2エリア530.実行プロセッ
サ番号540.OSプロセスのステータスを示すステー
タス情@550.OSプロセスのプログラム先頭アドレ
ス560.その他の制御情報エリア570、及び、OS
プロセスワークエリア580からなjD、MS上に配置
される。
08PCB500 has a lock area 510. pointer 1
Area 520. Pointer 2 area 530. Execution processor number 540. Status information showing the status of the OS process @550. Program start address of OS process 560. Other control information area 570 and OS
jD and MS from the process work area 580.

ロックエリアは、08PCB500の排他制御に使用す
る。すなわち、あるプロセッサが08PCBSOOを処
理、りまシ、08PCB内のデータを几eBd/Wri
te l、ている時に、他のプロセッサが練08PCB
のデータt−read/Write Lない様に:( するためのフラグであり、各プロセッサは、08PCB
のデータ操作に先立ち、必ず、本エリア510にプロセ
ッサ番号全セットする。したかって、本エリア510が
0の時は、該当08PCBはどのプロセッサも処理して
いないことを意味し、0以外の値、すなわち、プロセッ
サ前号がセットされている時は、該番号を*するプロセ
ッサが、該08PCBを処理中であることを意味する。
The lock area is used for exclusive control of the 08PCB500. In other words, a processor processes 08PCBSOO, processes the data in 08PCB, and processes the data in 08PCB.
tel, while another processor is working on the PCB
Data t-read/write L: (This is a flag for each processor to read/write data on the 08PCB
Prior to data manipulation, all processor numbers must be set in this area 510. Therefore, when this area 510 is 0, it means that the corresponding 08 PCB is not being processed by any processor, and when a value other than 0, that is, the previous processor number is set, the corresponding number is marked *. It means that the processor is processing the 08 PCB.

ポインターエリア520は、OSプロセスt−実行する
に際して、システムを構成するプロセッサの台数以上の
OSプロセスに起動がかかった場合、同時にすべてのO
Sプロセスを動作させることにできず、待行列を作る必
要がおる。該待行列を実行待行列と呼ぶ。該待行列を作
成する際に、実行のj−序を記憶するため本ポインター
エリア520に、次の08PCBアドレスtセツトする
The pointer area 520 indicates that when executing an OS process, if more OS processes than the number of processors configuring the system are started, all OS processes are executed at the same time.
Unable to run S process, it is necessary to create a queue. This queue is called an execution queue. When creating the queue, the next 08 PCB address t is set in this pointer area 520 to store the j-order of execution.

ポインタ2エリア530は、実行中のOSプローにスが
り7−、X(デ’(ス9.CfLT、M80rGMのエ
リアなど)を占有する際に、既に同じリソースを他の0
8プロセスが占有していた場合に姶 リソース占有のための待行列を作る。該併行列をリソス
待行列と呼ぶが、前記実行待行列の場合と△ 同様、ポインタ2エリア530に次の08PCBのアド
レス管記憶することによりリソース待行列を形成する。
When the pointer 2 area 530 occupies an area 7-,
If 8 processes are occupying the resource, create a queue for occupying the other resource. This parallel queue is called a resource queue, and as in the case of the execution queue, the resource queue is formed by storing the address of the next 08 PCB in the pointer 2 area 530.

実行プロセッサ贅号540U、該当08プロセスを実行
してiるプロセッサのグロセツf誉号をセットする。
Set the execution processor number 540U and the gross number f of the processor that is executing the corresponding 08 process.

ステータス情報55(Hat、該当OSプロセスの状l
1t−記憶するためのエリアで、該当OSプロセスがあ
るプロセッサで実行中である仁とを表示するBυNビッ
ト551.リソース占有待ちであることを示すENQビ
ット552等、OSプロセスの状態をビット対応で記憶
する。たとえば、前記ピッ)551.552が1の場合
、それぞれ実行中、リソース占有待ちという状態を示し
、0の場合そうでないことを示す。
Status information 55 (Hat, status of the applicable OS process)
1t - This is an area for storing the BυN bit 551, which indicates which OS process is being executed on a certain processor. The state of the OS process, such as the ENQ bit 552 indicating that it is waiting for resource occupancy, is stored in bit correspondence. For example, when 551 and 552 are 1, it indicates that the program is being executed or waiting for resource occupancy, and when it is 0, it indicates that they are not.

プログラム先頭アドレス560は、OSプロセスのプロ
グツAの先jjiM19アドレスを示してお尻前記08
DISP431からOSプロセスにリンクする時に使用
する。
The program start address 560 indicates the destination jjiM19 address of the program A of the OS process.
Used when linking from DISP431 to the OS process.

その他の制御情報570は、08プロセス実行時の割込
によプOSプロセスの処理が中断されることがある。そ
の際、割込処理料了後再び中断箇所から08プロセスの
処理を再開できる様に、08プロセスが使用しているレ
ジスタを退避するために使用される。
Regarding other control information 570, processing of the OS process may be interrupted due to an interrupt during execution of the 08 process. At this time, it is used to save the registers used by the 08 process so that the 08 process can resume processing from the interrupted point after the interrupt processing fee has expired.

OSプロセスワークエリア580は、OSプロセスの処
理の中で一時的に情報を記憶するための作業用エリアで
ある。
The OS process work area 580 is a work area for temporarily storing information during OS process processing.

次に、OSプロセスの待行列管理方式について説明する
Next, the OS process queue management method will be explained.

+iI6図は、08PCBによる待行列を示す。Figure +iI6 shows the queue with 08PCB.

一般に77トワエアでの待行列管理は、テーブルの順序
管理という形で実現される。テーブルの順序管理は、リ
ソースに対応したポインタエリアに待行列tm成するテ
ーブルの先頭テーブルアドレスを記憶し、以下は、各テ
ーブルの待行列用ポインタエリアに次のテーブルアドレ
スを記憶することKよシテープルの順序づけ1行なう。
Generally, queue management in 77 Towa Air is realized in the form of table order management. To manage the order of tables, the first table address of the table forming the queue tm is stored in the pointer area corresponding to the resource, and the next table address is stored in the queue pointer area of each table. Let's do one ordering.

第6図では、08プロセスの実行待行列用ポインタ(以
下RQP Bと略す。)61Q、及び、リソース待行列
用ポインタ(以下BSQBと略す。)620に、08P
CBを接続しfc場合を示している。
In FIG. 6, the execution queue pointer (hereinafter abbreviated as RQP B) 61Q of the 08 process and the resource queue pointer (hereinafter abbreviated as BSQB) 620 are filled with 08P.
The case where CB is connected and fc is shown.

RQPB610には、08PCB500の先頭アドレス
を記憶し、該08PCB500のポインタlエリア52
0には次の08PCBの先頭アドレスを記憶する。以下
、同様にして次の08PCBの先頭アドレスを記憶する
ことにより実行待行列を形成する。
The RQPB 610 stores the start address of 08PCB 500 and stores the pointer area 52 of the 08PCB 500.
0 stores the start address of the next 08 PCB. Thereafter, an execution queue is formed by storing the start address of the next 08 PCB in the same manner.

08PCB500が実行待行列に接続されるのは、OS
プロセスが起動された時、すなわち、OSプロセス起動
処理ルーチンの中で、該実行待行列への接続が行なわれ
る。そして、08プロセスが終了するまで接続されてい
る。実行待行列からの08PCB500の切離しは、O
Sプロセス終了処理ルーチンにて行なう。
08PCB500 is connected to the execution queue by the OS
When a process is started, that is, in the OS process start processing routine, connection to the execution queue is made. The connection continues until the 08 process ends. Detaching 08PCB500 from the execution queue is O
This is done in the S process termination processing routine.

08DISPは、本実行待行列の先頭08PCBから順
々に実行待行列をサーチしていき、最初に見つかった実
行可能状態の08PCBに対応するOSプロセスを選択
する。
The 08DISP sequentially searches the execution queue starting from the head 08PCB of the execution queue, and selects the OS process corresponding to the first 08PCB found in an executable state.

−”・ リ′−3侍行列、シ、、、R8QB620に″
7−ス待行列先頭08PCBの先頭アドレスを記憶し、
該08PCBのポインタ2エリア530に次の08PC
Bの先頭アドレスを記憶することによシ形成される。リ
ソース待行列に接続されている場合、必ず実行待行列に
も接続されている。
-"・Re'-3 Samurai Matrix,..., R8QB620"
7- Store the start address of the 08 PCB at the beginning of the space queue,
The next 08 PC is placed in the pointer 2 area 530 of the 08 PCB.
It is formed by storing the start address of B. If it is connected to a resource queue, it must also be connected to an execution queue.

リソース待行列への登録は、08DI8Pで選択された
08プロセスが動作し、あるリソースを占有しようとし
た時に、該リソースが既に他のOSプロセスに占有され
ていた場合に行なわれる。その際も、実行待行列からの
切離しは行なわない。
Registration in the resource queue is performed when the 08 process selected by 08DI8P operates and attempts to occupy a certain resource, but the resource is already occupied by another OS process. At that time, the program is not separated from the execution queue.

リソース待行列からの切離しは、占有中リソースが解放
され使用可能状態となったタイミングで行なわれる。
Detachment from the resource queue is performed at the timing when the occupied resource is released and becomes usable.

リソース待行列接続中は、前記08PCB oENQビ
ット552rtlである。つまり、リソース待行列登録
時、該ビット552會1とし、リソース待行列切離し時
0とする。
During resource queue connection, the 08PCB oENQ bit is 552rtl. That is, the bit 552 is set to 1 when the resource queue is registered, and set to 0 when the resource queue is disconnected.

本発明においては、上記実行待行列を全プロセッサ共通
に1gA持つ所に特徴がある。各プロセッサの081)
I8Fは、□・、起動されると本実行待行列をサーチし
4、実行可能な087’ロセスを1個選択し、前記几υ
Nピッ)551に1を、前記実行プロセッサ番号540
に自プロセッサ番号をセットし、OSプロセスを動作さ
せる。OSプロセスがリソース待ち、あるいは、終了し
たタイミングで再び前記実行待行列を参照し、次のOS
プロセスを選択する。
The present invention is characterized in that the execution queue has 1 gA common to all processors. 081) of each processor
When I8F is activated, it searches the main execution queue 4, selects one executable 087' process, and executes the process described above.
N pick) 551 to 1, the execution processor number 540
Set the own processor number to , and run the OS process. When the OS process is waiting for resources or has finished, the execution queue is referred to again and the next OS process is executed.
Select a process.

しかし、本方式の場合、実行可能な08プロセスがな−
と、新たに起動され7’COSプロセスの実行開始が遅
れる可能性がある。すなわち、あるプロセッサがアイド
ル状態(IDLEルーfン処理中)である時に、他のプ
ロセッサが実行待行列に新たな08PCB t−接続し
ても、前記アイドル中のプロセッサでは、該08PCB
に対応するOSプロセスを選択できない。
However, in the case of this method, there is no executable 08 process.
, there is a possibility that the start of execution of the newly activated 7' COS process will be delayed. In other words, even if another processor connects a new 08PCB to the execution queue when a processor is in an idle state (processing an IDLE run), the idle processor
Unable to select the corresponding OS process.

そこで、本発明でtz、osプロセスディスパッチ要求
割込、及び、プロセッサステータスレジスタ(以下PS
Bと略す。)によシ、上記OSプロセスの選択処理の遅
れが発生しない様にしている。
Therefore, in the present invention, the tz, os process dispatch request interrupt, and processor status register (hereinafter referred to as PS
Abbreviated as B. ), this prevents delays in the OS process selection process.

第7図は、PABの構成図である。FIG. 7 is a configuration diagram of the PAB.

P8R700U、16ビツト構成のレジスタであシ、プ
ロセッサ1台に1ピツトを割シ当てる。
The P8R700U is a 16-bit register, and one pit is allocated to each processor.

図におりて、Plはプロセッサ1台、P2はプロセッサ
2用、以下、Pl6まで、すなわち、プロセッサ16台
までのビットがアサインされている。
In the figure, P1 is assigned to one processor, P2 is assigned to processor 2, and bits up to P16, that is, up to 16 processors, are assigned.

各ビットは、0の時、該当プロセッサにてOSプロセス
t−実行中でない、10時、該当プロセッサにてOSプ
ロセス実行中でおることを示し、OSプロセス起動時に
1をセットし、実行可能な08プロセスが存在しなめ時
にOt−セットする。
When each bit is 0, it indicates that the OS process is not being executed on the corresponding processor, and when it is 10 o'clock, it indicates that the OS process is being executed on the corresponding processor. Ot-set when the process exists.

第8図は、P8Hの配置を示すシステム構成図である。FIG. 8 is a system configuration diagram showing the arrangement of P8H.

P8R700は、MCU301の内部に実装され、各プ
ロセッサからセット・リセットが可能となっている。
The P8R700 is mounted inside the MCU 301 and can be set and reset by each processor.

今、P321,322.323でaSプロセス実行中、
P324ではOSプロセス実行中でないとすると、P8
R700のP321〜323に対応したビットが1とな
っておfi、P324に対応するビットに0となってい
る。この状態で、P321で新たな08プロセスの起動
賛求が発生しfc場合、P321からP8R700を参
照し、ビットがOとなっているプロセッサを見つけ出す
。本例では、P324のビットが0であるから、P32
1からP324へ08プロセスディスバンチ要求割込を
かける。本割込は、前記したシステムバス311の割込
機能を利用して行なう。すなわち、MS101上に、交
信エリア800t−設け、該エリア800に、交信情報
、すなわち、OSプロセスディスパッチ要求メツセージ
をセットして、連絡割込をかけるわけである。
Currently, aS process is running on P321, 322.323,
Assuming that the OS process is not running in P324, P8
The bits corresponding to P321 to P323 of R700 are set to 1, and the bits corresponding to fi and P324 are set to 0. In this state, if a request to start a new 08 process occurs in P321 and fc, P8R700 is referenced from P321 and a processor whose bit is set to O is found. In this example, since the bit of P324 is 0, P32
08 process disbunch request interrupt is applied from 1 to P324. This interrupt is performed using the interrupt function of the system bus 311 described above. That is, a communication area 800t is provided on the MS 101, communication information, that is, an OS process dispatch request message is set in the area 800, and a communication interrupt is generated.

第9図に08プロセスディスパッチ要求割込処理の概略
フローを示す。
FIG. 9 shows a schematic flow of 08 process dispatch request interrupt processing.

OSプロセスディスパッチ要求割込飽処理00は、まず
、P8R700を参照してOSプロセス実行中でないプ
ロセッサを検出する(ブロック901)。もし、すべて
のプロセッサでOSプロセス実行中なら、何もしないで
リターンする(ブロック902)。これは、新たに起動
されfcosプロセi″ スの08PCBは既に実行待行列に接続されているため
、やがていずれかのプロセッサによ#)選択されるため
である。P88700t−チェックの結果、OSSプロ
スス実行中ないプロセッサがあれば、該プロセッサに対
して連絡割込をかける(ブロック903)。
The OS process dispatch request interrupt saturation process 00 first refers to P8R700 to detect a processor that is not executing an OS process (block 901). If all processors are executing OS processes, the process returns without doing anything (block 902). This is because 08PCB of the newly started fcos process i'' is already connected to the execution queue, so it will eventually be selected by one of the processors. As a result of the P88700t check, the OSS process If there is a processor that is not executing, a contact interrupt is issued to that processor (block 903).

以上、OSプロセスを制御するための機構を脱力したが
、次にOSプロセス制御のためのプログラム概略フロー
を図を用いて説明する。OSSプロスス制御プログラム
、第4図において示しfclaに、08DISP 、O
Sプロセス起動ルーチン。
The mechanism for controlling the OS process has been explained above, and next, the general flow of the program for controlling the OS process will be explained using diagrams. OSS process control program, shown in Figure 4, fcla, 08DISP, O
S process startup routine.

087’ロセス終了ルーチン、リソース占有ルーチン、
リソース解放ルーチンからなる。
087' Process termination routine, resource occupation routine,
Consists of resource release routines.

第10図は、08DI8P431の概略処理フローを示
す。
FIG. 10 shows a schematic processing flow of 08DI8P431.

まず、OSプロセス実行待行列の先頭から008PCB
をサーチしていき、実行可能な08プロセスを選択する
(ブロック1001)。実行可能なOSプロセスがなけ
れば、ブロック1004へ進む。
First, 008 PCB from the top of the OS process execution queue.
is searched and an executable 08 process is selected (block 1001). If there are no executable OS processes, proceed to block 1004.

(ブロック1002)。実行可能な087’ロセスがあ
れば(ブロック1002 )ミ゛08PCBのRUNビ
ットを1として実行プロセツゝテ番号をセット後08P
CBのプログラム先頭アドレスを取プ山し、該アドレス
にジャンプする(ブロック1003 )。
(Block 1002). If there is an executable 087' process (block 1002), set the RUN bit of the 08PCB to 1 and set the execution process number, then 08P.
The program start address of the CB is captured and jumps to the address (block 1003).

−万、ブロック1004では、ps几700の自プロセ
ッサに対応するビットを0として、TKDI8Pにリン
クする。
- In block 1004, the bit corresponding to the own processor of the ps 700 is set to 0 and linked to the TKDI8P.

第11図は、08プロセスの起動処理の概略フローを示
す。
FIG. 11 shows a schematic flow of the 08 process startup process.

起動処理432では、ブロック1101でパラメータを
取り込む。起動処理のパラメータとしては、どのOSプ
ロセスを起動するかを示す番号を渡す。
In the startup process 432, parameters are taken in at block 1101. As a parameter for the startup process, a number indicating which OS process is to be started is passed.

該番号tOiプロセス番号と呼び、OSプロセスを識別
する九めに、08PCBに1対1対応に採番されている
。したがって、OSプロセス番号により該当ospca
のアドレスが計算できる。次に該当08PCB t−実
行待行列に接続する(ブロック1102)。その後、O
Sプロセスダイスパンチ費水割込をかける(ブロック1
103)。該処理は、第9図を用いて既に説明した様に
、PS8を参照してOSプロセス実行中でなiプロセッ
サに対して割込をかけるものである。
The number tOi is called a process number, and the ninth number that identifies the OS process is numbered in a one-to-one correspondence with the 08 PCB. Therefore, depending on the OS process number, the corresponding ospca
address can be calculated. Next, connect to the corresponding 08PCB t-execution queue (block 1102). After that, O
Apply S process die punch cost water interruption (block 1
103). As already explained using FIG. 9, this process refers to the PS8 and interrupts the i-processor that is not executing the OS process.

第12図は、OSプロセスの終了処理の概略70−を示
す。
FIG. 12 shows an outline 70- of the OS process termination process.

終了処理433は、まず実行待行列から該当08PCB
を削除する(ブロック1201)。次に08PCBのス
テータスエリアを0クリアする(ブロック1202)。
The termination process 433 first selects the corresponding 08 PCB from the execution queue.
(block 1201). Next, the status area of 08PCB is cleared to 0 (block 1202).

その後、08DISPにリンクし、次に実行すべきOS
プロセスの選択処理に移る。
After that, link to 08DISP and run the next OS
Move on to process selection processing.

該終了処理によりospca内Bビットが0となる。The end processing causes the B bit in ospca to become 0.

第13図は、OSプロセスのリソース待ち処理の概略フ
ローを示す。
FIG. 13 shows a schematic flow of resource waiting processing of the OS process.

リソース待ち処理434は、ステータス操作(ブロック
1301)と待行列操作(ブロック1302) からな
り。ブロック1301でt!、08PCB内のENQビ
ットを1とすることによ、り、#08プロセスをリソー
ス待ち状態とする。次に、08PCB内ポインタ2エリ
アを使用してリソース待ち行列に登録する。リソース待
行列のポインタ几8QBのアドレスは、本ルーチンのパ
ラメータとしてもらい、該尚08PCBd該アドレスに
接続された待行列に追加されることになる。
The resource waiting process 434 consists of a status operation (block 1301) and a queue operation (block 1302). At block 1301, t! , by setting the ENQ bit in the 08 PCB to 1, thereby placing the #08 process in a resource waiting state. Next, it is registered in the resource queue using the pointer 2 area in the 08 PCB. The address of the resource queue pointer 8QB is taken as a parameter of this routine and will be added to the queue connected to the address 08PCBd.

第14@は、リソース解除処理の概略フローで69、パ
ラメータとして与えられたR8QBアドレスから08P
CBの待行列をサーチし、08PCBがなくなるまで、
08PCBの待行列からの削除をく9返す。すなわち、
該当リソースに08PC13の待ち行列があるかどうか
チェックしくブロック1401)、あれば先頭08PC
Bを待行列かシ削除する(ブロック1402)。次に、
該08PCBのステータスエリアのENQビット1−0
とし待ち表示をクリアする(ブロック1403)。最後
ニ、OSフo−にスディスパッチ要求割込をかける(ブ
ロック14G4 )が、本処理は第9図で示したルーチ
ンにリンクすることで実現される。そして、次の08P
CBを調べ、もしなければリターンする。
The 14th @ is the general flow of resource release processing. 69, 08P from the R8QB address given as a parameter
Search the CB queue until 08PCB is exhausted.
08 Returns 9 to delete the PCB from the queue. That is,
Check whether there is a queue for 08PC13 in the corresponding resource (block 1401), and if so, the first 08PC
B is deleted from the queue (block 1402). next,
ENQ bits 1-0 in the status area of the 08 PCB
and clears the waiting display (block 1403). Finally, a dispatch request interrupt is issued to the OS file (block 14G4), and this process is realized by linking to the routine shown in FIG. And next 08P
Check CB and return if not found.

以上本発明によるOSプロセス制御機構を使用すると、
第2図に示した従来のマルチコンピュータシステムでの
計算機間コミュニケーションハ第15図に示した様にな
る。
When the OS process control mechanism according to the present invention is used as described above,
Communication between computers in the conventional multi-computer system shown in FIG. 2 is as shown in FIG. 15.

本図では、計算機AがプロセッサA1.A2かい′:。In this figure, computer A has processor A1. A2:.

ら構成され、計算機BがプロセッサBl、B2がら構成
されている。計算機間コミュニケーションのためのOS
プログラムは、詳細に見ると、いくつかに分割でき並列
に処理可能である。すなわち、計算機A側では、タスク
αを応答連絡待ちとする処理とGMIIOに交信情@を
書き込み計算機Bに連絡割込をかける処理とが並列処理
可能であシ、計算機B側では、タスクβを起動する処理
とGMlloに応答情報を書き込み計算機Aに連絡割込
をかける処理とが並列処理可能である。そこで、これら
の処理をそれぞれ1個のOSプ9セスとして登録する。
Computer B is composed of processors B1 and B2. OS for communication between computers
If we look at the program in detail, it can be divided into several parts and processed in parallel. In other words, on the computer A side, the process of making task α wait for a response communication and the process of writing communication information @ to GMIIO and issuing a communication interrupt to computer B can be performed in parallel, and on the computer B side, task β can be processed in parallel. The process of activating and the process of writing response information to GMllo and issuing a communication interrupt to computer A can be processed in parallel. Therefore, each of these processes is registered as one OS process.

以下、図を用いて処理の流れを説明する。The flow of processing will be explained below using figures.

計算機Aのタスクαから、計算機Bのタスグーに対する
起動要求が出された場合、タスク起動SVC処理082
31KfllJ御が移る。該08231では、OSプロ
セスa1501とOSプロセスb1502を起動するだ
けで処理を終わる。起動されたOSプロセスa、bは、
プロセラ?A1.A2で独立して動作t−−始し、タス
クαを応答連絡待−: ち状態とすると同1−に、計算機Bに連絡割込をがける
。計算機B側では、連絡割込によシ割込処理08233
が起動される。該08233では、08プロセスC15
03とOSプロセスd 1504に起動をかける。起動
されたOSプロセスc、dは、プロセッサBl、B2で
独立して動作を開始し、08プロセス01503は、G
Mのコミュニケーションブロックを参照して、タスクβ
を起動する。
When task α of computer A issues a startup request for task α of computer B, task startup SVC processing 082
31KfllJ control is transferred. In 08231, the process ends by simply starting the OS process a1501 and the OS process b1502. The launched OS processes a and b are
Procera? A1. When the task .alpha. starts operating independently at A2, and the task .alpha. is placed in the state of waiting for a response, a communication interrupt is sent to the computer B at the same time. On the computer B side, interrupt processing 08233 is performed according to the communication interrupt.
is started. In 08233, 08 process C15
03 and OS process d 1504 are activated. The activated OS processes c and d start operating independently on the processors Bl and B2, and the 08 process 01503 starts operating on the processors B1 and B2.
Referring to the communication block of M, task β
Start.

一方、OSプロセス41504Fi、計算機Aに対して
連絡割込をかけ応答を返す。
On the other hand, the OS process 41504Fi issues a communication interrupt to computer A and returns a response.

上記した様に、08の一部t?OSプロセスとして登録
することによ、6、osの並列処理が可能とな9性能向
上が図れる。
As mentioned above, part of 08? By registering it as an OS process, it is possible to improve performance by enabling parallel processing of the OS.

第161iAti、マルチコンピュータシステムにおけ
る計算機関コミュニケーションの夕、イムチャートを示
したものである。
This is an evening time chart of the 161st iAti, computing institution communication in a multi-computer system.

図の(荀は、従来のO8による場合、(b)は本発明に
よる場合を示して−る。
In the figure, (x) shows the case using the conventional O8, and (b) shows the case according to the present invention.

タスクαがタスクβの起動要求を出してから再び動作す
るまでの時間、及び、タスクαがタスクβの起動要求を
出してからタスクβが動作するまでの時間ともに、本発
明による場合の方が短縮されてお9、O8の応答性が向
上している。
In the case of the present invention, both the time from when task α issues a start request to task β until it starts operating again, and the time from when task α issues a start request to task β until task β starts operating, are better. It has been shortened and the responsiveness of O8 has been improved.

本発明により、複数のプロセッサから構成されるシステ
ムにお−て、08の一部をOSプロセスとして実現し、
各OSプロセスを複数のプロセッサで並列動作させ、O
8の応答性、ひいては、システムの性Ir!を向上する
ことが可能となる。
According to the present invention, in a system composed of multiple processors, a part of 08 can be realized as an OS process,
Each OS process runs in parallel on multiple processors, and
8's responsiveness and, by extension, the system's performance Ir! It becomes possible to improve the

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

第1図は、従来のマルチコンピュータシステムのシステ
ム構成図、第2図は、従来のコンピュータ間コミュニケ
ーションの全体処理図、第3図は、本発明を実現するマ
ルチコンピュータシステムのシステム構成図、第4図は
、本発明によるO8の全体プログラム構成図、A8s図
は、08PCBのテーブル構成図、第6図は、08PC
Bによる待行列構成図、第7図は、PABの構成図、第
8図は、PABの配置を示すシステム構成図、第9図は
、OSプロセスディスパッチ要求割込処理フロー、1/
g1(1+d、08DISP O処N7o−1aII 
1図は、OSプロセスの起動処理フロー、第12図は、
08プロセスの終了処理フロー、第13図は、08プロ
セスのリソース処理フロー、第14図は、OSプロセス
のリソース解除処理フΩ−1第15図は、本発明を用い
た計算機間コミュニケーションの全体処埴図、jl 1
6図は、計算機間コミュニケーションにおけるメイムチ
ャートを示す。 代理人 弁理士 薄田利幸 312− 313− 314− 315−
FIG. 1 is a system configuration diagram of a conventional multi-computer system, FIG. 2 is an overall processing diagram of conventional inter-computer communication, FIG. 3 is a system configuration diagram of a multi-computer system that implements the present invention, and FIG. The figure is an overall program configuration diagram of O8 according to the present invention, the A8s diagram is a table configuration diagram of 08PCB, and Figure 6 is a diagram of the 08PCB table configuration.
FIG. 7 is a configuration diagram of PAB, FIG. 8 is a system configuration diagram showing the arrangement of PAB, and FIG. 9 is an OS process dispatch request interrupt processing flow.
g1(1+d, 08DISP O treatment N7o-1aII
Figure 1 shows the startup processing flow of the OS process, and Figure 12 shows the
FIG. 13 shows the resource processing flow of the 08 process. FIG. 14 shows the resource release processing flow of the OS process Ω-1. FIG. 15 shows the overall process of communication between computers using the present invention. Clay drawing, jl 1
FIG. 6 shows a mayme chart for communication between computers. Agent Patent Attorney Toshiyuki Usuda 312- 313- 314- 315-

Claims (1)

【特許請求の範囲】[Claims] 1.111IkOプロセツサと該プロセッサが共通に参
照更新し得る共有メモリを備えたマルチプロセッサシス
テムにおiて、O8のプログラムモジュールのうちで独
立並行処理可能なモジュールのそれぞれに1個の管理テ
ーブルを割シ当て、該管理テーブル内に待行列ポインタ
エリアを有し、該管理テーブルを待行列に登録する手段
を有することによシ、前記プログラムモジュールのスケ
ジエーリングを可能とするO8の実行方式。 2、特許請求の範囲1項に記載したO8の実行方式にお
いて、前記管理テーブル内に、該管理テーブルに対応し
たO8のプログラムモジュールがあるプロセッサで実行
中であることを示すフラグと咳プロセッサの識別情報を
有し、前記プログラムモジュールt−娶るプロセッサで
実行開始するに先立ち、前記フラグ及びプロセッサ識別
情報を、前記管理テーブルにセットする手段、及ヒ、前
記プログラムモジュールの処理終了時に前記フラグをリ
セットする手段t−有し、該フラグセット中は前記管理
テーブルのプロセッサ識別情報に19識別されるプロセ
ッサ以外のプロセッサでは、前記プログラムモジュール
を実行しない休にすることによシ、複数のプロセッサで
同時に同一のプログラムモジュールt−冥行しないこと
t−特徴とするO8の実行方式。 3、%*fi求の範囲1項に記載しfcOSの実行方式
において、各プロセッサから共通に参照更新可能なレジ
スタと各プロセッサ間で割込をかける手段とを有し、各
プロセッサに該レジスタの1ピツトを割p尚て、各プロ
セッサは前記プログラムモジュールの実行に先立ち、自
プロセッサに割シ当てられた該レジスタのビットをセッ
トし、自プロセッサで実行す・べきプログラムモジュー
ルが存在しないことt−検出し九時点で該ビットをリセ
ットすることにより、あるプロセッサで発生した前記プ
ログラムモジュールO起動要求を、前記レジスタのビッ
トがリセットされているプロセッサに割込をかけて連絡
し、各プロセッサでのプログラムモジュールの実行によ
る負荷を均等化することを特徴とするO8の実行方式。
1. In a multiprocessor system equipped with an 111IkO processor and a shared memory that can be referenced and updated in common by the processor, one management table is allocated to each of the O8 program modules that can be independently and concurrently processed. The execution method of O8 enables scheduling of the program module by having a queue pointer area in the management table and means for registering the management table in the queue. 2. In the O8 execution method described in claim 1, the management table includes a flag indicating that the O8 program module corresponding to the management table is being executed in a certain processor and identification of the cough processor. means for setting the flag and processor identification information in the management table before starting execution on the processor of the program module t, and resetting the flag when processing of the program module ends. means t-, and while the flag is set, processors other than the processor identified by 19 in the processor identification information of the management table are set to a rest state in which the program module is not executed. Execution method of O8 characterized by program module t--no travesty t-. 3. Range of %*fi request In the fcOS execution method described in item 1, each processor has a register that can be referenced and updated in common, and a means for issuing an interrupt between each processor, and each processor has a register that can be referenced and updated in common. Before executing the program module, each processor sets a bit in the register assigned to the processor to confirm that there is no program module to be executed by the processor. By detecting the bit and resetting the bit at the 9th point, the program module O start request generated in a certain processor is transmitted to the processor whose bit in the register has been reset through an interrupt, and the program is executed in each processor. An O8 execution method characterized by equalizing the load due to module execution.
JP57036407A 1982-03-10 1982-03-10 Executing system of os Granted JPS58154058A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57036407A JPS58154058A (en) 1982-03-10 1982-03-10 Executing system of os

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57036407A JPS58154058A (en) 1982-03-10 1982-03-10 Executing system of os

Publications (2)

Publication Number Publication Date
JPS58154058A true JPS58154058A (en) 1983-09-13
JPH0449146B2 JPH0449146B2 (en) 1992-08-10

Family

ID=12468980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57036407A Granted JPS58154058A (en) 1982-03-10 1982-03-10 Executing system of os

Country Status (1)

Country Link
JP (1) JPS58154058A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61256465A (en) * 1985-05-10 1986-11-14 Hitachi Ltd Parallel processing system
JPS6249563A (en) * 1985-08-29 1987-03-04 Nec Corp Mechanical translating device
JPH02502764A (en) * 1987-02-06 1990-08-30 アメリカン テレフォン アンド テレグラフ カムパニー Multiprocessing methods and configurations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61256465A (en) * 1985-05-10 1986-11-14 Hitachi Ltd Parallel processing system
JPS6249563A (en) * 1985-08-29 1987-03-04 Nec Corp Mechanical translating device
JPH02502764A (en) * 1987-02-06 1990-08-30 アメリカン テレフォン アンド テレグラフ カムパニー Multiprocessing methods and configurations

Also Published As

Publication number Publication date
JPH0449146B2 (en) 1992-08-10

Similar Documents

Publication Publication Date Title
EP0093835B1 (en) Resource switching in a multi-tasking environment
US4123795A (en) Control system for a stored program multiprocessor computer
US4435752A (en) Allocation of rotating memory device storage locations
US4369494A (en) Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US4395757A (en) Process synchronization utilizing semaphores
JP2644780B2 (en) Parallel computer with processing request function
US5010482A (en) Multi-event mechanism for queuing happened events for a large data processing system
EP0491342A2 (en) Method for fast communication between user program and operating system
US6108766A (en) Structure of processor having a plurality of main processors and sub processors, and a method for sharing the sub processors
JPS58151655A (en) Information processing device
US20070074214A1 (en) Event processing method in a computer system
JPH09128252A (en) Control method for execution of task with priority and data processor
CN112491426B (en) Service assembly communication architecture and task scheduling and data interaction method facing multi-core DSP
JP2003263331A (en) Multiprocessor system
CA1304513C (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
CN109144749A (en) A method of it is communicated between realizing multiprocessor using processor
CN108958903B (en) Embedded multi-core central processor task scheduling method and device
CN112346835B (en) Scheduling processing method and system based on coroutine
CN109062857A (en) A kind of new type of messages controller and its communication means that can be communicated between realization of High Speed multiprocessor
JPS58154058A (en) Executing system of os
CN108958904B (en) Driver framework of lightweight operating system of embedded multi-core central processing unit
JP2000259609A (en) Data processor and its system
CA1302580C (en) Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
US20090019259A1 (en) Multiprocessing method and multiprocessor system
JPS603229B2 (en) Information processing method