JP4576452B2 - オペレーティングシステムおよび情報処理装置 - Google Patents
オペレーティングシステムおよび情報処理装置 Download PDFInfo
- Publication number
- JP4576452B2 JP4576452B2 JP2008285049A JP2008285049A JP4576452B2 JP 4576452 B2 JP4576452 B2 JP 4576452B2 JP 2008285049 A JP2008285049 A JP 2008285049A JP 2008285049 A JP2008285049 A JP 2008285049A JP 4576452 B2 JP4576452 B2 JP 4576452B2
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- access
- task
- unit
- core
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims description 207
- 238000000034 method Methods 0.000 claims description 109
- 238000001514 detection method Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 11
- 238000005192 partition Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Description
特に、不正アクセスの検出機能を有するオペレーティングシステムおよび情報処理装置に関する。
そして、こうした情報処理システムにおいて、複雑な処理を高速に処理するためには、例えばマルチコアプロセッサを用いることにより、複数の処理を同時並行的に処理することが有効である。マルチコアプロセッサは、複数のプロセッサコアを1つの集積回路に実装したものであり、複数の処理を同時並行的に処理できるとともに、複数の集積回路を使用した場合に比べて部品コストやプロセッサの実装面積を低減できる、などの利点を有するものである。
非対称型マルチプロセッシングは、マルチコアプロセッサの複数のプロセッサコアごとに実行する処理が決められている制御方法である。
また、対称型マルチプロセッシングは、マルチコアプロセッサの複数のプロセッサコアを同等に扱い、適宜ロードバランスなどを考慮して処理を実行するプロセッサを決定する制御方法である。つまり、処理を分散させてプロセッサ資源を効率良く使用するという点から見れば、対称型マルチプロセッシングの方が優れている。
こうした問題を解決する手段としては、例えばプロセッサコアなどの各種のリソースを分割してパーティションを作成し、各パーティションで実行されるべき処理を決定することで、各パーティションで実行される処理が他の処理から受ける影響を少なくするという構成が考えられる。
また、特許文献2には、制御OSが複数のゲストOSを制御し、この複数のゲストOSごとにパーティションを設ける構成が開示されている。
このような構成を使用すれば、複数のOSにより制御されるサブシステム間の干渉を避けることができるとともに、複数のOSを制御する制御用OSのプログラムやデータをサブシステムから保護することができる。
また、OS間で通信を行うには、ハイパーバイザもしくは制御OSを介して行わねばならず、処理のオーバヘッドが発生するという問題点があった。
更には、重複するOSが搭載されることによりメモリ容量が圧迫される、デバイスドライバ等のプログラムを共有できない、システム全体の分析が困難になる、などの問題点があった。
なお、符号は、発明の実施の形態において用いた符号を示し、本発明の技術的範囲を限定するものではない。
(請求項1)
請求項1に記載の発明は、以下を特徴とする。
すなわち、請求項1に記載のオペレーティングシステム1は、複数のプロセッサコア100を有するプロセッサ2と、前記複数のプロセッサコア100のすべてからアクセス可能なメモリ3と、を有するシステム上で動作するオペレーティングシステム1であって、前記複数のプロセッサコア100を1以上のプロセッサコア100からなる複数のコアユニット101にグループ化して管理するコアユニット管理手段10と、種々の処理を行うためのタスクまたはプロセスのいずれかである処理単位70を生成する処理単位生成手段25と、処理単位70生成時に指定されたパラメータに基づいて、生成された処理単位70が前記複数のコアユニット101のいずれで実行されるかを決定するためのコアユニット決定手段20と、前記コアユニット決定手段20により同一のコアユニット101で実行されると決定された処理単位70を処理単位グループ200としてグループ化する処理単位グループ化手段26と、前記複数のコアユニット101ごとに対応して設けられ、対応するコアユニット101で実行されると決定された処理単位70が実行可能状態となったときに、当該処理単位70をコアユニット101ごとに設けられたレディーキューにつなぐことによって当該コアユニット101ごとにスケジューリングして、当該コアユニット101上で実行させる複数の処理単位実行手段30と、前記複数の処理単位グループ200に対して、前記メモリ3から各処理単位グループ200固有のメモリ領域230を割り当てるメモリ領域割り当て手段35と、前記メモリ3への不正アクセスを検出する不正アクセス検出手段40と、前記複数のコアユニット101のうちの少なくとも2以上のコアユニット101上で実行可能な処理単位70を含む共有処理55を定義する共有処理定義手段46と、を有し、前記不正アクセス検出手段40は、処理単位70が、当該処理単位70の属する処理単位グループ200とは別の処理単位グループ200固有のメモリ領域230に対してアクセスしたときに、このアクセスを不正アクセスとして検出することを特徴とする。
「コアユニット管理手段」は、上記したプロセッサコアをコアユニットとしてグループ化して管理するためのものである。グループ化および管理の方法としては、例えば、各プロセッサコアがどのコアユニットに属するかをユーザが記述可能な定義ファイルを設け、この定義ファイルの内容をシステムの初期化時に読み込むことにより、プロセッサコアをグループ化し、そのグループ化された情報を管理テーブルなどで管理するような態様が考えられる。また、このような定義ファイルを用いる態様に限らず、所定のAPIなどを呼び出すことにより、各プロセッサコアがどのコアユニットに属するかを制御するという態様も考えられる。
「処理単位」は、種々の処理を行うための単位を意味するものであり、一定の法則のもとに分割された処理の集まりである。例えば、タスク、スレッド、プロセスなどが該当する。
「処理単位生成手段」は、前記した処理単位を生成するためのものであり、例えば、処理単位としてタスクが用いられている場合においては、所定の関数呼び出しなどによりタスクを生成するプログラムなどが該当する。なお、処理単位の生成方法は関数呼び出しに限られず、例えば、定義ファイルなどの静的な定義により生成されるものであっても良い。
「処理単位グループ化手段」は、処理単位を上記した処理単位グループにグループ化するものである。例えば、コアユニットごとに処理単位の情報を管理するテーブルを設けても良い。この場合、上記したコアユニット決定手段によりある処理単位のコアユニットが決定されると、当該処理単位の情報がコアユニットごとに設けられたテーブルに登録されて管理される。これにより、同一のコアユニット上で実行される処理単位がグループ化される。なお、このような態様に限らず、各処理単位が保持している情報にコアユニット情報を記述し、この情報を必要に応じて処理単位グループ化手段が読み出して、各処理単位がどの処理単位グループに属しているかを判別するような態様としても良い。
「メモリ領域割り当て手段」は、前記複数の処理単位グループに対して、前記メモリから各処理単位グループ固有のメモリ領域を割り当てるものである。すなわち、メモリ領域割り当て手段により、当該オペレーティングシステムが制御するシステムに設けられたメモリのうちの所定のメモリ領域は、各処理単位グループのそれぞれが使用するメモリ領域として、割り当てられている。
ここで、不正アクセスを検出する具体的な態様としてはさまざまな態様が考えられ、例えば、アクセスモニタプログラムを用いる態様が考えられる。この場合、アクセスモニタプログラムは物理アドレスによるアクセスを制御する。つまり、コアユニットごとに保護される物理アドレスを設定することにより、その設定された領域に対するアクセスを検出するように構成する。この構成は、プロセッサの機能を使用しないため、アクセスモニタが搭載されているシステムであれば適用可能である。この場合、不正アクセス検出手段は、当該アクセスモニタプログラムとして形成される。
更に、他の不正アクセスを検出する方法としては、例えば、プロセッサの保護領域指定機能を使用する態様が考えられる。ここで言う保護領域指定機能とは、アドレス空間を複数の保護領域に分割し、各領域に対するアクセス権を個別に設定することができ、これにより、特定のメモリ領域を保護することが可能な機能を意味する。すなわち、コアユニットごとに保護領域を設け、この保護領域内でコアユニットに係る処理単位を実行する。そして、この保護領域に、当該保護領域外からアクセスがあったときに、このアクセスを不正アクセスとして検出する。この構成は、保護領域指定機能を有するプロセッサであれば適用可能である。この場合、不正アクセス検出手段は、保護領域指定機能が検知した不正アクセスを処理するプログラムとして形成される。
「共有処理」は、前記複数のコアユニットのうちの少なくとも2以上のコアユニット上で実行可能なものである。そして、この共有処理は、当該共有処理を実行可能なコアユニットに係る前記処理単位実行手段により当該コアユニット上で実行されものである。例えば、この共有処理として、複数の処理単位グループに共通のアプリケーションを設けることができる。更に具体的には、例えば、この共有処理として、割り込みハンドラ、タイムイベントハンドラ、デバイスドライバ関数、ファイルシステムなどのミドルウェアタスク、などを設ける態様が考えられる。
なお、共有処理を実行可能なコアユニットの範囲としては、本発明に係るコアユニット管理手段が管理するすべてのコアユニットで実行可能としても良いし、一部のコアユニットでのみ共有処理を実行可能としても良い。
「共有処理定義手段」は、上記共有処理を定義するためのものである。例えば、共有処理として扱うべきプログラムを特定のメモリ領域に配置することにより、当該プログラムに属性を与え、共有処理として定義するような態様が考えられる。
(請求項1記載の発明の作用)
このようなオペレーティングシステムにおいては、複数のプロセッサコアが1以上のプロセッサコアからなる複数のコアユニットにグループ化して管理される。また、同一のコアユニットで実行される処理単位群は、それぞれグループ化されて処理単位グループを形成するようになっている。そして、1の処理単位が、当該処理単位の属する処理単位グループとは別の処理単位グループ固有のメモリ領域に対してアクセスしたときには、このアクセスが不正アクセスとして検出される。
請求項2に記載の発明は、上記した請求項1に記載の発明の特徴点に加え、以下を特徴とする。
すなわち、請求項2に記載のオペレーティングシステムは、前記処理単位生成手段25は、処理単位70として、通常処理単位65と、通常処理単位65よりも強いアクセス権を有する特権処理単位60と、を生成可能であり、前記メモリ領域割り当て手段35は、各処理単位70に対し、前記メモリ3から各処理単位70固有のメモリ領域222を割り当てており、前記処理単位70固有のメモリ領域222は、当該処理単位70の属する処理単位グループ200固有のメモリ領域230の一部として扱われ、その結果、前記不正アクセス検出手段40は、処理単位70が、当該処理単位70が属する処理単位グループ200とは別の処理単位グループ200に属する処理単位70固有のメモリ領域222に対してアクセスしようとしたときに、このアクセスを不正アクセスとして検出し、また、前記不正アクセス検出手段40は、通常処理単位65が、当該通常処理単位65とは別の処理単位70固有のメモリ領域222に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出するが、特権処理単位60が、当該特権処理単位60とは別の処理単位70であって、同一の処理単位グループ200に属する処理単位70固有のメモリ領域222に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出しないことを特徴とする。
ここで、どの処理単位を「通常処理単位」とし、また「特権処理単位」とするかは任意である。しかしながら、例えば、処理単位としてタスクが用いられている場合においては、ユーザが作成したアプリケーションタスクを「通常処理単位」とし、ファイルシステムなどのミドルウェアのタスクを「特権処理単位」とするような態様が考えられる。このように形成することで、ユーザが作成したアプリケーションタスクについてはアクセス権を制限し、より汎用的なシステムプログラムに強いアクセス権を与えることができる。
また、本請求項に係るメモリ領域割り当て手段は、各処理単位に対し、前記メモリから各処理単位固有のメモリ領域を割り当てるものである。すなわち、当該オペレーティングシステムが制御するシステムに設けられたメモリのうち、所定のメモリ領域は、各処理単位のそれぞれが使用するメモリ領域として割り当てられている。
また、処理単位固有のメモリ領域は、当該処理単位の属する処理単位グループ固有のメモリ領域の一部として扱われる。その結果、請求項1に記載されているとおり、不正アクセス検出手段は、処理単位が、当該処理単位が属する処理単位グループとは別の処理単位グループに属する処理単位固有のメモリ領域(すなわち、当該処理単位の属する処理単位グループとは別の処理単位グループ固有のメモリ領域の一部として扱われるメモリ領域)に対してアクセスしようとしたときに、このアクセスを不正アクセスとして検出する。
上記した内容を言い換えると、本請求項に係る不正アクセス検出手段が不正アクセスとして検出するのは以下の場合である。
2)特権処理単位が、当該特権処理単位の属する処理単位グループとは別の処理単位グループ固有のメモリ領域(当該特権処理単位の属する処理単位グループとは別の処理単位グループに属する処理単位固有のメモリ領域を含む)に対してアクセスしたとき。
3)通常処理単位が、当該通常処理単位とは別の処理単位固有のメモリ領域に対してアクセスしたとき(1以外の場合)。
このようなオペレーティングシステムにおいては、弱いアクセス権の通常処理単位は、当該通常処理単位固有のメモリ領域にのみアクセスできる。また、通常処理単位よりも強いアクセス権を有する特権処理単位は、当該特権処理単位固有のメモリ領域のみならず、当該特権処理単位の属する処理単位グループ固有のメモリ領域、および当該特権処理単位の属する処理単位グループに属する他の処理単位固有のメモリ領域にもアクセスできる。
更には、特権処理単位であっても、当該特権処理単位の属する処理単位グループとは異なる別の処理単位グループ固有のメモリ領域にはアクセスできない。
請求項3に記載の発明は、上記した請求項1または請求項2に記載の発明の特徴点に加え、以下を特徴とする。
すなわち、請求項3に記載のオペレーティングシステム1は、前記メモリ領域割り当て手段35は、前記共有処理55に対して、前記メモリ3から共有処理55固有のメモリ領域211を割り当てており、前記不正アクセス検出手段40は、前記複数の処理単位グループ200のいずれかに属する処理単位70が、当該共有処理55固有のメモリ領域211に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出するが、前記共有処理55が、当該共有処理55を実行可能なコアユニット101に係る処理単位グループ200のいずれかに固有のメモリ領域230、および、当該共有処理55を実行可能なコアユニット101に係る処理単位グループ200のいずれかに属する処理単位70固有のメモリ領域222に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出しないことを特徴とする。
そして、本請求項に係る不正アクセス検出手段は、前記複数の処理単位グループのいずれかに属する処理単位が、当該共有処理固有のメモリ領域に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出する。すなわち、共有処理固有のメモリ領域は、処理単位グループのいずれかに属する処理単位によるアクセスから保護されるようになっている。
(請求項3記載の発明の作用)
このようなオペレーティングシステムにおいては、複数のコアユニット間で共有されて実行可能な共有処理を設けることができる。そして、共有処理固有のメモリ領域は、処理単位によるアクセスから保護されるようになっている。また、共有処理は、関連する処理単位グループ固有のメモリ領域に対しては、自由にアクセスできるように構成されている。
請求項4に記載の発明は、上記した請求項3に記載の発明の特徴点に加え、以下を特徴とする。
すなわち、請求項4に記載のオペレーティングシステム1は、前記複数のコアユニット101のうちの任意のコアユニット101上で実行可能な処理単位70を含むカーネル部50を定義するカーネル部定義手段47を有し、前記メモリ領域割り当て手段35は、前記カーネル部50に対して、前記メモリ3からカーネル部50固有のメモリ領域212を割り当てており、前記不正アクセス検出手段40は、前記カーネル部50に含まれない処理が、前記カーネル部50固有のメモリ領域212に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出するが、前記カーネル部50が、前記処理単位グループ200固有のメモリ領域222および前記共有処理55固有のメモリ領域211のいずれにアクセスしようとしたときには、このアクセスを不正アクセスとして検出しないことを特徴とする。
ところで、本請求項に係るメモリ領域割り当て手段は、カーネル部に対して、前記メモリからカーネル部固有のメモリ領域を割り当てるものである。すなわち、当該オペレーティングシステムが制御するシステムに設けられたメモリのうち、所定のメモリ領域は、カーネル部が使用するメモリ領域として割り当てられている。
そして、本請求項に係る不正アクセス検出手段は、カーネル部に含まれない処理が、カーネル部固有のメモリ領域に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出する。すなわち、カーネル部固有のメモリ領域は、カーネル部以外の他のプログラムから保護されるようになっている。
(請求項4記載の発明の作用)
このようなオペレーティングシステムにおいては、すべてのコアユニット間で共有されて実行可能なカーネル部が設けられている。そして、カーネル部固有のメモリ領域は、他のプログラムから保護される。
請求項5に記載の発明は、以下を特徴とする。
すなわち、請求項5に記載の情報処理装置は、複数のプロセッサコア100を有するプロセッサ2と、前記複数のプロセッサコア100のすべてからアクセス可能なメモリ3と、前記プロセッサ2上で動作する請求項1から4のいずれかに記載のオペレーティングシステム1と、を有することを特徴とする。
(請求項5記載の発明の作用)
このような情報処理装置は、請求項1から4のいずれかに記載の発明と同様に作用する。
請求項1記載の構成によれば、複数のプロセッサコアを1以上のプロセッサコアからなる複数のコアユニットにグループ化して管理するので、対称型マルチプロセッシングと非対称型マルチプロセッシングとをブレンドした構成とすることができる。すなわち、複数のプロセッサコアからなるコアユニットを作成するとともに、別のプロセッサコアを用いて単一のプロセッサコアからなるコアユニットを作成すれば、複数のプロセッサコアからなるコアユニットは対称型マルチプロセッシングとして動作し、単一のプロセッサコアからなるコアユニットは非対称型マルチプロセッシングとして動作する。このように構成することにより、対称型マルチプロセッシングと非対称型マルチプロセッシングとの両方の利点を生かした構成とすることができる。例えば、高い信頼性を求められる処理は単一のプロセッサコアからなるコアユニットに割り当てることにより他の処理の影響を受けないように構成するとともに、高い信頼性を求められない処理は複数のプロセッサコアからなるコアユニットに割り当てることにより処理の負荷を分散させるように構成することができる(なお、本発明に係るコアユニット構成としては、対称型マルチプロセッシングと非対称型マルチプロセッシングとをブレンドした構成に限るものではなく、すべてのコアユニットを1つのプロセッサコアからなるものとして構成しても良い。すなわち、非対称型マルチプロセッシングとして構成しても良い)。
そして、上記したような機能を単一のOSにより実現しているため、複数のOSを使用した場合に発生する様々な問題点を解決することが可能となっている。例えば、重複するOSが搭載されることによりメモリ容量が圧迫される、デバイスドライバ等のプログラムを共有できない、システム全体の分析が困難になる、などの問題点を解決することが可能となっている。
請求項2記載の構成によれば、弱いアクセス権の通常処理単位は、当該通常処理単位固有のメモリ領域にのみアクセスできる。また、通常処理単位よりも強いアクセス権を有する特権処理単位は、当該特権処理単位固有のメモリ領域のみならず、同一の処理単位グループに属する他の処理単位のメモリ領域にもアクセスできる。これにより、処理単位グループ内においても、処理単位ごとに異なるアクセス権を付与することができるので、各処理単位固有のメモリ領域を適切に保護することが可能となっている。
更には、特権処理単位であっても、他の処理単位グループ固有のメモリ領域にはアクセスできないため、処理単位グループが互いに干渉することを避けることができ、処理単位グループの独立性を保つことができる。
請求項3記載の構成によれば、複数のコアユニット間で共有されて実行可能な共有処理を設けることができる。そして、共有処理固有のメモリ領域は、処理単位によるアクセスから保護されるようになっている。このため、例えばデバイスドライバやミドルウェアなどの汎用性の高いアプリケーションを処理単位グループの枠を超えて共有することが可能となっている。すなわち、複数のOSを使用した場合にはこのような共有ができないため、システムが複雑となる、メモリ容量が圧迫される、などの問題点があったが、これらの問題点を解決することが可能となっている。
(請求項4)
請求項4記載の構成によれば、すべてのコアユニット間で共有されて実行可能なカーネル部を設けることができる。そして、カーネル部固有のメモリ領域は、他のプログラムから保護されるようになっている。このため、オペレーティングシステムの根幹部であるカーネル部が、他のプログラムにより破壊されることを防止することができる。
(請求項5)
請求項5記載の構成によれば、請求項1から4のいずれかに記載の発明と同様の効果を奏することができる。
(情報処理装置)
図1は、本発明に係る情報処理装置の構成を示すブロック図である。この図が示すように、本発明に係る情報処理装置は、プロセッサ2と、メモリ3と、オペレーティングシステム1と、を有している。なお、情報処理装置の構成としては少なくともこれらを有していれば良く、他の構成を含んでいても良い。例えば、外部記憶装置や入出力装置などを備えていても良い。
(プロセッサ2)
本実施形態に係るプロセッサ2は、複数のプロセッサコア100を1つの集積回路に実装したマルチコアプロセッサであり、図1に示すように、4つのプロセッサコア100を有している。なお、プロセッサコア100の数としてはこれに限らず、5つ以上でも良いし、3つ以下でも良い。
また、このプロセッサ2は、後述する保護領域指定機能と、後述する複数の実行モードと、を有するものである。
(メモリ3)
メモリ3は、図1に示すように、バスによりプロセッサ2と接続されている。このメモリ3には、後述するオペレーティングシステム1や、オペレーティングシステム1により作成されるタスク等のプログラムや種々のデータが記憶され、また、プログラムを実行する際のデータを一時的に記憶するための領域としても使用される。
オペレーティングシステム1は、プロセッサやメモリなどのハードウェアを、下記の(1)乃至(10)の手段として機能させるための制御プログラムである。このオペレーティングシステムは、ハードウェアに対して直接的にアクセスできるとともに、ハードウェアを抽象化して各種アプリケーションプログラムに各種のサービスを提供するものである。
なお、オペレーティングシステム1としては、下記の(1)乃至(10)の手段に限定されるものではなく、他の手段を含んでいても良い。
(1)コアユニット管理手段10
(2)タスク生成手段25
(3)コアユニット決定手段20
(4)タスクグループ化手段26
(5)タスク実行手段30
(6)メモリ領域割り当て手段35
(7)不正アクセス検出手段40
(8)モード切替手段45
(9)共有カーネルアプリケーション定義手段46
(10)カーネル部定義手段47
以下、それぞれについて説明する。
コアユニット管理手段10は、上記したプロセッサコア100をコアユニット101としてグループ化して管理するためのものである。
本実施形態においては、各プロセッサコア100がどのコアユニット101に属するかを記述するための定義ファイルが設けられている。そして、コアユニット管理手段10は、この定義ファイルをシステムの初期化時に読み込むことにより、プロセッサコア100をコアユニット101としてグループ化している。グループ化の情報は、後述するタスクグループ化手段26の有するテーブル管理され、後述するタスクグループと関連付けられる。
なお、本実施形態においては、図1に示すように、コアユニット101を3つ設けている。すなわち、1つのプロセッサコア100からなるコアユニット101(このように単一のプロセッサコア100からなるコアユニット101を、以下「シングルコアユニット」と呼ぶ)が2つと、2つのプロセッサコア100からなるコアユニット101(このように複数のプロセッサコア100からなるコアユニット101を、以下「マルチコアユニット」と呼ぶ)が1つの、3つである。なお、コアユニット101の数としてはこれに限らず、4つ以上でも良いし、2つ以下でも良い。しかしながら、プロセッサ2が有するすべてのプロセッサコア100は、いずれかのコアユニット101に属するようにしなければならない。
タスク生成手段25は、オペレーティングシステム1が制御するタスクを生成するためのものであり、請求項に言う「処理単位生成手段」に相当する。
本実施形態に係るタスク生成手段25は、タスク生成用の所定のAPIが呼び出されたときに、このAPIのパラメータとして指定された条件に従ってタスクを生成する。
(3)コアユニット決定手段20
コアユニット決定手段20は、生成されたタスクがどのコアユニット101で実行されるかを決定するものである。
なお、タスクを実行するコアユニット101がマルチコアユニットである場合、このマルチコアユニットを構成する複数のプロセッサコア100のうちのいずれのプロセッサコア100上でタスクが実行されるかは、後述するスケジューリングポリシーによって決定される。
タスクグループ化手段26は、アプリケーションタスク70をタスクグループ200にグループ化するものであり、請求項に言う処理単位グループ化手段に相当する。
ここで、タスクグループ200とは、上記コアユニット決定手段20により同一のコアユニット101で実行されると決定されたアプリケーションタスク70をグループ化したものであり、請求項に言う処理単位グループに相当する。このタスクグループ200は、コアユニット101に対応するように、コアユニット101と同数だけ設けられる。
なお、タスクグループ化手段26は、コアユニット101ごとに設けられたテーブルを用いて、アプリケーションタスク70をグループ化している。具体的には、上記コアユニット決定手段20によりアプリケーションタスク70が実行されるコアユニット101が決定されたのちに、当該アプリケーションタスク70の情報を、対応するコアユニット101に係るテーブルで管理し、これにより同一のコアユニット101上で実行されるアプリケーションタスク70をグループ化している。
(5)タスク実行手段30
タスク実行手段30は、各コアユニット101に対応して設けられ、当該コアユニット101に対応するタスクグループ200に属するアプリケーションタスク70等を、当該コアユニット101上で実行させるものであり、請求項に言う処理単位実行手段に相当する。
なお、タスク実行手段30が実行するのはアプリケーションタスク70に限らず、その他のプログラム、具体的には、後述する共有カーネルアプリケーション55や、カーネル部50に含まれるプログラムをも実行するものである。
(6)メモリ領域割り当て手段35
メモリ領域割り当て手段35は、後述する各タスクグループ200、各アプリケーションタスク70、共有カーネルアプリケーション55、カーネル部50、のそれぞれに対し、メモリ3からそれぞれ固有のメモリ領域を割り当てるものである。すなわち、当該オペレーティングシステム1が制御するシステムに設けられたメモリのうち、所定のメモリ領域は、各タスクグループ200、各アプリケーションタスク70、共有カーネルアプリケーション55、カーネル部50、のそれぞれが使用するメモリ領域として割り当てられている。
なお、本実施形態においては、上記したメモリマップの一部は、オペレーティングシステム1のコンパイル(リンク)時に予め決定され、その他はシステムの初期化時に決定される。これにより、どのメモリ領域が、どういったアクセスから保護されるかが決定される。すなわち、メモリマップ上のある番地からある番地までは共有カーネルアプリケーション55用のメモリ領域であり、これとは別のある番地からある番地まではカーネル部50用のメモリ領域である、というように各メモリ領域が規定される。そして、各アプリケーションタスク70に固有のメモリ領域222に各アプリケーションタスク70を配置し、共有カーネルアプリケーション55に固有のメモリ領域211に共有カーネルアプリケーション55を配置し、カーネル部50に固有のメモリ領域212にカーネル部50を配置する。このように構成することにより、これらの各メモリ領域に配置されたプログラムが他のメモリ領域にアクセスしたときに、プログラムの配置されたメモリ領域の属性と、プログラムがアクセスしようとしているメモリ領域の属性と、を比較することにより不正アクセスを検出し、メモリ保護がされるようになっている。
(7)不正アクセス検出手段40
不正アクセス検出手段40は、メモリ3への不正アクセスを検出するためのものである。不正アクセスとして検出されるアクセスの内容は後述する。
なお、本実施形態の不正アクセス検出手段40は、具体的には、上述したプロセッサ2の保護領域指定機能とプロセッサ2の実行モードとにより検知された不正アクセスを処理する手段として構成されている。すなわち、プロセッサ2が不正アクセスを検知してCPU例外を発生させた場合に、そのCPU例外を処理するプログラムとして構成されている。
上述したプロセッサ2の実行モードを切り替えるためのものである。すなわち、本発明に係るオペレーティングシステム1は、各プロセッサコア100が処理を実行するモードとして複数の実行モードを有しており、この実行モードはモード切替手段45により適宜切り替えられる。具体的には、本実施形態では「ユーザモード」と、「システムモード」と、「カーネルモード」と、を有しており、実行される処理に応じてこれらを切り替えるようになっている。この各モードの詳細は後述する。
(9)共有カーネルアプリケーション定義手段46
共有カーネルアプリケーション定義手段46は、共有カーネルアプリケーション55を定義するためのものであり、請求項に言う共有処理定義手段に相当する。
なお、共有カーネルアプリケーション55とは、複数のコアユニット101のうちの少なくとも2以上のコアユニット101上で実行可能なものである。そして、この共有カーネルアプリケーション55は、当該共有カーネルアプリケーション55を実行可能なコアユニット101に係るタスク実行手段30により当該コアユニット101上で実行されものである。
なお、本実施の形態では、共有カーネルアプリケーション55はすべてのコアユニット101で実行可能であるが、これに限らず、一部のコアユニット101でのみ実行可能な共有カーネルアプリケーション55を設けても良い。
(10)カーネル部定義手段47
カーネル部定義手段47は、カーネル部50を定義するためのものである。
なお、カーネル部50は、複数のコアユニット101のうちのいずれかのコアユニット101上で実行可能なものである。そして、このカーネル部50は、当該カーネル部50を実行可能なコアユニット101に係るタスク実行手段30により当該コアユニット101上で実行されものである。カーネル部50は、オペレーティングシステム1の根幹部分をなすプログラムであり、ハードウェアリソースの管理を行ったり、処理単位の管理を行ったりするものである。本実施形態に係るカーネル部50は、タスク生成手段25やタスク実行手段30などの各手段、システムタイマ割り込みハンドラ、CPU例外ハンドラ、カーネルの動作に必要なカーネル内部タスクなどを含んでいる。
次に、図3を見ながら、タスクグループ200について説明する。
タスクグループ200は、前述したように、コアユニット決定手段20により同一のコアユニット101で実行されると決定されたアプリケーションタスク70(請求項に言う「処理単位」)をグループ化したものである。このタスクグループ200は、コアユニット101に対応するように、コアユニット101と同数だけ設けられる。
タスクグループ200の実体はアプリケーションタスク70の集合であり、同一のタスクグループ200に属するアプリケーションタスク70は、同一のコアユニット101で実行されるようになっている。例えば、図3のタスクグループ1に属するアプリケーションタスク70はコアユニット1で実行され、タスクグループ2に属するアプリケーションタスク70はコアユニット2で実行され、タスクグループ3に属するアプリケーションタスク70はコアユニット3で実行される。なお、図3ではタスクグループ200に属するアプリケーションタスク70を3つとしているが、これは説明の便宜上であり、アプリケーションタスク70の数はシステムの設計により適宜決定することができる。
そして、これらのユーザアプリケーションタスク65とカーネルアプリケーションタスク60とからなるタスクグループ200のそれぞれが後述するタスクグループの保護領域230に配置されることにより、1つの独立したサブシステムを構成している。つまり、後述するように、各タスクグループの保護領域230間でメモリ保護がされているため、他のタスクグループの保護領域230から干渉されることがないサブシステムを構成している。これにより、例えば既存システムの流用やシステムの統合を行う際に、これらのシステムを所定のタスクグループの保護領域230に配置してサブシステム化することができる。これにより、他のサブシステムから受ける影響を小さくし、サブシステム内のリアルタイム性の予測を容易とすることが可能となっている。また、これらのサブシステムを互いに独立したものとすることができるので、他のサブシステムによるメモリ破壊からプログラムを保護することが可能となっている。
なお、ユーザアプリケーションタスク65とカーネルアプリケーションタスク60との一番の違いは、他のアプリケーションタスク70に対するアクセス権(不正アクセス検出手段40が不正アクセスとして検出するアクセスの違い)であるが、この点は後ほど詳述する。
次に、本システムにおけるタスクスケジューリングについて説明する。
前述したように、本システムでは、コアユニット101ごとにタスク実行手段30が設けられている。同様に、本システムは、コアユニット101ごとに図示しないスケジューラが設けられ、また、図示しないレディーキューを保持している。これにより、タスクグループ200に属するアプリケーションタスク70は、当該アプリケーションタスク70がREADY状態となると、当該タスクグループ200に係るコアユニット101用のスケジューラにより、当該コアユニット101に係るレディーキューにつながれることとなる。そして、当該レディーキューの先頭にあるタスクが、タスク実行手段30により順次実行される。すなわち、タスクグループ200に属するアプリケーションタスク70は、必ず当該アプリケーションタスク70に係るコアユニット101上で動作することになる。
ところで、マルチコアユニットは複数のプロセッサコア100からなるため、マルチコアユニットに係るアプリケーションタスク70が実行される場合、どのプロセッサコア100で実行されるのかを決定する必要がある。マルチコアユニットに係るアプリケーションタスク70が実行されるプロセッサコア100は以下の通りである。
(2)アイドル状態のプロセッサコア100がないときには、最も優先度の低いタスクを実行しているプロセッサコア100
(3)アイドル状態のプロセッサコア100が複数あるか、最も優先度の低いタスクを実行しているプロセッサコア100が複数ある場合には、当該アプリケーションタスク70が前回動作したプロセッサコア100
(4)(3)で当該アプリケーションタスク70が前回動作したプロセッサコア100が選択可能でない場合は、プロセッサコア100に割り振ったID(図示せず)が小さい方のプロセッサコア100
(共有カーネルアプリケーション55、カーネル部50)
共有カーネルアプリケーション55(請求項に言う「共有処理」)は、タスクグループ200共通のシステム処理を行うものであり、前述したように、割り込みハンドラ、タイムイベントハンドラ、デバイスドライバ関数、ファイルシステムなどのミドルウェアタスクなどを含んでいる。この共有カーネルアプリケーション55は、カーネルアプリケーションタスク60と同様の処理が可能である。すなわち、I/Oに直接アクセスでき、呼び出せるOSのAPI(システムコール)もカーネルアプリケーションタスク60と同様である。異なる点は、共有カーネルアプリケーション55はタスクグループ200に属しないため、1のコアユニット101と関連付けられていない点である。これに起因して、(1)共有カーネルアプリケーション55はいずれのコアユニット101上でも実行可能であり、(2)共有カーネルアプリケーション55は後述する各タスクグループ200固有のメモリ領域にもアクセスできる点で、カーネルアプリケーションタスク60とは異なる。このように、共有カーネルアプリケーション55は、アプリケーションタスク70と比較して処理の自由度が高いため、システムに与える影響が大きいものである。そのため、後述するように、アプリケーションタスク70よりも強力に不正アクセスから保護されている。
カーネル部50は、前述したように、オペレーティングシステム1の根幹部分をなすプログラムであり、タスク生成手段25やタスク実行手段30などの各手段、システムタイマ割り込みハンドラ、CPU例外ハンドラ、カーネルの動作に必要なカーネル内部タスクなどを含んでいる。このカーネル部50は、共有カーネルアプリケーション55と同様にタスクグループ200に属しないため、1のコアユニット101と関連付けられておらず、いずれのコアユニット101上でも実行可能である。また、システム上のすべてのメモリ領域にアクセス可能であり、システムに与える影響が最も大きい部分である。そのため、後述するように、このカーネル部50は最も強力に不正アクセスから保護されている。
次に、図4を見ながら本システムの初期化処理について説明する。なお、以下の初期化処理は、予め決められた所定のプロセッサコア100(マスタコア)において実行される。
まず、図4のS100において、システムの初期化処理が開始する。具体的には、モニタプログラムが起動し、各種のハードウェアの初期化処理などを行い、カーネル部50を起動させる。そして、S101に進む。
S101において、カーネル部50が起動する。そして、システム構成情報の内容に従ってカーネル部50自身の初期化処理を行う。また、メモリ関連の初期化処理、CPU/デバイスの初期化処理、タスクなどのカーネルオブジェクトの初期化処理を行う。そして、S102に進む。
S103において、タスクグループ化手段26は、コアユニット管理手段10がS102で取得したコアユニット101情報を元にコアユニット101ごとの管理テーブルを作成する。これにより、タスクグループ200が作成される。そして、S104に進む。
S104において、コアユニット101(タスクグループ200)ごとの初期化処理が実行される。例えば、コアユニット101(タスクグループ200)ごとにタスク実行手段30が起動され、初期タスクが実行される。
(タスクの実行)
次に、図5を見ながら本実施形態に係るタスクの実行について説明する。
まず、図5のS200において、タスク生成用のAPIが呼び出される。そして、S201に進む。
S201において、コアユニット決定手段20すなわちタスク生成手段25が、タスク生成用のAPIのパラメータとして指定されたコアユニット101情報を取得する。これにより、タスクが実行されるコアユニット101が決定される。ここで、パラメータでコアユニット101が指定されていない場合、このタスクは、呼び出し元のタスクと同じコアユニット101で実行されると決定される。なお、タスクグループ200に属するアプリケーションタスク222は、コアユニット101情報を指定してタスク生成用のAPIを呼び出すことはできない。これは、他のタスクグループ200にアプリケーションタスク222を作成できるとすると、タスクグループの保護領域230間の干渉を避けるという目的を達成できないためである。そして、S202に進む。
S204において、タスクがREADY状態となると、当該タスクは、タスクが実行されるコアユニット101に係るレディーキューへとつながれる。なお、このとき、タスクグループ化手段26がコアユニット101ごとに保持している管理テーブルを参照することにより、タスクが実行されるコアユニット101の情報が取得される。
その後、S205において、タスクがレディーキューの先頭となり、使用可能なプロセッサコア100があれば、タスクが実行される。
次に、本発明に係る不正アクセスの検出について説明する。
本実施形態においては、プロセッサ2の実行モードと保護領域指定機能とを用いて不正アクセスを検出している。以下において、実行モードと保護領域指定機能とのそれぞれについて説明する。
(実行モード)
本実施形態に係るオペレーティングシステム1は、各プロセッサコア100が処理を実行するモードとして複数の実行モードを有しており、この実行モードはモード切替手段45により切り替えられる。具体的には、実行モードとして、「ユーザモード」「システムモード」「カーネルモード」が設けられており、それぞれのモードでアクセス可能なメモリ領域として、「カーネルエリア」「システムエリア」「ユーザエリア」が設けられている。
そして、図6に示すように、「カーネルモード」では「カーネルエリア」「システムエリア」「ユーザエリア」のすべてにアクセス可能であり、「システムモード」では「カーネルエリア」以外の「システムエリア」「ユーザエリア」にアクセス可能であり、「ユーザモード」では「ユーザエリア」のみがアクセス可能となっている。
また、システムエリアには、共有カーネルアプリケーション55、カーネルアプリケーションタスク60、およびこれらに固有のデータが配置される。このシステムエリアは、プロセッサ2の機能を用いて、プロセッサ2が特権モードのときのみアクセスできるよう保護されたエリアである。
また、カーネルエリアには、カーネル部50、およびこれらに固有のデータが配置される。このカーネルエリアは、プロセッサ2が特権モードのときでもアクセスできないようにメモリ属性が与えられているエリアである。なお、ユーザエリアおよびシステムエリアに配置されたプログラムがカーネルエリアにアクセスするには、カーネル部50が持つ特別な手続きを踏んでアクセスする必要があるため、他のプログラムによりカーネル部50が破壊されることはないようになっている。
まず、図8を参照して割り込み処理を例にして説明する。
図8のS300において、割り込みが発生する。そして、S301に進む。
S301において、モード切替手段45により、実行モードがカーネルモードに切り替えられる。すなわち、「カーネルエリア」「システムエリア」「ユーザエリア」のすべてにアクセス可能なモードとなる。そして、S302に進む。
S302において、カーネル部50により割り込みが受け付けられる。カーネル部50は発生した割込みを特定して、該当する割込みハンドラを呼び出す。そして、S303に進む。
S304において、割り込みハンドラが実行される。そして、S305に進む。
S305において、割り込みハンドラの実行が終了したのち、割り込み発生前のプログラムに復帰する。このとき、割り込み発生前の実行モードがシステムモードでなければ、モード切替手段45により、実行モードが割り込み発生前の実行モードに切り替えられる。例えば「ユーザモード」に切り替わった場合、「ユーザエリア」のみにアクセ可能となる。
図9のS400において、ユーザアプリケーションタスク65がシステムコールを発行する。そして、S401に進む。
S401において、モード切替手段45により、実行モードがカーネルモードに切り替えられる。すなわち、「カーネルエリア」「システムエリア」「ユーザエリア」のすべてにアクセス可能なモードとなる。そして、S402に進む。
S402において、カーネル部50によりシステムコールに対応した処理が実行される。そして、S403に進む。
(保護領域指定機能)
本実施形態に係るプロセッサ2は、特定のメモリ領域を保護することが可能な保護領域指定機能を有している。これにより、所定のメモリ領域へのアクセス権を制御し、当該メモリ領域への不正アクセスを検出している。
具体的には、各ユーザアプリケーションタスク65に固有のメモリ領域であるユーザアプリケーションタスク固有エリア220と、各タスクグループ200に固有のメモリ領域であるタスクグループ固有エリア202と、が、この保護領域指定機能により保護されている。
次に、具体的に各メモリ領域がどのように保護されており、どのようなアクセスが不正アクセスとして検出されるのかを、図7を参照しながら説明する。
図7は、各エリア間でアクセス可能な範囲を示す概念図であり、上に行くほど保護が弱い領域であり、下に行くほど保護が強い領域となっている。そして、「OK」として示したものは、矢印の始端側のメモリ領域に配置されたプログラムが矢印の終端側のメモリ領域にアクセス可能な場合を表しており、「NG」として示したものは、矢印の始端側のメモリ領域に配置されたプログラムが矢印の終端側のメモリ領域にアクセスできない場合、すなわち、不正アクセスとして検出されるアクセスを表している。なお、便宜上、近接したレイヤの領域間のアクセス(矢印)しか記載していないが、矢印の有無に関わらず、下の領域から上の領域へのアクセスはすべて可能であり、上の領域から下の領域へのアクセスはすべて禁止されている。例えば、カーネル部固有エリア212からユーザアプリケーションタスク固有エリア220へのアクセスは可能であるが、ユーザアプリケーションタスク固有エリア220からカーネル部固有エリア212へのアクセスは当然に禁止される。
タスクグループ共有エリア201は、システムに1つ設けられた領域であり、すべてのプログラムからアクセス可能である。例えば、タスクグループ200間でメモリを使った通信を行う場合など、アクセスが禁止されたメモリ領域間でデータの受け渡しを行う場合などに使用する。
タスクグループ固有エリア202は、タスクグループ200ごとに設けられた領域である。この領域は、当該タスクグループ200に属するアプリケーションタスク222、共有カーネルアプリケーション55、カーネル部50からアクセス可能である。しかしながら、他のタスクグループ200に属するアプリケーションタスク222からはアクセスできない。
カーネルアプリケーションタスク固有エリア221は、カーネルアプリケーションタスク60ごとに設けられた領域であり、各カーネルアプリケーションタスク60が配置される。この領域は、当該タスクグループ200に属するカーネルアプリケーションタスク60、共有カーネルアプリケーション55、カーネル部50からアクセス可能である。しかしながら、他のタスクグループ200に属するアプリケーションタスク222や、当該タスクグループ200に属するユーザアプリケーションタスク65からはアクセスできない。
カーネル部固有エリア212は、システムに1つ設けられた領域であり、カーネル部50が配置される。この領域は、カーネル部50のみアクセス可能である。アプリケーションタスク222や共有カーネルアプリケーション55からはアクセスできない。
なお、上述したユーザアプリケーションタスク固有エリア220とカーネルアプリケーションタスク固有エリア221とが、請求項に言う「処理単位固有のメモリ領域」に相当する。また、このユーザアプリケーションタスク固有エリア220とカーネルアプリケーションタスク固有エリア221とに、タスクグループ固有エリア202を加えた領域が、請求項に言う「処理単位グループ固有のメモリ領域」に相当する。
そして、ユーザアプリケーションタスク固有エリア220についても、この保護領域指定機能により保護されている。これにより、1のユーザアプリケーションタスク65に係るユーザアプリケーションタスク固有エリア220は、他のユーザアプリケーションタスク65によるアクセスから保護されている。
次に、不正アクセスが検出された場合の動作について、図10乃至12を参照しながら説明する。
まず、図10のS500において、不正アクセスが発生する。そして、S501に進む。
S501において、発生した不正アクセスをプロセッサ2が検知し、CPU例外を発生させる。そして、S502に進む。
S502において、不正アクセス検出手段40が、CPU例外を検出し、対応するCPU例外ハンドラを起動する。そして、図11で示すCPU例外ハンドラ処理に進む。
まず、図11のS600において、CPU例外ハンドラは、例外を発生したタスクをサスペンドする。そして、S601に進む。
S601において、CPU例外ハンドラは、CPU例外発生時の情報を取得する。CPU例外発生時の情報は、具体的には、例外の発生したプロセッサコア100、例外の発生したコアユニット101、実行中のタスクの情報、レジスタ値などである。これらの情報は、後述する例外ハンドラコールバックや例外タスクコールバックで使用可能となっている。そして、S602に進む。
S603において、例外ハンドラコールバックが呼び出され、ユーザが指定した例外ハンドラコールバック処理が実行される。そして、S604に進む。
S604において、例外ハンドラは、例外マネージャタスクを起床して処理を終了する。なお、例外マネージャタスクとは、後述する例外タスクコールバックを呼び出すためのタスクであり、最高優先度を持つため、CPU例外ハンドラの処理が終了するとすぐに実行される。
例外マネージャタスク処理では、図12のS700で示すように、例外タスクコールバックが登録されているかが判定される。そして、例外タスクコールバックが登録されている場合、S701に進む。例外タスクコールバックが登録されていない場合、例外マネージャタスク処理は終了する。
S701において、例外タスクコールバックが呼び出され、ユーザが指定した例外タスクコールバック処理が実行される。そして、例外マネージャタスク処理が終了する。
(まとめ)
本実施形態によれば、上記のように構成されているので、対称型マルチプロセッシングと非対称型マルチプロセッシングとの双方の利点を生かしたシステムを構築できる。
このようなオペレーティングシステム1を使用すれば、例えば異なる信頼性が求められる複数のシステムを統合する際に、これら複数のシステム(サブシステム)のそれぞれが異なるタスクグループの保護領域230に属するように設計することで、互いの干渉を避けることができる。すなわち、システムの再利用性を高め、安全性を確保することができる。そして、各タスクグループ200はそれぞれにCPUリソースが配分されているため、それぞれのパフォーマンス予測が容易となっている。
更に、これらサブシステムを動作させるオペレーティングシステム1の基幹部分は、サブシステムから保護されているため、システム全体の信頼性も高めることができる。しかも、サブシステムから保護される基幹部分の保護レベルも2段階に設けられており、より信頼性が求められるカーネル部50と、複数のサブシステム間で共有されるべき共有カーネルアプリケーション55と、による2段階の保護が可能となっている。これにより、カーネル部50を強力に保護しながら、必要な処理はサブシステム間で共有できるようになっている。
なお、上記した実施形態では、請求項に言う「処理単位」が「タスク」であるとして説明したが、これに限らない。例えば、「処理単位」が「プロセス」であるとしても良い。なお、ここで言う「プロセス」とは、複数のタスクもしくはスレッドからなるものであり、同一のプロセスに属する複数のタスクもしくはスレッドは、当該プロセス内のメモリ領域を共有できるものを指す。
2 プロセッサ
3 メモリ
10 コアユニット管理手段
20 コアユニット決定手段
25 タスク生成手段(処理単位生成手段)
26 タスクグループ化手段(処理単位グループ化手段)
30 タスク実行手段(処理単位実行手段)
35 メモリ領域割り当て手段
40 不正アクセス検出手段
45 モード切替手段
46 共有カーネルアプリケーション定義手段(共有処理定義手段)
47 カーネル部定義手段
50 カーネル部
55 共有カーネルアプリケーション(共有処理)
60 カーネルアプリケーションタスク(特権処理単位)
65 ユーザアプリケーションタスク(通常処理単位)
70 アプリケーションタスク(処理単位)
100 プロセッサコア
101 コアユニット
200 タスクグループ(処理単位グループ)
201 タスクグループ共有エリア
202 タスクグループ固有エリア
211 共有カーネルアプリケーション固有エリア(共有処理固有のメモリ領域)
212 カーネル部固有エリア(カーネル部固有のメモリ領域)
220 ユーザアプリケーションタスク固有エリア
221 カーネルアプリケーションタスク固有エリア
222 アプリケーションタスク固有エリア(処理単位固有のメモリ領域)
230 タスクグループの保護領域(処理単位グループ固有のメモリ領域)
Claims (5)
- 複数のプロセッサコアを有するプロセッサと、前記複数のプロセッサコアのすべてからアクセス可能なメモリと、を有するシステム上で動作するオペレーティングシステムであって、
前記複数のプロセッサコアを1以上のプロセッサコアからなる複数のコアユニットにグループ化して管理するコアユニット管理手段と、
種々の処理を行うためのタスクまたはプロセスのいずれかである処理単位を生成する処理単位生成手段と、
処理単位生成時に指定されたパラメータに基づいて、生成された処理単位が前記複数のコアユニットのいずれで実行されるかを決定するためのコアユニット決定手段と、
前記コアユニット決定手段により同一のコアユニットで実行されると決定された処理単位を処理単位グループとしてグループ化する処理単位グループ化手段と、
前記複数のコアユニットごとに対応して設けられ、対応するコアユニットで実行されると決定された処理単位が実行可能状態となったときに、当該処理単位をコアユニットごとに設けられたレディーキューにつなぐことによって当該コアユニットごとにスケジューリングして、当該コアユニット上で実行させる複数の処理単位実行手段と、
前記複数の処理単位グループに対して、前記メモリから各処理単位グループ固有のメモリ領域を割り当てるメモリ領域割り当て手段と、
前記メモリへの不正アクセスを検出する不正アクセス検出手段と、
前記複数のコアユニットのうちの少なくとも2以上のコアユニット上で実行可能な処理単位を含む共有処理を定義する共有処理定義手段と、
を有し、
前記不正アクセス検出手段は、
処理単位が、当該処理単位の属する処理単位グループとは別の処理単位グループ固有のメモリ領域に対してアクセスしたときに、このアクセスを不正アクセスとして検出することを特徴とする、
オペレーティングシステム。 - 前記処理単位生成手段は、処理単位として、通常処理単位と、通常処理単位よりも強いアクセス権を有する特権処理単位と、を生成可能であり、
前記メモリ領域割り当て手段は、各処理単位に対し、前記メモリから各処理単位固有のメモリ領域を割り当てており、
前記処理単位固有のメモリ領域は、当該処理単位の属する処理単位グループ固有のメモリ領域の一部として扱われ、その結果、前記不正アクセス検出手段は、処理単位が、当該処理単位が属する処理単位グループとは別の処理単位グループに属する処理単位固有のメモリ領域に対してアクセスしようとしたときに、このアクセスを不正アクセスとして検出し、
また、前記不正アクセス検出手段は、
通常処理単位が、当該通常処理単位とは別の処理単位固有のメモリ領域に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出し、
特権処理単位が、当該特権処理単位とは別の処理単位であって、同一の処理単位グループに属する処理単位固有のメモリ領域に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出しないことを特徴とする、
請求項1記載のオペレーティングシステム。 - 前記メモリ領域割り当て手段は、前記共有処理に対して、前記メモリから共有処理固有のメモリ領域を割り当てており、
前記不正アクセス検出手段は、
前記複数の処理単位グループのいずれかに属する処理単位が、当該共有処理固有のメモリ領域に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出するが、
前記共有処理が、当該共有処理を実行可能なコアユニットに係る処理単位グループのいずれかに固有のメモリ領域、に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出しないことを特徴とする、
請求項1または2記載のオペレーティングシステム。 - 前記複数のコアユニットのうちの任意のコアユニット上で実行可能な処理単位を含むカーネル部を定義するカーネル部定義手段を有し、
前記メモリ領域割り当て手段は、前記カーネル部に対して、前記メモリからカーネル部固有のメモリ領域を割り当てており、
前記不正アクセス検出手段は、
前記カーネル部に含まれない処理が、前記カーネル部固有のメモリ領域に対してアクセスしようとしたときには、このアクセスを不正アクセスとして検出するが、
前記カーネル部が、前記処理単位グループ固有のメモリ領域および前記共有処理固有のメモリ領域のいずれにアクセスしようとしたときには、このアクセスを不正アクセスとして検出しないことを特徴とする、
請求項3に記載のオペレーティングシステム。 - 複数のプロセッサコアを有するプロセッサと、前記複数のプロセッサコアのすべてからアクセス可能なメモリと、前記プロセッサ上で動作する請求項1から4のいずれかに記載のオペレーティングシステムと、を有することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008285049A JP4576452B2 (ja) | 2008-11-06 | 2008-11-06 | オペレーティングシステムおよび情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008285049A JP4576452B2 (ja) | 2008-11-06 | 2008-11-06 | オペレーティングシステムおよび情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010113488A JP2010113488A (ja) | 2010-05-20 |
JP4576452B2 true JP4576452B2 (ja) | 2010-11-10 |
Family
ID=42302007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008285049A Active JP4576452B2 (ja) | 2008-11-06 | 2008-11-06 | オペレーティングシステムおよび情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4576452B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141436B2 (en) | 2011-09-26 | 2015-09-22 | Samsung Electronics Co., Ltd. | Apparatus and method for partition scheduling for a processor with cores |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690635B2 (en) | 2012-05-14 | 2017-06-27 | Qualcomm Incorporated | Communicating behavior information in a mobile computing device |
US9202047B2 (en) | 2012-05-14 | 2015-12-01 | Qualcomm Incorporated | System, apparatus, and method for adaptive observation of mobile device behavior |
US9319897B2 (en) | 2012-08-15 | 2016-04-19 | Qualcomm Incorporated | Secure behavior analysis over trusted execution environment |
US9747440B2 (en) | 2012-08-15 | 2017-08-29 | Qualcomm Incorporated | On-line behavioral analysis engine in mobile device with multiple analyzer model providers |
US10089582B2 (en) | 2013-01-02 | 2018-10-02 | Qualcomm Incorporated | Using normalized confidence values for classifying mobile device behaviors |
US9686023B2 (en) | 2013-01-02 | 2017-06-20 | Qualcomm Incorporated | Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors |
US9684870B2 (en) | 2013-01-02 | 2017-06-20 | Qualcomm Incorporated | Methods and systems of using boosted decision stumps and joint feature selection and culling algorithms for the efficient classification of mobile device behaviors |
US9742559B2 (en) | 2013-01-22 | 2017-08-22 | Qualcomm Incorporated | Inter-module authentication for securing application execution integrity within a computing device |
JP5816994B2 (ja) * | 2013-04-01 | 2015-11-18 | 株式会社アクセル | 制御コントローラ、制御コントローラにおける制御コントロール方法 |
JP2021012601A (ja) * | 2019-07-08 | 2021-02-04 | 株式会社デンソー | 並列化方法、半導体制御装置、車載制御装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004054934A (ja) * | 2002-06-26 | 2004-02-19 | Microsoft Corp | プロセスモードが独立したドライバモデル |
JP2005063033A (ja) * | 2003-08-08 | 2005-03-10 | Toshiba Corp | クラスタシステム及びサーバプログラム |
JP2005284630A (ja) * | 2004-03-29 | 2005-10-13 | Oki Electric Ind Co Ltd | オペレーティングシステム |
JP2006259821A (ja) * | 2005-03-15 | 2006-09-28 | Hitachi Ltd | 並列計算機の同期方法及びプログラム |
JP2007510198A (ja) * | 2003-10-08 | 2007-04-19 | ユニシス コーポレーション | ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化 |
JP2007524896A (ja) * | 2003-03-04 | 2007-08-30 | セキュアーシックスティフォー ソフトウェア コーポレイション | カスタマイズされた実行環境および該環境をサポート可能なオペレーティング・システム |
US20070239965A1 (en) * | 2006-03-31 | 2007-10-11 | Saul Lewites | Inter-partition communication |
US20080028408A1 (en) * | 2006-07-25 | 2008-01-31 | Day Michael N | Logical partitioning and virtualization in a heterogeneous architecture |
JP2008186212A (ja) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | データ処理システム |
-
2008
- 2008-11-06 JP JP2008285049A patent/JP4576452B2/ja active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004054934A (ja) * | 2002-06-26 | 2004-02-19 | Microsoft Corp | プロセスモードが独立したドライバモデル |
JP2007524896A (ja) * | 2003-03-04 | 2007-08-30 | セキュアーシックスティフォー ソフトウェア コーポレイション | カスタマイズされた実行環境および該環境をサポート可能なオペレーティング・システム |
JP2005063033A (ja) * | 2003-08-08 | 2005-03-10 | Toshiba Corp | クラスタシステム及びサーバプログラム |
JP2007510198A (ja) * | 2003-10-08 | 2007-04-19 | ユニシス コーポレーション | ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化 |
JP2005284630A (ja) * | 2004-03-29 | 2005-10-13 | Oki Electric Ind Co Ltd | オペレーティングシステム |
JP2006259821A (ja) * | 2005-03-15 | 2006-09-28 | Hitachi Ltd | 並列計算機の同期方法及びプログラム |
US20070239965A1 (en) * | 2006-03-31 | 2007-10-11 | Saul Lewites | Inter-partition communication |
US20080028408A1 (en) * | 2006-07-25 | 2008-01-31 | Day Michael N | Logical partitioning and virtualization in a heterogeneous architecture |
JP2008186212A (ja) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | データ処理システム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141436B2 (en) | 2011-09-26 | 2015-09-22 | Samsung Electronics Co., Ltd. | Apparatus and method for partition scheduling for a processor with cores |
Also Published As
Publication number | Publication date |
---|---|
JP2010113488A (ja) | 2010-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4576452B2 (ja) | オペレーティングシステムおよび情報処理装置 | |
JP3546678B2 (ja) | マルチos構成方法 | |
Levin et al. | Policy/mechanism separation in Hydra | |
JP4947441B2 (ja) | マルチプロセッサシステム、マルチプロセッサシステムにおけるシステム構成方法及びそのプログラム | |
US9633231B2 (en) | Hardware-protective data processing systems and methods using an application executing in a secure domain | |
JP2007220086A (ja) | 入出力制御装置、入出力制御システム及び入出力制御方法 | |
JP4345630B2 (ja) | 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム | |
US7661115B2 (en) | Method, apparatus and program storage device for preserving locked pages in memory when in user mode | |
KR20160014647A (ko) | 인터럽트 핸들링 방법 및 장치 | |
CN104866762A (zh) | 安全管理程序功能 | |
EP2948853B1 (en) | Synchronizing parallel applications in an asymmetric multi-processing system | |
JP2013161299A (ja) | 情報処理装置、インタフェースアクセス方法 | |
JP4026667B2 (ja) | マルチos構成方法 | |
JP2007316710A (ja) | マルチプロセッサシステム、ワークロード管理方法 | |
Lin et al. | Supporting lock‐based multiprocessor resource sharing protocols in real‐time programming languages | |
KR101535792B1 (ko) | 운영체제 구성 장치 및 방법 | |
KR101571992B1 (ko) | 계산기, 액세스 관리 방법 및 컴퓨터 판독 가능한 기억 매체 | |
US8078907B2 (en) | Failsoft system for multiple CPU system | |
CN111737013B (zh) | 芯片的资源管理方法、装置、存储介质及系统芯片 | |
CN113569231A (zh) | 多进程的mpu保护方法、装置及电子设备 | |
Wellings et al. | Beyond ada 2005: allocating tasks to processors in smp systems | |
Wulf et al. | Virtualization of Reconfigurable Mixed-Criticality Systems | |
KR102363718B1 (ko) | 실시간 운영체제에서 파티션 별 장치 리소스를 할당하는 방법 및 그 장치 | |
CN113420287B (zh) | 一种抵御基于高速缓存的侧信道攻击的方法 | |
CN110502325B (zh) | 一种任务运行方法及装置、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100222 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100310 |
|
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: 20100803 |
|
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: 20100823 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4576452 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |