JP6615726B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP6615726B2
JP6615726B2 JP2016182171A JP2016182171A JP6615726B2 JP 6615726 B2 JP6615726 B2 JP 6615726B2 JP 2016182171 A JP2016182171 A JP 2016182171A JP 2016182171 A JP2016182171 A JP 2016182171A JP 6615726 B2 JP6615726 B2 JP 6615726B2
Authority
JP
Japan
Prior art keywords
interrupt
unit
core
real
priority
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.)
Active
Application number
JP2016182171A
Other languages
English (en)
Other versions
JP2018045638A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016182171A priority Critical patent/JP6615726B2/ja
Priority to US15/438,222 priority patent/US10474494B2/en
Priority to EP17157495.7A priority patent/EP3296869A1/en
Publication of JP2018045638A publication Critical patent/JP2018045638A/ja
Application granted granted Critical
Publication of JP6615726B2 publication Critical patent/JP6615726B2/ja
Active 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Description

本発明の実施形態は情報処理装置、情報処理方法及びプログラムに関する。
単一の計算機上で複数のOS(Operating System)を実行させるための仮想化技術が従来から知られている。例えば複数のOSの実行を制御するソフトウェアとしてハイパーバイザ(仮想マシンモニタ)が広く利用されている。また、処理のリアルタイム性が要求される自動車のエンジン制御及びFA(Factory Automation)機器などでは、リアルタイムタスクの実行制御に特化したリアルタイムOSが広く利用されている。
特開2009−176139号公報
しかしながら従来の技術では、リアルタイムタスクが複数のOSに分散して存在する場合に、処理のリアルタイム性を効率的に担保することが難しかった。
実施形態の情報処理装置は、複数のコアを有するプロセッサを備える情報処理装置である。実施形態の情報処理装置は、受付部と優先OS設定部と切替部と選択部と処理部とを備える。受付部は、割込みを、前記コア毎に受け付ける。優先OS設定部は、前記複数のコアのそれぞれに、コアで優先される優先OSを設定する。切替部は、前記割込みが入力される第1のOSが、前記割込みが発生した前記優先OSであり、かつ、前記割込みが発生したコアで実行中の第2のOSが、前記優先OSでない場合、前記第2のOSを、前記第1のOSに切り替える。選択部は、前記コアで実行されているOSが前記優先OSであり、かつ、非リアルタイムタスクよりも処理の優先度が高いリアルタイムタスクが実行可能状態である場合、前記リアルタイムタスクを選択し、前記コアで実行されているOSが前記優先OSであり、かつ、前記リアルタイムタスクが実行可能状態でない場合、前記非リアルタイムタスクを選択する。処理部は、前記選択部により選択された前記リアルタイムタスク、または、前記非リアルタイムタスクを処理する。
第1実施形態の情報処理装置のシステム構成の例を示す図。 第1実施形態の情報処理装置の機能構成の例を示す図。 第1実施形態の割込み入力先OS情報の例を示す図。 第1実施形態の優先OS情報の例を示す図。 第1実施形態の割込みの発生例を示すシーケンス図。 第1実施形態のタスク情報の例を示す図。 第1実施形態のタスク起動時の処理の例を示すフローチャート。 第1実施形態の割込み発生時の処理の例を示すフローチャート。 図7Aのフローチャートに従って処理された割込みの例を示す図。 第1実施形態のタスクの選択処理の例を示すフローチャート。 第1実施形態の変形例の情報処理装置の機能構成の例を示す図。 第2実施形態の情報処理装置の機能構成の例を示す図。 第2実施形態のOS間通信要求の処理の例を示すフローチャート。 図11Aのフローチャートに従って処理されたOS間通信要求の例を示す図。 第3実施形態の情報処理装置の機能構成の例を示す図。 第3実施形態の変形例の情報処理装置の機能構成の例を示す図。 第1〜第3実施形態の情報処理装置のハードウェア構成の例を示す図。
以下に添付図面を参照して、情報処理装置、情報処理方法及びプログラムの実施形態を詳細に説明する。
(第1実施形態)
第1実施形態の情報処理装置100は、複数のコアを有するプロセッサを備える。プロセッサは、例えばCPU(Central Processing Unit)やMPU(Micro Processing Unit)である。第1実施形態の説明では、簡単のため、コアが2つの場合について説明する。なおコアが1つの場合、及び、コアが3つ以上の場合でも同様である。
はじめに第1実施形態の情報処理装置100のシステム構成の例について説明する。
[情報処理装置のシステム構成]
図1は第1実施形態の情報処理装置100のシステム構成の例を示す図である。第1実施形態の情報処理装置100では、ハードウェア30上で動作する仮想マシンモニタ20が、OS(Operating System)1及びOS2を並行して動作させる。以下、OS1及びOS2を区別しない場合は、単にOSという。仮想マシンモニタ20は、ハードウェア30からのハードウェア割込み、OS1からのソフトウェア割込み、及び、OS2からのソフトウェア割込みに応じて、コア上で実行されるOSを切り替える。
次に第1実施形態の情報処理装置100の機能構成の例について説明する。
[情報処理装置の機能構成]
図2は第1実施形態の情報処理装置100の機能構成の例を示す図である。第1実施形態の情報処理装置100の各機能は、OS1、OS2、仮想マシンモニタ20及びハードウェア30により実現される。なお図2では、OS2により実現される機能は、OS1により実現される機能と同じなので、OS2は省略している。
OS1は、受付部11、選択部12、処理部13、設定部14、検出部15、要求部16及びタスク情報記憶部101を備える。OS1の各機能は、例えばCPUがプログラムを実行することにより実現される。
仮想マシンモニタ20は、受付部21、判定部22、切替部23、設定部24、判定条件記憶部201及びコンテキスト記憶部202を備える。仮想マシンモニタ20の各機能は、例えばCPUがプログラムを実行することにより実現される。
ハードウェア30は、割込み通知部31を備える。割込み通知部31は、例えばCPUにより実現される。
割込み通知部31は、割込みの発生元から、割込みを受け付けると、当該割込みを受付部21に通知する。なお割込み通知部31は、割込みをコア毎に受け付ける。
受付部21は、割込み通知部31から割込みを受け付けると、当該割込みに応じてOSを切り替えるか否かを判定する判定要求を判定部22に入力する。
判定部22は、受付部21から判定要求を受け付けると、判定条件記憶部201の判定条件を参照して、OSを切り替えるか否かを判定する。判定条件は、割込み入力先OS情報及び優先OS情報を含む。
<割込み入力先OS情報>
図3Aは第1実施形態の割込み入力先OS情報の例を示す図である。第1実施形態の割込み入力先OS情報は、割込みフィールド及び入力先OSフィールドを有するテーブルである。割込みフィールドには、割込みの種類が記憶される。入力先OSフィールドには、割込みの入力先のOSの種類が記憶される。図3Aの例は、割込みAが入力されるOSがOS1であり、割込みBが入力されるOSがOS2である場合を示す。
<優先OS情報>
図3Bは第1実施形態の優先OS情報の例を示す図である。第1実施形態の優先OS情報は、コアフィールド及び優先OSフィールドを有するテーブルである。コアフィールドには、CPUのコアの種類が記憶される。図3Bの例では、コアの種類がCPUコア番号により表されている。優先OSフィールドには、コアで優先されるOSの種類が記憶される。図3Bの例は、コア1で優先されるOSがOS2であり、コア2で優先されるOSがOS1である場合を示す。
図2に戻り、具体的には、判定部22は、割込みが入力されるOSが、割込みが発生したコアで優先される優先OSであり、かつ、当該コアで実行中のOSが、当該コアの優先OSでない場合、OSを切り替える決定をする。
<OSを切り替える場合>
受付部21は、OSを切り替える場合、OSの切り替え要求を切替部23に入力する。
切替部23は、コアで動作させるOSの切り替え(ディスパッチ)を行う。具体的には、切替部23は、OSをディスパッチするときに、現在実行中のOSのレジスタ情報等のコンテキストをコンテキスト記憶部202に記憶する。そして切替部23は、切り替え先のOSのコンテキストをコンテキスト記憶部202から読み出す(復帰させる)。
切替部23は、受付部21から、OSの切り替え要求を受け付けると、上述のコンテキストの記憶と復帰とを行うとともに、切り替え後のOSのプログラムを実行する。これにより切替部23はOSを切り替える。
<OSを切り替えない場合>
受付部21は、割込みが実行中のOS向けである理由により、OSを切り替えない場合、当該割込みを、実行中のOSの受付部11に入力する。また受付部21は、割込みが発生したコアで優先されないOSに入力される割込みである理由により、OSを切り替えない場合、当該割込みを保留(ペンディング)し、実行中のOSは、処理を継続する。
<実行中のOSから切り替え要求を受け付けた場合>
また、受付部21は、実行中のOSの要求部16から、切り替え要求を受け付けた場合、切り替え先のOSに入力される割込みが保留されているか否かを判定する。切り替え先のOSに入力される割込みが保留されている場合、受付部21は、OSの切り替え要求を切替部23に入力する。切り替え先のOSに入力される割込みが保留されていない場合、切り替え先のOSが切り替え前に実行していた場所から実行を再開する。
次に割込みの発生例と各コアで実行されるOSの例について説明する。
<割込みの発生例と各コアで実行されるOSの例>
図4は第1実施形態の割込みの発生例を示すシーケンス図である。図4のシーケンス図に示すように、当初、CPUコア番号1の第1コアでOS1が実行され、CPUコア番号2の第2コアでOS2が実行されているとする。
はじめに、割込み通知部31が、第1コアに対する割込みAを受付部21に通知する(ステップS1)。次に、受付部21は、割込みAがOS1向け割込みであり、かつ、第1コアでOS1が既に実行中であるので、割込みAをOS1の受付部11に入力する(ステップS2)。
次に、割込み通知部31が、第2コアに対する割込みAを受付部21に通知する(ステップS3)。次に、切替部23が、割込みAが入力されるOS1が、割込みAが発生した第2コアで優先される優先OSであり、かつ、第2コアで実行中のOS2が、第2コアの優先OSでないので、OS2をOS1に切り替える(ステップS4)。次に、受付部21が、割込みAをOS1の受付部11に入力する(ステップS5)。
次に、割込み通知部31が、第1コアに対する割込みBを受付部21に通知する(ステップS6)。次に、切替部23が、割込みBが入力されるOS2が、割込みBが発生した第1コアで優先される優先OSであり、かつ、第1コアで実行中のOS1が、第1コアの優先OSでないので、OS1をOS2に切り替える(ステップS7)。次に、受付部21が、割込みBをOS2の受付部11に入力する(ステップS8)。
次に、割込み通知部31が、第2コアに対する割込みBを受付部21に通知する(ステップS9)。次に、受付部21は、割込みBが入力されるOS2が、割込みBが発生した第2コアで優先される優先OSでなく、かつ、第2コアで実行中のOS1が、第2コアの優先OSであるので、割込みBを保留する(ステップS10)。
次に、割込み通知部31が、第1コアに対する割込みAを受付部21に通知する(ステップS11)。次に、受付部21は、割込みAが入力されるOS1が、割込みAが発生した第1コアで優先される優先OSでなく、かつ、第1コアで実行中のOS2が、第1コアの優先OSであるので、割込みAを保留する(ステップS12)。
次に、割込み通知部31が、第2コアに対する割込みAを受付部21に通知する(ステップS13)。次に、受付部21は、割込みAがOS1向け割込みであり、かつ、第2コアでOS1が既に実行中であるので、割込みAをOS1の受付部11に入力する(ステップS14)。
次に、ステップS12の処理により保留されていた割込みAが、例えば第1コアで動作するOS2で実行されるタスクがなくなった場合などの契機で、OS1が第1コアで再度実行された際に、OS1の受付部11に入力される(ステップS15)。同様に、ステップS10の処理により保留されていた割込みBが、例えば第2コアで動作するOS1で実行されるタスクがなくなった場合などの契機で、OS2が第2コアで再度実行された際に、OS2の受付部11に入力される(ステップS16)。
図2に戻り、設定部24は、上述の割込み入力先OS情報(図3A参照)、及び、上述の優先OS情報(図3B参照)を設定する。設定部24は、例えば情報処理装置100の起動時に、受付部21により、リセット割込みが受け付けられた契機で動作してもよい。また例えば、設定部24は、受付部21により、OS側から明示的に設定要求が受け付けられた契機で動作してもよい。
OS1の受付部11は、仮想マシンモニタ20から、割込みを受け付けると、当該割込みを受け付けたこと示す通知を選択部12に入力する。
選択部12は、受付部11から通知を受け付けると、タスク情報記憶部101に記憶されているタスク情報を参照する。そして選択部12は、処理部13で次に処理させるタスクを選択する。すなわち選択部12は、タスクの処理順序を決定するスケジューラである。
<タスク情報の例>
図5は第1実施形態のタスク情報の例を示す図である。第1実施形態のタスク情報は、タスク名、種類、割当(アフィニティ)、及び、状態を含む。タスク名はタスクの名称である。種類はタスクの種類である。割当は、タスクを割り当てるコアを示す。状態はタスクの状態を示す。
図5のタスク情報は、OS1のタスク情報の例を示す。なおOS1が優先して実行されるコアは第2コアである(図3B参照)。
図5の例では、例えばタスクAの種類はリアルタイムタスクである。リアルタイムタスクは、非リアルタイムタスクよりも処理の優先度が高いタスクである。またタスクAの割当は第2コアである。またタスクAの状態は実行可能である。
また例えば、タスクBの種類はリアルタイムタスクである。またタスクBの割当は第2
コアである。またタスクBの状態はI/O待ちである。
また例えば、タスクCの種類は非リアルタイムタスクである。非リアルタイムタスクは、リアルタイムタスクよりも処理の優先度が低いタスクである。またタスクCの割当は、第1コアまたは第2コアである。またタスクCの状態は実行である。すなわちタスクCが現在、実行中のタスクであることを示す。
図2に戻り、具体的には、選択部12は、例えば後述の図8のフローチャートにより示されるアルゴリズムにより、タスクを選択する。そして選択部12は、選択されたタスクを処理部13に入力する。これによりタスクが処理部13により処理される。なお選択部12は、EDF(Earliest Deadline First)スケジューリングのような一般に知られたリアルタイムスケジューリングを併用してもよい。
また選択部12は、タスク情報の設定要求を設定部14に入力する。
<タスク情報の設定>
設定部14は、選択部12から設定要求を受け付けると、上述のタスク情報を設定する。
タスクの種類は、例えばタスクの起動時に静的に設定されていてもよい。また例えば、タスクの種類は、選択部12が、処理部13から、タスクの種類を示す通知を受け付けた契機で設定されてもよい。
設定部14は、リアルタイムタスクの割当については、当該リアルタイムタスクを実行するOSが、優先OSとして設定されているコアに割り付ける。一方、設定部14は、非リアルタイムタスクの割当については、動作させるコアを限定しなくてもよいし、当該非リアルタイムタスクを実行するOSが、優先OSとして設定されていないコアに割り付けてもよい。一般に、タスクを実行するコアを固定する機能は、アフィニティ機能として多くのOSに備わっており、例えば当該アフィニティ機能を利用することにより、設定部14を実現することができる。
タスクの状態は、設定部14が選択部12から随時、タスクの状態の設定要求を受け付けることにより、例えばI/O待ち状態→実行可能状態→実行状態のように設定される。
また選択部12は、実行可能状態のタスクがないアイドル状態の場合、実行可能状態のタスクがないことを検出部15に通知する。
検出部15は、選択部12から通知を受け付けると、OSの切り替え要求を要求部16に入力する。要求部16は、検出部15から切り替え要求を受け付けると、例えばソフトウェア割り込み等を利用して、当該切り替え要求を仮想マシンモニタ20の受付部21に入力する。検出部15及び要求部16の機能により、アイドル状態の場合に、OSを切り替えることができるので、効率的にCPUコアを利用することができる。
次に第1実施形態の情報処理方法について説明する。
<タスク起動時の処理>
図6は第1実施形態のタスク起動時の処理の例を示すフローチャートである。はじめに、選択部12が、起動されたタスクがリアルタイムタスクか否かを判定する(ステップS21)。
起動されたタスクがリアルタイムタスクである場合(ステップS21、Yes)、設定部14が、当該タスクを自OSが優先されるコアに割り当てる(ステップS22)。
起動されたタスクがリアルタイムタスクでない場合(ステップS21、No)、すなわち起動されたタスクが非リアルタイムタスクである場合、設定部14は、当該タスクを任意のコアに割り当てる(ステップS23)。なおステップS23の処理は、設定部14が、非リアルタイムタスクを自OSが優先されないコアに割り当てる処理に変更してもよい。
<割込み発生時の処理>
図7Aは第1実施形態の割込み発生時の処理の例を示すフローチャートである。はじめに、受付部21が、割込み通知部31から割込みを受け付けることにより、当該割込みをキャッチする(ステップS31)。
次に、判定部22が、ステップS31の処理により受け付けた割込みの入力先OSが、当該割込みが発生したコアの優先OSであるか否かを判定する(ステップS32)。具体的には、判定部22は、割込み入力先OS情報(図3A参照)から、割込みの入力先OSを特定する。そして判定部22は、優先OS情報(図3B参照)から、割込みの入力先OSが、当該割込みが発生したコアの優先OSであるか否かを判定する。
入力先OSが優先OSである場合(ステップS32、Yes)、判定部22は、当該入力先OSが実行中であるか否かを判定する(ステップS33)。入力先OSが実行中である場合(ステップS33、Yes)、受付部21が、ステップS31の処理により受け付けた割込みを、実行中のOSの受付部11に入力する(ステップS35)。
入力先OSが実行中でない場合(ステップS33、No)、切替部23が、現在実行中のOSを、ステップS31の処理により受け付けた割込みの入力先OSに切り替える(ステップS34)。次に、受付部21が、ステップS31の処理により受け付けた割込みを、切り替え後のOSの受付部11に入力する(ステップS35)。
一方、入力先OSが優先OSでない場合(ステップS32、No)、判定部22は、当該入力先OSが実行中であるか否かを判定する(ステップS36)。入力先OSが実行中である場合(ステップS36、Yes)、受付部21が、ステップS31の処理により受け付けた割込みを、実行中のOSの受付部11に入力する(ステップS35)。
入力先OSが実行中でない場合(ステップS36、No)、受付部21は、ステップS31の処理により受け付けた割込みを保留し、現在、実行されているOSが処理を継続する(ステップS37)。
上述のステップS35の処理により割込みがOSに入力された後、当該OSの選択部12が実行される。なお選択部12の処理は、図8のフローチャートを参照して後述する。
<割込みの処理例>
図7Bは、図7Aのフローチャートに従って処理された割込みの例を示す図である。
例えば、割込みAが発生したコアのCPUコア番号が1であり、かつ、割込みAの発生直前に実行していたOSがOS1の場合、OSの切り替えが行われずに、割込みAがOS1に入力される。一方、割込みAが発生したコアのCPUコア番号が1であり、かつ、割込みAの発生直前に実行していたOSがOS2の場合、OSの切り替えが行われずに、OS1に対する割込みAの入力が保留される。
また例えば、割込みBが発生したコアのCPUコア番号が1であり、かつ、割込みBの発生直前に実行していたOSがOS1の場合、OS1がOS2に切り替えられた後、割込みBがOS2に入力される。一方、割込みBが発生したコアのCPUコア番号が1であり、かつ、割込みBの発生直前に実行していたOSがOS2の場合、OSの切り替えが行われずに、割込みBがOS2に入力される。
<タスクの選択処理>
図8は第1実施形態のタスクの選択処理の例を示すフローチャートである。選択部12の処理は、例えば受付部11により割込みが受け付けられた場合に実行される。また例えば、選択部12の処理は、処理部13から明示的に選択部12の動作要求を受け付けた場合に実行される。
はじめに、選択部12は、選択部12が実行されるコアが、当該選択部12を備える自OSの実行が優先されるコアであるか否かを判定する(ステップS41)。
自OSの実行が優先されるコアである場合(ステップS41、Yes)、選択部12は、リアルタイムタスクが実行可能状態であるか否かを判定する(ステップS42)。リアルタイムタスクが実行可能状態である場合(ステップS42、Yes)、選択部12は、当該リアルタイムタスクを選択する(ステップS43)。次に、選択部12は、ステップS43の処理により選択されたリアルタイムタスクに切り替える(ステップS44)。
一方、自OSの実行が優先されるコアでない場合(ステップS41、No)、または、リアルタイムタスクが実行可能状態でない場合(ステップS42、No)、選択部12は、非リアルタイムタスクが実行可能状態であるか否かを判定する(ステップS45)。
非リアルタイムタスクが実行可能状態である場合(ステップS45、Yes)、選択部12は、当該非リアルタイムタスクを選択する(ステップS46)。次に、選択部12は、ステップS46の処理により選択された非リアルタイムタスクに切り替える(ステップS44)。
非リアルタイムタスクが実行可能状態でない場合(ステップS45、No)、すなわち検出部15により自OSで実行されるタスクがないアイドル状態であることが検出された場合、要求部16が、ソフトウェア割込み等を利用して、OSの切り替え要求を受付部21に入力する(ステップS47)。
次に、切替部23が、切り替え先のOSに入力するためにペンディングされた割込みがあるか否かを判定する(ステップS48)。
ペンディングされた割込みがない場合(ステップS48、No)、切替部23が、OSを切り替え、切り替え先のOSが、切り替え前に実行していた場所から実行を再開する(ステップS49)。
ペンディングされた割込みがある場合(ステップS48、Yes)、切替部23が、OSを切り替える(ステップS50)。次に、受付部21が、切り替え後のOSの受付部11に、割込みを入力する(ステップS51)。次に、切り替え後のOSの選択部12が、タスクの選択処理を実行する(ステップS52)。
以上説明したように、第1実施形態の情報処理装置100によれば、優先度の高いコアに各OSのリアルタイムタスクを割り付けることができ、各OSにリアルタイムタスクが混在する場合においても、ハイパーバイザが各OSが持つタスクのアフィニティ情報を参照することなく、リアルタイム性の担保が可能になる。また第1実施形態の情報処理装置100では、コア毎にOSの優先度と割込みの入力先OSとを設定しておくのみでよい。割込み入力先OSの設定はリアルタイムハイパーバイザを利用するか否かにかかわらず、ハイパーバイザを利用するためには必要な設定であるため、実質コア毎に優先するOSを決定することのみが追加の作業となる。このように、第1実施形態の情報処理装置100によれば、既存システムからの変更や適用の手間も少なくて済む。
(第1実施形態の変形例)
次に第1実施形態の変形例について説明する。第1実施形態の変形例の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第1実施形態の変形例の情報処理装置100のシステム構成の説明は、第1実施形態の情報処理装置100のシステム構成(図1参照)と同じなので省略する。
[情報処理装置の機能構成]
図9は第1実施形態の変形例の情報処理装置100の機能構成の例を示す図である。第1実施形態の変形例の情報処理装置100の各機能は、OS1、OS2、仮想マシンモニタ20及びハードウェア30により実現される。なお図9では、OS2により実現される機能は、OS1により実現される機能と同じなので、OS2は省略している。
OS1は、受付部11、選択部12、処理部13、設定部14、検出部15、要求部16及びタスク情報記憶部101を備える。OS1の各機能は、例えばCPUがプログラムを実行することにより実現される。
仮想マシンモニタ20は、受付部21、判定部22、切替部23、設定部24、判定条件記憶部201及びコンテキスト記憶部202を備える。仮想マシンモニタ20の各機能は、例えばCPUがプログラムを実行することにより実現される。
ハードウェア30は、割込み通知部31及び割込み設定部32を備える。割込み通知部31及び割込み設定部32は、例えばCPUにより実現される。
すなわち第1実施形態の変形例では、情報処理装置100に割込み設定部32が追加されている点が、第1実施形態とは異なる。
第1実施形態では、全ての割込みが、受付部21を経由してOS1に入力されていたが、変形例では、一部の割込みが、ハードウェア30の割込み通知部31により、直接、OS1の受付部11に入力される。これにより仮想マシンモニタ20への遷移が不要になるため、情報処理装置100の動作の高速化が可能になる。近年のCPUでは、CPUの割込みコントローラが、仮想マシンモニタ20、及び、OS1双方への割り込み入力をサポートしていることが多い。仮想マシンモニタ20、及び、OS1双方への割り込み入力をサポートしているCPUを利用する場合には本変形例の構成が有用である。
本変形例では、切替部23が、OSを切り替えるときに、割込み入力の設定要求を割込み設定部32に入力する。割込み設定部32は、切替部23から割込み入力の設定要求を受け付けると、当該設定要求に基づいて割込み入力の設定を変更する。割込み通知部31は、OSが切り替えられた後、割込み設定部32により行われた割込み入力の設定に従って割込みの入力先を変更する。
<切り替え先のOSが優先OSである場合>
切替部23は、切り替え先のOSが優先OSである場合、切り替え先のOSに入力される割込みをOSの受付部11に直接、入力する設定要求を、割込み設定部32に入力する。また切替部23は、切り替え先のOSに入力されない割込みをペンディングする設定要求を、割込み設定部32に入力する。
<切り替え先のOSが優先OSでない場合>
一方、切替部23は、切り替え先のOSが優先OSでない場合、切り替え先のOSに入力される割込みをOSの受付部11に直接、入力する設定要求を、割込み設定部32に入力する。また切替部23は、優先OSに入力される割込みを受付部21に入力する設定要求を、割込み設定部32に入力する。また切替部23は、それ以外のOS(3つ以上のOSが動作する場合)に入力される割込みをペンディングする設定要求を、割込み設定部32に入力する。
ここで、情報処理装置100が、上述の図3Aの割込み入力先OS情報と、上述の図3Bの優先OS情報とを有する場合について、具体的に説明する。
<割込みを受け付けるコアが第1コアの場合>
CPUコア番号が1の第1コアでは、OS2が優先OSである。そのため、切替部23は、切り替え後のOSがOS1の場合、割込みAをOS1の受付部11に入力する設定要求と、割込みBを受付部21に入力する設定要求と、を割込み設定部32に入力する。また切替部23は、切り替え後のOSがOS2の場合、割込みAをペンディングする設定要求と、割込みBをOS2の受付部11に直接、入力する設定要求と、を割込み設定部32に入力する。
<割込みを受け付けるコアが第2コアの場合>
CPUコア番号が2の第2コアでは、OS1が優先OSである。そのため、切替部23は、切り替え後のOSがOS1の場合、割込みAをOS1の受付部11に入力する設定要求と、割込みBをペンディングする設定要求と、を割込み設定部32に入力する。また切替部23は、切り替え後のOSがOS2の場合、割込みAを受付部21に入力する設定要求と、割込みBをOS2の受付部11に直接、入力する設定要求と、を割込み設定部32に入力する。
割込み通知部31は、割込み設定部32の設定に従い、割込み要求があった場合に割込みを通知する。割込み通知部31は、割込みがペンディングに設定されている場合には何もせず、ペンディングに設定されていない場合には設定に従って、受付部21またはOSの受付部11に割込みを入力する。ペンディングされている割込みは、ペンディングが解除された段階、すなわち優先OSでないOSへの切り替え時に、当該OSの受付部11に入力される。
以上説明したように、第1実施形態の変形例によれば、一部の割込みがOSに直接入力されるようになる。したがって仮想マシンモニタ20への遷移は、OS切替が必要な場合に限られ、無駄な仮想マシンモニタ20への遷移が減る。そのため、第1実施形態の変形例の情報処理装置100は、第1実施形態の情報処理装置100よりも高速に動作することが可能になる。
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態の情報処理装置100のシステム構成の説明は、第1実施形態の情報処理装置100のシステム構成(図1参照)と同じなので省略する。
第1実施形態の情報処理装置100では、OS間を跨いで通信を行うことが想定されていなかった。例えばセキュリティ強度が高いセキュアOSと、当該セキュアOSよりもセキュリティ強度が低い一般OSと、を同居させるユースケースがある。例えば多くの処理を一般OSで行い、暗号化処理等のセキュリティ関連の処理をセキュアOSで行う場合、一般OSは、セキュリティ関連の処理をセキュアOSに依頼し、その処理結果を利用する。このような場合には、OS間を跨ぐ通信が必要となる。コアを跨がなければ第1実施形態の情報処理装置100の構成(図2参照)で、共有メモリ等の技術を使って通信が可能である。しかし、コアを跨いで通信を行う場合には、第1実施形態の情報処理装置100の構成ではコア間で通信を行う仕組みがなく、呼出し先OSが実行されていない場合には、次に呼出し先OSが実行されるまで待つ必要がある。これでは効率的に通信を行うことができず、リアルタイム処理の場合にはリアルタイム性が落ちる欠点がある。第2実施形態では、OS間を跨いで通信を行う場合の構成について説明する。
[情報処理装置の機能構成]
図10は第2実施形態の情報処理装置100の機能構成の例を示す図である。第2実施形態の情報処理装置100の各機能は、OS1、OS2、仮想マシンモニタ20及びハードウェア30により実現される。なお図10では、OS2により実現される機能は、OS1により実現される機能と同じなので、OS2は省略している。
OS1は、受付部11、選択部12、処理部13、設定部14、検出部15、要求部16、通信部17及びタスク情報記憶部101を備える。すなわち第2実施形態では、第1実施形態の構成に、通信部17が追加されている。OS1の各機能は、例えばCPUがプログラムを実行することにより実現される。
仮想マシンモニタ20は、受付部21、判定部22、切替部23、設定部24、判定条件記憶部201及びコンテキスト記憶部202を備える。仮想マシンモニタ20の各機能は、例えばCPUがプログラムを実行することにより実現される。
ハードウェア30は、割込み通知部31及びコア間割込み発生部33を備える。割込み通知部31及びコア間割込み発生部33は、例えばCPUにより実現される。すなわち第2実施形態では、第1実施形態の構成に、コア間割込み発生部33が追加されている。
通信部17は、処理部13から、OS間の通信を要求するOS間通信要求を受け付けた場合、コア間割込みの発生を要求するコア間割込み要求を、コア間割込み発生部33に入力する。コア間割込み要求では、割り込みを発生させるコアが指定される。通信部17は、例えばリアルタイムタスクからOS間通信要求を受け付けた場合、リアルタイム性が要求されるため、呼び出し先OSの実行が優先されるコアを、コア間割込み要求で指定する。
第2実施形態の情報処理装置100が、例えば図3Bに示す優先OS情報を有する場合について説明する。OS2の通信部17は、例えば第1コアで動作するOS2のリアルタイムタスクからOS1へのOS間通信要求を受け付けた場合、OS1の動作が優先される第2コアが指定されたコア間割込み要求を、コア間割込み発生部33に入力する。
一方、OS2の通信部17は、例えば第1コアで動作するOS2の非リアルタイムタスクからOS1へのOS間通信要求を受け付けた場合、OS1の動作が優先されない第1コアが指定されたコア間割込み要求を、コア間割込み発生部33に入力する。また例えば、OS2の通信部17は、第2コアで動作するOS2の非リアルタイムタスクからOS1へのOS間通信要求を受け付けた場合、OS1の動作が優先されない第1コアが指定されたコア間割込み要求を、コア間割込み発生部33に入力する。
コア間割込み発生部33は、通信部17からコア間割込み要求を受け付けると、当該コア間割込み要求で指定されたコアの割り込みを発生させる。割込み通知部31は、コア間割込み発生部33が発生させた割込みを、受付部21に入力する。
図11Aは第2実施形態のOS間通信要求の処理の例を示すフローチャートである。はじめに、通信部17が、要求元のタスクがリアルタイムタスクであるか否かを判定する(ステップS61)。要求元のタスクがリアルタイムタスクである場合(ステップS61、Yes)、通信部17は、呼び出し先のOSの実行が優先されるコアを、コア間割込み要求で指定する(ステップS62)。要求元のタスクがリアルタイムタスクでない場合(ステップS61、No)、通信部17は、呼び出し先のOSの実行が優先されないコアを、コア間割込み要求で指定する(ステップS63)。
次に、通信部17が、コア間割込み要求をコア間割込み発生部33に入力する(ステップS64)。
割込み先のコアが自コアである場合(ステップS65、Yes)、コア間割込み発生部33が、自コアの割込みを発生させる(ステップS66)。ステップS66の処理により発生させた割込みは、割込み通知部31により、自コアの割込みとして、受付部21に入力される。
一方、割込み先のコアが自コアでない場合(ステップS65、No)、自コアの選択部12は、処理を継続し、コア間割込み発生部33は、コア間割込み要求で指定されたコアの割込みを発生させる(ステップS67)。ステップS67の処理により発生させた割込みは、割込み通知部31により、コア間割込み要求で指定されたコアの割込みとして、受付部21に入力される。
<OS間通信要求の処理例>
図11Bは、図11Aのフローチャートに従って処理されたOS間通信要求の例を示す図である。
例えば、第1コアで動作するOS1の通信部17が、OS1の非リアルタイムタスクからOS2に対するOS間通信要求を受け付けた場合、OS2が優先に実行されない第2コアを、コア間割込み要求で指定する。
一方、第2コアで動作するOS1の通信部17が、OS1のリアルタイムタスクからOS2に対するOS間通信要求を受け付けた場合、OS2が優先に実行される第1コアを、コア間割込み要求で指定する。
また例えば、第1コアで動作するOS2の通信部17が、OS2の非リアルタイムタスクからOS1に対するOS間通信要求を受け付けた場合、OS2が優先に実行されない自コアを、コア間割込み要求で指定する。
なお、受付部21が割込みを受け付けた後の処理の説明は、第1実施形態の説明(図7A参照)と同様なので省略する。
以上説明したように、第2実施形態の情報処理装置100によれば、リアルタイム性を保ちながら、OS間を跨いだ通信が可能となる。そのため第2実施形態の情報処理装置100によれば、OS間を跨ぐリアルタイムアプリケーション等のアプリケーションの柔軟な設計が可能となる。
(第3実施形態)
次に第3実施形態について説明する。第3実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第3実施形態の情報処理装置100のシステム構成の説明は、第1実施形態の情報処理装置100のシステム構成(図1参照)と同じなので省略する。
第1実施形態の情報処理装置100では、OS及び仮想マシンモニタの完全性が保障されない。そのため、例えばOSがマルウェア等に侵入された場合には、OSの各機能の処理が書き換えられてしまう可能性がある。各機能の処理が書き換えられてしまったOSは、他のOSまで影響を及ぼすことはないが、自OSのリアルタイムタスクの動作が阻害される可能性があるため、重大な影響が出る可能性がある。
[情報処理装置の機能構成]
図12は第3実施形態の情報処理装置100の機能構成の例を示す図である。第3実施形態の情報処理装置100の各機能は、OS1、OS2、仮想マシンモニタ20及びハードウェア30により実現される。なお図12では、OS2により実現される機能は、OS1により実現される機能と同じなので、OS2は省略している。
OS1は、受付部11、選択部12、処理部13、設定部14、検出部15、要求部16及びタスク情報記憶部101を備える。OS1の各機能は、例えばCPUがプログラムを実行することにより実現される。
仮想マシンモニタ20は、受付部21、判定部22、切替部23、設定部24、検証部25、判定条件記憶部201、コンテキスト記憶部202及びハッシュ値記憶部203を備える。すなわち第3実施形態では、第1実施形態の構成に、検証部25及びハッシュ値記憶部203が追加されている。仮想マシンモニタ20の各機能は、例えばCPUがプログラムを実行することにより実現される。
ハードウェア30は、割込み通知部31を備える。割込み通知部31は、例えばCPUにより実現される。
検証部25は、例えば選択部12、設定部14及び要求部16等の重要な機能ブロックを実現するプログラムを、改ざんの検証対象のデータとして、当該改ざんの検証対象のデータの完全性を検証する。具体的には、検証部25は、あらかじめ各機能ブロックのハッシュ値(第2のハッシュ値)をハッシュ値記憶部203に記憶しておく。そして検証部25は、検証アルゴリズムを使用して、検証が行われるタイミングで計算されたハッシュ値(第1のハッシュ値)と、あらかじめ記憶されていたハッシュ値(第2のハッシュ値)とを比較することにより、改ざんの検出対象のデータの完全性を検証する。なお検証アルゴリズムは任意でよい。検証アルゴリズムは、例えばSHA1などのハッシュベースの良く知られた検証アルゴリズムである。
また、重要な機能ブロック(例えば選択部12、設定部14及び要求部16)の検証が行われるタイミングについては、例えば切替部23が、OSを切り替える際に、切り替え先のOSの当該重要な機能ブロックの検証を要求する。また例えば、重要な機能ブロックの検証が行われるタイミングは、検証部25が、OSの起動時に、当該重要な機能ブロックを一度だけ検証してもよい。
第3実施形態の情報処理装置100によれば、例えば選択部12、設定部14及び要求部16等の重要な機能ブロックの完全性を検証することができる。
(第3実施形態の変形例)
次に第3実施形態の変形例について説明する。第3実施形態の変形例の説明では、第3実施形態と同様の説明については省略し、第3実施形態と異なる箇所について説明する。第3実施形態の変形例の情報処理装置100のシステム構成の説明は、第1実施形態の情報処理装置100のシステム構成(図1参照)と同じなので省略する。
上述の第3実施形態の情報処理装置100の構成では、改ざんを検出できるが、改ざん自体を防ぐことはできない。OSのデータの改ざんの例として、例えば優先OS情報(図3B参照)が、改ざんされると、他のOSの動作も阻害される可能性があるため、当該優先OS情報は厳重に保護される必要がある。
[情報処理装置の機能構成]
図13は第3実施形態の変形例の情報処理装置100の機能構成の例を示す図である。第3実施形態の変形例の情報処理装置100の各機能は、OS1、OS2、仮想マシンモニタ20及びハードウェア30により実現される。なお図13では、OS2により実現される機能は、OS1により実現される機能と同じなので、OS2は省略している。
OS1は、受付部11、選択部12、処理部13、設定部14、検出部15、要求部16及びタスク情報記憶部101を備える。OS1の各機能は、例えばCPUがプログラムを実行することにより実現される。
仮想マシンモニタ20は、受付部21、判定部22、切替部23、設定部24、保護設定部26、判定条件記憶部201及びコンテキスト記憶部202を備える。仮想マシンモニタ20の各機能は、例えばCPUがプログラムを実行することにより実現される。
ハードウェア30は、割込み通知部31、保護部34及び記憶装置301を備える。割込み通知部31及び保護部34は、例えばCPUにより実現される。
すなわち第3実施形態の変形例では、第3実施形態の情報処理装置100の検証部15の代わりに、保護設定部26及び保護部34を備える。
保護設定部26は、記憶装置301に記憶されるデータのうち、保護対象のデータを、保護部34を介して、書き換え不可に設定する。保護対象のデータは、例えば選択部12、設定部14及び要求部16を実現するプログラム、仮想マシンモニタ20の各機能ブロックを実現するプログラム、並びに、判定条件記憶部201及びコンテキスト記憶部202である。
保護部34は、例えば多段ページング機能、及び、MPU(Memory Protection Unit)などにより実現できる。多段ページング機能は、例えばMMU(Memory Management Unit)などである。
以上説明したように、第3実施形態の変形例の情報処理装置100によれば、機能ブロックを実現するプログラム、及び、当該機能ブロックから参照されるデータの改ざん自体を防ぐことができる。これにより第3実施形態の変形例の情報処理装置100によれば、例えばリアルタイムタスクの実行の妨害などを阻止できるようになる。
最後に第1〜第3実施形態の情報処理装置100のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図14は第1〜第3実施形態の情報処理装置100のハードウェア構成の例を示す図である。第1〜第3実施形態の情報処理装置100は、制御装置401、主記憶装置402、補助記憶装置403、表示装置404、入力装置405及び通信装置406を備える。制御装置401、主記憶装置402、補助記憶装置403、表示装置404、入力装置405及び通信装置406は、バス410を介して接続されている。
第1〜第3実施形態の情報処理装置100は、例えば車載情報機器、及び、産業制御機器などの組込みシステムに利用される。なお第1〜第3実施形態の情報処理装置100は、パーソナルコンピュータ及びスマートデバイスなどでもよい。
制御装置401は補助記憶装置403から主記憶装置402に読み出されたプログラムを実行する。主記憶装置402はROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置403はメモリカード、及び、HDD(Hard Disk Drive)等である。
表示装置404は情報を表示する。表示装置404は、例えば液晶ディスプレイである。入力装置405は、情報の入力を受け付ける。入力装置405は、例えばキーボード及びマウス等である。なお表示装置404及び入力装置405は、表示機能と入力機能とを兼ねる液晶タッチパネル等でもよい。また第1〜第3実施形態の情報処理装置100が、組込みシステムに利用される場合、表示装置404及び入力装置405はなくてもよい。
通信装置406は他の装置と通信する。
第1〜第3実施形態の情報処理装置100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R、及び、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
また第1〜第3実施形態の情報処理装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また第1〜第3実施形態の情報処理装置100が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
また第1〜第3実施形態の情報処理装置100で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1〜第3実施形態の情報処理装置100で実行されるプログラムは、第1〜第3実施形態の情報処理装置100の機能構成のうち、プログラムにより実現可能な機能を含むモジュール構成となっている。
プログラムにより実現される機能は、制御装置401が補助記憶装置403等の記憶媒体からプログラムを読み出して実行することにより、プログラムにより実現される機能が主記憶装置402にロードされる。すなわちプログラムにより実現される機能は、主記憶装置402上に生成される。
なお第1〜第3実施形態の情報処理装置100の機能の一部を、IC(Integrated Circuit)等のハードウェアにより実現してもよい。例えば、切替部23は、CPU及び割込みコントローラ等のハードウェア機能により実現してもよいし、CPU上で動作するソフトウェア機能により実現してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 OS
2 OS
11 受付部
12 選択部
13 処理部
14 設定部
15 検出部
16 要求部
17 通信部
20 仮想マシンモニタ
21 受付部
22 判定部
23 切替部
24 設定部
25 検証部
26 保護設定部
30 ハードウェア
31 割込み通知部
32 割込み設定部
33 コア間割込み発生部
34 保護部
100 情報処理装置
101 タスク情報記憶部
201 判定条件記憶部
202 コンテキスト記憶部
203 ハッシュ値記憶部
301 記憶装置

Claims (12)

  1. 複数のコアを有するプロセッサを備える情報処理装置であって、
    割込みを、前記コア毎に受け付ける受付部と、
    前記複数のコアのそれぞれに、コアで優先される優先OSを設定する優先OS設定部と、
    前記割込みが入力される第1のOS(Operating System)が、前記割込みが発生した前記優先OSであり、かつ、前記割込みが発生したコアで実行中の第2のOSが、前記優先OSでない場合、前記第2のOSを、前記第1のOSに切り替える切替部と、
    前記コアで実行されているOSが前記優先OSであり、かつ、非リアルタイムタスクよりも処理の優先度が高いリアルタイムタスクが実行可能状態である場合、前記リアルタイムタスクを選択し、前記コアで実行されているOSが前記優先OSであり、かつ、前記リアルタイムタスクが実行可能状態でない場合、前記非リアルタイムタスクを選択する選択部と、
    前記選択部により選択された前記リアルタイムタスク、または、前記非リアルタイムタスクを処理する処理部と、
    を備える情報処理装置。
  2. 前記受付部は、前記第2のOSを前記第1のOSに切り替えた場合、または、前記第1のOSと前記第2のOSとが一致していた場合、前記第1のOSに前記割込みを入力し、前記第1のOSと前記第2のOSとが一致せず、かつ、前記第2のOSを前記第1のOSに切り替えなかった場合、前記割込みを保留する、
    請求項1に記載の情報処理装置。
  3. 前記切替部は、実行中の前記第2のOSから、前記第2のOSを前記第1のOSに切り替える要求が、前記受付部により受け付けられたとき、前記第2のOSを前記第1のOSに切り替え、
    前記受付部は、前記第1のOSに入力される割込みが保留されているか否かを判定し、前記第1のOSに入力される割込みが保留されている場合、前記第1のOSに前記割込みを入力する、
    請求項2に記載の情報処理装置。
  4. 前記選択部は、前記コアで実行されているOSが前記優先OSでなく、かつ、前記非リアルタイムタスクがある場合、前記非リアルタイムタスクを選択する、
    請求項に記載の情報処理装置。
  5. 前記受付部は、前記コアで実行されているOSが前記優先OSでなく、かつ、前記非リアルタイムタスクがない場合、前記コアで実行されるOSを切り替える要求を受け付ける、
    請求項に記載の情報処理装置。
  6. 割込みの通知先を設定する割込み設定部を更に備え、
    前記切替部は、切り替え先のOSが優先OSである場合、切り替え先のOSに入力される割込みを、前記切り替え先のOSに入力する設定要求を、前記割込み設定部に入力し、前記切り替え先のOSに入力されない割込みを保留する設定要求を、前記割込み設定部に入力する、
    請求項1に記載の情報処理装置。
  7. 前記切替部は、切り替え先のOSが優先OSでない場合、切り替え先のOSに入力される割込みを、前記切り替え先のOSに入力する設定要求を、前記割込み設定部に入力し、優先OSに入力される割込みを前記受付部に入力する設定要求を、前記割込み設定部に入力し、前記切り替え先のOS及び前記優先OS以外のOSに入力される割込みを保留する設定要求を、前記割込み設定部に入力する、
    請求項に記載の情報処理装置。
  8. 指定されたコアで割込みを発生させるコア間割込み発生部と、
    OS間の通信を要求するOS間通信要求を、前記リアルタイムタスクから受け付けた場合、通信先のOSが前記優先OSとして設定されたコアが指定されたコア間割込み要求を、前記コア間割込み発生部に入力し、前記OS間通信要求を、前記非リアルタイムタスクから受け付けた場合、通信先のOSが前記優先OSとして設定されていないコアが指定されたコア間割込み要求を、前記コア間割込み発生部に入力する通信部と、
    を更に備える請求項に記載の情報処理装置。
  9. 前記情報処理装置に記憶された改ざんの検証対象のデータの第1のハッシュ値を計算し、前記第1のハッシュ値と、改ざんされていない前記検証対象のデータの第2のハッシュ値と、を比較することにより、前記検証対象のデータの完全性を検証する検証部、
    を更に備える請求項1に記載の情報処理装置。
  10. 前記情報処理装置に記憶された保護対象のデータの書き換えを禁止する保護部、
    を更に備える請求項1に記載の情報処理装置。
  11. 複数のコアを有するプロセッサを備える情報処理装置の情報処理方法であって、
    割込みを、前記コア毎に受け付けるステップと、
    前記複数のコアのそれぞれに、コアで優先される優先OSを設定するステップと、
    前記割込みが入力される第1のOS(Operating System)が、前記割込みが発生した前記優先OSであり、かつ、前記割込みが発生したコアで実行中の第2のOSが、前記優先OSでない場合、前記第2のOSを、前記第1のOSに切り替えるステップと、
    前記コアで実行されているOSが前記優先OSであり、かつ、非リアルタイムタスクよりも処理の優先度が高いリアルタイムタスクが実行可能状態である場合、前記リアルタイムタスクを選択し、前記コアで実行されているOSが前記優先OSであり、かつ、前記リアルタイムタスクが実行可能状態でない場合、前記非リアルタイムタスクを選択するステップと、
    前記選択するステップにより選択された前記リアルタイムタスク、または、前記非リアルタイムタスクを処理するステップと、
    を含む情報処理方法。
  12. 複数のコアを有するプロセッサを備える情報処理装置を、
    割込みを、前記コア毎に受け付ける受付部と、
    前記複数のコアのそれぞれに、コアで優先される優先OSを設定する優先OS設定部と、
    前記割込みが入力される第1のOS(Operating System)が、前記割込みが発生した前記優先OSであり、かつ、前記割込みが発生したコアで実行中の第2のOSが、前記優先OSでない場合、前記第2のOSを、前記第1のOSに切り替える切替部
    前記コアで実行されているOSが前記優先OSであり、かつ、非リアルタイムタスクよりも処理の優先度が高いリアルタイムタスクが実行可能状態である場合、前記リアルタイムタスクを選択し、前記コアで実行されているOSが前記優先OSであり、かつ、前記リアルタイムタスクが実行可能状態でない場合、前記非リアルタイムタスクを選択する選択部と、
    前記選択部により選択された前記リアルタイムタスク、または、前記非リアルタイムタスクを処理する処理部、
    として機能させるためのプログラム。
JP2016182171A 2016-09-16 2016-09-16 情報処理装置、情報処理方法及びプログラム Active JP6615726B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016182171A JP6615726B2 (ja) 2016-09-16 2016-09-16 情報処理装置、情報処理方法及びプログラム
US15/438,222 US10474494B2 (en) 2016-09-16 2017-02-21 Information processing apparatus, information processing method, and computer program product
EP17157495.7A EP3296869A1 (en) 2016-09-16 2017-02-22 Information processing apparatus, information processing method and computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016182171A JP6615726B2 (ja) 2016-09-16 2016-09-16 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018045638A JP2018045638A (ja) 2018-03-22
JP6615726B2 true JP6615726B2 (ja) 2019-12-04

Family

ID=58108560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016182171A Active JP6615726B2 (ja) 2016-09-16 2016-09-16 情報処理装置、情報処理方法及びプログラム

Country Status (3)

Country Link
US (1) US10474494B2 (ja)
EP (1) EP3296869A1 (ja)
JP (1) JP6615726B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6776292B2 (ja) 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
WO2019187719A1 (ja) * 2018-03-28 2019-10-03 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP6473917B1 (ja) 2018-06-22 2019-02-27 ソフトサーボシステムズ株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
EP3812855B1 (en) * 2018-06-22 2024-01-17 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
US11300939B2 (en) 2018-06-22 2022-04-12 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
JP6877388B2 (ja) 2018-07-09 2021-05-26 株式会社東芝 情報処理装置、移動体、情報処理方法、およびプログラム
JP7210238B2 (ja) * 2018-11-15 2023-01-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
CN116069485A (zh) * 2021-10-29 2023-05-05 华为技术有限公司 用于处理任务的方法、装置、电子设备和介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216172A (ja) * 1997-09-12 2001-08-10 Hitachi Ltd マルチos構成方法
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6490611B1 (en) * 1999-01-28 2002-12-03 Mitsubishi Electric Research Laboratories, Inc. User level scheduling of inter-communicating real-time tasks
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
JP2000284080A (ja) 1999-03-31 2000-10-13 Nuclear Fuel Ind Ltd 沸騰水型原子炉用燃料集合体
JP3659062B2 (ja) 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
GB2396712B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
DE60323811D1 (de) 2003-04-09 2008-11-13 Jaluna S A Betriebssysteme
GB2409303B (en) * 2003-12-18 2006-10-18 Advanced Risc Mach Ltd Inter-processor communication mechanism
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
JP4342576B2 (ja) 2006-07-25 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 複数オペレーティングシステム切替制御装置及びコンピュータシステム
JP5014179B2 (ja) 2008-01-25 2012-08-29 三菱電機株式会社 Os優先度変更装置及びos優先度変更プログラム
JP5516398B2 (ja) * 2008-03-11 2014-06-11 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
JP5125659B2 (ja) 2008-03-24 2013-01-23 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8468533B2 (en) * 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target
KR100959548B1 (ko) * 2008-05-21 2010-05-27 한국과학기술원 인터럽트 스케줄링 방법
JP5423635B2 (ja) 2009-11-09 2014-02-19 株式会社デンソー スケジューリング方法,スケジューリングプログラム,スケジューリング装置
CN101782861A (zh) 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式系统中操作系统的管理方法及装置
JP5377748B2 (ja) * 2010-02-18 2013-12-25 株式会社東芝 プログラム
JP2014089644A (ja) 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
JP2014089652A (ja) 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
JP6081300B2 (ja) 2013-06-18 2017-02-15 株式会社東芝 情報処理装置及びプログラム
JP2015036935A (ja) 2013-08-15 2015-02-23 株式会社東芝 情報処理装置、情報処理方法、情報処理システム、プログラム
JP5911835B2 (ja) 2013-09-17 2016-04-27 株式会社東芝 情報処理装置
JP6117068B2 (ja) 2013-09-20 2017-04-19 株式会社東芝 情報処理装置、およびプログラム
JP6129702B2 (ja) 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム
JP6189267B2 (ja) 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
JP2017010347A (ja) 2015-06-24 2017-01-12 株式会社東芝 情報処理装置
TW201710947A (zh) * 2015-08-25 2017-03-16 Seltech Corp 具有管理程序的系統
JP6462540B2 (ja) 2015-09-08 2019-01-30 株式会社東芝 ドライバ装置、情報処理システム、プログラムおよび方法

Also Published As

Publication number Publication date
US20180081712A1 (en) 2018-03-22
JP2018045638A (ja) 2018-03-22
EP3296869A1 (en) 2018-03-21
US10474494B2 (en) 2019-11-12

Similar Documents

Publication Publication Date Title
JP6615726B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6130617B1 (ja) ハイパーバイザーを有するシステム
US8677484B2 (en) Providing protection against unauthorized network access
JP5861228B2 (ja) 仮想パーティションを監視するためのシステム、装置、プログラムおよび方法
JP6753777B2 (ja) 割り込み処理の方法及び装置
US7702828B2 (en) Input/output control apparatus, input/output control system, and input/output control method
JP4249779B2 (ja) デバイス制御装置
US20170091452A1 (en) Atomic detection and repair of kernel memory
JP5118706B2 (ja) トラステッドプラットフォームモジュールを共有するためのシステム及び方法
JP2006277062A (ja) アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
KR100710032B1 (ko) 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템
TWI678615B (zh) 在資料處理裝置中進行除錯
JP5977778B2 (ja) 情報処理装置およびメモリー管理方法
US9645857B2 (en) Resource fault management for partitions
US9383796B2 (en) Management of the interaction between security and operating system power management unit
JP2005275841A (ja) メモリ保護装置
JP5637934B2 (ja) 仮想化装置、仮想化装置制御方法、仮想化装置制御プログラム
JP4611659B2 (ja) 不正アクセス検出装置、不正アクセス検出方法、プログラム
JP2022190970A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2021056739A (ja) コンテナ制御装置、コンテナ制御方法、およびコンテナ制御プログラム
JP5564466B2 (ja) 仮想化装置、仮想化装置制御方法、仮想化装置制御プログラム
KR101252188B1 (ko) 가상 메모리 데이터 접근 제어방법
EP3906489A1 (en) Method, system and device for managing an execution of a program relating to part or all of a first application
JP2005234752A (ja) ミスアライメント処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190716

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190913

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191106

R151 Written notification of patent or utility model registration

Ref document number: 6615726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151