JPWO2012053095A1 - 割込み信号受付け装置及びコンピュータ装置 - Google Patents
割込み信号受付け装置及びコンピュータ装置 Download PDFInfo
- Publication number
- JPWO2012053095A1 JPWO2012053095A1 JP2012539540A JP2012539540A JPWO2012053095A1 JP WO2012053095 A1 JPWO2012053095 A1 JP WO2012053095A1 JP 2012539540 A JP2012539540 A JP 2012539540A JP 2012539540 A JP2012539540 A JP 2012539540A JP WO2012053095 A1 JPWO2012053095 A1 JP WO2012053095A1
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- interrupt signal
- pseudo
- processing
- operating
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
割込み信号受付け装置10は2つのOSを管理し、同じ割込み番号を共用しているデバイス130、131に対して、割込み処理をさせるOSと、デバイスに固有の割込み優先度とを対応付け、割込み番号と割込み優先度の対応付けを示す割込み番号優先度変換テーブルを管理し、各デバイスは割込み処理が完了するまで同じ割込み番号の割り込み要求を連続出力し、デバイス130又はデバイス131から割込み信号があった際に、割込みコントローラ120が割込み番号優先度変換テーブルに従い割込み番号を割込み優先度に変換し、変換された割込み優先度が動作中のOSに対応付けられている割込み優先度に一致する場合に、割込み信号制御部11が動作中のOSに割込み処理を行わせ、割込み番号優先度変換テーブルの割込み優先度を変更し、割込み優先度が一致しない場合に、動作中のOSを停止させ、他のOSを起動する。
Description
本発明は、マルチオペレーティングシステム環境における割込み制御技術に関する。
一般に、計算機システムでは、1つのオペレーティングシステム(OS:Operating System)が動作し、OSが計算機のプロセッサ、主記憶装置(以下、単に主記憶という)、2次記憶装置、デバイスなど計算機資源を管理し、計算機が効率よく動作できるようにスケジュールを行っている。
OSは、Windows(登録商標)やLinux(登録商標)など多機能で豊富な資産を持つOSや、リアルタイム処理機能に特化したリアルタイムOSなど、それぞれに特徴を有している。
単一もしくは複数のプロセッサを含む1つの計算機上で、上記のようなOSを複数動作させることが可能なマルチオペレーティングシステム(マルチOS)が知られている。
マルチOSに関しては、例えば、特許文献1、特許文献2及び特許文献3に記載されている。
ところで、マルチOSにおいては、マウス、キーボードなどの周辺デバイスから発生した割込みは、割込み番号ごとに割込み要求を受けるOSを決定し、発生した割込みの割込み番号を判定することでOSを切替えている(例えば、特許文献1に記載の技術)。
一方、既設の計算機においては、周辺デバイスを増設することが行われる。
この場合、計算機の割込み信号には限りがあり、簡単に増設させることができない。
このため、PCI(Peripheral Component Interconnect)バスに接続される周辺デバイス群のように、複数個の周辺デバイスが1つの割込み信号線を共通に使用することが多くなっている。
また、複数個の周辺デバイスによる割込みが周辺デバイス数よりも少ない割込み管理装置で纏められて、1つの割込み信号線を共通に使用することもある。
PCIの割込み信号線(インタラプト信号)については、例えば、非特許文献1に記載されている。
OSは、Windows(登録商標)やLinux(登録商標)など多機能で豊富な資産を持つOSや、リアルタイム処理機能に特化したリアルタイムOSなど、それぞれに特徴を有している。
単一もしくは複数のプロセッサを含む1つの計算機上で、上記のようなOSを複数動作させることが可能なマルチオペレーティングシステム(マルチOS)が知られている。
マルチOSに関しては、例えば、特許文献1、特許文献2及び特許文献3に記載されている。
ところで、マルチOSにおいては、マウス、キーボードなどの周辺デバイスから発生した割込みは、割込み番号ごとに割込み要求を受けるOSを決定し、発生した割込みの割込み番号を判定することでOSを切替えている(例えば、特許文献1に記載の技術)。
一方、既設の計算機においては、周辺デバイスを増設することが行われる。
この場合、計算機の割込み信号には限りがあり、簡単に増設させることができない。
このため、PCI(Peripheral Component Interconnect)バスに接続される周辺デバイス群のように、複数個の周辺デバイスが1つの割込み信号線を共通に使用することが多くなっている。
また、複数個の周辺デバイスによる割込みが周辺デバイス数よりも少ない割込み管理装置で纏められて、1つの割込み信号線を共通に使用することもある。
PCIの割込み信号線(インタラプト信号)については、例えば、非特許文献1に記載されている。
金子俊夫 編集、神戸一夫 発行、「OpenDesign No.7 PCIバスの詳細と応用へのステップ」CQ出版株式会社、1995年3月10日発行、p.20
従来、割込み番号ごとに割込み信号を受けるOSを決定しているため、同じ割込み番号(共通割込み番号)で割込みを行う複数個の周辺デバイスは全て同一のOSが制御しなければならない。
このため、デバイスに必要とするOSを割り当てられないという課題がある。
これを解決するためには、特許文献2の技術の様に、割込みを発生させたデバイスを特定できるデバイス識別レジスタを有する、もしくはOSの処理とは別に関連する周辺デバイスへ割込み要因を確認することが必要である。
このため、デバイスに必要とするOSを割り当てられないという課題がある。
これを解決するためには、特許文献2の技術の様に、割込みを発生させたデバイスを特定できるデバイス識別レジスタを有する、もしくはOSの処理とは別に関連する周辺デバイスへ割込み要因を確認することが必要である。
この発明は、上記のような課題を解決することを主な目的の一つとしており、デバイス識別レジスタを有さず、更に、OSの処理とは別に、関連する周辺デバイスへ割込み要因を確認せずに、共通の割込み番号で割込みを行う複数個の周辺デバイスからの割込みを複数のOSのうちの適切なOSに割り当てることを主な目的とする。
本発明に係る割込み信号受付け装置は、
2以上のOS(Opertating System)の動作を管理し、
それぞれに割込み信号で通知する割込み番号が指定され、それぞれに割込み信号を処理させるOSが指定OSとして指定されている複数のデバイスからの割込み信号を受付ける割込み信号受付け装置であって、
同じ割込み番号を共用する2以上の番号共用デバイスの各々に対して、各番号共用デバイスの指定OSと、各番号共用デバイスに固有の固有値と、当該2以上の番号共用デバイスに共用されている共用割込み番号とを対応付けるOS固有値情報を記憶するOS固有値情報記憶部と、
共用割込み番号ごとに、前記OS固有値情報において共用割込み番号に対応付けられている2以上の固有値の中から選択された固有値を共用割込み番号の変換値として指定する変換値情報を記憶する変換値情報記憶部と、
いずれかのOSが動作OSとして動作している際に共用割込み番号を通知する割込み信号が出力され、前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記動作OSに対応付けられている固有値と同じである場合に、前記動作OSに前記割込み信号に対する処理を実行させ、前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記動作OS以外のOSに対応付けられている固有値と同じである場合に、前記動作OSを停止させ、前記動作OS以外のOSを新たな動作OSとして起動する割込み信号制御部とを有することを特徴とする。
2以上のOS(Opertating System)の動作を管理し、
それぞれに割込み信号で通知する割込み番号が指定され、それぞれに割込み信号を処理させるOSが指定OSとして指定されている複数のデバイスからの割込み信号を受付ける割込み信号受付け装置であって、
同じ割込み番号を共用する2以上の番号共用デバイスの各々に対して、各番号共用デバイスの指定OSと、各番号共用デバイスに固有の固有値と、当該2以上の番号共用デバイスに共用されている共用割込み番号とを対応付けるOS固有値情報を記憶するOS固有値情報記憶部と、
共用割込み番号ごとに、前記OS固有値情報において共用割込み番号に対応付けられている2以上の固有値の中から選択された固有値を共用割込み番号の変換値として指定する変換値情報を記憶する変換値情報記憶部と、
いずれかのOSが動作OSとして動作している際に共用割込み番号を通知する割込み信号が出力され、前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記動作OSに対応付けられている固有値と同じである場合に、前記動作OSに前記割込み信号に対する処理を実行させ、前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記動作OS以外のOSに対応付けられている固有値と同じである場合に、前記動作OSを停止させ、前記動作OS以外のOSを新たな動作OSとして起動する割込み信号制御部とを有することを特徴とする。
本発明では、番号共用デバイスとOSと固有値とを対応付け、割込み番号から変換された変換値と動作OSに対応付けられている固有値が一致する場合に、動作OSに割込み信号に対する処理を行わせ、変換値と固有値が一致しない場合には、動作OSを切替える。
割込み信号に対して指定OSによる処理が行われるまでデバイスに同じ割込み番号を連続して出力させ、また、割込み番号から変換された変換値と動作OSに対応付けられている固有値が一致する場合に変換値を他の固有値に切替えることで、複数のデバイスが同じ割込み番号を共用していても、割込み要因を確認することなく、必ず割込み信号の出力元のデバイスの指定OSにて割込み信号を処理させることができる。
割込み信号に対して指定OSによる処理が行われるまでデバイスに同じ割込み番号を連続して出力させ、また、割込み番号から変換された変換値と動作OSに対応付けられている固有値が一致する場合に変換値を他の固有値に切替えることで、複数のデバイスが同じ割込み番号を共用していても、割込み要因を確認することなく、必ず割込み信号の出力元のデバイスの指定OSにて割込み信号を処理させることができる。
実施の形態1.
以下に述べる説明において、「〜部」、「〜手段」「〜処理」として説明するものは、「〜回路」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」であってもよい。
すなわち、以下に説明する「〜部」、「〜手段」「〜処理」をソフトウェア、ファームウェア、ハードウェア、またこれらの組み合せで実現されていても構わない。
以下に述べる説明において、「〜部」、「〜手段」「〜処理」として説明するものは、「〜回路」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」であってもよい。
すなわち、以下に説明する「〜部」、「〜手段」「〜処理」をソフトウェア、ファームウェア、ハードウェア、またこれらの組み合せで実現されていても構わない。
図1は、マルチOSのコンピュータ装置に含まれる割込み信号受付け装置10の機能ブロックを示す。
割込み信号受付け装置10は、OS−A150及びOS−B151という2つのOSの動作を管理する。
割込み信号受付け装置10は、具体的には、図2に示すように、CPU(Central Processing Unit)100と主記憶110により実現される。
割込み信号受付け装置10の内部構成の詳細は後述する。
割込み信号受付け装置10は、割込みコントローラ120、複数のデバイス130〜133とバス140を介して接続され、デバイス130〜133からの割込み信号を受付ける。
割込み信号受付け装置10は、OS−A150及びOS−B151という2つのOSの動作を管理する。
割込み信号受付け装置10は、具体的には、図2に示すように、CPU(Central Processing Unit)100と主記憶110により実現される。
割込み信号受付け装置10の内部構成の詳細は後述する。
割込み信号受付け装置10は、割込みコントローラ120、複数のデバイス130〜133とバス140を介して接続され、デバイス130〜133からの割込み信号を受付ける。
デバイス130〜133は、キーボード、マウス,ネットワークインターフェース、プリンタインターフェース,USB(Universal Serial Bus)コントローラなどである。
デバイス130〜133は、割込み信号を出力する。
デバイス130〜133の各々には、割込み信号で通知する割込み番号が指定されている。
本実施の形態では、例えば、図4のデバイス割込み番号接続テーブルに示すように、デバイスA130の割込み番号は16であり、デバイスB(1)131の割込み番号は16であり、デバイスB(2)132の割込み番号は21であり、デバイスB(3)133の割込み番号は22である。
各デバイスは、それぞれに指定されている割込み番号の値を通知する割込み信号を出力する。
なお、デバイスA130とデバイスB(1)131の割込み番号はともに16であり、共通している。
このように割込み番号が共通しているデバイスを番号共用デバイスという。
また、番号共用デバイスに共用されている割込み番号を共用割込み番号という。
また、デバイス130〜133の各々には、割込み信号を処理させるOSが指定されている。
本実施の形態では、デバイスA130はOS−A150に割込み信号を処理させ、デバイス131〜133はOS−B151に割込み信号を処理させる。
このため、デバイスA130から割込み信号として出力される割込み番号とデバイスB(1)131から割込み信号として出力される割込み番号は同じであるが、異なるOSに処理させる必要がある。
なお、デバイスごとに指定されているOSを指定OSという。
デバイスA130の指定OSはOS−A15であり、デバイス131〜133の指定OSはOS−B151である。
また、本実施の形態では、デバイス130〜133は、割込み信号に対して指定OSによる処理が行われるまで(割込み信号が指定OSに受付けられるまで)は割込み信号として同じ割込み番号を連続して出力する。
デバイス130〜133は、割込み信号を出力する。
デバイス130〜133の各々には、割込み信号で通知する割込み番号が指定されている。
本実施の形態では、例えば、図4のデバイス割込み番号接続テーブルに示すように、デバイスA130の割込み番号は16であり、デバイスB(1)131の割込み番号は16であり、デバイスB(2)132の割込み番号は21であり、デバイスB(3)133の割込み番号は22である。
各デバイスは、それぞれに指定されている割込み番号の値を通知する割込み信号を出力する。
なお、デバイスA130とデバイスB(1)131の割込み番号はともに16であり、共通している。
このように割込み番号が共通しているデバイスを番号共用デバイスという。
また、番号共用デバイスに共用されている割込み番号を共用割込み番号という。
また、デバイス130〜133の各々には、割込み信号を処理させるOSが指定されている。
本実施の形態では、デバイスA130はOS−A150に割込み信号を処理させ、デバイス131〜133はOS−B151に割込み信号を処理させる。
このため、デバイスA130から割込み信号として出力される割込み番号とデバイスB(1)131から割込み信号として出力される割込み番号は同じであるが、異なるOSに処理させる必要がある。
なお、デバイスごとに指定されているOSを指定OSという。
デバイスA130の指定OSはOS−A15であり、デバイス131〜133の指定OSはOS−B151である。
また、本実施の形態では、デバイス130〜133は、割込み信号に対して指定OSによる処理が行われるまで(割込み信号が指定OSに受付けられるまで)は割込み信号として同じ割込み番号を連続して出力する。
割込みコントローラ120は、デバイス130〜133からの割込み信号をバス140経由で受信する。
前述したように、デバイス130〜133からは割込み番号を通知する割込み信号が出力されるが、割込みコントローラ120は割込み番号を割込み優先度に変換し、CPU100へ伝達する。
より具体的には、割込みコントローラ120は、割込み優先度を通知する信号を割込み信号としてCPU100に出力する。
割込みコントローラ120は、例えば、図5の割込み番号優先度変換テーブルを参照して、割込み番号を割込み優先度に変換する。
なお、図5では、デバイスA130とデバイスB(1)131により共用されている割込み番号16に対して割込み優先度20が示されているが、後述するように、割込み優先度16に対しては割込み優先度20の他に割込み優先度100もある。
そして、CPU100の制御により、割込み優先度16に対しては割込み優先度20と割込み優先度100とが交互に設定される(割込み優先度が書き換えられる)。
割込み優先度は割込み番号の変換値であり、図5の割込み番号優先度変換テーブルは変換値情報の例である。
前述したように、デバイス130〜133は割込み信号に対するOS処理が行われるまでは割込み信号を繰り返し発生させるが、割込みコントローラ120はデバイス130〜133から割込み信号を入力する度に対応する割込み優先度を繰り返し割込み信号受付け装置10に向けて出力する。
また、図1では、割込みコントローラ120は1つだけであるが2つ以上あってもよい。
前述したように、デバイス130〜133からは割込み番号を通知する割込み信号が出力されるが、割込みコントローラ120は割込み番号を割込み優先度に変換し、CPU100へ伝達する。
より具体的には、割込みコントローラ120は、割込み優先度を通知する信号を割込み信号としてCPU100に出力する。
割込みコントローラ120は、例えば、図5の割込み番号優先度変換テーブルを参照して、割込み番号を割込み優先度に変換する。
なお、図5では、デバイスA130とデバイスB(1)131により共用されている割込み番号16に対して割込み優先度20が示されているが、後述するように、割込み優先度16に対しては割込み優先度20の他に割込み優先度100もある。
そして、CPU100の制御により、割込み優先度16に対しては割込み優先度20と割込み優先度100とが交互に設定される(割込み優先度が書き換えられる)。
割込み優先度は割込み番号の変換値であり、図5の割込み番号優先度変換テーブルは変換値情報の例である。
前述したように、デバイス130〜133は割込み信号に対するOS処理が行われるまでは割込み信号を繰り返し発生させるが、割込みコントローラ120はデバイス130〜133から割込み信号を入力する度に対応する割込み優先度を繰り返し割込み信号受付け装置10に向けて出力する。
また、図1では、割込みコントローラ120は1つだけであるが2つ以上あってもよい。
次に、図1及び図2を用いて、割込み信号受付け装置10の詳細を説明する。
割込み信号制御部11は、割込みコントローラ120から出力された割込み優先度を通知する割込み信号が入力された際に、割込み優先度の値と動作中のOS(OS−A150であるかOS−B151)に基づき、動作中のOSに割込み信号を処理させる制御、図5の割込み番号優先度変換テーブルの割込み優先度の値を書き換える制御、動作中のOSを切替える制御を行う。
割込み信号入力部114は、割込みコントローラ120からの割込み信号を入力する。
割込み信号制御部11と割込み信号入力部114はプログラムであり、2次記憶装置から図2に示すように主記憶110にロードされ、CPU100により実行される。
割込み信号入力部114は、割込みコントローラ120からの割込み信号を入力する。
割込み信号制御部11と割込み信号入力部114はプログラムであり、2次記憶装置から図2に示すように主記憶110にロードされ、CPU100により実行される。
デバイス割込み番号接続テーブル記憶部12は、デバイス割込み番号接続テーブル195を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
デバイス割込み番号接続テーブル195は、図4に示す情報であり、デバイスごとにデバイスに割り当てられている割込み番号が示される。
なお、デバイス割込み番号接続テーブル195は後述のデバイス優先度管理テーブル197とともにOS固有値情報に相当し、デバイス割込み番号接続テーブル記憶部12はデバイス優先度管理テーブル記憶部14とともにOS固有値情報記憶部に相当する。
デバイス割込み番号接続テーブル195は、図4に示す情報であり、デバイスごとにデバイスに割り当てられている割込み番号が示される。
なお、デバイス割込み番号接続テーブル195は後述のデバイス優先度管理テーブル197とともにOS固有値情報に相当し、デバイス割込み番号接続テーブル記憶部12はデバイス優先度管理テーブル記憶部14とともにOS固有値情報記憶部に相当する。
割込み番号優先度変換テーブル記憶部13は、割込み番号優先度変換テーブル196を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
割込み番号優先度変換テーブル196は、図5に示す情報であり、前述したように、割込みコントローラ120が割込み番号を割込み優先度に変換する際に参照される。
割込み番号優先度変換テーブル196は変換値情報に相当し、割込み番号優先度変換テーブル記憶部13は変換値情報記憶部に相当する。
割込み番号優先度変換テーブル196は、図5に示す情報であり、前述したように、割込みコントローラ120が割込み番号を割込み優先度に変換する際に参照される。
割込み番号優先度変換テーブル196は変換値情報に相当し、割込み番号優先度変換テーブル記憶部13は変換値情報記憶部に相当する。
デバイス優先度管理テーブル記憶部14は、デバイス優先度管理テーブル197を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
デバイス優先度管理テーブル197は、図6に示す情報であり、割込み優先度とデバイス130〜133と割込み信号を処理するOS名が示されている。
デバイス優先度管理テーブル197は各OSが利用するデバイス毎に分かれていてもよい(例えばOS−A150用にデバイスAのテーブル、OS−B151用にデバイスB(1)〜(3)のテーブル)。
図6に示すように、デバイスA130には割込み優先度として20が割り当てられており、デバイスB(1)131には割込み優先度として100が割り当てられている。
図4のデバイス割込み番号接続テーブル195に示すように、番号共用デバイスであるデバイスA130とデバイスB(1)131には、割込み番号16が共通に割り当てられているが、割り当てられている割込み優先度はデバイスA130とデバイスB(1)131で異なっている。
つまり、デバイスA130に割り当てられている割込み優先度20はデバイスA130に固有の値であり、固有値の例である。
同様に、デバイスB(1)131に割り当てられている割込み優先度100はデバイスB(1)131に固有の値であり、固有値の例である。
図5のデバイス割込み番号接続テーブル195と図6のデバイス優先度管理テーブル197を組み合わせると、番号共用デバイス(デバイスA130、デバイスB(1)131)の各々に対して、各番号共用デバイスの指定OS(OS−A150、OS−B151)と、各番号共用デバイスに固有の固有値(割込み優先度20、割込み優先度100)と、番号共用デバイスに共用されている共用割込み番号(割込み番号16)が対応付けられることになる。
図5のデバイス割込み番号接続テーブル195と図6のデバイス優先度管理テーブル197はこのような特性を有し、OS固有値情報に相当する。
そして、デバイス優先度管理テーブル記憶部14はデバイス割込み番号接続テーブル記憶部12とともにOS固有値情報記憶部に相当する。
なお、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197は1つのテーブルであってもよい。
デバイス優先度管理テーブル197は、図6に示す情報であり、割込み優先度とデバイス130〜133と割込み信号を処理するOS名が示されている。
デバイス優先度管理テーブル197は各OSが利用するデバイス毎に分かれていてもよい(例えばOS−A150用にデバイスAのテーブル、OS−B151用にデバイスB(1)〜(3)のテーブル)。
図6に示すように、デバイスA130には割込み優先度として20が割り当てられており、デバイスB(1)131には割込み優先度として100が割り当てられている。
図4のデバイス割込み番号接続テーブル195に示すように、番号共用デバイスであるデバイスA130とデバイスB(1)131には、割込み番号16が共通に割り当てられているが、割り当てられている割込み優先度はデバイスA130とデバイスB(1)131で異なっている。
つまり、デバイスA130に割り当てられている割込み優先度20はデバイスA130に固有の値であり、固有値の例である。
同様に、デバイスB(1)131に割り当てられている割込み優先度100はデバイスB(1)131に固有の値であり、固有値の例である。
図5のデバイス割込み番号接続テーブル195と図6のデバイス優先度管理テーブル197を組み合わせると、番号共用デバイス(デバイスA130、デバイスB(1)131)の各々に対して、各番号共用デバイスの指定OS(OS−A150、OS−B151)と、各番号共用デバイスに固有の固有値(割込み優先度20、割込み優先度100)と、番号共用デバイスに共用されている共用割込み番号(割込み番号16)が対応付けられることになる。
図5のデバイス割込み番号接続テーブル195と図6のデバイス優先度管理テーブル197はこのような特性を有し、OS固有値情報に相当する。
そして、デバイス優先度管理テーブル記憶部14はデバイス割込み番号接続テーブル記憶部12とともにOS固有値情報記憶部に相当する。
なお、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197は1つのテーブルであってもよい。
割込み利用管理テーブル記憶部15は、割込み利用管理テーブル198を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
割込み利用管理テーブル198は、図7に示す情報であり、割込み番号と割込み番号を使用する候補OSと現在その割込み番号を利用している利用OSを示す情報である。
割込み利用管理テーブル198は、図7に示す情報であり、割込み番号と割込み番号を使用する候補OSと現在その割込み番号を利用している利用OSを示す情報である。
割込み処理管理テーブル記憶部16は割込み処理管理テーブルA200、割込み処理管理テーブルB201を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
割込み処理管理テーブルA200、割込み処理管理テーブルB201は、図3に示す情報であり、OS毎に1つ以上用意されている。
割込み処理管理テーブルA200はOS−A150に対するテーブルであり、割込み処理管理テーブルB201はOS−B151に対するテーブルである。
割込み処理管理テーブルA200はOS−A150が動作中に割込み信号の入力があった際に参照され、割込み処理管理テーブルB201はOS−B151が動作中に割込み信号の入力があった際に参照される。
割込み処理管理テーブルA200、割込み処理管理テーブルB201は、図3に示す情報であり、OS毎に1つ以上用意されている。
割込み処理管理テーブルA200はOS−A150に対するテーブルであり、割込み処理管理テーブルB201はOS−B151に対するテーブルである。
割込み処理管理テーブルA200はOS−A150が動作中に割込み信号の入力があった際に参照され、割込み処理管理テーブルB201はOS−B151が動作中に割込み信号の入力があった際に参照される。
OS記憶部17は、OS−A150とOS−B151を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
OS−A150及びOS−B151は同じOSを複製したものであってもよい。
OS−A150及びOS−B151は、デバイスドライバ160、デバイスドライバB161、割込み処理A170、割込み処理B171を有している。
割込み処理A170、割込み処理B171は各OSに複数あってもよい。
また、図示していないが、OS−A150及びOS−B151は、それぞれ、通常のOSに含まれている機能を有している。
また、主記憶110に読み込まれているプログラムコードは、OS−A150及びOS−B151のそれぞれの一部であってもよい。
OS−A150及びOS−B151は同じOSを複製したものであってもよい。
OS−A150及びOS−B151は、デバイスドライバ160、デバイスドライバB161、割込み処理A170、割込み処理B171を有している。
割込み処理A170、割込み処理B171は各OSに複数あってもよい。
また、図示していないが、OS−A150及びOS−B151は、それぞれ、通常のOSに含まれている機能を有している。
また、主記憶110に読み込まれているプログラムコードは、OS−A150及びOS−B151のそれぞれの一部であってもよい。
割込み信号制御部11において、解析部111は、割込みコントローラ120からの割込み信号を割込み信号入力部114を介して入力し、割込み信号で通知されている割込み優先度に対応させて、現在動作中のOSに対応する割込み処理管理テーブル(図3)を参照して、割込み信号に対する処理を決定する。
例えば、OS−A150が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が20である場合は、割込み処理管理テーブルA200内の割込み優先度20に対応するレコードを参照し、OS−A150に割込み信号に対する割込み処理A170を行わせ、次に、図5のデバイス割込み番号接続テーブル195における割込み番号16に対する割込み優先度の値を20から100に変更する処理(共通割込み伝達処理)を共通割込み伝達部113に行わせる。
また、OS−A150が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が100である場合は、割込み処理管理テーブルA200内の割込み優先度100に対応するレコードを参照し、動作中のOSをOS−A150からOS−B151に切替える処理(OS切替え処理)をOS切替え部112に行わせる。
また、OS−B151が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が20である場合は、割込み処理管理テーブルB201内の割込み優先度20に対応するレコードを参照し、動作中のOSをOS−B151からOS−A150に切替える処理(OS切替え処理)をOS切替え部112に行わせる。
また、OS−B151が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が100である場合は、割込み処理管理テーブルB201内の割込み優先度100に対応するレコードを参照し、OS−B151に割込み信号に対する割込み処理B171を行わせ、次に、図5のデバイス割込み番号接続テーブル195における割込み番号16に対する割込み優先度の値を100から20に変更する処理(共通割込み伝達処理)を共通割込み伝達部113に行わせる。
例えば、OS−A150が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が20である場合は、割込み処理管理テーブルA200内の割込み優先度20に対応するレコードを参照し、OS−A150に割込み信号に対する割込み処理A170を行わせ、次に、図5のデバイス割込み番号接続テーブル195における割込み番号16に対する割込み優先度の値を20から100に変更する処理(共通割込み伝達処理)を共通割込み伝達部113に行わせる。
また、OS−A150が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が100である場合は、割込み処理管理テーブルA200内の割込み優先度100に対応するレコードを参照し、動作中のOSをOS−A150からOS−B151に切替える処理(OS切替え処理)をOS切替え部112に行わせる。
また、OS−B151が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が20である場合は、割込み処理管理テーブルB201内の割込み優先度20に対応するレコードを参照し、動作中のOSをOS−B151からOS−A150に切替える処理(OS切替え処理)をOS切替え部112に行わせる。
また、OS−B151が動作中に割込み信号が入力され、入力された割込み信号で通知されている割込み優先度が100である場合は、割込み処理管理テーブルB201内の割込み優先度100に対応するレコードを参照し、OS−B151に割込み信号に対する割込み処理B171を行わせ、次に、図5のデバイス割込み番号接続テーブル195における割込み番号16に対する割込み優先度の値を100から20に変更する処理(共通割込み伝達処理)を共通割込み伝達部113に行わせる。
OS切替え部191は、実行中のOSのコンテキスト(CPU100内部の各種レジスタの内容)を保存し、切替え先のOSのコンテキストを書き戻す。
また、割込み処理管理テーブルも切替える。
また、割込み処理管理テーブルも切替える。
共通割込み伝達部113は、図5の割込み番号優先度変換テーブル196の割込み優先度を書き換える。
割込み処理管理テーブルA200及び割込み処理管理テーブルB201は、前述したように、OS−A150及びOS−B151の各々に対応し、デバイス優先度管理テーブル197において各OSに対応付けられている割込み優先度(固有値)に対して割込み処理と共通割込み伝達処理(変換値情報の更新処理)が定義されている。
そして、解析部111は、共用割込み番号を通知する割込み信号が出力された場合に、割込み処理管理テーブル記憶部16から動作OSの割込み処理管理テーブルを読み出し、割込み信号の共用割込み番号が割込み番号優先度変換テーブル196に従って割込みコントローラ120で変換された後の割込み優先度(変換値)と同じ割込み優先度(固有値)を動作OSの割込み処理管理テーブルにおいて抽出する。
そして、解析部111は、抽出した割込み優先度に対して割込み処理と共通割込み伝達処理が定義されている場合に、割込み信号の出力元が動作OSを指定OSとしている番号共用デバイスであれば、動作OSに割込み信号に対する割込み処理を実行させる。
更に、解析部111は、共通割込み伝達処理として、共通割込み伝達部113にデバイス優先度管理テーブル197において共用割込み番号に対応付けられている他の割込み優先度を選択し、選択した割込み優先度が指定されるように割込み番号優先度変換テーブル196を更新する。
また、解析部111は、割込み処理管理テーブルから抽出した割込み優先度に対してOS切替え処理が定義されている場合に、OS切替え部112に動作OSを停止させ、動作OS以外のOSを新たな動作OSとして起動させる。
そして、解析部111は、共用割込み番号を通知する割込み信号が出力された場合に、割込み処理管理テーブル記憶部16から動作OSの割込み処理管理テーブルを読み出し、割込み信号の共用割込み番号が割込み番号優先度変換テーブル196に従って割込みコントローラ120で変換された後の割込み優先度(変換値)と同じ割込み優先度(固有値)を動作OSの割込み処理管理テーブルにおいて抽出する。
そして、解析部111は、抽出した割込み優先度に対して割込み処理と共通割込み伝達処理が定義されている場合に、割込み信号の出力元が動作OSを指定OSとしている番号共用デバイスであれば、動作OSに割込み信号に対する割込み処理を実行させる。
更に、解析部111は、共通割込み伝達処理として、共通割込み伝達部113にデバイス優先度管理テーブル197において共用割込み番号に対応付けられている他の割込み優先度を選択し、選択した割込み優先度が指定されるように割込み番号優先度変換テーブル196を更新する。
また、解析部111は、割込み処理管理テーブルから抽出した割込み優先度に対してOS切替え処理が定義されている場合に、OS切替え部112に動作OSを停止させ、動作OS以外のOSを新たな動作OSとして起動させる。
OS−A150が動作中に入力した割込み優先度が20である場合には、割込み処理Aが選択される。
この場合は、割込み処理A170が、デバイスA130に対して割込み信号の出力元であるか問い合わせを行い、割込み信号の出力元がデバイスA130であれば、デバイスドライバA160等が割込み信号に対する処理を実行する。
その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み番号16に対応する割込み優先度が100に変わる。
この場合は、割込み信号が指定OSであるOS−A150により処理されたので、デバイスA130が繰り返し割込み信号を発信することはない。
この場合は、割込み処理A170が、デバイスA130に対して割込み信号の出力元であるか問い合わせを行い、割込み信号の出力元がデバイスA130であれば、デバイスドライバA160等が割込み信号に対する処理を実行する。
その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み番号16に対応する割込み優先度が100に変わる。
この場合は、割込み信号が指定OSであるOS−A150により処理されたので、デバイスA130が繰り返し割込み信号を発信することはない。
一方、割込み信号の要求元がデバイスB(1)131であれば、割込み処理A170ではデバイスB(1)131からの割込み信号は処理されず、その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み優先度が100に変わる。
この場合は、割込み信号は指定OSであるOS−B151により処理されてないので、デバイスB(1)131は繰り返し割込み信号を発信する。
当該割込み信号は割込みコントローラ120により割込み優先度100の割込み信号にされ、解析部111は割込み優先度100の割込み信号を入力する。
この時点の動作OSがOS−B151であれば、割込み処理B171が行われる。
この場合は、割込み処理B171が、デバイスB(1)131に対して割込み信号の出力元であるか問い合わせを行い、割込み信号の出力元がデバイスB(1)131であれば、デバイスドライバB161等が割込み信号に対する処理を実行する。
その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み優先度が20に変わる。
この場合は、割込み信号が指定OSであるOS−B151により処理されたので、デバイスB(1)131が繰り返し割込み信号を発信することはない。
一方、この時点の動作OSがOS−A150であれば、OS切替え処理により動作中OSがOS−B151に切り替わる。
しかし、割込み信号は指定OSであるOS−B151により処理されてないので、デバイスB(1)131は繰り返し割込み信号を発信する。
当該割込み信号は割込みコントローラ120により割込み優先度100の割込み信号にされ、解析部111は割込み優先度100の割込み信号を入力する。
この時点では動作OSはOS−B151になっているので、割込み処理B171において、OS−B151によりデバイスB(1)131からの割込み信号が適切に処理される。
その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み優先度が20に変わる。
この場合は、割込み信号が指定OSであるOS−B151により処理されたので、デバイスB(1)131が繰り返し割込み信号を発信することはない。
この場合は、割込み信号は指定OSであるOS−B151により処理されてないので、デバイスB(1)131は繰り返し割込み信号を発信する。
当該割込み信号は割込みコントローラ120により割込み優先度100の割込み信号にされ、解析部111は割込み優先度100の割込み信号を入力する。
この時点の動作OSがOS−B151であれば、割込み処理B171が行われる。
この場合は、割込み処理B171が、デバイスB(1)131に対して割込み信号の出力元であるか問い合わせを行い、割込み信号の出力元がデバイスB(1)131であれば、デバイスドライバB161等が割込み信号に対する処理を実行する。
その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み優先度が20に変わる。
この場合は、割込み信号が指定OSであるOS−B151により処理されたので、デバイスB(1)131が繰り返し割込み信号を発信することはない。
一方、この時点の動作OSがOS−A150であれば、OS切替え処理により動作中OSがOS−B151に切り替わる。
しかし、割込み信号は指定OSであるOS−B151により処理されてないので、デバイスB(1)131は繰り返し割込み信号を発信する。
当該割込み信号は割込みコントローラ120により割込み優先度100の割込み信号にされ、解析部111は割込み優先度100の割込み信号を入力する。
この時点では動作OSはOS−B151になっているので、割込み処理B171において、OS−B151によりデバイスB(1)131からの割込み信号が適切に処理される。
その後に、共通割込み伝達処理により、図5の割込み番号優先度変換テーブル196に示される割込み優先度が20に変わる。
この場合は、割込み信号が指定OSであるOS−B151により処理されたので、デバイスB(1)131が繰り返し割込み信号を発信することはない。
次に、バス140からCPU100に割込み信号が入力された時の動作を図8を用いて説明する。
デバイスから割込み信号が出力されると、S301において、CPU100では、割込み信号入力部114がバス140を介して割込みコントローラ120からの割込み信号を入力する。
次に、S302において、解析部111が、現在設定されている割込み処理管理テーブルA200、割込み処理管理テーブルB201から、割込み優先度に対応したレコードを抽出する。抽出したレコードに含まれている処理のうち、未実行の処理を選択する。
どの処理を優先して選択するかは問わない。
ここでは、割込み処理管理テーブルA200が設定されており(動作OSがOS−A150)、割込み優先度20が入力されたとして説明を行う。
解析部111は割込み処理管理テーブルA200内の割込み優先度20のレコードから割込み処理A170を選択する。
次に、S303において、解析部111は、選択した処理が共通割込み伝達処理であるか判断する。
共通割込み伝達処理であればS304へ、異なればS305へ処理を移す。
本例では、選択した処理は割込み処理A170であるため、S305へ処理を移す。
次に、S305において、解析部111は、選択された処理を実行する。
本例では、割込み処理A170を実行する。
割込み処理A170は、デバイスA130にアクセスし、デバイスA130が割込み要因であるか確認する。
デバイスA130が割込み要因であれば、デバイスドライバA160もしくはOS−A150にデバイスA130からの割込み信号に対する処理を依頼する。
割込み要因でない場合、割込み処理A170は、OS−A150にデバイスA130が割込み要因でないことを必要であれば伝達する。
次に、S306において、解析部111は、現在設定されている割込み処理管理テーブルから、割込み優先度に応じた処理の内、未実行の処理があるか判断する。
処理がない場合、割込み処理を終了する。
処理があればS302に処理を移す。
本例では、処理があるためS302に処理を移す。
次に、S302において、解析部111が、現在設定されている割込み処理管理テーブルA200、割込み処理管理テーブルB201から、割込み優先度に対応したレコードを抽出する。抽出したレコードに含まれている処理のうち、未実行の処理を選択する。
どの処理を優先して選択するかは問わない。
ここでは、割込み処理管理テーブルA200が設定されており(動作OSがOS−A150)、割込み優先度20が入力されたとして説明を行う。
解析部111は割込み処理管理テーブルA200内の割込み優先度20のレコードから割込み処理A170を選択する。
次に、S303において、解析部111は、選択した処理が共通割込み伝達処理であるか判断する。
共通割込み伝達処理であればS304へ、異なればS305へ処理を移す。
本例では、選択した処理は割込み処理A170であるため、S305へ処理を移す。
次に、S305において、解析部111は、選択された処理を実行する。
本例では、割込み処理A170を実行する。
割込み処理A170は、デバイスA130にアクセスし、デバイスA130が割込み要因であるか確認する。
デバイスA130が割込み要因であれば、デバイスドライバA160もしくはOS−A150にデバイスA130からの割込み信号に対する処理を依頼する。
割込み要因でない場合、割込み処理A170は、OS−A150にデバイスA130が割込み要因でないことを必要であれば伝達する。
次に、S306において、解析部111は、現在設定されている割込み処理管理テーブルから、割込み優先度に応じた処理の内、未実行の処理があるか判断する。
処理がない場合、割込み処理を終了する。
処理があればS302に処理を移す。
本例では、処理があるためS302に処理を移す。
次に、S302において、解析部111は、未実行の処理を選択する。
本例では、解析部111は現在設定されている割込み処理管理テーブルA200の内、未実行の処理から、共通割込み伝達処理を選択する。
次に、S303において、解析部111は選択した処理が共通割込み伝達処理であるかを判断する。
本例では、共通割込み伝達処理であるため、S304へ処理を移す。
次に、S304において、解析部111は、共通割込み伝達部113に共通割込み伝達処理を依頼する。
より具体的には、現在処理している割込み優先度を伝達する。
本例では、解析部111は共通割込み伝達部113に割込み優先度20を伝達して共通割込み伝達処理を依頼する。
共通割込み伝達部113の動作手順は図9を用いて説明する。
本例では、解析部111は現在設定されている割込み処理管理テーブルA200の内、未実行の処理から、共通割込み伝達処理を選択する。
次に、S303において、解析部111は選択した処理が共通割込み伝達処理であるかを判断する。
本例では、共通割込み伝達処理であるため、S304へ処理を移す。
次に、S304において、解析部111は、共通割込み伝達部113に共通割込み伝達処理を依頼する。
より具体的には、現在処理している割込み優先度を伝達する。
本例では、解析部111は共通割込み伝達部113に割込み優先度20を伝達して共通割込み伝達処理を依頼する。
共通割込み伝達部113の動作手順は図9を用いて説明する。
共通割込み伝達部113は、S401において、依頼元の割込み優先度を特定する。
本例では、割込み処理管理テーブルA200にて割込み優先度20の処理を行っており、特定される割込み優先度は20である。
次に、S402において、共通割込み伝達部113は、特定した割込み優先度を基に割込み番号優先度変換テーブル196から、割込み番号を特定する。本例では、16である。
次に、S403において、共通割込み伝達部113は、割込み利用管理テーブル198から、割込み番号に対応した候補OSの中から、次に割込み処理管理テーブルを割り当てるOSを選択し、利用OSに記載する。
OSの選択基準はどのようなものであってもよい。
本例では、割込み番号16に対応した候補OSであるOS−A及びOS−Bのうち、割込み処理管理テーブルが割り当てられていないOS−B151を選択し、利用OSに記載する。
次に、共通割込み伝達部113は、S404において、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197から、S402で特定した割込み番号を共用するデバイスの内、S403で選択したOSが利用するデバイスを探し、割込み優先度を特定する。
本例では、デバイス割込み番号接続テーブル195の中から割込み番号16を共用するデバイスA/デバイスB(1)の内、OS−B151が使用するデバイスをデバイス優先度管理テーブル197から探すと割込み優先度100であることが分かる。
次に、S405において、共通割込み伝達部113は、図5の割込み番号優先度変換テーブル196の割込み優先度を変更する。
本例では、割込み番号16の割込み優先度を100に変更する。
本例では、割込み処理管理テーブルA200にて割込み優先度20の処理を行っており、特定される割込み優先度は20である。
次に、S402において、共通割込み伝達部113は、特定した割込み優先度を基に割込み番号優先度変換テーブル196から、割込み番号を特定する。本例では、16である。
次に、S403において、共通割込み伝達部113は、割込み利用管理テーブル198から、割込み番号に対応した候補OSの中から、次に割込み処理管理テーブルを割り当てるOSを選択し、利用OSに記載する。
OSの選択基準はどのようなものであってもよい。
本例では、割込み番号16に対応した候補OSであるOS−A及びOS−Bのうち、割込み処理管理テーブルが割り当てられていないOS−B151を選択し、利用OSに記載する。
次に、共通割込み伝達部113は、S404において、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197から、S402で特定した割込み番号を共用するデバイスの内、S403で選択したOSが利用するデバイスを探し、割込み優先度を特定する。
本例では、デバイス割込み番号接続テーブル195の中から割込み番号16を共用するデバイスA/デバイスB(1)の内、OS−B151が使用するデバイスをデバイス優先度管理テーブル197から探すと割込み優先度100であることが分かる。
次に、S405において、共通割込み伝達部113は、図5の割込み番号優先度変換テーブル196の割込み優先度を変更する。
本例では、割込み番号16の割込み優先度を100に変更する。
次に、デバイス130〜133から割込み信号が発生し、割込みコントローラ120を経由し、CPU100に割込み信号が入力された後、他OSへ割込みが伝達される動作を図10を用いて説明する。
なお、以下では、CPU100にてOS−A150が動作している際にデバイスB(1)131からの割込み信号が発生した場合の処理例をかっこ内に記述する。
なお、以下では、CPU100にてOS−A150が動作している際にデバイスB(1)131からの割込み信号が発生した場合の処理例をかっこ内に記述する。
割込みコントローラ120は、デバイス130〜133から割込み信号を受けると、S451において、主記憶110内のデバイス割込み番号接続テーブル196を参照し、発生した割込みの割込み番号を特定する(割込みコントローラ120は、割込み番号16を特定する)。
次に、S452において、割込みコントローラ120は、主記憶110内の割込み番号優先度変換テーブル196を参照し、割込み番号から割込み優先度へ変換し、その割込み優先度をCPU100へ伝達する(割込みコントローラ120は、割込み優先度20をCPU100へ伝達する)。
次に、S452において、割込みコントローラ120は、主記憶110内の割込み番号優先度変換テーブル196を参照し、割込み番号から割込み優先度へ変換し、その割込み優先度をCPU100へ伝達する(割込みコントローラ120は、割込み優先度20をCPU100へ伝達する)。
次に、S453において、CPU100にてS301〜S306にて説明した通りの割込み処理が実行される。
共通割込み伝達部113が呼ばれている場合、割込み番号優先度変換テーブル196の値が一部変更される(OS−A150により割込み処理A170が実行された後、共通割込み伝達部113が、割込み番号優先度変換テーブル196の割込み番号16の割込み優先度を20から100に変更する)。
次に、S454において、解析部111が、デバイス130〜133から割込みが発生しているかチェックする(デバイスB(1)131の割込みはOS−B151の割込み処理B171が行われない限りアクティブであるため、割込みが発生しているという結果となる)
次に、S455において、デバイス130〜133からの割込みが発生していない場合、解析部111は処理を終了する。
一方、デバイス130〜133からの割込みが発生している場合、S451へ処理を移行する(デバイスB(1)131から割込みが発生しているので、S451へ処理を移行する)。
以降では、かっこ書きとして記載した具体例の続きを説明する。
共通割込み伝達部113が呼ばれている場合、割込み番号優先度変換テーブル196の値が一部変更される(OS−A150により割込み処理A170が実行された後、共通割込み伝達部113が、割込み番号優先度変換テーブル196の割込み番号16の割込み優先度を20から100に変更する)。
次に、S454において、解析部111が、デバイス130〜133から割込みが発生しているかチェックする(デバイスB(1)131の割込みはOS−B151の割込み処理B171が行われない限りアクティブであるため、割込みが発生しているという結果となる)
次に、S455において、デバイス130〜133からの割込みが発生していない場合、解析部111は処理を終了する。
一方、デバイス130〜133からの割込みが発生している場合、S451へ処理を移行する(デバイスB(1)131から割込みが発生しているので、S451へ処理を移行する)。
以降では、かっこ書きとして記載した具体例の続きを説明する。
S451では、デバイスB(1)131からの割込みであるため、割込みコントローラ120は割込み番号を16と特定する。
S452では、割込みコントローラ120は、先ほどS453にて変更された割込み番号優先度変換テーブル196を参照するため、割込み番号16の割込み優先度100をCPU100へ伝達する。
S453では、S301〜S306の処理により、OS切替え部112が動作中のOSをOS−B151に切替え、更に、OS−B151が割込み処理B171を実行する。
また、共通割込み伝達部113が、割込み番号優先度変換テーブル196の割込み番号16の割込み優先度を100から20へと戻す。
なお、既に割込み処理B171を実行しているため、デバイスB(1)131からの割込みは発生しない状況となる。
そして、S454にて、解析部111が、デバイス130〜133から割込みが発生しているかチェックし、割込みが発生していないことが分かり、S455にて処理を終了する。
S452では、割込みコントローラ120は、先ほどS453にて変更された割込み番号優先度変換テーブル196を参照するため、割込み番号16の割込み優先度100をCPU100へ伝達する。
S453では、S301〜S306の処理により、OS切替え部112が動作中のOSをOS−B151に切替え、更に、OS−B151が割込み処理B171を実行する。
また、共通割込み伝達部113が、割込み番号優先度変換テーブル196の割込み番号16の割込み優先度を100から20へと戻す。
なお、既に割込み処理B171を実行しているため、デバイスB(1)131からの割込みは発生しない状況となる。
そして、S454にて、解析部111が、デバイス130〜133から割込みが発生しているかチェックし、割込みが発生していないことが分かり、S455にて処理を終了する。
これらの処理により、外部割込みの優先度が変更される。
デバイスA130からの外部割込みであれば割込みはクリアされているため、再度割込みコントローラ120に割込みが入力されない。
デバイスB(1)131からの外部割込みであれば割込みはセットされたまま(信号線がアクティブのまま)のため、再度割込みが入力される。
この場合、解析部111が割込み番号優先度変換テーブル196を参照し、割込み優先度が100と変更されているため、OS切替え部191が実行され、OS−B151に切り替わる。
OSが切り替わると、割込み処理管理テーブルA200から割込み処理管理テーブルB201へと切り替わるため、割込み優先度100の割込み処理B171が実行される。
デバイスA130からの外部割込みであれば割込みはクリアされているため、再度割込みコントローラ120に割込みが入力されない。
デバイスB(1)131からの外部割込みであれば割込みはセットされたまま(信号線がアクティブのまま)のため、再度割込みが入力される。
この場合、解析部111が割込み番号優先度変換テーブル196を参照し、割込み優先度が100と変更されているため、OS切替え部191が実行され、OS−B151に切り替わる。
OSが切り替わると、割込み処理管理テーブルA200から割込み処理管理テーブルB201へと切り替わるため、割込み優先度100の割込み処理B171が実行される。
以上のように、割込み信号制御部は、入力された割込み優先度と動作OSに対応付けられている割込み優先度を比較し、両者が一致すれば動作OSに割込み処理を行わせ、割込み番号を変換する割込み優先度を切替える。
一方、両者が一致しない場合は、割込み信号制御部は、動作OSを切替える。
また、デバイスは、割込み信号が指定OSにより処理されるまで同じ割込み番号の割込み信号を出力し続ける。
この結果、割込み信号制御部では、多くても3回目の割込み信号において必ず割込み信号の出力元のデバイスの指定OSにて割込み信号を処理させることができる。
このため、同じ割込み番号を異なるOSで共有しても、割込み要因を判断せずに、必ず割込み信号の出力元のデバイスの指定OSにて割込み信号を処理させることができる。
また、特定の割込み処理の応答時間を高速にすることもできる。
一方、両者が一致しない場合は、割込み信号制御部は、動作OSを切替える。
また、デバイスは、割込み信号が指定OSにより処理されるまで同じ割込み番号の割込み信号を出力し続ける。
この結果、割込み信号制御部では、多くても3回目の割込み信号において必ず割込み信号の出力元のデバイスの指定OSにて割込み信号を処理させることができる。
このため、同じ割込み番号を異なるOSで共有しても、割込み要因を判断せずに、必ず割込み信号の出力元のデバイスの指定OSにて割込み信号を処理させることができる。
また、特定の割込み処理の応答時間を高速にすることもできる。
なお、以上の説明では、動作OSの割込み処理管理テーブル上で入力された割込み優先度に対応するレコードを抽出し、抽出したレコードに示されている処理を行うこととしたが、割込み処理管理テーブルを用いずに、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197を参照して、次に行う処理を決定してもよい。
つまり、割込み信号制御部11は、共用割込み番号が変換された後の割込み優先度(変換値)が、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197(OS固有値情報)において動作OSに対応付けられている割込み優先度(固有値)と同じである場合に、動作OSに対して割込み信号に対する割込み処理を実行させる。
更に、割込み信号制御部11は、デバイス優先度管理テーブル197において共用割込み番号に対応付けられている他の割込み優先度を割込み番号優先度変換テーブル196に記述する。
また、割込み信号制御部11は、共用割込み番号が変換された後の割込み優先度(変換値)が、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197(OS固有値情報)において動作OS以外のOSに対応付けられている割込み優先度(固有値)と同じである場合に、動作OSを停止させ、動作OS以外のOSを新たな動作OSとして起動する。
このように、割込み処理管理テーブルを用いずに、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197を用いるようにしてもよい。
つまり、割込み信号制御部11は、共用割込み番号が変換された後の割込み優先度(変換値)が、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197(OS固有値情報)において動作OSに対応付けられている割込み優先度(固有値)と同じである場合に、動作OSに対して割込み信号に対する割込み処理を実行させる。
更に、割込み信号制御部11は、デバイス優先度管理テーブル197において共用割込み番号に対応付けられている他の割込み優先度を割込み番号優先度変換テーブル196に記述する。
また、割込み信号制御部11は、共用割込み番号が変換された後の割込み優先度(変換値)が、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197(OS固有値情報)において動作OS以外のOSに対応付けられている割込み優先度(固有値)と同じである場合に、動作OSを停止させ、動作OS以外のOSを新たな動作OSとして起動する。
このように、割込み処理管理テーブルを用いずに、デバイス割込み番号接続テーブル195とデバイス優先度管理テーブル197を用いるようにしてもよい。
実施の形態2.
以上の実施の形態1では、割込み番号優先度変換テーブル196の割込み優先度を変更するようにしたものであるが、次に割込み番号優先度変換テーブル196は変更せずに割込み番号をOS間で共有する実施の形態を示す。
以上の実施の形態1では、割込み番号優先度変換テーブル196の割込み優先度を変更するようにしたものであるが、次に割込み番号優先度変換テーブル196は変更せずに割込み番号をOS間で共有する実施の形態を示す。
実施の形態1と同様に、以下に述べる説明において、「〜手段」「〜処理」として説明するものは、「〜回路」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」であってもよい。すなわち、以下に説明する「手段」「処理」をソフトウェア、ファームウェア、ハードウェア、またこれらの組み合せで実現されていても構わない。
図11は、マルチOSのコンピュータ装置に含まれる割込み信号受付け装置10の機能ブロックを示しており、図1に対応する図である。
図12は、図11に示す割込み信号受付け装置10をCPU100と主記憶110で実現する例を示しており、図2に対応する図である。
図11及び図12では、図1及び図2に示した共通割込み伝達部113に代えて共通割込み複製部115を設けている。
また、図11及び図12に示した割込み利用管理テーブル記憶部15に代えて割込み複製管理テーブル記憶部18を設け、また、割込み利用管理テーブル198に代えて割込み複製管理テーブル199を設けている。
更に、図1及び図2に示した割込み処理管理テーブルA200及び割込み処理管理テーブルB201と内容が異なっているため、図11及び図12では、割込み処理管理テーブルA600及び割込み処理管理テーブルB601と表記している。
上記以外の要素は、図1及び図2に示したものと同様なので、説明を省略する。
以下では、実施の形態1との差異を中心にして説明する。
図12は、図11に示す割込み信号受付け装置10をCPU100と主記憶110で実現する例を示しており、図2に対応する図である。
図11及び図12では、図1及び図2に示した共通割込み伝達部113に代えて共通割込み複製部115を設けている。
また、図11及び図12に示した割込み利用管理テーブル記憶部15に代えて割込み複製管理テーブル記憶部18を設け、また、割込み利用管理テーブル198に代えて割込み複製管理テーブル199を設けている。
更に、図1及び図2に示した割込み処理管理テーブルA200及び割込み処理管理テーブルB201と内容が異なっているため、図11及び図12では、割込み処理管理テーブルA600及び割込み処理管理テーブルB601と表記している。
上記以外の要素は、図1及び図2に示したものと同様なので、説明を省略する。
以下では、実施の形態1との差異を中心にして説明する。
割込み複製管理テーブル記憶部18は、割込み複製管理テーブル199を記憶する手段であり、具体的には図2に示すように主記憶110の記憶領域の一部である。
割込み複製管理テーブル199は、図14に示す情報であり、割込み番号と、その割込み番号と関連する割込み優先度の候補(優先度候補)と、割込み優先度のうち複製処理が完了した複製済優先度を記録する。
割込み複製管理テーブル199は、図14に示す情報であり、割込み番号と、その割込み番号と関連する割込み優先度の候補(優先度候補)と、割込み優先度のうち複製処理が完了した複製済優先度を記録する。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601は、図13に示す情報である。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601は、割込み処理管理テーブルA200及び割込み処理管理テーブルB201と同様に、OSごとに1つ以上備える。
OSが切り替わる際に次に動作するOSの割込み処理管理テーブルがCPU100に設定される。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601では、割込み処理管理テーブルA200及び割込み処理管理テーブルB201の共通割込み伝達処理の代わりに共通割込み複製処理(疑似割込み信号の発生処理)が定義されている。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601は、共通割込み伝達処理の代わりに共通割込み複製処理が定義されている以外は、割込み処理管理テーブルA200及び割込み処理管理テーブルB201と同様である。
以下では、共通割込み複製処理を中心にして割込み処理管理テーブルA600及び割込み処理管理テーブルB601、共通割込み複製部115を説明する。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601は、割込み処理管理テーブルA200及び割込み処理管理テーブルB201と同様に、OSごとに1つ以上備える。
OSが切り替わる際に次に動作するOSの割込み処理管理テーブルがCPU100に設定される。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601では、割込み処理管理テーブルA200及び割込み処理管理テーブルB201の共通割込み伝達処理の代わりに共通割込み複製処理(疑似割込み信号の発生処理)が定義されている。
割込み処理管理テーブルA600及び割込み処理管理テーブルB601は、共通割込み伝達処理の代わりに共通割込み複製処理が定義されている以外は、割込み処理管理テーブルA200及び割込み処理管理テーブルB201と同様である。
以下では、共通割込み複製処理を中心にして割込み処理管理テーブルA600及び割込み処理管理テーブルB601、共通割込み複製部115を説明する。
共通割込み複製処理では、割込みコントローラ120から入力された割込み信号の割込み優先度が共用割込み番号の割込み優先度である場合に、共通割込み複製部115が、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197において当該共用割込み番号に対応付けられている他の割込み優先度を選択する。
更に、共通割込み複製部115は、選択した割込み優先度を通知する割込み信号を疑似割込み信号として発生させる。
疑似割込み信号は、デバイス130〜133から実際に出力された割込み信号ではなく、割込み信号制御部11内で発生させた模擬の割込み信号である。
疑似割込み信号で通知される割込み優先度は疑似変換値の例である。
例えば、割込み番号16に対して割込みコントローラ120により割込み信号として割込み優先度20が出力され、その際の動作OSがOS−A150である場合は、解析部111が割込み処理管理テーブルA600内の割込み優先度20のレコードを抽出し、抽出したレコードに従ってOS−A150に割込み処理Aを実行させる。
その後、解析部111は、共通割込み複製部115に共通割込み複製処理を実行させる。
共通割込み複製処理では、共通割込み複製部115が、割込み番号16の他の割込み優先度である割込み優先度100を通知する割込み信号を疑似割込み信号として発生させる。
なお、疑似割込み信号はバス140に出力する必要はなく、共通割込み複製部115が割込み信号入力部114に割込み優先度100を通知すればよい。
なお、共通割込み複製部115は、OSにより疑似割込み信号に対する処理が実施されるまで疑似割込み信号を連続して発生させる。
また、共通割込み複製部115は、疑似割込み信号の生成に際して、疑似割込み信号が対象としている割込み番号の割込み信号をマスクする(割込み信号の受付けを中止する)。
つまり、共通割込み複製部115は、割込み番号16の割込み要求の受付けを中止する。
更に、共通割込み複製部115は、選択した割込み優先度を通知する割込み信号を疑似割込み信号として発生させる。
疑似割込み信号は、デバイス130〜133から実際に出力された割込み信号ではなく、割込み信号制御部11内で発生させた模擬の割込み信号である。
疑似割込み信号で通知される割込み優先度は疑似変換値の例である。
例えば、割込み番号16に対して割込みコントローラ120により割込み信号として割込み優先度20が出力され、その際の動作OSがOS−A150である場合は、解析部111が割込み処理管理テーブルA600内の割込み優先度20のレコードを抽出し、抽出したレコードに従ってOS−A150に割込み処理Aを実行させる。
その後、解析部111は、共通割込み複製部115に共通割込み複製処理を実行させる。
共通割込み複製処理では、共通割込み複製部115が、割込み番号16の他の割込み優先度である割込み優先度100を通知する割込み信号を疑似割込み信号として発生させる。
なお、疑似割込み信号はバス140に出力する必要はなく、共通割込み複製部115が割込み信号入力部114に割込み優先度100を通知すればよい。
なお、共通割込み複製部115は、OSにより疑似割込み信号に対する処理が実施されるまで疑似割込み信号を連続して発生させる。
また、共通割込み複製部115は、疑似割込み信号の生成に際して、疑似割込み信号が対象としている割込み番号の割込み信号をマスクする(割込み信号の受付けを中止する)。
つまり、共通割込み複製部115は、割込み番号16の割込み要求の受付けを中止する。
共通割込み複製部115による疑似割込み信号(割込み優先度100を示す信号)は、割込み信号入力部114により入力される。
解析部111は割込み処理管理テーブルA600内の割込み優先度100のレコードを抽出し、抽出したレコードに従いOS切替え部112に動作OSをOS−B151に切替えさせる。
共通割込み複製部115からの次の疑似割込み信号に対しては、解析部111は割込み処理管理テーブルB601内の割込み優先度100のレコードを抽出し、抽出したレコードに従いOS−B151に割込み処理Bを実行させ、更に共通割込み複製部115に共通割込み複製処理を実施させる。
この段階の共通割込み複製処理では、共通割込み複製部115は、割込み信号に対するマスクを解除し、割込み番号16の割込み信号の受付けを再開する。
解析部111は割込み処理管理テーブルA600内の割込み優先度100のレコードを抽出し、抽出したレコードに従いOS切替え部112に動作OSをOS−B151に切替えさせる。
共通割込み複製部115からの次の疑似割込み信号に対しては、解析部111は割込み処理管理テーブルB601内の割込み優先度100のレコードを抽出し、抽出したレコードに従いOS−B151に割込み処理Bを実行させ、更に共通割込み複製部115に共通割込み複製処理を実施させる。
この段階の共通割込み複製処理では、共通割込み複製部115は、割込み信号に対するマスクを解除し、割込み番号16の割込み信号の受付けを再開する。
なお、以降では、共通割込み複製部115が疑似割込み信号を発生させ、割込み信号入力部114が共通割込み複製部115からの疑似割込み信号を入力する例を前提にして説明を進めるが、例えば、共通割込み複製部115が疑似割込み信号で通知する割込み優先度を割込みコントローラ120に通知するとともに、割込みコントローラ120に対して疑似割込み信号を出力するように指示してもよい。
この場合も、割込みコントローラ120は疑似割込み信号に対してOSによる処理が行われるまで、同じ割込み優先度の疑似割込み信号を連続して出力する。
この場合も、割込みコントローラ120は疑似割込み信号に対してOSによる処理が行われるまで、同じ割込み優先度の疑似割込み信号を連続して出力する。
次に、バス140からCPU100に割込み信号が入力された時の動作を図15を用いて説明する。
ただし、S701はS301と同じ、S702はS302と同じ、S705はS305と同じ、S706はS306と同じのため、説明を割愛する。
S703において、解析部111は、S702で選択した処理が共通割込み複製処理であった場合、S704に処理を移す。
一方、共通割込み複製処理でなかった場合は、S705へ処理を移す。
ここでは、選択した処理が共通割込み複製処理であったと仮定し、S704に処理を移すこととする。
次に、S704において、解析部111は、共通割込み複製部115に共通割込み複製処理を依頼する。
より具体的には、解析部111は、現在処理している割込み優先度を共通割込み複製部115に伝達して共通割込み複製処理を依頼する。
ここでは、割込み優先度20を伝達するものとする。
次に、共通割込み複製部115の動作を、図16を用いて説明する。
ただし、S701はS301と同じ、S702はS302と同じ、S705はS305と同じ、S706はS306と同じのため、説明を割愛する。
S703において、解析部111は、S702で選択した処理が共通割込み複製処理であった場合、S704に処理を移す。
一方、共通割込み複製処理でなかった場合は、S705へ処理を移す。
ここでは、選択した処理が共通割込み複製処理であったと仮定し、S704に処理を移すこととする。
次に、S704において、解析部111は、共通割込み複製部115に共通割込み複製処理を依頼する。
より具体的には、解析部111は、現在処理している割込み優先度を共通割込み複製部115に伝達して共通割込み複製処理を依頼する。
ここでは、割込み優先度20を伝達するものとする。
次に、共通割込み複製部115の動作を、図16を用いて説明する。
共通割込み複製部115は、S801において、依頼元の割込み優先度を特定する。
本例では、割込み処理管理テーブルA600の割込み優先度20のレコードに示される処理が行われており、特定される割込み優先度は20である。
次に、共通割込み複製部115は、S802において、特定した割込み優先度を基に割込み複製管理テーブル199から、同じ割込み番号を共有する優先度候補を探し、特定した割込み優先度と比較する。
本例では、割込み優先度20であるから、割込み優先度20、100の中で比較し、最も高い優先度である。
なお、ここでは、割込み複製管理テーブル199を参照して、割込み優先度20とともに割込み番号16に割り当てられている割込み優先度100を抽出しているが、これは、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197を参照し、割込み優先度20とともに割込み番号16に割り当てられている割込み優先度100を抽出することに等しい。
このため、割込み複製管理テーブル199を参照する代わりにデバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197を参照して割込み優先度100を導出するようにしてもよい。
本例では、割込み処理管理テーブルA600の割込み優先度20のレコードに示される処理が行われており、特定される割込み優先度は20である。
次に、共通割込み複製部115は、S802において、特定した割込み優先度を基に割込み複製管理テーブル199から、同じ割込み番号を共有する優先度候補を探し、特定した割込み優先度と比較する。
本例では、割込み優先度20であるから、割込み優先度20、100の中で比較し、最も高い優先度である。
なお、ここでは、割込み複製管理テーブル199を参照して、割込み優先度20とともに割込み番号16に割り当てられている割込み優先度100を抽出しているが、これは、デバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197を参照し、割込み優先度20とともに割込み番号16に割り当てられている割込み優先度100を抽出することに等しい。
このため、割込み複製管理テーブル199を参照する代わりにデバイス割込み番号接続テーブル195及びデバイス優先度管理テーブル197を参照して割込み優先度100を導出するようにしてもよい。
次に、共通割込み複製部115は、S803において、比較した結果、S801で特定した割込み優先度が、優先度候補のうちで最も高い優先度であれば、S804に処理を移す。
一方、S801で特定した割込み優先度が、最も高い優先度でなければ、共通割込み複製部115は、S805に処理を移す。
本例では、S801で特定した割込み優先度20は最も高い優先度であるため、S804に処理を移す。
次に、S804において、共通割込み複製部115は、S801で特定した割込み優先度を基に割込み複製管理テーブル199から割込み番号を特定し、その割込み番号の外部割込みをマスクする。
外部割込みのマスクはCPU100に備えている機能を用いても、割込みコントローラ120に備えている機能を用いてもよい。
本例では、割込み番号16の割込みをマスクする(割込み番号16を通知する割込み信号の受付けを中止する)。
次に、共通割込み複製部115は、S806において、特定した割込み優先度を基に割込み複製管理テーブル199から同じ割込み番号を共有する優先度候補を探し、これら優先度候補を通知する疑似割込み信号を生成し、生成した疑似割込み信号を割込み信号入力部114で入力する。
例えば、割込み番号16に対して割込み優先度が20、50、100と3つある場合は、共通割込み複製部115は、割込み優先度50を通知する疑似割込み信号と割込み優先度100を通知する疑似割込み信号を生成する。
この場合、共通割込み複製部115は、優先度が高い割込み優先度50を通知する疑似割込み信号のみを割込み信号入力部114に入力し、割込み優先度50を通知する疑似割込み信号に対してOSにより割込み処理が行われた後に、割込み優先度100を通知する疑似割込み信号を割込み信号入力部114に入力する。
また、共通割込み複製部115で疑似割込み信号を生成する方法に代えて、前述したように、共通割込み複製部115が割込みコントローラ120に疑似割込み信号の生成を指示し、割込みコントローラ120からの疑似割込み信号を割込み信号入力部114が入力するようにしてもよい。
なお、以降では、共通割込み複製部115が割込み優先度100を通知する疑似割込み信号を生成し、割込み信号入力部114に入力する例を説明する。
割込み信号入力部114に入力された疑似割込み信号に対しては、通常の割込み信号と同様に、図15のS701〜S706の処理が行われる。
そして、疑似割込み信号が共通割込み複製処理の対象となった際(S703でYES)に、疑似割込み信号に対して図16の処理が実行される。
一方、S801で特定した割込み優先度が、最も高い優先度でなければ、共通割込み複製部115は、S805に処理を移す。
本例では、S801で特定した割込み優先度20は最も高い優先度であるため、S804に処理を移す。
次に、S804において、共通割込み複製部115は、S801で特定した割込み優先度を基に割込み複製管理テーブル199から割込み番号を特定し、その割込み番号の外部割込みをマスクする。
外部割込みのマスクはCPU100に備えている機能を用いても、割込みコントローラ120に備えている機能を用いてもよい。
本例では、割込み番号16の割込みをマスクする(割込み番号16を通知する割込み信号の受付けを中止する)。
次に、共通割込み複製部115は、S806において、特定した割込み優先度を基に割込み複製管理テーブル199から同じ割込み番号を共有する優先度候補を探し、これら優先度候補を通知する疑似割込み信号を生成し、生成した疑似割込み信号を割込み信号入力部114で入力する。
例えば、割込み番号16に対して割込み優先度が20、50、100と3つある場合は、共通割込み複製部115は、割込み優先度50を通知する疑似割込み信号と割込み優先度100を通知する疑似割込み信号を生成する。
この場合、共通割込み複製部115は、優先度が高い割込み優先度50を通知する疑似割込み信号のみを割込み信号入力部114に入力し、割込み優先度50を通知する疑似割込み信号に対してOSにより割込み処理が行われた後に、割込み優先度100を通知する疑似割込み信号を割込み信号入力部114に入力する。
また、共通割込み複製部115で疑似割込み信号を生成する方法に代えて、前述したように、共通割込み複製部115が割込みコントローラ120に疑似割込み信号の生成を指示し、割込みコントローラ120からの疑似割込み信号を割込み信号入力部114が入力するようにしてもよい。
なお、以降では、共通割込み複製部115が割込み優先度100を通知する疑似割込み信号を生成し、割込み信号入力部114に入力する例を説明する。
割込み信号入力部114に入力された疑似割込み信号に対しては、通常の割込み信号と同様に、図15のS701〜S706の処理が行われる。
そして、疑似割込み信号が共通割込み複製処理の対象となった際(S703でYES)に、疑似割込み信号に対して図16の処理が実行される。
以下では、S801の段階で特定した優先度が100とし、S805、S807の動きを説明する。
つまり、割込み優先度100を通知する疑似割込み信号に対して共通割込み複製処理が実行され、共通割込み複製部115が割込み優先度100を特定する(S801)とともに、割込み複製管理テーブル199を参照して、同じ割込み番号に割り当てられている他の割込み優先度と比較した(S802)後の処理を説明する。
S805において、S802で比較した結果、最も低い優先度であれば(S803でNO、S805でYES)、共通割込み複製部115は、S807に処理を移す。
低い優先度でなければ、共通割込み複製部115は、共通割込み複製処理を終了する。
本例では、割込み優先度100であるから、割込み優先度20、100の中で比較した結果、最も低い優先度であり、S807に処理を移す。
次に、S807において、S801で特定した割込み優先度を基に割込み複製管理テーブル199から割込み番号を特定し、その割込み番号の外部割込みマスクを解除する。
本処理が行われる場合、同じ割込み番号に割り当てられている割込み優先度に対する処理がすべて完了しているため、割込みを禁止する要因は全てクリアされており、割込みマスクを解除しても問題ない。
本例では、割込み番号16の外部割込みマスクを解除する。
つまり、割込み優先度100を通知する疑似割込み信号に対して共通割込み複製処理が実行され、共通割込み複製部115が割込み優先度100を特定する(S801)とともに、割込み複製管理テーブル199を参照して、同じ割込み番号に割り当てられている他の割込み優先度と比較した(S802)後の処理を説明する。
S805において、S802で比較した結果、最も低い優先度であれば(S803でNO、S805でYES)、共通割込み複製部115は、S807に処理を移す。
低い優先度でなければ、共通割込み複製部115は、共通割込み複製処理を終了する。
本例では、割込み優先度100であるから、割込み優先度20、100の中で比較した結果、最も低い優先度であり、S807に処理を移す。
次に、S807において、S801で特定した割込み優先度を基に割込み複製管理テーブル199から割込み番号を特定し、その割込み番号の外部割込みマスクを解除する。
本処理が行われる場合、同じ割込み番号に割り当てられている割込み優先度に対する処理がすべて完了しているため、割込みを禁止する要因は全てクリアされており、割込みマスクを解除しても問題ない。
本例では、割込み番号16の外部割込みマスクを解除する。
次に、デバイス130〜133から割込み信号が発生し、割込みコントローラ120を経由し、CPU100に割込み信号が入力された後、他OSへ割込みが伝達される動作を図17を用いて説明する。
なお、以下では、CPU100にてOS−A150が動作している際にデバイスB(1)131からの割込み信号が発生した場合の処理例をかっこ内に記述する。
なお、以下では、CPU100にてOS−A150が動作している際にデバイスB(1)131からの割込み信号が発生した場合の処理例をかっこ内に記述する。
割込みコントローラ120は、デバイス130〜133から割込み信号を受けると、S901において、主記憶110内のデバイス割込み番号接続テーブル195を参照し、発生した割込みの割込み番号を特定する(割込みコントローラ120は、割込み番号16を特定する)。
次に、S902において、割込みコントローラ120は、主記憶110内の割込み番号優先度変換テーブル196を参照し、割込み番号から割込み優先度へ変換し、その割込み優先度をCPU100へ伝達する(割込みコントローラ120は、割込み優先度20をCPU100へ伝達する)。
次に、S902において、割込みコントローラ120は、主記憶110内の割込み番号優先度変換テーブル196を参照し、割込み番号から割込み優先度へ変換し、その割込み優先度をCPU100へ伝達する(割込みコントローラ120は、割込み優先度20をCPU100へ伝達する)。
次に、S903において、CPU100にてS701〜706にて説明したとおりの割込み処理が実行される。
共通割込み複製部115が呼ばれている場合、前述したように、共通割込み複製部115により割込み番号の外部割込みがマスクされ、他の優先度候補を通知する疑似割込みが割込み信号入力部114に入力される(割込み番号16の割込み信号がマスクされ、割込み優先度100の疑似割込み信号が共通割込み複製部115により生成され、割込み信号入力部114に入力される。なお、先に入力された割込み優先度20は割込み処理A170にて処理されている)。
次に、S904において、解析部111が、割込み信号入力部114に他の割込み優先度が入力されているかチェックする(本例では、S903にて追加された割込み優先度100の疑似割込み信号が入力されているため、他の割込み優先度が入力されているという結果となる)。
次に、S905において、他の割込み優先度が入力されていない場合は、解析部111は処理を終了する。
一方、他の割込み優先度が入力されている場合、解析部111はS903へ処理を移行する(本例では、割込み優先度100が入力されているので、S903へ処理を移行する)。
以降では、かっこ書きとして記載した具体例の続きを説明する。
共通割込み複製部115が呼ばれている場合、前述したように、共通割込み複製部115により割込み番号の外部割込みがマスクされ、他の優先度候補を通知する疑似割込みが割込み信号入力部114に入力される(割込み番号16の割込み信号がマスクされ、割込み優先度100の疑似割込み信号が共通割込み複製部115により生成され、割込み信号入力部114に入力される。なお、先に入力された割込み優先度20は割込み処理A170にて処理されている)。
次に、S904において、解析部111が、割込み信号入力部114に他の割込み優先度が入力されているかチェックする(本例では、S903にて追加された割込み優先度100の疑似割込み信号が入力されているため、他の割込み優先度が入力されているという結果となる)。
次に、S905において、他の割込み優先度が入力されていない場合は、解析部111は処理を終了する。
一方、他の割込み優先度が入力されている場合、解析部111はS903へ処理を移行する(本例では、割込み優先度100が入力されているので、S903へ処理を移行する)。
以降では、かっこ書きとして記載した具体例の続きを説明する。
S903では、S701〜S706の処理により、OS切替え部112が動作OSをOS−B151に切替え、また、OS−B151により割込み処理B171が実行される。
更に、割込み処理B171が実行された後のS704の処理において、共通割込み複製部115が、割込み優先度100を最も低い優先度と判断し(S805でYES)、この結果、割込み番号16の割込みマスクをクリアする。
割込み番号16の割込みマスクをクリアすることにより、再度割込み番号16の割込み信号が発生すると割込み優先度20の割込み信号がCPU100へ入力される状況となる。
S904では、解析部111が割込み信号入力部114に他の割込み優先度が入力されているかチェックし、他の割込み優先度が入力されていないことが分かり、S905にて処理を終了する。
更に、割込み処理B171が実行された後のS704の処理において、共通割込み複製部115が、割込み優先度100を最も低い優先度と判断し(S805でYES)、この結果、割込み番号16の割込みマスクをクリアする。
割込み番号16の割込みマスクをクリアすることにより、再度割込み番号16の割込み信号が発生すると割込み優先度20の割込み信号がCPU100へ入力される状況となる。
S904では、解析部111が割込み信号入力部114に他の割込み優先度が入力されているかチェックし、他の割込み優先度が入力されていないことが分かり、S905にて処理を終了する。
以上の説明では、S806にて共通割込み複製部115が他の割込み優先度の疑似割込み信号の生成を行ったが、S902にて割込みコントローラ120から他の割込み優先度(本例では、割込み優先度100)の疑似割込み信号を割込み信号入力部114に入力するようにしてもよい。
その際、S806での共通割込み複製部115による複数の割込み優先度の入力は省略する。
その際、S806での共通割込み複製部115による複数の割込み優先度の入力は省略する。
以上にて示した処理により、例えば、割込み番号16に対して割込みコントローラ120により割込み信号として割込み優先度20が出力され、その際の動作OSがOS−A150である場合は、解析部111が割込み処理管理テーブルA600内の割込み優先度20のレコードを抽出し、抽出したレコードに従い、OS−A150に割込み処理Aを実行させる。
その後、解析部111は、共通割込み複製部115に共通割込み複製処理を実行させる。
共通割込み複製処理では、共通割込み複製部115が、割込み番号16の他の割込み優先度である割込み優先度100を疑似割込み信号として発生させる。
解析部111は、疑似割込み信号の入力があると、割込み処理管理テーブルA600内の割込み優先度100のレコードを抽出し、抽出したレコードに従いOS切替え部112に動作OSをOS−B151に切替えさせる。
共通割込み複製部115からの次の疑似割込み信号(割込み優先度100)に対しては、解析部111は割込み処理管理テーブルB601内の割込み優先度100のレコードを抽出し、抽出したレコードに従い、OS−B151に割込み処理Bを実行させる。
このため、割込み番号16の割込み信号の出力元がデバイスA130であってもデバイスB(1)131であっても指定OSにより割込み信号が処理される。
更に、解析部111は、共通割込み複製部115に共通割込み複製処理を実施させる。
この共通割込み複製処理では、共通割込み複製部115は、割込み番号16の割込み信号に対するマスクを解除し、割込み番号16の割込み信号の受付けを再開する。
その後、解析部111は、共通割込み複製部115に共通割込み複製処理を実行させる。
共通割込み複製処理では、共通割込み複製部115が、割込み番号16の他の割込み優先度である割込み優先度100を疑似割込み信号として発生させる。
解析部111は、疑似割込み信号の入力があると、割込み処理管理テーブルA600内の割込み優先度100のレコードを抽出し、抽出したレコードに従いOS切替え部112に動作OSをOS−B151に切替えさせる。
共通割込み複製部115からの次の疑似割込み信号(割込み優先度100)に対しては、解析部111は割込み処理管理テーブルB601内の割込み優先度100のレコードを抽出し、抽出したレコードに従い、OS−B151に割込み処理Bを実行させる。
このため、割込み番号16の割込み信号の出力元がデバイスA130であってもデバイスB(1)131であっても指定OSにより割込み信号が処理される。
更に、解析部111は、共通割込み複製部115に共通割込み複製処理を実施させる。
この共通割込み複製処理では、共通割込み複製部115は、割込み番号16の割込み信号に対するマスクを解除し、割込み番号16の割込み信号の受付けを再開する。
このように、本実施の形態によれば、割込みマスクを行い、他の優先度の割込みをCPUないし割込みコントローラからCPUに入力することにより、同じ割込み番号を共有するデバイスがあった場合でも、各OSにデバイスを占有させることが可能となる。
最後に、実施の形態1及び2に示した割込み信号受付け装置10を含むコンピュータ装置1のハードウェア構成例について説明する。
図18は、実施の形態1及び2に示す割込み信号受付け装置10を含むコンピュータ装置1のハードウェア資源の一例を示す図である。
なお、図18の構成は、あくまでもコンピュータ装置1のハードウェア構成の一例を示すものであり、コンピュータ装置1のハードウェア構成は図18に記載の構成に限らず、他の構成であってもよい。
図18は、実施の形態1及び2に示す割込み信号受付け装置10を含むコンピュータ装置1のハードウェア資源の一例を示す図である。
なお、図18の構成は、あくまでもコンピュータ装置1のハードウェア構成の一例を示すものであり、コンピュータ装置1のハードウェア構成は図18に記載の構成に限らず、他の構成であってもよい。
図18において、コンピュータ装置1は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
また、CPU911は、割込みコントローラ907と接続されている。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906と接続していてもよい。
また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。
ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
CPU911は実施の形態1及び2で説明したCPU100に相当し、RAM914は実施の形態1及び2で説明した主記憶110に相当する。
また、割込みコントローラ907は、実施の形態1及び2で説明した割込みコントローラ120に相当する。
また、その他のハードウェア資源は、実施の形態1及び2で説明したデバイス130〜133に相当する。
通信ボード915、キーボード902、マウス903、割込みコントローラ907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
また、CPU911は、割込みコントローラ907と接続されている。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906と接続していてもよい。
また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。
ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
CPU911は実施の形態1及び2で説明したCPU100に相当し、RAM914は実施の形態1及び2で説明した主記憶110に相当する。
また、割込みコントローラ907は、実施の形態1及び2で説明した割込みコントローラ120に相当する。
また、その他のハードウェア資源は、実施の形態1及び2で説明したデバイス130〜133に相当する。
通信ボード915、キーボード902、マウス903、割込みコントローラ907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、例えば、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
実施の形態1及び2に示したように、コンピュータ装置1では、オペレーティングシステム921(OS)は2つ以上動作し、OS−A150及びOS−B151に対応する。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
プログラム群923には、実施の形態1及び2において割込み信号制御部11の内部要素及び割込み信号入力部114の機能を実現するプログラムが含まれており、これらプログラムがRAM914にロードされ、CPU911により実行される。
実施の形態1及び2に示したように、コンピュータ装置1では、オペレーティングシステム921(OS)は2つ以上動作し、OS−A150及びOS−B151に対応する。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
プログラム群923には、実施の形態1及び2において割込み信号制御部11の内部要素及び割込み信号入力部114の機能を実現するプログラムが含まれており、これらプログラムがRAM914にロードされ、CPU911により実行される。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
コンピュータ装置1の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
コンピュータ装置1の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
ファイル群924には、実施の形態1及び2の説明において、「〜の判断」、「〜の抽出」、「〜の比較」、「〜の指定」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、実施の形態1及び2で示した割込み信号受付け装置10の動作を方法として把握することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合せ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1及び2の「〜部」としてコンピュータ装置1を機能させるものである。あるいは、実施の形態1及び2の「〜部」の手順や方法をコンピュータ装置1に実行させるものである。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合せ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1及び2の「〜部」としてコンピュータ装置1を機能させるものである。あるいは、実施の形態1及び2の「〜部」の手順や方法をコンピュータ装置1に実行させるものである。
10 割込み信号受付け装置、11 割込み信号制御部、12 デバイス割込み番号接続テーブル記憶部、13 割込み番号優先度変換テーブル記憶部、14 デバイス優先度管理テーブル記憶部、15 割込み利用管理テーブル記憶部、16 割込み処理管理テーブル記憶部、17 OS記憶部、18 割込み複製管理テーブル記憶部、100 CPU、110 主記憶、111 解析部、112 OS切替え部、113 共通割込み伝達部、114 割込み信号入力部、115 共通割込み複製部、120 割込みコントローラ、130 デバイスA、131 デバイスB(1)、132 デバイスB(2)、133 デバイスB(3)、140 バス、150 OS−A、151 OS−B、160 デバイスドライバA、161 デバイスドライバB、170 割込み処理A、171 割込み処理B、195 デバイス割込み番号接続テーブル、196 割込み番号優先度変換テーブル、197 デバイス優先度管理テーブル、198 割込み利用管理テーブル、199 割込み複製管理テーブル、200 割込み処理管理テーブルA、201 割込み処理管理テーブルB、600 割込み処理管理テーブルA、601 割込み処理管理テーブルB。
Claims (14)
- 2以上のOS(Opertating System)の動作を管理し、
それぞれに割込み信号で通知する割込み番号が指定され、それぞれに割込み信号を処理させるOSが指定OSとして指定されている複数のデバイスからの割込み信号を受付ける割込み信号受付け装置であって、
同じ割込み番号を共用する2以上の番号共用デバイスの各々に対して、各番号共用デバイスの指定OSと、各番号共用デバイスに固有の固有値と、当該2以上の番号共用デバイスに共用されている共用割込み番号とを対応付けるOS固有値情報を記憶するOS固有値情報記憶部と、
共用割込み番号ごとに、前記OS固有値情報において共用割込み番号に対応付けられている2以上の固有値の中から選択された固有値を共用割込み番号の変換値として指定する変換値情報を記憶する変換値情報記憶部と、
いずれかのOSが動作OSとして動作している際に共用割込み番号を通知する割込み信号が出力され、前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記動作OSに対応付けられている固有値と同じである場合に、前記動作OSに前記割込み信号に対する処理を実行させ、前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記動作OS以外のOSに対応付けられている固有値と同じである場合に、前記動作OSを停止させ、前記動作OS以外のOSを新たな動作OSとして起動する割込み信号制御部とを有することを特徴とする割込み信号受付け装置。 - 前記割込み信号制御部は、
前記割込み信号で通知されている共用割込み番号が変換された後の変換値が前記動作OSに対応付けられている固有値と同じである場合に、前記OS固有値情報において前記共用割込み番号に対応付けられている他の固有値を選択し、
選択した固有値が前記共用割込み番号の新たな変換値として指定されるように前記変換値情報を更新することを特徴とする請求項1に記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、
割込み信号が指定OSに処理されるまで同じ割込み番号を通知する割込み信号を連続して出力する複数のデバイスからの割込み信号を受付け、
前記割込み信号制御部は、
前記新たな動作OSが起動した後に共用割込み番号を通知する割込み信号が出力された際に、
前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記新たな動作OSに対応付けられている固有値と同じである場合に、前記新たな動作OSに前記割込み信号に対する処理を実行させ、
前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値が、前記OS固有値情報において前記新たな動作OS以外のOSに対応付けられている固有値と同じである場合に、前記新たな動作OSを停止させ、前記新たな動作OS以外のいずれかのOSを次の新たな動作OSとして起動することを特徴とする請求項1又は2に記載の割込み信号受付装置。 - 前記割込み信号受付け装置は、
各デバイスから出力された割込み番号を通知する割込み信号を入力し、前記変換値情報を参照し、入力した割込み信号の割込み番号が共用割込み番号である場合に、前記共用割込み番号を前記変換値情報で指定されている変換値に変換し、変換値を通知する割込み信号を出力する割込みコントローラに接続され、
前記割込み信号受付け装置は、更に、
前記割込みコントローラから変換値を通知する割込み信号を入力する割込み信号入力部を有し、
前記割込み信号制御部は、
前記割込み信号入力部により入力された割込み信号で通知されている変換値が、前記OS固有値情報において前記動作OSに対応付けられている固有値と同じである場合に、前記動作OSに前記割込み信号に対する処理を実行させることを特徴とする請求項1〜3のいずれかに記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、更に、
OSごとに、前記OS固有値情報において当該OSに対応付けられている固有値に対して割込み処理が定義され、前記OS固有値情報において他のOSに対応付けられている固有値に対してOS切替え処理が定義されている割込み処理管理情報を記憶している割込み処理管理情報記憶部を有し、
前記割込み信号制御部は、
共用割込み番号を通知する割込み信号が出力された場合に、前記割込み処理管理情報記憶部から動作OSの割込み処理管理情報を読み出し、
前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値と同じ固有値を動作OSの割込み処理管理情報において抽出し、
抽出した固有値に対して割込み処理が定義されている場合に、前記動作OSに前記割込み信号に対する処理を実行させ、
抽出した固有値に対してOS切替え処理が定義されている場合に、前記動作OSを停止させ、前記動作OS以外のOSを新たな動作OSとして起動することを特徴とする請求項1〜4のいずれかに記載の割込み信号受付け装置。 - 前記割込み処理管理情報記憶部は、
OSごとに、前記OS固有値情報において当該OSに対応付けられている固有値に対して割込み処理と変換値情報の更新処理が定義されている割込み処理管理情報を記憶し、
前記割込み信号制御部は、
共用割込み番号を通知する割込み信号が出力された場合に、前記割込み処理管理情報記憶部から動作OSの割込み処理管理情報を読み出し、
前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値と同じ固有値を動作OSの割込み処理管理情報において抽出し、
抽出した固有値に対して割込み処理と変換値情報の更新処理が定義されている場合に、前記動作OSに前記割込み信号に対する処理を実行させ、
変換値情報の更新処理として、前記OS固有値情報において前記共用割込み番号に対応付けられている他の固有値を選択し、選択した固有値が前記共用割込み番号の新たな変換値として指定されるように前記変換値情報を更新することを特徴とする請求項5に記載の割込み信号受付け装置。 - 前記割込み信号制御部は、
前記割込み信号で通知されている共用割込み番号が変換された後の変換値が前記動作OSに対応付けられている固有値と同じである場合に、前記OS固有値情報において共用割込み番号に対応付けられている他の固有値を疑似変換値として選択し、
選択した疑似変換値を通知する疑似割込み信号を発生させ、
前記割込み信号受付け装置は、更に、
前記割込み信号制御部が発生させた疑似変換値を通知する疑似割込み信号を入力する割込み信号入力部を有し、
前記割込み信号制御部は、
前記割込み信号入力部により入力された疑似割込み信号で通知されている疑似変換値が、当該疑似割込み信号の入力時に動作している動作OSに対応付けられている固有値と同じである場合に、当該動作OSに当該疑似割込み信号に対する処理を実行させ、
前記割込み信号入力部により入力された疑似割込み信号で通知されている疑似変換値が、当該疑似割込み信号の入力時に動作している動作OS以外のOSに対応付けられている固有値と同じである場合に、当該動作OSを停止させ、当該動作OS以外のいずれかのOSを新たな動作OSとして起動することを特徴とする請求項1〜6のいずれかに記載の割込み信号受付け装置。 - 前記割込み信号制御部は、
疑似割込み信号が指定OSに処理されるまで同じ疑似変換値を通知する疑似割込み信号を連続して発生させることを特徴とする請求項7に記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、更に、
OSごとに、前記OS固有値情報において当該OSに対応付けられている固有値に対して割込み処理と疑似割込み信号の発生処理が定義され、前記OS固有値情報において他のOSに対応付けられている固有値に対してOS切替え処理が定義されている割込み処理管理情報を記憶している割込み処理管理情報記憶部を有し、
前記割込み信号制御部は、
共用割込み番号を通知する割込み信号が出力された場合に、前記割込み処理管理情報記憶部から動作OSの割込み処理管理情報を読み出し、
前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値と同じ固有値を動作OSの割込み処理管理情報において抽出し、
抽出した固有値に対して割込み処理と疑似割込み信号の発生処理が定義されている場合に、前記動作OSに前記割込み信号に対する処理を実行させ、疑似割込み信号の発生処理として、前記OS固有値情報において前記共用割込み番号に対応付けられている他の固有値を疑似変換値として選択し、選択した疑似変換値を通知する疑似割込み信号を発生させ、
抽出した固有値に対してOS切替え処理が定義されている場合に、前記動作OSを停止させ、前記動作OS以外のいずれかのOSを新たな動作OSとして起動することを特徴とする請求項7又は8に記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、
各デバイスから出力された割込み番号を通知する割込み信号を入力し、前記変換値情報を参照し、入力した割込み信号の割込み番号が共用割込み番号である場合に、前記共用割込み番号を前記変換値情報で指定されている変換値に変換し、変換値を通知する割込み信号を出力する割込みコントローラに接続され、
前記割込み信号受付け装置は、更に、
前記割込みコントローラから変換値を通知する割込み信号を入力する割込み信号入力部を有し、
前記割込み信号制御部は、
前記割込みコントローラからの割込み信号で通知されている変換値が前記動作OSに対応付けられている固有値と同じである場合に、前記OS固有値情報において前記共用割込み番号に対応付けられている他の固有値を疑似変換値として選択し、選択した疑似変換値を通知する疑似割込み信号を出力するよう前記割込みコントローラに指示し、
前記割込み信号入力部は、
前記割込みコントローラから疑似変換値を通知する疑似割込み信号を入力し、
前記割込み信号制御部は、
前記割込み信号入力部により入力された疑似割込み信号で通知されている疑似変換値が、当該疑似割込み信号の入力時に動作している動作OSに対応付けられている固有値と同じである場合に、当該動作OSに当該疑似割込み信号に対する処理を実行させ、
前記割込み信号入力部により入力された疑似割込み信号で通知されている疑似変換値が、当該疑似割込み信号の入力時に動作している動作OS以外のOSに対応付けられている固有値と同じである場合に、当該動作OSを停止させ、当該動作OS以外のいずれかのOSを新たな動作OSとして起動することを特徴とする請求項1〜9のいずれかに記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、
疑似割込み信号が指定OSに処理されるまで同じ疑似変換値を通知する疑似割込み信号を連続して出力する割込みコントローラに接続されていることを特徴とする請求項10に記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、更に、
OSごとに、前記OS固有値情報において当該OSに対応付けられている固有値に対して割込み処理と疑似割込み信号の発生処理が定義され、前記OS固有値情報において他のOSに対応付けられている固有値に対してOS切替え処理が定義されている割込み処理管理情報を記憶している割込み処理管理情報記憶部を有し、
前記割込み信号制御部は、
共用割込み番号を通知する割込み信号が出力された場合に、前記割込み処理管理情報記憶部から動作OSの割込み処理管理情報を読み出し、
前記割込み信号で通知されている共用割込み番号が前記変換値情報に従って変換された後の変換値と同じ固有値を動作OSの割込み処理管理情報において抽出し、
抽出した固有値に対して割込み処理と疑似割込み信号の発生処理が定義されている場合に、前記動作OSに前記割込み信号に対する処理を実行させ、疑似割込み信号の発生処理として、前記OS固有値情報において前記共用割込み番号に対応付けられている他の固有値を疑似変換値として選択し、選択した疑似変換値を通知する疑似割込み信号を出力するよう前記割込みコントローラに指示し、
抽出した固有値に対してOS切替え処理が定義されている場合に、前記動作OSを停止させ、前記動作OS以外のOSを新たな動作OSとして起動することを特徴とする請求項10又は11に記載の割込み信号受付け装置。 - 前記割込み信号受付け装置は、
割込み信号が指定OSに処理されるまで同じ割込み番号を通知する割込み信号を連続して出力する複数のデバイスからの割込み信号を受け付け、
前記割込み信号制御部は、
疑似変換値を選択するとともに、前記割込み信号で通知されている共用割込み番号を受付中止番号として指定し、受付中止番号を通知する割込み信号の受付けを中止し、
疑似割込み信号に対する指定OSの処理が完了した際に、前記受付中止番号の指定を解除し、前記共用割込み番号を通知する割込み信号の受付けを再開することを特徴とする請求項7〜12のいずれかに記載の割込み信号受付け装置。 - 請求項1〜13のいずれかに記載の割込み信号受付け装置を有することを特徴とするコンピュータ装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/068694 WO2012053095A1 (ja) | 2010-10-22 | 2010-10-22 | 割込み信号受付け装置及びコンピュータ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5372262B2 JP5372262B2 (ja) | 2013-12-18 |
JPWO2012053095A1 true JPWO2012053095A1 (ja) | 2014-02-24 |
Family
ID=45974831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012539540A Expired - Fee Related JP5372262B2 (ja) | 2010-10-22 | 2010-10-22 | 割込み信号受付け装置及びコンピュータ装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9361251B2 (ja) |
JP (1) | JP5372262B2 (ja) |
KR (1) | KR101475640B1 (ja) |
CN (1) | CN103180829B (ja) |
DE (1) | DE112010005951T5 (ja) |
WO (1) | WO2012053095A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140079137A (ko) * | 2012-12-18 | 2014-06-26 | 삼성전자주식회사 | 불휘발성 메모리를 메인 메모리로 사용하는 컴퓨팅 시스템 및 그것의 데이터 관리 방법 |
US9678903B1 (en) * | 2014-10-15 | 2017-06-13 | Intel Corporation | Systems and methods for managing inter-CPU interrupts between multiple CPUs |
CN105786607B (zh) * | 2016-03-24 | 2019-11-12 | 宇龙计算机通信科技(深圳)有限公司 | 一种多系统的冻结与唤醒方法及装置 |
KR20180083688A (ko) * | 2017-01-13 | 2018-07-23 | 삼성전자주식회사 | 애플리케이션 프로세서 및 집적 회로 |
CN112470125B (zh) * | 2018-07-24 | 2024-02-20 | 三菱电机株式会社 | 中断处理方法、计算机系统以及存储介质 |
CN112711549B (zh) * | 2021-01-15 | 2023-08-01 | 飞腾信息技术有限公司 | 中断请求信号转换系统和方法、计算装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61229129A (ja) | 1985-04-04 | 1986-10-13 | Nec Corp | 仮想計算機システムにおける入出力割込み通知装置 |
JPH0540643A (ja) * | 1991-08-06 | 1993-02-19 | Nec Corp | 複数os同時動作時のh/w割込み制御方式 |
JP4026667B2 (ja) | 1997-09-12 | 2007-12-26 | 株式会社日立製作所 | マルチos構成方法 |
JP3546678B2 (ja) * | 1997-09-12 | 2004-07-28 | 株式会社日立製作所 | マルチos構成方法 |
JP3659062B2 (ja) * | 1999-05-21 | 2005-06-15 | 株式会社日立製作所 | 計算機システム |
JP2001229038A (ja) * | 2000-02-17 | 2001-08-24 | Hitachi Ltd | マルチオペレーテング計算機システム |
US6715016B1 (en) * | 2000-06-01 | 2004-03-30 | Hitachi, Ltd. | Multiple operating system control method |
US6785893B2 (en) * | 2000-11-30 | 2004-08-31 | Microsoft Corporation | Operating system event tracker having separate storage for interrupt and non-interrupt events and flushing the third memory when timeout and memory full occur |
ATE409904T1 (de) * | 2003-04-09 | 2008-10-15 | Jaluna Sa | Betriebssysteme |
US8612992B2 (en) * | 2003-04-09 | 2013-12-17 | Jaluna Sa | Operating systems |
JP4523910B2 (ja) | 2005-12-13 | 2010-08-11 | 三菱電機株式会社 | 並列処理装置及び並列処理方法及び並列処理プログラム |
JP2007206955A (ja) * | 2006-02-01 | 2007-08-16 | Sony Corp | 情報処理装置および方法、プログラム、並びに記録媒体 |
JP5014179B2 (ja) | 2008-01-25 | 2012-08-29 | 三菱電機株式会社 | Os優先度変更装置及びos優先度変更プログラム |
US7793025B2 (en) * | 2008-03-28 | 2010-09-07 | Freescale Semiconductor, Inc. | Hardware managed context sensitive interrupt priority level control |
US8291135B2 (en) * | 2010-01-15 | 2012-10-16 | Vmware, Inc. | Guest/hypervisor interrupt coalescing for storage adapter virtual function in guest passthrough mode |
US8417862B2 (en) * | 2010-10-13 | 2013-04-09 | Lsi Corporation | Inter-virtual machine interrupt coalescing |
-
2010
- 2010-10-22 JP JP2012539540A patent/JP5372262B2/ja not_active Expired - Fee Related
- 2010-10-22 WO PCT/JP2010/068694 patent/WO2012053095A1/ja active Application Filing
- 2010-10-22 DE DE112010005951T patent/DE112010005951T5/de not_active Withdrawn
- 2010-10-22 US US13/824,405 patent/US9361251B2/en not_active Expired - Fee Related
- 2010-10-22 KR KR1020137008525A patent/KR101475640B1/ko not_active IP Right Cessation
- 2010-10-22 CN CN201080069758.0A patent/CN103180829B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5372262B2 (ja) | 2013-12-18 |
KR101475640B1 (ko) | 2014-12-22 |
WO2012053095A1 (ja) | 2012-04-26 |
US9361251B2 (en) | 2016-06-07 |
KR20130052010A (ko) | 2013-05-21 |
CN103180829A (zh) | 2013-06-26 |
US20130185469A1 (en) | 2013-07-18 |
CN103180829B (zh) | 2016-08-03 |
DE112010005951T5 (de) | 2013-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5372262B2 (ja) | 割込み信号受付け装置及びコンピュータ装置 | |
JP6202543B2 (ja) | 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム | |
US7373469B2 (en) | Data migration method | |
JP6284130B2 (ja) | ローカル・クリア制御 | |
US7275249B1 (en) | Dynamically generating masks for thread scheduling in a multiprocessor system | |
US20070094456A1 (en) | Storage system and storage control method | |
EP2102739A1 (en) | System and method for migrating domains from one physical data processing system to another | |
JP2002117002A (ja) | 共用型ペリフェラルアーキテクチャ | |
US8732427B2 (en) | Systems and methods for collapsing a derivative version of a primary storage volume | |
JP6406027B2 (ja) | 情報処理システム、情報処理装置、メモリアクセス制御方法 | |
US9665424B2 (en) | Recovery improvement for quiesced systems | |
US20150269098A1 (en) | Information processing apparatus, information processing method, storage, storage control method, and storage medium | |
WO2011039887A1 (ja) | 計算機装置 | |
JP6716645B2 (ja) | ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体 | |
JP2010211458A (ja) | 計算機システム及びi/o制御方法 | |
JP2005209055A (ja) | ストレージの負荷分散方法 | |
JP5478372B2 (ja) | ゲストos制御システム | |
WO2014076799A1 (ja) | 仮想計算機システム | |
JP2005339079A (ja) | データベース管理システムにおける処理代行方法 | |
JP2009277007A (ja) | 計算機装置及びプログラム | |
JP2018081346A (ja) | ストレージ装置、ストレージシステム、ストレージ制御方法、および、ストレージ制御プログラム | |
JP2005149361A (ja) | 仮想計算機システムおよび仮想計算機システムの制御プログラム | |
JPH0693228B2 (ja) | 情報処理装置 | |
JPH03147138A (ja) | 情報処理システム | |
JP2000357057A (ja) | ディスク装置におけるリード/ライト制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20130820 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130917 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |