JP3483931B2 - Program execution control method and computer - Google Patents

Program execution control method and computer

Info

Publication number
JP3483931B2
JP3483931B2 JP08554494A JP8554494A JP3483931B2 JP 3483931 B2 JP3483931 B2 JP 3483931B2 JP 08554494 A JP08554494 A JP 08554494A JP 8554494 A JP8554494 A JP 8554494A JP 3483931 B2 JP3483931 B2 JP 3483931B2
Authority
JP
Japan
Prior art keywords
program
computer
execution
computers
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP08554494A
Other languages
Japanese (ja)
Other versions
JPH07121490A (en
Inventor
哲夫 長谷川
泰邦 岡宅
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP08554494A priority Critical patent/JP3483931B2/en
Publication of JPH07121490A publication Critical patent/JPH07121490A/en
Application granted granted Critical
Publication of JP3483931B2 publication Critical patent/JP3483931B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数の計算機で同一の
処理ないし同一の機能を有する処理を並行して実行する
多重処理システムおよびプログラム実行制御方法に係
り、特にプログラムのバグによって全計算機がダウンす
るのを防止できるようにした多重処理システムおよびプ
ログラム実行制御方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multi-processing system and a program execution control method for executing the same processing or processing having the same function in parallel on a plurality of computers, and more particularly to all computers due to a program bug. The present invention relates to a multi-processing system and a program execution control method capable of preventing down.

【0002】[0002]

【従来の技術】変動するデータを処理し、その処理結果
を化学・鉄鋼プラントのような産業システム、交通制御
システム、あるいは原子力プラントのような電力システ
ムといった制御対象システムに伝達制御するシステムに
おいては、いかなる状況下にあってもシステムを常に安
全に制御し、システムに与えられたミッションを確実に
達成することが要求される。このような要求に対し、複
数の計算機により同一処理または同一機能を有する処理
を並行して実行する多重処理システムが従来から利用さ
れている。多重処理システムには、以下の示す種々の方
式がある。
2. Description of the Related Art In a system for processing fluctuating data and transmitting the processing result to a controlled system such as an industrial system such as a chemical / steel plant, a traffic control system, or a power system such as a nuclear plant, Regardless of the circumstances, it is required to always control the system safely and reliably achieve the mission given to the system. In response to such a request, a multi-processing system has been conventionally used in which a plurality of computers execute the same processing or processing having the same function in parallel. There are various types of multiprocessing systems as shown below.

【0003】(1)複数の計算機で同一のアプリケーシ
ョンプロセス群を実行する方式。
(1) A method of executing the same application process group on a plurality of computers.

【0004】複数の計算機に同一のアプリケーションプ
ロセス群を実行させる多重処理システムでは、たとえ1
台の計算機が何らかの障害によってダウンしても、他の
計算機で処理を続行させることができるので、処理の中
断を避けることができる。この方式の多重処理システム
は、いずれか1台の計算機にハードウェア障害が発生す
る確率に比べて複数の計算機に同時にハードウェア障害
が発生する確率が非常に低いことを有効に利用してい
る。
In a multi-processing system that allows a plurality of computers to execute the same application process group,
Even if one of the computers goes down due to some failure, the other computers can continue the processing, so that the interruption of the processing can be avoided. The multiprocessing system of this system effectively utilizes the fact that the probability of hardware failure occurring in a plurality of computers at the same time is extremely lower than the probability of hardware failure occurring in any one computer.

【0005】しかしながら、アプリケーションプロセス
のプログラムが完全であるという保証はない。プログラ
ムバグを含むアプリケーションプロセスを実行すると、
計算機に障害が発生し、この障害は全ての計算機で起こ
る。従って、たとえ並列多重処理を行っていても、シス
テムでの処理が中断することになる。
However, there is no guarantee that the application process program is complete. When you run an application process that contains a program bug,
A computer fails, and this failure occurs on all computers. Therefore, the processing in the system is interrupted even if the parallel and multiple processing is performed.

【0006】たとえば、図15(a)に示すように、各
タイムスライス毎にアプリケーションプロセスP1〜P
4が投入された場合、プログラムバグのないときには、
この図に示すようなタイミングでアプリケーションプロ
セスが生成され実行される。なお、タイムスライス回数
とは何回目のタイムスライスが起きたかを示し、これは
すなわち時刻の経過を意味する。また、この例におい
て、P2はP1により、P3,P4はP2によってそれ
ぞれ生成される。ここで、仮にP3のプロセスのバグに
よって計算機に障害が起こり、計算機がダウンすると、
従来の並列多重処理システムあるいは1台の計算機で実
行した場合には、図15(b)に示すタイムスライス回
数4の時点で全計算機がダウンする。従って、プロセス
P4が正常に動くことの可能な場合であっても、このプ
ロセスP4の処理を実行できないことになる。
For example, as shown in FIG. 15A, application processes P1 to P are provided for each time slice.
If 4 is thrown, and there is no program bug,
An application process is generated and executed at the timing shown in this figure. The number of time slices indicates how many time slices have occurred, which means the passage of time. In addition, in this example, P2 is generated by P1, and P3 and P4 are generated by P2. Here, if a computer fails due to a bug in the P3 process and the computer goes down,
When it is executed by the conventional parallel multiprocessing system or one computer, all the computers go down at the time of the number of time slices 4 shown in FIG. Therefore, even if the process P4 can move normally, the process P4 cannot be executed.

【0007】小型の計算機や制御用に用いられる高速応
答性を重視した計算機においては、計算機の動きを管理
するOS(オペレーティングシステム)等の保護機構が
弱く、アプリケーションプロセスのプログラムバグによ
り障害の発生する可能性が高い。従って、並列多重処理
を行っても、一部のアプリケーションプロセスのプログ
ラムバグでシステム全体の処理が中断してしまうという
問題があった。
In a small-sized computer or a computer used for control that emphasizes high-speed response, a protection mechanism such as an OS (operating system) that manages the movement of the computer is weak, and a failure occurs due to a program bug of an application process. Probability is high. Therefore, there is a problem that the processing of the entire system is interrupted by the program bug of some application processes even if the parallel and multiple processing is performed.

【0008】(2)複数の計算機で同一の機能を有する
複数の版のプログラムに従ってアプリケーションプロセ
スを並行に実行する方式。
(2) A method of executing application processes in parallel according to a plurality of versions of programs having the same function on a plurality of computers.

【0009】複数の計算機に同一の機能を有する複数の
版(バージョン)のプログラム構造にもとづくアプリケ
ーションプロセスを並行に実行させる多重処理システム
では、たとえ1台の計算機が何らかの障害によってダウ
ンするか、または内部状態に矛盾を起こしたとき外部に
悪影響を及ぼすことを避けるために以降の処理を中断し
ても、他の計算機で処理を続行させることができるの
で、処理の中断を避けることができる。
In a multi-processing system in which a plurality of computers execute in parallel application processes based on a plurality of versions of program structures having the same function, even if one computer goes down due to some kind of failure, or Even if the subsequent processing is interrupted in order to avoid adversely affecting the outside when a contradiction occurs in the state, the processing can be continued in another computer, so that the interruption of the processing can be avoided.

【0010】この方式の多重処理システムは、いずれか
1台の計算機にハードウェア障害が発生する確率が複数
台の計算機に同時に発生する確率に比べて非常に少ない
ことに加えて、同一機能を有するアプリケーションプロ
セスを有するいずれかの版のプログラムにプログラムバ
グが存在して障害が発生しても、同一の機能を有する他
の版のプログラムにはプログラムバグが存在せず、障害
が発生しない可能性が高い点を有効に利用している。
The multiprocessing system of this system has the same function in addition to the probability that a hardware failure will occur in any one computer at the same time as the probability that a hardware failure will occur in a plurality of computers at the same time. Even if a program bug with an application process has a program bug and a failure occurs, there is a possibility that the program bug does not exist with another version of the program having the same function and the failure does not occur. Make good use of high points.

【0011】この方式の並列処理システムにおいて、シ
ステム全体の処理が中断されないためには、同一の機能
を有する複数の版のプログラムのうち最低1つの版は障
害が発生しないことが条件であるが、障害が発生しにく
い安全な作り方をしたいわゆる安全版プログラムは実行
時間が余分にかかる場合が非常に多く、その結果、この
ような安全版プログラムに従って処理を実行させると、
システム全体としての処理時間が遅くなってしまうとい
う問題がある。
In the parallel processing system of this system, in order for the processing of the entire system not to be interrupted, it is a condition that at least one version of the programs of a plurality of versions having the same function does not cause a failure. A so-called safe version program that is safe and hard to cause failures often takes extra execution time. As a result, if you execute processing according to such a safe version program,
There is a problem that the processing time of the entire system becomes slow.

【0012】安全版プログラムの実行時間が余分にかか
る理由は、主に以下のようなものがある。第1にプログ
ラム中の随所に障害発生を防ぐための異常検出処理を追
加しなくてはならないこと、第2に時間がかかる処理の
代表である検索処理において不要な検索を防ぐための処
理を追加することによって処理時間を短縮する手法が各
種考案されているように、一般に高速化するためには余
分な処理が必要になり、その分プログラムバグが発生し
易くなること、などである。
The main reasons for the extra execution time of the safety version program are as follows. First, it is necessary to add abnormality detection processing to prevent the occurrence of failures everywhere in the program. Second, processing is added to prevent unnecessary searches in search processing, which is a representative of time-consuming processing. As described above, various methods for shortening the processing time have been devised. In general, extra processing is required to increase the processing speed, and program bugs are likely to occur correspondingly.

【0013】(3)複数の計算機内で稼働するプログラ
ム全体をN版プログラム方式によって多重化する方式。
(3) A method in which the entire program running in a plurality of computers is multiplexed by the N version program method.

【0014】プログラムの多重化は、本来プログラムを
複製して複数の計算機で実行する方式であるから、プロ
グラムにバグが内在していれば、多重化していても共通
のバグが原因で計算の停止やシステムの一部機能の停止
を引き起こす原因となりシステムに与えられたミッショ
ンを達成することが不可能になる。
Since program multiplexing is a method in which a program is originally duplicated and executed by a plurality of computers, if a bug is inherent in the program, even if they are multiplexed, a common bug causes the calculation to stop. It will cause some functions of the system to stop and it will be impossible to accomplish the mission given to the system.

【0015】このような事態を回避するための一つの方
式として、”N版プログラム方式”がある。この方式は
(2)の方式と類似しているが、特に同一機能を達成す
る複数の版(バージョン)のプログラムを別々の設計者
が異なる手順で互いに隔離された環境下で作成すること
が特徴である。そして、このようにして作成された同一
機能を果たす異なったプログラム群を複数の計算機内で
並列に実行し、それにより得られた複数の出力結果のう
ち過半数が一致したものを正しい出力結果として選択す
る。
As one method for avoiding such a situation, there is an "N version program method". This method is similar to the method of (2), but is characterized in that different designers create programs of different versions (versions) that achieve the same function in an environment where they are isolated from each other by different procedures. Is. Then, the different program groups that have the same function created in this way are executed in parallel on multiple computers, and the output result obtained by matching the majority is selected as the correct output result. To do.

【0016】この”N版プログラム方式”は、複数板の
プログラムモジュール群を相互に隔離された複数の設計
者で作成するため、プログラムモジュール数が多くなる
ほどプログラム作成コストの非常な増大とともに保守管
理のコストの非常な増大を引き起こすことになる。例え
ば、3チームが独立に異なる手順で同一機能プログラム
を開発する場合、従来と同一水準の品質を保証するプロ
グラムを開発するには3倍の開発人員が必要となり、保
守の観点からも3つの版のプログラム保守・管理のコス
ト増大は避けられない。また、3つの版のプログラムを
並列に動作させて結果を判定する場合、最も処理の遅い
プログラムの処理性能でシステム性能が決まってしまう
ことになる。
In this "N version program method", a plurality of designers who are isolated from each other create a group of program modules on a plurality of boards. Therefore, as the number of program modules increases, the cost of program creation greatly increases and maintenance management is performed. This will cause a significant increase in cost. For example, if three teams independently develop the same function program by different procedures, it requires three times as many development personnel to develop a program that guarantees the same level of quality as before, and three versions are also required from the viewpoint of maintenance. The cost of program maintenance and management is inevitable. Further, when the three versions of the program are operated in parallel and the result is determined, the system performance is determined by the processing performance of the slowest processing program.

【0017】[0017]

【発明が解決しようとする課題】上述したように、従来
の多重処理システムはハードウェア障害に対しては対処
できるが、プログラムのバグに対する有効性は十分でな
かった。
As described above, the conventional multiprocessing system can deal with a hardware failure, but is not sufficiently effective against a program bug.

【0018】本発明の目的は、ハードウェア障害はもと
より、プログラムのバグで計算機に障害が発生した場合
でも、全計算機がダウンするのを避けてシステム全体の
処理を続行できる多重処理システムおよびプログラム実
行制御方法を提供することにある。
It is an object of the present invention to provide a multi-processing system and a program execution system capable of continuing the processing of the entire system by avoiding all the computers from going down even if the computer fails due to a bug in the program as well as the hardware failure. It is to provide a control method.

【0019】[0019]

【課題を解決するための手段】上記目的を達成するため
に、第1の発明に係る多重処理システムは、先行系と追
従系とに分けられた複数の計算機と、前記先行系の計算
機で特定のアプリケーションプロセス群を実行開始させ
るとともに前記先行系の計算機の実行開始時点より所定
の条件を満たす期間だけ遅れた時点から前記追従系の計
算機で前記特定のアプリケーションプロセス群を実行開
始させる手段と、前記先行系の計算機がダウンしたとき
には、ダウンしたときに前記先行系の計算機で実行して
いたアプリケーションプロセスを前記追従系の計算機の
アプリケーションプロセス群の中から取り除いて前記追
従系の計算機を先行系として動作させる手段とを備える
ことを特徴とする。
In order to achieve the above object, a multiprocessing system according to a first aspect of the present invention specifies a plurality of computers divided into an antecedent system and a follower system, and a computer of the antecedent system. Means for starting the execution of the application process group and starting the execution of the specific application process group in the tracking system computer from a time point delayed by a period satisfying a predetermined condition from the execution start time point of the preceding system computer; When the preceding system computer is down, the application process that was being executed by the preceding system computer when it is down is removed from the application process group of the following system computer, and the following system computer operates as the preceding system. And a means for causing it.

【0020】また、このような基本構成において先行系
の計算機がダウンしたとき、ダウンした前記先行系の計
算機で実行していたアプリケーションプロセスを追従系
の計算機のアプリケーションプロセス群の中から取り除
くとともに追従系を構成している計算機を新先行系と新
追従系とに再構成し、新先行系の計算機側から残りのア
プリケーションプロセスを実行開始させる手段を設ける
ことを特徴とする。
Further, in such a basic configuration, when the computer of the preceding system goes down, the application process executed by the computer of the preceding system that has gone down is removed from the application process group of the computer of the following system and the following system is removed. It is characterized in that means for reconfiguring the computer configuring the above into a new preceding system and a new following system and for starting execution of the remaining application processes from the computer side of the new preceding system.

【0021】第2の発明に係る多重処理システムは、同
一の機能を有する複数の版のアプリケーションプロセス
用プログラムを保持する先行系と追従系とに分けられた
複数の計算機と、前記先行系の計算機で特定のアプリケ
ーションプロセス群をそれぞれ特定の版のプログラムに
従って実行開始させるとともに、前記先行系の計算機の
実行開始点より所定の条件を満たす期間だけ遅れた時点
から前記追従系の計算機で前記特定のアプリケーション
プロセス群をそれぞれ前記特定の版のアプリケーション
プロセス用プログラムに従って実行開始させる手段と、
前記先行系の計算機がダウンしたときには、ダウンした
ときに前記先行系の計算機で実行していたアプリケーシ
ョンプロセスを前記特定の版とは異なる版のプログラム
に従って前記追従系の計算機で実行させる手段とを備え
たことを基本的な特徴とする。
A multiprocessing system according to a second aspect of the present invention is a plurality of computers divided into an antecedent system and a follower system which hold a plurality of versions of application process programs having the same function, and the antecedent computer. Then, the specific application process group is started to execute according to the program of the specific version, and the specific application is executed by the computer of the follow-up system from the time when the execution start point of the preceding computer is delayed by a period satisfying a predetermined condition. Means for starting execution of each process group according to the program for the specific version of the application process,
When the preceding system computer is down, a means for causing the following system computer to execute the application process that was being executed by the preceding system computer when the computer is down according to a program of a version different from the specific version. The basic feature is that.

【0022】また、このような基本構成において、先行
系の計算機がダウンしたときには、ダウンしたときに前
記先行系の計算機で実行していたアプリケーションプロ
セスを前記特定の版とは異なる版のプログラムに従って
前記追従系の計算機で実行させるとともに前記追従系を
構成している計算機を新先行系と新追従系とに再構成
し、前記新先行系の計算機側から残りのアプリケーショ
ンプロセスを実行開始させることを特徴とする。
Further, in such a basic configuration, when the computer of the preceding system goes down, the application process executed by the computer of the preceding system when the computer goes down is executed according to a program of a version different from the specific version. It is characterized in that it is executed by a computer of the follow-up system and that the computer forming the follow-up system is reconfigured into a new preceding system and a new following system, and the remaining application processes are started to be executed from the computer side of the new preceding system. And

【0023】第3の発明に係るプログラム実行制御方法
は、第1のプログラムとこれら第1のプログラムの実行
を制御するオペレーティングシステムを搭載した少なく
とも一つの計算機におけるプログラムの実行を制御する
プログラム実行制御方法において、前記第1のプログラ
ムを少なくとも該プログラムのプログラム名と該プログ
ラムより低能力でかつバグの潜在確率がより低い第2の
プログラムのプログラム名リスト情報を伴って起動また
は呼出し、前記第1のプログラムが停止したときは前記
プログラム名リスト情報に従って前記第2のプログラム
を起動または呼出すことを特徴とする。
A program execution control method according to a third aspect of the present invention is a program execution control method for controlling execution of a program in at least one computer equipped with a first program and an operating system for controlling execution of these first programs. In the above, the first program is activated or called with at least the program name of the program and the program name list information of the second program having lower capability and lower potential probability of bug than the first program. Is stopped, the second program is started or called according to the program name list information.

【0024】また、このような基本構成において、第1
のプログラムとこれら第1のプログラムの実行を制御す
るオペレーティングシステムをそれぞれ搭載した複数の
計算機から構成される計算機システムにおけるプログラ
ムの実行を制御する場合は、前記複数の計算機のうちの
一つの計算機に搭載された第1のプログラムを少なくと
も該第1のプログラムのプログラム名と該第1のプログ
ラムより低能力でかつバグの潜在確率がより低い第2の
プログラムのプログラム名リスト情報を伴って起動また
は呼出すとともに、該第1のプログラムのプログラム名
が前記一つの計算機内のオペレーティングシステムによ
り該計算機内に登録されていないと確認されたときは、
該オペレーティングシステムが他の計算機に対して該第
1のプログラムが存在するか問い合わせ、前記他の計算
機に該第1のプログラムが存在しているときは、該他の
計算機内のオペレーティングシステムに対して該第1の
プログラムの起動ないし呼出し制御を依頼し、前記他の
計算機内にも該第1のプログラムが存在しないときは、
前記プログラム名リスト情報に従って前記第2のプログ
ラムを起動または呼出すことを特徴とする。
Further, in such a basic structure, the first
When controlling the execution of a program in a computer system including a plurality of computers each having an operating system for controlling the execution of the first program and the operating system for controlling the execution of the first program, the computer is installed in one of the plurality of computers. The activated first program with at least the program name of the first program and the program name list information of the second program having lower capability and lower probability of bug than the first program. When it is confirmed that the program name of the first program is not registered in the computer by the operating system in the one computer,
The operating system inquires of another computer whether the first program exists, and when the first program exists in the other computer, the operating system in the other computer is inquired. When the start or call control of the first program is requested and the first program does not exist in the other computer,
The second program is activated or called according to the program name list information.

【0025】さらに、前記複数の計算機のうちの一つの
計算機に搭載された第1のプログラムを、少なくとも該
第1のプログラムのプログラム名と該第1のプログラム
より低能力でかつバグの潜在確率がより低い第2のプロ
グラムのプログラム名リスト情報を伴って起動または呼
出し、前記複数の計算機に登録された前記第1のプログ
ラムの中で実行が異常終了した場合に、該第1のプログ
ラムのプログラム名を前記複数の計算機内の全てのオペ
レーティングシステムに登録するとともに、該オペレー
ティングシステムは、前記プログラム名リスト情報に従
って前記第2のプログラムを起動または呼出すことを特
徴とする。
Further, the first program installed in one of the plurality of computers has at least the program name of the first program, a capability lower than that of the first program, and a potential bug probability. When the program is started or called with the program name list information of the lower second program and the execution is abnormally terminated in the first programs registered in the plurality of computers, the program name of the first program Is registered in all operating systems in the plurality of computers, and the operating system activates or calls the second program according to the program name list information.

【0026】また、前記第2のプログラムのプログラム
名リスト情報に実行優先度情報を付加しておき、この実
行優先度情報に従って第2のプログラムを起動または呼
出すようにすることも有効である。
It is also effective to add execution priority information to the program name list information of the second program so that the second program is activated or called according to this execution priority information.

【0027】[0027]

【作用】アプリケーションプロセスのプログラムバグに
よって全ての計算機がダウンするのを防止するには、少
なくとも1台の計算機がそのアプリケーションプロセス
の実行を避ける必要がある。
In order to prevent all the computers from going down due to a program bug in the application process, it is necessary for at least one computer to avoid executing the application process.

【0028】そこで、第1の発明に係る多重処理システ
ムでは、計算機群の一部を先行系、残りを追従系とに分
け、追従系の計算機群では発生したアプリケーションプ
ロセスを保存しておき、先行系の計算機から指定した条
件(例えば実行終了)を満たした旨の通知があるまで実
行を延期することにより、そのアプリケーションプロセ
スが計算機をダウンさせるプログラムバグを含まないこ
とを確認してから実行させる。一方、先行系の計算機が
ダウンしたことを検出した場合には、追従系の計算機側
では保存してあるアプリケーションプロセスからダウン
の原因となったアプリケーションプロセスを取り除き、
追従系の計算機がダウンするのを防ぐ。これにより、ア
プリケーションプロセスのプログラムバグによって全計
算機がダウンするのを防止でき、処理を続行させること
が可能となる。
Therefore, in the multiprocessing system according to the first aspect of the present invention, a part of the computer group is divided into a preceding system and the rest is divided into a follow-up system, and the application process generated in the follow-up computer group is stored in advance. The execution is postponed until there is a notification from the computer of the system that the specified condition (for example, the end of execution) has been met, so that it is confirmed that the application process does not include a program bug that brings down the computer, and then the program is executed. On the other hand, when it is detected that the preceding computer has gone down, the following computer removes the application process that caused the down from the saved application processes.
Prevents the follow-up computer from going down. As a result, it is possible to prevent all computers from going down due to a program bug in the application process, and it is possible to continue processing.

【0029】また、先行系の計算機がダウンした場合
に、追従系を構成している計算機を新先行系と新追従系
とに再構成すると、常に先行系と追従系の両系の計算機
を存在させることができ、次に先行系の計算機がダウン
した場合に対処することが可能となる。
Further, if the computer constituting the follow-up system is reconfigured into the new precedent system and the new follow-up system when the computer of the preceding system goes down, there is always a computer of both the preceding system and the following system. Then, it becomes possible to deal with the case where the preceding computer goes down.

【0030】一方、アプリケーションプロセス群のそれ
ぞれに対し、処理時間は短いが障害を発生するプログラ
ムバグを含む可能性の高い高速版プログラムと、処理時
間は長いが障害を発生するプログラムバグを含む可能性
の少ない安全版プログラムとを用意した場合、高速版プ
ログラムにプログラムバグが含まれないことが明らかな
アプリケーションプロセスは、全ての計算機で高速版の
プログラムに従って実行可能である。しかし、高速版プ
ログラムにプログラムバグが含まれる可能性の大きいア
プリケーションプロセスは、少なくとも1台の計算機で
安全版プログラムに従ってアプリケーションプロセスを
実行し、全計算機がダウンすることを避ける必要があ
る。
On the other hand, for each of the application process groups, there is a possibility that a high-speed version program that has a short processing time but is likely to contain a program bug and a program bug that has a long processing time but produces a problem. If a safe version program with a small number of programs is prepared, an application process in which it is clear that the high speed version program does not include a program bug can be executed on all computers according to the high speed version program. However, an application process that is likely to contain a program bug in the high-speed version program needs to execute the application process on at least one computer in accordance with the safe version program, and avoid all computers from going down.

【0031】そこで、第2の本発明に係る多重処理シス
テムでは、それぞれの計算機がアプリケーションプロセ
ス群に対し同一機能を持つ高速版プログラムと安全版プ
ログラムを持ち、計算機群の一部を先行系、残りを追従
系とに分け、先行系の計算機では発生したアプリケーシ
ョンを高速版のプログラムに従って実行開始し、追従系
の計算機では発生したアプリケーションプロセスを保存
しておき、先行系の計算機から指定した条件(例えば実
行終了)を満たした旨の通知があるまで実行を延期する
ことにより、そのアプリケーションプロセスの高速版の
プログラムが障害を発生するプログラムバグを含まない
ことを確認するまで実行を延期する。そして、先行系の
計算機に障害が発生したことを検出した場合には、追従
系の計算機側に保存してあるアプリケーションプロセス
のうち、障害の原因となったアプリケーションプロセス
を安全版のプログラムに従って実行し、追従系の計算機
がダウンするのを防止する。
Therefore, in the multiprocessing system according to the second aspect of the present invention, each computer has a high-speed version program and a secure version program having the same function for the application process group, and a part of the computer group is the preceding system and the rest. Is divided into the follower system, the application that has occurred on the preceding computer starts executing according to the high-speed version of the program, and the application process that has occurred is saved on the following computer and the conditions specified by the preceding computer (for example, Execution end) The execution is postponed until it is confirmed that the program of the high-speed version of the application process does not contain the program bug that causes the failure, by suspending the execution until it is notified. When it is detected that a failure has occurred in the preceding computer, the application process that caused the failure is executed according to the safe version program among the application processes saved in the following computer. , Prevent the follow-up computer from going down.

【0032】この結果、高速版のプログラムにプログラ
ムバグを含まないアプリケーションプロセスは先行系、
追従系の計算機群とも高速版のプログラムに従って両系
の計算機群とも高速に実行し、高速版のプログラムにプ
ログラムバグを含むアプリケーションプロセスは追従系
の計算機群で安全版のプログラムに従って実行すること
により、追従系の計算機群には障害が発生することを防
ぐ。
As a result, the application process that does not include a program bug in the high-speed version of the program is the preceding system,
By executing the high-speed version of both the follow-up computer group and the high-speed version of the computer group, the high-speed version of the application process that contains a program bug is executed by the follow-up computer group according to the safe version of the program. Prevents failures from occurring in the computer group of the tracking system.

【0033】また、一旦先行系の計算機群に障害が発生
した後、追従系の計算機群を改めて先行系と追従系とに
分類し直すことにより、常に先行系と追従系の両系の計
算機を存在させることができ、次に先行系の計算機がダ
ウンした場合に対処することが可能である。
Further, once a failure has occurred in the preceding system computer group, the following system computer group is re-classified into the preceding system and the following system, so that the computers of both the preceding system and the following system are always processed. It can be made to exist, and it is possible to deal with the case where the preceding computer goes down.

【0034】第3の発明では、システムを制御するプロ
グラム群は“N版プログラム方式”で作成するのではな
く、各システム機能を制御するプログラムが求められる
機能と処理性能に関する条件を満たすように設計・製作
され、通常はそれらプログラム群が計算機内で稼働して
いる。ここで、あるシステム機能を処理するプログラム
にバグが潜在していたために処理途中でプログラム停止
となり、システムの一部ないし全部の機能停止に至る可
能性がある。
In the third invention, the program group for controlling the system is not created by the "N version program method", but the program for controlling each system function is designed so as to satisfy the required function and processing performance.・ Produced, and those programs usually run in the computer. Here, since there is a bug in the program that processes a certain system function, the program may be stopped during the process, and some or all of the functions of the system may be stopped.

【0035】このことを回避するために、第3の発明で
は第1のプログラムを起動する際、該プログラムの機能
を代替する代替プログラムとしての第2のプログラムの
プログラム名リスト情報、さらには該リスト情報に必要
に応じてそれら代替プログラムの実行優先度情報を付加
して起動することにより、第1のプログラムが内在する
バグのために実行を停止していたとしても、このプログ
ラム名リスト情報で示される代替プログラムをOSが起
動することにより、第1のプログラムの機能の処理を継
続する。すなわち、通常は処理性能のよい第1のプログ
ラムで必要な機能処理を実行するが、そのプログラムが
何らかの理由で異常となり、プログラム停止となった場
合には、第1のプログラムよりは性能は劣るがバグが潜
在する確率のより低い代替プログラムである第2のプロ
グラムに処理を代行させて、システム機能の継続を実現
する。
In order to avoid this, in the third invention, when the first program is started, the program name list information of the second program as an alternative program that substitutes the function of the first program, and further, the list. Even if the first program has stopped its execution due to an internal bug, it is indicated by this program name list information by adding the execution priority information of these alternative programs to the information and starting it. When the OS starts the alternative program, the processing of the function of the first program is continued. That is, normally, the required function processing is executed by the first program having good processing performance, but if the program becomes abnormal due to some reason and the program is stopped, the performance is inferior to that of the first program. The second program, which is an alternative program having a lower probability of having a bug, substitutes the processing to realize the continuation of the system function.

【0036】このようにすることにより、複数版のプロ
グラムを作成・管理することなく、プログラム停止にな
る前は最適手順で作成された第1のプログラムを稼働さ
せてシステムに求められるミッションを達成することが
可能となり、また第1のプログラムが停止した場合は計
算機に搭載されているOSがプログラム名リスト情報か
ら代替プログラムである第2のプログラムを起動するこ
とで、第1のプログラムよりは性能は劣るがミッション
を継続して遂行することが可能となる。
By doing so, the first program created by the optimum procedure is operated before the program is stopped to create the mission required for the system without creating and managing the multiple versions of the program. When the first program is stopped, the OS installed in the computer starts the second program, which is an alternative program, from the program name list information, so that the performance is better than that of the first program. Although inferior, the mission can be continued.

【0037】[0037]

【実施例】以下、図面を参照しながら実施例を説明す
る。
Embodiments will be described below with reference to the drawings.

【0038】図1には本発明の一実施例に係る多重処理
システムのブロック構成図が示されている。
FIG. 1 is a block diagram of a multiprocessing system according to an embodiment of the present invention.

【0039】この多重処理システムは、大きく分けて、
計算機1,2,3と、共有メモリ4と、この共有メモリ
4と各計算機1,2,3とを結合するバス5とで構成さ
れている。
This multiprocessing system is roughly divided into
It is composed of computers 1, 2, and 3, a shared memory 4, and a bus 5 connecting the shared memory 4 and the computers 1, 2, and 3.

【0040】各計算機1,2,3は、演算装置11,2
1,31と、実行中プロセスキュー12,22,32お
よび実行遅延プロセスキュー13,23,33を含むロ
ーカルメモリ14,24,34と、タイムスライスを発
生して各演算装置に知らせるタイマ15,25,35と
を備えている。なお、この例の場合、各計算機のタイム
スライスの間隔は同一に設定されている。
Each of the computers 1, 2, and 3 has an arithmetic unit 11 or 2.
1, 31 and local memories 14, 24, 34 including the executing process queues 12, 22, 32 and the execution delaying process queues 13, 23, 33, and timers 15, 25 for generating time slices and informing each arithmetic unit. , 35 and. In the case of this example, the time slice intervals of each computer are set to be the same.

【0041】共有メモリ4は、実行状態テーブル41,
実行終了プロセステーブル42,障害プロセステーブル
43を持ち、これらが全計算機とバス5で結合され、全
計算機からアクセスされる。
The shared memory 4 includes an execution state table 41,
It has an execution end process table 42 and a failure process table 43, which are connected to all the computers by the bus 5 and are accessed by all the computers.

【0042】このように構成された多重処理システムは
図2乃至図4に示す流れ図に従って動作する。
The multiprocessing system configured as described above operates according to the flowcharts shown in FIGS.

【0043】次に、上記のように構成された多重処理シ
ステムの動作を図15(a)に示したタイミングで生
成、実行されるアプリケーションプロセスP1〜P4が
投入された場合について説明する。
Next, the operation of the multiprocessing system configured as described above will be described in the case where the application processes P1 to P4 that are generated and executed at the timing shown in FIG. 15A are input.

【0044】この多重処理システムでは、当初、計算機
1が先行系、計算機2と計算機3が追従系に分類されて
いるものとする。また、各キューやテーブルの初期状態
は全て空で何も登録されておらず、タイムスライス回数
は0から始まるものとする。また、本実施例では指定条
件(バグを含んでいないことを後段に知らせる条件)と
して、アプリケーションプロセスの実行終了を用いてい
る。
In this multiprocessing system, it is assumed that the computer 1 is initially classified as a preceding system and the computers 2 and 3 are classified as a follow-up system. The initial states of the queues and tables are all empty and nothing is registered, and the number of time slices starts from 0. Further, in the present embodiment, the end of execution of the application process is used as the specified condition (a condition for notifying the subsequent stage that no bug is included).

【0045】まず、実行状態テーブル41の内容が図5
(a)に示す状態にあるものとする。この状態で全計算
機1,2,3に対してプロセスP1が投入されたとす
る。
First, the contents of the execution state table 41 are shown in FIG.
It shall be in the state shown in (a). It is assumed that the process P1 is input to all the computers 1, 2 and 3 in this state.

【0046】プロセスP1が投入されると、計算機1で
は図2に示す流れ図に従って、実行状態テーブル41の
内容、すなわち図5(a)に示す内容から自計算機が先
行系であることを確認し(S1)、発生プロセスP1を
実行中プロセスキュー12に入れる(S2)。
When the process P1 is input, the computer 1 confirms from the contents of the execution state table 41, that is, the contents shown in FIG. 5 (a) that the own computer is the preceding system according to the flow chart shown in FIG. S1), the generated process P1 is put in the running process queue 12 (S2).

【0047】これと同時に,計算機2でも図2に示す流
れ図に従って、自計算機が追従系であることを確認し
(S1)、かつ発生プロセスP1が障害プロセステーブ
ル43にないことを確認し(S3)、終了プロセスキュ
ーにもないことを確認し(S4)、発生プロセスP1を
実行遅延プロセスキュー23に入れる(S6)。計算機
3も計算機2と全く同様に、発生プロセスP1を実行遅
延プロセスキュー33に入れる。この結果、各計算機の
キューの内容は図5(b)および(c)のようになる。
なお、他のキューは依然として空のままである。
At the same time, the computer 2 also confirms that its own computer is a follow-up system according to the flow chart shown in FIG. 2 (S1), and confirms that the occurring process P1 is not in the failed process table 43 (S3). It is confirmed that the process is not in the end process queue (S4), and the generated process P1 is put in the execution delay process queue 23 (S6). The computer 3 also puts the generated process P1 in the execution delay process queue 33, just like the computer 2. As a result, the contents of the queue of each computer are as shown in FIGS. 5 (b) and 5 (c).
Note that the other queues are still empty.

【0048】<回数1のタイムスライス開始>ここで、
タイムスライスが起こると、計算機1では図3に示す流
れ図に従って、現在実行中のプロセスがないことを確認
し(S11)、実行状態テーブル41の自計算機1のタ
イムスライス回数を1増して「1」にし(S12)、自
計算機が先行系なので(S13)、実行中プロセスキュ
ー12からプロセスP1を取り出し、これを現在実行中
のプロセスとして実行状態テーブル41に登録してプロ
セスP1を起動する(S21)。
<Start of Time Slice for Number 1> Here,
When the time slice occurs, the computer 1 confirms that there is no currently executing process according to the flowchart shown in FIG. 3 (S11), increments the number of time slices of the own computer 1 in the execution state table 41 by "1". (S12), and since the own computer is the preceding system (S13), the process P1 is taken out from the executing process queue 12, is registered in the execution state table 41 as the currently executing process, and the process P1 is activated (S21). .

【0049】一方,これと同時に計算機2では、計算機
1と同様に図3に示す流れ図に従って、現在実行中のプ
ロセスがないことを確認し(S11)、実行状態テーブ
ル41の自計算機2のタイムスライス回数を1増して
「1」にし(S12)、自計算機が追従系であることを
確認し(S13)、自計算機のタイムスライス回数
「1」より2以上タイムスライス回数の遅れている先行
系の計算機がないことを確認し(この時点で計算機1の
タイムスライス回数は0または1のはずである)(S1
4)、終了プロセステーブル42には何も入っていない
ことを確認し(S19)、実行中プロセスキュー22に
何も入っていないので何もしない(S21)。計算機3
も計算機2と同様である。この結果、実行状態テーブル
41および各キューの内容は、図6(a)〜(c)のよ
うになる。
On the other hand, at the same time, like the computer 1, the computer 2 confirms that there is no currently executing process according to the flowchart shown in FIG. 3 (S11), and the time slice of the own computer 2 of the execution state table 41 is confirmed. The number of times is incremented by 1 to "1" (S12), and it is confirmed that the own computer is the follower system (S13). Confirm that there is no computer (at this point, the number of timeslice of computer 1 should be 0 or 1) (S1
4), it is confirmed that nothing is entered in the terminated process table 42 (S19), and nothing is entered in the executing process queue 22, so nothing is done (S21). Calculator 3
Is the same as the computer 2. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0050】この回数1のタイムスライスの間に計算機
1ではプロセスP1がプロセスP2を生成する。する
と、計算機1は図2に示す流れ図に従い、自計算機1が
先行系なので(S1)、図6(d)に示すように発生プ
ロセスP2を実行中プロセスキュー12に入れる(S
2)。
In the computer 1, the process P1 creates the process P2 during the time slice of the number of times 1. Then, according to the flow chart shown in FIG. 2, the computer 1 puts the generated process P2 in the executing process queue 12 as shown in FIG. 6 (d) because its own computer 1 is the preceding system (S1) (S1).
2).

【0051】<回数2のタイムスライス開始>次に,再
度タイムスライスが起こると、計算機1では図3に示す
流れ図に従い、現在実行中のプロセスP1を実行中プロ
セスキュー12に入れ(S11)、実行状態テーブル4
1の自計算機1のタイムスライス回数を1増して「2」
にし(S12)、自計算機が先行系なので(S13)、
実行中プロセスキュー12からプロセスP2を取り出
し,これを現在実行中プロセスとして実行状態テーブル
41に登録して起動する(S21)。
<Start of Time Slice of Number of Times 2> Next, when a time slice occurs again, the computer 1 puts the currently executing process P1 in the executing process queue 12 (S11) according to the flowchart shown in FIG. State table 4
Increment the number of time slices of the local computer 1 by 1 to “2”
(S12), and since the own computer is the leading system (S13),
The process P2 is taken out from the executing process queue 12, registered as the currently executing process in the execution state table 41, and activated (S21).

【0052】これと同時に,計算機2と計算機3におい
ても回数1のタイムスライスのときと同様の手続きが行
われる。この結果、実行状態テーブル41および各キュ
ーの内容は、図7(a)〜(c)のようになる。
At the same time, the same procedure is performed in the computers 2 and 3 as in the time slice of the number of times 1. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0053】この回数2のタイムスライスの間に計算機
1ではプロセスP2がプロセスP3とP4を生成する。
すると、計算機1は図2に示す流れ図に従い、自計算機
が先行系なので(S1)、図7(d)に示すように発生
プロセスP3,P4を実行中プロセスキュー12に入れ
る(S2)。
In the computer 1, the process P2 creates the processes P3 and P4 during the time slice of the number of times 2.
Then, according to the flow chart shown in FIG. 2, the computer 1 puts the generated processes P3 and P4 in the executing process queue 12 (S2) as shown in FIG. 7D because the own computer is the leading system (S1).

【0054】さらに、プロセスP2が終了するので、計
算機1は図4の流れ図に従い、自計算機が先行系なので
(S31)、図7(e)に示すようにプロセスP2を実
行終了プロセステーブル42に入れる(S32)。
Further, since the process P2 is terminated, the computer 1 enters the process P2 into the execution termination process table 42 as shown in FIG. 7 (e) because the computer 1 is the preceding system according to the flow chart of FIG. 4 (S31). (S32).

【0055】<回数3のタイムスライス開始>次に、再
度タイムスライスが起こると、計算機1では図3に示す
流れ図に従って、現在実行中のプロセスがないことを確
認し(S11)、実行状態テーブル41の自計算機1の
タイムスライス回数を1増して「3」にし(S12)、
自計算機が先行系なので(S13)、実行中プロセスキ
ュー12から図7(b) に示されるP1を取り出し、これ
を現在実行中プロセスとして実行状態テーブル41に登
録して起動する(S21)。
<Start of Time Slice of Number of Times 3> Next, when a time slice occurs again, the computer 1 confirms that there is no currently executing process according to the flowchart shown in FIG. 3 (S11), and the execution state table 41 Incrementing the number of times of time slice of own computer 1 to “3” (S12),
Since the own computer is the preceding system (S13), P1 shown in FIG. 7 (b) is taken out from the executing process queue 12 and registered in the execution state table 41 as the currently executing process and activated (S21).

【0056】これと同時に、計算機2と計算機3におい
ても回数1のタイムスライスのときと同様の手続きが行
われる。なお、ステップS19で、実行終了プロセステ
ーブル42に入っているP2が各計算機の実行遅延プロ
セスキー23,33に入っているか確認されるが、P1
しか入っていないので、結局、何も行われない。この結
果、実行状態テーブル41および各キューの内容は、図
8(a)〜(c)のようになる。
At the same time, the same procedure as in the time slice of the number of times 1 is performed in the computers 2 and 3. In step S19, it is confirmed whether P2 stored in the execution end process table 42 is stored in the execution delay process keys 23 and 33 of each computer.
Nothing is done after all, because it only contains. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0057】さらに、この回数3のタイムスライスの間
に計算機1ではプロセスP1が終了する。計算機1は図
4に示す流れ図に従って自計算機が先行系なので(S3
1)、プロセスP1を図8(d)に示すように実行終了
プロセステーブル42に入れる(S32)。
Further, the process P1 is completed in the computer 1 during the time slice of the number of times 3. Since the computer 1 has its own computer in advance according to the flow chart shown in FIG.
1), the process P1 is put in the execution end process table 42 as shown in FIG. 8D (S32).

【0058】<回数4のタイムスライス開始>次に、再
度タイムスライスが起こると、計算機1では図3に示す
流れ図に従って、現在実行中のプロセスがないことを確
認し(S11)、実行状態テーブル41の自計算機1の
タイムスライス回数を1増して「4」にし(S12)、
自計算機が先行系なので(S13)、実行中プロセスキ
ュー12から図8(b)に示されるP3を取り出し、こ
れを現在実行中プロセスとして実行状態テーブル41に
登録して起動する(S21)。
<Start of Time Slice of Number of Times 4> Next, when a time slice occurs again, the computer 1 confirms that there is no currently executing process according to the flowchart shown in FIG. 3 (S11), and the execution state table 41 Incrementing the number of times of time slice of own computer 1 to “4” (S12),
Since the own computer is the preceding system (S13), P3 shown in FIG. 8B is taken out from the executing process queue 12, is registered as the currently executing process in the execution state table 41, and is activated (S21).

【0059】これと同時に、計算機2では図3の流れ図
に従って、現在実行中のプロセスがないことを確認し
(S11)、実行状態テーブル41の自計算機2のタイ
ムスライス回数を1増して「4」にし(S12)、自計
算機が追従系で(S13)、自計算機のタイムスライス
回数「4」より2以上タイムスライス回数の遅れている
先行系の計算機がないことを確認し(この時点で計算機
1のタイムスライス回数は3または4のはずである)
(S14)、図8(d)に示されるように実行終了プロ
セステーブル42に入っているプロセスP1が図8
(c)に示されるように自計算機の実行遅延プロセスキ
ュー23に入っているので(S19)、これを実行中プ
ロセスキュー22に移し(S20)、さらに実行中プロ
セスキュー22にはP1しか入っていないので,これを
取り出して現在実行中プロセスとして実行状態テーブル
41に登録して起動する(S21)。
At the same time, the computer 2 confirms that there is no process currently being executed according to the flowchart of FIG. 3 (S11), and the number of time slices of the own computer 2 in the execution state table 41 is increased by 1 to "4". Then (S12), it is confirmed that the own computer is a follow-up system (S13), and that there is no preceding computer that is delayed by more than 2 timeslice than the timeslice number "4" of its own computer. Should have 3 or 4 time slices)
(S14), the process P1 stored in the execution end process table 42 as shown in FIG.
As shown in (c), since it is in the execution delay process queue 23 of the own computer (S19), it is moved to the executing process queue 22 (S20), and the executing process queue 22 contains only P1. Since it is not present, it is taken out and registered as the currently executing process in the execution status table 41 and activated (S21).

【0060】計算機3も計算機2と同様である。この結
果、実行状態テーブル41および各キューの内容は、図
9(a)〜(d)のようになる。
The computer 3 is also similar to the computer 2. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0061】この回数4のタイムスライスの間にプロセ
スP3のバグにより計算機1に障害が発生し、計算機1
がダウンしたとする。従って、以降、計算機1での処理
は中断する。
During the time slice of 4 times, a failure occurs in the computer 1 due to a bug of the process P3,
Is down. Therefore, thereafter, the processing in the computer 1 is interrupted.

【0062】一方、計算機2で実行中のプロセスP1が
プロセスP2を発生し、計算機2は図2に示す流れ図に
従って、自計算機が追従系であり(S1)、発生プロセ
スP2が障害プロセステーブル43にない(依然空であ
る)ことを確認し(S3)、実行終了プロセステーブル
42に図8(d)に示すようにP2があることを確認し
(S4)、自計算機の実行中プロセスキュー22に図9
(e) に示すように登録する(S5)。計算機3も同様の
動作を行う。
On the other hand, the process P1 being executed by the computer 2 generates the process P2, the computer 2 is the follower system according to the flow chart shown in FIG. 2 (S1), and the occurring process P2 is stored in the failed process table 43. It is confirmed that it is not present (it is still empty) (S3), it is confirmed that there is P2 in the execution end process table 42 as shown in FIG. 8D (S4), and it is stored in the executing process queue 22 of the own computer. Figure 9
Register as shown in (e) (S5). The computer 3 also performs the same operation.

【0063】<回数5のタイムスライス開始>次に、再
度タイムスライスが起こると、計算機1は既にダウンし
ているので何もしない。
<Time Slice Start of Number of Times 5> Next, when another time slice occurs, the computer 1 is already down and nothing is done.

【0064】計算機2では図3に示す流れ図に従って、
現在実行中のプロセスP1を実行中プロセスキュー22
に入れ(S11)、実行状態テーブル41の自計算機2
のタイムスライス回数を1増して「5」にし(S1
2)、自計算機が追従系で(S13)、自計算機のタイ
ムスライス回数「5」より2以上タイムスライス回数の
遅れている先行系の計算機がないことを確認し(この時
点で計算機1のタイムスライス回数は4である)(S1
4)、実行遅延プロセスキュー23も図9(d)に示す
ように空なので(S19)、図9(e) に示すように実行
中プロセスキュー22に入っているP2を取り出し、こ
れを現在実行中プロセスとして実行状態テーブル41に
登録して起動する(S21)。
In Computer 2, according to the flow chart shown in FIG.
Process queue 22 currently executing process P1
(S11), and the computer 2 in the execution state table 41
Increase the number of time slices by 1 to “5” (S1
2) Confirm that the own computer is a follow-up system (S13), and that there is no preceding computer that is delayed by 2 or more time slices from the time slice number "5" of the own computer (at this point, the time The number of slices is 4) (S1
4) Since the execution delay process queue 23 is also empty as shown in FIG. 9 (d) (S19), P2 in the executing process queue 22 is taken out as shown in FIG. 9 (e) and is currently executed. It is registered in the execution state table 41 as a middle process and activated (S21).

【0065】計算機3も計算機2と同様である。この結
果、実行状態テーブル41および各キューの内容は、図
10(a)(b)に示すようになる(実行遅延プロセス
キューは空になる)。
The computer 3 is the same as the computer 2. As a result, the contents of the execution state table 41 and each queue become as shown in FIGS. 10A and 10B (the execution delay process queue becomes empty).

【0066】この回数5のタイムスライスの間に計算機
2,3で実行中のプロセスP2がプロセスP3,4を生
成する。すると、計算機2は図2に示す流れ図に従っ
て、自計算機が追従系で(S1)、発生プロセスP3,
P4が障害プロセステーブル43にはなく(S3)、実
行終了プロセステーブル42にもないので(S4)、図
10(c)に示すようにP3,P4を自計算機の実行遅
延プロセスキュー23に入れる(S6)。計算機3も同
様である。
During the time slice of the number of times 5, the process P2 running on the computers 2 and 3 creates the processes P3 and 4. Then, according to the flow chart shown in FIG. 2, the computer 2 has its own computer as a follow-up system (S1) and the generation process P3.
Since P4 is not in the failure process table 43 (S3) and is not in the execution end process table 42 (S4), P3 and P4 are put in the execution delay process queue 23 of the own computer as shown in FIG. S6). The computer 3 is also the same.

【0067】<回数6のタイムスライス開始>次に、再
度タイムスライスが起こると、計算機2は図3に示す流
れ図に従って、現在実行中のプロセスP2を実行中プロ
セスキュー22に入れ(S11)、実行状態テーブル4
1の自計算機2のタイムスライス回数を1増して「6」
にし(S12)、自計算機が追従系で(S13)、自計
算機のタイムスライス回数「6」より2以上タイムスラ
イス回数の遅れている先行系の計算機1(この時点で依
然「4」である)があることを確認し(S14)、実行
状態テーブル41において計算機1を「ダウン中」に
し、この計算機1が現在実行中となっているプロセスP
3を図10(c)に示される実行遅延プロセスキュー2
3から削除し、さらに障害プロセステーブル43に追加
する(S15)。
<Start of Time Slice of Number of Times 6> Next, when a time slice occurs again, the computer 2 puts the currently executing process P2 in the executing process queue 22 according to the flowchart shown in FIG. 3 (S11), and executes it. State table 4
Increment the number of time slices of the local computer 2 of 1 by "6"
(S12), the computer itself is a follower system (S13), and the computer 1 of the preceding system which is delayed by 2 or more time slices from the time slice "6" of its own computer (is still "4" at this point). (S14), the computer 1 is set to “down” in the execution status table 41, and the process P currently being executed by the computer 1 is set.
3 is the execution delay process queue 2 shown in FIG.
3 is deleted, and is further added to the failure process table 43 (S15).

【0068】さらに、自計算機2のサイト番号「2」が
追従系の計算機2,3の間で最も小さいので(S1
6)、実行遅延プロセスキュー23内のプロセスP4を
実行中プロセスキュー22に移し(S17)、自計算機
を先行系にして実行状態テーブル41を書き換える(S
18)。
Further, since the site number "2" of the own computer 2 is the smallest between the follower computers 2 and 3 (S1
6) Then, the process P4 in the execution delay process queue 23 is moved to the executing process queue 22 (S17), and the execution state table 41 is rewritten by using the own computer as the preceding system (S).
18).

【0069】引き続き,図8(d)に示されるような実
行終了プロセステーブル43にあるプロセスP1,P2
が実行遅延プロセスキュー23にはないので(S1
9)、実行中プロセスキュー22からP1を取り出し,
これ現在実行中プロセスとして実行状態テーブル41に
登録して起動する(S21)。
Subsequently, the processes P1 and P2 in the execution end process table 43 as shown in FIG.
Is not in the execution delay process queue 23 (S1
9), retrieve P1 from the running process queue 22,
The process is registered in the execution state table 41 as the currently executing process and activated (S21).

【0070】計算機3もステップS16〜ステップS1
8以外は計算機2と同様である。すなわち、計算機3の
サイト番号「3」は追従系の中で最小ではないので、ス
テップS17〜ステップS18は実行されない。これら
の結果、実行状態テーブル41、障害プロセステーブル
43および各キューの内容は、図11(a)〜図11
(f)のようになる。
The computer 3 also has steps S16 to S1.
The computer other than 8 is the same as the computer 2. That is, since the site number "3" of the computer 3 is not the smallest in the tracking system, steps S17 to S18 are not executed. As a result, the contents of the execution state table 41, the failure process table 43, and each queue are as shown in FIGS.
It becomes like (f).

【0071】この回数6のタイムスライスの間に、計算
機2,3で実行中のプロセスP1が終了する。計算機2
は図4に示す流れ図に従い、自計算機2が先行系なので
(S31)、終了プロセスP1を実行終了テーブル42
に追加する(S32)。ただし、既にP1がテーブルに
あるので追加しても変化はない。このとき、計算機3は
追従系なので何もしない。
During the time slice of the number of times 6, the process P1 being executed by the computers 2 and 3 ends. Calculator 2
In accordance with the flow chart shown in FIG. 4, since the own computer 2 is the leading system (S31), the end process P1 is executed in the end table 42.
(S32). However, since P1 is already in the table, there is no change even if it is added. At this time, since the computer 3 is a follow-up system, nothing is done.

【0072】<回数7のタイムスライス開始>次に、再
度タイムスライスが起こると、計算機2は図3に示す流
れ図にしたがて、現在実行中のプロセスP1を実行中プ
ロセスキュー22に入れ(S11)、実行状態テーブル
41の自計算機2のタイムスライス回数を1増して
「7」にし(S12)、自計算機が先行系なので(S1
3)、図11(c)に示されるように実行中プロセスキ
ュー22に入っているP4を取り出し、これを現在実行
中プロセスとして実行状態テーブル41に登録して起動
する(S21)。
<Time Slice Start for 7 Times> Next, when a time slice occurs again, the computer 2 puts the currently executing process P1 in the executing process queue 22 (S11) according to the flowchart shown in FIG. ), The number of time slices of the own computer 2 in the execution state table 41 is incremented by 1 to "7" (S12), and since the own computer is the preceding system (S1
3) As shown in FIG. 11C, P4 in the running process queue 22 is taken out, registered as the currently running process in the running state table 41, and activated (S21).

【0073】これと同時に、計算機3は図3に示す流れ
図に従って、現在実行中のプロセスP1を実行中プロセ
スキュー32に入れ(S11)、実行状態テーブル41
の自計算機3の部分のタイムスライス回数を1増して
「7」にし(S12)、自計算機が追従系で(S1
3)、自計算機のタイムスライス回数「7」より2以上
タイムスライス回数の遅れている先行系の計算機がない
ことを確認し(S14)、実行終了プロセステーブル4
2に図8(d)に示されるように入っているプロセスP
1,P2が図11(e)に示されるように実行遅延プロ
セスキュー33にはなく(S19)、図11(f)に示
されるように実行中プロセスキュー32も空なので何も
しない(S21)。これらの結果、実行状態テーブル4
1および各キューの内容は、図12(a)〜(c)のよ
うになる。
At the same time, the computer 3 puts the currently executing process P1 in the executing process queue 32 (S11) according to the flowchart shown in FIG.
The number of time slices of the self-calculating computer 3 is increased by 1 to "7" (S12), and the self-calculating computer is the follower system (S1
3) It is confirmed that there is no preceding computer having a time slice count that is two or more times behind the time slice count "7" of its own computer (S14), and the execution end process table 4
Process P entered as shown in FIG. 8 (d) in FIG.
11 and P2 are not in the execution delay process queue 33 as shown in FIG. 11 (e) (S19), and the executing process queue 32 is empty as shown in FIG. 11 (f), so that nothing is done (S21). . As a result, the execution status table 4
1 and the contents of each queue are as shown in FIGS.

【0074】この回数7のタイムスライスの間に計算機
2で実行中のプロセスP4が終了する。計算機2は図4
に示す流れ図に従って、自計算機2が先行系なので(S
31)、終了プロセスP4を図12(d)に示すように
実行終了テーブル42に追加する(S32)。
During the time slice of the number of times 7, the process P4 being executed by the computer 2 ends. Calculator 2 is shown in FIG.
According to the flow chart shown in, since the computer 2 is the leading system (S
31), the end process P4 is added to the execution end table 42 as shown in FIG. 12D (S32).

【0075】<回数8のタイムスライス開始>次に、再
度タイムスライスが起こると、計算機2は図3に示され
る流れ図に従い、現在実行中のプロセスがないことを確
認し(S11)、実行状態テーブル41の自計算機2の
タイムスライス回数を1増して「8」にする(S12)
が、自計算機が先行系で(S13)、図12(b)に示
すように実行中プロセスキュー22が空なので何もしな
い(S21)。
<Start of Time Slice of Number of Times 8> Next, when a time slice occurs again, the computer 2 confirms that there is no currently executing process according to the flow chart shown in FIG. 3 (S11), and the execution state table The number of time slices of the local computer 2 of 41 is increased by 1 to "8" (S12).
However, since the own computer is the preceding system (S13) and the running process queue 22 is empty as shown in FIG. 12B, nothing is done (S21).

【0076】これと同時に、計算機3は図3に示される
流れ図に従い、現在実行中のプロセスがないことを確認
し(S11)、実行状態テーブル41の自計算機3のタ
イムスライス回数を1増して「8」にし(S12)、自
計算機が追従系で(S13)、自計算機のタイムスライ
ス回数「8」より2以上タイムスライス回数の遅れてい
る先行系の計算機がないことを確認し(S14)、実行
終了プロセステーブル42に入っている図12(d) に示
されるようなプロセスP4が図12(c)示されるよう
に自計算機2の実行遅延プロセスキュー33に入ってい
るので(S19)、これを実行中プロセスキュー32に
移すが(S21)、実行中プロセスキュー32にはP4
しか入っていなので、P4を取り出し、これを現在実行
中プロセスとして実行状態テーブル41に登録して起動
する(S21)。これらの結果、実行状態テーブル41
および各キューの内容は、図13(a)〜(c)のよう
になる。
At the same time, the computer 3 confirms that there is no currently executing process according to the flow chart shown in FIG. 3 (S11), increments the number of timeslice of the own computer 3 in the execution state table 41 by 1, 8 "(S12), the own computer is a follow-up system (S13), and it is confirmed that there is no preceding computer that is delayed by 2 or more time slices from the own computer's time slice number" 8 "(S14). The process P4 as shown in FIG. 12 (d) in the execution end process table 42 is in the execution delay process queue 33 of the own computer 2 as shown in FIG. 12 (c) (S19). Is moved to the executing process queue 32 (S21), but P4 is added to the executing process queue 32.
Since only P4 is included, P4 is taken out, and this is registered as the currently executing process in the execution state table 41 and activated (S21). As a result, the execution state table 41
And the contents of each queue are as shown in FIGS.

【0077】この回数8のタイムスライスの間に計算機
3で実行中のプロセスP4が終了する。計算機3は追従
系なので、図4のステップS31では何もしない。
During the time slice of the number of times 8, the process P4 being executed by the computer 3 ends. Since the computer 3 is a follow-up system, nothing is done in step S31 of FIG.

【0078】ここまでのタイムスライス毎の各計算機で
実行されたプロセスの一覧を図14に示す。
FIG. 14 shows a list of processes executed by each computer up to the time slice up to this point.

【0079】本実施例に係る多重処理システムでは、以
上の手順で動作するので、従来の並列多重システムでは
実行されなかったプロセスP4を実行させることができ
る。
Since the multiprocessing system according to the present embodiment operates in the above procedure, it is possible to execute the process P4 which was not executed in the conventional parallel multiprocessing system.

【0080】なお、上述した実施例では、追従系のアプ
リケーションプロセスの実行を抑制する手段として、実
行遅延プロセスキュー13,23,33を用いている
が、このようなキューを用いずに、追従系の計算機上で
実行されるアプリケーションプロセス自身が先行系の計
算機からの通知を待つルーチンを実行することによって
も本実施例とまったく同じ処理の流れが得られる。ま
た、上述した実施例では、先行系の計算機がダウンした
とき、追従系の計算機を新先行系と新追従系とに再構成
しているが、再構成することなく、追従系をそのまま先
行系にして処理を続行せることもできる。
Although the execution delay process queues 13, 23 and 33 are used as means for suppressing the execution of the application process of the follow-up system in the above-mentioned embodiment, the follow-up system is not used. Even if the application process itself executed on this computer executes a routine waiting for a notification from the preceding computer, the same process flow as in this embodiment can be obtained. Further, in the above-described embodiment, when the preceding system computer is down, the following system computer is reconfigured into a new preceding system and a new following system. It is also possible to continue processing.

【0081】次に、第2の発明に係る実施例について説
明する。図16は、本発明の他の実施例に係る多重処理
システムのブロック構成図である。図1と相対応する部
分に同一符号を付して相違点を中心に説明する。
Next, an embodiment according to the second invention will be described. FIG. 16 is a block diagram of a multiprocessing system according to another embodiment of the present invention. The portions corresponding to those in FIG. 1 are designated by the same reference numerals, and the description will focus on the differences.

【0082】本実施例においては、各計算機1,2,3
内のローカルメモリ14,24,34内に、実行中プロ
セスキュー12,22,32および実行遅延プロセスキ
ュー13,23,33に加えて、アプリケーションの高
速版プログラムを格納する高速版プログラム格納エリア
15,25,35およびアプリケーションの安全版プロ
グラムを格納する安全版プログラム格納エリア16,2
6,36が設けられている点が図1の実施例と異なる。
In this embodiment, each computer 1, 2, 3
In the local memory 14, 24, 34 inside the high-speed program storage area 15, which stores the high-speed version program of the application, in addition to the executing process queues 12, 22, 32 and the execution delay process queues 13, 23, 33, 25, 35 and a safe version program storage area 16, 2 for storing a safe version program of an application
6 and 36 are provided, which is different from the embodiment shown in FIG.

【0083】次に、上記のように構成された多重処理シ
ステムの動作を図17〜図19に示す流れ図を参照して
説明する。なお、以下の説明では各アプリケーションプ
ロセスP1〜P3の高速版のプログラムにバグが無けれ
ば図20(a)に示したタイミングでP1〜P3が生成
され、実行されるべきところ、実際にはP2の高速版プ
ログラムにバグがある場合の動きについて述べる。ま
た、それぞれのアプリケーションプロセスの安全版プロ
グラムに従った実行は、高速版プログラムに従った実行
よりも2倍の時間を要するものとする。比較のため、全
アプリケーションプロセスを安全版プログラムに従って
実行した場合のタイミングを図20(b)に示す。
Next, the operation of the multiprocessing system configured as described above will be described with reference to the flow charts shown in FIGS. In the following description, if there is no bug in the high-speed program of each application process P1 to P3, P1 to P3 should be generated and executed at the timing shown in FIG. This section describes the behavior when there is a bug in the high-speed version program. Also, it is assumed that the execution of each application process according to the safe version program requires twice as long as the execution time according to the high speed version program. For comparison, FIG. 20B shows the timing when all application processes are executed according to the safety version program.

【0084】この実施例の多重処理システムでは、当
初、計算機1が先行系、計算機2と計算機3が追従系に
分類されているものとする。また、各キューやテーブル
の初期状態は空で何も登録されておらず、タイムスライ
ス回数は0から始まるものとする。高信頼版プログラム
格納エリア15,25,35にはそれぞれP1〜P3の
高速版のプログラムが格納され、安全版プログラム格納
エリア16,26,36にはそれぞれP1〜P3の高速
版と同一機能を有する安全版プログラムが格納されてい
る。また、本実施例では指定条件(障害が発生しなかっ
たことを後段に知らせる条件)として、アプリケーショ
ンプロセスの実行終了を用いている。
In the multiprocessing system of this embodiment, it is assumed that the computer 1 is initially classified as the preceding system and the computers 2 and 3 are classified as the following systems. The initial state of each queue or table is empty and nothing is registered, and the number of time slices starts from 0. The high-reliability version program storage areas 15, 25, and 35 store high-speed versions of programs P1 to P3, respectively, and the safe version program storage areas 16, 26 and 36 have the same functions as the high-speed versions P1 to P3, respectively. Contains a secure version program. Further, in the present embodiment, the termination of the execution of the application process is used as the designated condition (a condition for notifying the subsequent stage that no failure has occurred).

【0085】まず、実行状態テーブル41の内容は図2
1(a)に示す状態にあるものとする。この状態で全計
算機にプロセスP1が投入されたとする。プロセスP1
が投入されると、計算機1では図21(a)に示す実行
状態テーブル41から自計算機が先行系であることを確
認した後、図17に示す流れ図に従って、まず発生プロ
セスが障害プロセステーブルにないことを確認し(S4
1)、発生プロセスP1を該プロセスのプログラムアド
レスを高速版プログラム格納エリア14に格納されてい
るP1の高速版プログラムのアドレスにして、実行中プ
ロセスキュー12に入れる(S42)。
First, the contents of the execution state table 41 are shown in FIG.
It is assumed to be in the state shown in 1 (a). It is assumed that the process P1 is input to all computers in this state. Process P1
21 is input, the computer 1 confirms from the execution state table 41 shown in FIG. 21 (a) that the own computer is the preceding system, and then, according to the flow chart shown in FIG. 17, first, the occurring process is not in the failed process table. Confirm that (S4
1) The generation process P1 is put in the running process queue 12 by using the program address of the process as the address of the high-speed version program of P1 stored in the high-speed version program storage area 14 (S42).

【0086】一方、これと同時に計算機2ではやはり図
17に示す流れ図に従って、自計算機が追従系で、かつ
発生プロセスP1が障害プロセステーブル43に無く、
終了プロセスキューにも無いことを確認し(S43)、
発生プロセスP1を実行遅延プロセスキュー23に入れ
る(S45)。また、計算機3も計算機2と全く同様に
して、プロセスP1を実行遅延プロセスキュー33に入
れる。この結果、各計算機1,2,3のキューの内容は
図21(b)(c)のようになる。
On the other hand, at the same time, in the computer 2, according to the flow chart shown in FIG. 17, the own computer is the follow-up system and the generated process P1 is not in the fault process table 43.
Confirm that it is not in the end process queue (S43),
The generation process P1 is put into the execution delay process queue 23 (S45). The computer 3 also puts the process P1 in the execution delay process queue 33 in the same manner as the computer 2. As a result, the contents of the queue of each computer 1, 2 and 3 are as shown in FIGS.

【0087】なお、以下の説明で用いる図21〜図33
では、実行中キューに格納されているアプリケーション
プロセスをそのプログラムアドレスとして高速版プログ
ラムのアドレスになっているプロセスをPn(高)で表
記し、同様に安全版プログラムのアドレスになっている
プロセスをPn(安)で表記する。但しn=1〜3であ
る。他のキューは、以前空のままであるとする。
21 to 33 used in the following description.
Then, a process having the address of the high-speed version program as the program address of the application process stored in the running queue is represented by Pn (high), and a process having the address of the safe version program is similarly represented as Pn. Notated as (cheap). However, n = 1 to 3. Suppose the other queues were previously empty.

【0088】<回数1のタイムスライス開始>ここで、
タイムスライスが起きる。すると計算機1では図18に
示す流れ図に従って、現在実行中のプロセスが無いこと
を確認して何もせず(S51)、実行状態テーブル41
の自計算機1の部分のタイムスライス回数を1増して
「1」にし(S52)、自計算機が先行系であることを
確認し(S53)、実行中プロセスキュー12からプロ
セスP1を取り出してこれを現在実行中のプロセスとし
て実行状態テーブル41に登録してプロセスP1を起動
する(S61)。このP1はプログラムアドレスが高速
版プログラムのものなので、高速版プログラムに従って
実行される。
<Start of Time Slice of Number of Times 1> Here,
Time slice occurs. Then, according to the flowchart shown in FIG. 18, the computer 1 confirms that there is no process currently being executed, and does nothing (S51).
Incrementing the number of time slices of the local computer 1 part by 1 to "1" (S52), confirming that the local computer is the preceding system (S53), extracting the process P1 from the running process queue 12, It is registered in the execution state table 41 as the process currently being executed and the process P1 is activated (S61). Since P1 has the program address of the high-speed version program, it is executed in accordance with the high-speed version program.

【0089】一方、これと同時に計算機2では、計算機
1と同様に図18に示す流れ図に従って、現在実行中の
プロセスが無いのでS51では何もせず、実行状態テー
ブル41の自計算機2の部分のタイムスライス回数を1
増して「1」にし(S52)、自計算機が追従系である
ことを確認し(S53)、自計算機の部分のタイムスラ
イス回数「1」より2以上タイムスライス回数が遅れて
いる先行系の計算機がないことを確認し(計算機1の部
分のタイムスライス回数はこの時点で0または1のはず
である)(S54)、終了プロセスキュー42には何も
入っていないことを確認し(S59)、さらに実行中プ
ロセスキュー22にも何も入っていないので何もしない
(S51)。計算機3も計算機2と同様である。この結
果、実行状態テーブル41および各キューの内容は図2
2(a)〜(c)のようになる。
On the other hand, at the same time, in the computer 2, as in the case of the computer 1, according to the flow chart shown in FIG. 18, since there is no process currently being executed, nothing is done in S51, and the time of the own computer 2 portion of the execution state table 41 is changed. 1 slice
It is further increased to "1" (S52), the own computer is confirmed to be the follower system (S53), and the number of time slices of the own computer is delayed by 2 or more from the time slice number "1". (The number of time slices in the computer 1 portion should be 0 or 1 at this point) (S54), and it is confirmed that there is nothing in the termination process queue 42 (S59). Further, since nothing is entered in the process queue 22 being executed, nothing is done (S51). The computer 3 is also the same as the computer 2. As a result, the contents of the execution state table 41 and each queue are shown in FIG.
2 (a) to (c).

【0090】この回数1のタイムスライスの間に計算機
1ではプロセスP1がプロセスP2を生成する。する
と、計算機1は図17に示す流れ図に従い発生プロセス
P2が依然空のままである障害プロセステーブル43に
ないことを確認し(S41)、さらに自計算機が先行系
であることを確認して(S43)、発生プロセスP2を
該プロセスのプログラムアドレスを高速版プログラム格
納エリア14に格納されているP2の高速版プログラム
のアドレスにして、実行中プロセスキュー12に入れる
(S44)。この様子を図22(d)に示す。
In the computer 1, the process P1 creates the process P2 during the time slice of the number of times 1. Then, the computer 1 confirms that the generated process P2 is not in the faulty process table 43 which is still empty according to the flowchart shown in FIG. 17 (S41), and further confirms that the own computer is the preceding system (S43). ), The generation process P2 is put in the running process queue 12 by using the program address of the process as the address of the high-speed version program of P2 stored in the high-speed version program storage area 14 (S44). This state is shown in FIG.

【0091】<回数2のタイムスライス開始>次に再度
タイムスライスが起きると、計算機1では図18に示す
流れ図に従い、現在実行中のプロセスP1を実行中プロ
セスキュー12に入れ(S51)、実行状態テーブル4
1の自計算機1の部分のタイムスライス回数を1増して
「2」にし(S52)、自計算機が先行系であることを
確認し(S53)、図23(a)中に示す実行中プロセ
スキュー12からP2を取り出して、これを現在実行中
プロセスとして実行状態テーブル41に登録して起動す
る(S61)。このP2はプログラムアドレスが高速版
プログラムのものなので、高速版プログラムに従って実
行される。これと同時に、計算機2と計算機3では、や
はり回数1のタイムスライスの時と同様の手続きが行わ
れる。この結果、実行状態テーブル41および各キュー
の内容は図23(a)〜(c)のようになる。
<Start of Time Slice of Number of Times 2> Next, when time slice occurs again, the computer 1 puts the currently executing process P1 in the executing process queue 12 (S51) according to the flowchart shown in FIG. Table 4
The number of time slices of the local computer 1 part of 1 is incremented by 1 to "2" (S52), it is confirmed that the local computer is the preceding system (S53), and the running process queue shown in FIG. The P2 is taken out from 12, and this is registered as the currently executing process in the execution state table 41 and activated (S61). Since this P2 has a program address of the high-speed version program, it is executed in accordance with the high-speed version program. At the same time, the computer 2 and the computer 3 also perform the same procedure as in the time slice of the number of times 1. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0092】この回数2のタイムスライスの間に計算機
1では高速版プログラムに従ったプロセスP2がプログ
ラムのバグで障害を発生し、計算機1がダウンする。
During the time slice of the number of times 2, in the computer 1, the process P2 according to the high-speed version program fails due to a program bug, and the computer 1 goes down.

【0093】<回数3のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機1は既にダウンし
ているので何もせず、計算機2では図18に示す流れ図
に従って、現在実行中のプロセスは無いのでS51では
何もせず、実行状態テーブル41の自計算機2の部分の
タイムスライス回数を1増して「3」にし(S52)、
自計算機が追従系で(S53)、自計算機の部分のタイ
ムスライス回数「3」より2以上タイムスライス回数が
遅れている先行系の計算機は無く(計算機1のタイムス
ライス回数は、この時点で2である)(S5)、実行遅
延プロセスキュー23が空で(S5)、さらに実行中プ
ロセスキューにも何も入っていないので、S61でも何
もしない。この結果、実行状態テーブル41および各キ
ューの内容は、図24(a)〜(c)のようになる。
<Time Slice Start of Number 3> Next, when a time slice occurs again, since the computer 1 is already down, nothing is done, and in the computer 2, according to the flow chart shown in FIG. Since it does not exist, nothing is done in S51, and the number of time slices of the computer 2 portion of the execution state table 41 is increased by 1 to "3" (S52),
The self-computer is a follow-up system (S53), and there is no preceding system computer whose time slice number is 2 or more times behind the time slice number "3" of the self-computer portion (the time slice number of the computer 1 is 2 at this point). (S5), the execution delay process queue 23 is empty (S5), and there is nothing in the executing process queue, so nothing is done in S61. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0094】<回数4のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機2は図18に示す
流れ図に従って、現在実行中のプロセスが無いのでS5
1は何もせず、実行状態テーブル41の自計算機2の部
分のタイムスライス回数を1増して「4」にし(S5
2)、自計算機が追従系で(S53)、自計算機のタイ
ムスライス回数「4」より2以上タイムスライス回数が
遅れている先行系の計算機1(この時点で依然「2」で
ある)があるので(S54)、実行状態テーブル41に
於いて該計算機1を「ダウン中」にし、該計算機1が現
在実行中となっているプロセスP2を、障害プロセステ
ーブルに加える。なお、図24(c)に示す実行遅延プ
ロセスキュー23にはP2は無いので、実行遅延キュー
から実行中キューへ移す処理は無い)(S55)。
<Start of Time Slice of Number of Times 4> Next, when another time slice occurs, the computer 2 follows the flowchart shown in FIG.
1 does nothing, and increments the number of times sliced in the portion of the own computer 2 in the execution state table 41 to "4" (S5
2) There is an antecedent computer 1 (which is still "2" at this point) in which the own computer is a follow-up system (S53) and the number of time slices is "2" or more behind the number of time slices "4" of the own computer. Therefore (S54), the computer 1 is set to "down" in the execution state table 41, and the process P2 currently being executed by the computer 1 is added to the failed process table. Since there is no P2 in the execution delay process queue 23 shown in FIG. 24 (c), there is no processing to move from the execution delay queue to the execution queue) (S55).

【0095】さらに、自計算機2のサイト番号「2」は
追従系計算機2,3の間で最も小さいので(S56)、
図24(c)に示す実行遅延プロセスキュー23のプロ
セスP1を取り出し、該プロセスのプログラムアドレス
を高速版プログラム格納エリア26に格納されているP
1の高速版プログラムのアドレスにして、実行中プロセ
スキュー22に入れ(S57)、自計算機を先行系にし
て実行状態テーブル41を書き換える(S58)。そし
て、実行終了プロセステーブル42は依然空なので(S
59)、実行中プロセスキュー22からP1を取り出し
て実行状態テーブル41に登録し、起動する(S6
1)。このP1はプログラムアドレスが高速版プログラ
ムのものなので、高速版プログラムに従って実行され
る。
Further, the site number "2" of the own computer 2 is the smallest among the follower computers 2 and 3 (S56),
The process P1 of the execution delay process queue 23 shown in FIG. 24C is taken out, and the program address of the process is stored in the high-speed version program storage area 26.
The address of the high-speed version program of No. 1 is set in the running process queue 22 (S57), and the execution state table 41 is rewritten by using the own computer as the preceding system (S58). The execution end process table 42 is still empty (S
59), P1 is taken out from the executing process queue 22, registered in the execution state table 41, and activated (S6).
1). Since P1 has the program address of the high-speed version program, it is executed in accordance with the high-speed version program.

【0096】一方、計算機3では、図18に示す流れ図
に従って、S55までは計算機2と全く同じに動作する
が、自計算機3のサイト番号「3」は追従系計算機2,
3の間で最小ではなく(S56)、実行終了プロセステ
ーブル42は依然空で(S59)、さらに実行中プロセ
スキュー32も空なので、S61でも何もしない。この
結果、各計算機1,2,3の各キューおよびテーブル
は、図25(a)〜(e)のようになる。
On the other hand, according to the flow chart shown in FIG. 18, the computer 3 operates exactly the same as the computer 2 up to S55, but the site number "3" of its own computer 3 is the follower computer 2,
It is not the minimum during 3 (S56), the execution end process table 42 is still empty (S59), and the executing process queue 32 is empty, so nothing is done in S61. As a result, the queues and tables of the computers 1, 2 and 3 are as shown in FIGS.

【0097】この回数4のタイムスライスの間に、計算
機2ではプロセスP1がプロセスP2を生成する。する
と、計算機2は図17に示す流れ図に従って、発生プロ
セスP2が図25図(e)に示す障害プロセステーブル
に存在するので、該プロセスのプログラムアドレスを安
全版プログラム格納エリア25に格納されているP2の
安全版プログラムのアドレスにして、実行中プロセスキ
ュー22に入れる(S42)。この結果、計算機2の実
行中プロセスキューは図25(f)のようになる。
In the computer 2, the process P1 creates the process P2 during the time slice of the number of times 4. Then, the computer 2 follows the flow chart shown in FIG. 17, and the generated process P2 exists in the failed process table shown in FIG. 25 (e). Therefore, the program address of the process P2 is stored in the safe program storage area 25. The address of the safe version program is put in the running process queue 22 (S42). As a result, the running process queue of the computer 2 is as shown in FIG.

【0098】<回数5のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機2は図18に示す
流れ図に従って、現在実行中のプロセスP1を実行中プ
ロセスキューに入れ(S51)、実行状態テーブル41
の自計算機2のタイムスライス回数を1増して「5」に
し(S52)、自計算機が先行系なので(S53)、図
26中の実行中プロセスキュー22からP2を取り出し
て、これを現在実行中プロセスとして実行状態テーブル
41に登録して起動する(S61)。このP2はプログ
ラムアドレスが安全版プログラムのものなので、安全版
プログラムに従って実行される。
<Time Slice Start for Number 5> Next, when a time slice occurs again, the computer 2 puts the currently executing process P1 in the executing process queue (S51) according to the flowchart shown in FIG. Table 41
26, the number of time slices of the own computer 2 is incremented by 1 to "5" (S52), and since the own computer is the preceding system (S53), P2 is taken out from the executing process queue 22 in FIG. 26 and is currently being executed. The process is registered in the execution state table 41 and activated as a process (S61). Since the program address of this P2 is that of the safe version program, it is executed in accordance with the safe version program.

【0099】これと同時に、計算機3は図18に示す流
れ図に従って、現在実行中のプロセスは無いのでS51
では何もせず、実行状態テーブル41の自計算機3の部
分のタイムスライス回数を1増して「5」にし(S5
2)、自計算機が追従系で(S53)、自計算機のタイ
ムスライス回数「5」より2以上タイムスライス回数が
遅れている先行系の計算機は無く(S54)、終了プロ
セスプロセスキュー42が空で(S59)、さらに実行
中プロセスキューにも何も入っていないのでS61でも
何もしない。この結果、実行状態テーブル41および各
キューの内容は、図26(a)〜(f)のようになる。
At the same time, the computer 3 follows the flow chart shown in FIG. 18, and there is no process currently being executed.
Then, nothing is done and the number of times sliced in the computer 3 portion of the execution state table 41 is incremented by 1 to "5" (S5
2) There is no preceding computer in which the own computer is a follow-up system (S53), and the number of time slices is 2 or more times behind the time slice number "5" of the own computer (S54), and the end process process queue 42 is empty. (S59) Further, since nothing is entered in the process queue being executed, nothing is done also in S61. As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0100】この回数5のタイムスライスの間に、計算
機2ではプロセスP2がプロセスP3を生成する。する
と、計算機2は図17に示す流れ図に従って、発生プロ
セスP3が障害プロセステーブル43に無く(S4
1)、自計算機が先行系なので(S43)、発生プロセ
スP3を該プロセスのプログラムアドレスを高速版プロ
グラム格納エリア24に格納されているP3の高速版プ
ログラムのアドレスにして、実行中プロセスキュー22
に入れる(S44)。この様子を図26図(f)に示
す。
During the time slice of the number of times 5, the process P2 of the computer 2 creates the process P3. Then, the computer 2 has no occurrence process P3 in the failure process table 43 according to the flowchart shown in FIG. 17 (S4).
1) Since the own computer is the preceding system (S43), the program address of the generated process P3 is set as the address of the high-speed version program of P3 stored in the high-speed version program storage area 24, and the running process queue 22
(S44). This state is shown in FIG.

【0101】<回数6のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機2は図18に示す
流れ図に従って、現在実行中のプロセスP2を実行中プ
ロセスキューに入れ(S51)、実行状態テーブル41
の自計算機2の部分のタイムスライス回数を1増して
「6」にし(S52)、自計算機が先行系なので(S5
3)、図27(d)に示す実行中プロセスキュー22か
らP1を取り出してこれを現在実行中プロセスとして実
行状態テーブル41に登録して起動する(S61)。こ
のP1はプログラムアドレスが高速版プログラムのもの
なので高速版プログラムに従って実行される。計算機3
の動作は、タイムスライス回数5の時と全く同じ動作で
ある。
<Time Slice Start of Number 6> Next, when a time slice occurs again, the computer 2 puts the currently executing process P2 in the executing process queue (S51) according to the flowchart shown in FIG. Table 41
In this case, the number of times sliced by the self-calculating computer 2 is increased by 1 to "6" (S52), and since the self-calculating computer is the preceding system (S5
3), P1 is taken out from the executing process queue 22 shown in FIG. 27D, registered as P1 in the execution state table 41 as the currently executing process, and activated (S61). This P1 is executed according to the high-speed version program because the program address is that of the high-speed version program. Calculator 3
Is exactly the same as when the number of time slices is 5.

【0102】この結果、実行状態テーブル41および各
キューの内容は、図27(a)〜(d)のようになる。
As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0103】この回数6のタイムスライスの間に、計算
機2で実行中のプロセスP1は終了するので、計算機2
は図19に示す流れ図に従い、自計算機2が先行系であ
ることを確認し(S71)、終了プロセスP1を実行終
了テーブル42に追加する(S72)。この様子を図2
7(e)に示す。
During the time slice of the number of times 6, the process P1 being executed on the computer 2 ends, so that the computer 2
Confirms that the own computer 2 is the preceding system according to the flowchart shown in FIG. 19 (S71), and adds the end process P1 to the execution end table 42 (S72). Figure 2
7 (e).

【0104】<回数7のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機2は図18に示す
流れ図に従って、現在実行中のプロセスが無い(P1は
タイムスライスの途中で終了している)のでS51では
何もせず、実行状態テーブル41の自計算機2の部分の
タイムスライス回数を1増して「7」にし(S52)、
自計算機が先行系なので(S53)、図27(b)に示
す実行中プロセスキュー22からプロセスP3を取り出
して、これを現在実行中プロセスとして実行状態テーブ
ル41に登録して起動する(S61)。このP3はプロ
グラムアドレスが高速版プログラムのものなので、高速
版プログラムに従って実行される。
<Time Slice Start of Number 7> Next, when a time slice occurs again, the computer 2 has no process currently executing according to the flow chart shown in FIG. 18 (P1 ends in the middle of the time slice). Therefore, nothing is done in S51, and the number of time slices of the computer 2 portion of the execution state table 41 is increased by 1 to "7" (S52),
Since the own computer is the preceding system (S53), the process P3 is taken out from the executing process queue 22 shown in FIG. 27 (b), registered as the currently executing process in the execution state table 41, and activated (S61). Since this P3 has a program address of the high-speed version program, it is executed in accordance with the high-speed version program.

【0105】一方、計算機3は図18に示す流れ図に従
って、現在実行中のプロセスが無いのでS51では何も
せず、実行状態テーブル41の自計算機3の部分のタイ
ムスライス回数を1増して「7」にし(S52)、自計
算機が追従系で(S53)、自計算機のタイムスライス
回数「7」より2以上タイムスライス回数が遅れている
先行系の計算機は無いが(S54)、図27(e)に示
す終了プロセスプロセスキュー42にあるプロセスP1
が図27図(d)に示す実行遅延プロセスキュー33に
あるので(S59)、該プロセスのプログラムアドレス
を高速版プログラム格納エリア34に格納されているP
1の高速版プログラムのアドレスにして、実行中プロセ
スキュー32に入れる(S60)。さらに、実行中プロ
セスキュー32から今入れたプロセスP1を取り出し
て、これを現在実行中のプロセスとして実行状態テーブ
ル41に登録してプロセスP1を起動する(S61)。
このP1はプログラムアドレスが高速版プログラムのも
のなので、高速版プログラムに従って実行される。
On the other hand, in accordance with the flow chart shown in FIG. 18, the computer 3 does not perform any process in S51, and does nothing in S51, and increments the number of time slices of the own computer 3 portion of the execution state table 41 by "7". (S52), the self-computer is a follow-up system (S53), and there is no preceding system computer in which the number of time slices is delayed by 2 or more from the time slice number "7" of the own computer (S54), but FIG. 27 (e). Process P1 in the end process process queue 42 shown in
27 in the execution delay process queue 33 shown in FIG. 27D (S59), the program address of the process is stored in the high-speed version program storage area 34.
The address of the high-speed version program of No. 1 is set in the running process queue 32 (S60). Further, the process P1 that has just been put in is taken out from the running process queue 32, this is registered in the execution status table 41 as a process that is currently being executed, and the process P1 is activated (S61).
Since P1 has the program address of the high-speed version program, it is executed in accordance with the high-speed version program.

【0106】この結果、実行状態テーブル41および各
キューの内容は、図28(a)〜(d)のようになる。
As a result, the contents of the execution state table 41 and each queue are as shown in FIGS. 28 (a) to 28 (d).

【0107】この回数7のタイムスライスの間に計算機
2で実行中のプロセスP3は終了するので、計算機2は
図19に示す流れ図に従い、自計算機2が先行系なので
(S71)、終了プロセスP3を実行終了テーブル42
に追加する(S72)。この様子を図28(e)に示
す。
Since the process P3 being executed by the computer 2 is terminated during the time slice of the number of times 7, the computer 2 follows the flow chart shown in FIG. 19 and, since the computer 2 is the preceding system (S71), terminates the process P3. Execution end table 42
(S72). This state is shown in FIG.

【0108】一方、この回数7のタイムスライスの間
に、計算機3ではプロセスP1がプロセスP2を生成す
る。すると、計算機3は図18に示す流れ図に従い発生
プロセスP2が図26(e)に示す障害プロセステーブ
ルに存在するので(S41)、該プロセスのプログラム
アドレスを安全版プログラム格納エリア35に格納され
ているP2の安全版プログラムのアドレスにして、実行
中プロセスキュー32に入れる(S42)。この結果、
計算機3の実行中プロセスキューは図28(f)のよう
になる。
On the other hand, in the computer 3, the process P1 creates the process P2 during the time slice of the number of times 7. Then, the computer 3 stores the program address of the process P2 in the safe program storage area 35 because the occurring process P2 exists in the failed process table shown in FIG. 26 (e) according to the flowchart shown in FIG. 18 (S41). The address of the safety version program of P2 is set to the running process queue 32 (S42). As a result,
The running process queue of the computer 3 is as shown in FIG.

【0109】<回数8のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機2は図18に示す
流れ図に従って、現在実行中のプロセスが無い(P3は
タイムスライスの途中で終了している)のでS51では
何もせず、実行状態テーブル41の自計算機2の部分の
タイムスライス回数を1増して「8」にし(S52)、
自計算機が先行系なので(S53)、実行中プロセスキ
ュー22(図36)からプロセスP2を取り出してこれ
を現在実行中プロセスとして実行状態テーブル41に登
録して起動する(S61)。このP2はプログラムアド
レスが安全版プログラムのものなので安全版プログラム
に従って実行される。
<Start of Time Slice of Number of Times 8> Next, when a time slice occurs again, the computer 2 has no process currently executing according to the flowchart shown in FIG. 18 (P3 ends in the middle of the time slice). ), Nothing is done in S51, and the time slice count of the portion of the own computer 2 in the execution state table 41 is increased by 1 to "8" (S52),
Since the own computer is the preceding system (S53), the process P2 is taken out from the executing process queue 22 (FIG. 36), registered in the execution state table 41 as the currently executing process, and activated (S61). This P2 is executed according to the safe version program because the program address is that of the safe version program.

【0110】一方、計算機3は図18に示す流れ図に従
って、現在実行中のプロセスP1を実行中キュー32に
入れ(S51)、実行状態テーブル41の自計算機3の
部分のタイムスライス回数を1増して「8」にし(S5
2)、自計算機が追従系で(S53)、自計算機のタイ
ムスライス回数「8」より2以上タイムスライス回数が
遅れている先行系の計算機は無く(S54)、図27図
(e)に示す実行終了プロセスプロセスキュー42にあ
るプロセスP1,P3は図27(d)に示す実行遅延プ
ロセスキューに無いので(S59)、実行中プロセスキ
ュー32からプロセスP2を取り出して、これを現在実
行中のプロセスとして実行状態テーブル41に登録して
起動する(S61)。このP2はプログラムアドレスが
安全版プログラムのものなので、安全版プログラムに従
って実行される。
On the other hand, the computer 3 places the currently executing process P1 in the in-progress queue 32 (S51) according to the flowchart shown in FIG. 18, and increments the number of timeslices of the portion of the own computer 3 in the execution state table 41 by 1. Set to "8" (S5
2), the own computer is a follow-up system (S53), and there is no preceding system computer in which the number of time slices is delayed by 2 or more from the time slice number "8" of the own computer (S54), as shown in FIG. 27 (e). Since the processes P1 and P3 in the execution end process process queue 42 are not in the execution delay process queue shown in FIG. 27 (d) (S59), the process P2 is taken out from the executing process queue 32 and is currently being executed. Is registered in the execution state table 41 and activated (S61). Since the program address of this P2 is that of the safe version program, it is executed in accordance with the safe version program.

【0111】この結果、実行状態テーブル41および各
キューの内容は、図29(a)〜(d)のようになる。
As a result, the contents of the execution state table 41 and each queue are as shown in FIGS. 29 (a) to 29 (d).

【0112】この回数8のタイムスライスの間に計算機
2で実行中のプロセスP3は終了するので、計算機2は
図19に示す流れ図に従い自計算機2が先行系なので
(ステップ71)、終了プロセスP2を実行終了テーブ
ル42に追加する(ステップ72)。この様子を図29
(e)に示す。
Since the process P3 being executed by the computer 2 ends during the time slice of the number of times 8, the computer 2 follows the flow chart shown in FIG. 19 because its own computer 2 is the preceding system (step 71). It is added to the execution end table 42 (step 72). This state is shown in FIG.
It shows in (e).

【0113】一方、この回数8のタイムスライスの間に
計算機3ではプロセスP2がプロセスP3を生成する。
すると、計算機3は図18に示す流れ図に従い、発生プ
ロセスP3が図26(e)に示す障害プロセステーブル
に存在せず(S41)、発生プロセスP3が実行終了プ
ロセステーブル42にあるので(S43)、該プロセス
のプログラムアドレスを高速版プログラム格納エリア3
6に格納されているP3の高速版プログラムのアドレス
にして、実行中プロセスキュー32に入れる(S4
2)。この結果、計算機3の実行中プロセスキューは図
29(f)に示すようになる。
On the other hand, in the computer 3, the process P2 creates the process P3 during the time slice of 8 times.
Then, the computer 3 follows the flow chart shown in FIG. 18, and the generation process P3 does not exist in the failure process table shown in FIG. 26 (e) (S41), and the generation process P3 exists in the execution end process table 42 (S43). The program address of the process is stored in the high-speed version program storage area 3
The address of the high-speed version program of P3 stored in 6 is put in the running process queue 32 (S4
2). As a result, the running process queue of the computer 3 becomes as shown in FIG.

【0114】<回数9のタイムスライス開始>次に、再
度タイムスライスが起きると、計算機2は図18に示す
流れ図に従って、現在実行中のプロセスが無い(P2は
タイムスライスの途中で終了している)のでS51では
何もせず、実行状態テーブル41の自計算機2の部分の
タイムスライス回数を1増して「9」にし(S52)、
自計算機が先行系で(S53)、図29(b)に示す実
行中プロセスキュー22が空であるのでS61も何もし
ない。これ以降、計算機2は毎回のタイムスライス開始
時に図18に示す流れ図に従ってS52でタイムスライ
ス回数を1づつ増す以外は何もしないので、以降動きの
説明を省略する。
<Time Slice Start of Number 9> Next, when a time slice occurs again, the computer 2 has no process currently executing according to the flowchart shown in FIG. 18 (P2 ends in the middle of the time slice). Therefore, nothing is done in S51, and the number of time slices of the computer 2 portion of the execution state table 41 is increased by 1 to "9" (S52),
Since the own computer is the preceding system (S53) and the running process queue 22 shown in FIG. 29 (b) is empty, S61 does nothing. After that, the computer 2 does nothing except for increasing the number of time slices by 1 in S52 according to the flowchart shown in FIG. 18 at the start of each time slice, and hence the description of the movement is omitted.

【0115】一方、計算機3は図18に示す流れ図に従
って、現在実行中のプロセスP2を実行中キュー32に
入れ(S51)、実行状態テーブル41の自計算機3の
部分のタイムスライス回数を1増して「9」にし(S5
2)、自計算機が追従系で(S53)、自計算機のタイ
ムスライス回数「9」より2以上タイムスライス回数が
遅れている先行系の計算機は無く(S54)、実行遅延
プロセスキュー33も空なので実行中プロセスキュー3
2からプロセスP1を取り出してこれを現在実行中のプ
ロセスとして実行状態テーブル41に登録して起動する
(S61)。このP1はプログラムアドレスが安全版プ
ログラムのものなので、高速版プログラムに従って実行
される。
On the other hand, the computer 3 places the currently executing process P2 in the executing queue 32 (S51) according to the flowchart shown in FIG. 18, and increments the number of time slices of the own computer 3 portion of the execution state table 41 by 1. Set to "9" (S5
2) Since the own computer is a follow-up system (S53), there is no preceding computer whose time slice number is delayed by 2 or more than the time slice number "9" of the own computer (S54), and the execution delay process queue 33 is empty. Running process queue 3
The process P1 is taken out from step 2, is registered in the execution state table 41 as the process currently being executed, and is activated (S61). Since the program address of this P1 is that of the safe version program, it is executed in accordance with the high speed version program.

【0116】この結果、実行状態テーブル41および各
キューの内容は、図30(a)〜(c)のようになる。
As a result, the contents of the execution state table 41 and each queue are as shown in FIGS.

【0117】この回数9のタイムスライスの間に計算機
3で実行中のプロセスP1は終了するが、計算機3は図
19に示す流れ図に従って自計算機3が追従系なので何
もしない(S71)。
Although the process P1 being executed by the computer 3 ends during the time slice of 9 times, the computer 3 does nothing because the computer 3 itself is the follow-up system according to the flowchart shown in FIG. 19 (S71).

【0118】<回数10のタイムスライス開始>次に、
再度タイムスライスが起きると、計算機3は図18に示
す流れ図に従って、現在実行中のプロセスが無いので
(P1は回数9のタイムスライス間に終了している)S
51では何もせず、実行状態テーブル41の自計算機3
の部分のタイムスライス回数を1増して「10」にし
(S52)、自計算機が追従系で(S53)、自計算機
のタイムスライス回数「10」より2以上タイムスライ
ス回数が遅れている先行系の計算機は無く(S54)、
実行遅延プロセスキュー33も空なので、実行中プロセ
スキュー32からプロセスP3を取り出してこれを現在
実行中のプロセスとして実行状態テーブル41に登録し
て起動する(S61)。このP3はプログラムアドレス
が高速版プログラムのものなので、高速版プログラムに
従って実行される。
<Start of Time Slice of Number of Times 10> Next,
When the time slice occurs again, the computer 3 follows the flow chart shown in FIG. 18 because there is no process currently being executed (P1 ends during the time slice of the number 9) S
In 51, nothing is done and the own computer 3 in the execution state table 41
The number of time slices in the section is increased by 1 to "10" (S52), the self-computer is the follow-up system (S53), and the time-slice number is delayed by 2 or more from the self-computer's time slice number "10". There is no calculator (S54),
Since the execution delay process queue 33 is also empty, the process P3 is taken out from the executing process queue 32, registered in the execution state table 41 as the currently executing process, and activated (S61). Since this P3 has a program address of the high-speed version program, it is executed in accordance with the high-speed version program.

【0119】この結果、実行状態テーブル41および各
キューの内容は、図31(a)〜(c)のようになる。
As a result, the contents of the execution state table 41 and each queue are as shown in FIGS. 31 (a) to 31 (c).

【0120】この回数10のタイムスライスの間に、計
算機3で実行中のプロセスP3は終了するが、計算機3
は図19に示す流れ図に従って自計算機3が追従系なの
で何もしない(S71)。
During the time slice of 10 times, the process P3 running on the computer 3 ends, but the computer 3
Does nothing because the computer 3 is following system according to the flowchart shown in FIG. 19 (S71).

【0121】<回数11のタイムスライス開始>次に、
再度タイムスライスが起きると、計算機3は図18に示
す流れ図に従って、現在実行中のプロセスが無いので
(P3は回数10のタイムスライス間に終了している)
S51では何もせず、実行状態テーブル41の自計算機
3の部分のタイムスライス回数を1増して「10」にし
(S52)、自計算機が追従系で(S53)、自計算機
のタイムスライス回数「11」より2以上タイムスライ
ス回数が遅れている先行系の計算機は無く(S54)、
実行遅延プロセスキュー33も空なので実行中プロセス
キュー32からプロセスP2を取り出してこれを現在実
行中のプロセスとして実行状態テーブル41に登録して
起動する(S61)。このP2はプログラムアドレスが
安全版プログラムのものなので、高速版プログラムに従
って実行される。
<Start of Time Slice for Number 11> Next,
When the time slice occurs again, the computer 3 follows the flow chart shown in FIG. 18 and there is no process currently being executed (P3 ends during the time slice of the number of times 10).
In S51, nothing is done, the number of times sliced in the computer 3 portion of the execution state table 41 is increased by 1 to "10" (S52), the computer is a follower system (S53), and the number of times sliced in the computer itself is "11". There is no computer of the preceding system in which the number of time slices is delayed by more than 2 (S54),
Since the execution delay process queue 33 is also empty, the process P2 is taken out from the executing process queue 32, registered as the currently executing process in the execution state table 41, and activated (S61). Since the program address of this P2 is that of the safe version program, it is executed in accordance with the high speed version program.

【0122】この結果、実行状態テーブル41および各
キューの内容は、図32(a)〜(b)のようになる。
As a result, the contents of the execution state table 41 and each queue are as shown in FIGS. 32 (a) and 32 (b).

【0123】この回数11のタイムスライスの間に、計
算機2で実行中のプロセスP2は終了するが、計算機3
は図19に示す流れ図に従って自計算機3が追従系なの
で何もしない(S71)。
During the time slice of 11 times, the process P2 running on the computer 2 ends, but the computer 3
Does nothing because the computer 3 is following system according to the flowchart shown in FIG. 19 (S71).

【0124】ここまでのタイムスライス毎の各計算機で
実行されたプロセスの一覧を図334に示す。
FIG. 334 shows a list of processes executed by each computer up to each time slice up to this point.

【0125】以上の操作で、本実施例のシステムによれ
ば生成されたアプリケーションプロセスP2の高速版プ
ログラムにプログラムバグが含まれても、システムが止
まること無く処理が続けられ、また先行系、追従系の計
算機ともプログラムにプログラムバグの含まれないアプ
リケーションプロセスP1,P3は高速版のプログラム
に従って実行され、システム全体の処理時間が遅くなる
ことは無いことがわかる。
With the above operation, even if the high-speed version program of the application process P2 generated according to the system of this embodiment includes a program bug, the system continues processing without stopping, and the preceding system and the follow-up system continue. It can be seen that the application processes P1 and P3 in which no program bug is included in the program are executed according to the high-speed version of the program in both the system computers and the processing time of the entire system is not delayed.

【0126】このように本実施例によれば、アプリケー
ションプロセスに対し、高速版のプログラムと、時間は
かかるがプログラムバグの無い安全版のプログラムを用
意することにより、高速版のプログラムにプログラムバ
グが含まれるアプリケーションプロセス以外は高速版だ
けの場合と同等の処理時間で、処理が中断することを避
けられる。
As described above, according to the present embodiment, by preparing a high-speed version program and a safe version program that takes time but does not have a program bug for the application process, the high-speed version program is free from program bugs. Other than the included application process, the processing time can be avoided with the same processing time as in the case of only the high-speed version.

【0127】なお、以上説明した第1および第2の発明
に係る実施例については、図34および図35に示すよ
うな変形が可能である。図34に示す実施例は、図1ま
たは図16に示した多重処理システムにおいて、計算機
1,2,3にコピー装置18,28,38cをそれぞれ
付設し、実行状態テーブル41、実行終了プロセステー
ブル42および障害プロセステーブル43を各計算機の
ローカルメモリ14,24,34に搭載し、ローカルメ
モリ14,24,34の内容(特に、テーブル41,4
2,43の内容)を随時相互に転送してコピーできるよ
うにしたものである。図35に示す実施例は、図1また
は図16におけるタイマ15,25,35に代えてバス
5に接続した共有タイマ6を用いたものである。
The embodiments according to the first and second inventions described above can be modified as shown in FIGS. 34 and 35. In the embodiment shown in FIG. 34, in the multi-processing system shown in FIG. 1 or 16, the copy machines 18, 28 and 38c are attached to the computers 1, 2 and 3, respectively, and the execution state table 41 and the execution end process table 42 are shown. The failure process table 43 is installed in the local memory 14, 24, 34 of each computer, and the contents of the local memory 14, 24, 34 (in particular, the tables 41, 4
The contents (2, 43) can be transferred and copied at any time. The embodiment shown in FIG. 35 uses a shared timer 6 connected to a bus 5 in place of the timers 15, 25, 35 shown in FIG. 1 or 16.

【0128】次に、第3の発明に係る実施例について説
明する。図36は、本実施例に係る多重処理システムの
ブロック構成図である。計算機1,2,3はそれぞれバ
ス5(例えばLAN)で接続されており、各計算機1,
2,3内には通信装置101,202,301、演算装
置102,202,302、OS格納エリア103,2
03,303およびプログラム格納エリア105,20
5,305が設けられ、OS格納エリア103,20
3,303には、図39に示すようなプログラム名とそ
の開始アドレスの対応を示したプログラム管理テーブル
104,204,304が設けられている。
Next, an embodiment according to the third invention will be described. FIG. 36 is a block diagram of the multiprocessing system according to the present embodiment. The computers 1, 2 and 3 are connected to each other via a bus 5 (eg LAN).
Communication devices 101, 202 and 301, arithmetic devices 102, 202 and 302, OS storage areas 103 and 2
03, 303 and program storage areas 105, 20
5, 305 are provided and OS storage areas 103, 20
3, 303 are provided with program management tables 104, 204, 304 showing the correspondence between program names and their start addresses as shown in FIG.

【0129】図37は、計算機1内のOS格納エリア1
03,203,303に格納されたOSにより実行制御
されるプログラム格納エリア105,205,305内
のプログラムP001,P002,…が稼働している状
態を示している。プログラムP001,P002,…間
の情報交換はOSが制御して、他計算機のプログラムに
データ転送する場合には、バス5を介してデータの送受
信処理を制御する。なお、以後OS格納エリア103に
格納されたOSを計算機1内のOS、またOS格納エリ
ア203に格納されたOSを計算機2内のOS、さらに
OS格納エリア303に格納されたOSを計算機3内の
OSという。
FIG. 37 shows the OS storage area 1 in the computer 1.
.. in program storage areas 105, 205, 305 whose execution is controlled by the OS stored in 03, 203, 303 are operating. The OS controls the information exchange between the programs P001, P002, ..., And when data is transferred to the program of another computer, the data transmission / reception process is controlled via the bus 5. In addition, hereinafter, the OS stored in the OS storage area 103 is the OS in the computer 1, the OS stored in the OS storage area 203 is the OS in the computer 2, and the OS stored in the OS storage area 303 is in the computer 3. OS of.

【0130】図38に、各プログラムの処理機能を示
す。プログラムP001は、2つのベクトルの和を求
め、その絶対値の2乗値を計算するプログラムであり、
計算機1で稼働している。プログラムP002は、2つ
のベクトルの和を計算するプログラムであり、計算機2
で稼働している。プログラムP003は、ベクトルの絶
対値(大きさ)を計算するプログラムであり、計算機2
で稼働している。プログラムP004は、数値(スカラ
量)の2乗を計算するプログラムであり、計算機3で稼
働している。そして、プログラムP005は、入力され
る数値の積分値を計算するプログラムであり、計算機3
で稼働している。
FIG. 38 shows the processing function of each program. The program P001 is a program for obtaining the sum of two vectors and calculating the square value of the absolute value thereof.
It is running on Calculator 1. The program P002 is a program for calculating the sum of two vectors,
Running at. The program P003 is a program for calculating the absolute value (magnitude) of a vector, and the computer 2
Running at. The program P004 is a program for calculating the square of a numerical value (scalar amount), and is running on the computer 3. The program P005 is a program for calculating the integral value of the input numerical value, and the computer 3
Running at.

【0131】ここで、プログラムP001を使って2つ
のベクトルの和を求め、その絶対値の2乗値を計算した
いユーザがキーボード6からプログラムP001を呼び
出して、2つのベクトル量を入力するときの処理の流れ
を図40により説明する。
Here, the process when a user who wants to find the sum of two vectors using the program P001 and calculates the squared value of the absolute value of the user calls the program P001 from the keyboard 6 and inputs two vector quantities 40 will be described with reference to FIG.

【0132】まず、ユーザはキーボード6からプログラ
ムP001を呼び出す際に、プログラム名”P001”
とともに、実行優先度情報が付加された”P001”の
代替プログラム名リスト[P002(1),P003
(2),P004(3)]を入力する(S101)。リ
ストに記載されているP002(1)を例に説明する
と、P002が代替プログラム名を示し、(1)はプロ
グラムP002の実行優先度が1番であることを示して
いる。
First, when the user calls the program P001 from the keyboard 6, the program name "P001"
Along with the execution priority information, the alternative program name list of "P001" [P002 (1), P003
(2), P004 (3)] is input (S101). Explaining P002 (1) in the list as an example, P002 indicates an alternative program name, and (1) indicates that the execution priority of the program P002 is 1.

【0133】次に、計算機1内のOSは、キーボード6
から入力された起動対象プログラムを示す起動プログラ
ム名“P001”と、その代替プログラムリスト[P0
02(1),P003(2),P004(3)]を記憶
する(S102)。
Next, the OS in the computer 1 is the keyboard 6
The boot program name “P001” indicating the boot target program input from and the alternative program list [P0
02 (1), P003 (2), P004 (3)] is stored (S102).

【0134】次に、計算機1内のOSは、入力された起
動プログラム名が自計算機1に登録されているか調べる
(S103)。この例の場合、起動プログラム名はプロ
グラム“P001”であり、これが登録されていること
が確認されるので、プログラム“P001”を起動する
(S105)。起動プログラム名が自計算機1に登録さ
れていなければ、S104に進む。
Next, the OS in the computer 1 checks whether the input boot program name is registered in the computer 1 (S103). In the case of this example, the startup program name is the program "P001", and since it is confirmed that this is registered, the program "P001" is started (S105). If the startup program name is not registered in the computer 1, the process proceeds to S104.

【0135】こうしてプログラム“P001”が起動さ
れ、プログラム手順に従って2つのベクトル量の値の入
力をユーザに要求する。この要求を受けてユーザがキー
ボード6からデータを入力すると(S106)、“プロ
グラムP001”は2つのベクトルの和を求め、その絶
対値の2乗値を計算して図示しないCRT上に結果の値
を出力する(S107)。
In this way, the program "P001" is started, and the user is requested to input two vector quantity values in accordance with the program procedure. In response to this request, when the user inputs data from the keyboard 6 (S106), "program P001" calculates the sum of two vectors, calculates the square value of the absolute value, and outputs the resulting value on a CRT (not shown). Is output (S107).

【0136】ここで、計算機1で稼働していたプログラ
ム“P001”がプログラム停止したとする。例えば、
キーボード6から入力されたデータが数値以外の形式で
入力された場合を想定すると、プログラム“P001”
には異質入力データに対する例外処理が施されていなか
ったため、プログラムエラーを生じてOSがプログラム
の実行を異常終了として停止したとする。
Here, it is assumed that the program "P001" running on the computer 1 is stopped. For example,
Assuming that the data entered from the keyboard 6 is entered in a format other than numerical values, the program "P001"
Since no exception processing is performed on the foreign input data, the OS terminates the execution of the program as an abnormal end due to a program error.

【0137】この場合、計算機1内のOSは、自計算機
1内にプログラム“P001”が登録されていないの
で、プログラム“P001”が必要とする入力データを
ユーザからキーボード6を介して受信すると、他の計算
機2,3内のOSに対して、プログラム“P001”が
プログラム格納エリア205,305に登録されている
かを問い合わせる(S104)。この例では、計算機
2,3内のプログラム格納エリア205,305にもプ
ログラム“P001”は存在しないので、代替プログラ
ムリスト内のプログラム“P002”をまず起動する
(S108)。
In this case, since the program “P001” is not registered in the computer 1 of the OS in the computer 1, when the input data required by the program “P001” is received from the user via the keyboard 6, Inquiries are made to the OSs in the other computers 2 and 3 whether the program "P001" is registered in the program storage areas 205 and 305 (S104). In this example, since the program “P001” does not exist in the program storage areas 205 and 305 in the computers 2 and 3, the program “P002” in the alternative program list is first activated (S108).

【0138】プログラム“P002”の起動は、例えば
計算機1内のOSが他の計算機2,3内のOSに対して
代替リストと最終代替プログラムからの結果返信先情報
およびプログラム“P002”の起動要求と入力データ
から構成されるメッセージを放送することで実現でき
る。この例の場合、プログラム“P002”は計算機2
内のプログラム格納エリア205に存在しているので、
計算機2内のOSは、計算機1内のOSからの起動要求
を受けて、プログラム“P002”を起動する。プログ
ラム“P002”は、起動されるとメッセージ中の2つ
のベクトル量の入力データを読み込んで、2つのベクト
ルの和を計算し、CRTに出力する。計算機2内のOS
は、プログラム“P002”が計算したベクトル和の値
が記憶されている記憶領域から該出力値を読み出す。そ
して、計算機2内のOSは、代替リストからプログラム
“P002”を削除し、残りのリスト情報と最終返信先
情報およびプログラム“P003”の起動要求とベクト
ル和の結果をメッセージとして放送する。
The program "P002" is started by, for example, the OS in the computer 1 requesting the OSs in the other computers 2 and 3 the alternative list, the result reply destination information from the final alternative program, and the request to start the program "P002". It can be realized by broadcasting a message consisting of input data and input data. In this example, the program “P002” is computer 2
Since it exists in the program storage area 205 inside,
The OS in the computer 2 receives the activation request from the OS in the computer 1 and activates the program “P002”. When the program "P002" is started, it reads the input data of two vector quantities in the message, calculates the sum of the two vectors, and outputs it to the CRT. OS in computer 2
Reads the output value from the storage area in which the value of the vector sum calculated by the program "P002" is stored. Then, the OS in the computer 2 deletes the program "P002" from the alternative list, and broadcasts the remaining list information, final reply destination information, the activation request of the program "P003", and the result of vector sum as a message.

【0139】プログラム“P003”は計算機2に存在
するので、計算機2内のOSがプログラム“P003”
を起動する。プログラム“P003”は、計算機2内の
OSからベクトル量を入力されるとその絶対値を計算
し、CRTに出力する。計算機2内のOSは、プログラ
ム“P003”が計算したベクトルの絶対値が記憶され
ている記憶領域から該出力値を読み出し、その値を次の
代替プログラムであるプログラム“P004”に入力デ
ータとして渡す。
Since the program "P003" exists in the computer 2, the OS in the computer 2 uses the program "P003".
To start. When the program “P003” receives a vector amount from the OS in the computer 2, it calculates the absolute value and outputs it to the CRT. The OS in the computer 2 reads the output value from the storage area in which the absolute value of the vector calculated by the program “P003” is stored, and passes the value as input data to the program “P004” which is the next alternative program. .

【0140】すなわち、計算機2内のOSは、代替リス
トからプログラム“P003”を削除し、残りのリスト
情報とプログラム“P004”の起動要求およびベクト
ルの絶対値(スカラ値)をメッセージとして放送する。
プログラム“P004”は計算機3に存在しているの
で、計算機3内のOSが“P004”を起動する。プロ
グラム“P004”は計算機3内のOSからスカラ値を
入力されると、その2乗を計算しCRTに出力する。プ
ログラム“P004”が代替リスト中の最終代替プログ
ラムであるので、メッセージに付加されている返信先情
報である計算機1内のOSに結果を返信する(S11
0)。
That is, the OS in the computer 2 deletes the program "P003" from the alternative list, and broadcasts the remaining list information, the activation request of the program "P004", and the absolute value (scalar value) of the vector as a message.
Since the program “P004” exists in the computer 3, the OS in the computer 3 activates “P004”. When the scalar value is input from the OS in the computer 3, the program “P004” calculates the square of the scalar value and outputs it to the CRT. Since the program "P004" is the final alternative program in the alternative list, the result is returned to the OS in the computer 1 which is the reply destination information added to the message (S11).
0).

【0141】そして、計算機1内のOSは、計算機3内
のOSより返信されてきたメッセージに含まれている最
終結果を自計算機のCRTに出力する(S111)。
Then, the OS in the computer 1 outputs the final result included in the message returned from the OS in the computer 3 to the CRT of its own computer (S111).

【0142】このように、本実施例によれば複数の版の
プログラムを作成して管理することなく、プログラム停
止になる前は最適手順で作成されたプログラム“P00
2”を稼働させてシステムに求められるミッションを達
成することが可能となる。そして、プログラム“P00
2”が停止した場合は、他の計算機2,3に搭載されて
いるOSが代替プログラムリスト情報から代替プログラ
ムを逐次起動することで、プログラム“P002”より
は性能は劣るが、「2つのベクトルの和を求め、その絶
対値の2乗値を計算する」という当初のミッションを継
続して遂行することが可能となる。
As described above, according to this embodiment, the program "P00" created by the optimum procedure is prepared before the program is stopped without creating and managing a plurality of versions of the program.
2 ”can be operated to achieve the mission required for the system. And the program“ P00
2 "is stopped, the OSs installed in the other computers 2 and 3 sequentially start the alternative programs from the alternative program list information, and the performance is inferior to that of the program" P002 ". It is possible to continue the initial mission of "calculating the sum of the above and calculating the square value of the absolute value."

【0143】[0143]

【発明の効果】以上説明したように、本発明によればハ
ードウェア障害はもとより、プログラムのバグで計算機
に障害が発生した場合でも、全計算機がダウンするのを
避けてシステム全体の処理を続行することができる。
As described above, according to the present invention, not only hardware failures but also computer failures due to program bugs prevent all computers from going down and continue processing of the entire system. can do.

【0144】すなわち、第1の発明によればアプリケー
ションプロセスのプログラムバグによる障害で計算機が
ダウンした場合でもシステム全体を停止させることな
く、処理を続行させることができる。
That is, according to the first aspect of the present invention, even if the computer goes down due to a failure due to a program bug in the application process, the processing can be continued without stopping the entire system.

【0145】また、第2の発明によればアプリケーショ
ンプロセスに対し、高速版プログラムと、時間はかかる
がプログラムバグの無い安全版プログラムを用意するこ
とにより、高速版のプログラムにプログラムバグが含ま
れるアプリケーションプロセス以外は、安全版プログラ
ムにより高速版プログラムのみの場合と同等の処理時間
で処理の中断を避けることができる。
According to the second aspect of the invention, the high-speed version program and the safe version program that takes time but does not have a program bug are prepared for the application process, so that the application including the program bug in the high-speed version program is prepared. Except for processes, the safety version program can avoid interruption of processing in the same processing time as in the case of only the high speed version program.

【0146】さらに、第3の発明によれば複数版のプロ
グラムを作成・管理することなく、プログラム停止にな
る前は最適手順で作成された第1のプログラムを稼働さ
せてシステムに求められるミッションを達成することが
可能となり、また第1のプログラムが停止した場合は計
算機に搭載されているOSがプログラム名リスト情報か
ら代替プログラムである第2のプログラムを起動するこ
とで、第1のプログラムよりは性能は劣るがミッション
を継続して遂行することが可能となる。
Further, according to the third aspect of the invention, the mission required for the system is performed by operating the first program created by the optimum procedure before the program is stopped without creating and managing the programs of plural versions. When the first program stops, the OS installed in the computer starts the second program, which is the alternative program, from the program name list information. Although the performance is poor, it is possible to continue the mission.

【図面の簡単な説明】[Brief description of drawings]

【図1】第1の発明に係る多重処理システムの実施例を
示すブロック構成図
FIG. 1 is a block diagram showing an embodiment of a multiprocessing system according to the first invention.

【図2】同実施例のシステムにおけるアプリケーション
プロセス発生時の動作を示す流れ図
FIG. 2 is a flowchart showing an operation when an application process occurs in the system of the embodiment.

【図3】同実施例のシステムにおけるタイムスライス開
始時の動作を示す流れ図
FIG. 3 is a flowchart showing an operation at the time of starting a time slice in the system of the embodiment.

【図4】同実施例のシステムにおけるアプリケーション
プロセス終了時の動作を示す流れ図
FIG. 4 is a flowchart showing an operation at the end of an application process in the system of the embodiment.

【図5】同実施例のシステムの初期状態における実行状
態テーブルおよび各キューの内容を示す図
FIG. 5 is a diagram showing an execution state table and contents of each queue in an initial state of the system of the embodiment.

【図6】同実施例のシステムにおける回数1のタイムス
ライス開始時処理後の実行状態テーブルおよび各キュー
の内容を示す図
FIG. 6 is a diagram showing the contents of each queue and the execution state table after the time slice start processing of the number of times 1 in the system of the embodiment.

【図7】同実施例のシステムにおける回数2のタイムス
ライス開始時処理後の実行状態テーブルおよび各キュー
の内容を示す図
FIG. 7 is a diagram showing the contents of each queue and the execution state table after the time slice start processing of the number of times 2 in the system of the embodiment.

【図8】同実施例のシステムにおいて回数3のタイムス
ライス開始時処理後の実行状態テーブルおよび各キュー
の内容を示す図
FIG. 8 is a diagram showing the contents of each execution queue and the execution state table after the processing at the time slice start time 3 times in the system of the embodiment.

【図9】同実施例のシステムにおける回数4のタイムス
ライス開始時処理後の実行状態テーブルおよび各キュー
の内容を示す図
FIG. 9 is a diagram showing the content of each queue and the execution state table after the time slice start processing of the number of times 4 in the system of the embodiment.

【図10】同実施例のシステムにおける回数5のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 10 is a diagram showing the execution state table and the contents of each queue after the time slice start processing of the number of times 5 in the system of the embodiment.

【図11】同実施例のシステムにおける回数6のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 11 is a diagram showing the contents of each queue and the execution state table after the time slice start processing of the number of times 6 in the system of the embodiment.

【図12】同実施例のシステムにおける回数7のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 12 is a diagram showing the execution state table and the contents of each queue after the processing at the time slice start time 7 times in the system of the embodiment.

