JP4523910B2 - 並列処理装置及び並列処理方法及び並列処理プログラム - Google Patents
並列処理装置及び並列処理方法及び並列処理プログラム Download PDFInfo
- Publication number
- JP4523910B2 JP4523910B2 JP2005359069A JP2005359069A JP4523910B2 JP 4523910 B2 JP4523910 B2 JP 4523910B2 JP 2005359069 A JP2005359069 A JP 2005359069A JP 2005359069 A JP2005359069 A JP 2005359069A JP 4523910 B2 JP4523910 B2 JP 4523910B2
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- guest
- task
- host
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
例えば、一方のOSをホストOSとし、他方のOSをゲストOSとして、ゲストOSをホストOS上の1つのタスクとして動作させることにより、2つのOSを共存させるマルチOSシステムがある。
マルチOSシステムにおいては、ハードウェアからの割込が発生した場合、その割込を処理すべきタスクを管理しているOSが動作していないと、正しく割込を処理することができない。
そのため、例えば、ホストOSが割込を処理すべきOSを判断し、ゲストOSが処理すべき割込である場合には、割込があったことを示すフラグをセットしておき、その後、ゲストOSに切り替わったときに、ゲストOSがフラグをチェックして、ゲストOSの割込ハンドラを呼び出す(例えば、非特許文献1)。
また、OS切替プログラムがOSを管理するマルチOSシステムで、既存のOSを動作させようとすると、OS切替プログラムがハードウェアをエミュレートする必要があり、処理のオーバーヘッドが発生するという課題がある。
また、OS切替プログラムがハードウェアをエミュレートしない場合には、既存のOSをそのまま動作させることができず、大幅な修正が必要になるという課題がある。
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が入力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部と、
を有することを特徴とする。
実施の形態1を、図1〜図16を用いて説明する。
図1は、この実施の形態における並列処理装置900のハードウェア構成の一例を示すハードウェア構成図である。
並列処理装置900は、実行装置901、記憶装置902、入力装置903、出力装置904、割込信号入力装置905、時計装置906を有する。
実行装置901は、記憶装置902が記憶したプログラムなどを実行し、以下に説明する各機能ブロックを実現する。
なお、以下に説明する各機能ブロックは、ハードウェアやファームウェアによって実現してもよい。
記憶装置902は、実行装置901が実行するプログラムのほか、入力装置903から入力した情報、実行装置901が処理した情報、出力装置904が出力する情報などを記憶する。
入力装置903は、各種情報を入力する。
また、入力装置903は、例えば、他の装置と接続するインターフェース装置であって、他の装置からの情報を入力する装置であってもよい。
出力装置904は、各種情報を出力する。
また、出力装置904は、例えば、他の装置と接続するインターフェース装置であって、他の装置に対して情報を出力する装置であってもよい。
例えば、入力装置903が操作者の入力を受けた場合、出力装置904が画像の印刷を完了した場合、時計装置906が測定した時間が所定の時間に達した場合などに、割込信号を出力する。
なお、割込信号入力装置905は、実行装置901であるCPUの一部であってもよい。
並列処理装置900において実行されるプログラムには、ホストOS100(Operating System)、ゲストOS200、ホストOS上のタスク106、OS切替用タスク107、ゲストOS上のタスク206などがある。
ホストOS100は、並列処理プログラムの一例である。
割込処理103は、割込信号入力装置905が出力した割込信号により実行され、それぞれの割込原因に対応する処理を行うプログラムである。
割込ベクタ102は、割込信号入力装置905が出力した割込信号により実行する割込処理103を示す情報(例えば、割込処理103を記憶したメモリ(記憶装置902)のアドレスなど)である。
マスク設定処理104は、優先順位の高い処理の実行中に、優先順位の低い割込処理を実行しないように、割込処理103の実行を制限するための割込マスクを設定するプログラムである。
マスクテーブル108は、マスク設定処理104において設定する割込マスクについての情報である。
OS間同期処理105は、ホストタスク110からゲストタスク210(ゲストOS上のタスク206)に対して通知するメッセージを処理するプログラムである。
ホストOS上のタスク106は、他のプログラムの一例である。
OS切替用タスク107は、他のプログラムの一例である。
ゲストOS200は、ゲスト並列処理プログラムの一例である。
割込処理203は、割込信号入力装置905が出力した割込信号により実行され、それぞれの割込原因に対応する処理を行うプログラムである。
割込ベクタ202は、割込信号入力装置905が出力した割込信号により実行する割込処理203を示す情報(例えば、割込処理203を記憶したメモリ(記憶装置902)のアドレスなど)である。
マスク設定処理204は、優先順位の高い処理の実行中に、優先順位の低い割込処理を実行しないように、割込処理203の実行を制限するための割込マスクを設定するプログラムである。
OS間同期処理205は、ホストタスク110からゲストタスク210に対して通知されたメッセージを処理するプログラムである。
ゲストOS上のタスク206は、複数のプログラムの一例である。
並列処理装置900は、割込処理部310、ディスパッチ部320、スケジュール部330、優先度記憶部391、コンテキスト記憶部392などを有する。
割込処理部310は、例えば、CPUのハードウェアによって実現するが、他の方法で実現してもよい。
割込処理部310は、割込ベクタ記憶部311、割込マスク記憶部312、割込処理実行部313を有する。
割込マスクは、例えば、割込信号の種類と同じ数のビット(割込マスクパターン)を有し、割込信号との論理積をとることにより、割込処理を許可する割込信号だけを抽出する。
また、例えば、割込マスクは、割込レベルを示す整数値(割込マスクレベル)であり、割込信号のレベルと割込マスクの値とを比較して、割込信号のレベルのほうが低い場合に、割込処理を許可しないものであってもよい。
例えば、現在のPC(Program Counter)の値をスタックに退避し、割込信号に対応する割込ベクタの値を、PCに読み込む。
ディスパッチ部320は、実行装置901がスケジューラ101を実行することにより実現する。
コンテキスト書換部321は、実行を中断するホストタスク110のコンテキストをコンテキスト記憶部392に記憶させ、実行を再開するホストタスク110のコンテキストを、コンテキスト記憶部392から復元する。
ここで、「OS切替時」とは、ホストタスク110のうち、ゲストOS200の実行を中断して、それ以外のホストタスク110(ホストOS上のタスク106、OS切替用タスク107など)を実行する場合、あるいは逆に、それ以外のホストタスク110(ホストOS上のタスク106、OS切替用タスク107など)の実行を中断して、ゲストOS200を実行する場合をいう。
割込処理103,203の管理は、各OSが行っているので、OS切替時には、割込ベクタ記憶部311が記憶した割込ベクタを書き換える必要がある。そこで、割込ベクタ書換部323は、割込ベクタ記憶部311が記憶した割込ベクタを、OSのコンテキストとして、保存・復元する。
この実施の形態では、割込マスクも、タスクのコンテキストの一部として、タスク切替時に保存・復元する。
「優先度」とは、ホストタスク110を実行する優先順位を示す情報である。実行可能な状態にあるホストタスク110が複数ある場合に、どのホストタスク110を実行するかを判断する基準となり、優先度に基づいて判断した優先順位が最も高いホストタスク110を実行する。
スケジュール部330は、実行装置901がスケジューラ101を実行することにより実現する。
「実行可能な状態」とは、ホストタスク110が、そのタスクを実行するために必要な情報、リソースがすべて揃っていて、実行装置901が空けば、すぐにでも実行できる状態にあることをいう。
これに対して、「実行可能な状態でない」とは、ホストタスク110が、例えば、入力待ち、出力完了待ち、タイミング調整、他のタスクの処理結果待ち、メモリ不足などにより、実行装置901が利用可能であっても、すぐには実行できない状態にあることをいう。
マスクテーブル記憶部334は、マスクテーブル生成部333が生成したマスクテーブル108を記憶する。
しかし、緊急度の高い処理を実行中に、緊急度の低い割込についての割込処理が発生することを防ぐ必要があるため、割込マスクによって、緊急度の低い割込処理の発生を防ぐ。
したがって、割込マスクによって割込処理を禁止された割込処理は、その割込マスクを設定したホストタスク110よりも、優先順位が低いと考えることができる。
割込処理タスク111〜115は、割込信号入力装置905が割込信号を出力したときに実行される割込処理103である。割込処理タスク111〜115は、スケジュール部330の管理外にあり、厳密な意味での「タスク」ではないが、ここでは、割込マスクにより、通常のタスクとの間に優先順位を考えることができるので、ホストタスク110の一種として扱う。
通常処理タスク121〜125は、優先度記憶部391が記憶した優先度に基づいて、優先順位が定められており、この図では、上にいくほど優先順位が高いものとして記述している。
すなわち、通常処理タスク122が処理結果を待っている割込処理タスク112の処理が終了して、通常処理タスク122が実行可能な状態となっても、通常処理タスク121が実行可能な状態でなくなるまで、待つことになる。
したがって、割込発生時に割込処理タスク112をすぐ実行する必要はなく、通常処理タスク121が終わるまで待つことができる。
そこで、通常処理タスク121を実行中は、割込処理タスク112の実行を許可しないよう割込マスクを設定することにより、優先順位の高い通常処理タスク121の実行が中断されないようにする。
すなわち、割込処理タスク112の優先順位は、通常処理タスク121と通常処理タスク122との間であると考えることができる。
通常処理タスクの優先順位は、優先度記憶部391が記憶した優先度により定まる。
割込処理タスクの優先順位は、それぞれの割込処理タスクの処理結果を待つ通常処理タスクの優先順位により定まる。
割込処理タスクの優先制御は、割込マスク記憶部312に割込マスクを設定することにより行う。
ゲストOS200は、優先度Tgを有する。
ゲストOS200で処理する割込処理タスクは、割込優先度Ix+1〜Iyを有する。
ゲストOS200より高い優先度で実行するホストタスク110は、優先度Tg+1以上の優先度を有する。
優先度Tg+1以上の優先度を有するホストタスク110実行時には、優先度Iy以下の割込処理をマスクする。
また、ゲストOS200において、ゲストタスク210の処理が割込処理と競合しないようにするために割込をマスクするときは、割込優先度Iy以下の割込をマスクする。
ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の高い割込は、ゲストOS200の実行中は、常に許可される。これをゲストOS200から見ると、そのような割込は、NMI(No Maskable Interupt)と同じであり、ゲストOS200の制御対象ではない。
また、ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の低い割込は、ゲストOS200の実行中は、常に禁止される。これをゲストOS200から見ると、そのような割込はないのと同じである。
マスクテーブル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に設定する。
割込ベクタ記憶部311が記憶している割込ベクタは、OS切替時に、割込ベクタ書換部323が書き換えることにより、割込ベクタ102または割込ベクタ202を記憶している。
実行装置901が、ホストタスク110のうち、ゲストOS200(あるいは、その管理下にあるゲストタスク210)を実行している場合、割込ベクタ記憶部311は割込ベクタ202を記憶している。
また、実行装置901が、ゲストOS200以外のホストタスク110を実行している場合、割込ベクタ記憶部311は割込ベクタ102を記憶している。
割込621〜632のうち、割込621〜624は、ホストOS100上で処理すべき割込であるものとする。また、割込631〜632は、ゲストOS200上で処理すべき割込であるものとする。
また、割込621〜632は、図中、上に記載したもののほうが優先順位が高く、下にいくほど、優先順位が下がるものとする。
これに対し、ゲストOS200が処理すべき割込631〜632はゲストOS200が実行中でないと処理できないため、割込ベクタ649は、割込を処理する割込処理プログラム671〜672ではなく、切替プログラム669を示す。
これに対し、ホストOS100が処理すべき割込621〜622に対応する割込ベクタ659は、割込を処理する割込処理プログラム661〜664ではなく、切替プログラム679を示す。
なお、実行装置901がゲストOS200を実行している際は、割込マスクにより、優先順位の低い割込623〜624は発生しない。そこでこの例では、割込623〜624に対応する割込ベクタは空欄にしている。しかし、割込623〜624に対応する割込ベクタも、割込ベクタ659としておいてもよい。
あらかじめ、マスクテーブル生成部333が、マスクテーブル108を生成し、マスクテーブル記憶部334が記憶している。
あるいは、タスク起動時にホストタスク110の優先度を指定することとし、スケジュール部330が、優先度記憶部391に優先度を記憶することとしてもよい。その場合、必要に応じて、マスクテーブル生成部333が、マスクテーブル108を再生成してもよい。
したがって、ホストタスク110が実行されている間、ホストタスク110よりも優先順位の低い割込処理を禁止する割込マスクを、割込マスク記憶部312に設定することとなる。
したがって、ゲストOS200よりも優先順位が高いホストタスク110の実行が、ゲストOSが処理すべき割込処理による影響を受けることはない。
これにより、ゲストOS200が割込マスクを変更しても、ゲストOS200より優先順位が高い割込処理が禁止されることはない。
スケジュール部330は、実行可能な状態にあるホストタスク110のなかから、もっとも優先順位の高いホストタスク110を選択する。
実行可能タスクリストには、起動されているホストタスク110が登録されており、それぞれのホストタスク110が実行可能な状態にあるか否かを記憶している。実行可能タスクリストは、実行可能判断部331が記憶装置902を用いて記憶している。
これは、スケジュール処理におけるタスク切替処理(S24)の内容を詳しく説明したものである。
S33において、OS切替がある場合には、S34へ進む。OS切替がない場合には、S37へ進む。
なお、ここでの「割込禁止」とは、割込マスクによる禁止ではなく、すべての割込を禁止する。例えば、実行装置901が割込禁止命令を実行する。
そのため、割込信号入力装置905に対して、割込処理が開始したことを通知し、割込信号を停止させる必要がある。
なお、割込マスクはそのままなので、割込禁止を解除しても、優先順位の低い割込は発生しない。
割込処理の結果を待っていた通常処理タスクとは、その割込処理の結果がないと、実行可能な状態とならないホストタスク110である。実行可能判断部331が、そのホストタスク110を実行可能な状態にないものとして、実行可能タスクリストに登録しているので、これを実行可能な状態であるという内容に書き換える。
切替プログラム669は、実行装置901がゲストOS200以外のホストタスク110を実行中に、ゲストOS200で処理すべき割込が発生した場合に実行される。
すなわち、実行可能判断部331が、ゲストOS200を実行可能な状態にあるものとして、実行可能タスクリストに登録する。
したがって、切替プログラム669が実行されるのは、ゲストOS200よりも優先順位の低いホストタスク110を実行している場合(またはホストOS100がアイドル状態である場合)である。
その後、割込禁止が解除される(S38)。
切替プログラム679は、実行装置901がゲストOS200を実行中に、ホストOS100が処理すべき割込が発生した場合に実行される。
すなわち、実行可能判断部331が、OS切替用タスク107を実行可能な状態にあるものとして、実行可能タスクリストに登録する。
ここで、切替プログラム679は、ゲストOS200の管理下にあるので、ゲストタスク210を起床することはできるが、ホストタスク110であるOS切替用タスク107を直接、起床することはできない。
しかし、ゲストOS200自体が、ホストOS100の管理下にあるホストタスク110の一つであるため、ゲストOS200からOS切替用タスク107を起床することができる。
したがって、切替プログラム679が実行されるのは、ホストOS100で処理すべき割込のうち、ゲストOS200よりも優先順位の高い割込が発生した場合に限られる。
その後、割込禁止が解除される。(S38)。
逆に、ゲストOS200内では、ホストOS100が処理すべき割込のうち、ゲストOS200よりも優先順位の低い割込も制御対象ではなく、優先順位の低い割込を禁止する範囲内でしか、割込マスクを書き換えないので、優先順位の低い割込が発生することはない。
OS切替用タスク107は、OS切替を発生させるためのダミーであり、特に処理すべき内容はない。
休眠処理とは、なんらかの事象が発生を待つため、実行可能な状態でないタスクが、実行可能でなくなったことをOSに通知し、実行装置901が他のタスクを実行できるようにすることである。
休眠処理は、ホストタスクが実行可能な状態にないことを通知する処理の一例である。
その後、切替プログラム679により起床させられる。OS切替用タスク107が起床したことでOS切替が発生し、すでに目的を達したので、OS切替用タスク107が処理すべき内容はない。
そこで、S76に戻り、OS切替用タスク107は、再び休眠する。
なお、ゲストOS200は、既存のOSをわずかな修正で利用するものであるため、多くの部分が既存のOSと同一である。
したがって、ゲストOS200は、もととなる既存のOSと同様のブロック構成を有するものであって、様々な構成があり得る。
ここでは一例として、ゲストOS200が、図3で説明したホストOS100と同様のブロック構成を有するものとして説明する。
S82において、実行可能なゲストタスク210がある場合には、S83へ進む。実行可能なゲストタスク210がない場合には、S86へ進む。
すなわち、いずれかのゲストタスク210が実行可能な状態となるまで、ゲストOS200自体が実行可能な状態でないものとして、ホストOS100に通知し、実行装置901が他のホストタスク110を実行できるようにする。
また、ゲストOS200より高い優先順位のホストタスク110の実行中は、優先順位の低い割込処理をマスクするため、優先順位の高いホストタスク110の処理が優先順位の低い割込処理の影響を受けない。
また、非リアルタイムOSの割込処理が、時間制約を考慮していない場合であっても、割込の整合性が保たれているので、リアルタイムOSのリアルタイム性を確保することができる。
これにより、ホストタスク110によって実行装置901を占有されて、ゲストタスク210が処理すべき割込に対する処理が実行できないことによって、例えば、タイマー割込による時間管理において、時間が不正になったり、バッファを持った入出力デバイスのバッファがオーバーフローしたりアンダーフローしたりするといった障害が発生することを回避することができる。
実施の形態2を、図17〜図21を用いて説明する。
この実施の形態における並列処理装置900のハードウェア構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
なお、実施の形態1で説明した機能ブロックと共通するブロックについては、共通の符号を付し、説明を省略する。
例えば、あるホストタスク110が他のタスクに対して通知すべきメッセージを生成した場合、タスク間メッセージ処理部341が、そのメッセージを取得する。
タスク間メッセージ処理部341は、そのメッセージの通知先であるホストタスク110が、そのメッセージを待っていることにより、休眠している場合、実行可能判断部331が記憶した実行可能タスクリストを書き換えて実行可能な状態とすることにより、そのメッセージを待っていたホストタスク110を起床する。
タスク間メッセージ処理部341は、実行装置901がOS間同期処理105を実行することにより実現する。
OS間同期用データ記憶部393は、通知先記憶部の一例である。
OS間同期用データは、異なるOSの管理下にあるタスクを起床するために用いられるデータである。
OS間同期用データ400は、ゲストOS上の同期用データ401、フラグ402を有する。OS間同期用データ400は、起動しているゲストタスク210ごとに、あるいは、メッセージの通知を待っているゲストタスク210ごとに、存在する。したがって、あるゲストタスク210に対してメッセージを通知する場合は、通知先のゲストタスク210に対応するOS間同期用データ400を用いる。
ゲストタスク210がホストタスク110からのメッセージを待つため、休眠状態になった場合に、フラグ402をセットする。
ホストタスク110からメッセージが通知され、ゲストタスク210が実行可能になった場合に、フラグ402をクリアする。
しかし、ホストタスク110からゲストタスク210に対してメッセージが通知された場合、通知先のゲストタスク210をゲストOS200が把握するために、フラグ402を利用する。
なお、実施の形態1で説明したゲストOS200のスケジュール処理の工程と共通する工程については、共通の符号を付し、説明を省略する。
T22において、ゲストタスク210が中断した理由が、ホストタスク110からのメッセージ待ちである場合には、T23へ進む。ホストタスク110からのメッセージ待ちでない場合には、S81へ戻る。
例えば、ゲストタスク210が使用するOS間同期用データ400の識別子をゲストタスク210が指定し、OS間同期処理部が、指定された識別子によって識別されるOS間同期用データ400を、OS間同期用データ記憶部393から読み出して、フラグ402を取得する。
その後、S81へ戻る。
なお、実施の形態1で説明したスケジュール部330のスケジュール処理の工程と共通する工程については、共通する符号を付し、ここでは説明を省略する。
T12において、S25で実行していたホストタスク110が他のタスクに対してメッセージを通知していない場合には、S21に戻る。S25で実行していたホストタスク110が他のホストタスク110に対してメッセージを通知する場合には、T13へ進む。S25で実行していたホストタスク110がゲストタスク210に対してメッセージを通知する場合には、T15へ進む。
その後、S21に戻る。
例えば、T23においてゲストタスク210が指定したOS間同期用データ400の識別子と同じ識別子を、ホストタスク110が指定し、タスク間メッセージ処理部341が、指定された識別子によって識別されるOS間同期用データ400を、OS間同期用データ記憶部393から読み出して、フラグ402を取得する。
ここで割込信号入力装置905が出力する割込信号は、異なるOSのタスク間でのメッセージのやり取りが発生したことを示す信号である。
例えば、GPIO(General Purpose Input/Output:汎用入出力装置)(出力装置904)の出力線を、割込信号入力装置905に結線し、GPIOに対する出力を行うことで、割込信号を出力する。
あるいは、他の用途に使用していないDMA(Direct Memory Access)コントローラを使って、最小単位のデータをメモリ(記憶装置902)間で転送することにより、その完了を通知する割込信号を出力してもよい。
もしくは、ハードウェアを使用せず、例えば、SWI(Softwere Interupt)命令を実行することで、割込信号を出力してもよい。
したがって、ゲストOS200より優先順位の高いホストタスク110の実行中は、割込マスクにより、この割込についての処理は行わない。これにより、無駄なOS切替等は発生しない。
OS間通信割込処理を行う割込処理プログラムは、ゲストOS200の管理下にある割込処理プログラムである。
したがって、この割込信号入力後、実施の形態1で説明したタスク切替処理、割込ベクタ書換処理などが発生する。その後、OS間通信割込処理が開始する。
スケジュール部330のスケジュール処理において、T18で割込を発生させず、T17でOS間同期用データ記憶部393を書き換えるのみとして、ゲストOS200が実行を再開した場合、実行を中断していたゲストタスク210の実行を再開する。割込が発生しないので、通知先のゲストタスク210のほうが優先順位が高い場合であっても、実行を中断していたゲストタスク210の処理が一段落するまでは、通知先のゲストタスク210が起床されない。
T18で割込信号を発生させることにより、そのような処理の遅延が生じないようにすることができる。
実施の形態3を、図22〜図26を用いて説明する。
この実施の形態における並列処理装置900のハードウェア構成は、実施の形態1で説明したものと同様であるので、ここでは説明を省略する。
なお、実施の形態1で説明したプログラムまたはデータと共通するプログラムまたはデータについては、同一の符号を付し、ここでは説明を省略する。
ゲストOS優先度情報151は、ゲストOS200の優先度をどのように変化させるかについての情報である。
優先度制御タスク109は、ゲストOSの優先度を変化させる処理を行うプログラムである。
なお、実行の形態1で説明したブロックと共通する機能ブロックについては、同一の符号を付し、ここでは説明を省略する。
優先度書換部351は、実行装置901が優先度制御タスク109を実行することにより実現する。
優先実行期間の時間502は、ゲストOS200を高い優先度で実行する期間の時間を示す。
非優先実行期間の時間503は、ゲストOS200を最低の優先度で実行する期間の時間を示す。
優先度書換部351がゲストOS200の優先度を書き換えることにより、ホストタスク110間の優先順位は、左側の状態と右側の状態との間を行き来する。
この状態では、ゲストOS200が休眠状態とならない限り、ゲストOS200よりも優先順位の低い通常処理タスク123〜125を、タスク選択部332が選択することはなく、通常処理タスク123〜125が実行されることはない。
また、ゲストOS200よりも優先順位の低い割込処理タスク113,115を実行させる割込は、割込マスクによりマスクされるので、ゲストOS200が休眠状態とならない限り、割込処理タスク113,115を実行させる割込は発生せず、割込処理タスク113,115が実行されることもない。
いくら優先順位が低いタスクであっても、ある程度は定期的に実行する機会が与えられなければ、処理に支障を来たす可能性がある。
この状態では、他のホストタスク110がすべて実行不可能な状態とならない限り、ゲストOS200が実行されることはない。
その代わり、通常処理タスク123〜125や割込処理タスク113,115のような優先順位が低いタスクにも、実行の機会が与えられる。
ここで、時計装置906は、設定した時間が経過すると、割込信号入力装置905にそのことを通知し、割込信号を発生させるものとする。
しかし、非優先実行期間におけるゲストOS200の優先順位を最低の優先順位とすれば、ゲストOS200が休眠状態とならなくても、他のすべてのホストタスク110に実行の機会を与えることができる。
したがって、非優先実行期間におけるゲストOS200の優先順位を最低の優先順位とすることとすれば、既存のOSをゲストOS200として利用する場合、休眠処理(S86)を加える修正をしなくてもよいので、開発コストを抑えることができる。
ホストOSの1つのタスクとしてゲストOSが動作するマルチOSの構成において、タスクの優先度と割込処理の優先度をもとに、タスク起動時にタスク優先度と割込マスクの設定値に関して、割込処理がより高い優先度のタスクの処理を阻害しないよう定めたことを特徴とする。
ゲストOSで処理する割込をマスクするとき、ゲストOSで扱う最も高い優先度の割込レベルで割込マスクをすることにより、ゲストOSの割込マスクがゲストOSよりも高い優先度の割込処理を阻害しないようにしたことを特徴とする。
ゲストOSにおいて実行すべき処理が存在しない場合、ホストOSのスリープ(sleep)を呼び出して、CPUを手放すことを特徴とする。
ゲストOSがスリープ状態で、ゲストOSで処理したい割込が発生した時、ホストOS側でゲストOSをウェイクアップ(wakeup)させることを特徴とする。
ゲストOS上でスリープしているタスクをホストOSからウェイクアップするとき、ホストOS側からゲストOS側で処理する割込を発生させ、ゲストOS側が割込処理の中でゲストOS上のタスクをウェイクアップさせることを特徴とする。
ホストOSの1つのタスクとしてゲストOSが動作するマルチOSの構成において、ゲストOSの優先度を時間の経過とともに上下させることを特徴とする。
Claims (17)
- 複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部とを有し、 上記割込ベクタ書換部は、上記タスク選択部が選択したホストタスクが上記他のプログラムである場合に、上記割込ベクタ記憶部に、上記ゲストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを記憶させ、上記ホストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記割込信号が上記実行装置に対して実行することを要求する上記ホストタスクの一つである割込処理プログラムを示す割込ベクタを記憶させることを特徴とする並列処理装置。 - 複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部とを有し、
上記割込ベクタ書換部は、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合に、上記割込ベクタ記憶部に、上記ゲストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記割込信号が上記実行装置に対して実行することを要求する上記ゲストタスクの一つである割込処理プログラムを示す割込ベクタを記憶させ、上記ホストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを記憶させることを特徴とする並列処理装置。 - 複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記ゲストタスクの一つであるゲスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は上記割込信号が上記実行装置に対して実行することを要求するゲスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部とを有することを特徴とする並列処理装置。 - 複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記ホストタスクの一つであるホスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は上記割込信号が上記実行装置に対して実行することを要求するホスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部とを有することを特徴とする並列処理装置。 - 複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理装置において、
プログラムを実行する実行装置と、
情報を記憶する記憶装置と、
上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、
上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部と、
上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択部と、
上記ゲストタスクの一つであるゲスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は上記割込信号が上記実行装置に対して実行することを要求するゲスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記ホストタスクの一つであるホスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は上記割込信号が上記実行装置に対して実行することを要求するホスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換部とを有することを特徴とする並列処理装置。 - 上記割込信号入力装置は、更に、
上記実行装置が上記切替プログラムを実行した場合に、上記割込信号を上記実行装置に対して出力する
ことを特徴とする請求項1乃至請求項5のいずれかに記載の並列処理装置。 - 上記割込信号入力装置は、
上記実行装置に対して上記割込信号を出力した後、上記実行装置が上記割込処理プログラムを実行するまでの間、上記割込信号を上記実行装置に対して出力する
ことを特徴とする請求項1乃至請求項6のいずれかに記載の並列処理装置。 - 上記割込信号入力装置は、上記実行装置に対して上記割込信号を出力した後、割込信号の出力を停止させる割込停止命令を上記実行装置が実行するまでの間、上記割込信号を上記実行装置に対して出力し、
上記割込処理プログラムは、上記割込停止命令を含み、
上記切替プログラムは、上記割込停止命令を含まないことを特徴とする請求項1乃至請求項7のいずれかに記載の並列処理装置。 - プログラムを実行する実行装置と、情報を記憶する記憶装置と、上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、上記割込信号入力装置が入力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部とを有する並列処理装置が、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理方法において、
タスク選択部が、上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択工程と、
割込ベクタ書換部が、上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換工程とを有し、
上記タスク選択部が選択したホストタスクが上記他のプログラムである場合、上記割込ベクタ書換工程において、上記割込ベクタ書換部が、上記割込ベクタ記憶部に、上記ゲストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを記憶させ、上記ホストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記割込信号が上記実行装置に対して実行することを要求する上記ホストタスクの一つである割込処理プログラムを示す割込ベクタを記憶させることを特徴とする並列処理方法。 - プログラムを実行する実行装置と、情報を記憶する記憶装置と、上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、上記割込信号入力装置が入力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部とを有する並列処理装置が、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理方法において、
タスク選択部が、上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択工程と、
割込ベクタ書換部が、上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合と、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合とで、異なる割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換工程とを有し、
上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合に、上記割込ベクタ書換工程において、上記割込ベクタ書換部が、上記割込ベクタ記憶部に、上記ゲストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記割込信号が上記実行装置に対して実行することを要求する上記ゲストタスクの一つである割込処理プログラムを示す割込ベクタを記憶させ、上記ホストタスクの一つである割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを記憶させることを特徴とする並列処理方法。 - プログラムを実行する実行装置と、情報を記憶する記憶装置と、上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部とを有する並列処理装置が、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理方法において、
タスク選択部が、上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択工程と、
上記ゲストタスクの一つであるゲスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は、割込ベクタ書換部が、上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は、上記割込ベクタ書換部が、上記割込信号が上記実行装置に対して実行することを要求するゲスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換工程とを有することを特徴とする並列処理方法。 - プログラムを実行する実行装置と、情報を記憶する記憶装置と、上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部とを有する並列処理装置が、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理方法において、
タスク選択部が、上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択工程と、
上記ホストタスクの一つであるホスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は、割込ベクタ書換部が、上記割込信号が上記実行装置に対して実行することを要求するホスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は、上記割込ベクタ書換部が、上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換工程とことを特徴とする並列処理方法。 - プログラムを実行する実行装置と、情報を記憶する記憶装置と、上記実行装置が実行しているプログラムの実行を中断し、割込を処理する割込処理プログラムを実行することを上記実行装置に対して要求する割込信号を、上記実行装置に対して出力する割込信号入力装置と、上記割込信号入力装置が出力する割込信号による要求に基づいて、上記実行装置が実行するプログラムを示す情報を割込ベクタとして、上記記憶装置を用いて記憶する割込ベクタ記憶部とを有する並列処理装置が、
複数のプログラムをゲストタスクとして管理し、上記ゲストタスクを切り替えて実行することにより、上記複数のプログラムを並列して処理するゲスト並列処理装置としてコンピュータを機能させるゲスト並列処理プログラムと、他のプログラムとを、ホストタスクとして管理し、上記ホストタスクを切り替えて実行することにより、上記複数のプログラム及び上記他のプログラムを並列して処理する並列処理方法において、
タスク選択部が、上記ホストタスクのなかから、上記実行装置が実行するホストタスクを選択するタスク選択工程と、
上記ゲストタスクの一つであるゲスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は、割込ベクタ書換部が、上記ゲスト並列処理プログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は、上記割込ベクタ書換部が、上記割込信号が上記実行装置に対して実行することを要求するゲスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記ホストタスクの一つであるホスト割込処理プログラムを実行することを上記実行装置に対して要求する割込信号についての割込ベクタとして、上記タスク選択工程において上記タスク選択部が選択したホストタスクが上記他のプログラムである場合は、上記割込ベクタ書換部が、上記割込信号が上記実行装置に対して実行することを要求するホスト割込処理プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させ、上記タスク選択部が選択したホストタスクが上記ゲスト並列処理プログラムである場合は、上記割込ベクタ書換部が、上記ゲスト並列処理プログラムよりも優先順位が高い他のプログラムを実行可能な状態とする切替プログラムを示す割込ベクタを上記割込ベクタ記憶部に記憶させる割込ベクタ書換工程とを有することを特徴とする並列処理方法。 - 上記割込信号入力装置は、更に、上記実行装置が上記切替プログラムを実行した場合に、上記割込信号を上記実行装置に対して出力することを特徴とする請求項9乃至請求項13のいずれかに記載の並列処理方法。
- 上記割込信号入力装置は、上記実行装置に対して上記割込信号を出力した後、上記実行装置が上記割込処理プログラムを実行するまでの間、上記割込信号を上記実行装置に対して出力することを特徴とする請求項9乃至請求項14のいずれかに記載の並列処理装置。
- 上記割込信号入力装置は、上記実行装置に対して上記割込信号を出力した後、割込信号の出力を停止させる割込停止命令を上記実行装置が実行するまでの間、上記割込信号を上記実行装置に対して出力し、
上記割込処理プログラムは、上記割込停止命令を含み、
上記切替プログラムは、上記割込停止命令を含まないことを特徴とする請求項9乃至請求項15のいずれかに記載の並列処理方法。 - コンピュータを、請求項1乃至請求項8のいずれかに記載の並列処理装置として機能させることを特徴とする並列処理プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005359069A JP4523910B2 (ja) | 2005-12-13 | 2005-12-13 | 並列処理装置及び並列処理方法及び並列処理プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005359069A JP4523910B2 (ja) | 2005-12-13 | 2005-12-13 | 並列処理装置及び並列処理方法及び並列処理プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007164421A JP2007164421A (ja) | 2007-06-28 |
| JP4523910B2 true JP4523910B2 (ja) | 2010-08-11 |
Family
ID=38247252
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005359069A Expired - Fee Related JP4523910B2 (ja) | 2005-12-13 | 2005-12-13 | 並列処理装置及び並列処理方法及び並列処理プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4523910B2 (ja) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5046753B2 (ja) | 2006-06-26 | 2012-10-10 | 信越化学工業株式会社 | 光ファイバ母材の製造方法及びその装置 |
| JP5082939B2 (ja) * | 2007-10-24 | 2012-11-28 | 富士通モバイルコミュニケーションズ株式会社 | 情報処理装置 |
| WO2009133669A1 (ja) * | 2008-04-28 | 2009-11-05 | パナソニック株式会社 | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム |
| US8468284B2 (en) * | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification to a guest operating system |
| CN103180829B (zh) | 2010-10-22 | 2016-08-03 | 三菱电机株式会社 | 中断信号接收装置及计算机装置 |
| US9338320B2 (en) | 2012-08-10 | 2016-05-10 | Konica Minolta, Inc. | Image forming apparatus and method of controlling the same |
| JP5725303B2 (ja) * | 2012-08-10 | 2015-05-27 | コニカミノルタ株式会社 | 画像形成装置 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05108380A (ja) * | 1991-10-21 | 1993-04-30 | Mitsubishi Electric Corp | データ処理システム |
| JPH06236286A (ja) * | 1993-02-09 | 1994-08-23 | Seiko Epson Corp | 情報処理装置 |
| JP3863117B2 (ja) * | 2003-02-27 | 2006-12-27 | 株式会社エヌ・ティ・ティ・データ | マルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにマルチオペレーティングシステム制御装置 |
| JP2004318538A (ja) * | 2003-04-17 | 2004-11-11 | Fujitsu Ltd | 性能モニタリング方式 |
| JP3953449B2 (ja) * | 2003-08-26 | 2007-08-08 | 富士通株式会社 | タスク管理プログラムおよびタスク制御装置 |
| JP4112511B2 (ja) * | 2004-02-17 | 2008-07-02 | 富士通株式会社 | タスク管理プログラムおよびタスク管理装置 |
-
2005
- 2005-12-13 JP JP2005359069A patent/JP4523910B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2007164421A (ja) | 2007-06-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4580845B2 (ja) | タスク実行装置 | |
| JP5323828B2 (ja) | 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路 | |
| US7853743B2 (en) | Processor and interrupt controlling method | |
| TWI307477B (ja) | ||
| KR100934533B1 (ko) | 연산 처리 시스템, 컴퓨터 시스템 상에서의 태스크 제어 방법, 및 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
| JP3507822B2 (ja) | コンピュータ装置およびその省電力制御方法 | |
| JP4345630B2 (ja) | 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム | |
| US20060010446A1 (en) | Method and system for concurrent execution of multiple kernels | |
| CN100380329C (zh) | 处理器及信息处理方法 | |
| CN101689127A (zh) | 虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序 | |
| US7043729B2 (en) | Reducing interrupt latency while polling | |
| JP2005056067A (ja) | Dma転送制御装置 | |
| JP2002099433A (ja) | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 | |
| US7472214B2 (en) | Real-time embedded simple monitor method and computer product | |
| US10229077B2 (en) | Method for data transfer between real-time tasks using a DMA memory controller | |
| CN102057357A (zh) | 多处理器系统 | |
| JP4523910B2 (ja) | 並列処理装置及び並列処理方法及び並列処理プログラム | |
| CN100576175C (zh) | 用于多个内核的并行执行的方法和系统 | |
| JP2006243864A (ja) | プロセッサおよび情報処理方法 | |
| JPWO2018211865A1 (ja) | 車両制御装置 | |
| JP2012003510A (ja) | 計算機及び転送プログラム | |
| KR101119458B1 (ko) | 비동기 통신 기술 | |
| JP2006004092A (ja) | コンピュータシステム | |
| JP2008225710A (ja) | コンピュータシステム及び該システムで用いられるプロセス切替え方法 | |
| JP2006163983A (ja) | リアルタイムosシミュレーション方式 |
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 | Request for written amendment filed |
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 | Request for written amendment filed |
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 |