[go: up one dir, main page]

JPH02238556A - Process scheduling methods and multiprocessor systems - Google Patents

Process scheduling methods and multiprocessor systems

Info

Publication number
JPH02238556A
JPH02238556A JP1060092A JP6009289A JPH02238556A JP H02238556 A JPH02238556 A JP H02238556A JP 1060092 A JP1060092 A JP 1060092A JP 6009289 A JP6009289 A JP 6009289A JP H02238556 A JPH02238556 A JP H02238556A
Authority
JP
Japan
Prior art keywords
processor
processors
allocation information
multiprocessor system
executed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1060092A
Other languages
Japanese (ja)
Other versions
JP3019317B2 (en
Inventor
Tomoaki Nakamura
智明 中村
Tadashi Kamiwaki
正 上脇
Shinichiro Yamaguchi
伸一朗 山口
Hirokazu Kasashima
広和 笠嶋
Shigenori Kaneko
茂則 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1060092A priority Critical patent/JP3019317B2/en
Priority to DE4007998A priority patent/DE4007998A1/en
Publication of JPH02238556A publication Critical patent/JPH02238556A/en
Application granted granted Critical
Publication of JP3019317B2 publication Critical patent/JP3019317B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To execute the processes via the prescribed processors respectively by obtaining a system where a process scheduler actuates a selected process to be executed next via a processor designated by the processor allocation information on the processes and by reference to a process control table. CONSTITUTION:The processor identifiers 321-2 of a processor 2 is set at 1 and therefore the process 2 is executed by a processor P1. A process 1 can be executed by the processors except a processor P2 since the processor identifier 321-1 of the process 1 is set at 2. The idle processors are limited to the processors P2 and P3 and therefore the process 1 is executed by the processor P3. The processor identifier 321-3 of a process 3 is set at 0 and therefore the process 3 can be executed by any processor. In this case, the idle processor 2 is used. As a result, the processes can be executed by the prescribed processors respectively even in a uniform multiprocessor system.

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、複数のプロセッサからなるマルチプロセッサ
システムにおいて複数のプロセスを並行に動作させるマ
ルチプロセッサ用オペレーティングシステムに係り、特
に、高速、高信頼性システムを構築する場合、あるいは
シングルプロセッサ用に作成されたプログラムをマルチ
プロセッサシステムで何ら変更なく動作させる場合、な
らびに特定プロセッサでのみ実行可能な命令を含むプロ
セスが存在する場合に好適なプロセススケジューリング
方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a multiprocessor operating system that runs multiple processes in parallel in a multiprocessor system consisting of multiple processors. Concerning a process scheduling method suitable for building a system, for running a program created for a single processor without any changes on a multiprocessor system, and when there is a process that includes instructions that can only be executed by a specific processor. .

[従来の技術] 複数のプロセッサを使用することにより、複数のプロセ
スを並行に実行してシステムの性能向上を図るシステム
は、マルチプロセッサシステムとして周知である。この
ようなマルチプロセッサシステムは、特開昭56−12
7261号公報に開示されているように、複数のプロセ
ッサがバスを介して相互に、かつ共用メモリに接続され
て構成される。
[Prior Art] A system that uses a plurality of processors to execute a plurality of processes in parallel to improve system performance is well known as a multiprocessor system. Such a multiprocessor system was developed in Japanese Patent Application Laid-Open No. 56-12
As disclosed in Japanese Patent No. 7261, a plurality of processors are connected to each other and to a shared memory via a bus.

また、マルチプロセッサシステムを有効かつ効率的に運
用するためには、マルチプロセッサ用オペレーティング
システムが重要な役割りを担う。
Furthermore, in order to effectively and efficiently operate a multiprocessor system, a multiprocessor operating system plays an important role.

マルチプロセソサ用オペレーティングシステムにおいて
は、シングルプロセッサシステムとは異なり、複数のプ
ロセスを異なるプロセッサ上で同時に実行できるように
する必要がある。このために、プロセスをどのプロセッ
サに割当てるかを決定する方策を有することが必要であ
る。この方策として、最も一般的に行われているのは,
プロセッサの利用効率を最大にするために、負荷の最も
少ないプロセッサに割り当てるものである。この方策は
一般的に、実現が容易であるため、広く採用されている
。なぜなら、個々のプロセッサ上で動作するオペレーテ
ィングシステムのプロセススケジューラが、シングルプ
ロセッサシステムの場合と同様に、次に実行すべきプロ
セスをプロセスの優先順位にしたがって選択すればよい
からである。負荷の重いプロセッサでは、プロセスの実
行時間が長く、プロセススケジューラが起動される頻度
は低い。逆に、負荷の軽いプロセッサでは処理すべきプ
ロセスを持たないアイドル状態になるタイミングが多く
、したがって、アイドル状態に移行すべきか否かを判定
するプロセススケジューラの起動タイミングも多い。こ
のため、負荷の軽いプロセッサには、より多くのプロセ
ススケジューリングの機会が与えられ、プロセッサ間で
の負荷は自動的に均等になるように推移することになる
In a multiprocessor operating system, unlike a single processor system, it is necessary to allow multiple processes to be executed simultaneously on different processors. For this reason, it is necessary to have a strategy for determining which processor a process is assigned to. The most commonly used strategy is to
In order to maximize the utilization efficiency of the processor, it is assigned to the processor with the least load. This strategy is generally easy to implement and is therefore widely adopted. This is because the process scheduler of the operating system running on each processor can select the next process to be executed according to the priority of the process, as in the case of a single processor system. In a heavily loaded processor, processes take a long time to execute and the process scheduler is activated less frequently. Conversely, a processor with a light load often enters an idle state without any processes to process, and therefore there are many times when a process scheduler is activated to determine whether or not to transition to an idle state. Therefore, processors with light loads are given more opportunities for process scheduling, and the loads among the processors are automatically balanced.

このようなプロセスのプロセッサへの割当て方策は、各
プロセッサの機能が同じ均質なマルチプロセッサシステ
ムにおいては、合理性のある手法である。これに対して
、機能が異なるプロセッサが混在するマルチプロセッサ
システムにおけるプロセスの割当て方策としては、特開
昭62−123552号および同62−123553号
が提案されている。これらの先行技術において「タスク
」と呼ばれているものは本明細書にいう「プロセス」に
相当し、意味するところは同一である。これら先行技術
では、例えば、浮動小数点アクセラレータを有さないプ
ロセッサ上で、浮動小数点アクセラレータ固肴の命令を
使用しているプロセスを実行しようとした場合に、オペ
レーティングシステムが例外を検出し、代替プロセッサ
の管理テーブルを参照して浮動小数点アクセラレータを
有するプロセッサに実行を切り換えるというものであり
、不均質なマルチプロセッサシステムにおけるプロセス
の割当て方式の一案を示すものである。
Such a strategy for allocating processes to processors is a reasonable method in a homogeneous multiprocessor system in which each processor has the same function. On the other hand, as a method for allocating processes in a multiprocessor system in which processors with different functions coexist, Japanese Patent Laid-Open Nos. 62-123552 and 1982-123553 have been proposed. What is called a "task" in these prior art corresponds to the "process" referred to in this specification, and has the same meaning. In these prior art techniques, for example, when an attempt is made to execute a process that uses floating-point accelerator-specific instructions on a processor that does not have a floating-point accelerator, the operating system detects an exception and runs an alternative processor. This method refers to a management table and switches execution to a processor that has a floating-point accelerator, and represents one method for allocating processes in a heterogeneous multiprocessor system.

この方式の利点は、不均質なマルチプロセッサであるこ
とをプログラマが意識しなくてよい点にある。
The advantage of this method is that the programmer does not have to be aware that the system is a heterogeneous multiprocessor.

[発明が解決しようとする課題コ ところで、化学プラント、交通,電力制御等のリアルタ
イムシステムにおいては,要求される信頼性に応じて故
障に対するきめ細かな回復処理が予めシステムに組み込
まれている。なかでも、プロセッサの故障はシステムに
重大な影響を与えるために厳しく管理される。このよう
なシステムにおいて信頼性を確保するための基本的な考
え方は、故障の影響範囲を局所化することである。上記
従来のマルチプロセッサシステムでは、必ずしもこの点
に関して十分な配慮がなされていなかった。
[Problems to be Solved by the Invention] Incidentally, in real-time systems such as chemical plants, transportation, and power control systems, detailed recovery processing for failures is built into the system in advance in accordance with the required reliability. Among these, processor failures are strictly controlled because they have a serious impact on the system. The basic idea for ensuring reliability in such systems is to localize the range of influence of failures. In the conventional multiprocessor systems described above, sufficient consideration has not always been given to this point.

また、シングルプロセッサ用に開発された既存のソフト
ウェアは、マルチプロセッサシステム上においても何ら
変更を加えずに実行させ得ることが望ましい。マルチプ
ログラミング環境では、周知のように、複数のプロセス
間で共用データへのアクセスの競合が発生しうる。この
問題を解決するため、通常、共用データにアクセスする
際にセマフォアメカニズムなどにより排他制御を行う必
要があるが、セマフォアメカニズムの処理オーバヘッド
が問題となり、プロセスのプライオリティを同一にした
り、セマフォアメカニズムよりも処理時間の短いプロセ
ッサの割込みマスクを上げて割込み禁止にする等の手段
を講じる場合が多い。
It is also desirable that existing software developed for a single processor be able to run on a multiprocessor system without any changes. In a multiprogramming environment, as is well known, contention for access to shared data can occur between multiple processes. To solve this problem, it is usually necessary to perform exclusive control using a semaphore mechanism etc. when accessing shared data, but the processing overhead of the semaphore mechanism becomes a problem, so it is necessary to make processes have the same priority, or to In many cases, measures such as raising the interrupt mask of a processor whose processing time is shorter than that of the mechanism to disable interrupts are taken.

これらの手段は、プロセッサが1台上でミクロにみれば
プロセッサ上の処理は必ず逐次的に行われるという事実
を利用している。現実には、共用データに対する排他制
御を性能上の理由により行っていないソフトウェアも多
い。したがって、既存のソフトウェアをそのままマルチ
プロセッサシステムで実行させた場合、必ずしも正常な
動作は保証されないという問題があった。
These means utilize the fact that when viewed from a microscopic perspective on a single processor, processing on the processor is always performed sequentially. In reality, many software programs do not perform exclusive control over shared data for performance reasons. Therefore, when existing software is executed as is on a multiprocessor system, there is a problem in that normal operation is not necessarily guaranteed.

システム構築上の問題としては、マルチプロセッサの立
ち上げを行う場合には、共用メモリの初期化、オペレー
ティングシステムプログラムのローディングなど、シス
テムで1つしかない資源に関する処理を行う必要がある
。この処理を複数のプロセッサで行うのはいたずらに処
理を複雑にするだけであるので、予め1台のプロセッサ
で行い、その後、他のプロセッサに起動をかけ、プロセ
ッサ固有の資源の初期化を行うという手順を踏む必要が
ある。また、システムの停止時も同様であり、個々のプ
ロセッサの停止処理は、そのプロセッサでのみアクセス
可能なレジスタなどのハードウエア資源にアクセスしな
ければならない場合がある。
As a problem in system construction, when starting up a multiprocessor, it is necessary to perform processing related to only one resource in the system, such as initializing a shared memory and loading an operating system program. Performing this process using multiple processors will only unnecessarily complicate the process, so it is preferable to perform this process using one processor in advance, and then start up the other processors to initialize the processor-specific resources. You need to take steps. The same applies when the system is stopped, and the process of stopping an individual processor may require accessing hardware resources such as registers that can only be accessed by that processor.

また、マルチプロセッサシステムでは、プロセッサ性能
を最大限に発揮させるために、プロセッサごとにキャッ
シュメモリを持つのが通例であるが、プロセスの実行途
中に動作プロセッサが変わる(これをプロセスマイグレ
ーションと呼ぶ)と、直前に使用していたキャッシュメ
モリが参照できなくなるため、新たに動作するプロセッ
サ上でキャッシュメモリのミスヒントが発生する。更に
は、直前に動作していたプロセッサ上のキャッシュメモ
リの無効化処理も必要になり、シングルプロセッサ」二
で実行する場合に比バて、当該プロセスにとってはマル
チプロセッサ処理は却って性能低下の要因になる。
In addition, in multiprocessor systems, in order to maximize processor performance, it is customary for each processor to have its own cache memory, but when the operating processor changes during the execution of a process (this is called process migration), , since the cache memory that was used immediately before can no longer be referenced, a cache memory mishint occurs on the newly operating processor. Furthermore, it is also necessary to invalidate the cache memory on the processor that was running immediately before, and multiprocessor processing is actually a factor in reducing the performance of the process compared to when it is executed on a single processor. Become.

上記特開昭62−123552号および同62−123
553号に開示されたマルチプロセソサシステムは、例
外の発生を利用して不均質なマルチプロセッサシステム
に対処しているが、均質なマルチプロセッサシステムに
おける前述したような問題は解決できない。
JP-A-62-123552 and JP-A-62-123 mentioned above
Although the multiprocessor system disclosed in No. 553 uses the occurrence of exceptions to deal with a non-uniform multiprocessor system, it cannot solve the above-mentioned problems in a homogeneous multiprocessor system.

他方、特開昭62−251867号には、主記憶装置の
プロクラム自体に対して、その命令コート単位にプロセ
ッサ識別コードを付しておき、命令コートを読みだす毎
にその命令を実行すべきプロセッサをそのプロセッサ識
別コートに従って決定するマ一20一 ルチプロセッサシステムが開示されている゛。このマル
チプロセッサシステムでは、プログラムの命令単位にプ
ロセッサ識別コートを付加するためにプログラムを加工
する必要があり、既存のソフトウェアをそのまま利用す
ることができない。また、主記憶装置のワード幅、命令
デコーダ等、ハードウエアの変更が必要となるという問
題がある。さらに、プロセッサ識別コードを動的に変更
することができず、プロセッサの数の変更等への対処も
困難である。
On the other hand, Japanese Patent Application Laid-Open No. 62-251867 discloses that a processor identification code is attached to each instruction code of the main memory program itself, and each time an instruction code is read, the processor that should execute the instruction is identified. A multi-processor system is disclosed that determines a processor identification code according to its processor identification code. In this multiprocessor system, it is necessary to modify the program to add a processor identification code to each instruction unit of the program, and existing software cannot be used as is. Another problem is that it is necessary to change hardware such as the word width of the main memory and the instruction decoder. Furthermore, it is not possible to dynamically change the processor identification code, and it is difficult to deal with changes in the number of processors.

本発明の目的は、不均質なマルチプロセッサシステムに
おいてのみならず、均質なマルチプロセッサシステムに
おいても、特定のプロセスを例外発生によらず予め定め
たプロセッサ上で実行させることができるプロセススケ
ジューリング方式、マルチプロセッサシステムおよびそ
の使用方法を提供することにある。
An object of the present invention is to provide a process scheduling method that allows a specific process to be executed on a predetermined processor regardless of the occurrence of an exception, not only in a heterogeneous multiprocessor system but also in a homogeneous multiprocessor system. An object of the present invention is to provide a processor system and a method of using the same.

本発明の他の目的は、既存の単一プロセッサシステム用
のソフトウェアを、何ら変更せずそのまま利用できるプ
ロセススケジューリング方式、マルチプロセッサシステ
ムおよびその使用方法を提供することにある。
Another object of the present invention is to provide a process scheduling method, a multiprocessor system, and a method for using the same, in which existing software for a single processor system can be used as is without any modification.

本発明のさらに他の目的は、プロセスマイグレーション
を防止しつつ、複数のプロセッサを効率的に使用するこ
とを可能にするプロセススヶジューリング方式,プロセ
ススヶジューラおよびマルチプロセッサシステムを提供
することにある。
Still another object of the present invention is to provide a process scheduling method, a process scheduler, and a multiprocessor system that enable efficient use of multiple processors while preventing process migration. be.

[課題を解決するための手段] 上記目的を達成するために、本発明によるプロセススケ
ジューリング方式は、複数のプロセッサと、プログラム
およびデータを格納し上記複数のプロセッサにより共有
される共用メモリとを具備し、上記複数のプロセッサ、
プログラムおよびデータは、単一のオペレーティングシ
ステムによって制御されるマルチプロセッサシステムに
おいて、プロセスを管理するプロセス管理テーブルに従
い、上記オペレーティングシステムのプロセススケジュ
ーラがプロセスにいずれかのプロセッサを割当てるプロ
セススケジューリング方式であって、上記プロセス管理
テーブルに、各プロセスが動作可能なプロセッサを指示
するプロセッサ割当て情報を記述し、上記プロセススケ
ジューラは、次に実行すべく選択したプロセスについて
、上記プロセス管理テーブルを参照して、当該プロセス
のプロセッサ割当て情報により指定されたプロセッサ上
で当該プロセスを動作させるようにしたものである。
[Means for Solving the Problems] In order to achieve the above object, a process scheduling method according to the present invention includes a plurality of processors and a shared memory that stores programs and data and is shared by the plurality of processors. , multiple processors above,
In a multiprocessor system controlled by a single operating system, programs and data are processed using a process scheduling method in which a process scheduler of the operating system allocates one of the processors to a process according to a process management table that manages processes, The process management table describes processor allocation information that indicates which processors each process can operate on, and the process scheduler refers to the process management table to determine the process selected to be executed next. The process is run on the processor specified by the processor allocation information.

本発明によるプロセススケジューリング方式は、他の見
地によれば、複数のプロセッサにより主記憶装置を共有
するマルチプロセッサシステムにおいて各プロセスにプ
ロセッサに割当てるプロセススケジューリング方式であ
って、各プロセスごとに当該プロセスが動作可能なプロ
セッサを指定するプロセッサ割当て情報を上記記憶装置
内に記憶させておき、実行待ちのプロセスをプロセッサ
へ割当てる際に、当該プロセスの上記プロセッサ割当て
情報を参照し、該プロセッサ割当て情報に応じて、当該
プロセスへの上記プロセッサの割当ての可否を決定する
ようにしたものである。
From another point of view, the process scheduling method according to the present invention is a process scheduling method in which a processor is assigned to each process in a multiprocessor system in which a main memory is shared by a plurality of processors, and in which each process is Processor allocation information specifying possible processors is stored in the storage device, and when a process waiting to be executed is allocated to a processor, the processor allocation information of the process is referred to, and according to the processor allocation information, It is configured to determine whether or not to allocate the processor to the process.

上記各プロセスごとに当該プロセスが動作可能一23 なプロセッサを指定するプロセッサ割当て偕報に代えて
、上記各プロセッサごとに当該プロセッサが実行可能な
プロセスを指定するプロセス割当て情報を用いてもよい
Instead of the processor assignment information that specifies, for each of the processes, a processor on which the process can run, process assignment information that specifies, for each of the processors, a process that the processor can execute may be used.

本発明のプロセススケジューリング方式は、さらに他の
見地によれば、各プロセスと当該プロセスが動作可能な
プロセッサとを予め対応づけておき、空きのプロセッサ
を実行待ちのプロセスに割当てる際に、上記予め定めた
対応関係に基づいて、当該プロセスへの上記プロセッサ
の割当ての可否を決定するようにしたものである。
According to yet another aspect, the process scheduling method of the present invention associates each process with a processor on which the process can operate in advance, and when allocating an empty processor to a process waiting to be executed, Based on the correspondence relationship, it is determined whether or not the processor can be assigned to the process.

上記プロセッサ割当て情報の一つとしていずれのプロセ
ッサでも動作可能であることを示す汎用コード、あるい
は、特定のプロセッサ以外のプロセッサで動作可能であ
ることを示すコードを含むようにしてもよい。
The processor allocation information may include a general-purpose code indicating that it can operate with any processor, or a code indicating that it can operate with a processor other than a specific processor.

本発明の他のプロセススケジューリング方式として、上
記プロセッサ割当て情報として上記汎用コードが設定さ
れたプロセスについて、当該プロセスを実行するプロセ
ッサが決定されたあと当該プロセスの実行が開始される
前に、当該プロセスのプロセッサ割当て情報を当該プロ
セッサを指定するコードに変更し,当該プロセスの実行
終了後に上記プロセス割当て情報を上記汎用コードに戻
すようにすることもできる。この動作方式について、上
記プロセス管理テーブルに、各プロセスごとに制御モー
ドを記憶する領域を設け,該制御モードの一つとして、
この方式を指定するコードを規定するようにしてもよい
As another process scheduling method of the present invention, for a process in which the above-mentioned general-purpose code is set as the above-mentioned processor allocation information, after the processor that executes the process is determined and before the execution of the process starts, It is also possible to change the processor allocation information to a code that specifies the processor, and then return the process allocation information to the general-purpose code after the execution of the process is completed. Regarding this operation method, an area is provided in the process management table to store a control mode for each process, and as one of the control modes,
A code specifying this method may be defined.

さらに、上記制御モードの一つとして,上記プロセッサ
割当て情報を常時固定することを示すコードを規定し、
当該コードが指定されたプロセスについては、プロセス
実行前後を通じて上記プロセッサ割当て情報を変更しな
いようにしてもよい。
Furthermore, as one of the control modes, a code indicating that the processor allocation information is always fixed is defined,
For the process to which the code is specified, the processor allocation information may not be changed before and after the process is executed.

本発明によるプロセススケジューリング方式は,別の見
地によれば、番号付けされた複数のプロセッサと、該複
数のプロセッサが共有する共用メモリとを有するマルチ
プロセッサシステムにおけるプロセススケジューリング
方式であって、プロセッサで動作するプロセスを管理す
るプロセス管理テーブルを上記共用メモリ内に設け、該
プロセス管理テーブルに、各プロセスごとに動作可能な
プロセッサの番号を指示するプロセッサ割当て情報を記
憶させ、プロセススケジューラは、次に実行すべく選択
したプロセスについて、上記プロセス管理テーブルを参
照して、当該プロセスのプロセッサ割当て情報により指
定された番号に対応するプロセッサ上で当該プロセスを
動作させるようにしたものである。
According to another aspect, the process scheduling method according to the present invention is a process scheduling method in a multiprocessor system having a plurality of numbered processors and a shared memory shared by the plurality of processors, the method is A process management table for managing the processes to be executed is provided in the shared memory, processor allocation information indicating the number of operable processors for each process is stored in the process management table, and the process scheduler executes the next process. The process management table is referred to for the selected process, and the process is operated on the processor corresponding to the number specified by the processor allocation information of the process.

上記プロセッサへの番号付けにおいては、複数のプロセ
ッサに同一の番号を重複して付加することを許容するよ
うにしてもよい。
In numbering the processors, it may be possible to allow the same number to be assigned to a plurality of processors more than once.

また、上記プロセッサの番号の一つとして汎用コードを
規定し、各プロセスの実行は、当該プロセスのプロセッ
サ割当て情報で指定された番号のプロセッサ上または上
記汎用コードの番号が付与されたプロセッサ上で行わせ
ることもできる。
In addition, a general-purpose code is defined as one of the processor numbers mentioned above, and each process is executed on the processor with the number specified in the processor allocation information of the process or on the processor assigned the number of the general-purpose code. You can also

本発明によるさらに他のプロセススケジューリング方式
は、各プロセスごとに、上記プロセッサ割当て情報によ
り指定されたプロセッサ以外のプロセッサでの実行を拒
絶する程度を,当該プロセスと当該プロセッサとの親和
度を示す数値として定めておき、当該プロセスの実行待
ち状態に関する数値と比較して、該比較結果に応じて、
当該プロセスを上記指定されたプロセッサ以外のプロセ
ッサ上で動作させるものである。このプロセスの実行待
ち状態に関する数値としては、例えば、上記プロセッサ
への割当てを拒絶した回数または当該プロセスの実行待
ちデータ量を選ぶことができる。
Still another process scheduling method according to the present invention determines, for each process, the degree to which execution on a processor other than the one designated by the processor allocation information is refused as a numerical value indicating the degree of affinity between the process and the processor. The value is determined in advance, and compared with the numerical value related to the execution waiting state of the process, and according to the comparison result,
The process is run on a processor other than the processor specified above. As the numerical value related to the execution waiting state of this process, for example, the number of times the allocation to the processor has been rejected or the amount of data waiting for execution of the process can be selected.

上記プロセスからプロセッサを指定する場合のプロセッ
サ割当て情報を論理プロセッサ識別子とし、該論理プロ
セッサ識別子と、実際のプロセノサに対応する物理プロ
セッサ識別子とを対応づけるテーブルを上記共用メモリ
内に設け、論理プロセッサ識別子は物理プロセッサ識別
子に変換してスケジューリングを行うようにしてもよい
Processor allocation information used when specifying a processor from the above process is a logical processor identifier, and a table is provided in the shared memory that associates the logical processor identifier with a physical processor identifier corresponding to an actual processor. Scheduling may be performed by converting it into a physical processor identifier.

プロセスの優先度を利用した本発明のプロセススケジュ
ーリング方式は、上記複数のプロセッサの各々について
、予め、当該プロセッサが実行可能なプロセスの優先度
の範囲を定めておき、各プロセッサが次に実行すべきプ
ロセスとして、当該プロセッサについて定められた上記
優先度の範囲内にある優先度を有する実行待ちプロセス
の中から最も高い優先度を有するものを選択するように
したものである。
The process scheduling method of the present invention that utilizes process priorities determines in advance the priority range of processes that can be executed by each of the plurality of processors, and the priority range of processes that each processor should execute next. As the process, the one with the highest priority is selected from among the processes waiting to be executed that have priorities within the range of priorities determined for the processor.

プロセスの優先度を利用した本発明の他のプロセススケ
ジューリング方式は、各プロセスごとに、上記複数のプ
ロセッサの各々に対する優先度を定めておき、各プロセ
ッサが次に実行すべきプロセスとして、実行待ちプロセ
スの中から、当該プロセッサについて定められた各プロ
セスの優先度の最も優先度の高いものを選択するように
したものである。
Another process scheduling method of the present invention that utilizes process priorities determines the priority for each of the plurality of processors for each process, and selects a process that is waiting to be executed as the process that each processor should execute next. Among these, the one with the highest priority of each process determined for the processor is selected.

本発明によるマルチプロセッサシステムは、少なくとも
2個のプロセッサを有し、該プロセッサのいずれにおい
ても特定のプロセスを実行可能なマルチプロセッサシス
テムにおいて、上記特定のプロセスを実行させるプロセ
ッサを上記少なくとも2個のプロセッサのうちのいずれ
か1個に固定一28一 することにより、単一プロセッサシステム用のソフI・
ウエアを修正することなく利用可能としたものである。
A multiprocessor system according to the present invention has at least two processors, and in a multiprocessor system in which a specific process can be executed on any of the processors, a processor that executes the specific process is connected to the at least two processors. By fixing to any one of the
This allows the software to be used without modification.

本発明によるマルチプロセッサシステムは、他の見地に
よれば、少なくとも2個のプロセッサを有し、該プロセ
ッサのいずれにおいても特定のプロセスを実行可能なマ
ルチプロセッサシステムにおいて、当該特定のプロセス
の少なくとも実行開始から終了までの間、上記特定のプ
ロセスを実行させるプロセッサを、上記少なくとも2個
のプロセッサのうちのいずれか1個に固定することによ
り、上記特定のプロセスの実行途中の実行プロセッサの
変更を防止するようにしたものである。
According to another aspect, the multiprocessor system according to the present invention has at least two processors and is capable of executing a specific process on any of the processors, at least starting execution of the specific process. The processor on which the specific process is executed is fixed to one of the at least two processors from the time to the end, thereby preventing the execution processor from being changed during the execution of the specific process. This is how it was done.

本発明によるマルチプロセッサシステムは、さらに他の
見地によれば、少なくとも2個のプロセッサを有し、特
定のプロセッサでは、種々のプロセスを実行可能なマル
チプロセッサシステムにおいて、上記特定のプロセッサ
で動作させるプロセスの数を限定することにより、当該
プロセッサでの応答時間を一定値以内に短縮するように
しだものである。
According to yet another aspect, the multiprocessor system according to the present invention has at least two processors, and in a multiprocessor system in which a specific processor can execute various processes, a process that is executed by the specific processor is provided. By limiting the number of processors, the response time of the processor is reduced to within a certain value.

本発明によるマルチプロセッサシステムは、別の見地に
よれば、少なくとも2個のプロセッサを有し、特定のプ
ロセッサでは、種々のプロセスを実行可能なマルチプロ
セッサシステムにおいて、上記特定のプロセッサで動作
させるプロセスの種類を限定することにより、プロセッ
サの故障の影響範囲を局所化するようにしたものである
According to another aspect, the multiprocessor system according to the present invention has at least two processors, and in a multiprocessor system in which a specific processor can execute various processes, one of the processes to be executed by the specific processor is By limiting the types, the range of influence of a processor failure is localized.

本発明によるマルチプロセッサシステムは、さらに別の
見地によれば、複数のプロセッサと、プログラムおよび
データを格納し上記複数のプロセッサにより共有される
共用メモリとを具備し、上記複数のプロセッサ、プログ
ラムおよびデータは、単一のオペレーティングシステム
によって制御されるマルチプロセッサシステムにおいて
、上記共用メモリ内に、プロセスごとに当該プロセスの
状態を保持するプロセス管理テーブルを設け、該プロセ
ス管理テーブルに、各プロセスが動作可能なプロセッサ
を指定するプロセッサ割当て情報を記憶する記憶領域を
設けたものである。
According to yet another aspect, the multiprocessor system according to the present invention includes a plurality of processors and a shared memory that stores programs and data and is shared by the plurality of processors, the programs and the data. In a multiprocessor system controlled by a single operating system, a process management table is provided in the shared memory to maintain the state of each process, and the process management table indicates whether each process is operable. A storage area is provided to store processor allocation information specifying processors.

本発明による今一つのマルチプロセッサシステムは、い
ずれにおいても特定のプロセスを実行可能な少なくとも
2個のプロセッサと、プログラムおよびデータを格納し
上記少なくとも2個のプロセッサにより共有される共用
メモリとを具備し、上記プロセッサ、プログラムおよび
データは、m一のオペレーティングシステムによって制
御されるマルチプロセッサシステムにおいて、上記共用
メモリ内に、上記少なくとも2個のプロセッサのうちの
特定のプロセッサでのみ上記特定のプロセスを実行可能
とするプロセッサ割当て情報を格納する記憶領域を設け
たものである。
Another multiprocessor system according to the present invention includes at least two processors, each of which can execute a specific process, and a shared memory that stores programs and data and is shared by the at least two processors, The processor, program, and data are stored in the shared memory in a multiprocessor system controlled by one operating system, such that only a specific processor of the at least two processors can execute the specific process. A storage area is provided to store processor allocation information.

プロセッサ割当て情報を格納する記憶領域を有するシス
テムにおいて、各プロセスのプロセッサ割当て情報の動
的変更を制御する制御モードを格納する記憶領域をさら
に設けてもよい。この制御モードは、例えば、任意のプ
ロセッサで動作可能とする第1のモードと、プロセスの
実行開始から実行終了まで特定のプロセッサのみで動作
可能とする第2の制御モードとを含み、第1の制御モー
ドでは、プロセッサ割当て情報として任意のプロセッサ
を指定する汎用コードが設定され、第2の制御モードで
は、プロセスを特定のプロセッサで実行開始する前に、
当該プロセスのプロセッサ割当て情報として上記特定の
プロセッサが指定され、プロセスの実行終了後に上記プ
ロセッサ割当て情報が上記汎用コードに戻される。両制
御モートに加えて、プロセスの生成後、特定のプロセッ
サを指定するプロセッサ割当て情報を変更しない第3の
制御モードをさらに設けてもよい。
In a system having a storage area for storing processor allocation information, a storage area may be further provided for storing a control mode for controlling dynamic change of processor allocation information for each process. This control mode includes, for example, a first mode that allows operation with any processor, and a second control mode that allows operation only with a specific processor from the start of process execution to the end of execution. In the control mode, a general code that specifies an arbitrary processor is set as processor allocation information, and in the second control mode, before starting a process on a specific processor,
The specific processor is specified as processor allocation information for the process, and the processor allocation information is returned to the general-purpose code after execution of the process is completed. In addition to both control modes, a third control mode may also be provided in which processor allocation information specifying a particular processor is not changed after the process is created.

本発明によるマルチプロセッサの使用方法は、上記プロ
セッサ割当て情報を指定するシステムの使用方法であっ
て、上記共用メモリに対する排他制御が必要なプロセス
群に対して、上記プロセッサ割当て情報を同一に設定す
ることにより、上記プロセス群を単一のプロセッサ上で
動作させるものである。同じく、重要性の高いプロセス
群と、重要性の低いプロセス群とに別個のプロセッサ割
当て情報を設定し、両プロセス群を別個のプロセッサ」
二で実行させることもできる。
A method of using a multiprocessor according to the present invention is a method of using a system that specifies the processor allocation information, wherein the processor allocation information is set to be the same for a group of processes that require exclusive control over the shared memory. This allows the above process group to operate on a single processor. Similarly, separate processor allocation information is set for a process group of high importance and a process group of low importance, and both process groups are assigned separate processors.
You can also run it in two steps.

本発明によるマルチプロセッサの他の使用方法は、制御
モードを使用したシステムの使用方法であって、上記第
2の制御モードを設定することにより、一つのプロセス
の実行途中に実行プロセッサが変わることを防止するも
のである。同じく、上記共用メモリに対する排他制御が
必要なプロセス群に対して、上記第3の制御モートを設
定することにより、上記プロセス群を単一のプロセッサ
」二で動作させるようにすることもできる。さらに、プ
ロセスを重要性の高いプロセス群と重要性の低いプロセ
ス群とに分類し、両プロセス群に対して上記第3の制御
モードを設定すると共に、上記両プロセスに異なるプロ
セッサ割当て情報を設定し、上記両プロセス群を別個の
プロセッサ上で実行させるようにすることもできる。
Another method of using a multiprocessor according to the present invention is a method of using a system using a control mode, in which by setting the second control mode, it is possible to change the executing processor during execution of one process. It is intended to prevent Similarly, by setting the third control mode for a process group that requires exclusive control over the shared memory, the process group can be operated by a single processor. Furthermore, the processes are classified into a process group of high importance and a process group of low importance, and the above-mentioned third control mode is set for both process groups, and different processor allocation information is set for the above-mentioned both processes. , it is also possible to have both of the above process groups executed on separate processors.

[作用] 本発明のプロセススケジューリング方式は、複数のプロ
セソサからなるマルチプロセッサシステムにおいて、複
数のプロセッサのいずれでも実行可能なプロセスについ
て、敢えてそのプロセスを実行させるプロセッサを特定
のプロセッサ比限定しようとするものである。
[Operation] The process scheduling method of the present invention is intended to intentionally limit the number of processors that execute a process that can be executed by any of the plurality of processors to a specific processor ratio in a multiprocessor system consisting of a plurality of processors. It is.

これによって、排他制御を必要とするプロセス群を同一
のプロセッサで動作させることが可能になり、共用メモ
リに対する排他制御を考慮していない従来の単一プロセ
ッサ用の既存のプロセッサを修正することなく使用して
も正常な動作を保証することができる。このことは、他
のプロセッサの不使用を意味するものではなく,前記プ
ロセス群以外のプロセスについては,このような制約を
設けずに、任意の(あるいは特定のプロセッサ以外の)
プロセッサで実行可能としてマルチプロセッサの機能を
有効に利用することができる。
This makes it possible to run a group of processes that require exclusive control on the same processor, and to use existing single-processor processors that do not consider exclusive control over shared memory without modifying them. normal operation can be guaranteed. This does not mean that other processors are not used, but for processes other than the above process group, any (or any processor other than a specific processor) can be used without such restrictions.
Since it can be executed by a processor, the functions of a multiprocessor can be effectively utilized.

また、プログラムの信頼性のランクに従って、実行する
プロセッサを限定することにより、信頼性のさほど要求
されないプログラム開発などのオフライン処理を実行し
ているプロセッサが故障してもシステムダウンに至らな
いようにする(すなわち、故障を局所化する)ことがで
きる。
In addition, by limiting the processors that execute the program according to its reliability rank, the system will not go down even if a processor that is executing offline processing such as program development that does not require high reliability fails. (i.e., localize the fault).

更には、正規の排他制御を行っていないプログラム群を
含むソフトウェアを、マルチプロセッサシステムで動作
させようとした場合に、当該プログラム群だけを特定の
プロセッサでのみ実行させることにより、プログラムの
修正を行うことなく、正常な動作を保証することができ
る。
Furthermore, when trying to run software that includes a group of programs that are not subject to regular exclusive control on a multiprocessor system, the program can be modified by having only that program group run on a specific processor. Normal operation can be guaranteed without any problems.

上記特定のプロセッサの指定の仕方として、常時固定的
に指定する方式の他、一つのプロセスの実行開始から終
了までの間は、特定の1プロセッサに割り付け、中断・
再開時も動作プロセッサが変更されないようにする方式
も有用である。すなわち、プロセッサを一時的に固定す
るこの方式によれば,一旦実行開始されたプロセスは、
その実行途中に動作プロセッサが変更されることがない
ので、キャッシュメモリを使用しているシステムにおい
て、キャッシュヒット率の低減を防止することができる
。一方、この方式は、実行プロセッサを永久に固定する
ものではないので、複数プロセッサの効率的使用を著し
く阻害するものでもない。
In addition to the method of specifying a specific processor as described above, in addition to the method of specifying it in a fixed manner at all times, the method of specifying a specific processor from the start of execution to the end of execution of a process can be done by assigning it to a specific processor, suspending or
A method that prevents the operating processor from being changed even when restarting is also useful. In other words, according to this method of temporarily fixing the processor, once a process has started execution,
Since the operating processor is not changed during execution, it is possible to prevent the cache hit rate from decreasing in a system using a cache memory. On the other hand, since this method does not permanently fix the executing processor, it does not significantly impede efficient use of multiple processors.

プロセス単位に特定のプロセッサを常時固定し、一35 あるいは一時的に固定(動的に指定)する手法としては
、上記制御モードの導入、プロセッサ毎に実行可能なプ
ロセスの優先度の範囲の制限、プロセッサ毎に各プロセ
スの優先度設定、プロセスとプロセッサの親和度の概念
の導入等、用途に応じて種々のものが利用できる。
Methods for permanently fixing a specific processor for each process, or for temporarily fixing (dynamically specifying), include introducing the above-mentioned control mode, limiting the priority range of executable processes for each processor, Various methods can be used depending on the purpose, such as setting priorities for each process for each processor and introducing the concept of affinity between processes and processors.

(以下、余白) [実施例コ 本発明によるシステム構成を第1図(a)に示す。(Hereafter, margin) [Example code] The system configuration according to the present invention is shown in FIG. 1(a).

プロセッサPi,P2,P3の3台のプロセッサが、接
続バス4により相互に、ならびに共用メモリ5に接続さ
れている。各プロセッサは、プロセッサ番号11−1〜
11−3をそれぞれ持っている。本実施例では、プロセ
ッサPI,P2,P3はそれぞれプロセッサ番号Zl 
l II ,  II 2 II ,  II 3 I
Iを有している。このプロセッサ番号の設定は、本実施
例ではハードウェアスイッチにより行っているが、他の
方法として、ハードのROMにあらがしめ記憶しておく
、立ち上げ時にプログラムにより設定する等の方法も考
えられる。
Three processors, processors Pi, P2 and P3, are connected to each other and to a shared memory 5 by a connection bus 4. Each processor has a processor number 11-1~
They each have 11-3. In this embodiment, processors PI, P2, and P3 each have a processor number Zl.
l II, II 2 II, II 3 I
It has I. In this embodiment, the processor number is set using a hardware switch, but other methods include storing the change in the hardware ROM, or setting it using a program at startup. .

各プロセスはプロセッサ上で実行される。共用メモリ5
には、オペレーティングシステムのプログラム31、こ
のプログラム31の一部であるプロセススケジューラ3
11.このオペレーティングシステムのプログラム31
が管理するテーブルの一部であるプロセス管理テーブル
32(32−1〜32−3)が存在する。このプロセス
管理テーブル32には、プロセスの優先度(図示せず)
等め他、本発明特有のプロセッサ識別子3 2 1 (
321−1〜321−3)、プロセッサ識別子の動的変
更あるいは固定期間を制御するプロセッサ制御モート3
22(322−1〜322−3)が置かれる。
Each process runs on a processor. shared memory 5
includes an operating system program 31 and a process scheduler 3 that is part of this program 31.
11. Program 31 of this operating system
There is a process management table 32 (32-1 to 32-3) that is a part of the tables managed by . This process management table 32 includes process priorities (not shown).
etc., processor identifiers specific to the present invention 3 2 1 (
321-1 to 321-3), a processor control mote 3 that controls the dynamic change or fixed period of the processor identifier;
22 (322-1 to 322-3) are placed.

なお、本実施例では、既存のプロセス管理テーブル32
を利用したが、プロセッサごとにそのプロセッサが実行
可能なプロセッサを指定するプロセス識別子を格納する
ための別個のテーブルを設けてもよい。
Note that in this embodiment, the existing process management table 32
However, a separate table may be provided for each processor to store process identifiers that specify the processors that can be executed by that processor.

第1図(.)には、プロセス1がプロセッサP3で、プ
ロセス2がプロセッサP1で、プロセス3がプロセッサ
P2で実行されている場合を示している。なお、同図で
は各プロセッサのブロック内にプロセスを図示している
が、これはプロセスが特定のプロセッサで実行されてい
る状態を示したものであり、実際のプロセスの所在を示
すものではない。この例では、プロセス2のプロセッサ
識別子321−2が“1″なので、このプロセス2は、
プロセッサP1で実行されている。プロセス1のプロセ
ッサ識別子321−1はII  2 IIなので、プロ
セッサP2以外で実行可である。空きのプロセッサは、
プロセッサP2とプロセッサP3なので、プロセス2は
、プロセッサP3で実行されている。
FIG. 1(.) shows a case where process 1 is executed by processor P3, process 2 by processor P1, and process 3 by processor P2. Note that although processes are shown in the blocks of each processor in the figure, this only shows the state in which the process is being executed on a specific processor, and does not show the actual location of the process. In this example, since the processor identifier 321-2 of process 2 is "1", this process 2 is
It is being executed on processor P1. Since the processor identifier 321-1 of process 1 is II 2 II, it can be executed by a processor other than processor P2. The free processor is
Since there are processors P2 and P3, process 2 is being executed by processor P3.

プロセス3のプロセッサ識別子321−3はtt O 
nであるので、どのプロセッサにおいても実行可である
。このため、空きとして残っているプロセッサP2で実
行されている。この例では、プロセッサ識別子321と
して単一のコードのみを記述するようにしているが、複
数のコードを同時に記述することも可能である。この場
合には、マイナスの数値は必ずしも必要でない。
Processor identifier 321-3 of process 3 is tt O
n, so it can be executed on any processor. Therefore, the processing is executed by the remaining free processor P2. In this example, only a single code is written as the processor identifier 321, but it is also possible to write multiple codes at the same time. In this case, a negative value is not necessarily necessary.

プロセス1〜3と各プロセスのプロセス管理テーブル3
2−1〜32−3とは、それぞれ対応しており、プロセ
スが生成されたときに対応するプロセス管理テーブルも
生成される。プロセスの生成は、システム立ち上げ時に
、すべてのプロセスの元になるプロセスがオペレーティ
ングシステムのプログラム31により生成される。この
元になるプロセスから前記プロセス1〜3が生成される
。この流39一 れを、第1図(b)を使って説明する。
Processes 1 to 3 and process management table 3 for each process
2-1 to 32-3 correspond to each other, and when a process is generated, a corresponding process management table is also generated. When a system is started up, a process that is the basis of all processes is generated by the operating system program 31. The processes 1 to 3 are generated from this original process. This flow 39 will be explained using FIG. 1(b).

第1図(b)において、前記すべてのプロセスの元にな
るプロセスをプロセスO(第1図(a)では図示せず)
で示してある。立ち上げ時、オペレーティングシステム
のプログラム31は、ユーザがあらかじめ定義したシス
テム構成情報に基づき、プロセス0を生成するときに、
プロセスOのプロセッサ識別子321−0に特定のプロ
セッサ番号を設定する。これは立ち上げ時は、特定のプ
ロセッサですべてのデータを初期化する必要があるため
であり、プロセスOは、データ初期化終了後、オペレー
ティングシステムがサポートしている、自プロセッサ識
別子を書き替えるシステムコールにて,どのプロセッサ
でも実行できるように、自プロセッサ識別子321−0
を/IQ″′に書き替える。その後、プロセス1〜3を
生成するが、この生成もオペレーティングシステムがサ
ポートするシステムコールを使用し、このシステムコー
ルのパラメータとして、プロセッサ識別子を指定する。
In FIG. 1(b), the process that is the origin of all the above processes is process O (not shown in FIG. 1(a)).
It is shown. At startup, the operating system program 31 generates process 0 based on system configuration information predefined by the user.
A specific processor number is set in the processor identifier 321-0 of process O. This is because it is necessary to initialize all data on a specific processor at startup, and after completing data initialization, process O is a system that rewrites its own processor identifier supported by the operating system. In the call, the own processor identifier 321-0 is specified so that it can be executed by any processor.
is rewritten to /IQ''. After that, processes 1 to 3 are generated, but this generation also uses a system call supported by the operating system, and the processor identifier is specified as a parameter of this system call.

このプロセス生成のシステムコールには、2つの種類が
あり、明示的にプロセッサ識別子を指定するものと、自
動的に、元のプロセスのプロセッサ識別子を受け継ぐも
のとがある。
There are two types of process creation system calls: one that explicitly specifies a processor identifier, and one that automatically inherits the processor identifier of the original process.

第1図(b)では、初期はプロセス0がプロセッサP1
で実行されていて、そこでまずプロセス1を、プロセッ
サ識別子として11  2 I+を指定して生成した。
In FIG. 1(b), initially process 0 is processor P1
First, process 1 was created by specifying 11 2 I+ as the processor identifier.

この結果,プロセス1は、プロセッサP1またはプロセ
ッサP3で実行可であるが、既にプロセッサP1が使用
されているので、プロセッサP3で実行された。次に、
プロセス2が生成されたが、これはプロセッサ識別子N
 I I+で生成されたので、プロセスOは、プロセッ
サP2へ移動し、プロセッサP1では、プロセス2の実
行を開始した。次に、プロセス3が自動的に元のプロセ
スのプロセッサ識別子を引き継ぐシステムコールにより
生成されたため、プロセス3のプロセッサ識別子321
−3はII O IIとなった。第1図(b)はプロセ
スOが共用メモリ5上で一旦待ちとなり、プロセッサP
2を開け渡し、その後、プロセス3を実行開始した状態
が示してある。原則として、以上のように5プロセスが
生成され、プロセッサ識別子も設定される。
As a result, process 1 can be executed on processor P1 or processor P3, but since processor P1 is already in use, it is executed on processor P3. next,
Process 2 has been created, which has processor identifier N
Since it was created in I I+, process O moved to processor P2 and started executing process 2 on processor P1. Next, since process 3 was created by a system call that automatically takes over the processor identifier of the original process, process 3's processor identifier 321
-3 became II O II. In FIG. 1(b), process O temporarily waits on shared memory 5, and processor P
2 is opened and then process 3 is started to be executed. In principle, five processes are generated as described above, and the processor identifier is also set.

第2図に、プロセススケジューラ311の処理を示す。FIG. 2 shows the processing of the process scheduler 311.

プロセススケジューラは、OSの一部であって、どのプ
ロセッサでも実行可能なプログラムであり、プロセスの
実行を終了または中断して空きとなったプロセッサに割
り当てられる。プロセッサに割り当てられたとき、プロ
セススケジューラはまず、プロセスの優先度に従って次
に実行すべきプロセスを選択する(311−1)。従来
のプロセススケジューラではここで選択されたプロセス
を、現在スケジューラが動作中のプロセッサに割当てて
(31.1−3) .処理を終了する。本発明によるプ
ロセススケジューラでは、選択したプロセスのプロセス
管理テーブル32のプロセッサ識別子321の値を判定
する(311−2)。この値がII O I+の場合は
任意のプロセッサで実行可能であるという意味であるの
でそのまま処理311−3を行い終了する。
The process scheduler is a program that is part of the OS and can be executed by any processor, and is assigned to a processor that becomes free after the execution of a process is terminated or interrupted. When assigned to a processor, the process scheduler first selects the process to be executed next according to the priority of the process (311-1). In a conventional process scheduler, the process selected here is assigned to the processor on which the scheduler is currently running (31.1-3). Finish the process. The process scheduler according to the present invention determines the value of the processor identifier 321 in the process management table 32 of the selected process (311-2). If this value is IIO I+, it means that it can be executed by any processor, so the process 311-3 is performed and the process ends.

プロセッサ識別子321の値が正の場合は、プロセッサ
識別子の値に一致するプロセッサ番号を有するプロセッ
サでのみ実行可であるという意味なので、現在スケジュ
ーラが動作中のプロセッサ番号11を参照し、これが該
プロセッサ識別子321に等しいか否かを判定する(3
11−4)。このとき、複数のプロセッサ識別子があれ
ば、各プロセッサ識別子と等しいか否かを判定し、いず
れかと等しいときに「等しい」とする。等しい場合は処
理311−3に進み、等しくない場合は、現在スケジュ
ーラが動作中のプロセッサでは実行できないプロセスで
あるので、次に優先順位の高いプロセスを選択するため
、処理311−1に戻る。一方、処理312−2でプロ
セッサ識別子321の値が負の場合はプロセッサ識別子
の値の符号を変えた値に一致するプロセッサ番号を有す
るプロセッサ以外でのみ実行可であるという意味である
ので、現在スケジューラが動作中のプロセッサ番号11
を参照し、これがそのプロセッサ識別子321に等しい
か否かを判定する(311−4)。このとき、複数のプ
ロセッサ識別子があれば、各プロセッサ識別子と等しい
か否かを判定し、すべてと等しいときに「等しい」とす
る。等しくない場合は処理311一3に進み、等しい場
合は、現在スケジューラが動作中のプロセッサでは実行
できないプロセスであるので、次に優先順位の高いプロ
セスを選択するため、処理3 1. 1 − ]に戻る
。このとき、1つのプロセッサに対して複数のプロセッ
サ番号が与えられていれば、次のプロセスを選択する前
に、各プロセッサ番号について上記処理を繰り返して行
う。
If the value of the processor identifier 321 is positive, it means that execution is possible only on a processor with a processor number that matches the value of the processor identifier. Therefore, the scheduler refers to the currently running processor number 11, and this is the processor identifier. Determine whether it is equal to 321 (3
11-4). At this time, if there are multiple processor identifiers, it is determined whether they are equal to each processor identifier, and if they are equal to any one of them, it is determined that they are "equal". If they are equal, the process proceeds to step 311-3; if they are not equal, the process cannot be executed by the processor on which the scheduler is currently running, so the process returns to step 311-1 in order to select the process with the next highest priority. On the other hand, if the value of the processor identifier 321 in process 312-2 is negative, it means that execution is possible only on a processor other than the processor whose processor number matches the value obtained by changing the sign of the value of the processor identifier. Processor number 11 is running
, and determines whether this is equal to the processor identifier 321 (311-4). At this time, if there are multiple processor identifiers, it is determined whether each processor identifier is equal or not, and when all of the processor identifiers are equal, it is determined as "equal". If they are not equal, proceed to process 311-3; if they are equal, the process cannot be executed by the processor on which the scheduler is currently running, so the process with the next highest priority is selected. Return to 1-]. At this time, if multiple processor numbers are assigned to one processor, the above process is repeated for each processor number before selecting the next process.

プロセッサ識別子321を設定する方法には、整理する
と以下の3つの方法がある。
There are three methods for setting the processor identifier 321, summarized as follows.

第1の方法は、プロセスを生成する元のプロセス(以下
、親プロセスと言う)が、オペレーティングシステムに
システムコールを通じてプロセッサ識別子を設定する方
法である。この方法には、システムコールにより、明示
的にプロセッサ識別子を設定する場合と、暗黙に親プロ
セスのプロセッサ識別子を引き継ぐか、汎用コードであ
るLL O r+が設定される場合がある。暗黙のプロ
セッサ識別子の設定方法は、そのシステム毎に都合のよ
いも44一 のを選べばよい。
The first method is for an original process that creates a process (hereinafter referred to as a parent process) to set a processor identifier through a system call to the operating system. This method includes explicitly setting the processor identifier using a system call, and implicitly inheriting the processor identifier of the parent process or setting the general-purpose code LL Or+. The method for setting the implicit processor identifier may be selected from one of 44 methods convenient for each system.

第2の方法は、生成されたプロセスが自分でオペレーテ
ィングシステムのシステムコールを通じてプロセッサ識
別子を設定する方法である。
The second method is for the generated process to set the processor identifier itself through a system call of the operating system.

以上は、第1図(b)にて説明した。The above has been explained with reference to FIG. 1(b).

次に第3の方法は、プロセス生成時には、いずれのプロ
セッサでも実行可のコード(すなわち汎用コード)が入
っているが、いずれかのプロセッサで実行されるとき、
プロセッサ識別子が、そのプロセッサの番号に設定され
、そのプロセッサでだけ実行され,終了時には,どのプ
ロセッサでも実行可の汎用コードに戻し、次の実行処理
はどのプロセッサでも実行可とする方法である。
The third method is that when a process is created, it contains code that can be executed on any processor (i.e., general-purpose code), but when executed on any processor,
In this method, the processor identifier is set to the number of that processor, the code is executed only on that processor, and when it is finished, it is returned to a general-purpose code that can be executed on any processor, and the next execution process can be executed on any processor.

特に、この第3の方法を実現するために、前記プロセッ
サ制御モード3 2 2 (322−0. 322−1
, 322−2, 322−3)が、プロセス管理テー
ブル3 2 (32−0.32−1., 32−2. 
32−3)に用意されている。このプロセッサ制御モー
ドには、プロセッサの固定化をしないというモードと、
プロセス実行開始から終了まで一時的に固定するモード
がある。ここでは、プロセッサの固定化をしない場合を
110″″とし、プロセッサを一時的に固定する場合を
LL I I+とする。
In particular, in order to realize this third method, the processor control mode 3 2 2 (322-0. 322-1
, 322-2, 322-3) is the process management table 32 (32-0.32-1., 32-2.
32-3). This processor control mode includes a mode in which the processor is not fixed, and a mode in which the processor is not fixed.
There is a mode that temporarily fixes the process execution from start to finish. Here, the case where the processor is not fixed is set as 110'', and the case where the processor is temporarily fixed is set as LL I I+.

さらに、一度生成されたなら、常時固定してしまう場合
をII 2 +1とする。この場合、プロセスが最初に
生成されたときだけプロセス管理テーブルを確保して、
プロセス終了時にこの管理テーブルを解放せず、2回目
以降の生成時は、前回使用した管理テーブルを使用する
ことにより、一度設定されたプロセッサ識別子を常に使
用させるものである。
Furthermore, once generated, the case where it is always fixed is defined as II 2 +1. In this case, the process management table is reserved only when the process is first created, and
This management table is not released at the end of the process, and the management table used last time is used when generating the process for the second time onwards, so that the processor identifier that has been set once is always used.

前記第1の方法および第2の方法では、自動的にプロセ
ッサ制御モードはLL Q j+に設定される。第3の
方法では、プロセス生成時に、プロセッサ識別子の他に
プロセッサ制御モードを指定できる必要があり、このた
めのシステムコールがオペレーティングシステムに用意
されている。この方法を、以下図を用いて説明する。
In the first method and the second method, the processor control mode is automatically set to LL Q j+. In the third method, it is necessary to be able to specify a processor control mode in addition to a processor identifier when creating a process, and a system call for this purpose is provided in the operating system. This method will be explained below using figures.

第3図は、この方法のプロセス生成処理を示している。FIG. 3 shows the process generation process of this method.

オペレーティングシステムは、システムコールによって
、プロセッサ制御モードとプロセッサ識別子を渡される
が、図中でこれらはmode ,procidとして示
してある。システムコールが発行されると、まずオペレ
ーティングシステムは、生成するためのプロセス管理テ
ーブル32を確保する(12−2) 、その後、従前の
プロセス生成処理122を行い、最後に動作プロセッサ
の設定処理12−2を行う。
The operating system is passed a processor control mode and a processor identifier through a system call, which are shown as mode and procid in the figure. When a system call is issued, the operating system first secures the process management table 32 for generation (12-2), then performs the previous process generation process 122, and finally sets the operating processor 12-2. Do step 2.

この動作プロセッサの設定処理12−3は、第4図のフ
ロー312に示したように、まず指定されたプロセッサ
制御モードmodeの値を調べ(312−0)、″2′
″でなければ第4図に示したように、該プロセス管理テ
ーブル32のプロセッサ制御モード322にmodeの
値を設定し(31.2−2)、プロセッサ識別子321
にprocidの値を設定する(312−3)。
In the operation processor setting process 12-3, as shown in the flow 312 of FIG. 4, the value of the specified processor control mode mode is first checked (312-0),
”, as shown in FIG. 4, set the value of mode in the processor control mode 322 of the process management table 32 (31.2-2), and
The value of procid is set in (312-3).

ステップ312−0でプロセッサ制御モードの値が11
2”であれば、プロセス管理テーブル32の当該プロセ
スについてのプロセッサ制御モード322が既に112
”になっているか否かを調べ(312−1)、II 2
 TIになっていれば第4図の処理を終了し、″2”に
なっていなければ、上記ステ47一 ップ312−2, 312−3ヘ進み,所定のmode
{IIIよびprocid値を設定する。このようにし
て生成されたプロセスは、第2図に示したプロセススケ
ジューラによって選択され、プロセッサ識別子321に
基づきいずれかのプロセッサで実行される。この実行さ
れるときの処理を第5図に示す。
In step 312-0, the processor control mode value is 11.
2”, the processor control mode 322 for the process in the process management table 32 is already 112.
” (312-1), II 2
If it is TI, the process shown in FIG.
{Set III and procid values. The process generated in this way is selected by the process scheduler shown in FIG. 2 and executed on any processor based on the processor identifier 321. FIG. 5 shows the processing when this is executed.

第5図のプロセス実行処理においては、破線枠で囲った
部分が本実施例により追加された部分である。まず実行
するプロセスのプロセス管理テーブル32のアドレスを
求め(313−1) 、このプロセス管理テーブルのプ
ロセッサ制御モード322の値を判定する(31.3 
− 2 )。この値がre O rrの場合は、プロセ
ッサの固定化を行わない場合であるのでプロセス管理テ
ーブルのプロセッサ識別子321に汎用コード″0”を
設定する(313−4)。
In the process execution process shown in FIG. 5, the parts surrounded by broken lines are the parts added according to this embodiment. First, the address of the process management table 32 of the process to be executed is obtained (313-1), and the value of the processor control mode 322 of this process management table is determined (31.3).
-2). If this value is re O rr, the processor is not fixed, so a general code "0" is set in the processor identifier 321 of the process management table (313-4).

また、前記値がrr 1 uであるときは、プロセスの
実行開始から終了までの間で固定にするという場合であ
るので、該プロセス管理テーブルのプロセッサ識別子3
21にスケジューラにより決定されたプロセッサのプロ
セッサ番号11を設定する(313−3)。前記値が″
2”の場合には、プロセッサを常時固定する場合である
ので何もしない。
Furthermore, when the value is rr 1 u, it is fixed from the start to the end of the process execution, so the processor identifier 3 of the process management table
21 is set to the processor number 11 of the processor determined by the scheduler (313-3). If the value is
In the case of 2'', nothing is done because the processor is always fixed.

以上の処理の後にユーザプログラムの実行を行う(31
3−5)。
After the above processing, the user program is executed (31
3-5).

第6図は前記プロセッサ識別子の第3の設定方法の実施
に係わるプロセスの終了処理の例を示したものである。
FIG. 6 shows an example of a process termination process related to implementing the third method of setting the processor identifier.

本例では、まず終了するプロセスのプロセス管理テーブ
ル32のアドレスを求め(314−1) .該プロセス
管理テーブルのプロセッサ制御モード322の値を判定
する(314−2)。
In this example, first, the address of the process management table 32 of the process to be terminated is obtained (314-1). The value of the processor control mode 322 of the process management table is determined (314-2).

この値が“1″であるときは、プロ.セスの実行開始か
ら終了までの間で固定にするという場合であるので、該
プロセス管理テーブルのプロセッサ識別子321に汎用
コード(値はII O r+ )を設定する(314−
2)。このプロセッサ制御モードが1101および″2
′″の場合は変更する必要がないため何もしない。以上
の処理の後に従前のプロセスの終了処理を行う(314
−3)。
When this value is "1", the pro. Since this is a case where the process is fixed from the start to the end of execution, a general-purpose code (value is II Or +) is set in the processor identifier 321 of the process management table (314-
2). This processor control mode is 1101 and ″2
'', there is no need to change anything, so do nothing. After the above processing, terminate the previous process (314
-3).

前述のように、プロセッサを常時固定するモード、すな
わちプロセッサ制御モードLL 2 11がプロセス生
成時に設定されると、第5図のプロセスの実行処理に示
すように、その実行時には何ら変更を受けず、また、第
6図のプロセスの終了処理においても、ステップ314
−2の判定でLL I II以外なので、プロセッサ識
別子は,プロセス生成処理において設定された値がその
まま残される。プロセス管理テーブルも保存されるので
、設定済みのプロセッサ識別子およびプロセッサ制御モ
ードは、次のプロセス生成時まで保存される。次のプロ
セス生成時には、前回使用のプロセス管理テーブルを探
し、すでにプロセッサ制御モードが″2”になっていた
場合は、プロセッサ識別子を書き変えないことにより、
プロセッサ識別子を保存する。
As mentioned above, if the mode in which the processor is always fixed, that is, the processor control mode LL 2 11, is set at the time of process creation, no changes will be made during the execution, as shown in the process execution process in FIG. Also, in the process termination process of FIG. 6, step 314
Since the determination of −2 indicates that the processor is other than LL I II, the value set in the process generation process is left unchanged as the processor identifier. Since the process management table is also saved, the set processor identifier and processor control mode are saved until the next process generation. When creating the next process, search for the previously used process management table, and if the processor control mode is already set to "2", by not rewriting the processor identifier,
Save processor identifier.

以上により、プロセッサ制御モードが″2”のプロセス
は、ユーザの要求により制御モードが変更されない限り
、一度割当てられたプロセッサで永久に動き続けること
になる。
As described above, a process whose processor control mode is "2" will continue to run forever on the processor once assigned, unless the control mode is changed by a user's request.

以上で述べた動作プロセッサの設定方法の効果は以下の
とおりである。第1の方法は前記課題で述べたリアルタ
イムシステムにおける信頼性の問題、既存のソフトウェ
アの利用性、システム立ち上げ等のシステム構築上の問
題を解決するものであり、第2の方法はリアルタイムシ
ステムにおける信頼性の問題およびシステム立ち上げ等
のシステム構築上の問題を解決するものである。また、
第3の方法は前記プロセスマイグレーションによる性能
低下を防止するものである。
The effects of the operating processor setting method described above are as follows. The first method is to solve the system construction problems such as the reliability problem in the real-time system, the usability of existing software, system startup, etc. mentioned in the above problem, and the second method is to solve the problem in the system construction such as the reliability problem in the real-time system mentioned above. This solves system construction problems such as reliability problems and system startup. Also,
The third method is to prevent performance degradation due to the process migration.

ここで、第3の方法によってプロセスマイグレーション
を防止できる理由を簡単に説明する。いず九のプロセッ
サでも実行可のプロセスは,あるプロセッサで実行され
た後、入出力装置のアクセス等により待ちとなり、その
プロセッサを一度開け渡すと、次に中断状態を解除され
て実行を再開するとき、従来であれば前回実行していた
プロセッサに割当てられるとは限らない。このため、も
し異ったプロセッサに割当てられるとプロセスマイグレ
ーションが発生する。しかし、第3の方法では、プロセ
ス生成時に、第4図のステップ3123でユーザ指定の
プロセッサ識別子を設定されるが、第5図のステップ3
13−3に示した,プロセス実行開始時にプロセッサ識
別子321に設走されたプロセッサ番号11は、それ以
後、プロセスの実行が中断されても、変更されずに維持
されて、第6図のプロセスの終了まで変更されることは
ない。したがって、実行中断後の再開時のプロセススケ
ジューリング(第2図)では、プロセッサ識別子321
に設定された特定のプロセッサ番号が使用され、実行再
開時には必ずこのプロセッサ番号のプロセッサで実行さ
れる。このため、プロセスマイグレーションは発生しな
い。なお、プロセスの実行完了後には,第6図のステッ
プ314−2に示すように、プロセッサ識別子にII 
O I+が設定されるので、このプロセッサが次に実行
されるプロセッサは限定されない。
Here, the reason why process migration can be prevented by the third method will be briefly explained. After a process that can be executed on any of the nine processors is executed on a certain processor, it goes into a wait state due to input/output device access, etc., and once that processor is handed over, the suspended state is released and execution resumes. In the past, when a task was executed, it would not always be assigned to the processor that was executing it last time. Therefore, process migration occurs if the processor is assigned to a different processor. However, in the third method, a user-specified processor identifier is set in step 3123 in FIG. 4 when a process is created, but in step 3 in FIG.
The processor number 11 set in the processor identifier 321 at the start of the process execution shown in 13-3 is maintained unchanged even if the process execution is interrupted thereafter, and the processor number 11 shown in FIG. It will not be changed until the end. Therefore, in process scheduling (Fig. 2) when resuming execution after execution is interrupted, the processor identifier 321
A specific processor number set to is used, and when execution is resumed, it will always be executed on the processor with this processor number. Therefore, no process migration occurs. Note that after the execution of the process is completed, the processor identifier is set to II, as shown in step 314-2 in FIG.
Since O I+ is set, the processor on which this processor is executed next is not limited.

第7図に本発明の実施例の応用例を示す。本例では、複
数プロセッサが同一のプロセッサ番号を有することを許
したものである。スケジューラ311の処理は第2図に
示したものと同一である。
FIG. 7 shows an example of application of the embodiment of the present invention. In this example, multiple processors are allowed to have the same processor number. The processing of the scheduler 311 is the same as that shown in FIG.

プロセス2および3のプロセッサ識別子321は共にI
I I I+であり、プロセッサP1およびP2は=5
2− 共にプロセッサ番号II I I+を有するため、プロ
セス2および3は、プロセッサP1あるいはP2で動作
することができる。本例により、プロセッサP1とP2
で自動負荷分散を行い、プロセッサP3には別のジョブ
を割り付けるといった柔軟性のあるプロセッサ割当てが
オペレーティングシステムの変更なしで容易に実現でき
るという効果が得られる。
The processor identifiers 321 of processes 2 and 3 are both I
I I I+ and processors P1 and P2 = 5
2- Since both have processor numbers II I I+, processes 2 and 3 can run on processor P1 or P2. According to this example, processors P1 and P2
The advantage is that flexible processor assignment, such as automatic load balancing and assigning another job to processor P3, can be easily achieved without changing the operating system.

また、第8図には本発明の実施例の別の応用例を示す。Further, FIG. 8 shows another application example of the embodiment of the present invention.

本例では、第7図と同様に複数プロセッサが同一のプロ
セッサ番号を有することを許した例であるが、プロセス
1のプロセッサ識別子3211に負の値rr−1nを指
定することにより、プロセッサ番号LL I I+を有
するプロセッサP1およびP2では動作させないように
したものである。本実施例の具体的な用途としては、プ
ロセッサP1およびP2がオンライン制御用プロセッサ
であり、プロセス1は開発中のテストプログラムであり
、オンライン制御には一切影響を与えないために、プロ
セッサP1およびP2を避けて動作させたいような場合
がある。
In this example, similar to FIG. 7, multiple processors are allowed to have the same processor number, but by specifying a negative value rr-1n for the processor identifier 3211 of process 1, the processor number LL The processors P1 and P2 having II+ are not operated. The specific application of this embodiment is that processors P1 and P2 are online control processors, and process 1 is a test program under development, so that it does not affect online control at all. There are cases where you want to avoid this.

本例により、第7図と同様に柔軟なプロセッサ割当てが
オペレーティングシステムの変更なしで容易に実現でき
る等の効果が生まれる。
This example produces effects such as the ability to easily realize flexible processor allocation without changing the operating system, similar to that shown in FIG.

なお、プロセッサ番号11にも汎用コード(例えばII
 O JJ )を設け、汎用コードを有するプロセッサ
はいずれのプロセスを実行可能としてもよい。
Note that processor number 11 also has a general-purpose code (for example, II
O JJ ), and a processor with general-purpose code may be able to execute any process.

この場合には、各プロセスのプロセッサ識別子の内容に
かかわらず、当該プロセッサではいずれのプロセスをも
実行可能となる。
In this case, any process can be executed by the processor regardless of the contents of the processor identifier of each process.

次に、本発明をプラント制御に適用したときのプロセス
の各プロセッサに対する割当て例を第9図と第10図を
使って説明する。第9図は、第1図のマルチプロセッサ
システムに、プラント制御機器PC,端末T1、端末T
2、オンラインファイルOFを接続したシステム構成図
であり、第10図は,このシステムで動作するプロセス
とプロセッサの割当て例を示してある。
Next, an example of allocation of processes to each processor when the present invention is applied to plant control will be explained using FIGS. 9 and 10. FIG. 9 shows the multiprocessor system in FIG. 1 including a plant control equipment PC, a terminal T1, a terminal T
2. This is a system configuration diagram in which online files OF are connected, and FIG. 10 shows an example of allocation of processes and processors operating in this system.

ここでは、第10図に示したように次の5つのプロセス
について考える。端末T1を制御するための端末T1制
御プロセス91、、端末T2を制御するための端末T2
制御プロセス92,統計情報をオンラインファイルOF
ヘログするための統計情報ログプロセス93、プラント
制御機器PCを制御するためのプラント制御プロセス9
4、このシステムの異常発生を監視する異常監視プロセ
ス95がある。第10図のプロセッサPL,P2,P3
は、それぞれ第9図におけるPL,P2,P3に対応し
ており、″○”はそのプロセスがそのプロセッサでの動
作指定を受けていることを示し、KL ×++はそのプ
ロセスがプロセッサ以外での動作指定を受けていること
を示し、無印は、任意のプロセッサでの動作指定を受け
ていることを示す。
Here, the following five processes will be considered as shown in FIG. Terminal T1 control process 91 for controlling terminal T1, Terminal T2 for controlling terminal T2
Control process 92, statistical information in online file OF
Statistical information logging process 93 for logging plants, plant control process 9 for controlling plant control equipment PC
4. There is an abnormality monitoring process 95 that monitors the occurrence of abnormalities in this system. Processors PL, P2, P3 in FIG.
correspond to PL, P2, and P3 in FIG. 9, respectively, "○" indicates that the process is designated to operate on that processor, and KL ×++ indicates that the process is designated to operate on a processor other than the processor. This indicates that the operation has been specified, and no mark indicates that the operation has been specified for any processor.

第9図のようなシステムでは、端末制御とプラント制御
が主要な処理であるため、端末T1制御プロセス9はプ
ロセッサP1に割当て,端末T2制御プロセス92はプ
ロセッサP2に、プラント制御プロセス94はプロセッ
サP3にそれぞれ割当てることにより、互いに処理を妨
げないように−55= する。統計情報ログプロセス93は各プロセッサの空き
時間で動作すればよいプロセスである。
In the system shown in FIG. 9, terminal control and plant control are the main processes, so the terminal T1 control process 9 is assigned to the processor P1, the terminal T2 control process 92 is assigned to the processor P2, and the plant control process 94 is assigned to the processor P3. -55= so that they do not interfere with each other's processing. The statistical information log process 93 is a process that only needs to operate in the free time of each processor.

方、プロセッサP3はプラント制御用に使用しているの
でこの処理が一定時間に終ることを保障するため、空き
時間が存在しても、その期間に他の処理を行わせること
は極力避けたいという要請がある。そこで、統計情報ロ
グプロセス93は、プロセッサP3以外のプロセッサで
動くよう指定する。なお、異常監視プロセス95は、各
プロセッサの監視を行いたいので、プロセッサP3でも
動くことを許し、すべてのプロセッサで動作可とする。
On the other hand, since processor P3 is used for plant control, in order to ensure that this process is completed within a certain time, even if there is free time, it is desirable to avoid performing other processes during that period as much as possible. I have a request. Therefore, the statistical information log process 93 is specified to run on a processor other than processor P3. Note that since the abnormality monitoring process 95 wants to monitor each processor, it is allowed to run even on the processor P3, so that it can run on all processors.

さらに、この異常監視プロセス95は、自身で次に動作
するプロセッサを指定し、順次各プロセッサを監視する
ようにする。
Further, the abnormality monitoring process 95 designates the next processor to operate, and monitors each processor in turn.

以上のように各プロセスを所定のプロセッサに割当てる
ことにより、第9図のプラント制御システムの処理を、
そのシステムに最適の態様で効率よく行うことが可能と
なる。
By assigning each process to a predetermined processor as described above, the processing of the plant control system shown in FIG.
It becomes possible to perform the process efficiently in a manner that is optimal for the system.

(以下、余白) 次に本発明の第2の実施例について詳細に説明する。(Hereafter, margin) Next, a second embodiment of the present invention will be described in detail.

本実施例におけるマルチプロセッサシステムの構成例を
第11図に示す。本実施例では、各プロセッサが実行可
能なプロセスの優先度(プライオリティ)の下限と上限
を保持する手段210(210−1, 210−2, 
210−3)および2 1 1 (211−1,211
−2, 211−3)を各プロセッサに対応して設ける
FIG. 11 shows an example of the configuration of the multiprocessor system in this embodiment. In this embodiment, means 210 (210-1, 210-2,
210-3) and 2 1 1 (211-1, 211
-2, 211-3) are provided corresponding to each processor.

このプライオリティ保持手段は、各プロセッサ内の特殊
レジスタで構成し、あるいは共有メモリ上の特定のアド
レスをこの目的に割り当てることにより構成することが
できる。一方、プロセス管理テーブル32には、プロセ
スごとにプロセスの実行の優先度を示すプライオリティ
(PR)212(212−1, 212−2, 212
−3)を保持する。本実施例ではこの数値の小さいもの
程、優先度が高いものとする。このプライオリティは、
動的に決定されたり、静的に定まったりするが、本実施
例はプライオリティ自体の決定方法には依存しない。本
実施例において、実行待ちのプロセスにプロセッサP1
〜P3を割り当てる処理はプロセススケジューラ215
が行う。第11図の他の部分は第2図と同一である。
This priority holding means can be constructed from a special register within each processor, or by allocating a specific address on the shared memory for this purpose. On the other hand, the process management table 32 includes priority (PR) 212 (212-1, 212-2, 212) indicating the execution priority of each process.
-3) is maintained. In this embodiment, the smaller the numerical value, the higher the priority. This priority is
Although the priority may be determined dynamically or statically, this embodiment does not depend on the method of determining the priority itself. In this embodiment, the process waiting to be executed is processed by processor P1.
~The process of allocating P3 is performed by the process scheduler 215
will do. The other parts of FIG. 11 are the same as FIG. 2.

第12図(.)は、スケジューラ215の詳細な処理フ
ローである。本スケジューラでは、まず当該スケジュー
ラが動作しているプロセッサが実行可能なプロセスのプ
ライオリテイを得るために、その下限(LPR)と上限
(H P R)とを当該プロセッサのプライオリテイ保
持手段210,211から読み出す(215−1)。次
に、実行待ちのプロセスの中からプライオリテイ212
が最も高い(数値が最小)ものを選択する(215−2
)。
FIG. 12(.) is a detailed processing flow of the scheduler 215. In this scheduler, first, in order to obtain the priority of a process executable by the processor on which the scheduler is running, the lower limit (LPR) and upper limit (HPR) are set to the priority holding means 210, 211 of the processor. (215-1). Next, priority 212 is selected from among the processes waiting to be executed.
Select the one with the highest (minimum numerical value) (215-2
).

選択したプロセスのプライオリテイが当該プロセッサに
実行可能なプライオリテイの範囲に納っていれば(21
5−3) .選択したプロセスに当該プロセスを割り付
ける(215−5)。さもなくば、次にプライオリテイ
の高いプロセスを選択してくる(215−4)。
If the priority of the selected process falls within the priority range executable by the processor (21
5-3). The process is assigned to the selected process (215-5). Otherwise, the process with the next highest priority is selected (215-4).

このスケジューラの動作を例を挙げて説明する。The operation of this scheduler will be explained using an example.

例えば第11図において、プロセッサP3でスケジュー
ラ215が動作しており、プロセス1〜4が実行待ち状
態にあった場合を考える。スケジューラ215は、まず
プロセッサP3で実行可能なプライオリティが“50″
から“1 0 0 ”の間であることを知る。そこで、
実行待ちプロセスの中でプライオリティが最も高い( 
” 2 5 ” )プロセス3を選択するが、これはプ
ロセッサP3が実行可能なプライオリテイの範囲外なの
で、次にプライオリティが高い( ″4 0 ” )プ
ロセス1を選択する。
For example, in FIG. 11, consider a case where the scheduler 215 is operating in the processor P3 and processes 1 to 4 are in a waiting state for execution. The scheduler 215 first determines that the executable priority on the processor P3 is "50".
We know that it is between “1 0 0”. Therefore,
The process with the highest priority among the processes waiting to be executed (
``2 5 '') Process 3 is selected, but since this is outside the executable priority range of processor P3, process 1, which has the next highest priority (``4 0''), is selected.

最終的にはプロセス4(プライオリテイ値If 5 5
 II)が選択され、スケジューラ215はプロセッサ
P3をプロセス4に割り付ける。
Finally, process 4 (priority value If 5 5
II) is selected, and the scheduler 215 allocates processor P3 to process 4.

本実施例によって、プライオリテイの低いプロセス2や
プロセス4にも必ず実行の機会が与えられることになり
、プライオリテイの高いプロセスが多く発生した時にプ
ライオリテイの低いプロセスが全く動作しないといった
障害を防ぐことが可能となる。また、各プロセッサの実
行可能なプロセスのプライオリテイの範囲の重複をなく
すことにより、プロセッサとプロセスとの関係を固定化
することができる。
With this embodiment, low priority processes 2 and 4 are always given an opportunity to execute, thereby preventing problems such as low priority processes not running at all when many high priority processes occur. becomes possible. Furthermore, by eliminating overlap in the priority ranges of executable processes of each processor, the relationship between processors and processes can be fixed.

第12図(b)はスケジューラ215の他の詳細なフロ
ーである。この例では、第12図(a)のステップ21
5−2〜215−4に代わってステップ2 1.5 −
 6〜21.5−8を採用し、順次HPRの値の小さい
(すなわち優先度の高い)方から対応する実行待ちプロ
セスがあるか否かを調べるようにしている。これから得
られる結果は第12図(.)のフローと同じである。
FIG. 12(b) shows another detailed flow of the scheduler 215. In this example, step 21 in FIG. 12(a)
Step 2 1.5 - instead of 5-2 to 215-4
6 to 21.5-8 are adopted, and it is checked in order from the one with the smaller HPR value (that is, the one with the higher priority) whether there is a corresponding process waiting to be executed. The result obtained from this is the same as the flow in FIG. 12(.).

次に本発明の第3の実施例について詳細に説明する。本
実施例によるマルチプロセッサシステムの構成を第13
図に示す。本実施例では,プロセス管理テーブル32内
の各プロセスのプライオリティは全プロセッサに共通に
設定するのではなく、プロセッサ毎に、各プロセスの優
先度を設定できるようにしたものである。そのために、
プロセス管理テーブル32には、各プロセス毎に、当該
プロセスの各プロセッサP1〜P3に於ける実行の優先
度をそれぞれ示すプライオリテイ231,232,23
3を保持する。
Next, a third embodiment of the present invention will be described in detail. The configuration of the multiprocessor system according to this embodiment is shown in the thirteenth section.
As shown in the figure. In this embodiment, the priority of each process in the process management table 32 is not set commonly to all processors, but the priority of each process can be set for each processor. for that,
The process management table 32 includes, for each process, priorities 231, 232, and 23 that indicate the execution priority of the process in each of the processors P1 to P3.
Hold 3.

本実施例においても、プライオリテイ自体の決定方法の
如何は問わない。本実施例において、実行待ちのプロセ
スにプロセッサP1〜P3を割り付ける処理はプロセス
スケジューラ234が行う。
In this embodiment as well, the method of determining the priority itself does not matter. In this embodiment, the process scheduler 234 performs the process of allocating the processors P1 to P3 to processes waiting to be executed.

第13図の他の部分は第1図と同一である。The other parts of FIG. 13 are the same as FIG. 1.

第14図は、スケジューラ234の詳細な処理フローで
ある。本スケジューラ234では、まず自身が動作して
いるプロセッサのプロセッサ番号を得る。(234−1
)。次に、各プロセス管理テーブル32内の当該プロセ
ッサ番号に対応する位置のプライオリティが最も高いプ
ロセスを選択する(234−2)。そして、そのプロセ
スに当該プロセッサを割り当てる(234−3)。
FIG. 14 is a detailed processing flow of the scheduler 234. The scheduler 234 first obtains the processor number of the processor on which it is operating. (234-1
). Next, the process with the highest priority at the position corresponding to the processor number in each process management table 32 is selected (234-2). Then, the processor is assigned to the process (234-3).

次にこのスケジューラの動作例を説明する。Next, an example of the operation of this scheduler will be explained.

例えば第13図に於で、プロセッサP3でスケジューラ
234が動作しており、プロセス1〜4が実行待ち状態
にあった場合を考える。スケジューラ234はまずプロ
セッサ番号を得て,自身がプロセッサP3で動作してい
ることを認識する。
For example, in FIG. 13, consider the case where the scheduler 234 is operating on the processor P3 and processes 1 to 4 are in a waiting state for execution. The scheduler 234 first obtains the processor number and recognizes that it is operating on the processor P3.

そしてプロセス管理テーブル32のプロセッサP3に対
応したプライオリティ231−1〜231−4を検索し
て、次に実行すべきプロセス3を選択して、これに当該
プロセッサを割り付ける。なお、プロセッサの別を問わ
なければ実行待ちプロセス1〜4の中で最も高いプライ
オリテイを持っているものはプロセス1であり、そのプ
ライオリテイは1′20”である。しかし、このプライ
オリティ231.−]はプロセッサP1に対するものな
ので、スケジューラ234がプロセッサP1以外で動作
しているときは無視される。
Then, it searches the priorities 231-1 to 231-4 corresponding to the processor P3 in the process management table 32, selects the process 3 to be executed next, and assigns the processor to it. Incidentally, regardless of the type of processor, the process 1 has the highest priority among the processes 1 to 4 waiting to be executed, and its priority is 1'20''. However, this priority 231. -] is for processor P1, so it is ignored when scheduler 234 is operating on a processor other than P1.

本実施例によれば、プロセスごとに特定のプロセッサに
対するプライオリティを高く設定することができ,その
プロセスを概ね一つのプロセッサに固定できる。ただし
、そのプロセッサが停止しても,プロセスの実行が不可
能になる訳でなく、優先度は下がるが、他のプロセッサ
で実行できる。
According to this embodiment, a high priority can be set for a specific processor for each process, and that process can be fixed to approximately one processor. However, even if that processor stops, the process does not become impossible to run; it can still be executed on another processor, although its priority will be lowered.

次に、本発明の第4の実施例について詳細に説明する。Next, a fourth embodiment of the present invention will be described in detail.

本実施例によるマルチプロセッサシステムの構成図は、
第1図と同しである。
The configuration diagram of the multiprocessor system according to this embodiment is as follows:
It is the same as Figure 1.

第15図に各プロセスに対応したプロセス管理テーブル
32の構成例を示す。前述と同様に、プロセス識別子p
id320は、システム内でプロセスに一意に付けられ
る識別番号である。プロセッサ識別子procid 3
 2 1は、当該プロセスが必要とするプロセッサを示
している。procid = Oのときは任意のプロセ
ッサを要求し、procid = n ( nは自然数
)のときはプロセッサ番号nのプロセッサを要求し、p
rocict= 一nのときはプロセッサ番号n以外の
プロセッサを要求している。プロセッサ制御モードmo
de3 2 2は、前述のように、プロセッサ識別子の
動的変更あるいは固定(または有効)期間を規定する。
FIG. 15 shows an example of the structure of the process management table 32 corresponding to each process. As before, the process identifier p
The id 320 is an identification number uniquely assigned to a process within the system. Processor identifier procid 3
2 1 indicates the processor required by the process. When procid = O, request any processor; when procid = n (n is a natural number), request the processor with processor number n;
When rocit=1n, a processor other than processor number n is requested. processor control mode mo
de3 2 2 defines the dynamic change or fixed (or valid) period of the processor identifier, as described above.

mode=oのとき、プロセッサ識別子は常にproc
id ” Oと見なされる。即ち、当該プロセス生成時
にpl−ocid = Oが設定される。mode1の
ときは、当該プロセスの実行開始から終了までの間だけ
そのプロセッサ識別子procidが固定となる。即ち
、プロセス実行開始時に、適当なprocidが設定さ
れる。mode”2のとき、プロセスの実行開始、終了
時に於で、procidは変化しない。
When mode=o, the processor identifier is always proc
id" O. That is, pl-ocid = O is set when the process is created. In mode 1, the processor identifier procid is fixed only from the start of execution to the end of the process. That is, An appropriate procid is set at the start of process execution. In mode 2, the procid does not change when the process starts and ends.

即ち一度設定されたprocidは、第4図に示す様な
動作プロセッサ設定処理を行わない限り変更されること
はない。
That is, once a procid is set, it will not be changed unless an operating processor setting process as shown in FIG. 4 is performed.

本実施例では、更にプロセッサ親和度Paf(後述)と
いう概念を導入し、mode=3の場合、そのプロセッ
サ親和度Pafが正値のときに限って、procidを
有効とし、負値のときには、即ち、プロセッサ識別子の
判定処理によりそのプロセッサに割付け不可となる判定
結果が連続して所定回数を越えて発生したときには、p
rocjd= Oと見なして、そのプロセスのプロセッ
サ識別子を当該プロセッサ番号に変更する。プライオリ
ティPr323は、前述と同様、プロセスの実行の優先
度を示すものであり、その値が小さい程優先度が高い。
This embodiment further introduces the concept of processor affinity Paf (described later), and in the case of mode=3, procid is valid only when the processor affinity Paf is a positive value, and when it is a negative value, i.e. , when the judgment result that the processor cannot be allocated to that processor occurs more than a predetermined number of times in a row due to the processor identifier judgment process, p
Assuming that rocjd=O, change the processor identifier of the process to the processor number. The priority Pr 323 indicates the priority of execution of a process, as described above, and the smaller the value, the higher the priority.

スケジュール要求カウンタSrc324は、当該プロセ
スが実行待ち状態の時に、次に実行すべきプロセスとし
て選択された回数を示している。スケジュール要求しき
い値Sth325は、Srcの上限値を示している。前
述のプロセッサ親和度Pafは、スケジュール要求カウ
ンタSrcとスケジュール要求し図一 きい値sthとから下記の様に算出される。
The schedule request counter Src324 indicates the number of times the process has been selected as the next process to be executed when the process is in a waiting state. The schedule request threshold Sth325 indicates the upper limit value of Src. The aforementioned processor affinity Paf is calculated as follows from the schedule request counter Src and the schedule request threshold value sth shown in FIG.

プロセッサ親和度Paf= Sth − Src本実施
例では、Src, 8thを上記の如く定めたが、他に
も、Srcを実行待ち状態にある時間、sthをその上
限値とし、あるいはSrcをprocidで示されたプ
ロセッサのキャッシュメモリ内に残っている当該プロセ
スに関するデータ量、sthをその下限値とし、さらに
はSrcをメモリ内に残っている当該プロセスに関する
データ量、8thをその下限値とすることも可能である
Processor affinity Paf = Sth - Src In this embodiment, Src, 8th is defined as above, but it is also possible to set Src to the execution wait state, set sth to its upper limit, or indicate Src by procid. It is also possible to set sth, the amount of data related to the process remaining in the cache memory of the processed processor, as its lower limit, and furthermore, it is also possible to set Src as the amount of data related to the process remaining in memory, and 8th as its lower limit. It is.

第16図に本実施例におるスケジューラの処理フローを
示す。
FIG. 16 shows the processing flow of the scheduler in this embodiment.

スケジューラが動作しているプロセッサのプロセッサ番
号P#を得た(261.−1)後、実行待ちプロセスの
中からプライオリティの最も高いものを選択し(261
−2) .この選択したプロセスのプロセス管理テーブ
ルのプロセッサ識別子procidとプロセッサ制御モ
ードmodeとを得る(261−3)。次に、プロセッ
サ識別子procidを調べる(26]−4)。
After the scheduler obtains the processor number P# of the running processor (261.-1), it selects the process with the highest priority from among the processes waiting to be executed (261.-1).
-2). The processor identifier procid and processor control mode mode of the process management table of this selected process are obtained (261-3). Next, the processor identifier procid is checked (26]-4).

この部分は第2図の処理311−2と同様である。この
とき,当該プロセッサが指定されておらず、かつ、mo
de=3の場合(261−6) 、Srcをインクリメ
ントした(261−7)後、プロセッサ親和度Pafを
調べる(261−8)。プロセッサ親和度Pafが負値
となったときには、当該P#を新しいprocidとし
て(261−9) 、Srcを初期化した後、当該プロ
セスに当該プロセッサを割り付ける(261−5)。
This part is similar to the process 311-2 in FIG. At this time, if the processor is not specified and the mo
When de=3 (261-6), after incrementing Src (261-7), processor affinity Paf is checked (261-8). When the processor affinity Paf becomes a negative value, the P# is set as a new procid (261-9), Src is initialized, and the processor is assigned to the process (261-5).

ステップ261−8でPafの値が負値でないときには
、次にプライオリティが高いプロセスを選択して(26
1−10) 、同じ処理を繰り返す。このプロセス選択
の際、すべての実行待ちプロセスを調べ終ると再び最も
プライオリティの高いプロセスを選択する。
If the value of Paf is not a negative value in step 261-8, the process with the next highest priority is selected (261-8).
1-10) Repeat the same process. When selecting this process, once all waiting processes have been checked, the process with the highest priority is selected again.

次にmode=3の時のスケジューラの動作を説明する
。mode=o,1.2の動作は前述した実施例と同じ
なので省略する。
Next, the operation of the scheduler when mode=3 will be explained. The operation in mode=o, 1.2 is the same as in the embodiment described above, and will therefore be omitted.

今、実行待ちプロセスが1つしかなく、そのプロセス管
理テーブル32が第1図(a)に示す値を持っており、
スケジューラがプロセッサP3で動作していた場合を考
える。このとき、procidの判定(261−4)が
成立しないので、SrcをインクリメントしてN I 
IIとし、プロセッサ親和度Pafを算出する(261
−8)。この場合、正値になるので、次にプライオリテ
ィの高いプロセスを選択する(261−10)。この例
では実行待ちプロセスが1つしかないので、再び同じプ
ロセスが選択され、同じ処理が行われる。最終的には、
6回目の選択でプロセッサ親和度Pafが負値となり、
procidを“3″として当該プロセッサを割り付け
る。プロセッサ親和度Pafの初期値は、スケジュール
要求しきい値sthが大きい程、大きくなり、他のプロ
セッサへの割当てを拒否する回数が増加する。
Currently, there is only one process waiting to be executed, and its process management table 32 has the values shown in FIG. 1(a).
Consider a case where the scheduler is running on processor P3. At this time, since the procid determination (261-4) is not established, Src is incremented and N I
II, and calculate the processor affinity Paf (261
-8). In this case, since the value is positive, the process with the next highest priority is selected (261-10). In this example, since there is only one process waiting to be executed, the same process is selected again and the same process is performed. eventually,
At the sixth selection, the processor affinity Paf becomes a negative value,
The processor is assigned with procid "3". The initial value of the processor affinity Paf increases as the schedule request threshold sth increases, and the number of times that allocation to other processors is rejected increases.

すなわち、スケジュール要求しきい値を大きく設定する
程、そのプロセスと当該プロセッサとの親和度が増加す
るといえる。目的のプロセッサ以外のプロセッサへの割
当て拒否を繰り返している間に、目的のプロセッサが空
きになった場合には、そのプロセッサでのプロセススケ
ジューリングにより、当該プロセスは直ちにその目的の
プロセッサに割当てられることになる。なお、本制御モ
ードは、前述した制御モードとともに採用することがで
きるが、本制御モードのみを独立して採用することも可
能である。
In other words, it can be said that the larger the schedule request threshold is set, the greater the affinity between the process and the processor. If the target processor becomes free while repeatedly denying assignment to a processor other than the target processor, the process will be immediately assigned to the target processor by process scheduling on that processor. Become. Note that this control mode can be employed together with the aforementioned control modes, but it is also possible to employ only this control mode independently.

本実施例の新たな制御モードによれば、プロセスはその
親和度を高く設定することにより、一旦割り当てられた
プロセッサ上で動作する確率が高くなる。これはプロセ
ッサがキャッシュメモリを持ち、そこに多くのデータを
格納している場合、不要なプロセスマイグレーションを
押えてキャッシュメモリのヒット率を高める効果がある
。同時に、一定条件で、プロセッサに対する束縛を解く
ことになり、不用意にプロセッサの稼動率が低下するこ
とを防止できる。
According to the new control mode of this embodiment, by setting its affinity high, a process has a high probability of operating on a processor once allocated. If the processor has a cache memory and stores a lot of data there, this has the effect of suppressing unnecessary process migration and increasing the hit rate of the cache memory. At the same time, under certain conditions, the constraints on the processor are released, making it possible to prevent the operating rate of the processor from inadvertently decreasing.

次にプロセッサ識別子で指定可能なプロセッサの数と実
際のマルチプロセッサシステム内で使用可能な実プロセ
ッサの数が合わない場合についての第5の実施例を示す
Next, a fifth embodiment will be described in which the number of processors that can be specified by the processor identifier does not match the number of real processors that can be used in the actual multiprocessor system.

一般にプロセス(ソフトウェア)からプロセッサを指定
する時には、実プロセッサの数に依存しない様にするこ
とが望ましい。そこで、第19図に示すように、プロセ
スから指定するプロセッサ識別子を論理プロセッサ識別
子290−1とし、プロセッサ番号に対応するプロセッ
サ識別子を物理プロセッサ識別子290 − 2とする
。そして、2つを対応付ける対応テーブル290を設け
る。対応テーブル290は、マルチプロセッサシステム
を初期化するときに共用メモリ5上に作成される。一般
に、論理プロセッサ識別子の方が物理プロセッサ識別子
より多いので、1つの物理プロセッサ識別子に複数の論
理プロセッサ識別子が対応付けられる。
Generally, when specifying a processor from a process (software), it is desirable not to depend on the number of actual processors. Therefore, as shown in FIG. 19, the processor identifier designated by the process is defined as a logical processor identifier 290-1, and the processor identifier corresponding to the processor number is defined as a physical processor identifier 290-2. Then, a correspondence table 290 is provided that associates the two. The correspondence table 290 is created on the shared memory 5 when the multiprocessor system is initialized. Generally, there are more logical processor identifiers than physical processor identifiers, so a plurality of logical processor identifiers are associated with one physical processor identifier.

第19図の例では、論理プロセッサ識別子がII O 
+1〜119” (“0″は汎用コード)まで設定され
ているのに対して、物理プロセッサ識別子は、実プロセ
ッサの台数が3台なので,汎用コードを含めてLL O
 II〜n3uしかない。したがって、論理プロセッサ
識別子“4”〜119”には、物理プロセッサ識別子が
重複して対応づけられている。
In the example of FIG. 19, the logical processor identifier is II O
+1 to 119” (“0” is a general-purpose code), whereas the physical processor identifier is set to LL O including the general-purpose code because the number of real processors is 3.
There are only II to n3u. Therefore, logical processor identifiers "4" to "119" are associated with duplicate physical processor identifiers.

スケジューラのフロー(第2図あるいは第16図)の中
でこの対応テーブル290を用いた場合の詳細処理フロ
ーを第17図に示す。対応テーブル290が作成されて
いる場合(270−1)には、プロセス管理テーブル内
のプロセッサ識別子を論理プロセッサ識別子と見なして
、対応テーブル290よりこれに対応する物理プロセッ
サ識別子290−2を得る(270−2)。そして、こ
れを以後プロセッサ識別子として使用する(270−3
, 270−4)。
FIG. 17 shows a detailed processing flow when this correspondence table 290 is used in the scheduler flow (FIG. 2 or FIG. 16). If the correspondence table 290 has been created (270-1), the processor identifier in the process management table is regarded as a logical processor identifier, and the corresponding physical processor identifier 290-2 is obtained from the correspondence table 290 (270 -2). This will be used as the processor identifier from now on (270-3
, 270-4).

また、動作プロセッサ設定処理(第4図)の中でこの対
応テーブル290を用いた場合の別の詳細フローを第1
8図に示す。対応テーブル290が作成されている場合
には(280−1.) 、指定されているプロセッサ識
別子を論理プロセッサ識別子と見なして、対応テーブル
290よりこれに対応する物理プロセッサ識別子290
−2 (PROCID)を得ル(28o2)。そしてこ
れをプロセス管理テーブル内のプロセッサ識別子321
に設定する。この場合、スケジューラ側では、対応テー
ブル290を参照する必要ないので、第2図のフローを
そのまま使用する。
In addition, another detailed flow when this correspondence table 290 is used in the operation processor setting process (Fig. 4) is shown in the first part.
It is shown in Figure 8. If the correspondence table 290 has been created (280-1.), the specified processor identifier is regarded as a logical processor identifier, and the corresponding physical processor identifier 290 is determined from the correspondence table 290.
-2 (PROCID) obtained (28o2). And this is the processor identifier 321 in the process management table.
Set to . In this case, the scheduler side does not need to refer to the correspondence table 290, so the flow shown in FIG. 2 is used as is.

このように、プロセッサ識別子を、ソフトウェアから見
た論理プロセッサ識別子とハードウエアに依存した物理
プロセッサ識別子とに分けて、これらを対応づける対応
テーブル290を設けることにより、ハードウエア構成
に拘束されることなく、ソフトウェアを作成することが
できる。したがって、プロセッサ台数が増加しても物理
プロセッサ識別子を増すとともに対応テーブルを更新す
るだけでよく、既存のソフトウェアを変更する必要はな
い。
In this way, by dividing the processor identifier into a logical processor identifier seen from the software and a physical processor identifier depending on the hardware, and providing a correspondence table 290 that associates these, it is possible to avoid being constrained by the hardware configuration. , can create software. Therefore, even if the number of processors increases, it is only necessary to increase the physical processor identifier and update the correspondence table, and there is no need to change the existing software.

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

第1図(a) , (b)は本発明によるマルチプロセ
ッサシステムの一実施例のシステム構成図、第2図は本
発明によるプロセススケジューラの一実施例の処理フロ
ー図、第3図は本発明によるプロセスの生成処理のフロ
ー図、第4図は第3図の一部の動作プロセッサ設定処理
のフロー図、第5図は本発明によるプロセスの実行処理
のフロー図、第6図は本発明によるプロセスの終了処理
のフロー図,第7図は第1図の実施例の一応用例のシス
テム構成図、第8図は第1図の実施例の別の応用例のシ
ステム構成図、第9図および第10図は本発明の適用さ
れる具体的システム例の説明図、第11図71一 は本発明の第2の実施例のシステム構成図、第12図(
a) . (b)は第2の実施例におけるプロセススケ
ジューラの処理フロー図、第13図は本発明の第3の実
施例のシステム構成図、第14図は第3の実施例のプロ
セススケジューラの処理フロー図、第15図は本発明の
第4の実施例におけるプロセス管理テーブルの構成図、
第16図は第4の実施例におけるプロセススケジューラ
の処理フロー図、第17図〜第19図は本発明の第5の
実施例の説明図である。 1,2.3・・・プロセス、4・・・接続バス、5・・
・共用メモリ、11・・・プロセッサ番号、31・・・
OSプログラム、32・・プロセッサ管理テーブル、3
11・・・プロセススケジューラ、321・・・プロセ
ッサ識別子、322・・・制御モード。 出願人 株式会社 日 立 製 作 所代理人 弁理士
  富 田 和子 第 図 第 図 プロセスの実行処理 ゝ℃ムし313 第I2 図 (a) 第12図 (b) 第13図 「プーfflL 第」4因 第15図 第17 図 第18図
FIGS. 1(a) and (b) are system configuration diagrams of an embodiment of a multiprocessor system according to the present invention, FIG. 2 is a processing flow diagram of an embodiment of a process scheduler according to the present invention, and FIG. 3 is a system configuration diagram of an embodiment of a multiprocessor system according to the present invention. FIG. 4 is a flow diagram of a process for setting a part of the operating processor in FIG. 3, FIG. 5 is a flow diagram of a process execution process according to the present invention, and FIG. Flowchart of process termination processing, FIG. 7 is a system configuration diagram of one application example of the embodiment of FIG. 1, FIG. 8 is a system configuration diagram of another application example of the embodiment of FIG. 1, and FIGS. FIG. 10 is an explanatory diagram of a specific system example to which the present invention is applied, FIG. 11 is a system configuration diagram of a second embodiment of the present invention, and FIG. 12 (
a). (b) is a processing flow diagram of the process scheduler in the second embodiment, FIG. 13 is a system configuration diagram of the third embodiment of the present invention, and FIG. 14 is a processing flow diagram of the process scheduler in the third embodiment. , FIG. 15 is a configuration diagram of a process management table in the fourth embodiment of the present invention,
FIG. 16 is a processing flow diagram of the process scheduler in the fourth embodiment, and FIGS. 17 to 19 are explanatory diagrams of the fifth embodiment of the present invention. 1, 2. 3... Process, 4... Connection bus, 5...
・Shared memory, 11... Processor number, 31...
OS program, 32... Processor management table, 3
DESCRIPTION OF SYMBOLS 11... Process scheduler, 321... Processor identifier, 322... Control mode. Applicant: Hitachi, Ltd. Representative: Kazuko Tomita, Patent Attorney Figure 15 Figure 17 Figure 18

Claims (1)

【特許請求の範囲】 1、複数のプロセッサと、プログラムおよびデータを格
納し上記複数のプロセッサにより共有される共用メモリ
とを具備し、上記複数のプロセッサ、プログラムおよび
データは、単一のオペレーティングシステムによって制
御されるマルチプロセッサシステムにおいて、プロセス
を管理するプロセス管理テーブルに従い、上記オペレー
ティングシステムのプロセススケジューラが、プロセス
にいずれかのプロセッサを割当てるプロセススケジュー
リング方式であって、 上記プロセス管理テーブルに、各プロセスが動作可能な
プロセッサを指示するプロセッサ割当て情報を記述し、
上記プロセススケジューラは、次に実行すべく選択した
プロセスについて、上記プロセス管理テーブルを参照し
て、当該プロセスのプロセッサ割当て情報により指定さ
れたプロセッサ上で当該プロセスを動作させることを特
徴とするプロセススケジューリング方式。 2、複数のプロセッサにより主記憶装置を共有するマル
チプロセッサシステムにおいて各プロセスにプロセッサ
に割当てるプロセススケジューリング方式であって、 各プロセスごとに当該プロセスが動作可能なプロセッサ
を指定するプロセッサ割当て情報を上記記憶装置内に記
憶させておき、実行待ちのプロセスをプロセッサへ割当
てる際に、当該プロセスの上記プロセッサ割当て情報を
参照し、該プロセッサ割当て情報に応じて、当該プロセ
スへの上記プロセッサの割当ての可否を決定することを
特徴とするプロセススケジューリング方式。 3、上記各プロセスごとに当該プロセスが動作可能なプ
ロセッサを指定するプロセッサ割当て情報に代えて、上
記各プロセッサごとに当該プロセッサが実行可能なプロ
セスを指定するプロセス割当て情報を用いることを特徴
とする請求項2記載のプロセッサスケジューリング方式
。 4、マルチプロセッサ用オペレーティングシステムのプ
ロセススケジューリング方式であって、各プロセスと当
該プロセスが動作可能なプロセッサとを予め対応づけて
おき、空きのプロセッサを実行待ちのプロセスに割当て
る際に、上記予め定めた対応関係に基づいて、当該プロ
セスへの上記プロセッサの割当ての可否を決定すること
を特徴とするプロセススケジューリング方式。 5、上記プロセッサ割当て情報の一つとしていずれのプ
ロセッサでも動作可能であることを示す汎用コードを含
むことを特徴とする請求項1〜4のいずれかに記載のプ
ロセススケジューリング方式。 6、上記プロセッサ割当て情報の一つとして、特定のプ
ロセッサ以外のプロセッサで動作可能であることを示す
コードを含むことを特徴とする請求項1〜5記載のプロ
セススケジューリング方式。 7、上記プロセッサ割当て情報として上記汎用コードが
設定されたプロセスについて、当該プロセスを実行する
プロセッサが決定されたあと当該プロセスの実行が開始
される前に、当該プロセスのプロセッサ割当て情報を当
該プロセッサを指定するコードに変更し、当該プロセス
の実行終了後に上記プロセス割当て情報を上記汎用コー
ドに戻すことを特徴とする請求項5記載のプロセススケ
ジユーリング方式。 8、上記プロセス管理テーブルに、各プロセスごとに制
御モードを記憶する領域を設け、該制御モードの一つと
して、請求項7のプロセススケジューリング方式を指定
するコードを規定したことを特徴とする請求項1記載の
プロセススケジューリング方式。 9、上記制御モードの一つとして、上記プロセッサ割当
て情報を常時固定することを示すコードを規定し、当該
コードが指定されたプロセスについては、プロセス実行
前後を通じて上記プロセッサ割当て情報を変更しないこ
とを特徴とする請求項8記載のプロセススケジューリン
グ方式。 10、番号付けされた複数のプロセッサと、該複数のプ
ロセッサが共有する共用メモリとを有するマルチプロセ
ッサシステムにおけるプロセススケジューリング方式で
あって、 プロセッサで動作するプロセスを管理するプロセス管理
テーブルを上記共用メモリ内に設け、該プロセス管理テ
ーブルに、各プロセスごとに動作可能なプロセッサの番
号を指示するプロセッサ割当て情報を記憶させ、プロセ
ススケジューラは、次に実行すべく選択したプロセスに
ついて、上記プロセス管理テーブルを参照して、当該プ
ロセスのプロセッサ割当て情報により指定された番号に
対応するプロセッサ上で当該プロセスを動作させること
を特徴とするプロセススケジューリング方式。 11、上記プロセッサへの番号付けにおいては、複数の
プロセッサに同一の番号を重複して付加することを許容
する請求項10記載のプロセススケジユーリング方式。 12、上記プロセッサの番号の一つとして汎用コードを
規定し、各プロセスの実行は、当該プロセスのプロセッ
サ割当て情報で指定された番号のプロセッサ上または上
記汎用コードの番号が付与されたプロセッサ上で行わせ
ることを特徴とする請求項10または11記載のプロセ
ススケジューリング方式。 13、各プロセスごとに、上記プロセッサ割当て情報に
より指定されたプロセッサ以外のプロセッサでの実行を
拒絶する程度を、当該プロセスと当該プロセッサとの親
和度を示す数値として定めておき、当該プロセスの実行
待ち状態に関する数値と比較して、該比較結果に応じて
、当該プロセスを上記指定されたプロセッサ以外のプロ
セッサ上で動作させることを特徴とする請求項1、2ま
たは10記載のプロセススケジューリング方式。 14、上記プロセスの実行待ち状態に関する数値は、上
記プロセッサへの割当てを拒絶した回数または当該プロ
セスの実行待ちデータ量であることを特徴とする請求項
13記載のプロセススケジューリング方式。 15、上記プロセスからプロセッサを指定する場合のプ
ロセッサ割当て情報を論理プロセッサ識別子とし、該論
理プロセッサ識別子と、実際のプロセッサに対応する物
理プロセッサ識別子とを対応づけるテーブルを上記共用
メモリ内に設け、論理プロセッサ識別子は物理プロセッ
サ識別子に変換してスケジューリングを行うことを特徴
とする請求項10記載のプロセススケジューリング方式
。 16、複数のプロセッサを有するマルチプロセッサシス
テムにおけるプロセススケジューリング方式において、 上記複数のプロセッサの各々について、予め、当該プロ
セッサが実行可能なプロセスの優先度の範囲を定めてお
き、各プロセッサが次に実行すべきプロセスとして、当
該プロセッサについて定められた上記優先度の範囲内に
ある優先度を有する実行待ちプロセスの中から最も高い
優先度を有するものを選択することを特徴とするプロセ
ススケジューリング方式。 17、複数のプロセッサを有するマルチプロセッサシス
テムにおけるプロセススケジューリング方式において、 各プロセスごとに、上記複数のプロセッサの各々に対す
る優先度を定めておき、各プロセッサが次に実行すべき
プロセスとして、実行待ちプロセスの中から、当該プロ
セッサについて定められた各プロセスの優先度の最も優
先度の高いものを選択することを特徴とするプロセスス
ケジューリング方式。 18、少なくとも2個のプロセッサを有し、該プロセッ
サのいずれにおいても特定のプロセスを実行可能なマル
チプロセッサシステムにおいて、上記特定のプロセスを
実行させるプロセッサを上記少なくとも2個のプロセッ
サのうちのいずれか1個に固定することにより、単一プ
ロセッサシステム用のソフトウェアを修正することなく
利用可能としたことを特徴とするマルチプロセッサシス
テム。 19、少なくとも2個のプロセッサを有し、該プロセッ
サのいずれにおいても特定のプロセスを実行可能なマル
チプロセッサシステムにおいて、当該特定のプロセスの
少なくとも実行開始から終了までの間、上記特定のプロ
セスを実行させるプロセッサを、上記少なくとも2個の
プロセッサのうちのいずれか1個に固定することにより
、上記特定のプロセスの実行途中の実行プロセッサの変
更を防止することを特徴とするマルチプロセッサシステ
ム。 20、少なくとも2個のプロセッサを有し、特定のプロ
セッサでは、種々のプロセスを実行可能なマルチプロセ
ッサシステムにおいて、 上記特定のプロセッサで動作させるプロセスの数を限定
することにより、当該プロセッサでの応答時間を一定値
以内に短縮することを特徴とするマルチプロセッサシス
テム。 21、少なくとも2個のプロセッサを有し、特定のプロ
セッサでは、種々のプロセスを実行可能なマルチプロセ
ッサシステムにおいて、 上記特定のプロセッサで動作させるプロセスの種類を限
定することにより、プロセッサの故障の影響範囲を局所
化することを特徴とするマルチプロセッサシステム。 22、複数のプロセッサと、プログラムおよびデータを
格納し上記複数のプロセッサにより共有される共用メモ
リとを具備し、上記複数のプロセッサ、プログラムおよ
びデータは、単一のオペレーティングシステムによって
制御されるマルチプロセッサシステムにおいて、 上記共用メモリ内に、プロセスごとに当該プロセスの状
態を保持するプロセス管理テーブルを設け、該プロセス
管理テーブルに、各プロセスが動作可能なプロセッサを
指定するプロセッサ割当て情報を記憶する記憶領域を設
けたことを特徴とするマルチプロセッサシステム。 23、いずれにおいても特定のプロセスを実行可能な少
なくとも2個のプロセッサと、プログラムおよびデータ
を格納し上記少なくとも2個のプロセッサにより共有さ
れる共用メモリとを具備し、上記プロセッサ、プログラ
ムおよびデータは、単一のオペレーティングシステムに
よって制御されるマルチプロセッサシステムにおいて、 上記共用メモリ内に、上記少なくとも2個のプロセッサ
のうちの特定のプロセッサでのみ上記特定のプロセスを
実行可能とするプロセッサ割当て情報を格納する記憶領
域を設けたことを特徴とするマルチプロセッサシステム
。 24、各プロセスのプロセッサ割当て情報の動的変更を
制御する制御モードを格納する記憶領域をさらに設けた
ことを特徴とする請求項22または23記載のマルチプ
ロセッサシステム。 25、上記制御モードは、任意のプロセッサで動作可能
とする第1のモードと、プロセスの実行開始から実行終
了まで、特定のプロセッサのみで動作可能とする第2の
制御モードとを含み、第1の制御モードでは、プロセッ
サ割当て情報として任意のプロセッサを指定する汎用コ
ードが設定され、第2の制御モードでは、プロセスを特
定のプロセッサで実行開始する前に、当該プロセスのプ
ロセッサ割当て情報として上記特定のプロセッサが指定
され、プロセスの実行終了後に上記プロセッサ割当て情
報が上記汎用コードに戻されることを特徴とする請求項
24記載のマルチプロセッサシステム。 26、上記制御モードとして、プロセスの生成後、特定
のプロセッサを指定するプロセッサ割当て情報を変更し
ない第3の制御モードをさらに含むことを特徴とする請
求項25記載のマルチプロセッサシステム。 27、請求項22記載のマルチプロセッサシステムの使
用方法であって、 上記共用メモリに対する排他制御が必要なプロセス群に
対して、上記プロセッサ割当て情報を同一に設定するこ
とにより、上記プロセス群を単一のプロセッサ上で動作
させることを特徴とするマルチプロセッサシステムの使
用方法。 28、請求項22記載のマルチプロセッサシステムの使
用方法であって、 重要性の高いプロセス群と、重要性の低いプロセス群と
に別個のプロセッサ割当て情報を設定し、両プロセス群
を別個のプロセッサ上で実行させることを特徴とするマ
ルチプロセッサシステムの使用方法。 29、請求項25記載のマルチプロセッサシステムの使
用方法であって、 上記第2の制御モードを設定することにより、一つのプ
ロセスの実行途中に実行プロセッサが変わることを防止
することを特徴とするマルチプロセッサシステムの使用
方法。 30、請求項26記載のマルチプロセッサシステムの使
用方法であって、 上記共用メモリに対する排他制御が必要なプロセス群に
対して、上記第3の制御モードを設定することにより、
上記プロセス群を単一のプロセッサ上で動作させること
を特徴とするマルチプロセッサシステムの使用方法。 31、請求項26記載のマルチプロセッサシステムの使
用方法であって、 プロセスを重要性の高いプロセス群と重要性の低いプロ
セス群とに分類し、両プロセス群に対して上記第3の制
御モードを設定すると共に、上記両プロセスに異なるプ
ロセッサ割当て情報を設定し、上記両プロセス群を別個
のプロセッサ上で実行させることを特徴とするマルチプ
ロセッサシステムの使用方法。
[Claims] 1. A shared memory that stores programs and data and is shared by the plurality of processors, wherein the plurality of processors, programs, and data are operated by a single operating system. In a controlled multiprocessor system, the process scheduler of the operating system allocates one of the processors to a process according to a process management table for managing processes, and the process management table indicates that each process is describes processor allocation information indicating possible processors,
A process scheduling method characterized in that the process scheduler refers to the process management table for the process selected to be executed next and causes the process to operate on the processor specified by the processor allocation information of the process. . 2. A process scheduling method in which a processor is assigned to each process in a multiprocessor system in which a main memory is shared by a plurality of processors, in which processor assignment information specifying a processor on which the process can operate is stored in the storage device for each process. When allocating a process waiting for execution to a processor, the processor allocation information of the process is referred to, and it is determined whether the processor can be allocated to the process according to the processor allocation information. A process scheduling method characterized by: 3. A claim characterized in that, in place of the processor allocation information that specifies a processor on which the process can run for each of the above processes, process allocation information that specifies the processes that the processor can execute for each of the above processes is used. 2. Processor scheduling method according to item 2. 4. A process scheduling method for a multiprocessor operating system in which each process is associated in advance with a processor on which the process can run, and when allocating an empty processor to a process waiting to be executed, the above predetermined method is used. A process scheduling method characterized by determining whether or not to allocate the processor to the process based on a correspondence relationship. 5. The process scheduling method according to claim 1, wherein the processor allocation information includes a general-purpose code indicating that any processor can operate. 6. The process scheduling method according to claim 1, wherein one of the processor allocation information includes a code indicating that a processor other than the specific processor can operate. 7. For a process for which the above general-purpose code is set as the processor allocation information, after the processor that executes the process is determined and before the execution of the process starts, the processor allocation information of the process is specified to specify the processor. 6. The process scheduling method according to claim 5, wherein the process allocation information is changed to the general-purpose code after execution of the process is completed. 8. A claim characterized in that the process management table is provided with an area for storing control modes for each process, and a code specifying the process scheduling method according to claim 7 is defined as one of the control modes. 1. The process scheduling method described in 1. 9. As one of the control modes, a code indicating that the processor allocation information is always fixed is defined, and for a process to which the code is specified, the processor allocation information is not changed before and after the process is executed. 9. The process scheduling method according to claim 8. 10. A process scheduling method in a multiprocessor system having a plurality of numbered processors and a shared memory shared by the plurality of processors, wherein a process management table for managing processes running on the processors is stored in the shared memory. processor allocation information indicating the number of operable processors for each process is stored in the process management table, and the process scheduler refers to the process management table for the process selected to be executed next. A process scheduling method characterized in that the process is operated on a processor corresponding to a number specified by processor allocation information of the process. 11. The process scheduling system according to claim 10, wherein in numbering the processors, the same number can be assigned to a plurality of processors redundantly. 12. A general-purpose code is defined as one of the above processor numbers, and each process is executed on the processor with the number specified in the processor allocation information of the process or on the processor assigned the above-mentioned general-purpose code number. 12. The process scheduling method according to claim 10 or 11. 13. For each process, the degree to which execution on a processor other than the processor specified by the processor allocation information is refused is determined as a numerical value indicating the degree of affinity between the process and the processor, and the execution wait of the process is determined. 11. The process scheduling method according to claim 1, wherein the process is compared with a numerical value related to the state, and the process is operated on a processor other than the designated processor according to the comparison result. 14. The process scheduling method according to claim 13, wherein the numerical value related to the execution waiting state of the process is the number of times allocation to the processor has been rejected or the amount of data waiting for execution of the process. 15. Processor allocation information used when specifying a processor from the above process is a logical processor identifier, and a table is provided in the shared memory that associates the logical processor identifier with a physical processor identifier corresponding to an actual processor. 11. The process scheduling method according to claim 10, wherein the identifier is converted into a physical processor identifier for scheduling. 16. In a process scheduling method in a multiprocessor system having a plurality of processors, for each of the plurality of processors, the priority range of processes executable by that processor is determined in advance, and each processor executes the next process. 1. A process scheduling method characterized in that a process having the highest priority is selected from among waiting processes having priorities within the priority range determined for the processor as the process to be executed. 17. In a process scheduling method for a multiprocessor system having multiple processors, a priority for each of the multiple processors is determined for each process, and each processor selects one of the processes waiting to be executed as the next process to be executed. A process scheduling method characterized in that a process with the highest priority determined for the processor is selected from among the processes. 18. In a multiprocessor system that has at least two processors and can execute a specific process on any of the processors, the processor that executes the specific process is one of the at least two processors. A multiprocessor system characterized in that software for a single processor system can be used without modification by fixing the software to a single processor. 19. In a multiprocessor system having at least two processors and in which a specific process can be executed on any of the processors, the specific process is executed at least from the start to the end of execution of the specific process. A multiprocessor system characterized in that the processor is fixed to any one of the at least two processors, thereby preventing the execution processor from being changed during execution of the specific process. 20. In a multiprocessor system that has at least two processors and can execute various processes on a specific processor, by limiting the number of processes that are run on the specific processor, the response time of the processor can be improved. A multiprocessor system characterized by shortening the value within a certain value. 21. In a multiprocessor system that has at least two processors and can execute various processes on a specific processor, the range of influence of a processor failure can be reduced by limiting the types of processes that are run on the specific processor. A multiprocessor system characterized by localization. 22. A multiprocessor system comprising a plurality of processors and a shared memory that stores programs and data and is shared by the plurality of processors, wherein the plurality of processors, programs and data are controlled by a single operating system. In the above shared memory, a process management table is provided for each process to hold the state of the process, and a storage area is provided in the process management table to store processor allocation information specifying processors on which each process can operate. A multiprocessor system characterized by: 23, comprising at least two processors each capable of executing a specific process, and a shared memory that stores programs and data and is shared by the at least two processors, the processors, programs and data comprising: In a multiprocessor system controlled by a single operating system, the shared memory stores processor allocation information that allows the specific process to be executed only by a specific processor of the at least two processors. A multiprocessor system characterized by providing areas. 24. The multiprocessor system according to claim 22 or 23, further comprising a storage area for storing a control mode for controlling dynamic change of processor allocation information for each process. 25. The above control modes include a first mode in which any processor can operate, and a second control mode in which only a specific processor can operate from the start of process execution to the end of execution. In the second control mode, a general-purpose code that specifies an arbitrary processor is set as processor allocation information, and in the second control mode, the above-mentioned specific code is set as processor allocation information for the process before starting execution on a specific processor. 25. The multiprocessor system according to claim 24, wherein a processor is specified and the processor allocation information is returned to the general-purpose code after execution of a process is completed. 26. The multiprocessor system according to claim 25, wherein the control mode further includes a third control mode in which processor allocation information specifying a specific processor is not changed after a process is generated. 27. The method of using the multiprocessor system according to claim 22, wherein the process group that requires exclusive control over the shared memory is configured to have the same processor allocation information. A method of using a multiprocessor system characterized by operating on a processor. 28. A method of using the multiprocessor system according to claim 22, wherein separate processor allocation information is set for a process group of high importance and a process group of low importance, and both process groups are placed on separate processors. A method of using a multiprocessor system characterized by running the system on a computer. 29. A method for using a multiprocessor system according to claim 25, characterized in that by setting the second control mode, changing the execution processor during execution of one process is prevented. How to use your processor system. 30. The method of using the multiprocessor system according to claim 26, by setting the third control mode for a process group that requires exclusive control over the shared memory,
A method of using a multiprocessor system, characterized in that the above process group is operated on a single processor. 31. A method of using the multiprocessor system according to claim 26, wherein processes are classified into a process group of high importance and a process group of low importance, and the third control mode is applied to both process groups. A method for using a multiprocessor system, comprising: setting different processor allocation information for both processes, and causing both process groups to be executed on separate processors.
JP1060092A 1989-03-13 1989-03-13 Process scheduling method Expired - Fee Related JP3019317B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1060092A JP3019317B2 (en) 1989-03-13 1989-03-13 Process scheduling method
DE4007998A DE4007998A1 (en) 1989-03-13 1990-03-13 Process planning method for multiple computer system - using process control table from which computer are selected for each process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1060092A JP3019317B2 (en) 1989-03-13 1989-03-13 Process scheduling method

Publications (2)

Publication Number Publication Date
JPH02238556A true JPH02238556A (en) 1990-09-20
JP3019317B2 JP3019317B2 (en) 2000-03-13

Family

ID=13132102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1060092A Expired - Fee Related JP3019317B2 (en) 1989-03-13 1989-03-13 Process scheduling method

Country Status (1)

Country Link
JP (1) JP3019317B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260528A (en) * 2005-02-18 2006-09-28 Hitachi Ltd Computer control method, management computer and processing program therefor
JP2006277487A (en) * 2005-03-30 2006-10-12 Hitachi Ltd Disk array device and control method thereof
JP2008242948A (en) * 2007-03-28 2008-10-09 Toshiba Corp Information processor and operation control method of same device
JP2009527828A (en) * 2006-02-17 2009-07-30 クゥアルコム・インコーポレイテッド System and method for multiprocessor application support
WO2012026034A1 (en) * 2010-08-27 2012-03-01 富士通株式会社 Scheduler, multi-core processor system, and scheduling method
WO2020166437A1 (en) * 2019-02-13 2020-08-20 日本電信電話株式会社 Server platform and physical cpu allocation program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58115570A (en) * 1981-12-29 1983-07-09 Fuji Electric Co Ltd Processor allocating system
JPS6275739A (en) * 1985-09-30 1987-04-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Assigning method for task
JPS62123552A (en) * 1985-11-22 1987-06-04 Nec Corp Allocation system for central processing unit
JPS62160563A (en) * 1986-01-09 1987-07-16 Toshiba Corp Information processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58115570A (en) * 1981-12-29 1983-07-09 Fuji Electric Co Ltd Processor allocating system
JPS6275739A (en) * 1985-09-30 1987-04-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Assigning method for task
JPS62123552A (en) * 1985-11-22 1987-06-04 Nec Corp Allocation system for central processing unit
JPS62160563A (en) * 1986-01-09 1987-07-16 Toshiba Corp Information processing system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260528A (en) * 2005-02-18 2006-09-28 Hitachi Ltd Computer control method, management computer and processing program therefor
JP2006277487A (en) * 2005-03-30 2006-10-12 Hitachi Ltd Disk array device and control method thereof
JP2009527828A (en) * 2006-02-17 2009-07-30 クゥアルコム・インコーポレイテッド System and method for multiprocessor application support
JP2008242948A (en) * 2007-03-28 2008-10-09 Toshiba Corp Information processor and operation control method of same device
WO2012026034A1 (en) * 2010-08-27 2012-03-01 富士通株式会社 Scheduler, multi-core processor system, and scheduling method
CN103080903A (en) * 2010-08-27 2013-05-01 富士通株式会社 Scheduler, multi-core processor system, and scheduling method
JP5516744B2 (en) * 2010-08-27 2014-06-11 富士通株式会社 Scheduler, multi-core processor system, and scheduling method
US8996811B2 (en) 2010-08-27 2015-03-31 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
US9430388B2 (en) 2010-08-27 2016-08-30 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
WO2020166437A1 (en) * 2019-02-13 2020-08-20 日本電信電話株式会社 Server platform and physical cpu allocation program
JP2020134988A (en) * 2019-02-13 2020-08-31 日本電信電話株式会社 Server base and physical cpu allocation program

Also Published As

Publication number Publication date
JP3019317B2 (en) 2000-03-13

Similar Documents

Publication Publication Date Title
JP2866241B2 (en) Computer system and scheduling method
KR100463235B1 (en) Method for reserving resources
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
US4779194A (en) Event allocation mechanism for a large data processing system
US9201689B2 (en) Software emulation of massive hardware threading for tolerating remote memory references
US5553291A (en) Virtual machine control method and virtual machine system
JP2893071B2 (en) Thread private memory for multi-threaded digital data processor
US4829422A (en) Control of multiple processors executing in parallel regions
US11893390B2 (en) Method of debugging a processor that executes vertices of an application, each vertex being assigned to a programming thread of the processor
JPH0673108B2 (en) How to restrict guest behavior to system resources allocated to guests
CN103793255A (en) Configurable multi-main-mode multi-OS-inner-core real-time operating system structure and starting method
US8954969B2 (en) File system object node management
US11645081B2 (en) Handling exceptions in a multi-tile processing arrangement
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
EP0547991A2 (en) Adaptive method for starting tasks in a multi-tasking operating system
US8387009B2 (en) Pointer renaming in workqueuing execution model
JPH06243112A (en) Multiprocessor equipment
JPH02238556A (en) Process scheduling methods and multiprocessor systems
CA1289674C (en) Task scheduling mechanism for large data processing systems
US20090320036A1 (en) File System Object Node Management
US8010963B2 (en) Method, apparatus and program storage device for providing light weight system calls to improve user mode performance
CN116244073A (en) Resource-aware task allocation method for hybrid key partition real-time operating system
KR102575773B1 (en) Processor capable of processing external service requests using a symmetrical interface
JP2005266841A (en) A computer system with a dedicated processor
US9547522B2 (en) Method and system for reconfigurable virtual single processor programming model

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080107

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees