(57)【要約】【課題】簡易な構造によって、より確実な排他制御を行うこと。【解決手段】複数のタスクを実行可能な情報処理装置であって、前記複数のタスクによってアクセスされる一又は複数の共有アクセス対象と、前記複数のタスクに対して前記共有アクセス対象への排他的アクセス権を付与する排他的アクセス権付与手段と、を備え、前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、前記共有アクセス対象における論理アドレスを変更すると共に、前記共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して前記変更された論理アドレスに関する情報を通知することを特徴とする、情報処理装置。【選択図】図８
2012113632.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを実行可能な情報処理装置であって、
前記複数のタスクによってアクセスされる一又は複数の共有アクセス対象と、
前記複数のタスクに対して前記共有アクセス対象への排他的アクセス権を付与する排他的アクセス権付与手段と、
を備え、
前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、前記共有アクセス対象における論理アドレスを変更すると共に、前記共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して前記変更された論理アドレスに関する情報を通知することを特徴とする、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記共有アクセス対象に関する物理アドレスと論理アドレスの対応関係を規定したアドレス対応関係規定テーブルを備え、
前記複数のタスクは、前記アドレス対応関係規定テーブルを参照し、自己が認識する前記共有アクセス対象の論理アドレスに対応する物理アドレスを取得して前記共有アクセス対象にアクセスするように設定されており、
前記排他的アクセス権付与手段は、前記アドレス対応関係規定テーブルの内容を変更することにより前記共有アクセス対象における論理アドレスを変更する手段である、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
将来において前記共有アクセス対象への排他的アクセス権を取得する順序を規定するアクセス権待ちキューを備え、
前記排他的アクセス権付与手段は、前記アクセス権待ちキューに規定された順序に従って、前記共有アクセス対象への排他的アクセス権を付与する手段である、
情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、前記共有アクセス対象における論理アドレスをランダムに変更することを特徴とする、
情報処理装置。
【請求項５】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権の付与先を変更する際に、前記共有アクセス対象における論理アドレスを周期的に変更することを特徴とする、
情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の情報処理装置であって、
前記排他的アクセス権付与手段は、オペレーティングシステムである、
情報処理装置。
【請求項７】
マルチスレッド処理装置、マルチコア・プロセッサ、マルチプロセッサ処理装置のいずれかの構成を有する請求項１ないし６の情報処理装置。
【請求項８】
複数のタスクを実行可能な情報処理装置が、前記複数のタスクによってアクセスされる一又は複数の共有アクセス対象への排他的アクセス権を管理するための排他的アクセス権管理方法であって、
前記共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、
前記共有アクセス対象における論理アドレスを変更する論理アドレス変更ステップと、
前記共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して前記変更された論理アドレスに関する情報を通知する論理アドレス通知ステップと、
を実行することを特徴とする、
情報処理装置の排他的アクセス権管理方法。
【請求項９】
請求項８に記載の情報処理装置の排他的アクセス権管理方法であって、
前記論理アドレス変更ステップにおいて、前記共有アクセス対象における論理アドレスをランダムに変更することを特徴とする、
情報処理装置の排他的アクセス権管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクを実行可能な情報処理装置、及びその排他的アクセス権管理方法に関する。
【背景技術】
【０００２】
従来、複数のタスクを実行可能な情報処理装置が知られている。具体的には、一パッケージ内に複数のＣＰＵコア（プロセッサコア）を封入して各ＣＰＵコアが独立して処理を行うマルチコア・プロセッサ、時分割で複数のスレッドが処理を行うソフトウエア・マルチスレッディングやハードウエアの一部をスレッド専用としたハードウエア・マルチスレッディングを行うマルチスレッド処理装置、ＣＰＵ等のプロセッサを複数個備えるマルチプロセッサ処理装置等が実用化されている。
【０００３】
特に、近年の車載制御装置の分野においては、ＣＰＵ等の処理能力向上に伴い、複数のタスク（ある程度の機能的まとまりを有する一群の命令をいう；或いはプロセス）を一の情報処理装置において並行して実行させ、コストや重量、搭載スペースを低減する動きが見られる。
【０００４】
この種の情報処理装置において、タスク間（或いはＣＰＵ間）でデータを共有したり、外部機器との間で入出力されるデータを各タスクが参照できるようにするための一手段として、共有メモリ等に共有データを格納することが行われている。また、外部機器との間でデータを入出力するためのポート等も、タスク（或いはＣＰＵ間）で共用されることが多い。このため、殆どの装置において、複数のタスクがアクセス可能な共有アクセス対象が存在する。
【０００５】
各タスクが共有アクセス対象にアクセスしようとする際には、その時点でアクセス権を有するタスクに排他的アクセス権が設定され、それ以外のタスクは同一の共有アクセス対象にアクセスできないように制御されるのが通常である（排他制御）。複数のタスクが同時に同一の共有アクセス対象にアクセスすると、エラーや干渉が発生することにより装置全体が一時的にロック状態となったり、書き込まれたデータにエラーが生じたりするという不都合が生じ得るためである。
【０００６】
特許文献１に記載の共有メモリ管理方式では、複数のタスクのうち共有メモリにアクセスしようとするタスクは、まず共有メモリ管理テーブルにおける所定のデータを参照して、共有メモリがロック状態（いずれかのタスクに排他的アクセス権が設定された状態）であるか、アンロック状態（排他的アクセス権が設定されていない状態）であるかを確認し、アンロック状態であれば、共有メモリ管理テーブルにおける所定のデータをロック状態に変更した上でアクセスを開始するものとしている。また、各タスクは、排他的アクセス権が設定された状態となると、自己が保有する論理アドレスと共有メモリの物理アドレスとのマッピングを切り替え、共有メモリにアクセス可能となるように自己の状態を切り換えている。
【０００７】
また、特許文献２に記載の排他制御方法においても、同様な制御が行われている。この排他制御方法では、ある上位インターフェースが共有アクセス対象であるＩ／Ｏデバイスにアクセスしようとした際に、上位インターフェースに接続されたチャンネルアダプタが上位インターフェース番号を認識して論理パス番号を特定する。チャンネルアダプタは、論理パス番号を含む使用要求コマンドをリソースマネージャに送信する。リソースマネージャは、排他制御テーブルを参照して他の上位インターフェースが同じＩ／Ｏデバイスを使用中であるか否かを確認し、使用中でない場合には、アクセス要求を出した上位インターフェースにＩ／Ｏデバイスの使用を許可する。そして、この上位インターフェースに割り当てた論理パス番号に対応させてＩ／Ｏデバイスの「使用中」を排他制御テーブルに登録し、使用終了により登録した「使用中」を「未使用」に戻すことにより排他制御を行っている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平３−１５４９４５号公報
【特許文献２】特開平７−８４９３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献１に記載の共有メモリ管理方式では、共有メモリがロック状態であるか否かを確認する処理がタスクに含まれているため、排他制御を確実に行うことができない場合が生じ得る。すなわち、共有メモリにアクセス可能とするか、不可とするかの判断を各タスクが行っているため、排他的アクセス権を取得していないタスクによるアクセスを強制的に排除する構造となっていない。従って、タスクが排他制御に適応したものでない場合に、アクセス競合が生じる可能性を排除できない。
【００１０】
また、上記特許文献２に記載の排他制御方法では、上位インターフェース毎にチャンネルアダプタのような構成を備える必要があり、装置のコストやサイズが過大となるおそれがある。
【００１１】
本発明はこのような課題を解決するためのものであり、簡易な構造によって、より確実な排他制御を行うことが可能な情報処理装置、及びその排他的アクセス権管理方法を提供することを、主たる目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明の第１の態様は、
複数のタスクを実行可能な情報処理装置であって、
前記複数のタスクによってアクセスされる一又は複数の共有アクセス対象と、
前記複数のタスクに対して前記共有アクセス対象への排他的アクセス権を付与する排他的アクセス権付与手段と、
を備え、
前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、前記共有アクセス対象における論理アドレスを変更すると共に、前記共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して前記変更された論理アドレスに関する情報を通知することを特徴とする、
情報処理装置である。
【００１３】
この本発明の第１の態様によれば、共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、共有アクセス対象における論理アドレスを変更すると共に、共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して変更された論理アドレスに関する情報を通知するため、簡易な構造によって、より確実な排他制御を行うことができる。
【００１４】
本発明の第１の態様において、
前記共有アクセス対象に関する物理アドレスと論理アドレスの対応関係を規定したアドレス対応関係規定テーブルを備え、
前記複数のタスクは、前記アドレス対応関係規定テーブルを参照し、自己が認識する前記共有アクセス対象の論理アドレスに対応する物理アドレスを取得して前記共有アクセス対象にアクセスするように設定されており、
前記排他的アクセス権付与手段は、前記アドレス対応関係規定テーブルの内容を変更することにより前記共有アクセス対象における論理アドレスを変更する手段であるものとしてもよい。
【００１５】
また、本発明の第１の態様において、
将来において前記共有アクセス対象への排他的アクセス権を取得する順序を規定するアクセス権待ちキューを備え、
前記排他的アクセス権付与手段は、前記アクセス権待ちキューに規定された順序に従って、前記共有アクセス対象への排他的アクセス権を付与する手段であるものとしてもよい。
【００１６】
また、本発明の第１の態様において、
前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、前記共有アクセス対象における論理アドレスをランダムに変更することを特徴とするものとしてもよい。
【００１７】
こうすれば、過去に通知した論理アドレスが、その時点で有効な論理アドレスと偶然に一致することにより排他制御が不全状態となる不都合を抑制することができる。
【００１８】
また、本発明の第１の態様において、
前記排他的アクセス権付与手段は、前記共有アクセス対象への排他的アクセス権の付与先を変更する際に、前記共有アクセス対象における論理アドレスを周期的に変更することを特徴とするものとしてもよい。
【００１９】
また、本発明の第１の態様において、
前記排他的アクセス権付与手段は、例えばオペレーティングシステムである。
【００２０】
また、本発明の第１の態様において、
マルチスレッド処理装置、マルチコア・プロセッサ、マルチプロセッサ処理装置のいずれかの構成を有するものとしてもよい。
【００２１】
本発明の第２の態様は、
複数のタスクを実行可能な情報処理装置が、前記複数のタスクによってアクセスされる一又は複数の共有アクセス対象への排他的アクセス権を管理するための排他的アクセス権管理方法であって、
前記共有アクセス対象への排他的アクセス権の付与先を変更する際に、
前記共有アクセス対象における論理アドレスを変更する論理アドレス変更ステップと、
前記共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して前記変更された論理アドレスに関する情報を通知する論理アドレス通知ステップと、
を実行することを特徴とする、
情報処理装置の排他的アクセス権管理方法である。
【００２２】
この本発明の第２の態様によれば、共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に、共有アクセス対象における論理アドレスを変更するステップと、共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して変更された論理アドレスに関する情報を通知するステップと、を実行するため、簡易な構造によって、より確実な排他制御を行うことができる。
【００２３】
本発明の第２の態様において、
前記論理アドレス変更ステップにおいて、前記共有アクセス対象における論理アドレスをランダムに変更することを特徴とするものとしてもよい。
【００２４】
こうすれば、過去に通知した論理アドレスが、その時点で有効な論理アドレスと偶然に一致することにより排他制御が不全状態となる不都合を抑制することができる。
【発明の効果】
【００２５】
本発明によれば、簡易な構造によって、より確実な排他制御を行うことが可能な情報処理装置、及びその排他的アクセス権管理方法を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例に係る情報処理装置１のシステム構成例である。
【図２】オペレーティングシステム１２が認識している共有アクセス対象のアドレス情報と、アクセス権待ちキュー２０と、アドレス対応関係規定テーブル２５と、を示す図である。
【図３】本実施例の情報処理装置１が有する各構成要素による処理の流れの一例を示すシーケンス図である。
【図４】初期状態における共有アクセス対象のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。
【図５】ある状態における共有アクセス対象のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。
【図６】ある状態における共有アクセス対象のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。
【図７】ある状態における共有アクセス対象のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。
【図８】本実施例に係るオペレーティングシステム１２により実行される処理の流れを示すフローチャートである。
【図９】マルチコア・プロセッサやマルチプロセッサ処理装置に適用された場合のシステム構成例である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２８】
以下、図面を参照し、本発明の情報処理装置について説明する。本発明の情報処理装置１は、マルチコア・プロセッサ、マルチスレッド処理装置、マルチプロセッサ処理装置等、複数のタスクを実行可能な情報処理装置に適用される。以下の説明では、ソフトウエア・マルチスレッディングを行うマルチスレッド処理装置に適用されたものとするが、これに限定されるものではない。
【００２９】
［基本構成］
図１は、本発明の一実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、主要な構成として、ＣＰＵ（Central  Processing  Unit）１０と、メモリ３０と、を備える。
【００３０】
ＣＰＵ１０は、例えば、命令デコーダ、各種レジスタ、演算回路、キャッシュメモリ、フラッシュメモリ、プログラムカウンタ等を有するシングルコアＣＰＵである。ＣＰＵ１０は、図示しないＲＯＭ（Read  Only  Memory）等に格納された命令を実行することによりオペレーティングシステム１２を機能させる。
【００３１】
また、ＣＰＵ１０は、図示しないＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等のプログラムメモリに格納された命令を時分割で処理することにより、複数のタスクＡ、Ｂ、Ｃ…を実行する。
【００３２】
ここで、タスクとは、ある程度の機能的まとまりを有する一群の命令をいい、その命令の数や長さ等に特段の制限はない。具体的な例では、情報処理装置１が車両に搭載された制御装置であるものとすると、各タスクは、例えば、多気筒エンジンの各気筒の点火タイミングをそれぞれ制御するための命令群である。
【００３３】
複数のタスクＡ、Ｂ、Ｃ…は、ソフトウエア・マルチスレッディングにより並行して実行される。すなわち、まずタスクＡの実行に一定時間を付与し、一定時間が経過するとタスクＡの実行を一時停止してタスクＢの実行を開始する。次いで、タスクＢに付与された一定時間が経過するとタスクＢの実行を一時停止してタスクＣの実行を開始する。このように複数のタスクの処理を順次行うことによって、長期視点では、複数のタスクが並行して実行されることになる。なお、実行するタスクの数や割り当てられる帯域（時間配分）等に特段の制限はなく、任意の数のタスクが任意の時間配分で実行されてよい。
【００３４】
ＣＰＵ１０は、更に、レジスタやキャッシュメモリ、フラッシュメモリ等の記憶装置上に設定される記憶領域として、アクセス権待ちキュー２０と、アドレス対応関係規定テーブル２５と、を備える。これらについては、後述する。
【００３５】
メモリ３０は、例えばＲＡＭ（Random  Access  Memory）である。ＣＰＵ１０は、Ｉ／Ｏポートやバス等を介して、メモリ３０に接続されている。メモリ３０は、複数のタスクＡ、Ｂ、Ｃ…によってアクセスされる共有アクセス対象の一つであり、タスク間の情報共有等に用いられる。なお、特許請求の範囲における共有アクセス対象は、メモリ３０のような共有メモリに限らず、Ｉ／Ｏポートを指すものとしてもよいし、或いはＩ／Ｏポートとメモリ３０の双方を指すものとしてもよい。メモリ３０のような共有メモリが複数個存在する場合もあり得る。
【００３６】
また、本発明における共有アクセス対象は、メモリ以外の何らかの構成、例えばセンサや通信機、Ａ／Ｄ（又はＤ／Ａ）変換器等を指すものとしても構わない。
【００３７】
［排他制御］
各タスクがメモリ３０にアクセスしようとする際には、その時点でアクセス権を有するタスクに排他的アクセス権が設定され、それ以外のタスクはメモリ３０にアクセスできないように排他制御される。前述のように、エラーや干渉が発生することを防止するためである。
【００３８】
本実施例の情報処理装置１においては、排他制御は、オペレーティングシステム１２、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５によって実現される。
【００３９】
図２は、オペレーティングシステム１２が認識している共有アクセス対象のアドレス情報と、アクセス権待ちキュー２０と、アドレス対応関係規定テーブル２５と、を示す図である。
【００４０】
共有アクセス対象のアドレス情報は、メモリ３０その他の共有アクセス対象の識別番号（図中、ｘと表記している）、その時点で設定されている共有アクセス対象の論理アドレス及び物理アドレスを含む。なお、共有アクセス対象のアドレス情報における論理アドレスは、専らオペレーティングシステム１２が共有アクセス対象に関する諸々の制御を行うためのものであり、本発明の中核部分とは直接の関係を有さない。
【００４１】
アクセス権待ちキュー２０は、前述の共有アクセス対象の識別番号に対応し（図では共有リソース番号と表記した）、その共有アクセス対象が使用中（アクセス中）であるか未使用であるかを示す状態情報、当該共有アクセス対象へのアクセス権待ちを行っているタスクを示す待ちキュー情報を含む。
【００４２】
アドレス対応関係規定テーブル２５は、その時点における、共有アクセス対象の物理アドレスと論理アドレスの対応関係を規定している。アドレス対応関係規定テーブル２５は、更に、当該共有アクセス対象を使用中のタスクが設定している利用態様（ＲＯＮＬＹ；ＲＥＡＤのみ可能、ＷＯＮＬＹ；ＷＲＩＴＥのみ可能、ＲＷ；ＲＥＡＤとＷＲＩＴＥの双方が可能、等）を示す属性情報を含む。
【００４３】
これらの情報は、例えばレジスタ等の記憶装置における所定領域に格納され、オペレーティングシステム１２によって書き換えられる。
【００４４】
オペレーティングシステム１２は、複数のタスクＡ、Ｂ、Ｃ…に対して、共有アクセス対象への排他的アクセス権を付与する。オペレーティングシステム１２は、共有アクセス対象への排他的アクセス権を保持するタスクを変更する際に（或いは初期状態から一のタスクに共有アクセス対象への排他的アクセス権を付与する際に）、当該共有アクセス対象の論理アドレスを変更すると共に、共有アクセス対象への排他的アクセス権を新たに付与するタスクに対して、変更された論理アドレスに関する情報を通知する。なお、共有アクセス対象であるメモリ３０を領域分割して用いている場合においては、「メモリ３０の論理アドレス」を「メモリ３０の分割された各領域の先頭アドレスにおける論理アドレス」と置換することができる。すなわち、メモリ３０の複数の領域が、それぞれ物理アドレスと論理アドレスを有する複数の共有アクセス対象として扱われてもよい。
【００４５】
共有アクセス対象の論理アドレスの変更は、アドレス対応関係規定テーブル２５における論理アドレスの箇所を書き換えることによって行われる。複数のタスクＡ、Ｂ、Ｃ…は、前述したように、オペレーティングシステム１２から通知された共有アクセス対象の論理アドレスに関する情報を保持しており、アドレス対応関係規定テーブル２５を参照し、自己が認識する共有アクセス対象の論理アドレスに対応する物理アドレスを取得してメモリ３０にアクセスするように設定されている。
【００４６】
従って、オペレーティングシステム１２がアドレス対応関係規定テーブル２５の内容を書き換えることにより、新たな論理アドレスが通知されたタスクのみが共有アクセス対象にアクセス可能となり、排他的アクセス権が付与された（排他的アクセス権を保持した）状態となる。なお、上記のような、各タスクがアドレス対応関係規定テーブルを参照して共有アクセス対象にアクセスするような処理は、通常のソフトウエアにおける一般的な処理であり、本発明の適用のために特段、タスクを加工する必要がない。
【００４７】
このような排他制御によって、排他的アクセス権を取得したタスク以外のタスクによる共有アクセス対象へのアクセスが確実に防止されることになる。なお、各タスクがその時点で有効でない論理アドレスを用いてアドレス対応関係規定テーブル２５を参照した際には、オペレーティングシステム１２にアクセスエラーが通知されることになり、オペレーティングシステム１２が排他制御におけるエラー発生を認識することができる。
【００４８】
また、タスクが物理アドレスの参照に用いるアドレス対応関係規定テーブル２５の変更と、新たな物理アドレスの通知のみによって排他制御が行われるため、ハードウエア面とソフトウエア面の双方において複雑な構造を必要とせず、簡易な構造によって排他制御が実現される。
【００４９】
オペレーティングシステム１２は、共有アクセス対象の論理アドレスの変更をランダムに行うものとすると、より好適である。こうすれば、過去に通知した論理アドレスが、その時点で有効な論理アドレスと偶然に一致することにより排他制御が不全状態となる不都合を抑制することができる。
【００５０】
また、オペレーティングシステム１２は、共有アクセス対象の論理アドレスの変更を周期的に行うものとしても構わない。この場合、過去に通知した論理アドレスが、その時点で有効な論理アドレスと偶然に一致することを回避するため、タスクの絶対数、或いは時分割でタスクに処理を割り振る際の一周期分に割り振られるタスクの数と、論理アドレスの変更を周期的に行う際の一周期分の変更回数を一致させない（より好ましくは、倍数としない）等の工夫が望まれる。
【００５１】
［処理の流れ］
以下、本実施例の情報処理装置１によって実行される排他制御の処理の流れについて、より具体的に説明する。
【００５２】
図３は、本実施例の情報処理装置１が有する各構成要素による処理の流れの一例を示すシーケンス図である。本図で示す処理の初期状態において、いずれのタスクも共有アクセス対象についての排他的アクセス権は付与されていないものとする。また、簡略化のため、タスクはＡ及びＢの二個が存在するものとし、オペレーティングシステム１２を「ＯＳ」と、アクセス権待ちキュー２０を「キュー」と、アドレス対応関係規定テーブル２５を「テーブル」と、共有アクセス対象を「アクセス対象」と、それぞれ表記した。
【００５３】
図４は、初期状態における共有アクセス対象（１）のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。以下、図における番号「１」は共有アクセス対象のうち一つ（以下、共有アクセス対象（１）とする）に対応したものとし、その物理アドレスは「0x2000」であるものとする。
【００５４】
まず、タスクＡがオペレーティングシステム１２（図中、「ＯＳ」と表記した）に対して共有アクセス対象（１）へのアクセス要求を通知する（Ｓ１００）。
【００５５】
オペレーティングシステム１２は、アクセス権待ちキュー２０を参照し、共有アクセス対象（１）が「未使用」状態であることを確認すると（Ｓ１０２）、アクセス権待ちキュー２０を「使用中」に書き換える（Ｓ１０４）。
【００５６】
更に、オペレーティングシステム１２は、アドレス対応関係規定テーブル２５における、共有アクセス対象（１）に対応した論理アドレスの箇所をランダムに書き換え（Ｓ１０６）、書き換えた論理アドレスをタスクＡに通知する（Ｓ１０８）。これによって、共有アクセス対象（１）についての排他的アクセス権がタスクＡに付与された状態となる。図５は、この状態における共有アクセス対象（１）のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。ここでは、共有アクセス対象（１）の論理アドレスとして「0x3000」が書き込まれたものとする。なお、オペレーティングシステム１２は、タスクＡから通知された使用態様に応じてアドレス対応関係規定テーブル２５の共有アクセス対象（１）に関する属性情報を書き換える。
【００５７】
タスクＡは、通知された論理アドレスを用いてアドレス対応関係規定テーブル２５から物理アドレスを取得し（Ｓ１１０）、当該物理アドレスを用いて共有アクセス対象（１）にアクセス開始する（Ｓ１１２）。例えば、共有アクセス対象（１）がメモリ３０である場合には、ＲＥＡＤ処理等を開始する。
【００５８】
共有アクセス対象（１）についての排他的アクセス権がタスクＡに付与された状態において、タスクＢがオペレーティングシステム１２に対して共有アクセス対象（１）へのアクセス要求を通知すると（Ｓ１１４）、オペレーティングシステム１２は、アクセス権待ちキュー２０を参照して共有アクセス対象（１）が「使用中」状態であることを確認し（Ｓ１１６）、アクセス権待ちキュー２０の「待ちキュー」にタスクＢを追加する（Ｓ１１８）。図６は、この状態における共有アクセス対象（１）のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。この際に、待ち状態となったことをタスクＢに通知してもよい。
【００５９】
タスクＡは、共有アクセス対象（１）へのアクセスを終了すると（Ｓ１２０）、共有アクセス対象（１）へのアクセス権を解放する旨の通知をオペレーティングシステム１２に対して行う（Ｓ１２２）。
【００６０】
オペレーティングシステム１２は、アクセス権を解放する旨の通知をタスクＡから受領すると、アクセス権待ちキュー２０を参照し（Ｓ１２４）、待ちキューからタスクＢを削除する（Ｓ１２６）。
【００６１】
更に、オペレーティングシステム１２は、アドレス対応関係規定テーブル２５における、共有アクセス対象（１）に対応した論理アドレスをランダムに書き換え（Ｓ１２８）、書き換えた論理アドレスをタスクＢに通知する（Ｓ１３０）。これによって、共有アクセス対象（１）についての排他的アクセス権がタスクＢに付与された状態となる。図７は、この状態における共有アクセス対象（１）のアドレス情報、アクセス権待ちキュー２０、及びアドレス対応関係規定テーブル２５の内容を示す図である。ここでは、共有アクセス対象（１）の論理アドレスとして「0x4000」が書き込まれたものとする。
【００６２】
タスクＢは、通知された論理アドレスを用いてアドレス対応関係規定テーブル２５から物理アドレスを取得し（Ｓ１３２）、当該物理アドレスを用いて共有アクセス対象（１）にアクセス開始する（Ｓ１３４）。
【００６３】
タスクＢは、共有アクセス対象（１）へのアクセスを終了すると（Ｓ１３６）、共有アクセス対象（１）へのアクセス権を解放する旨の通知をオペレーティングシステム１２に対して行う（Ｓ１３８）。
【００６４】
オペレーティングシステム１２は、アクセス権を解放する旨の通知をタスクＢから受領すると、アクセス権待ちキュー２０を参照し（Ｓ１４０）、共有アクセス対象（１）の状態を「未使用」に書き換える（Ｓ１４２）。
【００６５】
このような処理によって、簡易な構造により、排他的アクセス権を取得したタスク以外のタスクによる共有アクセス対象へのアクセスが確実に防止される。
【００６６】
なお、上記のようなアクセス権待ちキュー２０の管理は、ループメモリとアクセスポインタ等を用いて実現されてもよい。
【００６７】
また、図８は、本実施例に係るオペレーティングシステム１２により実行される処理の流れを示すフローチャートである。本フローは、共有アクセス対象毎に、所定周期をもって繰り返し実行される。なお、本フローは、図３で説明した処理のうちオペレーティングシステム１２の処理に着目したものであり、図３と同一の処理であっても異なるステップ番号を付している。
【００６８】
まず、オペレーティングシステム１２は、いずれかのタスクによりアクセス要求が通知されたか否かを判定する（Ｓ２００）。
【００６９】
いずれかのタスクによりアクセス要求が通知されると、アクセス権待ちキュー２０を参照することにより、当該共有アクセス対象の状態が「使用中」であるか否かを判定する（Ｓ２０２）。
【００７０】
当該共有アクセス対象の状態が「未使用」であれば、アクセス権待ちキュー２０の「状態」を「使用中」に変更し（Ｓ２０４）、更にアドレス対応関係規定テーブル２５の内容を書き換えて当該共有アクセス対象の論理アドレスを変更し（Ｓ２０６）、変更した論理アドレスをタスクに通知する（Ｓ２０８）。
【００７１】
一方、当該共有アクセス対象の状態が「使用中」であれば、アクセス権待ちキュー２０にタスクを追加する（Ｓ２１０）。
【００７２】
次いで、オペレーティングシステム１２は、いずれかのタスクによりアクセス権を解放する旨の通知がなされたか否かを判定する（Ｓ２１２）。アクセス権を解放する旨の通知がなされなかった場合は、何も処理を行わずに本フローの１ルーチンを終了する。
【００７３】
いずれかのタスクによりアクセス権を解放する旨の通知がなされると、待ちタスクが存在するか否かを判定する（Ｓ２１４）。
【００７４】
待ちタスクが存在する場合は、アクセス権待ちキュー２０の内容を変更する（Ｓ２１６）。具体的には、待ちキューにタスクが登録されていれば、最先に登録されていたタスクを削除してその他のタスクの順位を繰り上げ、待ちキューにタスクが登録されていなければ、当該共有アクセス対象の「状態」を「未使用」に変更する。
【００７５】
そして、アドレス対応関係規定テーブル２５の内容を書き換えて当該共有アクセス対象の論理アドレスを変更し（Ｓ２１８）、変更した論理アドレスを最先に登録されていたタスクに通知し（Ｓ２２０）、本フローの１ルーチンを終了する。
【００７６】
一方、待ちタスクが存在しない場合は、アクセス権待ちキュー２０の「状態」を「未使用」に変更して（Ｓ２２２）、本フローの１ルーチンを終了する。
【００７７】
［まとめ］
以上説明した本実施例の情報処理装置、及びその排他的アクセス権管理方法によれば、共有アクセス対象の論理アドレスを、排他的アクセス権を付与する度に変更するため、排他的アクセス権を取得したタスク以外のタスクによる共有アクセス対象へのアクセスが確実に防止される。
【００７８】
また、タスクが物理アドレスの参照に用いるアドレス対応関係規定テーブル２５の変更と、新たな物理アドレスの通知のみによって排他制御が行われるため、ハードウエア面とソフトウエア面の双方において複雑な構造を必要とせず、簡易な構造によって排他制御が実現される。
【００７９】
従って、簡易な構造によって、より確実な排他制御を行うことができる。
【００８０】
更に、共有アクセス対象の論理アドレスの変更をランダムに行うため、過去に通知した論理アドレスが、その時点で有効な論理アドレスと偶然に一致することにより排他制御が不全状態となる不都合を抑制することができる。
【００８１】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００８２】
例えば、排他制御を行う主体は、オペレーティングシステム１２に限らず、専用の制御ソフトウエアであっても構わない。
【００８３】
また、ソフトウエア・マルチスレッディングを行うことにより複数のタスクを実行するものとして説明したが、これに限らず、ハードウエア・マルチスレッディングを行うことにより複数のタスクを実行するものとしてもよい。この場合、複数のタスク毎に命令デコーダや専用レジスタ等の専用ハードウエアが設けられ、演算回路等の一部のハードウエアがスレッド間で共有される構成となる。
【００８４】
また、マルチスレッド処理装置に限らず、マルチコア・プロセッサやマルチプロセッサ処理装置に適用され、複数のＣＰＵコア、或いは複数のＣＰＵによって、複数のタスクが実行されるものとしてもよい。この場合、排他制御を行う主体は、マスターＣＰＵとして機能するＣＰＵコア、或いはＣＰＵとしてもよいし、いずれかのタスクを実行するＣＰＵコア、或いはＣＰＵが排他制御の主体を兼ねてもよい。図９は、マルチコア・プロセッサやマルチプロセッサ処理装置に適用された場合のシステム構成例である。
【符号の説明】
【００８５】
１    情報処理装置
１０  ＣＰＵ
１２  オペレーティングシステム
２０  アクセス権待ちキュー
２５  アドレス対応関係規定テーブル
３０  メモリ
Ａ、Ｂ、Ｃ  タスク
【図１】
2012113632.tif 000003
【図２】
2012113632.tif 000004
【図３】
2012113632.tif 000005
【図４】
2012113632.tif 000006
【図５】
2012113632.tif 000007
【図６】
2012113632.tif 000008
【図７】
2012113632.tif 000009
【図８】
2012113632.tif 000010
【図９】
2012113632.tif 000011