JP2007164421A - Parallel processors, parallel processing method and parallel processing program - Google Patents
Parallel processors, parallel processing method and parallel processing program Download PDFInfo
- Publication number
- JP2007164421A JP2007164421A JP2005359069A JP2005359069A JP2007164421A JP 2007164421 A JP2007164421 A JP 2007164421A JP 2005359069 A JP2005359069 A JP 2005359069A JP 2005359069 A JP2005359069 A JP 2005359069A JP 2007164421 A JP2007164421 A JP 2007164421A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- guest
- task
- program
- host
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
複数のプログラムを切り替えて実行することにより、並列して処理する並列処理装置に関する。特に、コンピュータを並列処理装置として機能させるプログラムを、並列処理装置が管理する複数のプログラムの一つとして実行する並列処理装置に関する。 The present invention relates to a parallel processing apparatus that performs processing in parallel by switching and executing a plurality of programs. In particular, the present invention relates to a parallel processing apparatus that executes a program that causes a computer to function as a parallel processing apparatus as one of a plurality of programs managed by the parallel processing apparatus.
従来、1つのCPU(Central Proccessing Unit)を有するコンピュータ上で、複数のマルチタスクOS(Operating System)(以下、単に「OS」という)を並列して動作させる技術がある。
例えば、一方のOSをホストOSとし、他方のOSをゲストOSとして、ゲストOSをホストOS上の1つのタスクとして動作させることにより、2つのOSを共存させるマルチOSシステムがある。
マルチOSシステムにおいては、ハードウェアからの割込が発生した場合、その割込を処理すべきタスクを管理しているOSが動作していないと、正しく割込を処理することができない。
そのため、例えば、ホストOSが割込を処理すべきOSを判断し、ゲストOSが処理すべき割込である場合には、割込があったことを示すフラグをセットしておき、その後、ゲストOSに切り替わったときに、ゲストOSがフラグをチェックして、ゲストOSの割込ハンドラを呼び出す(例えば、非特許文献1)。
2. Description of the Related Art Conventionally, there is a technique for operating a plurality of multitasking OSs (hereinafter simply referred to as “OSs”) in parallel on a computer having a single CPU (Central Processing Unit).
For example, there is a multi-OS system in which two OSs coexist by operating one guest OS as a host OS, the other OS as a guest OS, and the guest OS as a task on the host OS.
In a multi-OS system, when an interrupt from hardware occurs, the interrupt cannot be processed correctly unless the OS that manages the task that should handle the interrupt is operating.
Therefore, for example, the host OS determines the OS that should process the interrupt, and if the guest OS is an interrupt that should be processed, a flag indicating that there was an interrupt is set, and then the guest When switching to the OS, the guest OS checks the flag and calls an interrupt handler of the guest OS (for example, Non-Patent Document 1).
また、ホストOS、ゲストOSという関係を設けず、複数のOSをOS切替プログラムの管理下において、OS切替プログラムが、OS切替機能、割込振分け機能、OS間通信機能などを実現することにより、複数のOSを共存させるマルチOSシステムもある(例えば、特許文献1)。
ホストOSとゲストOSとを設けるマルチOSシステムでは、各OSが個別に割込マスクを設定すると、割込処理の優先順位に矛盾が生じ、優先的に処理しなければならない割込がマスクされてしまうなどの課題がある。
また、OS切替プログラムがOSを管理するマルチOSシステムで、既存のOSを動作させようとすると、OS切替プログラムがハードウェアをエミュレートする必要があり、処理のオーバーヘッドが発生するという課題がある。
また、OS切替プログラムがハードウェアをエミュレートしない場合には、既存のOSをそのまま動作させることができず、大幅な修正が必要になるという課題がある。
In a multi-OS system provided with a host OS and a guest OS, if each OS sets an interrupt mask individually, inconsistency occurs in the priority of interrupt processing, and interrupts that must be processed preferentially are masked. There is a problem such as end.
In addition, when an OS is to be operated in a multi-OS system in which the OS switching program manages the OS, the OS switching program needs to emulate hardware, resulting in a processing overhead.
Further, when the OS switching program does not emulate hardware, the existing OS cannot be operated as it is, and there is a problem that significant correction is required.
この発明は、例えば、上記のような課題を解決するためになされたものであり、ホストOSとゲストOSとを設けるマルチOSシステムにおいて、矛盾なく割込処理を行えるようにするとともに、既存のOSをわずかに修正するだけで、利用できるようにすることを目的とする。 The present invention has been made to solve the above-described problems, for example, and in a multi-OS system provided with a host OS and a guest OS, interrupt processing can be performed without contradiction, and an existing OS The purpose is to make it possible to use it with a slight modification.
この発明にかかる並列処理装置は、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が入力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部と、
を有することを特徴とする。
The parallel processing device according to the present invention is:
A guest parallel processing program that manages a plurality of programs as guest tasks, and switches and executes the guest tasks, thereby causing the computer to function as a guest parallel processing device that processes the plurality of programs in parallel, and other programs In a parallel processing device that processes the plurality of programs and the other programs in parallel by managing the host tasks and switching and executing the host tasks,
An execution device for executing the program;
A storage device for storing information;
Interrupts the execution of the program being executed by the execution device and outputs an interrupt signal to the execution device that requests the execution device to execute an interrupt processing program for processing an interrupt. An interrupt signal input device;
Based on a request by an interrupt signal input by the interrupt signal input device, an interrupt vector storage unit that stores information indicating a program executed by the execution device as an interrupt vector using the storage device;
A task selection unit for selecting a host task to be executed by the execution device from the host tasks;
Different interrupt vectors are stored in the interrupt vector when the host task selected by the task selection unit is the other program and when the host task selected by the task selection unit is the guest parallel processing program. Interrupt vector rewriting part to be stored in the part,
It is characterized by having.
この発明によれば、例えば、ゲスト並列処理プログラム(ゲストOS)を実行中と、それ以外の場合とにおいて、異なる割込ベクタを割込ベクタ記憶部に記憶させるので、割込を処理すべきOSと異なるOSを実行中に、割込が発生した場合であっても、異なるOS下で割込処理が実行されることがなく、割込の発生による処理の混乱を回避することができるという効果を奏する。 According to the present invention, for example, different interrupt vectors are stored in the interrupt vector storage unit during execution of the guest parallel processing program (guest OS) and in other cases, so that the OS to process the interrupts Even when an interrupt is generated while an OS different from that is executed, the interrupt process is not executed under the different OS, and the confusion of the process due to the occurrence of the interrupt can be avoided. Play.
実施の形態1.
実施の形態1を、図1〜図16を用いて説明する。
図1は、この実施の形態における並列処理装置900のハードウェア構成の一例を示すハードウェア構成図である。
並列処理装置900は、実行装置901、記憶装置902、入力装置903、出力装置904、割込信号入力装置905、時計装置906を有する。
The first embodiment will be described with reference to FIGS.
FIG. 1 is a hardware configuration diagram illustrating an example of a hardware configuration of a parallel processing device 900 according to this embodiment.
The parallel processing device 900 includes an
実行装置901は、例えば、CPU(Central Processing Unit)などである。
実行装置901は、記憶装置902が記憶したプログラムなどを実行し、以下に説明する各機能ブロックを実現する。
なお、以下に説明する各機能ブロックは、ハードウェアやファームウェアによって実現してもよい。
The
The
Note that each functional block described below may be realized by hardware or firmware.
記憶装置902は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)などの内部記憶装置、ハードディスク装置やSD(Sequred Degital)メモリなどの外部記憶装置などである。
記憶装置902は、実行装置901が実行するプログラムのほか、入力装置903から入力した情報、実行装置901が処理した情報、出力装置904が出力する情報などを記憶する。
The
In addition to the program executed by the
入力装置903は、例えば、キーボードやマウスなどの操作入力装置、マイクなどの音声入力装置、スキャナやカメラなどの画像入力装置などである。
入力装置903は、各種情報を入力する。
また、入力装置903は、例えば、他の装置と接続するインターフェース装置であって、他の装置からの情報を入力する装置であってもよい。
The
The
The
出力装置904は、例えば、CRT(Cathode Ray Tube)装置などの画像表示装置、スピーカなどの音声出力装置、プリンタなどの画像印刷装置などである。
出力装置904は、各種情報を出力する。
また、出力装置904は、例えば、他の装置と接続するインターフェース装置であって、他の装置に対して情報を出力する装置であってもよい。
The
The
The
時計装置906は、例えば、発振回路とカウンタなどから構成され、現在の時刻あるいはリセット信号を受けてからの経過時間を測定する装置である。
The
割込信号入力装置905は、記憶装置902、入力装置903、出力装置904、時計装置906の状態が所定の状態になったことを検出し、実行装置901に対して、割込信号を出力する。
例えば、入力装置903が操作者の入力を受けた場合、出力装置904が画像の印刷を完了した場合、時計装置906が測定した時間が所定の時間に達した場合などに、割込信号を出力する。
なお、割込信号入力装置905は、実行装置901であるCPUの一部であってもよい。
The interrupt
For example, when the
Note that the interrupt
図2は、この実施の形態における並列処理装置900において実行されるプログラム(タスク)の関係の一例を示す概念図である。
並列処理装置900において実行されるプログラムには、ホストOS100(Operating System)、ゲストOS200、ホストOS上のタスク106、OS切替用タスク107、ゲストOS上のタスク206などがある。
FIG. 2 is a conceptual diagram showing an example of the relationship of programs (tasks) executed in the parallel processing device 900 in this embodiment.
The programs executed in the parallel processing device 900 include a host OS 100 (Operating System), a
ホストOS100は、並列処理装置900が処理するプログラムのうちから実行するプログラムを選択し、実行装置901に実行させる。また、実行中のプログラムを中断し、他のプログラムを実行する場合に、実行中のプログラムをあとで再開できるよう、必要な情報(コンテキスト)を保存しておき、実行再開時に復元する。
ホストOS100は、並列処理プログラムの一例である。
The host OS 100 selects a program to be executed from among the programs processed by the parallel processing device 900 and causes the
The host OS 100 is an example of a parallel processing program.
ホストOS100は、複数のプログラムにより構成される。ホストOS100は、スケジューラ101、割込処理103、マスク設定処理104、OS間同期処理105などを行うプログラムを有し、割込ベクタ102、マスクテーブル108などを記憶装置902を用いて記憶している。
The host OS 100 is composed of a plurality of programs. The host OS 100 has programs for performing a
スケジューラ101は、ホストタスク110(ゲストOS200、ホストOS上のタスク106、OS切替用タスク107など)のスケジューリングなどの処理を行うプログラムである。
割込処理103は、割込信号入力装置905が出力した割込信号により実行され、それぞれの割込原因に対応する処理を行うプログラムである。
割込ベクタ102は、割込信号入力装置905が出力した割込信号により実行する割込処理103を示す情報(例えば、割込処理103を記憶したメモリ(記憶装置902)のアドレスなど)である。
マスク設定処理104は、優先順位の高い処理の実行中に、優先順位の低い割込処理を実行しないように、割込処理103の実行を制限するための割込マスクを設定するプログラムである。
マスクテーブル108は、マスク設定処理104において設定する割込マスクについての情報である。
OS間同期処理105は、ホストタスク110からゲストタスク210(ゲストOS上のタスク206)に対して通知するメッセージを処理するプログラムである。
The
The
The
The
The mask table 108 is information on the interrupt mask set in the
The
ホストOS上のタスク106は、ホストOS100が管理するプログラムであり、並列処理装置900において、並列して処理されるプログラムである。
ホストOS上のタスク106は、他のプログラムの一例である。
The
The
OS切替用タスク107は、実行装置901がゲストタスク210を実行しているときに、割込信号入力装置905が出力した割込信号に対応する割込処理がホストOS100上のものである場合に、OSをゲストOSからホストOSに切り替えるためのプログラムである。
OS切替用タスク107は、他のプログラムの一例である。
The
The
ゲストOS200は、ホストOS100と同様、複数のプログラムのうちから、実行するプログラムを選択し、実行装置901に実行させるプログラムである。ホストOS100と異なる点は、並列処理装置900が処理するプログラムのうち、ゲストタスク210を管理し、それ以外のプログラム(例えば、ホストOS上のタスク106、OS切替用タスクなど)は管理しない点である。また、ゲストOS200自体が、ホストOS100の管理を受けるホストタスク110の一つである点も異なる。
ゲストOS200は、ゲスト並列処理プログラムの一例である。
Similar to the host OS 100, the
The
ゲストOS200は、複数のプログラムで構成される。ゲストOS200は、スケジューラ201、割込処理203、マスク設定処理204、OS間同期処理205などを行うプログラムを有し、割込ベクタ202などを記憶装置902を用いて記憶している。
The
スケジューラ201は、ゲストタスク210のスケジューリングなどの処理を行うプログラムである。
割込処理203は、割込信号入力装置905が出力した割込信号により実行され、それぞれの割込原因に対応する処理を行うプログラムである。
割込ベクタ202は、割込信号入力装置905が出力した割込信号により実行する割込処理203を示す情報(例えば、割込処理203を記憶したメモリ(記憶装置902)のアドレスなど)である。
マスク設定処理204は、優先順位の高い処理の実行中に、優先順位の低い割込処理を実行しないように、割込処理203の実行を制限するための割込マスクを設定するプログラムである。
OS間同期処理205は、ホストタスク110からゲストタスク210に対して通知されたメッセージを処理するプログラムである。
The
The interrupt
The interrupt
The
The
ゲストOS上のタスク206は、ゲストOS200が管理するプログラムであり、並列処理装置900において、並列して処理されるプログラムである。
ゲストOS上のタスク206は、複数のプログラムの一例である。
The
The
図3は、この実施の形態における並列処理装置900の機能ブロックの構成の一例を示すブロック構成図である。
並列処理装置900は、割込処理部310、ディスパッチ部320、スケジュール部330、優先度記憶部391、コンテキスト記憶部392などを有する。
FIG. 3 is a block configuration diagram illustrating an example of a functional block configuration of the parallel processing device 900 according to this embodiment.
The parallel processing device 900 includes an interrupt processing unit 310, a dispatch unit 320, a schedule unit 330, a
割込処理部310は、割込信号入力装置905が出力した割込信号に基づいて、対応する割込処理103,203を実行装置901に実行させる。
割込処理部310は、例えば、CPUのハードウェアによって実現するが、他の方法で実現してもよい。
割込処理部310は、割込ベクタ記憶部311、割込マスク記憶部312、割込処理実行部313を有する。
The interrupt processing unit 310 causes the
The interrupt processing unit 310 is realized by CPU hardware, for example, but may be realized by other methods.
The interrupt processing unit 310 includes an interrupt
割込ベクタ記憶部311は、割込ベクタ102または割込ベクタ202を記憶する。割込ベクタ記憶部311は、例えば、所定のアドレスを有するメモリ(記憶装置902)であり、割込信号の番号に対応するアドレスに、割込処理103,203を記憶したメモリ(記憶装置902)の開始アドレスを記憶する。
The interrupt
割込マスク記憶部312は、割込マスクを記憶する。割込マスク記憶部312は、例えば、CPUの割込マスクレジスタであり、割込処理を許可する割込信号を示す情報を、割込マスクとして記憶する。
割込マスクは、例えば、割込信号の種類と同じ数のビット(割込マスクパターン)を有し、割込信号との論理積をとることにより、割込処理を許可する割込信号だけを抽出する。
また、例えば、割込マスクは、割込レベルを示す整数値(割込マスクレベル)であり、割込信号のレベルと割込マスクの値とを比較して、割込信号のレベルのほうが低い場合に、割込処理を許可しないものであってもよい。
The interrupt
The interrupt mask has, for example, the same number of bits (interrupt mask pattern) as the type of interrupt signal, and by taking the logical product with the interrupt signal, only the interrupt signal that permits interrupt processing is obtained. Extract.
Also, for example, the interrupt mask is an integer value (interrupt mask level) indicating the interrupt level, and the interrupt signal level is lower when the interrupt signal level is compared with the interrupt mask value. In some cases, interrupt processing may not be permitted.
割込処理実行部313は、割込マスク記憶部312が記憶した割込マスクにより許可された割込信号を割込信号入力装置905が出力した場合に、実行装置901が実行しているプログラムの実行を中断させ、割込ベクタ記憶部311が記憶した割込ベクタによって示される割込処理103,203を、実行装置901に実行させる。
例えば、現在のPC(Program Counter)の値をスタックに退避し、割込信号に対応する割込ベクタの値を、PCに読み込む。
When the interrupt
For example, the current PC (Program Counter) value is saved in the stack, and the interrupt vector value corresponding to the interrupt signal is read into the PC.
ディスパッチ部320(ディスパッチャともいう)は、実行装置901が実行するホストタスク110を切り替える際(タスク切替時)、それまで実行していたホストタスク110を、あとで再開できるよう、ホストタスク110の実行に必要な情報(PCの値、レジスタの値、メモリ(記憶装置902)が記憶したスタックや一時変数の値など。以下「コンテキスト」という)をコンテキスト記憶部392に記憶させておく。ディスパッチ部320は、中断したホストタスク110を再開する際、コンテキスト記憶部392が記憶したコンテキストを読み出して、復元し、中断前の続きが実行できるようにする。
ディスパッチ部320は、実行装置901がスケジューラ101を実行することにより実現する。
The dispatch unit 320 (also referred to as a dispatcher) executes the host task 110 so that the host task 110 executed so far can be resumed later when the host task 110 executed by the
The dispatch unit 320 is realized by the
ディスパッチ部320は、コンテキスト書換部321、割込ベクタ書換部323、マスク設定部324などを有する。
コンテキスト書換部321は、実行を中断するホストタスク110のコンテキストをコンテキスト記憶部392に記憶させ、実行を再開するホストタスク110のコンテキストを、コンテキスト記憶部392から復元する。
The dispatch unit 320 includes a
The
割込ベクタ書換部323は、OS切替時に、割込ベクタ記憶部311が記憶した割込ベクタをコンテキスト記憶部392に記憶させ、復元する。
ここで、「OS切替時」とは、ホストタスク110のうち、ゲストOS200の実行を中断して、それ以外のホストタスク110(ホストOS上のタスク106、OS切替用タスク107など)を実行する場合、あるいは逆に、それ以外のホストタスク110(ホストOS上のタスク106、OS切替用タスク107など)の実行を中断して、ゲストOS200を実行する場合をいう。
割込処理103,203の管理は、各OSが行っているので、OS切替時には、割込ベクタ記憶部311が記憶した割込ベクタを書き換える必要がある。そこで、割込ベクタ書換部323は、割込ベクタ記憶部311が記憶した割込ベクタを、OSのコンテキストとして、保存・復元する。
The interrupt
Here, “when OS is switched”, among the host tasks 110, the execution of the
Since each OS manages the interrupt
マスク設定部324は、タスク切替時に、割込マスク記憶部312が記憶した割込マスクをコンテキスト記憶部392に記憶させ、復元する(マスク設定処理104)。
この実施の形態では、割込マスクも、タスクのコンテキストの一部として、タスク切替時に保存・復元する。
The
In this embodiment, the interrupt mask is also saved and restored as part of the task context at the time of task switching.
コンテキスト記憶部392は、記憶装置902を用いて、コンテキストおよび割込マスクをホストタスク110ごとに記憶する。また、コンテキスト記憶部392は、記憶装置902を用いて、割込ベクタをOSごとに記憶する。
The
優先度記憶部391は、記憶装置902を用いて、ホストタスク110の優先度を記憶する。
「優先度」とは、ホストタスク110を実行する優先順位を示す情報である。実行可能な状態にあるホストタスク110が複数ある場合に、どのホストタスク110を実行するかを判断する基準となり、優先度に基づいて判断した優先順位が最も高いホストタスク110を実行する。
The
“Priority” is information indicating the priority of executing the host task 110. When there are a plurality of host tasks 110 in an executable state, the host task 110 having the highest priority determined based on the priority is executed as a reference for determining which host task 110 is to be executed.
スケジュール部330(スケジューラともいう)は、優先度記憶部391が記憶した優先度に基づいて、実行装置901が実行するホストタスク110を選択する。
スケジュール部330は、実行装置901がスケジューラ101を実行することにより実現する。
The scheduling unit 330 (also referred to as a scheduler) selects the host task 110 to be executed by the
The schedule unit 330 is realized by the
スケジュール部330は、実行可能判断部331、タスク選択部332、マスクテーブル生成部333、マスクテーブル記憶部334などを有する。
The schedule unit 330 includes an
実行可能判断部331は、ホストタスク110が実行可能な状態であるか否かを判断する。
「実行可能な状態」とは、ホストタスク110が、そのタスクを実行するために必要な情報、リソースがすべて揃っていて、実行装置901が空けば、すぐにでも実行できる状態にあることをいう。
これに対して、「実行可能な状態でない」とは、ホストタスク110が、例えば、入力待ち、出力完了待ち、タイミング調整、他のタスクの処理結果待ち、メモリ不足などにより、実行装置901が利用可能であっても、すぐには実行できない状態にあることをいう。
The
The “executable state” means that the host task 110 is ready to be executed as soon as all information and resources necessary for executing the task are available and the
On the other hand, “not ready for execution” means that the host task 110 uses the
タスク選択部332は、実行可能判断部331が実行可能な状態であると判断したホストタスク110について、優先度記憶部391が記憶した優先度に基づいて、優先順位を算出し、もっとも優先順位の高いホストタスク110を選択する。
The
マスクテーブル生成部333は、優先度記憶部391が記憶した優先度に基づいて、マスクテーブル108を生成し、マスクテーブル記憶部334に記憶させる。
マスクテーブル記憶部334は、マスクテーブル生成部333が生成したマスクテーブル108を記憶する。
The mask
The mask
割込処理103,203は、原則として、割込信号入力装置905が割込信号を出力したときに実行するものなので、スケジュール部330、ディスパッチ部320の管理外で実行され、優先順位という概念がない。
しかし、緊急度の高い処理を実行中に、緊急度の低い割込についての割込処理が発生することを防ぐ必要があるため、割込マスクによって、緊急度の低い割込処理の発生を防ぐ。
したがって、割込マスクによって割込処理を禁止された割込処理は、その割込マスクを設定したホストタスク110よりも、優先順位が低いと考えることができる。
Since the interrupt
However, since it is necessary to prevent interrupt processing for interrupts with low urgency during execution of processing with high urgency, the interrupt mask prevents the occurrence of interrupt processing with low urgency. .
Therefore, it can be considered that an interrupt process whose interrupt process is prohibited by the interrupt mask has a lower priority than the host task 110 that sets the interrupt mask.
図4は、この実施の形態におけるタスクの優先順位の一例を示す概念図である。
割込処理タスク111〜115は、割込信号入力装置905が割込信号を出力したときに実行される割込処理103である。割込処理タスク111〜115は、スケジュール部330の管理外にあり、厳密な意味での「タスク」ではないが、ここでは、割込マスクにより、通常のタスクとの間に優先順位を考えることができるので、ホストタスク110の一種として扱う。
FIG. 4 is a conceptual diagram showing an example of task priorities in this embodiment.
Interrupt
通常処理タスク121〜125は、ホストOS上のタスク106であり、通常の処理を行う。
通常処理タスク121〜125は、優先度記憶部391が記憶した優先度に基づいて、優先順位が定められており、この図では、上にいくほど優先順位が高いものとして記述している。
The
The
通常処理タスク121〜125には、割込処理タスク111〜115の処理結果を待つものがある。例えば、通常処理タスク121は、割込処理タスク111の処理結果を待って、実行可能な状態でなくなることがある。同様に、通常処理タスク122,123,125は、それぞれ、割込処理タスク112,113,115の処理結果を待つ。また、通常処理タスク124は、割込処理タスクの処理結果を待つことがないタスクである。
Some of the
通常処理タスク121のほうが通常処理タスク122よりも優先順位が高いので、通常処理タスク121が実行可能な状態である間は、通常処理タスク122が実行可能な状態となっても、タスク選択部332は通常処理タスク121を選択し、通常処理タスク122を実行することはない。
すなわち、通常処理タスク122が処理結果を待っている割込処理タスク112の処理が終了して、通常処理タスク122が実行可能な状態となっても、通常処理タスク121が実行可能な状態でなくなるまで、待つことになる。
したがって、割込発生時に割込処理タスク112をすぐ実行する必要はなく、通常処理タスク121が終わるまで待つことができる。
そこで、通常処理タスク121を実行中は、割込処理タスク112の実行を許可しないよう割込マスクを設定することにより、優先順位の高い通常処理タスク121の実行が中断されないようにする。
すなわち、割込処理タスク112の優先順位は、通常処理タスク121と通常処理タスク122との間であると考えることができる。
Since the
That is, even if the processing of the interrupt
Therefore, it is not necessary to immediately execute the interrupt
Therefore, while the
That is, the priority order of the interrupt
このように、各タスクの優先度と、それぞれのタスクが待つ割込処理とがわかれば、各タスクを実行中に設定すべき割込マスクを算出することができる。 As described above, if the priority of each task and the interrupt process that each task waits for are known, an interrupt mask to be set during execution of each task can be calculated.
マスクテーブル生成部333は、このようにして、ホストタスク110ごとの割込マスクを生成する。
In this way, the mask
ゲストOS200は、ホストタスク110の一つとして、優先順位を有する。この例では、通常処理タスク122よりも優先順位が低く、通常処理タスク123よりも優先順位が高いものとして、ゲストOS200の優先度が設定され、優先度記憶部391が記憶している。
The
OS切替用タスク107は、ゲストOS200よりも優先順位を高く設定する。なお、OS切替用タスク107とゲストOS200との間の優先順位を有するホストタスク110がないほうが好ましい。
The
ゲストOS200が管理するゲストタスク210には、例えば、割込処理タスク211〜212、通常処理タスク221〜223などがある。これらのタスクも、ゲストOS200の管理内において、優先順位を有する。あるいは、ゲストOS200におけるタスク管理は、優先順位に基づくものでなくてもよい。
The guest task 210 managed by the
ここで、ホストタスク110およびゲストタスク210全体の優先順位を考えると、ゲストOS200自体が、ホストOS100が管理するホストタスク110の一つであるため、ゲストタスク210の全体における優先順位は、ゲストOS200より優先順位の高いOS切替用タスク107より高くなることはなく、また、ゲストOS200より優先順位の低い割込処理タスク113より低くなることはない。
Here, considering the priority order of the host task 110 and the guest task 210 as a whole, the
ゲストOS200が管理するゲストタスク210においても、通常処理タスク221〜223が割込処理タスク211〜212の処理結果を待つ場合がある。そこで、ゲストOS200も、割込処理タスク211〜212を管理し、割込マスクの設定などを行う場合がある。
Even in the guest task 210 managed by the
図5は、この実施の形態におけるホストタスク110の優先順位と、割込の優先順位との関係の一例を示す概念図である。
通常処理タスクの優先順位は、優先度記憶部391が記憶した優先度により定まる。
割込処理タスクの優先順位は、それぞれの割込処理タスクの処理結果を待つ通常処理タスクの優先順位により定まる。
FIG. 5 is a conceptual diagram showing an example of the relationship between the priority order of the host task 110 and the interrupt priority order in this embodiment.
The priority order of the normal processing tasks is determined by the priority stored in the
The priority order of interrupt processing tasks is determined by the priority order of normal processing tasks waiting for the processing result of each interrupt processing task.
通常処理タスクの優先制御は、スケジュール部330が行う。
割込処理タスクの優先制御は、割込マスク記憶部312に割込マスクを設定することにより行う。
The scheduling unit 330 performs priority control of normal processing tasks.
The priority control of the interrupt processing task is performed by setting an interrupt mask in the interrupt
スケジューラ101のマスクテーブル生成部333は、ホストタスク110の起動時に、この関係にしたがって、割込マスクのレベルとタスクの優先度を設定する。
ゲストOS200は、優先度Tgを有する。
ゲストOS200で処理する割込処理タスクは、割込優先度Ix+1〜Iyを有する。
ゲストOS200より高い優先度で実行するホストタスク110は、優先度Tg+1以上の優先度を有する。
優先度Tg+1以上の優先度を有するホストタスク110実行時には、優先度Iy以下の割込処理をマスクする。
また、ゲストOS200において、ゲストタスク210の処理が割込処理と競合しないようにするために割込をマスクするときは、割込優先度Iy以下の割込をマスクする。
The mask
The
The interrupt processing task processed by the
The host task 110 executed with a higher priority than the
When executing a host task 110 having a priority level Tg + 1 or higher, an interrupt process with a priority level Iy or lower is masked.
Further, in the
ここで、ゲストタスク210の優先制御は、ゲストOS200が行うので、ホストOS100が関知するところではない。しかし、ゲストOS200以外のホストタスク110を実行中であっても、ゲストOS200で処理すべき割込信号が発生する場合はあるので、割込マスクによって制御する必要がある。
Here, since priority control of the guest task 210 is performed by the
しかし、ゲストOS200による割込制御は、ゲストOS200が処理すべき割込に関するものに限られる。
ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の高い割込は、ゲストOS200の実行中は、常に許可される。これをゲストOS200から見ると、そのような割込は、NMI(No Maskable Interupt)と同じであり、ゲストOS200の制御対象ではない。
また、ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の低い割込は、ゲストOS200の実行中は、常に禁止される。これをゲストOS200から見ると、そのような割込はないのと同じである。
However, the interrupt control by the
Of the interrupts to be processed by the host OS 100, interrupts having a higher priority than the
Of the interrupts to be processed by the host OS 100, interrupts having a lower priority than the
したがって、ゲストOS200は、ゲストOS200が処理すべき割込だけを制御すればよく、ホストOS100が処理すべき割込を考慮する必要はない。
Therefore, the
図6は、この実施の形態において、マスクテーブル生成部333が生成し、マスクテーブル記憶部334が記憶するマスクテーブル108の内容の一例を示す図である。
マスクテーブル108は、タスク優先度611、割込マスクレベル612を有するテーブルである。
タスク優先度611は、各タスクの優先度である。優先度記憶部391が記憶したタスク優先度が同じであれば、割込マスクレベルも同じになるので、ホストタスク110ごとではなく、タスク優先度ごとに、割込マスクレベルを記憶する。なお、ホストタスク110ごとに記憶することとしてもよい。
割込マスクレベル612は、タスク優先度611を有するホストタスク110を実行する際、割込マスク記憶部312に設定する割込マスクである。
例えば、タスク優先度Tmのホストタスク110を実行する際には、割込マスクMnを割込マスク記憶部312に設定する。割込マスクMnとは、図5における割込優先度In以下の割込をすべてマスクする割込マスクを示す。
また、タスク優先度Tgのホストタスク110(ゲストOS200)を実行する際には、割込優先度Ix以下の割込をマスクし、割込優先度Ix+1以上の割込を許可する割込マスクMyを割込マスク記憶部312に設定する。
FIG. 6 is a diagram showing an example of the contents of the mask table 108 generated by the mask
The mask table 108 is a table having a task priority 611 and an interrupt mask level 612.
The task priority 611 is the priority of each task. If the task priority stored in the
The interrupt mask level 612 is an interrupt mask set in the interrupt
For example, when executing the host task 110 with the task priority Tm, the interrupt mask Mn is set in the interrupt
When executing the host task 110 (guest OS 200) with the task priority Tg, an interrupt mask My that masks interrupts with an interrupt priority level Ix or lower and permits interrupts with an interrupt priority level Ix + 1 or higher. Is set in the interrupt
図7は、この実施の形態における割込ベクタ記憶部311が記憶する割込ベクタの一例を示す図である。
割込ベクタ記憶部311が記憶している割込ベクタは、OS切替時に、割込ベクタ書換部323が書き換えることにより、割込ベクタ102または割込ベクタ202を記憶している。
実行装置901が、ホストタスク110のうち、ゲストOS200(あるいは、その管理下にあるゲストタスク210)を実行している場合、割込ベクタ記憶部311は割込ベクタ202を記憶している。
また、実行装置901が、ゲストOS200以外のホストタスク110を実行している場合、割込ベクタ記憶部311は割込ベクタ102を記憶している。
FIG. 7 is a diagram showing an example of an interrupt vector stored in the interrupt
The interrupt vector stored in the interrupt
When the
When the
割込ベクタは、割込信号に対応して実行する割込処理を示す情報である。この例では、6種類の割込621〜632に対応する割込ベクタを記憶している。
割込621〜632のうち、割込621〜624は、ホストOS100上で処理すべき割込であるものとする。また、割込631〜632は、ゲストOS200上で処理すべき割込であるものとする。
また、割込621〜632は、図中、上に記載したもののほうが優先順位が高く、下にいくほど、優先順位が下がるものとする。
The interrupt vector is information indicating an interrupt process executed in response to the interrupt signal. In this example, interrupt vectors corresponding to six types of interrupts 621 to 632 are stored.
Of the interrupts 621 to 632, the interrupts 621 to 624 are interrupts to be processed on the host OS 100. Also, interrupts 631 to 632 are interrupts to be processed on the
In addition, the interrupts 621 to 632 have a higher priority in the order described above in the figure, and the priority is lowered as it goes down.
実行装置901がゲストOS200以外のホストタスク110を実行している際の割込ベクタ102のうち、ホストOS100が処理すべき割込621〜624に対応する割込ベクタ641〜644は、それぞれの割込を処理する割込処理プログラム661〜664を示す。
これに対し、ゲストOS200が処理すべき割込631〜632はゲストOS200が実行中でないと処理できないため、割込ベクタ649は、割込を処理する割込処理プログラム671〜672ではなく、切替プログラム669を示す。
Of the interrupt
On the other hand, since the interrupts 631 to 632 to be processed by the
実行装置901がゲストOS200を実行している際の割込ベクタ202のうち、ゲストOS200が処理すべき割込631〜632に対応する割込ベクタ651〜652は、それぞれの割込を処理する割込処理プログラム671〜672を示す。
これに対し、ホストOS100が処理すべき割込621〜622に対応する割込ベクタ659は、割込を処理する割込処理プログラム661〜664ではなく、切替プログラム679を示す。
なお、実行装置901がゲストOS200を実行している際は、割込マスクにより、優先順位の低い割込623〜624は発生しない。そこでこの例では、割込623〜624に対応する割込ベクタは空欄にしている。しかし、割込623〜624に対応する割込ベクタも、割込ベクタ659としておいてもよい。
Of the interrupt
On the other hand, the interrupt vector 659 corresponding to the interrupts 621 to 622 to be processed by the host OS 100 indicates the
Note that when the
次に、動作について説明する。 Next, the operation will be described.
図8は、この実施の形態において、ホストタスク110起動時におけるスケジュール部330のタスク起動処理の流れの一例を示すフローチャート図である。 FIG. 8 is a flowchart showing an example of a task activation process flow of the schedule unit 330 when the host task 110 is activated in this embodiment.
ホストOS100は、ホストOS上のタスク106およびゲストOS200をホストタスク110として生成(起動)する際、優先度およびタスク実行時にかけておく割込マスクを設定する。
あらかじめ、マスクテーブル生成部333が、マスクテーブル108を生成し、マスクテーブル記憶部334が記憶している。
When the host OS 100 generates (starts up) the
In advance, the mask
ホストOS100がタスク起動要求を受けると、タスク起動処理を開始する。 When the host OS 100 receives a task activation request, it starts task activation processing.
S11において、スケジュール部330が、優先度記憶部391が記憶した優先度に基づいて、起動するホストタスク110の優先度を算出する。
あるいは、タスク起動時にホストタスク110の優先度を指定することとし、スケジュール部330が、優先度記憶部391に優先度を記憶することとしてもよい。その場合、必要に応じて、マスクテーブル生成部333が、マスクテーブル108を再生成してもよい。
In S <b> 11, the schedule unit 330 calculates the priority of the host task 110 to be activated based on the priority stored in the
Alternatively, the priority of the host task 110 may be designated when the task is activated, and the scheduling unit 330 may store the priority in the
S12において、スケジュール部330が、S11で算出した優先度に基づいて、マスクテーブル記憶部334が記憶したマスクテーブル108から、割込マスクを算出する。
In S12, the schedule unit 330 calculates an interrupt mask from the mask table 108 stored in the mask
S13において、コンテキスト記憶部392が、起動するホストタスク110のコンテキストを記憶するための記憶領域を確保する。
In S13, the
S14において、コンテキスト記憶部392が、S12で算出した割込マスクを、S13で確保した記憶領域に記憶する。
In S14, the
S15において、実行可能判断部331が、起動するホストタスク110を、実行可能タスクリストに登録する。また、それ以外の通常のタスク起動時に行う処理を行う。
In S15, the
実際に、タスク選択部332がホストタスク110を選択し、実行装置901がホストタスク110を実行する場合、ディスパッチ部320がコンテキストを復元する。コンテキスト記憶部392が記憶しているタスクのコンテキストには、S14で記憶した割込マスクが含まれているので、マスク設定部324が割込マスク記憶部312に記憶させる。
したがって、ホストタスク110が実行されている間、ホストタスク110よりも優先順位の低い割込処理を禁止する割込マスクを、割込マスク記憶部312に設定することとなる。
Actually, when the
Therefore, while the host task 110 is being executed, an interrupt mask that prohibits interrupt processing having a lower priority than the host task 110 is set in the interrupt
ここで、ゲストOS200(図5の優先度Tg)よりも優先順位が高い(例えば、優先度Tz)ホストタスク110を実行している間は、ゲストOS200が処理すべき割込処理(割込優先度Ix+1〜Iy)を禁止する割込マスクMzを割込マスク記憶部312に設定するので、ゲストOS200が処理すべき割込が入ることがない。
したがって、ゲストOS200よりも優先順位が高いホストタスク110の実行が、ゲストOSが処理すべき割込処理による影響を受けることはない。
Here, during execution of the host task 110 having a higher priority (eg, priority Tz) than the guest OS 200 (priority Tg in FIG. 5), the interrupt processing (interrupt priority) to be processed by the
Therefore, the execution of the host task 110 having a higher priority than the
また、ゲストOS200の中で割込マスクを変更する場合は、割込優先度がIyより高い割込は常に許可し、割込優先度がIx+1より低い割込は常に禁止することとして、割込マスクMx〜Myを用いることとする。
これにより、ゲストOS200が割込マスクを変更しても、ゲストOS200より優先順位が高い割込処理が禁止されることはない。
In addition, when changing the interrupt mask in the
Thereby, even if the
図9は、この実施の形態におけるスケジュール部330のスケジュール処理の流れの一例を示すフローチャート図である。
スケジュール部330は、実行可能な状態にあるホストタスク110のなかから、もっとも優先順位の高いホストタスク110を選択する。
FIG. 9 is a flowchart showing an example of the flow of schedule processing of the schedule unit 330 in this embodiment.
The schedule unit 330 selects the host task 110 having the highest priority from the host tasks 110 in an executable state.
S21(実行可能判断工程)において、実行可能判断部331が、実行可能タスクリストから実行可能な状態にあるホストタスク110を判別する。
実行可能タスクリストには、起動されているホストタスク110が登録されており、それぞれのホストタスク110が実行可能な状態にあるか否かを記憶している。実行可能タスクリストは、実行可能判断部331が記憶装置902を用いて記憶している。
In S21 (executable determination step), the
In the executable task list, the activated host tasks 110 are registered, and whether each host task 110 is in an executable state is stored. The executable task list is stored by the
S22において、タスク選択部332が、S21で実行可能判断部331が実行可能な状態にあると判断したホストタスク110について、優先度記憶部391が記憶した優先度に基づいて、優先順位を算出する。
In S22, the
S23(タスク選択工程)において、タスク選択部332が、S22で算出した優先順位が最も高いホストタスク110を選択する。
In S23 (task selection step), the
S24において、ディスパッチ部320が、タスク切替処理を行う。すなわち、実行中のホストタスク110のコンテキストをコンテキスト記憶部392に保存し、S23でタスク選択部332が選択したタスクのコンテキストをコンテキスト記憶部392から復元する。
In S24, the dispatch unit 320 performs a task switching process. That is, the context of the host task 110 being executed is stored in the
S25において、実行装置901が、S23でタスク選択部332が選択したホストタスク110を実行する。
In S25, the
その後、実行中のホストタスク110が、終了・休眠(実行可能な状態でない)などにより中断した場合、S21へ戻る。 Thereafter, when the running host task 110 is interrupted due to termination or sleep (not in an executable state), the process returns to S21.
図10は、この実施の形態におけるディスパッチ部320のタスク切替処理の流れの一例を示すフローチャート図である。
これは、スケジュール処理におけるタスク切替処理(S24)の内容を詳しく説明したものである。
FIG. 10 is a flowchart showing an example of the task switching processing flow of the dispatch unit 320 in this embodiment.
This details the contents of the task switching process (S24) in the schedule process.
S31において、コンテキスト記憶部392が、実行中のホストタスク110のコンテキストを記憶する(コンテキストのセーブ)。このコンテキストには、ホストタスク110実行時に設定していた割込マスクも含む。
In S31, the
S32において、割込ベクタ書換部323が、OS切替が発生するか否かを判断する。
S33において、OS切替がある場合には、S34へ進む。OS切替がない場合には、S37へ進む。
In S32, the interrupt
If there is OS switching in S33, the process proceeds to S34. If there is no OS switching, the process proceeds to S37.
S34において、割込ベクタを書き換えている途中に割込が発生しないよう、ディスパッチ部320が、割込を禁止する。
なお、ここでの「割込禁止」とは、割込マスクによる禁止ではなく、すべての割込を禁止する。例えば、実行装置901が割込禁止命令を実行する。
In S <b> 34, the dispatch unit 320 prohibits the interrupt so that no interrupt occurs during the rewriting of the interrupt vector.
Note that “interrupt prohibited” here is not prohibited by an interrupt mask, but prohibits all interrupts. For example, the
S35において、割込ベクタ書換部323が、割込ベクタ記憶部311が記憶した割込ベクタを読み出し、OSのコンテキストとして、コンテキスト記憶部392が記憶する(割込ベクタのセーブ)。
In S35, the interrupt
S36(割込ベクタ書換工程)において、割込ベクタ書換部323が、コンテキスト記憶部392が記憶した切替先のOSのコンテキストを読み出し、割込ベクタ記憶部311が記憶する(割込ベクタのリストア)。
In S36 (interrupt vector rewriting process), the interrupt
S37において、コンテキスト書換部321が、コンテキスト記憶部392が記憶した切替先のホストタスク110のコンテキストを読み出し、復元する。また、マスク設定部324が、割込マスクを復元する(コンテキストのリストア)。
In S <b> 37, the
S38において、ディスパッチ部320が、割込禁止を解除する。例えば、実行装置901が割込禁止解除命令を実行する。
In S38, the dispatch unit 320 cancels the prohibition of interrupt. For example, the
なお、割込ベクタをOSのコンテキストではなく、タスクのコンテキストとして、コンテキスト記憶部392がタスクごとに記憶(ゲストOS200以外のホストタスク110の割込ベクタは、すべて同じ)しておくこととすれば、タスク切替時に、OS切替があるかどうかを判断する必要はない。
Note that the
図11は、この実施の形態において、割込信号入力時における割込処理部310の割込処理の流れの一例を示すフローチャート図である。 FIG. 11 is a flowchart showing an example of the flow of interrupt processing of the interrupt processing unit 310 when an interrupt signal is input in this embodiment.
S41において、割込処理実行部313が、割込信号入力装置905が出力した割込信号を検出する。
In S <b> 41, the interrupt process execution unit 313 detects the interrupt signal output by the interrupt
S42において、割込処理実行部313が、割込マスク記憶部312が記憶した割込マスクに基づいて、その割込信号に対応する割込処理が許可されているか禁止されているかを判断する。
In S <b> 42, the interrupt process execution unit 313 determines whether the interrupt process corresponding to the interrupt signal is permitted or prohibited based on the interrupt mask stored in the interrupt
S43において、許可されている場合には、S44へ進む。禁止されている場合には、処理を終了する。 If permitted in S43, the process proceeds to S44. If it is prohibited, the process is terminated.
S44において、同じ割込が重複して発生しないよう、割込処理実行部313が、割込を禁止する(割込のブロック)。 In S44, the interrupt process execution unit 313 prohibits interrupts (blocks of interrupts) so that the same interrupts do not occur repeatedly.
S45において、実行装置901が、割込ベクタ記憶部311が記憶した割込ベクタが示すプログラムを実行する。
In S45, the
次に、S45で実行されるプログラムの処理内容について、説明する。 Next, processing contents of the program executed in S45 will be described.
図12は、この実施の形態において、割込信号入力時に実行される割込処理プログラム661〜664の割込処理の流れの一例を示すフローチャート図である。
FIG. 12 is a flowchart showing an example of the interrupt processing flow of the interrupt
割込処理プログラム661〜664は、ホストOS100が処理すべき割込を処理するプログラムであり、ホストOS100の管理下にあるものである。
The interrupt
S51において、割込信号入力装置905が、割込信号の出力を停止する。例えば、実行装置901が割込停止命令を実行し、割込信号入力装置905に対して割込処理の開始を通知する(割込のアクノリッジ)。これを受けた割込信号入力装置905は、割込信号の出力を停止する。
In S51, the interrupt
割込がマスクされていたり、禁止されていたりして、割込処理を開始できない場合、すぐに割込信号の出力を止めてしまうと、割込処理ができず、支障を来たす。そこで、割込信号入力装置905は、割込処理が開始したことを確認するまで、割込信号を出力し続ける(割込信号のアサート)。
そのため、割込信号入力装置905に対して、割込処理が開始したことを通知し、割込信号を停止させる必要がある。
If the interrupt process cannot be started because the interrupt is masked or prohibited, if the interrupt signal output is stopped immediately, the interrupt process cannot be performed, causing a problem. Therefore, the interrupt
Therefore, it is necessary to notify the interrupt
S52において、実行装置901が、割込禁止を解除する。割込信号入力装置905が割込信号の出力を停止したので、同じ割込が重複して発生する心配がなくなり、もっと優先順位の高い割込が発生した場合に、その割込の処理ができるようにするためである。
なお、割込マスクはそのままなので、割込禁止を解除しても、優先順位の低い割込は発生しない。
In S52, the
Since the interrupt mask remains unchanged, even if the interrupt prohibition is canceled, an interrupt with a low priority does not occur.
S53において、実行装置901が、それぞれの割込に対応する処理を行う。
In S53, the
S54において、割込処理の結果を待っていた通常処理タスクを起床する(タスクのウェイクアップ)。
割込処理の結果を待っていた通常処理タスクとは、その割込処理の結果がないと、実行可能な状態とならないホストタスク110である。実行可能判断部331が、そのホストタスク110を実行可能な状態にないものとして、実行可能タスクリストに登録しているので、これを実行可能な状態であるという内容に書き換える。
In S54, the normal processing task waiting for the result of the interrupt processing is woken up (task wakeup).
The normal processing task waiting for the result of the interrupt processing is the host task 110 that cannot be executed without the result of the interrupt processing. Since the
割込処理終了後、実行可能判断部331が、割込処理の結果を待っていた通常処理タスクを実行可能と判断する(S21)ので、実行可能なホストタスク110のなかに、もっと優先順位の高いホストタスク110がなければ、タスク選択部332が、そのタスクを選択し(S23)、タスクが切り替わる(S24)。
After completion of the interrupt process, the
なお、ゲストOS200の管理下にある割込処理プログラム671〜672の処理の流れも、これと同様であるので、ここでは説明を省略する。ただし、ゲストOS200の管理下にある割込処理プログラム671〜672が起床する通常処理タスクは、ゲストOS200の管理下にあるゲストタスク210なので、実行可能などうかの判断等はすべてゲストOS200が行い、実行可能判断部331等は関与しない。
Note that the processing flow of the interrupt
図13は、この実施の形態において、割込信号入力時に実行される切替プログラム669のOS切替処理の流れの一例を示すフローチャート図である。
切替プログラム669は、実行装置901がゲストOS200以外のホストタスク110を実行中に、ゲストOS200で処理すべき割込が発生した場合に実行される。
FIG. 13 is a flowchart showing an example of the flow of OS switching processing of the
The
S61において、切替プログラム669がゲストOS200を起床する。
すなわち、実行可能判断部331が、ゲストOS200を実行可能な状態にあるものとして、実行可能タスクリストに登録する。
In S61, the
That is, the
ゲストOS200よりも優先順位の高いホストタスク110を実行中は、ゲストOS200で処理すべき割込は、割込マスクにより禁止されているため、発生しない。
したがって、切替プログラム669が実行されるのは、ゲストOS200よりも優先順位の低いホストタスク110を実行している場合(またはホストOS100がアイドル状態である場合)である。
While the host task 110 having a higher priority than the
Therefore, the
したがって、割込処理終了後、ゲストOS200が、実行可能なホストタスク110のなかで、もっとも優先順位の高いホストタスク110となり、タスクが切り替わる(S24)。
Therefore, after the interrupt process is completed, the
タスク切替処理において、OS切替がある(S33)ので、割込ベクタをゲストOS200のものに書き換える(S36)。また、ゲストOS200実行時のコンテキストが復元される(S37)。
その後、割込禁止が解除される(S38)。
Since there is OS switching in the task switching process (S33), the interrupt vector is rewritten to that of the guest OS 200 (S36). Further, the context at the time of executing the
Thereafter, the prohibition of interrupt is released (S38).
この時点で、割込信号入力装置905は、割込信号の出力を停止していない(S51に相当する処理をしていない)ので、再び割込が発生する。
At this time, the interrupt
割込信号自体は同じであるが、割込ベクタが書き換わっているので、実行されるプログラムは、切替プログラム669ではなく、割込処理プログラム671〜672である。また、ゲストOS200実行時のコンテキストが復元されているので、支障なく、割込の処理が行われる。
Although the interrupt signal itself is the same, but the interrupt vector is rewritten, the program to be executed is not the
また、ゲストOS200内で、割込マスクを書き換えている場合には、割込マスクが復元されて(S37)から、割込禁止が解除される(S38)ので、発生した割込が、ゲストOS200がマスクしたい割込である場合には、割込処理は開始されない。
Further, when the interrupt mask is rewritten in the
したがって、いずれの場合も、ゲストOS200が期待する通りの動作が保証される。
Therefore, in any case, the operation as expected by the
図14は、この実施の形態において、割込信号入力時における切替プログラム679のOS切替処理の流れの一例を示すフローチャート図である。
切替プログラム679は、実行装置901がゲストOS200を実行中に、ホストOS100が処理すべき割込が発生した場合に実行される。
FIG. 14 is a flowchart showing an example of the flow of OS switching processing of the
The
S71において、切替プログラム679がOS切替用タスク107を起床する。
すなわち、実行可能判断部331が、OS切替用タスク107を実行可能な状態にあるものとして、実行可能タスクリストに登録する。
ここで、切替プログラム679は、ゲストOS200の管理下にあるので、ゲストタスク210を起床することはできるが、ホストタスク110であるOS切替用タスク107を直接、起床することはできない。
しかし、ゲストOS200自体が、ホストOS100の管理下にあるホストタスク110の一つであるため、ゲストOS200からOS切替用タスク107を起床することができる。
In S71, the
That is, the
Here, since the
However, since the
ゲストOS200を実行中は、ホストOS100で処理すべき割込のうち、ゲストOS200よりも優先順位の低い割込は、割込マスクにより禁止されているため、発生しない。
したがって、切替プログラム679が実行されるのは、ホストOS100で処理すべき割込のうち、ゲストOS200よりも優先順位の高い割込が発生した場合に限られる。
While the
Therefore, the
また、ゲストOS200を実行中であるので、ゲストOS200よりも優先順位の高いホストタスク110のなかに、実行可能な状態にあるものは存在しない。
Further, since the
OS切替用タスク107は、ゲストOS200よりも優先順位を高く設定してあるので、割込処理終了後、OS切替用タスク107が、実行可能なホストタスク110のなかで、もっとも優先順位の高いホストタスク110となり、タスクが切り替わる(S24)。
Since the
タスク切替処理において、OS切替がある(S33)ので、割込ベクタをホストOS100のものに書き換える(S36)。
その後、割込禁止が解除される。(S38)。
Since there is OS switching in the task switching process (S33), the interrupt vector is rewritten to that of the host OS 100 (S36).
Thereafter, the interrupt prohibition is released. (S38).
この時点で、割込信号入力装置905は、割込信号の出力を停止していない(S51に相当する処理をしていない)ので、再び割込が発生する。
At this time, the interrupt
割込信号自体は同じであるが、割込ベクタが書き換わっているので、実行されるプログラムは、切替プログラム679ではなく、割込処理プログラム661〜662である。したがって、支障なく、割込の処理が行われる。
Although the interrupt signal itself is the same, the interrupt vector is rewritten, so the program to be executed is not the
また、ゲストOS200内で、割込マスクを書き換えていても、ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の高い割込は制御対象ではなく、優先順位の高い割込を許可する範囲内でしか、割込マスクを書き換えないので、支障なく、優先順位の高い割込の処理が行われる。
逆に、ゲストOS200内では、ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の低い割込も制御対象ではなく、優先順位の低い割込を禁止する範囲内でしか、割込マスクを書き換えないので、優先順位の低い割込が発生することはない。
In addition, even if the interrupt mask is rewritten in the
On the other hand, in the
したがって、どの割込信号が発生した場合でも、常に、正常に割込処理をすることができる。 Therefore, even if any interrupt signal is generated, the interrupt process can always be performed normally.
図15は、この実施の形態におけるOS切替用タスク107のOS切替処理の流れの一例を示すフローチャート図である。
OS切替用タスク107は、OS切替を発生させるためのダミーであり、特に処理すべき内容はない。
FIG. 15 is a flowchart showing an example of the OS switching processing flow of the
The
OS切替用タスク107は、ゲストOS200の起動と同時に起動される。
The
S76において、OS切替用タスク107は、休眠処理をする(タスクのスリープ)。
休眠処理とは、なんらかの事象が発生を待つため、実行可能な状態でないタスクが、実行可能でなくなったことをOSに通知し、実行装置901が他のタスクを実行できるようにすることである。
休眠処理は、ホストタスクが実行可能な状態にないことを通知する処理の一例である。
In step S76, the
The sleep process is waiting for the occurrence of some event, so that a task that is not in an executable state is notified to the OS that the
The sleep process is an example of a process for notifying that the host task is not in an executable state.
OS切替用タスク107は、もともと処理すべき内容がないタスクであるため、起動後すぐに休眠する。
その後、切替プログラム679により起床させられる。OS切替用タスク107が起床したことでOS切替が発生し、すでに目的を達したので、OS切替用タスク107が処理すべき内容はない。
そこで、S76に戻り、OS切替用タスク107は、再び休眠する。
Since the
Thereafter, the user is woken up by the
Therefore, the process returns to S76, and the
図16は、この実施の形態におけるゲストOS200のスケジュール処理の流れの一例を示すフローチャート図である。
なお、ゲストOS200は、既存のOSをわずかな修正で利用するものであるため、多くの部分が既存のOSと同一である。
したがって、ゲストOS200は、もととなる既存のOSと同様のブロック構成を有するものであって、様々な構成があり得る。
ここでは一例として、ゲストOS200が、図3で説明したホストOS100と同様のブロック構成を有するものとして説明する。
FIG. 16 is a flowchart showing an example of a schedule process flow of the
Since the
Therefore, the
Here, as an example, the
S81において、ゲストOS200のスケジュール部が、ゲストタスク210が実行可能な状態であるかを判断する。
S82において、実行可能なゲストタスク210がある場合には、S83へ進む。実行可能なゲストタスク210がない場合には、S86へ進む。
In S81, the schedule part of the
If there is an executable guest task 210 in S82, the process proceeds to S83. If there is no executable guest task 210, the process proceeds to S86.
S83において、ゲストOS200のスケジュール部が、実行可能なゲストタスク210のなかから、実行するゲストタスク210を選択する。選択の方法は、ホストOS100と同様、優先順位によるものであってもよいし、実行時間が平等となるように選択してもよい。
In S83, the schedule part of the
S84において、ゲストOS200のディスパッチ部が、それまで実行していたゲストタスク210のコンテキストを保存し、選択したゲストタスク210のコンテキストを復元する。
In S84, the dispatch unit of the
S85において、実行装置901が、選択したゲストタスク210を実行する。
In S85, the
その後、実行したゲストタスク210が、終了・休眠などにより中断した場合、S81へ戻る。 After that, when the executed guest task 210 is interrupted due to termination or sleep, the process returns to S81.
S86において、ゲストOS200は、実行可能なゲストタスク210がないので、休眠処理をする。
すなわち、いずれかのゲストタスク210が実行可能な状態となるまで、ゲストOS200自体が実行可能な状態でないものとして、ホストOS100に通知し、実行装置901が他のホストタスク110を実行できるようにする。
In S86, the
That is, until one of the guest tasks 210 becomes executable, the host OS 100 is notified that the
この処理により、ゲストOS200よりも優先順位の低いホストタスク110も、実行の機会を得られるようになる。
By this processing, the host task 110 having a lower priority than the
この実施の形態における並列処理装置によれば、ゲストOS200の実行中と、それ以外の場合とにおいて、異なる割込ベクタを割込ベクタ記憶部311に記憶させるので、割込を処理すべきOSと異なるOSを実行中に、割込が発生した場合であっても、異なるOS下で割込処理が実行されることがなく、割込の発生による処理の混乱を回避することができるという効果を奏する。
According to the parallel processing device in this embodiment, different interrupt vectors are stored in the interrupt
この実施の形態における並列処理装置によれば、割込を処理すべきOSと異なるOSを実行中に、割込が発生した場合、OS切替処理を行い、その後再び割込が発生するので、割込を処理すべきOSが適切に割込を処理することができるという効果を奏する。 According to the parallel processing device of this embodiment, when an interrupt occurs while executing an OS different from the OS that should process the interrupt, the OS switching process is performed, and then the interrupt occurs again. There is an effect that the OS that should process the interrupt can appropriately process the interrupt.
この実施の形態における並列処理装置によれば、ゲストOS200を実行中でない場合に、ゲストOS200で処理すべき割込が発生した場合に、ゲストOS200を起床させ、OSを切り替えるので、適切なOSのもとで、割込処理を実行することができるという効果を奏する。
According to the parallel processing device in this embodiment, when the
この実施の形態における並列処理装置によれば、ゲストOS200を実行中に、ホストOS100で処理すべき割込が発生した場合に、ゲストOS200の実行を中断し、OSを切り替えるので、適切なOSのもとで、割込処理を実行することができるという効果を奏する。
According to the parallel processing device in this embodiment, when an interrupt to be processed by the host OS 100 occurs while the
この実施の形態における並列処理装置によれば、簡単なOS切替用タスク107を起動しておくだけで、OS切替処理ができるので、既存のOSをホストOS100、ゲストOS200として利用する際に加えるべき変更が少なく、既存のOSを有効に利用することができ、開発コストを抑えることができるという効果を奏する。
According to the parallel processing device of this embodiment, OS switching processing can be performed by simply starting the
この実施の形態における並列処理装置によれば、割込処理を開始するまで、割込信号入力装置905が割込信号を出力するので、OS切替処理後、再び割込が発生し、割込を処理すべき割込処理プログラムを支障なく実行できるという効果を奏する。
According to the parallel processing device in this embodiment, the interrupt
この実施の形態における並列処理装置によれば、割込を処理すべきOSと異なるOSを実行中に割込が発生した場合に実行される切替プログラム669,679が、割込停止命令を含まないので、OS切替後、再び割込が発生し、割込を処理すべき割込処理プログラムを支障なく実行できるという効果を奏する。
According to the parallel processing device in this embodiment, the switching
この実施の形態における並列処理装置によれば、ホストタスク110の優先順位に基づいて、実行するホストタスク110を選択するので、優先順位の高いタスクが実行可能であれば、優先順位の低いタスクが実行されることはなく、優先順位の低いタスクが待っている割込処理の実行を延期することができるという効果を奏する。 According to the parallel processing device of this embodiment, the host task 110 to be executed is selected based on the priority order of the host task 110. Therefore, if a task with a high priority can be executed, a task with a low priority is selected. It is not executed, and there is an effect that it is possible to postpone the execution of the interrupt process waiting for a task with a low priority.
この実施の形態における並列処理装置によれば、割込処理の結果を待っているタスクの優先順位に基づいて、割込処理に優先順位を設け、割込処理の優先順位に基づいて、割込のマスク制御を行うので、優先順位の高い処理の実行中は、優先順位の低い割込が発生せず、割込の衝突を回避することができるという効果を奏する。 According to the parallel processing device of this embodiment, priority is given to the interrupt processing based on the priority of the task waiting for the result of the interrupt processing, and the interrupt is processed based on the priority of the interrupt processing. Since the mask control is performed, an interrupt having a low priority is not generated during execution of a process having a high priority, and an interrupt collision can be avoided.
この実施の形態における並列処理装置によれば、ゲストOS200が行う割込制御が、ホストOS100が処理すべき割込に影響を与えることがないので、既存のOSをゲストOS200として利用する際に加えるべき変更が少なく、既存のOSを有効に利用することができ、開発コストを抑えることができるという効果を奏する。
According to the parallel processing device in this embodiment, the interrupt control performed by the
この実施の形態における並列処理装置によれば、ホストOS100が処理すべき割込を、ゲストOS200が意識する必要がないので、既存のOSをゲストOS200として利用する際に加えるべき変更が少なく、既存のOSを有効に利用することができ、開発コストを抑えることができるという効果を奏する。
According to the parallel processing device in this embodiment, since the
この実施の形態における並列処理装置によれば、ゲストOS200が制御する割込の範囲を限定するので、ゲストOS200による割込制御と、ホストOS100による割込制御とが矛盾することなく、並存できるという効果を奏する。
According to the parallel processing device in this embodiment, since the range of interrupts controlled by the
この実施の形態における並列処理装置によれば、割込マスクにより、ゲストOS200よりも優先順位の高いホストタスク110の実行中は、ゲストOS200で処理すべき割込が発生しないので、ホストOS100の処理に、ゲストOS200で処理すべき割込の影響が出ないという効果を奏する。
According to the parallel processing device in this embodiment, the interrupt mask to be processed by the
この実施の形態における並列処理装置によれば、割込マスクにより、ゲストOS200の実行中は、ゲストOS200よりも優先順位の低い割込が発生せず、ゲストOS200の処理に、ホストOS100で処理すべき優先順位の低い割込の影響が出ないという効果を奏する。
According to the parallel processing device of this embodiment, due to the interrupt mask, interrupts having a lower priority than the
この実施の形態における並列処理装置によれば、ゲストOS200上に実行可能なゲストタスク210がない場合に、ゲストOS200自体が休眠状態となるので、ゲストOS200よりも優先順位の低いタスクにも、実行の機会が与えられるという効果を奏する。
According to the parallel processing device of this embodiment, when there is no guest task 210 that can be executed on the
この実施の形態における並列処理装置によれば、ゲストOS200上に実行可能なゲストタスク210がない場合に、ゲストOS200が実行可能な状態でないことをホストOS100に通知する処理を実行するので、ゲストOS200が休眠状態であることを、ホストOS100が判別できるという効果を奏する。
According to the parallel processing device in this embodiment, when there is no guest task 210 that can be executed on the
この実施の形態における並列処理装置によれば、ゲストOS200が休眠中に、ゲストOS200が処理すべき割込が発生した場合に、ゲストOS200を起床するので、割込を適切に処理できるという効果を奏する。
According to the parallel processing device in this embodiment, the
この実施の形態における並列処理方法によれば、ゲストOS200の実行中と、それ以外の場合とにおいて、異なる割込ベクタを割込ベクタ記憶部311に記憶させるので、割込を処理すべきOSと異なるOSを実行中に、割込が発生した場合であっても、異なるOS下で割込処理が実行されることがなく、割込の発生による処理の混乱を回避することができるという効果を奏する。
According to the parallel processing method in this embodiment, different interrupt vectors are stored in the interrupt
この実施の形態における並列処理プログラムによれば、ゲストOS200の実行中と、それ以外の場合とにおいて、異なる割込ベクタを割込ベクタ記憶部311に記憶させるので、割込を処理すべきOSと異なるOSを実行中に、割込が発生した場合であっても、異なるOS下で割込処理が実行されることがなく、割込の発生による処理の混乱を回避することができる並列処理装置900として、コンピュータを機能させることができるという効果を奏する。
According to the parallel processing program in this embodiment, different interrupt vectors are stored in the interrupt
以上のように、ゲストOS200のスケジュール部が、実行可能なゲストタスク210がない場合(アイドル時)に、ホストOS100上の休眠処理(スリープ)を行い、ゲストOS200で処理すべき割込が入ったら、ゲストOS200を、ホストOS100が起床させる処理(ウェイクアップ)を行うので、ゲストOSの優先順位を一番下以外にすることが可能となる。
As described above, when there is no guest task 210 that can be executed by the scheduling unit of the guest OS 200 (when idle), the sleep processing on the host OS 100 is performed and an interrupt to be processed by the
また、ゲストOS200の中で割込マスクを行う場合は、マスクレベルをゲストOS200で扱う割込の優先順位以下としているため、優先順位の高いホストタスク110の処理が割込マスクにより遅延されることがない。
また、ゲストOS200より高い優先順位のホストタスク110の実行中は、優先順位の低い割込処理をマスクするため、優先順位の高いホストタスク110の処理が優先順位の低い割込処理の影響を受けない。
In addition, when interrupt masking is performed in the
In addition, during execution of the host task 110 with a higher priority than the
これにより、ホストOS100としてリアルタイムOSを用い、ゲストOS200として非リアルタイムOSを用いた場合であっても、割込の整合性を保つことができ、リアルタイムOSのリアルタイム性を確保することができる。
また、非リアルタイムOSの割込処理が、時間制約を考慮していない場合であっても、割込の整合性が保たれているので、リアルタイムOSのリアルタイム性を確保することができる。
As a result, even when a real-time OS is used as the host OS 100 and a non-real-time OS is used as the
Further, even when the interrupt processing of the non-real-time OS does not consider the time constraint, since the consistency of the interrupt is maintained, the real-time property of the real-time OS can be ensured.
また、ゲストOS200が管理するゲストタスク210がすべて実行不可能な状態である場合に、ゲストOS200が休眠処理(スリープ)を行うので、ゲストOS200よりも優先順位が低いホストタスク110にも実行の機会が与えられる。したがって、ゲストOS200を一番低い優先順位とする必要がない。
これにより、ホストタスク110によって実行装置901を占有されて、ゲストタスク210が処理すべき割込に対する処理が実行できないことによって、例えば、タイマー割込による時間管理において、時間が不正になったり、バッファを持った入出力デバイスのバッファがオーバーフローしたりアンダーフローしたりするといった障害が発生することを回避することができる。
Further, when all the guest tasks 210 managed by the
As a result, the
実施の形態2.
実施の形態2を、図17〜図21を用いて説明する。
この実施の形態における並列処理装置900のハードウェア構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
Embodiment 2. FIG.
The second embodiment will be described with reference to FIGS.
Since the hardware configuration of the parallel processing apparatus 900 in this embodiment is the same as that described in the first embodiment, the description thereof is omitted here.
図17は、この実施の形態における並列処理装置900の機能ブロックの構成の一例を示すブロック構成図である。
なお、実施の形態1で説明した機能ブロックと共通するブロックについては、共通の符号を付し、説明を省略する。
FIG. 17 is a block configuration diagram showing an example of a functional block configuration of the parallel processing device 900 according to this embodiment.
In addition, about the block which is common in the functional block demonstrated in
並列処理装置900は、タスク間メッセージ処理部341、OS間同期用データ記憶部393などを有する。
The parallel processing device 900 includes an inter-task
タスク間メッセージ処理部341は、ホストタスク110が他のタスク(ホストタスク110またはゲストタスク210)に対して通知するメッセージを処理する。
例えば、あるホストタスク110が他のタスクに対して通知すべきメッセージを生成した場合、タスク間メッセージ処理部341が、そのメッセージを取得する。
タスク間メッセージ処理部341は、そのメッセージの通知先であるホストタスク110が、そのメッセージを待っていることにより、休眠している場合、実行可能判断部331が記憶した実行可能タスクリストを書き換えて実行可能な状態とすることにより、そのメッセージを待っていたホストタスク110を起床する。
タスク間メッセージ処理部341は、実行装置901がOS間同期処理105を実行することにより実現する。
The inter-task
For example, when a certain host task 110 generates a message to be notified to another task, the inter-task
The inter-task
The inter-task
メッセージの通知先タスクがホストタスク110ではなく、ゲストタスク210である場合、ゲストタスク210はゲストOS200の管理下にあり、実行可能判断部331が実行可能か否かを把握していない。したがって、タスク間メッセージ処理部341は、直接、通知先のゲストタスク210を起床することはできない。
When the notification task of the message is not the host task 110 but the guest task 210, the guest task 210 is under the management of the
そこで、OS間同期用データを用いて、通知先のゲストタスク210を間接的に起床する。 Therefore, the guest task 210 that is the notification destination is woken up indirectly using the inter-OS synchronization data.
OS間同期用データ記憶部393は、記憶装置902を用いて、OS間同期用データを記憶する。
OS間同期用データ記憶部393は、通知先記憶部の一例である。
OS間同期用データは、異なるOSの管理下にあるタスクを起床するために用いられるデータである。
The inter-OS synchronization
The inter-OS synchronization
The inter-OS synchronization data is data used to wake up a task under the management of a different OS.
図18は、この実施の形態におけるOS間同期用データ記憶部393が記憶したOS間同期用データ400のデータ構造の一例を示す図である。
OS間同期用データ400は、ゲストOS上の同期用データ401、フラグ402を有する。OS間同期用データ400は、起動しているゲストタスク210ごとに、あるいは、メッセージの通知を待っているゲストタスク210ごとに、存在する。したがって、あるゲストタスク210に対してメッセージを通知する場合は、通知先のゲストタスク210に対応するOS間同期用データ400を用いる。
FIG. 18 is a diagram showing an example of the data structure of the inter-OS synchronization data 400 stored in the inter-OS synchronization
The inter-OS synchronization data 400 includes
ゲストOS上の同期用データ401は、ゲストOS200内において、ゲストタスク210同士がやり取りするメッセージである。
The
フラグ402は、ゲストタスク210がホストタスク110からのメッセージを待っているか否かを示す。
ゲストタスク210がホストタスク110からのメッセージを待つため、休眠状態になった場合に、フラグ402をセットする。
ホストタスク110からメッセージが通知され、ゲストタスク210が実行可能になった場合に、フラグ402をクリアする。
The
Since the guest task 210 waits for a message from the host task 110, the
When a message is notified from the host task 110 and the guest task 210 becomes executable, the
ゲストタスク210同士でメッセージをやり取りする場合は、ゲストOS200が、そのメッセージの通知先を把握し、ゲストタスク210を起床することができるので、フラグ402は必要ない。
しかし、ホストタスク110からゲストタスク210に対してメッセージが通知された場合、通知先のゲストタスク210をゲストOS200が把握するために、フラグ402を利用する。
When the guest task 210 exchanges messages, the
However, when a message is notified from the host task 110 to the guest task 210, the
なお、既存のOSを修正してゲストOS200として利用する場合には、既存のOSがタスク間通信に使用しているデータ構造を修正して、OS間同期用データ400として利用する。この場合、フラグ402を追加する修正をするだけでよいので、わずかな修正で済ませることができ、既存のOSを最大限利用できるので、開発コストを抑えることができる。
When the existing OS is modified and used as the
次に、動作について説明する。 Next, the operation will be described.
図19は、この実施の形態におけるゲストOS200のスケジュール処理の流れの一例を示すフローチャート図である。
なお、実施の形態1で説明したゲストOS200のスケジュール処理の工程と共通する工程については、共通の符号を付し、説明を省略する。
FIG. 19 is a flowchart showing an example of a flow of schedule processing of the
Note that steps common to the schedule processing steps of the
T21において、ゲストOS200のスケジュール部が、S85で実行していたゲストタスク210が実行を中断した理由を判別する。
T22において、ゲストタスク210が中断した理由が、ホストタスク110からのメッセージ待ちである場合には、T23へ進む。ホストタスク110からのメッセージ待ちでない場合には、S81へ戻る。
In T21, the schedule part of the
If the reason why the guest task 210 is interrupted at T22 is waiting for a message from the host task 110, the process proceeds to T23. If not waiting for a message from the host task 110, the process returns to S81.
T23において、ゲストOS200のスケジュール部(OS間同期処理部)が、OS間同期用データ記憶部393が記憶したOS間同期用データ400から、メッセージ待ちのゲストタスク210についてのフラグ402を取得する。
例えば、ゲストタスク210が使用するOS間同期用データ400の識別子をゲストタスク210が指定し、OS間同期処理部が、指定された識別子によって識別されるOS間同期用データ400を、OS間同期用データ記憶部393から読み出して、フラグ402を取得する。
At T23, the schedule unit (inter-OS synchronization processing unit) of the
For example, the guest task 210 specifies the identifier of the OS synchronization data 400 used by the guest task 210, and the OS synchronization processing unit converts the OS synchronization data 400 identified by the specified identifier. The
T24において、ゲストOS200のスケジュール部(OS間同期処理部)が、T23で取得したフラグ402を、ホストタスク110からのメッセージ待ちのため休眠状態であることを示す内容に書き換えて、OS間同期用データ記憶部393に記憶させる。
At T24, the schedule unit (inter-OS synchronization processing unit) of the
T25において、ゲストOS200のスケジュール部が、S85で実行を中断したメッセージ待ちのゲストタスク210を、実行可能な状態でない(休眠状態)として記憶する(ゲストOS上のタスクのスリープ)。
その後、S81へ戻る。
At T25, the scheduling unit of the
Thereafter, the process returns to S81.
これにより、ホストOS100は、フラグ402を見ることによって、そのゲストタスク210がホストタスク110からのメッセージ待ちであるか否かを判別できる。
Thus, the host OS 100 can determine whether or not the guest task 210 is waiting for a message from the host task 110 by looking at the
図20は、この実施の形態におけるスケジュール部330のスケジュール処理の流れの一例を示すフローチャート図である。
なお、実施の形態1で説明したスケジュール部330のスケジュール処理の工程と共通する工程については、共通する符号を付し、ここでは説明を省略する。
FIG. 20 is a flowchart showing an example of the flow of schedule processing of the schedule unit 330 in this embodiment.
In addition, about the process which is common with the process of the schedule process of the schedule part 330 demonstrated in
T11において、タスク間メッセージ処理部341が、S25で実行していたホストタスク110が通知したメッセージの通知先を判別する。
T12において、S25で実行していたホストタスク110が他のタスクに対してメッセージを通知していない場合には、S21に戻る。S25で実行していたホストタスク110が他のホストタスク110に対してメッセージを通知する場合には、T13へ進む。S25で実行していたホストタスク110がゲストタスク210に対してメッセージを通知する場合には、T15へ進む。
In T11, the inter-task
In T12, when the host task 110 executed in S25 has not sent a message to other tasks, the process returns to S21. When the host task 110 executed in S25 notifies the other host task 110 of a message, the process proceeds to T13. When the host task 110 executed in S25 notifies the guest task 210 of a message, the process proceeds to T15.
T13において、実行可能判断部331が、メッセージの通知先であるホストタスク110が、そのメッセージを待つために休眠しているか否かを判断する。そのメッセージを待っていた場合には、T14へ進む。そのメッセージを待つために休眠しているのではない場合には、S21に戻る。
In T13, the
T14において、実行可能判断部331が、メッセージの通知先でるホストタスク110が実行可能な状態になったものとして、実行可能タスクリストに登録する。
その後、S21に戻る。
At T14, the
Thereafter, the process returns to S21.
T15において、タスク間メッセージ処理部341が、OS間同期用データ記憶部393が記憶したOS間同期用データから、通知先のゲストタスク210についてのフラグ402を取得する。
例えば、T23においてゲストタスク210が指定したOS間同期用データ400の識別子と同じ識別子を、ホストタスク110が指定し、タスク間メッセージ処理部341が、指定された識別子によって識別されるOS間同期用データ400を、OS間同期用データ記憶部393から読み出して、フラグ402を取得する。
At T15, the inter-task
For example, the host task 110 designates the same identifier as the identifier of the inter-OS synchronization data 400 designated by the guest task 210 in T23, and the inter-task
T16において、タスク間メッセージ処理部341が、T15で取得したフラグ402から、通知先のゲストタスク210が、ホストタスク110からのメッセージを待つために休眠しているか否かを判断する。ホストタスク110からのメッセージを待っていた場合には、T17へ進む。ホストタスク110からのメッセージを待つために休眠しているのではない場合には、S21に戻る。
At T16, the inter-task
T17において、タスク間メッセージ処理部341が、T15で取得したフラグ402を、起床要求を示す内容に書き換えて、OS間同期用データ記憶部393に記憶させる。
At T17, the inter-task
T18において、割込信号入力装置905が割込信号を出力し、S21に戻る。
ここで割込信号入力装置905が出力する割込信号は、異なるOSのタスク間でのメッセージのやり取りが発生したことを示す信号である。
例えば、GPIO(General Purpose Input/Output:汎用入出力装置)(出力装置904)の出力線を、割込信号入力装置905に結線し、GPIOに対する出力を行うことで、割込信号を出力する。
あるいは、他の用途に使用していないDMA(Direct Memory Access)コントローラを使って、最小単位のデータをメモリ(記憶装置902)間で転送することにより、その完了を通知する割込信号を出力してもよい。
もしくは、ハードウェアを使用せず、例えば、SWI(Softwere Interupt)命令を実行することで、割込信号を出力してもよい。
At T18, the interrupt
Here, the interrupt signal output from the interrupt
For example, an output signal of a GPIO (General Purpose Input / Output: general-purpose input / output device) (output device 904) is connected to an interrupt
Alternatively, a DMA (Direct Memory Access) controller that is not used for other purposes is used to transfer the minimum unit of data between memories (storage device 902), thereby outputting an interrupt signal that notifies the completion. May be.
Alternatively, the interrupt signal may be output by executing, for example, a SWI (Software Interrupt) instruction without using hardware.
この割込信号は、ゲストOS200で処理すべき割込を発生させるものである。したがって、この割込処理の優先順位は、ゲストOS200より高く、ゲストOS200より優先順位の高いホストタスク110より低い。
したがって、ゲストOS200より優先順位の高いホストタスク110の実行中は、割込マスクにより、この割込についての処理は行わない。これにより、無駄なOS切替等は発生しない。
This interrupt signal is for generating an interrupt to be processed by the
Therefore, during the execution of the host task 110 having a higher priority than the
図21は、この実施の形態において、T18で入力した割込信号による割込を処理する割込処理プログラムのOS間通信割込処理の流れの一例を示すフローチャート図である。
OS間通信割込処理を行う割込処理プログラムは、ゲストOS200の管理下にある割込処理プログラムである。
したがって、この割込信号入力後、実施の形態1で説明したタスク切替処理、割込ベクタ書換処理などが発生する。その後、OS間通信割込処理が開始する。
FIG. 21 is a flowchart showing an example of the flow of the inter-OS communication interrupt process of the interrupt processing program for processing the interrupt by the interrupt signal input at T18 in this embodiment.
An interrupt processing program that performs inter-OS communication interrupt processing is an interrupt processing program under the management of the
Therefore, after this interrupt signal is input, the task switching process, the interrupt vector rewriting process, etc. described in the first embodiment occur. Thereafter, the inter-OS communication interrupt process starts.
T31において、ゲストOS200のスケジュール部(OS間同期処理部)が、OS間同期用データ記憶部393が記憶したOS間同期用データ400を読み出し、起床要求を示すフラグ402が設定されているものを探し、メッセージの通知先であるゲストタスク210を判別する。
At T31, the schedule section (inter-OS synchronization processing section) of the
T32において、ゲストOS200のスケジュール部(OS間同期処理部)が、T31で読み出したフラグ402をクリアして、OS間同期用データ記憶部393に記憶させる。
At T32, the schedule unit (inter-OS synchronization processing unit) of the
T33において、ゲストOS200のスケジュール部が、メッセージの通知先であるゲストタスクを起床する。
At T33, the schedule unit of the
これにより、ホストタスク110がメッセージを通知した通知先であるゲストタスク210を起床させることができる。 As a result, the guest task 210 that is the notification destination to which the host task 110 has notified the message can be woken up.
また、割込処理によって、通知先のゲストタスク210を起床させるので、ゲストOS200が他のゲストタスク210の実行中に、実行を中断していた場合であっても、ゲストOS200の実行再開時に、通知先のゲストタスク210のほうが、実行を中断していたゲストタスク210よりも優先順位が高い場合に、実行を中断していたゲストタスク210の実行を再開するのではなく、通知先のゲストタスク210の実行を、すぐに開始できる。
スケジュール部330のスケジュール処理において、T18で割込を発生させず、T17でOS間同期用データ記憶部393を書き換えるのみとして、ゲストOS200が実行を再開した場合、実行を中断していたゲストタスク210の実行を再開する。割込が発生しないので、通知先のゲストタスク210のほうが優先順位が高い場合であっても、実行を中断していたゲストタスク210の処理が一段落するまでは、通知先のゲストタスク210が起床されない。
T18で割込信号を発生させることにより、そのような処理の遅延が生じないようにすることができる。
In addition, since the guest task 210 to be notified is woken up by the interrupt process, even when the
In the schedule processing of the schedule unit 330, when the
By generating an interrupt signal at T18, such processing delay can be prevented.
この実施の形態における並列処理装置によれば、ホストタスク110がゲストタスク210に対して通知するメッセージを生成した場合に、割込信号入力装置905が割込信号を出力するので、メッセージの通知を待っていたゲストタスク210の処理が遅延することがないという効果を奏する。
According to the parallel processing device in this embodiment, when the host task 110 generates a message to be notified to the guest task 210, the interrupt
この実施の形態における並列処理装置によれば、既存のOSがタスク間通信のために有しているデータ構造をわずかに修正するだけで、OS間同期用データ400として利用できるので、既存のOSをゲストOS200として利用する際に必要な修正点が少なく、開発コストを抑えることができるという効果を奏する。
According to the parallel processing device in this embodiment, the existing OS can be used as the inter-OS synchronization data 400 by slightly modifying the data structure that the existing OS has for inter-task communication. There are few correction points required when using as a
この実施の形態における並列処理装置によれば、割込信号により起動されたゲストOS200の割込処理プログラムにおいて、OS間同期用データ400に基づいて、メッセージの通知先であるゲストタスク210を判別する処理を行うので、メッセージの通知を待っていたゲストタスク210を起床することができるという効果を奏する。
According to the parallel processing device in this embodiment, in the interrupt processing program of the
なお、ゲストタスク210がホストタスク110に対してメッセージを通知した場合には、ゲストOS200がホストOS100の管理下にあるホストタスク110の一つなので、ゲストOS200からホストOS100に対して、通知先のホストタスク110の起床を要求することができる。
When the guest task 210 notifies the host task 110 of a message, since the
以上のように、ホストOS100上のタスクから割込を入れ、ゲストOS200上の割込処理の中でゲストタスク210を起床するので、ホストタスク110からゲストタスク210を起床することができる。
As described above, an interrupt is entered from a task on the host OS 100, and the guest task 210 is woken up in the interrupt process on the
これにより、ゲストOS200側で、データの到着をポーリングする必要がないので、ポーリング処理によるオーバーヘッドがなく、また、次のポーリングのタイミングまで処理が遅延することもない。
Thereby, since it is not necessary to poll the arrival of data on the
実施の形態3.
実施の形態3を、図22〜図26を用いて説明する。
この実施の形態における並列処理装置900のハードウェア構成は、実施の形態1で説明したものと同様であるので、ここでは説明を省略する。
Embodiment 3 FIG.
A third embodiment will be described with reference to FIGS.
Since the hardware configuration of the parallel processing apparatus 900 in this embodiment is the same as that described in the first embodiment, description thereof is omitted here.
図22は、この実施の形態における並列処理装置900において実行されるプログラム(タスク)の関係の一例を示す概念図である。
なお、実施の形態1で説明したプログラムまたはデータと共通するプログラムまたはデータについては、同一の符号を付し、ここでは説明を省略する。
FIG. 22 is a conceptual diagram showing an example of the relationship of programs (tasks) executed in the parallel processing device 900 in this embodiment.
Note that programs or data that are the same as the programs or data described in
ホストOS100は、ゲストOS優先度情報151を保有する。
ゲストOS優先度情報151は、ゲストOS200の優先度をどのように変化させるかについての情報である。
The host OS 100 has guest
The guest
ホストOS100が管理するホストタスク110の一つとして、優先度制御タスク109がある。
優先度制御タスク109は、ゲストOSの優先度を変化させる処理を行うプログラムである。
One of the host tasks 110 managed by the host OS 100 is a
The
図23は、この実施の形態における並列処理装置900の機能ブロックの構成の一例を示すブロック構成図である。
なお、実行の形態1で説明したブロックと共通する機能ブロックについては、同一の符号を付し、ここでは説明を省略する。
FIG. 23 is a block configuration diagram showing an example of a functional block configuration of the parallel processing device 900 according to this embodiment.
Note that functional blocks that are common to the blocks described in the first embodiment are given the same reference numerals, and description thereof is omitted here.
並列処理装置900は、ゲストOS優先度情報記憶部394、優先度書換部351などを有する。
The parallel processing device 900 includes a guest OS priority
ゲストOS優先度情報記憶部394は、ゲストOS優先度情報151を記憶装置を用いて記憶する。
The guest OS priority
優先度書換部351は、ゲストOS優先度情報記憶部394が記憶したゲストOS優先度情報に基づいて、優先度記憶部391が記憶したゲストOS200の優先度を書き換える。このとき、時計装置906が測定した経過時間によって、ゲストOS200の優先度を変化させる。
優先度書換部351は、実行装置901が優先度制御タスク109を実行することにより実現する。
The
The
図24は、この実施の形態におけるゲストOS優先度情報記憶部394が記憶したゲストOS優先度情報151のデータ構造の一例を示す図である。
FIG. 24 is a diagram showing an example of the data structure of the guest
ゲストOS優先度情報151は、例えば、優先実行期間の優先度501、優先実行期間の時間502、非優先実行期間の時間503を示すデータである。
The guest
優先実行期間の優先度501は、ゲストOS200を高い優先度で実行する場合の優先度を示す。
優先実行期間の時間502は、ゲストOS200を高い優先度で実行する期間の時間を示す。
非優先実行期間の時間503は、ゲストOS200を最低の優先度で実行する期間の時間を示す。
The
A priority
The non-priority
図25は、この実施の形態におけるタスクの優先順位の一例を示す概念図である。
優先度書換部351がゲストOS200の優先度を書き換えることにより、ホストタスク110間の優先順位は、左側の状態と右側の状態との間を行き来する。
FIG. 25 is a conceptual diagram showing an example of task priorities in this embodiment.
As the
ゲストOS200を高い優先度で実行する期間(優先実行期間)は、左側の状態となる。
この状態では、ゲストOS200が休眠状態とならない限り、ゲストOS200よりも優先順位の低い通常処理タスク123〜125を、タスク選択部332が選択することはなく、通常処理タスク123〜125が実行されることはない。
また、ゲストOS200よりも優先順位の低い割込処理タスク113,115を実行させる割込は、割込マスクによりマスクされるので、ゲストOS200が休眠状態とならない限り、割込処理タスク113,115を実行させる割込は発生せず、割込処理タスク113,115が実行されることもない。
The period during which the
In this state, unless the
Also, interrupts that cause the interrupt
ゲストOS200が多数のゲストタスク210を管理している場合、そのゲストタスク210がすべて実行不可能な状態となることは稀であり、したがって、ゲストOS200が休眠状態になることも稀である。
いくら優先順位が低いタスクであっても、ある程度は定期的に実行する機会が与えられなければ、処理に支障を来たす可能性がある。
When the
Even if the task has a low priority, if there is no opportunity to execute it regularly to some extent, it may interfere with the processing.
そこで、この実施の形態では、ゲストOS200の優先順位を強制的に下げることにより、優先順位の低いタスクにも実行の機会を与えるものとする。
Therefore, in this embodiment, the priority of the
優先度書換部351が時計装置906を用いて優先実行期間を開始してからの経過時間を測定する。優先度書換部351は、優先実行期間の時間502が経過した場合に、優先度記憶部391が記憶したゲストOS200の優先度を、最低の優先度に書き換える。
The
ゲストOS200を低い優先度で実行する期間(非優先実行期間)は、右側の状態となる。
この状態では、他のホストタスク110がすべて実行不可能な状態とならない限り、ゲストOS200が実行されることはない。
その代わり、通常処理タスク123〜125や割込処理タスク113,115のような優先順位が低いタスクにも、実行の機会が与えられる。
The period during which the
In this state, the
Instead, execution opportunities are also given to low priority tasks such as the
なお、優先度制御タスク109は、実行装置901がゲストOS200を実行している際であっても実行する必要があるので、ゲストOS200よりも高い優先順位を有する。
Since the
図26は、この実施の形態における優先度書換部351のゲストOS優先度制御処理の流れの一例を示すフローチャート図である。
FIG. 26 is a flowchart showing an example of the flow of the guest OS priority control process of the
T61において、優先度書換部351が、ゲストOS優先度情報記憶部394が記憶したゲストOS優先度情報500から、優先実行期間の優先度501を取得する。
In T61, the
T62において、優先度記憶部391が、T61で優先度書換部351が取得した優先実行期間の優先度501を、ゲストOSの優先度として記憶する(優先実行期間の開始)。
In T62, the
T63において、優先度書換部351が、ゲストOS優先度情報記憶部394が記憶したゲストOS優先度情報500から、優先実行期間の時間502を取得する。
In T63, the
T64において、優先度書換部351が、T63で取得した優先実行期間の時間502を、時計装置906に設定する。
ここで、時計装置906は、設定した時間が経過すると、割込信号入力装置905にそのことを通知し、割込信号を発生させるものとする。
At T64, the
Here, when the set time elapses, the
T65において、優先度書換部351は、時計装置906からの割込があるまで、優先度制御タスク109を休眠状態とする。
In T65, the
その後、時計装置906に設定した優先実行期間の時間502が経過すると、時計装置906からの割込により、優先度制御タスク109が起床し、T66以下の処理が再開される。
Thereafter, when the
T66において、優先度記憶部391が、最低の優先度を、ゲストOS200の優先度として記憶する(優先実行期間の終了、非優先実行期間の開始)。
At T66, the
T67において、優先度書換部351が、ゲストOS優先度情報記憶部394が記憶したゲストOS優先度情報500から、非優先実行期間の時間503を取得する。
In T67, the
T68において、優先度書換部351が、T67で取得した非優先実行期間の時間503を、時計装置906に設定する。
At T68, the
T69において、優先度書換部351は、時計装置906からの割込があるまで、優先度制御タスク109を休眠状態とする。
In T69, the
その後、時計装置906に設定した非優先実行期間の時間503が経過すると、時計装置906からの割込により、優先度制御タスク109が起床し、処理が再開されてT61に戻る。
Thereafter, when the non-priority
これにより、ゲストOS200は、高い優先順位で実行される期間と、低い優先順位で実行される期間とを交互に繰り返すこととなる。
As a result, the
なお、この例では、非優先実行期間におけるゲストOS200の優先順位を、最低の優先順位としているが、必ずしも最低の優先順位でなくてもよい。
しかし、非優先実行期間におけるゲストOS200の優先順位を最低の優先順位とすれば、ゲストOS200が休眠状態とならなくても、他のすべてのホストタスク110に実行の機会を与えることができる。
In this example, the priority order of the
However, if the priority of the
既存のOSは、他のOSのタスクとして動作することを想定していないので、管理するタスクがすべて休眠状態となっても、OS自体は休眠状態とならない(S86に相当する処理がない)。
したがって、非優先実行期間におけるゲストOS200の優先順位を最低の優先順位とすることとすれば、既存のOSをゲストOS200として利用する場合、休眠処理(S86)を加える修正をしなくてもよいので、開発コストを抑えることができる。
Since the existing OS is not assumed to operate as a task of another OS, the OS itself does not enter a sleep state even if all managed tasks are in a sleep state (there is no processing corresponding to S86).
Therefore, if the priority of the
また、この例では、ゲストOS200の優先度が2種類あり、2つの優先度の期間を繰り返す構成としているが、優先度の数は2種類に限らず、もっと多くてもよい。
In this example, there are two types of priority of the
また、この例では、ゲストOS200が実行されたか否かにかかわらず、所定の時間が経過した場合に、優先度を書き換えることとしているが、ゲストOS200が実行された時間だけを測定して、所定の時間実行した場合に、優先度を書き換えることとしてもよい。
In this example, the priority is rewritten when a predetermined time has passed regardless of whether or not the
また、ホストタスク110が、ゲストOS優先度情報記憶部394が記憶したゲストOS優先度情報500を書き換えることにより、例えば、ゲストタスク210が処理すべき処理量と、ゲストOS200以外のホストタスク110が処理すべき処理量とによって、ゲストOS200の優先実行期間の時間や、優先度を変化させることができる。これにより、処理の負荷に応じたOSの切替が可能となる。
Further, the host task 110 rewrites the guest OS priority information 500 stored in the guest OS priority
この実施の形態における並列処理装置によれば、優先度書換部351がゲストOS200の優先度を定期的に変化させるので、優先実行期間においてゲストOS200よりも低い優先順位をもつホストタスク110にも、定期的に実行の機会が与えられるという効果を奏する。
According to the parallel processing device in this embodiment, since the
この実施の形態における並列処理装置によれば、非優先実行期間におけるゲストOS200の優先順位を最低順位とするので、既存のOSをゲストOS200として利用する場合に必要な修正が少なく、開発コストを抑えることができるという効果を奏する。
According to the parallel processing device of this embodiment, since the priority order of the
以上説明した並列処理装置が用いるタスクの起動方法は、
ホストOSの1つのタスクとしてゲストOSが動作するマルチOSの構成において、タスクの優先度と割込処理の優先度をもとに、タスク起動時にタスク優先度と割込マスクの設定値に関して、割込処理がより高い優先度のタスクの処理を阻害しないよう定めたことを特徴とする。
The task activation method used by the parallel processing device described above is:
In a multi-OS configuration in which the guest OS operates as one task of the host OS, the task priority and interrupt mask setting values are assigned at task startup based on the task priority and interrupt processing priority. It is characterized in that it is determined that the processing of the embedded process does not hinder the processing of the task with a higher priority.
以上説明した並列処理装置によるマルチOSシステムにおける割込マスク設定処理は、
ゲストOSで処理する割込をマスクするとき、ゲストOSで扱う最も高い優先度の割込レベルで割込マスクをすることにより、ゲストOSの割込マスクがゲストOSよりも高い優先度の割込処理を阻害しないようにしたことを特徴とする。
The interrupt mask setting process in the multi-OS system by the parallel processing device described above is
When masking interrupts to be processed by the guest OS, the interrupt mask of the guest OS has a higher priority than the guest OS by masking the interrupt at the highest priority interrupt level handled by the guest OS. It is characterized by not inhibiting the treatment.
以上説明した並列処理装置によるマルチOSシステムは、
ゲストOSにおいて実行すべき処理が存在しない場合、ホストOSのスリープ(sleep)を呼び出して、CPUを手放すことを特徴とする。
The multi-OS system using the parallel processing device described above is
When there is no processing to be executed in the guest OS, the sleep of the host OS is called to release the CPU.
以上説明した並列処理装置によるマルチOSシステムは、
ゲストOSがスリープ状態で、ゲストOSで処理したい割込が発生した時、ホストOS側でゲストOSをウェイクアップ(wakeup)させることを特徴とする。
The multi-OS system using the parallel processing device described above is
When the guest OS is in a sleep state and an interrupt to be processed by the guest OS occurs, the host OS wakes up the guest OS.
以上説明した並列処理装置によるマルチOSシステムは、
ゲストOS上でスリープしているタスクをホストOSからウェイクアップするとき、ホストOS側からゲストOS側で処理する割込を発生させ、ゲストOS側が割込処理の中でゲストOS上のタスクをウェイクアップさせることを特徴とする。
The multi-OS system using the parallel processing device described above is
When a task that is sleeping on the guest OS is woken up from the host OS, an interrupt to be processed on the guest OS side is generated from the host OS side, and the guest OS side wakes up the task on the guest OS in the interrupt processing. It is made to raise.
以上説明した並列処理装置によるマルチOSシステムは、
ホストOSの1つのタスクとしてゲストOSが動作するマルチOSの構成において、ゲストOSの優先度を時間の経過とともに上下させることを特徴とする。
The multi-OS system using the parallel processing device described above is
In a multi-OS configuration in which a guest OS operates as one task of the host OS, the priority of the guest OS is raised or lowered with the passage of time.
100 ホストOS、101,201 スケジューラ、102,202 割込ベクタ、103,203 割込処理、104,204 マスク設定処理、105,205 OS間同期処理、106 ホストOS上のタスク、107 OS切替用タスク、108 マスクテーブル、109 優先度制御タスク、110 ホストタスク、111〜115,211〜212 割込処理タスク、121〜125,221〜223 通常処理タスク、151 ゲストOS優先度情報、200 ゲストOS、206 ゲストOS上のタスク、210 ゲストタスク、310 割込処理部、311 割込ベクタ記憶部、312 割込マスク記憶部、313 割込処理実行部、320 ディスパッチ部、321 コンテキスト書換部、323 割込ベクタ書換部、324 マスク設定部、330 スケジュール部、331 実行可能判断部、332 タスク選択部、333 マスクテーブル生成部、334 マスクテーブル記憶部、341 タスク間メッセージ処理部、351 優先度書換部、391 優先度記憶部、392 コンテキスト記憶部、393 OS間同期用データ記憶部、394 ゲストOS優先度情報記憶部、400 OS間同期用データ、401 ゲストOS上の同期用データ、402 フラグ、501 優先実行期間の優先度、502 優先実行期間の時間、503 非優先実行期間の時間、611 タスク優先度、612 割込マスクレベル、621〜632 割込、641〜659 割込ベクタ、661〜664,671〜672 割込処理プログラム、669,679 切替プログラム、900 並列処理装置、901 実行装置、902 記憶装置、903 入力装置、904 出力装置、905 割込信号入力装置、906 時計装置。 100 Host OS, 101, 201 Scheduler, 102, 202 Interrupt vector, 103, 203 Interrupt processing, 104, 204 Mask setting processing, 105, 205 Inter-OS synchronization processing, 106 Task on host OS, 107 OS switching task , 108 Mask table, 109 Priority control task, 110 Host task, 111 to 115, 211 to 212 Interrupt processing task, 121 to 125, 221 to 223 Normal processing task, 151 Guest OS priority information, 200 Guest OS, 206 Task on guest OS, 210 Guest task, 310 Interrupt processing unit, 311 Interrupt vector storage unit, 312 Interrupt mask storage unit, 313 Interrupt processing execution unit, 320 Dispatch unit, 321 Context rewriting unit, 323 Interrupt vector Rewriting unit, 324 mask Fixed part, 330 Schedule part, 331 Executable judgment part, 332 Task selection part, 333 Mask table generation part, 334 Mask table storage part, 341 Inter-task message processing part, 351 Priority rewriting part, 391 Priority storage part, 392 Context storage unit, 393 OS synchronization data storage unit, 394 guest OS priority information storage unit, 400 OS synchronization data, 401 guest OS synchronization data, 402 flag, 501 priority of priority execution period, 502 Priority execution period time, 503 Non-priority execution period time, 611 Task priority, 612 Interrupt mask level, 621 to 632 interrupt, 641 to 659 interrupt vector, 661 to 664, 671 to 672 Interrupt processing program, 669, 679 switching program, 900 parallel processing device , 901 execution device, 902 storage device, 903 input device, 904 output device, 905 interrupt signal input device, 906 clock device.
Claims (15)
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が入力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部と、
を有することを特徴とする並列処理装置。 A guest parallel processing program that manages a plurality of programs as guest tasks, and switches and executes the guest tasks, thereby causing the computer to function as a guest parallel processing device that processes the plurality of programs in parallel, and other programs In a parallel processing device that processes the plurality of programs and the other programs in parallel by managing the host tasks and switching and executing the host tasks,
An execution device for executing the program;
A storage device for storing information;
Interrupts the execution of the program being executed by the execution device and outputs an interrupt signal to the execution device that requests the execution device to execute an interrupt processing program for processing an interrupt. An interrupt signal input device;
Based on a request by an interrupt signal input by the interrupt signal input device, an interrupt vector storage unit that stores information indicating a program executed by the execution device as an interrupt vector using the storage device;
A task selection unit for selecting a host task to be executed by the execution device from the host tasks;
Different interrupt vectors are stored in the interrupt vector when the host task selected by the task selection unit is the other program and when the host task selected by the task selection unit is the guest parallel processing program. Interrupt vector rewriting part to be stored in the part,
A parallel processing apparatus comprising:
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合に、上記割込ベクタ記憶部に、
上記ゲストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを記憶させ、
上記ホストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記割込信号が上記実行装置に対して実行することを要求する上記ホストタスクの一つである割込処理プログラムを示す割込ベクタを記憶させる
ことを特徴とする請求項1に記載の並列処理装置。 The above interrupt vector rewriting part
When the host task selected by the task selection unit is the other program, the interrupt vector storage unit stores
A switching program that makes the guest parallel processing program executable as an interrupt vector for an interrupt signal that requests the execution device to execute an interrupt processing program that is one of the guest tasks. Memorize the interrupt vector
As an interrupt vector for an interrupt signal that requests the execution device to execute an interrupt processing program that is one of the host tasks, the interrupt signal is executed to the execution device. 2. The parallel processing apparatus according to claim 1, wherein an interrupt vector indicating an interrupt processing program which is one of the requested host tasks is stored.
上記タスク選択部が選択したプログラムが上記ゲスト並列処理プログラムである場合に、上記割込ベクタ記憶部に、
上記ゲストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記割込信号が上記実行装置に対して実行することを要求する上記ゲストタスクの一つである割込処理プログラムを示す割込ベクタを記憶させ、
上記ホストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを記憶させる
ことを特徴とする請求項1に記載の並列処理装置。 The above interrupt vector rewriting part
When the program selected by the task selection unit is the guest parallel processing program, the interrupt vector storage unit stores
As an interrupt vector for an interrupt signal that requests the execution device to execute an interrupt processing program that is one of the guest tasks, the interrupt signal is executed to the execution device. Store the interrupt vector indicating the interrupt processing program that is one of the above guest tasks to request,
Another program having a higher priority than the guest parallel processing program is used as an interrupt vector for an interrupt signal that requests the execution device to execute an interrupt processing program that is one of the host tasks. The parallel processing apparatus according to claim 1, wherein an interrupt vector indicating a switching program to be executed is stored.
上記実行装置が上記切替プログラムを実行した場合に、上記割込信号を上記実行装置に対して出力する
ことを特徴とする請求項2または請求項3に記載の並列処理装置。 The interrupt signal input device further includes:
4. The parallel processing device according to claim 2, wherein when the execution device executes the switching program, the interrupt signal is output to the execution device.
上記実行装置に上記割込信号を出力した後、上記実行装置が上記割込処理プログラムを実行するまでの間、上記割込信号を上記実行装置に対して出力する
ことを特徴とする請求項1に記載の並列処理装置。 The interrupt signal input device is
2. The interrupt signal is output to the execution device after the interrupt signal is output to the execution device until the execution device executes the interrupt processing program. The parallel processing device according to 1.
上記割込処理プログラムは、上記割込停止命令を含み、
上記切替プログラムは、上記割込停止命令を含まない
ことを特徴とする請求項2または請求項3に記載の並列処理装置。 After the interrupt signal input device inputs the interrupt signal to the execution device, the interrupt signal is input to the execution device until the execution device executes an interrupt stop command for stopping the output of the interrupt signal. Output to the execution unit,
The interrupt processing program includes the interrupt stop instruction,
The parallel processing apparatus according to claim 2, wherein the switching program does not include the interrupt stop instruction.
上記割込信号入力装置が上記実行装置に対して出力する割込信号の要求により、割込処理プログラムを実行することを上記実行装置に対して許可するか否かを示す情報を割込マスクとして、上記記憶装置を用いて記憶する割込マスク記憶部と、
上記タスク選択部が選択したプログラムが上記ゲスト並列処理プログラムよりも優先順位の高いプログラムである場合に、上記割込マスク記憶部に、上記ゲストタスクである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込マスクとして、上記ゲストタスクである割込処理プログラムを実行することを上記実行装置に対して許可しないことを示す割込マスクを記憶させ、
上記タスク選択部が選択したプログラムが上記ゲスト並列処理プログラムである場合に、上記割込マスク記憶部に、上記ゲスト並列処理プログラムよりも優先順位の低い上記ホストタスクである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込マスクとして、上記ゲスト並列処理プログラムよりも優先順位の低い上記ホストタスクである割込処理プログラムを実行することを上記実行装置に対して許可しないことを示す割込マスクを記憶させるマスク設定部と、
を有することを特徴とする請求項1に記載の並列処理装置。 The parallel processing device further includes:
Information indicating whether or not the execution device is permitted to execute an interrupt processing program in response to a request for an interrupt signal output from the interrupt signal input device to the execution device is used as an interrupt mask. An interrupt mask storage unit for storing using the storage device;
When the program selected by the task selection unit is a program having a higher priority than the guest parallel processing program, the execution of the interrupt processing program as the guest task is executed in the interrupt mask storage unit. As an interrupt mask for an interrupt signal requested to the device, store an interrupt mask indicating that the execution device is not permitted to execute the interrupt processing program that is the guest task,
When the program selected by the task selection unit is the guest parallel processing program, the interrupt processing program that is the host task having a lower priority than the guest parallel processing program is executed in the interrupt mask storage unit As an interrupt mask for an interrupt signal for requesting the execution device, the execution device that executes the interrupt processing program, which is the host task having a lower priority than the guest parallel processing program, is executed. A mask setting unit for storing an interrupt mask indicating that it is not permitted,
The parallel processing apparatus according to claim 1, comprising:
上記実行装置が上記ホストタスクを実行すべき優先順位を示す情報を優先度として、上記記憶装置を用いて記憶する優先度記憶部と、
上記実行装置が上記ホストタスクを実行可能な状態であるか否かを判断する実行可能判断部と、
を有し、
上記タスク選択部は、
上記実行可能判断部が実行可能な状態であると判断したホストタスクのうちから、上記優先度記憶部が記憶した優先度に基づいて、上記実行装置が実行するホストタスクを選択する
ことを特徴とする請求項1に記載の並列処理装置。 The parallel processing device further includes:
A priority storage unit that stores information indicating the priority order in which the execution device should execute the host task as a priority, using the storage device;
An executable determination unit that determines whether the execution device is in a state in which the host task can be executed;
Have
The task selector above
Selecting a host task to be executed by the execution device based on the priority stored in the priority storage unit from among the host tasks determined to be executable by the executable determination unit. The parallel processing device according to claim 1.
上記ゲストタスクのすべてが実行可能な状態でない場合に、上記ゲスト並列処理プログラムが実行可能な状態でないと判断する
ことを特徴とする請求項8に記載の並列処理装置。 The executable determination unit is
The parallel processing apparatus according to claim 8, wherein when all of the guest tasks are not executable, the guest parallel processing program is determined not to be executable.
上記実行装置が上記ホストタスクを実行している場合に、上記ホストタスクが実行可能な状態でないことを通知する処理を、上記実行装置が実行した場合に、上記ホストタスクが実行可能な状態でないと判断し、
上記ゲスト並列処理プログラムは、
上記ゲストタスクのすべてが実行可能な状態でない場合に、実行可能な状態でないことを通知する処理を含む
ことを特徴とする請求項8に記載の並列処理装置。 The executable determination unit is
When the execution device executes the host task, the host device is not in an executable state when the execution device executes a process for notifying that the host task is not in an executable state. Judgment
The guest parallel processing program is
9. The parallel processing apparatus according to claim 8, further comprising a process of notifying that the guest task is not executable when all of the guest tasks are not executable.
経過時間を測定する時計装置と、
上記時計装置が測定した経過時間に基づいて、上記優先度記憶部が記憶した上記ゲスト並列処理プログラムの優先度を書き換える優先度書換部と、
を有することを特徴とする請求項8に記載の並列処理装置。 The parallel processing device
A clock device for measuring elapsed time;
A priority rewriting unit for rewriting the priority of the guest parallel processing program stored in the priority storage unit based on the elapsed time measured by the clock device;
The parallel processing device according to claim 8, comprising:
上記他のプログラムから通知されるメッセージを待っていることにより実行可能な状態でない上記ゲストタスクである通知待ちプログラムに対して通知するメッセージを、上記実行装置が上記他のプログラムを実行することにより生成した場合に、
上記通知待ちプログラムを実行可能な状態とする上記ゲストタスクである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する
ことを特徴とする請求項1に記載の並列処理装置。 The interrupt signal input device further includes:
The execution device generates a message to be notified to the notification waiting program that is the guest task that is not executable by waiting for a message notified from the other program, by the execution device executing the other program If
An interrupt signal for requesting the execution device to execute the interrupt processing program that is the guest task for making the notification waiting program executable is output to the execution device. The parallel processing device according to claim 1.
上記通知待ちプログラムに対して通知するメッセージを、上記実行装置が上記他のプログラムを実行することにより生成した場合に、上記通知待ちプログラムを示す情報を上記記憶装置を用いて記憶する通知先記憶部を有し、
上記通知待ちプログラムに対して通知するメッセージを、上記実行装置が上記他のプログラムを実行することにより生成した場合に、上記割込信号入力装置が上記実行装置に対して出力する割込信号の要求に基づいて上記実行装置が実行する割込処理プログラムは、上記通知先記憶部が記憶した情報に基づいて、上記実行装置が上記通知待ちプログラムを判断する処理を含む
ことを特徴とする請求項12に記載の並列処理装置。 The parallel processing device further includes:
A notification destination storage unit that stores information indicating the notification waiting program using the storage device when the execution device generates the message to be notified to the notification waiting program by executing the other program. Have
Request for an interrupt signal that the interrupt signal input device outputs to the execution device when the execution device generates the message to be notified to the notification waiting program by executing the other program 13. The interrupt processing program executed by the execution device based on the notification includes a process in which the execution device determines the notification waiting program based on information stored in the notification destination storage unit. The parallel processing device according to 1.
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が入力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
を有する並列処理装置が、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理方法において、
タスク選択部が、上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択工程と、
割込ベクタ書換部が、
上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換工程と、
を有することを特徴とする並列処理方法。 An execution device for executing the program;
A storage device for storing information;
Interrupts the execution of the program being executed by the execution device and outputs an interrupt signal to the execution device that requests the execution device to execute an interrupt processing program for processing an interrupt. An interrupt signal input device;
Based on a request by an interrupt signal input by the interrupt signal input device, an interrupt vector storage unit that stores information indicating a program executed by the execution device as an interrupt vector using the storage device;
A parallel processing device having
A guest parallel processing program that manages a plurality of programs as guest tasks, and switches and executes the guest tasks, thereby causing the computer to function as a guest parallel processing device that processes the plurality of programs in parallel, and other programs In a parallel processing method for processing the plurality of programs and the other programs in parallel by managing the host tasks and switching and executing the host tasks.
A task selection step for selecting a host task to be executed by the execution device from among the host tasks;
Interrupt vector rewriting part
Different interrupt vectors are used when the host task selected by the task selection unit in the task selection step is the other program and when the host task selected by the task selection unit is the guest parallel processing program. An interrupt vector rewriting step to be stored in the interrupt vector storage unit;
A parallel processing method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005359069A JP4523910B2 (en) | 2005-12-13 | 2005-12-13 | Parallel processing device, parallel processing method, and parallel processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005359069A JP4523910B2 (en) | 2005-12-13 | 2005-12-13 | Parallel processing device, parallel processing method, and parallel processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007164421A true JP2007164421A (en) | 2007-06-28 |
JP4523910B2 JP4523910B2 (en) | 2010-08-11 |
Family
ID=38247252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005359069A Expired - Fee Related JP4523910B2 (en) | 2005-12-13 | 2005-12-13 | Parallel processing device, parallel processing method, and parallel processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4523910B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008001776A1 (en) | 2006-06-26 | 2008-01-03 | Shin-Etsu Chemical Co., Ltd. | Process for producing optical fiber base and apparatus therefor |
JP2009123184A (en) * | 2007-10-24 | 2009-06-04 | Toshiba Corp | Information processing apparatus |
WO2009133669A1 (en) * | 2008-04-28 | 2009-11-05 | パナソニック株式会社 | Virtual computer control device, virtual computer control method, and virtual computer control program |
JP2013537657A (en) * | 2010-06-23 | 2013-10-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method for converting message signal interrupt to I / O adapter event notification to guest operating system |
JP2014038391A (en) * | 2012-08-10 | 2014-02-27 | Konica Minolta Inc | Image forming apparatus |
US9338320B2 (en) | 2012-08-10 | 2016-05-10 | Konica Minolta, Inc. | Image forming apparatus and method of controlling the same |
US9361251B2 (en) | 2010-10-22 | 2016-06-07 | Mitsubishi Electric Corporation | Interrupt signal accepting apparatus and computer apparatus managing operations of at least two operating systems |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108380A (en) * | 1991-10-21 | 1993-04-30 | Mitsubishi Electric Corp | Data processing system |
JPH06236286A (en) * | 1993-02-09 | 1994-08-23 | Seiko Epson Corp | Information processor |
JP2004259106A (en) * | 2003-02-27 | 2004-09-16 | Ntt Data Corp | Multi-operating system control method, program for making computer perform method, and multi-operating system control device |
JP2004318538A (en) * | 2003-04-17 | 2004-11-11 | Fujitsu Ltd | Method for monitoring performance |
JP2005071161A (en) * | 2003-08-26 | 2005-03-17 | Fujitsu Ltd | Task management program and task controller |
JP2005234658A (en) * | 2004-02-17 | 2005-09-02 | Fujitsu Ltd | Task management program and task management device |
-
2005
- 2005-12-13 JP JP2005359069A patent/JP4523910B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108380A (en) * | 1991-10-21 | 1993-04-30 | Mitsubishi Electric Corp | Data processing system |
JPH06236286A (en) * | 1993-02-09 | 1994-08-23 | Seiko Epson Corp | Information processor |
JP2004259106A (en) * | 2003-02-27 | 2004-09-16 | Ntt Data Corp | Multi-operating system control method, program for making computer perform method, and multi-operating system control device |
JP2004318538A (en) * | 2003-04-17 | 2004-11-11 | Fujitsu Ltd | Method for monitoring performance |
JP2005071161A (en) * | 2003-08-26 | 2005-03-17 | Fujitsu Ltd | Task management program and task controller |
JP2005234658A (en) * | 2004-02-17 | 2005-09-02 | Fujitsu Ltd | Task management program and task management device |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008001776A1 (en) | 2006-06-26 | 2008-01-03 | Shin-Etsu Chemical Co., Ltd. | Process for producing optical fiber base and apparatus therefor |
JP2009123184A (en) * | 2007-10-24 | 2009-06-04 | Toshiba Corp | Information processing apparatus |
WO2009133669A1 (en) * | 2008-04-28 | 2009-11-05 | パナソニック株式会社 | Virtual computer control device, virtual computer control method, and virtual computer control program |
US8468533B2 (en) | 2008-04-28 | 2013-06-18 | Panasonic Corporation | Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target |
JP5405320B2 (en) * | 2008-04-28 | 2014-02-05 | パナソニック株式会社 | Virtual machine control device, virtual machine control method, and virtual machine control program |
JP2013537657A (en) * | 2010-06-23 | 2013-10-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method for converting message signal interrupt to I / O adapter event notification to guest operating system |
US9361251B2 (en) | 2010-10-22 | 2016-06-07 | Mitsubishi Electric Corporation | Interrupt signal accepting apparatus and computer apparatus managing operations of at least two operating systems |
JP2014038391A (en) * | 2012-08-10 | 2014-02-27 | Konica Minolta Inc | Image forming apparatus |
US9338320B2 (en) | 2012-08-10 | 2016-05-10 | Konica Minolta, Inc. | Image forming apparatus and method of controlling the same |
Also Published As
Publication number | Publication date |
---|---|
JP4523910B2 (en) | 2010-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4580845B2 (en) | Task execution device | |
JP5323828B2 (en) | Virtual machine control device, virtual machine control program, and virtual machine control circuit | |
US7472214B2 (en) | Real-time embedded simple monitor method and computer product | |
JP4523910B2 (en) | Parallel processing device, parallel processing method, and parallel processing program | |
TWI307477B (en) | ||
US7853743B2 (en) | Processor and interrupt controlling method | |
US20060010446A1 (en) | Method and system for concurrent execution of multiple kernels | |
JP4345630B2 (en) | Information processing apparatus, interrupt processing control method, and computer program | |
JP2009265963A (en) | Information processing system and task execution control method | |
US7043729B2 (en) | Reducing interrupt latency while polling | |
JP2005056067A (en) | Dma transfer controller | |
KR20140127341A (en) | Method and system for scheduling requests in a portable computing device | |
US10229077B2 (en) | Method for data transfer between real-time tasks using a DMA memory controller | |
US20130191617A1 (en) | Computer system, computer system control method, computer system control program, and integrated circuit | |
US20210026651A1 (en) | Wake-up and scheduling of functions with context hints | |
JP2006243864A (en) | Processor and information processing method | |
JP4675891B2 (en) | Task scheduling apparatus, task scheduling method, task scheduling program, recording medium, and transmission medium | |
JP2001282558A (en) | Multi-operating computer system | |
JP2004078683A (en) | Computer system and shared memory controlling method | |
JPWO2018211865A1 (en) | Vehicle control device | |
Parikh et al. | Performance parameters of RTOSs; comparison of open source RTOSs and benchmarking techniques | |
JP2007323256A (en) | Interruption control method and information processor | |
JP2006004092A (en) | Computer system | |
KR101119458B1 (en) | Asynchronous communications technique | |
WO2023144878A1 (en) | Intra-server delay control device, intra-server delay control method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100119 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100506 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100525 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100528 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130604 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |