JP4345630B2 - 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4345630B2
JP4345630B2 JP2004283529A JP2004283529A JP4345630B2 JP 4345630 B2 JP4345630 B2 JP 4345630B2 JP 2004283529 A JP2004283529 A JP 2004283529A JP 2004283529 A JP2004283529 A JP 2004283529A JP 4345630 B2 JP4345630 B2 JP 4345630B2
Authority
JP
Japan
Prior art keywords
interrupt
processing
sub
main
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004283529A
Other languages
English (en)
Other versions
JP2006099331A (ja
JP2006099331A5 (ja
Inventor
直人 沖野
敦之 戸川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004283529A priority Critical patent/JP4345630B2/ja
Priority to US10/580,848 priority patent/US8584125B2/en
Priority to PCT/JP2005/017646 priority patent/WO2006035728A1/ja
Priority to CNB2005800014874A priority patent/CN100549964C/zh
Publication of JP2006099331A publication Critical patent/JP2006099331A/ja
Publication of JP2006099331A5 publication Critical patent/JP2006099331A5/ja
Application granted granted Critical
Publication of JP4345630B2 publication Critical patent/JP4345630B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムに関する。さらに詳細には、複数のオペレーションシステム(OS)が同時に動作するシステムにおいて、割り込み処理制御を実行する主OSを設定して、主OSによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理を実現する情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムに関する。
1つのシステム内に複数のオペレーティングシステム(OS)を搭載したマルチOSシステムにおいては、各OSはそれぞれ異なるプロセスが実行可能であり、システムで共通のハードウェア、すなわちCPUやメモリ等を時系列に順次切り替えて利用した処理が行なわれる。
複数OSの各々の実行プロセス(タスク)のスケジューリングは、例えばパーティション管理ソフトウェアによって実行される。1つのシステムにOS(α)とOS(β)の2つのオペレーティングシステムが並存する場合、OS(α)の処理をパーティションAとし、OS(β)の処理をパーティションBとすると、パーティション管理ソフトウェアは、パーティションAとパーティションBの実行スケジュールを決定し、決定したスケジュールに基づいて、ハードウェア資源を割り当てて各OSにおける処理を実行する。
マルチOS型のシステムにおけるタスク管理を開示した従来技術として、例えば、特許文献1がある。特許文献1には、複数のOSの各々において実行されるタスク管理において、緊急性の高い処理を優先的に処理させるためのタスクスケジューリング手法を開示している。
このようなマルチOSシステムにおいて、各種のデータ処理の実行主体は例えばパーティションとして設定される。具体的には、システム内の資源分配を受ける主体としての論理パーティションが設定され、論理パーティションに対して、物理プロセッサユニットの使用時間や、仮想アドレス空間、さらにメモリ空間などの様々なリソースが配分され、配分されたリソースを適用した処理が実行される。論理パーティションには、いずれかの物理プロセッサに対応する論理的なプロセッサが設定され、論理プロセッサに基づくデータ処理が実行される。論理プロセッサと物理プロセッサは必ずしも1対1の関係にはなく、1つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに1つの物理プロセッサが対応付けられる場合もある。
論理プロセッサを適用した複数の処理が並列に実行される場合、物理プロセッサは、複数の論理プロセッサによってスケジューリングされて使用されることになる。すなわち、複数の論理プロセッサは、タイムシェアリングによる物理プロセッサの使用を行なうことになる。
しかし、このようなマルチOSシステムにおいては、物理的に使用可能なプロセッサとしてのハードウェア資源は限られており、あるOSが物理プロセッサを適用したデータ処理を実行している期間は、他のOSによる利用が出来ないことになる。このような他のOSによる利用を制限する期間は、例えば割り込みマスク期間と呼ばれる。システム全体での割り込みマスク期間が大きくなるとシステム全体の処理効率は低下することになる。
特開2003−345612号公報
本発明は、上述の問題点に鑑みてなされたものであり、1つのシステム内に複数のオペレーティングシステム(OS)を搭載したマルチOSシステムにおいて、割り込み処理制御を実行する主OSを設定して、主OSによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理を実現する情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
複数のオペレーティングシステム(OS)に対応するデータ処理を実行する情報処理装置であり、
前記複数のOSは、割り込み処理の制御を実行する主OSと、その他の副OSとによって構成され、
前記主OSは、前記副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの副OSの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行する構成であり、
副OS対応の割り込みが発生した場合、
前記状態表に基づいて副OSが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、
前記状態表に基づいて副OSが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
(a)主OS処理実行中の場合、
(a1)発生割り込みが高優先度の場合は、割り込み処理を実行、
(a2)発生割り込みが低優先度の場合は、割り込み処理を保留、
(b)副OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
上記(a1),(a2),(b)の各処理態様での割り込み制御を実行し、
主OS対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
(c)主OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
(d)副OS処理実行中の場合、
(d1)発生割り込みが高優先度の場合は、割り込み処理を実行、
(d2)発生割り込みが低優先度の場合は、割り込み処理を保留、
上記(c),(d1),(d2)の各処理態様での割り込み制御を実行する構成を有することを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記主OSは、前記状態表に登録された副OSの割り込み許可状態と割り込み禁止状態の遷移に応じて、保留中の割り込み処理の開始制御を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記副OSは、前記主OSに対して、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を通知する構成であり、前記主OSは、副OSからの通知情報に基づいて、副OSの状態情報の更新処理を実行する構成であることを特徴とする。
さらに、本発明の第2の側面は、
複数のオペレーティングシステム(OS)に対応するデータ処理における割り込み処理制御方法であり、
割り込み処理制御を実行する主OSにおいて、主OS以外の副OSから、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を受領するステップと、
割り込み処理の発生を検出するステップと、
前記状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表を生成、更新するステップと、
副OS対応の割り込みが発生した場合、
前記状態表に基づいて副OSが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、
前記状態表に基づいて副OSが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
(a)主OS処理実行中の場合、
(a1)発生割り込みが高優先度の場合は、割り込み処理を実行、
(a2)発生割り込みが低優先度の場合は、割り込み処理を保留、
(b)副OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
上記(a1),(a2),(b)の各処理態様での割り込み制御を実行するステップと、
主OS対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
(c)主OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
(d)副OS処理実行中の場合、
(d1)発生割り込みが高優先度の場合は、割り込み処理を実行、
(d2)発生割り込みが低優先度の場合は、割り込み処理を保留、
上記(c),(d1),(d2)の各処理態様での割り込み制御を実行するステップと、
を有することを特徴とする割り込み処理制御方法にある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、複数のオペレーションシステム(OS)が同時に動作するシステムにおいて、割り込み処理制御を実行する主OSを設定して、主OSによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理が実現される。
本発明の構成によれば、割り込み処理制御を実行する主OSを設定し、主OS以外の副OSに割り込みマスクの設定権限を与えず、副OSから主OSに対して、副OSが割り込み許可状態にあるか禁止状態にあるかの通知を実行し、主OSが、これらの通知情報に基づいて、副OSの割り込みマスクの制御を行う構成としたので、副OS独自のマスク制御によって、必要な割り込み処理が保留させられてしまうといった不具合を発生させることなく、主OSの意図に沿って、全ての割り込み処理の制御が可能となり、必要な割り込み処理を優先的に処理させることが可能となる。
また、本発明の構成によれば、主OSに副OS割り込みベクタ管理部を設定し、主OSでまとめて副OSの割り込みベクタ領域を管理する構成としたので、個々のOSによる割り込みベクタ管理と異なり割り込みベクタの共有が可能となり、メモリ領域の削減が可能となる。
以下、図面を参照しながら、本発明の情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムの詳細について説明する。
まず、図1を参照して、本発明を適用可能な情報処理装置のハードウェア構成例について説明する。プロセッサモジュール101は、複数のプロセッサ(Processing Unit)から構成されたモジュールであり、ROM(Read Only Memory)104、HDD123等に記憶されているプログラムに従って、オペレーティングシステム(OS:Operating System)、OS対応のアプリケーション・プログラムなど、各種プログラムに従ったデータ処理を実行する。プロセッサモジュール101の詳細については、さらに、後段で、図2を参照して説明する。
グラフィックエンジン102は、プロセッサモジュール101から入力される指示に従って、出力部122を構成する表示デバイスに画面出力するためのデータ生成、例えば3Dグラフィック描画処理を実行する。メインメモリ(DRAM)103には、プロセッサモジュール101において実行するプログラムやその実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス111により相互に接続されている。
ホストバス111は、ブリッジ105を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス112に接続されている。ブリッジ105は、ホストバス111、外部バス112間、およびコントローラ106、メモリカード107、その他のデバイスとのデータ入出力制御を実行する。
入力部121は、キーボード、ポインティングデバイスなどのユーザにより操作される入力デバイスからの入力情報を入力する。出力部122は、液晶表示装置やCRT(Cathode Ray Tube)などの画像出力部とスピーカ等からなる音声出力部から構成される。
HDD(Hard Disk Drive)123は、ハードディスクを内蔵し、ハードディスクを駆動し、プロセッサモジュール101によって実行するプログラムや情報を記録または再生させる。
ドライブ124は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体127に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース113、外部バス112、ブリッジ105、およびホストバス111を介して接続されているメインメモリ(DRAM)103に供給する。
接続ポート125は、外部接続機器128を接続するポートであり、USB,IEEE1394等の接続部を持つ。接続ポート125は、インタフェース13、外部バス112、ブリッジ105、およびホストバス111を介してプロセッサモジュール101等に接続されている。通信部126は、ネットワークに接続され、プロセッサモジュール101や、HDD123等から提供されるデータの送信、外部からのデータ受信を実行する。
次に、プロセッサモジュールの構成例について、図2を参照して説明する。図2に示すように、プロセッサモジュール200は、複数のメインプロセッサからなるメインプロセッサグループ201、複数のサブプロセッサからなる複数のサブプロセッサグループ202〜20nによって構成されている。それぞれにメモリコントローラ、2次キャッシュが設けられている。各プロセッサグループ201〜20nの各々は例えば8つのプロセッサユニットを有し、クロスバスアーキテクチャ、あるいはパケット交換式ネットワークなどによって接続されている。メインプロセッサグループ201のメインプロセッサの指示のもとに、複数のサブプロセッサグループ202〜20nの1以上のサブプロセッサが選択され、所定のプログラムが実行される。
各プロセッサグループに設置されたメモリフローコントローラは、図1に示すメインメモリ103とのデータ入出力制御を実行し、2次キャッシュは、各プロセッサグループにおける処理用データの記憶領域として利用される。
次に、図3を参照して、本発明の情報処理装置におけるオペレーティングシステム(OS)構成を説明する。本発明の情報処理装置は複数のオペレーティングシステム(OS)が共存するマルチOS構成を持つ。図3に示すように、論理的な階層構成を持つ複数のオペレーティングシステム(OS)を持つ。
図3に示すように、下位レイヤに主OS301を有し、上位レイヤに複数の副OS302〜304を有する。副OSには、例えばゲストOS302,303、およびシステム制御OS304が設定される。主OS301は、副OSとして設定されるシステム制御OS304とともに図1、図2を参照して説明したプロセッサモジュールにおいて実行する各プロセスの1つの実行単位としての論理パーティションを実現し、システム内のハードウェア資源(計算機資源としてのメインプロセッサ、サブプロセッサ、メモリ、デバイス等)を各論理パーティションに割り振る処理を実行する。
副OSを構成するゲストOS302,303は、例えばゲームOSやWindows(登録商標)、Linux(登録商標)などの各種のOSであり、主OS301の制御の下に動作するOSである。なお、図3には、ゲストOS302,303の2つのゲストOSのみを示してあるが、ゲストOSは任意の数に設定することが可能である。
副OSを構成するゲストOS302,303は、主OS301およびシステム制御OS304によって設定された論理パーティション内で動作し、その論理パーティションに割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して各種のデータ処理を実行する。
例えば、ゲストOS(a)302は、主OS301およびシステム制御OS304によって設定された論理パーティション2に割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して、ゲストOS(a)302対応のアプリケーション・プログラム305を実行する。また、ゲストOS(b)303は、論理パーティションnに割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して、ゲストOS(b)303対応のアプリケーション・プログラム306を実行する。主OS301は、ゲストOSの実行に必要なインタフェースとしてゲストOSプログラミングインタフェースを提供する。
副OSの1つであるシステム制御OS304は、論理パーティション管理情報を含むシステム制御プログラム307を生成し、システム制御プログラム307に基づくシステムの動作制御を主OS301とともに実行する。システム制御プログラム307は、システム制御プログラム・プログラミングインタフェースを用いてシステムのポリシを制御するプログラムである。システム制御プログラム・プログラミングインタフェースは、主OS301からシステム制御OS304に提供される。例えばリソース配分の上限値を設定するなど、プログラムによる柔軟なカスタマイズのための手段を提供するのがシステム制御プログラム307の役割である。
システム制御プログラム307はシステム制御プログラム・プログラミングインタフェースを用いてシステムの振る舞いを制御することができる。例えば、新しく論理パーティションを作成し、その論理パーティションで新しいゲストOSを起動することができる。複数のゲストOSが動作するシステムでは、それらのゲストOSはシステム制御プログラムにあらかじめプログラムされた順序で起動されることになる。また、ゲストOSから提出された資源割り当て要求を主OS301が受理する前に検査し、システムのポリシに従って修正したり、要求そのものを拒否したりすることができる。これにより、特定のゲストOSだけが資源を独占することがないようにすることができる。このように、システムのポリシをプログラムとして実現したものがシステム制御プログラムである。
主OS301はシステム制御OS304のために特別な論理パーティション(図では論理パーティション1)を割り当てる。主OS301は、ハイパバイザモードで動作する。ゲストOSはスーパバイザモードで動作する。システム制御OS、アプリケーション・プログラムはプロブレムモード(ユーザモード)で動作する。
論理パーティションはシステム内の資源分配を受ける主体である。たとえばメインメモリ103(図1参照)はいくつかの領域へ分割され、それぞれの領域の使用権が論理パーティションに対して与えられる。論理パーティションに分配される資源の種別には以下のものがある。
a)物理プロセッサユニット使用時間
b)仮想アドレス空間
c)論理パーティション内で動作するプログラムがアクセスできるメモリ
d)主OSが論理パーティションの管理のために用いるメモリ
e)イベントポート
f)デバイスの使用権
g)キャッシュパーティション
h)バス使用権
前述したように、各OSは論理パーティションの中で動作する。各OSは論理パーティションに割り当てられた資源を独占して各種のデータ処理を実行する。多くの場合、システム上で動作する個々のOS毎に1つの論理パーティションが作成される。各論理パーティションにはユニークな識別子が与えられる。システム制御OS304は、論理パーティション管理情報として生成するシステム制御プログラムに識別子を対応づけて管理する。
論理パーティションは、主OS301および副OSとしてのシステム制御OS304によって生成される。生成直後の論理パーティションは何も資源を持たず、使用資源の制限も設定されていない。論理パーティションには活動状態と終了状態という2つの状態がある。生成直後の論理パーティションは活動状態にある。論理パーティション内で動作するゲストOSの要求に基づいて論理パーティションは終了状態に遷移し、論理パーティションに割り当てられている全ての論理プロセッサが停止する。
なお、論理プロセッサは、論理パーティションに割り当てられる論理的なプロセッサであり、いずれかの物理プロセッサ、すなわち、図2に示すプロセッサグループ内のプロセッサに対応する。ただし、論理プロセッサと物理プロセッサは必ずしも1対1の関係にはなく、1つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに1つの物理プロセッサが対応付けられる場合もある。論理プロセッサと物理プロセッサの対応付けは、主OS301が決定する。
主OS301は、各論理パーティションが使用する資源の量を制限する機能を備えている。ゲストOS302,303がシステム制御OS304との通信を行うことなく割り当て/解放が行える資源については使用量の制限が可能となっている。
主OSは論理パーティションに対し、物理サブプロセッサを抽象化した論理サブプロセッサをリソース(計算機資源)として与える。前述したように物理サブプロセッサと論理サブプロセッサは一対一に対応付けされていない上、数が同じである必要もない。これを実現するために、主OSは必要に応じて一つの物理サブプロセッサを複数の論理サブプロセッサに対応付けることができるようになっている。
論理サブプロセッサの数が物理サブプロセッサの数より多い場合、主OSは物理サブプロセッサを時分割して処理する。このため論理サブプロセッサは、時間の経過をともなって動作停止や動作再開を繰り返す可能性がある。副OSはこれらの状態の変化を観測することができる。
データ処理の実行に際しては、システム内の資源分配を受ける主体としての論理パーティションが設定され、論理パーティションに対して、物理プロセッサユニットの使用時間や、仮想アドレス空間、さらにメモリ空間などの様々なリソースが配分され、配分されたリソースを適用した処理が実行される。論理パーティションには、いずれかの物理プロセッサに対応する論理的なプロセッサが設定され、論理プロセッサに基づくデータ処理が実行される。論理プロセッサと物理プロセッサは必ずしも1対1の関係にはなく、1つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに1つの物理プロセッサが対応付けられる場合もある。
論理プロセッサを適用した複数の処理が並列に実行される場合、物理プロセッサは、複数の論理プロセッサによってスケジューリングされて使用されることになる。すなわち、複数の論理プロセッサは、タイムシェアリングによる物理プロセッサの使用を行なうことになる。
図4を参照して、タイムシェアリングによる物理プロセッサの使用形態について説明する。図4(a)は、1つの物理プロセッサに対して、いずれかの主OSまたは副OSに対応する1つの論理プロセッサが割り当てられている処理形態である。論理プロセッサ(ア)が物理プロセッサ(1)を占有して利用し、論理プロセッサ(イ)が物理プロセッサ(2)を占有して利用している。
図4(b)は、1つの物理プロセッサに対して複数の論理プロセッサが割り当てられ、タイムシェアリングによる処理を実行している処理形態を示している。物理プロセッサ1は、論理プロセッサ(ウ)→(ア)→(ウ)→(ア)→(イ)→(ウ)→(イ)の順にタイムシェアされて、各々の論理プロセッサ、すなわちいずれかの主OSまたは副OSに対応する処理が実行される。物理プロセッサ2は、論理プロセッサ(イ)→(エ)→(イ)→(エ)→(ウ)→(エ)→(ア)の順にタイムシェアされて、各々の論理プロセッサ、すなわちいずれかの主OSまたは副OSに対応する処理が実行されるによる処理が実行される。
上述のように、本発明の情報処理装置は、複数のオペレーティングシステム(OS)を搭載したマルチOSシステムであり、主OSまたは副OSに対応する処理がプロセッサによって実行される。図3を参照して説明したように、複数のOSは、1つの主OSとそれ以外の副OSに分類される。以下、本発明の情報処理装置における主OSと副OSの持つ機能と、割り込み制御処理の詳細について説明する。
割り込み処理は、例えば入出力機器、システムクロックなどの装置が非同期的にCPUに割り込む処理であり、割り込みを受け付け、割り込み処理を実行する場合は、実行中の処理、すなわち物理プロセッサとしてのCPUによって実行されていた処理を中断し、割り込み処理を実行して、割り込み処理の完了後に中断処理を再開する。なお、割り込み処理の実行に際しては、必要に応じて、中断する処理に対応するハードウェア状態情報などをコンテキストテーブルとして設定してメモリに保存し、割り込み処理終了後に、コンテキスト復元によってハードウェア状態を回復し、中断処理を再開する処理などが行われる。
本発明の構成における主OSと副OSの割り込み処理の制御に関する機能は、以下の通りである。
(1)主OSが割り込みマスク設定や割り込みベクタといった競合リソースを管理する。
(2)主OSは、主OS自身を含むデータ処理を実行中のOSの状態情報を記録する。
(3)副OSは、割り込みマスクレジスタを直接制御せず、主OSに対して、副OSが割り込み許可状態であるか、割り込み禁止状態であるかを通知する。
(4)主OSがすべての割り込み要求を受け取り、副OSが割り込み可能かつ実行可能な状態のときに必要な割り込みを配送する。
上記構成により、
(1)副OSが直接割り込みマスクを閉じていた時間はすべて割り込みマスクを空けることができる。
(2)割り込みベクタを共有できるので主OSと副OSを統合したイメージを作成して、使用メモリ量を削減できる。
という効果を奏する。
図5を参照して、主OSの機能について説明する。図5は、主OS510の割り込み制御に関する機能を説明するブロック図である。
主OSは、割り込み優先度管理部511、副OS割り込み管理部512、副OS割り込みベクタ管理部513、割り込み要因登録管理部514、実行OS状態管理部515、割り込み配送部516、実行OS切り替え制御部517、割り込み処理完了通知部518、割り込み保留制御部519を有する。各機能部の実行する処理について説明する。
割り込み優先度管理部511は、割り込み要因に対応する優先度に基づく割り込み管理を実行する。割り込み処理は、主OS対応の割り込み処理、副OS対応の割り込み処理に区分され、さらに、それぞれの割り込み処理について優先度が設定される。優先度は割り込み処理に応じて高優先度、低優先度の2つの区分設定、あるいは、各割り込み処理について高〜低の複数の優先順位の設定情報に基づいて管理される。割り込み優先度管理部511は、これら割り込み要因に対応して設定された優先度に応じて発生した割り込み530の対応を決定する処理を実行する。
副OS割り込み管理部512は、副OSの割り込み許可状態および割り込み禁止状態の管理を実行する。前述したように、主OS510は、副OS520から、副OSが割り込み許可状態であるか、割り込み禁止状態であるかの通知を受領する。主OS510の副OS割り込み管理部512は、副OS520からの通知情報に基づいて、各副OSが割り込み許可状態であるか、割り込み禁止状態であるかの管理情報を保持する。
副OS割り込み管理部512は、各副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態を管理する状態表に各副OSの状態を登録する。状態表には、例えば、割り込みの禁止状態を(0)、割り込みの許可状態を(1)として設定した割り込みマスクレジスタが含まれ、割り込みマスクレジスタに基づいて、各副OSの状態を管理する。ある割り込み要求があった場合、割り込みの禁止状態、すなわちマスクされている場合は、その時点に発生した割り込み要求は、待機させられることになる。割り込みの許可状態、すなわち、マスクの解除された状態では、割り込み要求に対する割り込み処理を許容する。
なお、図には1つの副OS520のみを示してあるが、先に図3を参照して説明したように、情報処理装置には複数の副OSが存在可能であり、主OS510の副OS割り込み管理部512は、各副OSについて、それぞれ割り込み許可状態であるか、割り込み禁止状態であるかの管理情報を保持し、各状態に応じた割り込み制御を実行する。
副OS割り込み管理部512の管理情報として保持する状態表の構成例を図6に示す。状態表は、図6に示すように、OS各々についての状態、すなわち、割り込み許可状態にあるか割り込み禁止状態にあるかの状態情報と、保留割り込み情報と、処理中割り込み情報とが対応付けられたデータである。副OS割り込み管理部512は、各副OSからの状態通知を受領し、受領情報に基づいて状態表を更新する。また、割り込み処理の発生、保留、配送、完了状態に応じて、各割り込みが保留状態にあるか、処理中であるかを状態表に登録し、処理の完了した割り込みについては状態表から削除する。
副OS割り込みベクタ管理部513は、副OSの割り込みベクタ領域を管理する。割り込みベクタは、割り込み要因によってそれぞれ規定されたメモリエリアのテーブルであり、例えば割り込み処理ルーチンの開始アドレス等から構成される。割り込みを受けたプロセッサは、このメモリ領域から割り込みハンドラのアドレスを調べ、そのアドレスにジャンプすることで割り込み処理が開始可能となる。副OS割り込みベクタ管理部513は、このような副OSの割り込みベクタ領域の管理を実行する
割り込み要因登録管理部514は、主OS対応の割り込み要因、副OS対応の割り込み要因についての登録情報を保持、管理する。主OS、副OSの割り込み要因は、各OSが利用するI/Oデバイスによって変更される場合があり、割り込み要因登録管理部514は、各OS対応の割り込み要因の登録、削除処理を実行する。なお、割り込み要因とは例えばキーボード、マウス等の入力手段からの割り込み処理、ネットワークI/Fからのデータ入力などの要因がある。
実行OS状態管理部515は、物理プロセッサを適用したデータ処理を実行しているOS情報の記録、管理を実行する。
割り込み配送部516は、割り込みの配送処理、すなわち、各割り込み要求について、どのプロセッサ、あるいは、プロセッサ群に割り込みを通知して実行させるかを決定する処理を実行する。
実行OS切り替え制御部517は、プロセッサを適用して実行する各種のデータ処理(プロセス,タスク)の切り替え制御を実行する。前述したように、各物理プロセッサは、論理プロセッサに対応付けられ、各OSが1つのあるいは複数のプロセッサを時分割で利用するタイムシェアリングによるデータ処理を実行しており、実行OS切り替え制御部517は、これらの各OSのプロセッサ利用のスケジューリングに従ったOS切り替え処理を実行する。
割り込み処理完了通知部518は、割り込み要求に基づく割り込み処理の実行状況の監視を行い、割り込み処理によって中断されたプロセスを実行していたOSに対して、割り込み処理の完了を通知する。割り込み処理が完了した場合は、前述したように、中断プロセスに対応するコンテキストの復元により、中断プロセスのハードウェア状態が復元されて処理が再開される。
割り込み保留制御部519は、割り込みの保留制御処理を実行する。前述したように、割り込み禁止状態、すなわちマスクされた状態にあるときに発生した割り込み要求は、マスクが解除されるまで待機させられることになる。割り込み保留制御部519は、このような待機状態の割り込みの保留管理を実行する。割り込み保留制御部519は、割り込みの保留情報を設定した状態表の更新処理を実行するとともに、状態表に保留された割り込みが登録されている場合は、副OS520に通知する処理を実行する。
次に、図7を参照して、副OSの2つの状態、すなわち「割り込み許可状態」と「割り込み禁止状態」の2状態に応じて、主OSの実行する割り込み制御処理および状態遷移について説明する。
図7において、S101〜S104は、情報処理装置における1つの副OSの状態(State)を示している。すなわち、
ステートS101:副OS起動
ステートS102:副OS初期化完了
ステートS103:副OS割り込み禁止状態
ステートS104:副OS割り込み許可状態
の4状態を示している。
さらに、副OSが、
ステートS103:副OS割り込み禁止状態
ステートS104:副OS割り込み許可状態
のいずれかにおいて、
イベントI201:主OS用割り込み発生、
イベントI202:副OS用割り込み発生
のいずれかのイベントが発生する。
副OSのS101〜S104の4状態の遷移、および副OSが、ステートS103:副OS割り込み禁止状態、あるいはステートS104:副OS割り込み許可状態にあるときに、イベントI201:主OS用割り込み発生、またはイベントI202:副OS用割り込み発生のいずれかのイベントが発生した場合の処理シーケンス1〜9について以下説明する。
[シーケンス1]
シーケンス1は、
ステートS101:副OS起動から、
ステートS102:副OS初期化完了
の状態遷移である。
この状態遷移の際に、副OSは、主OSに対して、副OSが使用する割り込み要因を通知する。図5に示す割り込み要因登録管理部514に対する通知処理として実行される。
主OSの割り込み要因登録管理部514は、副OSから通知された割り込み要因を検証し、許容される割り込み要因を副OS対応の割り込み要因として登録する。
[シーケンス2]
シーケンス2は、
ステートS102:副OS初期化完了から、
ステートS103:副OS割り込み禁止状態
の状態遷移である。
この状態遷移の際に、副OSは、主OSに対して、副OSが割り込み禁止状態であることを通知する。図5に示す副OS割り込み管理部512に対する通知処理として実行される。
主OSの副OS割り込み管理部512は、副OSから、副OSが割り込み禁止状態であることの通知を受領すると、マスク状態を管理する状態表(図6参照)に副OSが割り込み禁止状態であることを登録する。例えば、割り込みの禁止状態を(0)、割り込みの許可状態を(1)として設定した割り込みマスクレジスタを制御して、副OSが割り込み禁止状態であることを示す設定(マスク状態)とする。この設定において、ある割り込み要求があった場合、割り込み要求は、待機させられることになる。
[シーケンス3]
シーケンス3は、
ステートS102:副OS初期化完了から、
ステートS104:副OS割り込み許可状態
の状態遷移である。
この状態遷移の際に、副OSは、主OSに対して、副OSが割り込み許可状態であることを通知する。図5に示す副OS割り込み管理部512に対する通知処理として実行される。
主OSの副OS割り込み管理部512は、副OSから、副OSが割り込み許可状態であることの通知を受領すると、マスク状態を管理する状態表(図6参照)に副OSが割り込み許可状態であることを登録する。例えば、割り込みの禁止状態を(0)、割り込みの許可状態を(1)として設定した割り込みマスクレジスタを制御して、副OSが割り込み許可状態であることを示す設定(マスク解除状態)とする。この設定において、ある割り込み要求があった場合、割り込み要求は、待機させられることなく割り込み処理が実行される。
さらに、主OSは、状態表をチェックし、現時点で保留された割り込みの存在を確認する。状態表には、各OSが割り込み禁止にあるか割り込み許可にあるかのOS状態情報と、発生割り込みの保留状態情報が記録されている。割り込みの保留情報は、図5に示す割り込み保留制御部519が状態表に書き込み、また、保留割り込みがある場合は、副OSに通知する処理を実行する。
[シーケンス4]
シーケンス4は、
ステートS104:副OS割り込み許可状態
ステートS103:副OS割り込み禁止状態
の状態遷移である。
この状態遷移の際に、副OSは、主OSに対して、副OSが、割り込み許可状態から割り込み禁止状態に変更されたことを通知する。図5に示す副OS割り込み管理部512に対する通知処理として実行される。
主OSの副OS割り込み管理部512は、副OSから、副OSが、割り込み許可状態から割り込み禁止状態に変更されたとの通知を受領すると、マスク状態を管理する状態表(図6参照)の更新を行い、副OSの状態登録情報を割り込み許可状態から割り込み禁止状態に変更する。例えば、割り込みの禁止状態を(0)、割り込みの許可状態を(1)として設定した割り込みマスクレジスタを制御して、副OSが割り込み禁止状態であることを示す設定(マスク状態)とする。この設定において、ある割り込み要求があった場合、割り込み要求は、待機させられることになる。
[シーケンス5]
シーケンス5は、
ステートS103:副OS割り込み禁止状態
ステートS104:副OS割り込み許可状態
の状態遷移である。
この状態遷移の際に、副OSは、主OSに対して、副OSが、割り込み禁止状態から割り込み許可状態に変更されたことを通知する。図5に示す副OS割り込み管理部512に対する通知処理として実行される。
主OSの副OS割り込み管理部512は、副OSから、副OSが、割り込み禁止状態から割り込み許可状態に変更されたとの通知を受領すると、マスク状態を管理する状態表(図6参照)の更新を行い、副OSの状態登録情報を割り込み禁止状態から割り込み許可状態に変更する。例えば、割り込みの禁止状態を(0)、割り込みの許可状態を(1)として設定した割り込みマスクレジスタを制御して、副OSが割り込み許可状態であることを示す設定(マスク解除状態)とする。この設定において、ある割り込み要求があった場合、割り込み要求は実行される。
[シーケンス6]
シーケンス6は、
ステートS103:副OS割り込み禁止状態
において、
イベントI202:副OS用割り込み発生
が起きた場合の処理である。
主OSは、[イベントI202:副OS用割り込み発生]を検出すると、副OSの状態表を参照し、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかを判定する。この場合は、副OSは、割り込み禁止状態にある。
主OSは、副OSが割り込み禁止状態にあることを確認すると、発生した割り込みを保留として、状態表に登録する。
この時点の発生割り込み処理は、実行されず、待機状態となる。
[シーケンス7]
シーケンス7は、
ステートS104:副OS割り込み許可状態
において、
イベントI202:副OS用割り込み発生
が起きた場合の処理である。
この処理では、主OSがプロセッサを適用した処理を実行している場合と、副OSがプロセッサを適用した処理を実行している場合とで異なる処理が実行される。
(a)主OS処理実行中
主OSがプロセッサを適用した処理を実行している状態において、主OSが、[イベントI202:副OS用割り込み発生]を検出すると、副OSの状態表を参照し、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかを判定する。この場合(ステートS104)、副OSは、割り込み許可状態にある。
主OSは、副OSが割り込み許可状態にあることを確認すると、発生した割り込みの優先度を検証する。ここでは、高優先度と、低優先度のいずれかに区分されているものとする。発生割り込みが、高優先度の場合の処理と、低優先度の場合の処理とについて、それぞれ説明する。
(a−1)発生割り込みが高優先度の場合
発生した割り込み要因が高優先度の割り込みである場合は、以下の(1)〜(7)の処理が実行される。以下において、[主OS]は主OSの処理、[副OS]は副OSの処理であることを示す。
(1)[主OS]状態表(図6参照)における割り込み対応の副OSの対応データとして、発生した割り込みを処理中として登録する。
(2)[主OS]プロセッサの適用処理を主OSから副OSにスイッチする。このスイッチ処理は、図5に示す実行OS切り替え制部517の処理として実行される。
(3)[主OS]副OSに割り込みを配送する。この処理は図5に示す割り込み配送部516の処理である。
(4)[副OS]発生した割り込み処理を実行する。
(5)[副OS]割り込み処理の完了後、割り込み処理の完了を主OSに通知する。図5に示す割り込み処理完了通知部が副OSからの完了通知を受領する。
(6)[主OS]状態表に登録されている処理の完了した割り込み処理に対応するエントリを削除する。
(7)[主OS]他に高優先度の割り込み処理がないことを確認し、副OSから主OSの処理にスイッチする。このスイッチ処理は、図5に示す実行OS切り替え制部517の処理として実行される。
以上の処理によって、副OS対応の高優先度の割り込み処理は、優先的に処理が実行される。次に、発生した割り込み要因が低優先度の割り込みである場合の処理について説明する。発生した割り込み要因が低優先度の割り込みである場合は、
主OSは、状態表(図6参照)の割り込み対応の副OSの保留割り込み情報として、発生割り込みを登録する。
この時点では、発生した割り込みは実行されず、待機することになる。
(b)副OS処理実行中
副OSがプロセッサを適用した処理を実行している状態では、以下の処理が実行される。以下において、[主OS]は主OSの処理、[副OS]は副OSの処理であることを示す。
(1)[主OS]副OS用割り込み発生を検出すると、副OSの状態表を参照し、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかを判定する。この場合(ステートS104)、副OSは、割り込み許可状態にある。
(2)[主OS]副OSが割り込み許可状態にあることを確認すると、状態表(図6参照)における割り込み対応の副OSの対応データとして、発生した割り込みを処理中として登録する。
(3)[主OS]副OSに割り込みを配送する。この処理は図5に示す割り込み配送部516の処理である。
(4)[副OS]発生した割り込み処理を実行する。
(5)[副OS]割り込み処理の完了後、割り込み処理の完了を主OSに通知する。図5に示す割り込み処理完了通知部518が副OSからの完了通知を受領する。
(6)[主OS]状態表に登録されている処理の完了した割り込み処理に対応するエントリを削除する。
このように、発生した割り込みに対応する副OSがプロセッサを適用した処理を実行し、副OSが割り込み許可状態にある場合は、割り込み処理を待機させることなく実行する。
以上の処理態様をまとめると、シーケンス7、すなわち、副OS用割り込みが発生し、副OSが割り込み許可状態にある場合の割り込み処理態様は以下のようになる。
(A)主OS動作中
(A−1)発生割り込みが高優先度:割り込み処理実行
(A−2)発生割り込みが低優先度:割り込み処理保留
(B)副OS動作中
発生割り込みの優先度に関わらず割り込み処理実行
の各処理が実行されることになる。
[シーケンス8]
シーケンス8は、
ステートS103:副OS割り込み禁止状態
において、
イベントI201:主OS用割り込み発生
が起きた場合の処理である。
この処理でも、主OSがプロセッサを適用した処理を実行している場合と、副OSがプロセッサを適用した処理を実行している場合とで異なる処理が実行される。
(a)主OS処理実行中
主OSがプロセッサを適用した処理を実行している状態において、主OSが、[イベントI201:主OS用割り込み発生]を検出すると、
主OSに割り込みを配送し、発生した割り込み処理を実行する。
(b)副OS処理実行中
プロセッサによる処理を副OSが実行中の場合に、主OSが、[イベントI201:主OS用割り込み発生]を検出すると、主OSは、発生した割り込みの優先度を検証する。ここでは、高優先度と、低優先度のいずれかに区分されているものとする。発生割り込みが、高優先度の場合の処理と、低優先度の場合の処理とについて、それぞれ説明する。
(b−1)発生割り込みが高優先度の場合
発生した割り込み要因が高優先度の割り込みである場合は、以下の(1)〜(7)の処理が実行される。以下において、[主OS]は主OSの処理、[副OS]は副OSの処理であることを示す。
(1)[主OS]プロセッサの適用処理を副OSから主OSにスイッチする。このスイッチ処理は、図5に示す実行OS切り替え制部517の処理として実行される。
(2)[主OS]発生した割り込み処理を実行する。
(3)[主OS]プロセッサ適用処理を主OSから副OSの処理にスイッチする。このスイッチ処理は、図5に示す実行OS切り替え制部517の処理として実行される。
以上の処理によって、主OS対応の高優先度の割り込み処理は、優先的に処理が実行される。次に、発生した割り込み要因が主OS対応であるが低優先度の割り込みである場合の処理について説明する。発生した割り込み要因が低優先度の割り込みである場合は、
主OSは、状態表(図6参照)の割り込み対応の主OSの保留割り込み情報として、発生割り込みを登録する。
この時点では、発生した割り込みは実行されず、待機することになる。
[シーケンス9]
シーケンス9は、
ステートS104:副OS割り込み許可状態
において、
イベントI201:主OS用割り込み発生
が起きた場合の処理である。
この処理は、上述のシーケンス8の処理と全く同様の処理となる。すなわち、主OS対応の割り込み処理が発生した場合は、副OSの状態、すなわち副OSが割り込み許可状態にあるか割り込み禁止状態にあるかに関わらず、同一の処理が実行される。
主OS対応の割り込み処理が発生した場合(シーケンス8,9)の処理態様をまとめると、以下のようになる。
(A)主OS動作中
発生割り込みの優先度に関わらず割り込み処理実行
(B)副OS動作中
(B−1)発生割り込みが高優先度:割り込み処理実行
(B−2)発生割り込みが低優先度:割り込み処理保留
以上の態様で、各処理が実行されることになる。
図8にプロセッサを適用した処理を実行中のOS(動作中OS)と、発生した割り込みの優先度(高低)、割り込み配送先OS、割り込み配送先OSの割り込み許可状態との対応をまとめた図を示す。状態として設定可能なシナリオは図に示すように16通りある。
本発明の構成では、主OSがすべての副OSの状態情報、すなわち副OSが、
[割り込み許可状態]にあるか、
[割り込み禁止状態]にあるか、
の状態情報(図7に示す状態表)を有し、これを管理する。
副OS対応の割り込み処理に対する対応と、主OS対応の割り込み処理に対する対応をまとめると以下のようになる。
[副OS対応の割り込み処理に対する対応]
副OS対応の割り込みが発生した場合には、
状態表を参照し、副OSが割り込み禁止状態にある場合は、発生した割り込みを保留割り込みとして、状態表に登録する。(シーケンス6)
また、状態表を参照し、副OSが割り込み許可状態にある場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様で割り込み処理の保留処理、または実行処理が行われる(シーケンス7)。
(A)主OS動作中
(A−1)発生割り込みが高優先度:割り込み処理実行
(A−2)発生割り込みが低優先度:割り込み処理保留
(B)副OS動作中
発生割り込みの優先度に関わらず割り込み処理実行
の各処理が実行されることになる。
[主OS対応の割り込み処理に対する対応]
主OS対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様で割り込み処理の保留処理、または実行処理が行われる(シーケンス8,9)。
(A)主OS動作中
発生割り込みの優先度に関わらず割り込み処理実行
(B)副OS動作中
(B−1)発生割り込みが高優先度:割り込み処理実行
(B−2)発生割り込みが低優先度:割り込み処理保留
以上の態様で、各処理が実行されることになる。
このように、本発明の構成では、主OSがすべての副OSの状態情報、すなわち副OSが、[割り込み許可状態]にあるか、[割り込み禁止状態]にあるかの状態情報を保持し、この状態情報と、発生した割り込みの態様、すなわち、優先度と、主OS対応の割り込みであるか副OS対応の割り込みであるかの情報に基づいて、割り込みの実行、または保留を制御する。
本発明の構成は、このように、副OSに割り込みマスクの設定権限を与えず、副OSから主OSに対して、副OSが割り込み許可状態にあるか禁止状態にあるかの通知を実行し、主OSが、これらの通知情報に基づいて、副OSの割り込みマスクの制御を行う構成としたので、副OS独自のマスク制御によって、必要な割り込み処理が保留させられてしまうといった不具合を発生させることなく、主OSの意図に沿って、全ての割り込み処理の制御が可能となる。また、主OSにおける副OS割り込みベクタ管理部513(図5参照)において、副OSの割り込みベクタ領域を管理する構成としたので、個々のOSによる割り込みベクタ管理と異なり割り込みベクタの共有が可能となる。前述したように、割り込みベクタは、割り込み要因によってそれぞれ規定されたメモリエリアのテーブルであり、例えば割り込み処理ルーチンの開始アドレス等から構成され、割り込みを受けたプロセッサは、このメモリ領域から割り込みハンドラのアドレスを調べ、そのアドレスにジャンプすることで割り込み処理が開始可能となるベクタであるが、この割り込みベクタを主OSと、全ての副OSとで共有することが可能となり、メモリ領域の削減が可能となる。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の構成によれば、複数のオペレーションシステム(OS)が同時に動作するシステムにおいて、割り込み処理制御を実行する主OSを設定して、主OSによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理が実現される。
本発明の構成によれば、割り込み処理制御を実行する主OSを設定し、主OS以外の副OSに割り込みマスクの設定権限を与えず、副OSから主OSに対して、副OSが割り込み許可状態にあるか禁止状態にあるかの通知を実行し、主OSが、これらの通知情報に基づいて、副OSの割り込みマスクの制御を行う構成としたので、副OS独自のマスク制御によって、必要な割り込み処理が保留させられてしまうといった不具合を発生させることなく、主OSの意図に沿って、全ての割り込み処理の制御が可能となり、必要な割り込み処理を優先的に処理させることが可能となる。
また、本発明の構成によれば、主OSに副OS割り込みベクタ管理部を設定し、主OSでまとめて副OSの割り込みベクタ領域を管理する構成としたので、個々のOSによる割り込みベクタ管理と異なり割り込みベクタの共有が可能となり、メモリ領域の削減が可能となる。
本発明の情報処理装置の構成例を示す図である。 プロセッサモジュールの構成例を示す図である。 本発明の情報処理装置のオペレーションシステム構成を説明する図である。 タイムシェアリングによる論理プロセッサと物理プロセッサとの対応付け処理について説明する図である。 本発明の情報処理装置における主OSの機能構成について説明する図である。 本発明の情報処理装置における主OSの管理するOS状態情報および割り込み処理状態情報からなる状態表を示す図である。 副OSの状態、および発生割り込みの態様に応じた処理シーケンスについて説明する図である。 プロセッサを適用した処理を実行中のOS(動作中OS)と、発生した割り込みの優先度(高低)、割り込み配送先OS、割り込み配送先OSの割り込み許可状態との対応をまとめた図である。
符号の説明
101 プロセッサモジュール
102 グラフィックエンジン
103 メインメモリ(DRAM)
104 ROM
105 ブリッジ
106 コントローラ
107 メモリカード
111 ホストバス
112 外部バス
113 インタフェース
121 入力部
122 出力部
123 HDD
124 ドライブ
125 接続ポート
126 通信部
127 リムーバブル記録媒体
128 外部接続機器
200 プロセッサモジュール
201 メインプロセッサグループ
202〜20n サブプロセッサグループ
301 主OS
302,303 副OS(ゲストOS)
304 副OS(システム制御OS)
305,306 ゲストOSアプリケーション
307 システム制御プログラム
510 主OS
511 割り込み優先度管理部
512 副OS割り込み管理部
513 副OS割り込みベクタ管理部
514 割り込み要因登録管理部
515 実行OS状態管理部
516 割り込み配送部
517 実行OS切り替え制御部
518 割り込み処理完了通知部
519 割り込み保留制御部
520 副OS
530 割り込み

Claims (4)

  1. 複数のオペレーティングシステム(OS)に対応するデータ処理を実行する情報処理装置であり、
    前記複数のOSは、割り込み処理の制御を実行する主OSと、その他の副OSとによって構成され、
    前記主OSは、前記副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの副OSの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行する構成であり、
    副OS対応の割り込みが発生した場合、
    前記状態表に基づいて副OSが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、
    前記状態表に基づいて副OSが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
    (a)主OS処理実行中の場合、
    (a1)発生割り込みが高優先度の場合は、割り込み処理を実行、
    (a2)発生割り込みが低優先度の場合は、割り込み処理を保留、
    (b)副OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
    上記(a1),(a2),(b)の各処理態様での割り込み制御を実行し、
    主OS対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
    (c)主OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
    (d)副OS処理実行中の場合、
    (d1)発生割り込みが高優先度の場合は、割り込み処理を実行、
    (d2)発生割り込みが低優先度の場合は、割り込み処理を保留、
    上記(c),(d1),(d2)の各処理態様での割り込み制御を実行する構成を有することを特徴とする情報処理装置。
  2. 前記主OSは、
    前記状態表に登録された副OSの割り込み許可状態と割り込み禁止状態の遷移に応じて、保留中の割り込み処理の開始制御を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記副OSは、前記主OSに対して、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を通知する構成であり、
    前記主OSは、副OSからの通知情報に基づいて、副OSの状態情報の更新処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  4. 複数のオペレーティングシステム(OS)に対応するデータ処理における割り込み処理制御方法であり、
    割り込み処理制御を実行する主OSにおいて、主OS以外の副OSから、副OSが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を受領するステップと、
    割り込み処理の発生を検出するステップと、
    前記状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表を生成、更新するステップと、
    副OS対応の割り込みが発生した場合、
    前記状態表に基づいて副OSが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、
    前記状態表に基づいて副OSが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
    (a)主OS処理実行中の場合、
    (a1)発生割り込みが高優先度の場合は、割り込み処理を実行、
    (a2)発生割り込みが低優先度の場合は、割り込み処理を保留、
    (b)副OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
    上記(a1),(a2),(b)の各処理態様での割り込み制御を実行するステップと、
    主OS対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のOSが主OSか副OSかに応じて下記の処理態様、すなわち、
    (c)主OS処理実行中の場合、発生割り込みの優先度に関わらず割り込み処理を実行、
    (d)副OS処理実行中の場合、
    (d1)発生割り込みが高優先度の場合は、割り込み処理を実行、
    (d2)発生割り込みが低優先度の場合は、割り込み処理を保留、
    上記(c),(d1),(d2)の各処理態様での割り込み制御を実行するステップと、
    を有することを特徴とする割り込み処理制御方法。
JP2004283529A 2004-09-29 2004-09-29 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム Expired - Fee Related JP4345630B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004283529A JP4345630B2 (ja) 2004-09-29 2004-09-29 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
US10/580,848 US8584125B2 (en) 2004-09-29 2005-09-26 Apparatuses, methods, and computer-readable media for interrupt control
PCT/JP2005/017646 WO2006035728A1 (ja) 2004-09-29 2005-09-26 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
CNB2005800014874A CN100549964C (zh) 2004-09-29 2005-09-26 信息处理设备、中断处理控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004283529A JP4345630B2 (ja) 2004-09-29 2004-09-29 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム

Publications (3)

Publication Number Publication Date
JP2006099331A JP2006099331A (ja) 2006-04-13
JP2006099331A5 JP2006099331A5 (ja) 2007-10-25
JP4345630B2 true JP4345630B2 (ja) 2009-10-14

Family

ID=36118873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004283529A Expired - Fee Related JP4345630B2 (ja) 2004-09-29 2004-09-29 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US8584125B2 (ja)
JP (1) JP4345630B2 (ja)
CN (1) CN100549964C (ja)
WO (1) WO2006035728A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2075696A3 (en) * 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
GB2454817B (en) * 2008-01-10 2012-07-04 Ibm Method and device for interrupt handling in a logically partitioned data processing system
CN101828189A (zh) * 2008-07-22 2010-09-08 Lsi公司 用于中断写入恢复的数据存储方法、设备和系统
JP4877317B2 (ja) * 2008-12-16 2012-02-15 日本電気株式会社 情報処理装置、割り込み制御方法
JP5758914B2 (ja) * 2010-12-21 2015-08-05 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム及び仮想計算機システム制御方法
US8695010B2 (en) 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
GB2517493A (en) 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
US9841993B2 (en) * 2013-12-27 2017-12-12 Hitachi, Ltd. Realtime hypervisor with priority interrupt support
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
CN105786607B (zh) * 2016-03-24 2019-11-12 宇龙计算机通信科技(深圳)有限公司 一种多系统的冻结与唤醒方法及装置
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
EP3663916A4 (en) * 2017-08-02 2020-08-19 FeliCa Networks, Inc. INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
JP6814756B2 (ja) * 2018-02-08 2021-01-20 日立オートモティブシステムズ株式会社 ハイパーバイザ、演算装置
CN112286847B (zh) * 2020-11-05 2023-03-10 成都菁蓉联创科技有限公司 一种提升系统外部中断响应速度的方法、装置和控制器
WO2024018515A1 (ja) * 2022-07-19 2024-01-25 三菱電機株式会社 プログラマブルロジックコントローラ、シーケンス制御システム、及び活性状態制御プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674038A (en) * 1984-12-28 1987-06-16 International Business Machines Corporation Recovery of guest virtual machines after failure of a host real machine
JP2629278B2 (ja) * 1988-06-30 1997-07-09 株式会社日立製作所 仮想計算機システム
JP3138985B2 (ja) * 1989-03-14 2001-02-26 富士通株式会社 仮想計算機
US5276815A (en) 1988-10-24 1994-01-04 Fujitsu Limited Input and output processing system for a virtual computer
JPH06250850A (ja) * 1993-02-26 1994-09-09 Hitachi Ltd 入出力割込み要因の処理方法
JP3073903B2 (ja) 1995-03-06 2000-08-07 株式会社日立製作所 情報処理装置及びそのi/o割込み制御方法
JP3196004B2 (ja) * 1995-03-23 2001-08-06 株式会社日立製作所 障害回復処理方法
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management
AU2002231073A1 (en) * 2000-12-21 2002-07-01 Connectix Corporation Logical substitution of processor control in an emulated computing environment
JP2003345612A (ja) * 2002-05-28 2003-12-05 Sony Corp 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
US7281075B2 (en) 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7788669B2 (en) * 2003-05-02 2010-08-31 Microsoft Corporation System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory

Also Published As

Publication number Publication date
US8584125B2 (en) 2013-11-12
CN1906583A (zh) 2007-01-31
JP2006099331A (ja) 2006-04-13
WO2006035728A1 (ja) 2006-04-06
US20080046621A1 (en) 2008-02-21
CN100549964C (zh) 2009-10-14

Similar Documents

Publication Publication Date Title
JP4345630B2 (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP4322232B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US7788669B2 (en) System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
JP4982971B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
TWI417790B (zh) 異質架構中之邏輯分割以及虛擬化
EP1691287A1 (en) Information processing device, process control method, and computer program
US20070169126A1 (en) Multi-processor system and program for causing computer to execute controlling method of multi-processor system
JP2000330806A (ja) 計算機システム
JP2013506179A (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
US20100332722A1 (en) Virtual machine system and control method thereof
JP2006127461A (ja) 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
WO2008062647A1 (en) Multiprocessor system, system configuration method in multiprocessor system, and program thereof
JP2007220086A (ja) 入出力制御装置、入出力制御システム及び入出力制御方法
JP5458998B2 (ja) 仮想マシンシステムおよび仮想マシン管理方法
JP2010529533A (ja) 複数のプロセッサを備えるシステム、ならびにその動作方法
JP2019169081A (ja) 情報処理装置、情報処理方法、プログラム
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
JP2007035066A (ja) マルチos構成方法
JP5328410B2 (ja) 被起動オペレーティングシステム(os)動作計算機、計算機のos起動方法およびos起動プログラム
US7797473B2 (en) System for executing system management interrupts and methods thereof
US7412597B2 (en) Computer system and booting method thereof
WO2023241307A1 (zh) 管理线程的方法及装置
WO2017012339A1 (zh) 资源管理方法及装置
JP2008015720A (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090527

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: 20090623

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: 20090706

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

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