(57)【要約】【課題】複数のプロセッサが搭載される計算機装置において、アプリケーションプログラムの実行性能を向上させる。【解決手段】複数のプロセッサ装置１００〜１０２が共有する外部デバイス１１７〜１２０の排他使用が必要なアプリケーションプログラムの実行を開始しようとするプロセッサ装置が他のプロセッサ装置にプロセッサ間割込み信号を送信し、プロセッサ間割込み信号を受信した他のプロセッサ装置が外部デバイスへのアクセス動作を停止するため、外部デバイスの排他使用が必要なアプリケーションプログラムを実行するプロセッサに外部デバイスを排他的に使用させることができ、アプリケーションプログラムの実行性能を向上させることができる。【選択図】図１
2009277007.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサ装置と、前記複数のプロセッサ装置が共有する共有資源が含まれる計算機装置であって、
前記複数のプロセッサ装置の各々は、前記共有資源にアクセスしてアプリケーションプログラムを実行し、
アプリケーションプログラムの実行を開始しようとする実行開始プロセッサ装置は、他のプロセッサ装置に対して前記共有資源の排他使用を要求する排他動作要求信号を送信し、
前記実行開始プロセッサ装置から前記排他動作要求信号を受信したプロセッサ装置は、所定の時間の間、前記共有資源へのアクセス動作を停止することを特徴とする計算機装置。
【請求項２】
前記計算機装置には、更に、
前記複数のプロセッサ装置が共有する共有記憶装置が含まれ、
前記実行開始プロセッサ装置は、他のプロセッサ装置が前記共有資源へのアクセス動作を停止する時間を示す停止時間情報を前記共有記憶装置に書き込むとともに、他のプロセッサ装置に対して前記排他動作要求信号を送信し、
前記実行開始プロセッサ装置から前記排他動作要求信号を受信したプロセッサ装置は、前記共有記憶装置から前記停止時間情報を読み出し、前記停止時間情報に示されている時間の間、前記共有資源へのアクセス動作を停止することを特徴とする請求項１に記載の計算機装置。
【請求項３】
前記計算機装置には、更に、
前記複数のプロセッサ装置が共有する共有記憶装置が含まれ、
前記複数のプロセッサ装置の各々は、アプリケーションプログラムを実行中は、実行中のアプリケーションプログラムの優先度を管理しており、
前記実行開始プロセッサ装置は、実行を開始しようとするアプリケーションプログラムの優先度を示す優先度情報を前記共有記憶装置に書き込むとともに、他のプロセッサ装置に対して前記排他動作要求信号を送信し、
前記実行開始プロセッサ装置から排他動作要求信号を受信したプロセッサ装置は、前記共有記憶装置から前記優先度情報を読み出し、前記優先度情報に示されている優先度が、自装置が実行中のアプリケーションプログラムの優先度よりも高い場合は、所定の時間の間、前記共有資源へのアクセス動作を停止し、前記優先度情報に示されている優先度が、自装置が実行中のアプリケーションプログラムの優先度よりも高くない場合は、前記共有資源へのアクセス動作を停止しないことを特徴とする請求項１又は２に記載の計算機装置。
【請求項４】
前記複数のプロセッサ装置の各々は、
前記排他動作要求信号を送信する排他動作要求送信処理と、前記排他動作要求信号を受信した際に所定の時間の間前記共有資源へのアクセス動作を停止する排他動作要求受信処理とが記述されているオペレーティングシステムを実行して、
前記実行開始プロセッサ装置に該当する場合は、他のプロセッサ装置に対して前記排他動作要求信号を送信し、
前記実行開始プロセッサ装置から前記排他動作要求信号を受信した場合は、所定の時間の間、前記共有資源へのアクセス動作を停止することを特徴とする請求項１〜３のいずれかに記載の計算機装置。
【請求項５】
前記複数のプロセッサ装置の各々は、
共通のオペレーティングシステムを実行することを特徴とする請求項４に記載の計算機装置。
【請求項６】
前記複数のプロセッサ装置は、複数のグループに分類され、
同一のグループに分類されるプロセッサ装置の各々は、
共通のオペレーティングシステムを実行することを特徴とする請求項４に記載の計算機装置。
【請求項７】
前記複数のプロセッサ装置のいずれかのプロセッサ装置は、
前記排他動作要求信号を送信する排他動作要求送信処理が記述されている第１のオペレーティングシステムを実行し、
前記複数のプロセッサ装置の残りのプロセッサ装置は、
前記排他動作要求信号を受信した際に所定の時間の間前記共有資源へのアクセス動作を停止する排他動作要求受信処理が記述されている第２のオペレーティングシステムを実行し、
前記第１のオペレーティングシステムを実行するプロセッサ装置は、前記実行開始プロセッサ装置に該当する場合は、前記第２のオペレーティングシステムを実行するプロセッサ装置に対して前記排他動作要求信号を送信し、
前記第２のオペレーティングシステムを実行するプロセッサ装置は、前記第１のオペレーティングシステムを実行するプロセッサ装置から前記排他動作要求信号を受信した場合は、所定の時間の間、前記共有資源へのアクセス動作を停止することを特徴とする請求項１〜３のいずれかに記載の計算機装置。
【請求項８】
前記実行開始プロセッサ装置は、実行を開始しようとするアプリケーションプログラムの実行に前記共有資源の排他使用が必要であるか否かを判断し、前記共有資源の排他使用が必要である場合に、他のプロセッサ装置に前記排他動作要求信号を送信することを特徴とする請求項１〜７のいずれかに記載の計算機装置。
【請求項９】
複数のプロセッサ装置と、前記複数のプロセッサ装置が共有する共有資源が含まれ、前記複数のプロセッサ装置の各々は、前記共有資源にアクセスしてアプリケーションプログラムを実行する計算機装置に、
アプリケーションプログラムの実行を開始しようとする実行開始プロセッサ装置に、他のプロセッサ装置に対して前記共有資源の排他使用を要求する排他動作要求信号を送信する排他動作要求送信処理と、
前記実行開始プロセッサ装置から前記排他動作要求信号を受信したプロセッサ装置に、所定の時間の間、前記共有資源へのアクセス動作を停止する排他動作要求受信処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサ装置（以下、プロセッサとも表記する）が共有資源にアクセスする際の競合回避技術に関する。
【背景技術】
【０００２】
複数のプロセッサが共有資源を利用する場合として、例えば、非特許文献１に記載された技術がある。
非特許文献１では、複数のプロセッサが、外部バスを共有し、外部バスを介して外部デバイスへ接続されており、１つのプロセッサ、あるいはいくつかのプロセッサをまとめて１単位として、それら１単位毎にオペレーティングシステムが複数同時に動作する計算機において、それぞれのオペレーティングシステムは、アプリケーションプログラム（以下、単にアプリケーションとも表記する）の要求に基づき外部デバイスの操作を、共有バスを介して実行する。
【０００３】
また、複数のプロセッサによる共有資源へのアクセス時の競合回避技術として特許文献１に記載の技術がある。
特許文献１では、複数のプロセッサがメインメモリを共有する共有メモリ方式の多重プロセッサ計算機システムにおいて、複数のプロセッサによって共有されるリソースがロックされる毎にロック粒度を算出すると共に、該算出したロック粒度に基づいてリソースのロック粒度統計情報を更新し、リソースに対するロック待ちが発生したとき、リソースのロック粒度統計情報に基づいてロック待ち方式を決定することが開示されている。
【特許文献１】特開２００１−８４２３５号公報
【非特許文献１】「ＲＥＮＥＳＡＳ  ＥＤＧＥ  １７号」、株式会社ルネサステクノロジ、２００７年４月発行第５巻第１号、Ｐ０２〜Ｐ０３
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１及び非特許文献１の技術をはじめとする従来技術では、複数プロセッサ上で動作する複数オペレーティングシステムにおいて、別のオペレーティングシステムが共有バスを使用している期間、共有資源たる外部デバイスの操作を行うアプリケーションの実行が待たされるために、アプリケーションの実行性能が低下するという課題がある。
【０００５】
この発明は、上記のような課題を解決することを主な目的の一つとしており、複数のプロセッサ装置が搭載されている計算機装置において、共有資源の排他使用が必要なアプリケーションプログラムの実行を開始しようとするプロセッサ装置に共有資源を排他的に使用させて、アプリケーションプログラムの実行性能を向上させることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る計算機装置は、
複数のプロセッサ装置と、前記複数のプロセッサ装置が共有する共有資源が含まれる計算機装置であって、
前記複数のプロセッサ装置の各々は、前記共有資源にアクセスしてアプリケーションプログラムを実行し、
アプリケーションプログラムの実行を開始しようとする実行開始プロセッサ装置は、他のプロセッサ装置に対して前記共有資源の排他使用を要求する排他動作要求信号を送信し、
前記実行開始プロセッサ装置から前記排他動作要求信号を受信したプロセッサ装置は、所定の時間の間、前記共有資源へのアクセス動作を停止することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、共有資源の排他使用が必要なアプリケーションプログラムの実行を開始しようとするプロセッサ装置が排他動作要求信号を送信し、排他動作要求信号を受信した他のプロセッサ装置が共有資源へのアクセス動作を停止するため、共有資源の排他使用が必要なアプリケーションプログラムを実行するプロセッサ装置に共有資源を排他的に使用させることができ、アプリケーションプログラムの実行性能を向上させることができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、本実施の形態に係る計算機装置１０の構成例を示す図である。
図１に示す計算機装置１０は、プロセッサ装置を３基搭載し、１つのオペレーティングシステムが動作する。
また、図２はオペレーティングシステム１０６のディスパッチ処理部１０７を実行する際のプロセッサ装置の動作例を示すフローチャートである。
図３はオペレーティングシステム１０６の排他動作要求送信処理部１０８を実行する際のプロセッサ装置の動作例を示すフローチャートである。
図４はオペレーティングシステム１０６の排他動作要求受信処理部１０９を実行する際のプロセッサ装置の動作例を示すフローチャートである。
【０００９】
本実施の形態に係る計算機装置１０は、図１に示すように、複数のプロセッサ１００〜１０２（この場合は３つ）、各プロセッサに共通のオペレーティングシステム１０６および記憶部１１１、複数の外部デバイス１１７〜１２０（この場合は４つ）、プロセッサおよび外部デバイスを接続する共有バス１１６を備えている。
なお、後述するように外部デバイス１１７〜１２０は複数のプロセッサ１００〜１０２に共有されており、共有資源の例である。
【００１０】
プロセッサ１００〜１０２は、オペレーティングシステム１０６のディスパッチ処理部１０７により割り当てられたアプリケーションを実行する演算処理装置である。
【００１１】
記憶部１１１はプロセッサ１００〜１０２に接続されており、プロセッサ上で実行する複数のアプリケーションであるアプリケーションプログラム（ＡＰ）群１１２、アプリケーションプログラム毎の情報であるアプリケーション情報１１３（ＡＰ情報とも表記する）、全プロセッサ共有の情報を記憶する記憶領域である共有記憶部１１４を有する。共有記憶部１１４は、共有記憶装置の例である。
なお、共有記憶部１１４については実施の形態２以降で説明する。
【００１２】
共有バス１１６は、プロセッサ１００〜１０２および外部デバイス１１７〜１２０を接続するバスである。
【００１３】
プロセッサ間割込み機構１０３〜１０５は、それぞれプロセッサ１００〜１０２内に存在し他のプロセッサへプロセッサ間割込み信号を送信し、また他のプロセッサからのプロセッサ間割込み信号を受信する機構である。
【００１４】
アプリケーション情報１１３は、排他動作要求に関連する情報である排他動作要求情報１１５を格納する。
排他動作要求情報１１５は、排他動作要求の有無を示す排他動作要求フラグを格納する。
【００１５】
オペレーティングシステム１０６において、排他動作要求送信処理部１０８は、それぞれプロセッサ間割込み機構１０３〜１０５を操作し他のプロセッサへプロセッサ間割込み信号を送信する処理である。
排他動作要求受信処理部１０９は、それぞれプロセッサ間割込み機構１０３〜１０５がプロセッサ間割込みを受信した場合に動作する処理である。
タイマ１１０は、設定されるタイムアウト値を元に動作し、タイムアウトが発生することを検出する計時手段である。
なお、オペレーティングシステム１０６の構成要素であるディスパッチ処理部１０７、排他動作要求送信処理部１０８、排他動作要求受信処理部１０９、タイマ１１０の実体は、それぞれの処理を実現するためのコードブロックであり、プロセッサがこれらのコードブロックを読み込んで実行することにより所期の機能が実現される。
【００１６】
次に動作について説明する。
まず、ディスパッチ処理部１０７を実行する際のプロセッサの動作について説明する。
図２はオペレーティングシステム１０６のディスパッチ処理部１０７実行時のプロセッサの動作例を示すフローチャートである。
なお、以下、アプリケーションの実行を開始するプロセッサ（実行開始プロセッサ装置）がプロセッサ１００である場合を想定して説明する。
【００１７】
プロセッサ１００は、ディスパッチ処理部１０７を実行することにより、Ｓ２００においてアプリケーション群１１２から次にプロセッサ１００へ割り当てるアプリケーションを選択する。
次に、プロセッサ１００は、Ｓ２０１で、Ｓ２００において選択したアプリケーションに対応した排他動作要求情報１１５の排他動作要求フラグを調べる。
排他動作要求フラグを調べた結果、当該アプリケーションが排他動作を要求していない場合（Ｓ２０２でＮＯ）は、Ｓ２０４へ進む。
当該アプリケーションが排他動作を要求している場合（Ｓ２０２でＹＥＳ）は、Ｓ２０３へ進み、プロセッサ１００は、排他動作要求送信処理部１０８を実行する。
Ｓ２０４では、Ｓ２００において選択したアプリケーションをプロセッサ１００へ割り当て、ディスパッチ処理部１０７の実行を終了する。
【００１８】
次に、排他動作要求送信処理部１０８を実行する際のプロセッサの動作例について説明する。
図３はオペレーティングシステム１０６の排他動作要求送信処理部１０８実行時のプロセッサの動作例を示すフローチャートである。
プロセッサ１００は、排他動作要求送信処理部１０８を実行することにより、Ｓ３００において他プロセッサへプロセッサ間割込み信号を送信し、その後、排他動作要求送信処理部１０８の実行を終了する。
プロセッサ間割込み信号は、他のプロセッサに対して共有資源たる外部デバイス１１７〜１２０の排他使用を要求する信号であり、排他動作要求信号の例である。
【００１９】
次に、排他動作要求受信処理部１０９を実行する際のプロセッサの動作について説明する。
図４はオペレーティングシステム１０６の排他動作要求受信処理部１０９実行時のプロセッサの動作例を示すフローチャートである。
【００２０】
プロセッサ１０１、１０２は、プロセッサ１００からプロセッサ間割込み信号を受信すると排他動作要求受信処理部１０９を実行する。
プロセッサ１０１、１０２は、排他動作要求受信処理部１０９を実行すると、Ｓ４００でプロセッサ１０１、１０２の動作を一時停止する。なお、ここで一時停止する動作は、外部デバイス１１７〜１２０へのアクセス動作であり、外部デバイス１１７〜１２０へのアクセス動作以外の動作は継続することができる。
次に、プロセッサ１０１、１０２は、Ｓ４０１でタイマ１１０へタイムアウト値を設定し、Ｓ４０２でタイマ動作を開始する。
Ｓ４０３でタイムアウトが発生していない場合は、Ｓ４０３を繰り返す。
Ｓ４０３でタイムアウトが発生している場合は、Ｓ４０４へ進み、プロセッサ１０１、１０２は動作を再開し、終了する。つまり、プロセッサ１０１、１０２は、外部デバイス１１７〜１２０へのアクセス動作を開始することができる。
【００２１】
以上のように、排他動作を要求するアプリケーションを実行する時点で、計算機中で他のプロセッサ動作を一時停止することにより、該アプリケーションは一定期間、計算機中の他のプロセッサの動作の影響を受けずに計算機中で排他的に動作することが可能となる。
【００２２】
以上、本実施の形態では、複数のプロセッサが動作し、各プロセッサ同士はプロセッサ間割込みが接続されており、各プロセッサが共有資源を有する計算機装置において、
アプリケーションは共有資源を独占し実行（排他動作）する必要の有無を示す排他動作要求フラグを有し、
アプリケーションをプロセッサへディスパッチする場合に排他動作要求フラグにより排他動作する必要があると判断した場合は、他のプロセッサへ排他動作要求を送信する排他動作要求送信処理部と、
排他動作要求を受信した場合に、プロセッサを一時停止させる排他動作要求受信処理部を備えたオペレーティングシステムとを有する計算機装置について説明した。
【００２３】
また、本実施の形態では、複数のプロセッサ上で１つのオペレーティングシステムが動作することを説明した。
【００２４】
また、本実施の形態では、排他動作要求はプロセッサ間割込みを用いることを説明した。
【００２５】
また、本実施の形態では、排他動作要求受信処理部がプロセッサを一時停止させる期間は、決められた一定期間とすることを説明した。
【００２６】
実施の形態２．
以上の実施の形態１では、一時停止する期間（タイムアウト値）は固定であったが、次にアプリケーション毎にタイムアウト値を指定できる実施形態を示す。
【００２７】
全体の構成は、実施の形態１と同様である。ただし、実施の形態１では排他動作要求情報１１５は、排他動作要求の有無を示す排他動作要求フラグを記憶していたが、実施の形態２では、排他動作要求フラグ、およびアプリケーションが排他的に動作する時間、すなわち他のプロセッサが共有資源へのアクセス動作を停止する停止時間（タイムアウト値）を示す情報（停止時間情報）を記憶する。
【００２８】
次に動作について説明する。
ディスパッチ処理部１０７の実行時のプロセッサの動作は、実施の形態１と同様である。
【００２９】
次に、排他動作要求送信処理部１０８の実行時のプロセッサの動作について説明する。
図５はオペレーティングシステム１０６の排他動作要求送信処理部１０８実行時のプロセッサの動作例を示すフローチャートである。
本実施の形態においてもプロセッサ１００がアプリケーションの実行を開始する場合を想定して説明を行う。
プロセッサ１００は、排他動作要求送信処理部１０８を実行することで、Ｓ５００において、ディスパッチ処理部１０７の動作時に選択したアプリケーションの排他動作要求情報１１５からタイムアウト値を読み出す。
そして、プロセッサ１００は、読み出したタイムアウト値を共有記憶部１１４へ書き込む（Ｓ５０１）。
次に、プロセッサ１００は、Ｓ５０２で他のプロセッサへプロセッサ間割込み信号を送信し、排他動作要求送信処理部１０８の実行を終了する。
【００３０】
次に、排他動作要求受信処理部１０９実行時のプロセッサの動作について説明する。
図６はオペレーティングシステムの排他動作要求受信処理部１０９実行時のプロセッサの動作例を示すフローチャートである。
プロセッサ１０１、１０２は、プロセッサ１００からのプロセッサ間割込み信号を受信すると排他動作要求受信処理部１０９を実行する。
プロセッサ１０１、１０２は、排他動作要求受信処理部１０９を実行することで、Ｓ６００において、それぞれプロセッサ１０１、１０２の外部デバイス１１７〜１２０へのアクセス動作を一時停止する。
次に、プロセッサ１０１、１０２は、Ｓ６０１で共有記憶部１１４からタイムアウト値を読み出す。
次に、プロセッサ１０１、１０２は、Ｓ６０２でタイマ１１０へタイムアウト値を設定し、Ｓ６０３でタイマ動作を開始する。
次に、プロセッサ１０１、１０２は、Ｓ６０４でタイムアウトが発生していない場合は、Ｓ６０４を繰り返す。
Ｓ６０４でタイムアウトが発生している場合は、Ｓ６０５へ進みプロセッサ１０１、１０２の動作を再開し、終了する。
【００３１】
以上のように、排他動作要求を行うアプリケーション毎にタイムアウト値を指定できるようにしたため、アプリケーション毎に必要最低限のタイムアウト値を設定することができるようになり、排他動作要求を受信したプロセッサが一時停止する期間を短くでき、その分、計算機全体の処理能力を向上することが可能となる。
【００３２】
以上、本実施の形態では、排他動作要求送信処理部は、プロセッサ間割込みを送信すると共に、一時停止する期間を要求し、排他動作要求受信処理部がプロセッサを一時停止させる期間は、排他動作要求送信処理部から要求された期間とすることを説明した。
【００３３】
実施の形態３．
以上の実施の形態１では、排他動作要求を受信した排他動作要求受信処理部は、必ずプロセッサ動作を一時停止していたが、プロセッサが実行中のアプリケーションの優先度に従って、プロセッサ動作の一時停止の可否を判断する実施形態を示す。
【００３４】
全体の構成は、実施の形態１と同様である。
ただし、実施の形態１では排他動作要求情報１１５は、排他動作要求の有無を示す排他動作要求フラグを記憶していたが、実施の形態３では、排他動作要求フラグ、および計算機装置１０内で一意であるアプリケーションの優先度を記憶する。
【００３５】
次に動作について説明する。
【００３６】
ディスパッチ処理部１０７の実行時のプロセッサの動作は、実施の形態１と同様である。
【００３７】
次に、排他動作要求送信処理部１０８実行時のプロセッサの動作について説明する。
図７はオペレーティングシステム１０６の排他動作要求送信処理部１０８実行時のプロセッサの動作例を示すフローチャートである。
本実施の形態においてもプロセッサ１００がアプリケーションの実行を開始する場合を想定して説明を行う。
プロセッサ１００は、排他動作要求送信処理部１０８を実行することで、Ｓ７００において、ディスパッチ処理部１０７の実行時に選択したアプリケーションの排他動作要求情報１１５から当該アプリケーションの優先度を示す優先度情報を読み出す。
次に、プロセッサ１００は、読み出した優先度情報を共有記憶部１１４へ書き込む（Ｓ７０１）。
次に、プロセッサ１００は、Ｓ７０２で他プロセッサへプロセッサ間割込み信号を送信し、排他動作要求送信処理部１０８の実行を終了する。
【００３８】
次に、排他動作要求受信処理部１０９の実行時のプロセッサの動作について説明する。
図８はオペレーティングシステム１０６の排他動作要求受信処理部１０９実行時のプロセッサの動作例を示すフローチャートである。
プロセッサ１０１、１０２は、プロセッサ１００からのプロセッサ間割込み信号を受信すると排他動作要求受信処理部１０９を実行する。
プロセッサ１０１、１０２は、排他動作要求受信処理部１０９を実行することで、Ｓ８００で、プロセッサ１０１、１０２が実行中のアプリケーションの優先度を読み出す。
次に、プロセッサ１０１、１０２は、Ｓ８０１で共有記憶部１１４から優先度情報を読み出す。
次に、プロセッサ１０１、１０２は、Ｓ８０２において優先度を比較し、共有記憶部１１４に記憶されていた優先度の方が優先度が低い場合（Ｓ８０２でＮＯ）は、排他動作要求受信処理部１０９の実行を終了する。つまり、この場合は、プロセッサ１０１、１０２は、プロセッサ１００が実行を開始するアプリケーションが外部デバイス１１７〜１２０の排他使用を要求していても、外部デバイス１１７〜１２０へのアクセス動作を制限さない。
Ｓ８０２において共有記憶部１１４に記憶されていた優先度の方が優先度が高い場合（Ｓ８０２でＹＥＳ）は、プロセッサ１０１、１０２は、Ｓ８０３へ進みプロセッサ１０１、１０２の外部デバイス１１７〜１２０へのアクセス動作を一時停止する。
次に、プロセッサ１０１、１０２は、Ｓ８０４でタイマ１１０へタイムアウト値を設定し、Ｓ８０５でタイマ動作を開始する。
Ｓ８０６でタイムアウトが発生していない場合は、Ｓ８０６を繰り返す。
Ｓ８０６でタイムアウトが発生している場合は、プロセッサ１０１、１０２は、Ｓ８０７へ進みプロセッサ１０１、１０２の動作を再開し、排他動作要求受信処理部１０９の実行を終了する。
【００３９】
以上のように、排他動作要求を行うアプリケーション毎に優先度を指定できるようにしたため、実行中のアプリケーションの方が、排他動作要求を行ったアプリケーションよりも高優先度の場合は、処理を中断することなく継続することが可能となる。
【００４０】
以上、本実施の形態では、アプリケーションは、排他動作要求フラグと共に計算機内で一意となる優先度情報を有し、
排他動作要求送信処理部は、プロセッサ間割込みを送信すると共に、優先度情報を通知し、
排他制御要求受信処理部は、プロセッサ上で実行中のアプリケーションの優先度情報と、排他動作要求送信処理部から通知された優先度情報を比較し、自らの優先度の方が高い場合は、一時停止しないことを説明した。
【００４１】
実施の形態４．
図９は、本実施の形態に係る計算機装置１０の構成例を示す。
図９に示す計算機装置１０では、プロセッサが２基搭載されている。
以上の実施の形態１から実施の形態３では、複数のプロセッサ上で１つのオペレーティングシステムが動作していたが、実施の形態４では、複数のプロセッサ（この場合は２つ）上で複数のオペレーティングシステム（この場合はプロセッサ毎に計２つ）が動作する。
【００４２】
本実施の形態に係る計算機装置１０は、複数のプロセッサ９００、９０１（この場合は２つ）、プロセッサ毎のオペレーティングシステム９１６、９１７、プロセッサ毎の記憶部９０２、９０３、プロセッサ間で共有する共有記憶部９２６、複数の外部デバイス９１３〜９１５（この場合は３つ）、プロセッサおよび外部デバイスを接続する共有バス９１２を備えている。
【００４３】
記憶部９０２、９０３はそれぞれプロセッサ９００、９０１に接続されており、それぞれのプロセッサが実行する複数のアプリケーションからなるアプリケーション群９０４、９０５、および各アプリケーションに対応した情報であるアプリケーション情報９０６、９０７を格納する。
プロセッサ９００、９０１は、オペレーティングシステム９１６、９１７によりディスパッチ（割り当て）されたアプリケーションを実行する演算処理装置である。
アプリケーション情報９０６、９０７は、排他動作要求に関連する情報である排他動作要求情報９０８、９０９を記憶する。
排他動作要求情報９０８、９０９は、排他動作要求の有無を示す排他動作要求フラグを記憶する。
プロセッサ間割込み機構９１０、９１１は、それぞれプロセッサ９００、９０１内に存在し他のプロセッサへプロセッサ間割込み信号を送信、および他のプロセッサからのプロセッサ間割込み信号を受信する機構である。
共有記憶部９２６は、プロセッサ９００、９０１間で共有する記憶部である。
共有バス９１２は、プロセッサ９００、９０１および外部デバイス９１３〜９１５を接続するバスである。
【００４４】
ディスパッチ処理部９１８、９１９は、アプリケーション群９０４、９０５から選択したアプリケーションをプロセッサ９００、９０１へ割り当てる処理である。
排他動作要求送信処理部９２０は、プロセッサ間割込み機構９１０を操作し他のプロセッサへプロセッサ間割込み信号を送信する処理である。
排他動作要求受信処理部９２１は、プロセッサ間割込み機構９１１がプロセッサ間割込み信号を受信した場合に動作する処理である。
タイマ９２２は、設定されるタイムアウト値を元に動作し、タイムアウトが発生することを検出する計時手段である。
オペレーティングシステム９１６には、ディスパッチ処理部９１８及び排他動作要求送信処理部９２０のみが含まれ、オペレーティングシステム９１７には、ディスパッチ処理部９１９、排他動作要求受信処理部９２１及びタイマ９２２のみが含まれる。
このため、オペレーティングシステム９１６を実行するプロセッサ９００は、ディスパッチ処理部９１８及び排他動作要求送信処理部９２０のみが実行可能であり、オペレーティングシステム９１７を実行するプロセッサ９０１は、ディスパッチ処理部９１９、排他動作要求受信処理部９２１及びタイマ９２２のみが実行可能である。
なお、図９の構成において、オペレーティングシステム９１６は、第１のオペレーティングシステムの例であり、オペレーティングシステム９１７は、第２のオペレーティングシステムの例である。
【００４５】
次に動作について説明する。
動作に関しては、実施の形態１から実施の形態３に示した動作と同様である。
つまり、プロセッサ９００がアプリケーションの実行を開始する際に、実施の形態１〜３と同様に、ディスパッチ処理部９１８及び排他動作要求送信処理部９２０を実行し、実行対象のアプリケーションが排他動作が必要なアプリケーションである場合は、他のプロセッサ９０１にプロセッサ間割込み信号を送信する。
そして、プロセッサ９００からプロセッサ間割込み信号を受信したプロセッサ９０１は、排他動作要求受信処理部９２１を実行し、所定の時間の間、外部デバイス９１３〜９１５へのアクセス動作を一時停止する。
【００４６】
以上のように、排他動作を要求するアプリケーションを実行する時点で、計算機中で他のプロセッサ動作を一時停止することにより、一定期間、該アプリケーションは計算機中の他のプロセッサの動作の影響を受けずに計算機中で排他的に動作することが可能となる。
【００４７】
以上、本実施の形態では、あるオペレーティングシステムが排他動作要求送信処理部のみを有し、他のオペレーティングシステムは排他動作要求受信部のみを有することを説明した。
【００４８】
実施の形態５．
図１０は、本実施の形態に係る計算機装置１０の構成例を示す。
図１０に示す計算機装置１０では、プロセッサが２基搭載されている。
以上の実施の形態４では、排他動作要求送信処理部が動作するプロセッサと、それ以外のプロセッサが独立していたが、実施の形態５では、それぞれのプロセッサ上で排他動作要求送信処理部、排他動作要求受信部が動作する。
【００４９】
本実施の形態に係る計算機装置１０は、複数のプロセッサ１０００、１００１（この場合は２つ）、プロセッサ毎のオペレーティングシステム１０１６、１０１７、プロセッサ毎の記憶部１００２、１００３、プロセッサ間で共有する共有記憶部１０２６、複数の外部デバイス１０１３〜１０１５（この場合は３つ）、プロセッサおよび外部デバイスを接続する共有バス１０１２を備えている。
【００５０】
本実施の形態では、複数のプロセッサが複数のグループに分類され、グループごとに別のオペレーティングシステムを実行する。同じグループに属するプロセッサは共通するオペレーティングシステムを実行する。
図１０では、プロセッサが２つであり、各プロセッサが別のグループに属し、各プロセッサが別のオペレーティングシステムを利用する例を示している。これに代えて、例えば、計算機装置１０にプロセッサが２ｎ（ｎ≧２）機搭載され、ｎ機ずつの２つのグループに分類し、一方のグループに属するプロセッサが共通してオペレーティングシステム１０１６を利用し、他方のグループに属するプロセッサが共通してオペレーティングシステム１０１７を利用するようにしてもよい。また、３つ以上のグループに分類し、３つ以上のオペレーティングシステムを用意していもよい。
【００５１】
記憶部１００２、１００３はそれぞれプロセッサ１０００、１００１に接続されており、それぞれのプロセッサが実行する複数のアプリケーションからなるアプリケーション群１００４、１００５、および各アプリケーションに対応した情報であるアプリケーション情報１００６、１００７を格納する。
プロセッサ１０００、１００１は、オペレーティングシステム１０１６、１０１７によりディスパッチ（割り当て）されたアプリケーションを実行する演算処理装置である。
アプリケーション情報１００６、１００７は、排他動作要求に関連する情報である排他動作要求情報１００８、１００９を記憶する。
排他動作要求情報１００８、１００９は、排他動作要求の有無を示す排他動作要求フラグを記憶する。
プロセッサ間割込み機構１０１０、１０１１は、それぞれプロセッサ１０００、１００１内に存在し他のプロセッサへプロセッサ間割込み信号を送信、および他のプロセッサからのプロセッサ間割込み信号を受信する機構である。
共有記憶部１０２６は、プロセッサ１０００、１００１間で共有する記憶部である。
共有バス１０１２は、プロセッサ１０００、１００１および外部デバイス１０１３〜１０１５を接続するバスである。
ディスパッチ処理部１０１８、１０１９は、アプリケーション群１００４、１００５から選択したアプリケーションをプロセッサ１０００、１００１へ割り当てる。
排他動作要求送信処理部１０２０、１０２１は、それぞれプロセッサ間割込み機構１０１０、１０１１を操作し他のプロセッサへプロセッサ間割込み信号を送信する処理であり、
排他動作要求受信処理部１０２２、１０２３は、それぞれプロセッサ間割込み機構１０１０、１０１１がプロセッサ間割込みを受信した場合に動作する処理である。
タイマ１０２４、１０２５は、設定されるタイムアウト値を元に動作し、タイムアウトが発生することを検出する計時手段である。
【００５２】
なお、動作に関しては、実施の形態１から実施の形態３に示した動作と同様である。
また、前述したように、実施の形態４では、一方のプロセッサのみが排他動作要求送信処理部を実行し、他方のプロセッサのみが排他動作要求受信処理を実行するものであったが、本実施の形態では、各プロセッサが、排他動作要求送信処理部及び排他動作要求受信処理を実行する。
【００５３】
以上のように、排他動作を要求するアプリケーションを実行する時点で、計算機中で他のプロセッサ動作を一時停止することにより、一定期間、該アプリケーションは計算機中の他のプロセッサの動作の影響を受けずに計算機中で排他的に動作することが可能となる。
【００５４】
以上、本実施の形態では、複数のプロセッサ上で複数のオペレーティングシステムが動作し、各プロセッサが排他動作要求送信処理部及び排他動作要求受信処理を実行することを説明した。
【００５５】
最後に、実施の形態１〜５に示した計算機装置１０のハードウェア構成例について説明する。
なお以下で説明する構成は、あくまでも計算機装置１０のハードウェア構成の一例を示すものであり、計算機装置１０のハードウェア構成は他の構成であってもよい。
【００５６】
計算機装置１０は、前述したように、プログラムを実行するプロセッサ装置を備えているとともに、共有バスを介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信ボード、表示装置、キーボード、マウス、磁気ディスク装置等と接続され、これらのハードウェアデバイスを制御する。
更に、プロセッサ装置は、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置（ＣＤＤ）、プリンタ装置、スキャナ装置と接続していてもよい。また、磁気ディスク装置の代わりに、フラッシュメモリ、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
これらのハードウェアデバイスの少なくとも一部は、共有資源たる外部デバイスとなる。
【００５７】
ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード、キーボード、マウス、スキャナ装置、ＦＤＤなどは、入力装置の一例である。
また、通信ボード、表示装置、プリンタ装置などは、出力装置の一例である。
【００５８】
通信ボードは、例えば、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００５９】
例えば、磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、アプリケーションプログラム群、アプリケーション情報等のファイル群が記憶されている。
アプリケーションプログラム群のプログラムは、プロセッサがオペレーティングシステム、ウィンドウシステムを利用しながら実行する。
【００６０】
また、ＲＡＭには、プロセッサに実行させるオペレーティングシステムのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭには、プロセッサによる処理に必要な各種データが格納される。
【００６１】
また、ＲＯＭには、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置にはブートプログラムが格納されている。
計算機装置１０の起動時には、ＲＯＭのＢＩＯＳプログラム及び磁気ディスク装置のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステムが起動される。
【００６２】
上記プログラム群には、実施の形態１〜５の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、プロセッサにより読み出され実行される。
【００６３】
ファイル群には、実施の形態１〜５の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の実行」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してプロセッサによりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのプロセッサの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のプロセッサの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜５で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭのメモリ、ＦＤＤのフレキシブルディスク、ＣＤＤのコンパクトディスク、磁気ディスク装置の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バスや信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００６４】
また、実施の形態１〜５の説明において「〜部」、として説明しているものは、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜部」として説明しているものは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはプロセッサにより読み出され、プロセッサにより実行される。
【図面の簡単な説明】
【００６５】
【図１】実施の形態１に係る計算機装置の構成例を示す図。
【図２】実施の形態１に係るディスパッチ処理部の実行時の動作例を示すフローチャート図。
【図３】実施の形態１に係る排他動作要求送信処理部の実行時の動作例を示すフローチャート図。
【図４】実施の形態１に係る排他動作要求受信処理部の実行時の動作例を示すフローチャート図。
【図５】実施の形態２に係る排他動作要求送信処理部の実行時の動作例を示すフローチャート図。
【図６】実施の形態２に係る排他動作要求受信処理部の実行時の動作例を示すフローチャート図。
【図７】実施の形態３に係る排他動作要求送信処理部の実行時の動作例を示すフローチャート図。
【図８】実施の形態３に係る排他動作要求受信処理部の実行時の動作例を示すフローチャート図。
【図９】実施の形態４に係る計算機装置の構成例を示す図。
【図１０】実施の形態５に係る計算機装置の構成例を示す図。
【符号の説明】
【００６６】
１０  計算機装置、１００  プロセッサ装置、１０１  プロセッサ装置、１０２  プロセッサ装置、１０３  プロセッサ間割込み機構、１０４  プロセッサ間割込み機構、１０５  プロセッサ間割込み機構、１０６  オペレーティングシステム、１０７  ディスパッチ処理部、１０８  排他動作要求送信処理部、１０９  排他動作要求受信処理部、１１０  タイマ、１１１  記憶部、１１２  アプリケーションプログラム群、１１３  アプリケーションプログラム情報、１１４  共有記憶部、１１５  排他動作要求情報、１１６  共有バス、１１７  外部デバイス、１１８  外部デバイス、１１９  外部デバイス、１２０  外部デバイス、９００  プロセッサ装置、９０１  プロセッサ装置、９０２  記憶部、９０３  記憶部、９０４  アプリケーションプログラム群、９０５  アプリケーションプログラム群、９０６  アプリケーションプログラム情報、９０７  アプリケーションプログラム情報、９０８  排他動作要求情報、９０９  排他動作要求情報、９１０  プロセッサ間割込み機構、９１１  プロセッサ間割込み機構、９１２  共有バス、９１３  外部デバイス、９１４  外部デバイス、９１５  外部デバイス、９１６  オペレーティングシステム、９１７  オペレーティングシステム、９１８  ディスパッチ処理部、９１９  ディスパッチ処理部、９２０  排他動作要求送信処理部、９２１  排他動作要求受信処理部、９２２  タイマ、９２６  共有記憶部、１０００  プロセッサ装置、１００１  プロセッサ装置、１００２  記憶部、１００３  記憶部、１００４  アプリケーションプログラム群、１００５  アプリケーションプログラム群、１００６  アプリケーションプログラム情報、１００７  アプリケーションプログラム情報、１００８  排他動作要求情報、１００９  排他動作要求情報、１０１０  プロセッサ間割込み機構、１０１１  プロセッサ間割込み機構、１０１２  共有バス、１０１３  外部デバイス、１０１４  外部デバイス、１０１５  外部デバイス、１０１６  オペレーティングシステム、１０１７  オペレーティングシステム、１０１８  ディスパッチ処理部、１０１９  ディスパッチ処理部、１０２０  排他動作要求送信処理部、１０２１  排他動作要求送信処理部、１０２２  排他動作要求受信処理部、１０２３  排他動作要求受信処理部、１０２４  タイマ、１０２５  タイマ、１０２６  共有記憶部。
【図１】
2009277007.tif 000003
【図２】
2009277007.tif 000004
【図３】
2009277007.tif 000005
【図４】
2009277007.tif 000006
【図５】
2009277007.tif 000007
【図６】
2009277007.tif 000008
【図７】
2009277007.tif 000009
【図８】
2009277007.tif 000010
【図９】
2009277007.tif 000011
【図１０】
2009277007.tif 000012