【図13】同実施例のシステムにおける回数8のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 13 is a diagram showing the execution state table and the contents of each queue after the time slice start processing of the number of times 8 in the system of the embodiment.

【図14】同実施例のシステムにおいて各計算機が実行
したプロセスの一覧を示す図
FIG. 14 is a diagram showing a list of processes executed by each computer in the system of the embodiment.

【図15】従来の並列多重処理システムでアプリケーシ
ョンプロセスを実行させたときの期待される実行例
(a)とバグによりマシンがダウンした例(b)を示す
FIG. 15 is a diagram showing an expected execution example (a) when an application process is executed in a conventional parallel multiprocessing system and an example (b) in which a machine is down due to a bug.

【図16】第2の発明に係る多重処理システムの実施例
を示すブロック構成図
FIG. 16 is a block configuration diagram showing an embodiment of a multiprocessing system according to the second invention.

【図17】同実施例のシステムにおけるアプリケーショ
ンプロセス発生時の動作を示す流れ図
FIG. 17 is a flowchart showing an operation when an application process occurs in the system of the embodiment.

【図18】同実施例のシステムにおけるタイムスライス
開始時の動作を示す流れ図
FIG. 18 is a flowchart showing an operation at the time of starting a time slice in the system of the embodiment.

【図19】同実施例のシステムにおけるアプリケーショ
ンプロセス終了時の動作を示す流れ図
FIG. 19 is a flowchart showing an operation at the end of the application process in the system of the embodiment.

【図20】同実施例のシステムでアプリケーションプロ
セスを実行させたときの期待される実行例(a)と高速
版プログラムにバグがある場合の例(b)を示す図
FIG. 20 is a diagram showing an expected execution example (a) when an application process is executed in the system of the embodiment and an example (b) when the high-speed version program has a bug.

【図21】同実施例のシステムの初期状態における実行
状態テーブルおよび各キューの内容を示す図
FIG. 21 is a diagram showing an execution state table and contents of each queue in the initial state of the system of the example.

【図22】同実施例のシステムにおける回数1のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 22 is a diagram showing the contents of each queue and the execution state table after the time slice start processing of the number of times 1 in the system of the embodiment.

【図23】同実施例のシステムにおける回数2のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 23 is a diagram showing the contents of each execution queue and the execution state table after the time slice start processing of the number of times 2 in the system of the embodiment.

【図24】同実施例のシステムにおける回数3のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 24 is a diagram showing the execution state table and the contents of each queue after the time slice start processing of the number of times 3 in the system of the embodiment.

【図25】同実施例のシステムにおける回数4のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 25 is a diagram showing the execution state table and the contents of each queue after the processing at the time slice start time 4 times in the system of the embodiment.

【図26】同実施例のシステムにおける回数5のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 26 is a diagram showing the contents of each queue and the execution state table after the time slice start processing of the number of times 5 in the system of the embodiment.

【図27】同実施例のシステムにおける回数6のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 27 is a diagram showing the execution state table and the contents of each queue after time slice start processing of the number of times 6 in the system of the embodiment.

【図28】同実施例のシステムにおける回数7のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 28 is a diagram showing the execution state table and the contents of each queue after time slice start processing of the number of times 7 in the system of the embodiment.

【図29】同実施例のシステムにおける回数8のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 29 is a diagram showing the execution state table and the contents of each queue after the time slice start processing of the number of times 8 in the system of the embodiment.

【図30】同実施例のシステムにおける回数9のタイム
スライス開始時処理後の実行状態テーブルおよび各キュ
ーの内容を示す図
FIG. 30 is a diagram showing the execution state table and the contents of each queue after the processing at the time slice start time of 9 times in the system of the embodiment.

【図31】同実施例のシステムにおける回数10のタイ
ムスライス開始時処理後の実行状態テーブルおよび各キ
ューの内容を示す図
FIG. 31 is a diagram showing the execution state table and the contents of each queue after time slice start processing of 10 times in the system of the embodiment.

【図32】同実施例のシステムにおける回数11のタイ
ムスライス開始時処理後の実行状態テーブルおよび各キ
ューの内容を示す図
FIG. 32 is a diagram showing the contents of each queue and the execution state table after the processing at the time slice start time of 11 times in the system of the embodiment.

【図33】同実施例のシステムにおいて各計算機が実行
したプロセスの一覧を示す図
FIG. 33 is a diagram showing a list of processes executed by each computer in the system of the embodiment.

【図34】第2の発明に係る多重処理システムの他の実
施例を示すブロック構成図
FIG. 34 is a block diagram showing another embodiment of the multiprocessing system according to the second invention.

【図35】第2の発明に係る多重処理システムの別の実
施例を示すブロック構成図
FIG. 35 is a block diagram showing another embodiment of the multiprocessing system according to the second invention.

【図36】第3の発明に係る多重処理システムの一実施
例を示すブロック構成図
FIG. 36 is a block diagram showing an embodiment of a multiprocessing system according to the third invention.

【図37】同実施例のシステムにおける各計算機内に格
納されたプログラム名を示す図
FIG. 37 is a view showing program names stored in each computer in the system of the same example.

【図38】同実施例のシステムにおける各プログラムの
処理例を示す図
FIG. 38 is a diagram showing a processing example of each program in the system of the embodiment.

【図39】同実施例のシステムにおけるプログラム管理
テーブルの内容を示す図
FIG. 39 is a diagram showing the contents of a program management table in the system of the embodiment.

【図40】同実施例のシステムにおける処理手順を示す
流れ図
FIG. 40 is a flowchart showing a processing procedure in the system of the embodiment.

【符号の説明】[Explanation of symbols]

1,2,3…計算機 4…共有メモリ 5…バス 6…共有タイマ 7…キーボード 11,21,31…演算装置 12,22,32…実行中プロセスキュー 13,23,33…実行遅延プロセスキュー 14,24,34…ローカルメモリ 15,25,35…タイマ 16,26,36…高速版プログラム格納エリア 17,27,37…安全版プログラム格納エリア 18,28,38…コピー装置 41…実行状態テーブル 42…実行終了プロセステーブル 43…障害プロセステーブル 101,201,301…通信装置 102,202,302…演算装置 103,203,303…OS格納エリア 104,204,304…プログラム管理テーブル 105,205,305…プログラム格納エリア 1, 2, 3 ... Calculator 4 ... shared memory 5 ... bus 6 ... Shared timer 7 ... Keyboard 11, 21, 31 ... Arithmetic device 12, 22, 32 ... Executing process queue 13, 23, 33 ... Execution delay process queue 14, 24, 34 ... Local memory 15, 25, 35 ... Timer 16, 26, 36 ... High-speed version program storage area 17, 27, 37 ... Safe version program storage area 18, 28, 38 ... Copying device 41 ... Execution status table 42 ... Execution end process table 43 ... Failure process table 101, 201, 301 ... Communication device 102, 202, 302 ... Arithmetic device 103, 203, 303 ... OS storage area 104, 204, 304 ... Program management table 105, 205, 305 ... Program storage area

フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 9/06 G06F 11/14 Front page continuation (58) Fields surveyed (Int.Cl. 7 , DB name) G06F 15/16-15/177 G06F 9/06 G06F 11/14

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】プログラムの実行を制御するための複数の
計算機からなる多重処理システムにおける前記複数の計
算機のうちの1つにおけるプログラム実行制御方法であ
って、 第1のプログラムの起動要求とともに、それぞれ異なる
プログラムを所定の実行優先順位に従って順次実行する
ことにより当該第1のプログラムの機能を代行するプロ
グラムの組と、当該プログラムの組の各プログラムの実
行優先順位を指定するプログラム名リストを受ける第1
のステップと、 前記第1のプログラムが当該計算機で実行されるプログ
ラムを格納する格納手段に格納されているとき、前記第
1のプログラムを起動する第2のステップと、 前記複数の計算機に前記第1のプログラムを格納する計
算機が存在しないとき、あるいは、前記第2のステップ
で起動された前記第1のプログラムの実行が異常終了し
たとき、前記プログラム名リストを基に、前記プログラ
ムの組の各プログラムを前記実行優先順位に従って、当
該プログラムの組のいずれかのプログラムを格納する前
記複数の計算機のいずれかで順次実行させる第3のステ
ップと、 を有することを特徴とするプログラム実行制御方法。
1. A program execution control method in one of the plurality of computers in a multiprocessing system comprising a plurality of computers for controlling the execution of the program, the method comprising: A first set of programs that substitutes the function of the first program by sequentially executing different programs according to a predetermined execution priority, and a program name list that specifies the execution priority of each program of the first set of programs
A second step of activating the first program when the first program is stored in a storage unit that stores a program to be executed by the computer; When there is no computer that stores the first program, or when the execution of the first program started in the second step ends abnormally, each of the programs in the set of programs is based on the program name list. A third step of causing a program to be sequentially executed according to the execution priority on any of the plurality of computers that store any program of the set of programs, the program execution control method comprising:
【請求項2】前記プログラム名リストを基に前記プログ
ラムの組から前記実行優先順位に従って選択されたプロ
グラムが前記格納手段に格納されているとき、当該プロ
グラムを起動する第4のステップと、 前記第4のステップで起動された前記プログラムの実行
結果を得たとき、前記プログラム名リストを基に前記プ
ログラムの組から前記実行優先順位に従って選択された
次に実行すべきプログラムが前記格納手段に格納されて
いないとき、当該当該選択されたプログラムを格納して
いる前記複数の計算機のいずれかに当該選択されたプロ
グラムの起動を依頼すべく、少なくとも前記プログラム
名リストと前記実行結果と当該選択されたプログラムの
起動要求を放送する第5のステップと、 を有することを特徴とする請求項1記載のプログラム実
行制御方法。
2. A fourth step of activating a program selected from the set of programs according to the execution priority order based on the program name list in the storage means, the fourth step of activating the program. When the execution result of the program started in step 4 is obtained, the program to be executed next selected from the set of programs according to the execution priority order based on the program name list is stored in the storage means. If not, at least the program name list, the execution result, and the selected program are requested in order to request any of the plurality of computers storing the selected program to start the selected program. And a fifth step of broadcasting a start request of the program. -Time execution control method.
【請求項3】前記第1のステップで受けた起動要求で起
動が要求されている第1のプログラムが前記格納手段に
格納されていないとき、前記複数の計算機のうちの他の
計算機に対し問い合わせて、当該第1のプログラムを格
納する前記複数の計算機のいずれかに当該第1のプログ
ラムの起動を依頼する第6のステップを、 さらに有することを特徴とする請求項1記載のプログラ
ム実行制御方法。
3. When the first program requested to be activated by the activation request received in the first step is not stored in the storage means, an inquiry is made to another computer of the plurality of computers. 2. The program execution control method according to claim 1, further comprising a sixth step of requesting one of the plurality of computers storing the first program to start the first program. .
【請求項4】プログラムの実行を制御するための複数の
計算機からなる多重処理システムにおける前記複数の計
算機のうちの1つであって、 当該計算機で実行されるプログラムを格納する格納手段
と、 第1のプログラムの起動要求とともに、それぞれ異なる
プログラムを所定の実行優先順位に従って順次実行する
ことにより当該第1のプログラムの機能を代行するプロ
グラムの組と、当該プログラムの組の各プログラムの実
行優先順位を指定するプログラム名リストを受ける第1
の手段と、 前記第1のプログラムが前記格納手段に格納されている
とき、前記第1のプログラムを起動する第2の手段と、 前記複数の計算機に前記第1のプログラムを格納する計
算機が存在しないとき、あるいは、前記第2の手段で起
動された前記第1のプログラムの実行が異常終了したと
き、前記プログラム名リストを基に、前記プログラムの
組の各プログラムを前記実行優先順位に従って、当該プ
ログラムの組のいずれかのプログラムを格納する前記複
数の計算機のいずれかで順次実行させる第3の手段と、 を具備したことを特徴とする計算機。
4. A storage means, which is one of the plurality of computers in a multiprocessing system including a plurality of computers for controlling the execution of the program, and which stores a program executed by the computer. A program set that substitutes the function of the first program by sequentially executing different programs in accordance with a predetermined execution priority together with the activation request of the first program, and the execution priority order of each program of the program set. First to receive a list of specified program names
A second means for activating the first program when the first program is stored in the storage means; and a computer for storing the first program in the plurality of computers. When not executing, or when the execution of the first program started by the second means ends abnormally, each program of the set of programs is executed according to the execution priority order based on the program name list. A third means for sequentially executing one of the plurality of computers that stores any one of a set of programs, the computer comprising:
【請求項5】前記プログラム名リストを基に前記プログ
ラムの組から前記実行優先順位に従って選択されたプロ
グラムが前記格納手段に格納されているとき、当該プロ
グラムを起動する第4の手段と、 前記第4の手段で起動された前記プログラムの実行結果
を得たとき、前記プログラム名リストを基に前記プログ
ラムの組から前記実行優先順位に従って選択された次に
実行すべきプログラムが前記格納手段に格納されていな
いとき、前記選択されたプログラムを格納している前記
複数の計算機のいずれかに当該選択されたプログラムの
起動を依頼すべく、前記プログラム名リストと前記実行
結果と当該選択されたプログラム起動要求を放送する第
5の手段と、 を有することを特徴とする請求項4記載の計算機。
5. A fourth means for activating a program selected from the set of programs according to the execution priority order based on the program name list when the storage means stores the program, When the execution result of the program started by the means of 4 is obtained, the program to be executed next selected from the set of programs based on the program name list according to the execution priority is stored in the storage means. If not, the program name list, the execution result, and the selected program activation request are issued to request activation of the selected program to any of the plurality of computers that store the selected program. 5. The computer according to claim 4, further comprising: a fifth means for broadcasting.
【請求項6】前記第1の手段で受けた起動要求で起動が
要求されている第1のプログラムが前記格納手段に格納
されていないとき、前記複数の計算機のうちの他の計算
機に対し問い合わせて、当該第1のプログラムを格納す
る前記複数の計算機のいずれかに当該第1のプログラム
の起動を依頼する第6の手段を、 さらに有することを特徴とする請求項4記載の計算機。
6. When the first program requested to be activated by the activation request received by the first means is not stored in the storage means, an inquiry is made to another computer of the plurality of computers. 5. The computer according to claim 4, further comprising sixth means for requesting activation of the first program to any of the plurality of computers storing the first program.
JP08554494A 1993-08-31 1994-03-31 Program execution control method and computer Expired - Fee Related JP3483931B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08554494A JP3483931B2 (en) 1993-08-31 1994-03-31 Program execution control method and computer

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP21628293 1993-08-31
JP5-216282 1993-08-31
JP08554494A JP3483931B2 (en) 1993-08-31 1994-03-31 Program execution control method and computer

Publications (2)

Publication Number Publication Date
JPH07121490A JPH07121490A (en) 1995-05-12
JP3483931B2 true JP3483931B2 (en) 2004-01-06

Family

ID=26426551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08554494A Expired - Fee Related JP3483931B2 (en) 1993-08-31 1994-03-31 Program execution control method and computer

Country Status (1)

Country Link
JP (1) JP3483931B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005099250A1 (en) * 2004-04-06 2005-10-20 Matsushita Electric Industrial Co., Ltd. Program execution device
EP2690557B1 (en) * 2011-03-23 2015-05-13 Hitachi, Ltd. Computer system, data processing method, and data processing program
WO2024009499A1 (en) * 2022-07-08 2024-01-11 日立Astemo株式会社 Vehicle-mounted task division system and vehicle-mounted task division method

Also Published As

Publication number Publication date
JPH07121490A (en) 1995-05-12

Similar Documents

Publication Publication Date Title
US5440726A (en) Progressive retry method and apparatus having reusable software modules for software failure recovery in multi-process message-passing applications
US5247664A (en) Fault-tolerant distributed database system and method for the management of correctable subtransaction faults by the global transaction source node
EP0444376B1 (en) Mechanism for passing messages between several processors coupled through a shared intelligent memory
US6789101B2 (en) Automation system uses resource manager and resource agents to automatically start and stop programs in a computer network
US5590277A (en) Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
Borg et al. Fault tolerance under UNIX
JP3345626B2 (en) Processor error countermeasure device in multiprocessor system and processor error countermeasure method in multiprocessor system
US4628508A (en) Computer of processor control systems
US5530802A (en) Input sequence reordering method for software failure recovery
EP0817047A2 (en) Generation and delivery of signals in a two-level, multithreaded system
Wang et al. Progressive retry for software error recovery in distributed systems
US11321078B2 (en) Continuous in-place software updates with fault isolation and resiliency
US5664090A (en) Processor system and method for maintaining internal state consistency between active and stand-by modules
Hariri et al. Architectural support for designing fault-tolerant open distributed systems
JP3483931B2 (en) Program execution control method and computer
EP3389222A1 (en) A method and a host for managing events in a network that adapts event-driven programming framework
JP3394189B2 (en) Uninterrupted update system for program / data of any processor
JP3025732B2 (en) Control method of multiplex computer system
Yu et al. Reliability enhancement of real-time multiprocessor systems through dynamic reconfiguration
JP3992767B2 (en) Computer processing system
US5564120A (en) Data management method in a distributed processing system
JPH08235133A (en) Multiprocessing system
JP3570639B2 (en) How to manage system definition information
JPH06266685A (en) Decentralized control system
JP3429559B2 (en) System version switching method and system version switching method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees