(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置において、
第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する確認部と、
前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定する選定部と、
前記選定部により選定された前記移譲先ＣＰＵに前記第２のＯＳの実行の移譲を要求する移譲要求を送信する要求送信部と、
前記要求送信部から前記移譲要求を受信すると、前記移譲先ＣＰＵについて前記ロックが獲得されているかを確認し、確認応答を前記要求送信部に送信する応答部と
を備え、
前記選定部は、
前記要求送信部が、前記応答部から、前記移譲先ＣＰＵについて前記ロックが獲得されていることを表す前記確認応答を受信すると、前記複数のＣＰＵから、前記第２のＯＳの実行を移譲する先のＣＰＵを前記移譲先ＣＰＵとして選定し直し、
前記情報処理装置は、さらに、
前記移譲先ＣＰＵに前記第２のＯＳを実行させる第２実行部を備えた情報処理装置。
【請求項２】
前記第１実行部は、
前記要求送信部が、前記応答部から、前記移譲先ＣＰＵについて前記ロックが獲得されていないことを表す前記確認応答を受信すると、前記第１のＯＳの実行を継続する請求項１に記載の情報処理装置。
【請求項３】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置において、
第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する確認部と、
前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定する選定部と、
前記移譲先ＣＰＵに前記第２のＯＳを実行させる第２実行部と
を備え、
前記確認部は、
前記割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する前に、前記第２実行部が前記第２のＯＳを実行しているか否かを判定し、前記第２のＯＳを実行していると判定された場合は、前記選定部による前記移譲先ＣＰＵを選定する処理を実行せずに、前記第２実行部による前記第２のＯＳの実行を継続させることを特徴とする情報処理装置。
【請求項４】
前記情報処理装置は、
前記複数のＣＰＵの各々と、前記ロックが獲得されているか否かを表すロック情報とを対応付けたロックテーブルを備え、
前記確認部は、
前記ロックテーブルを用いて前記実行ＣＰＵに対応する前記ロック情報を参照し、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
前記選定部は、
前記ロックテーブルを用いて、前記複数のＣＰＵのうち前記ロックが獲得されていないＣＰＵを前記移譲先ＣＰＵとして選定する請求項４に記載の情報処理装置。
【請求項６】
前記ロックテーブルは、前記複数のＣＰＵの各々と、前記ロック情報と、前記複数のＣＰＵの各々の優先度とが対応付けられ、
前記選定部は、
前記ロックテーブルを用いて、前記ロックが獲得されていないＣＰＵのうち前記優先度が最も高いＣＰＵを前記移譲先ＣＰＵとして選定する請求項５に記載の情報処理装置。
【請求項７】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置の情報処理方法において、
確認部が、第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認し、
選定部が、前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定し、
要求送信部が、前記選定部により選定された前記移譲先ＣＰＵに前記第２のＯＳの実行の移譲を要求する移譲要求を送信し、
応答部が、前記要求送信部から前記移譲要求を受信すると、前記移譲先ＣＰＵについて前記ロックが獲得されているかを確認し、確認応答を前記要求送信部に送信し、
前記選定部は、前記要求送信部が、前記応答部から、前記移譲先ＣＰＵについて前記ロックが獲得されていることを表す前記確認応答を受信すると、前記複数のＣＰＵから、前記第２のＯＳの実行を移譲する先のＣＰＵを前記移譲先ＣＰＵとして選定し直し、
第２実行部が、前記移譲先ＣＰＵに前記第２のＯＳを実行させる情報処理方法。
【請求項８】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置の情報処理プログラムにおいて、
第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する確認処理と、
前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定する選定処理と、
前記選定処理により選定された前記移譲先ＣＰＵに前記第２のＯＳの実行の移譲を要求する移譲要求を送信する要求送信処理と、
前記移譲要求を受信すると、前記移譲先ＣＰＵについて前記ロックが獲得されているかを確認し、確認応答を前記要求送信処理に送信する応答処理と、
前記要求送信処理により、前記移譲先ＣＰＵについて前記ロックが獲得されていることを表す前記確認応答が受信されると、前記複数のＣＰＵから、前記第２のＯＳの実行を移譲する先のＣＰＵを前記移譲先ＣＰＵとして選定し直す処理と、
前記移譲先ＣＰＵに前記第２のＯＳを実行させる第２実行処理と
をコンピュータである前記情報処理装置に実行させる情報処理プログラム。
【請求項９】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置の情報処理方法において、
確認部が、第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認し、
選定部が、前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定し、
第２実行部が、前記移譲先ＣＰＵに前記第２のＯＳを実行させ、
前記確認部は、前記割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する前に、前記第２実行部が前記第２のＯＳを実行しているか否かを判定し、前記第２のＯＳを実行していると判定された場合は、前記選定部による前記移譲先ＣＰＵを選定する処理を実行せずに、前記第２実行部による前記第２のＯＳの実行を継続させる情報処理方法。
【請求項１０】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）を実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置の情報処理プログラムにおいて、
第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する確認処理と、
前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定する選定処理と、
前記移譲先ＣＰＵに前記第２のＯＳを実行させる第２実行処理と
をコンピュータである前記情報処理装置に実行させる情報処理プログラムであって、
前記確認処理は、
前記割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する前に、前記第２のＯＳが実行されているか否かを判定し、前記第２のＯＳが実行されていると判定された場合は、前記移譲先ＣＰＵを選定する処理を実行せずに、前記第２のＯＳの実行を継続させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、従来のＬＨＰ問題を解決する方式が開示されている。特許文献１に開示された方式では、ＯＳのロックを獲得しているｖＣＰＵ（仮想ＣＰＵ）に、優先してｐＣＰＵ（実ＣＰＵ）を割当てる。これにより、特許文献１に開示された方式では、ＬＨＰ状態の解決をはかりＧＰＯＳ（汎用ＯＳ）の性能劣化を抑制する。なお、ＬＨＰは、Ｌｏｃｋ  Ｈｏｌｄｅｒ  Ｐｒｅｅｍｐｔｉｏｎの略語である。ＯＳは、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略語である。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
また、非特許文献１には、ＧＰＯＳのロックを獲得しているｖＣＰＵに割当てられていたｐＣＰＵが、ＲＴＯＳ（リアルタイムＯＳ）のｖＣＰＵとして割当てられた場合に、ＬＨＰ状態の解決をはかる方式が開示されている。非特許文献１では、ＧＰＯＳのロックを獲得しているｖＣＰＵに、ＧＰＯＳ配下の別のｖＣＰＵに割当てられているｐＣＰＵを割当てなおすことによりロックを解放させることで、ＬＨＰ問題の解決をはかっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−０９９１８２号公報
【非特許文献】
【０００４】
【非特許文献１】三嶽  仁著、「リアルタイム仮想マシンモニタでのＬｏｃｋ  Ｈｏｌｄｅｒ  Ｐｒｅｅｍｐｔｉｏｎ問題の解決」２０１１年度修士論文、２０１２年１月３１日発行、ｐ．４〜２３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＬＨＰ問題を解決する従来の方式では、ＲＴＯＳのｖＣＰＵにｐＣＰＵを受け渡したＧＰＯＳのｖＣＰＵを、他のｐＣＰＵにマイグレーションするために要する処理量が多くなる。よって、この従来の方式では、ＧＰＯＳの性能劣化を十分に改善することができないという課題がある。【０００６】
本発明は、ＲＴＯＳの応答性能を保ちつつＧＰＯＳの性能劣化を防ぐことを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、複数のＣＰＵをマルチプロセッサとして備え、前記複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳを実行する第１実行部であって前記実行ＣＰＵが前記第１のＯＳの実行に用いられていることを表すロックを獲得した上で前記第１のＯＳを実行する第１実行部を備えた情報処理装置において、
第２のＯＳを実行する割込み処理が発生すると、前記実行ＣＰＵについて前記ロックが獲得されているかを確認する確認部と、
前記実行ＣＰＵについて前記ロックが獲得されている場合に、前記第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして前記複数のＣＰＵから選定する選定部と、
前記移譲先ＣＰＵに前記第２のＯＳを実行させる第２実行部とを備えた。
【発明の効果】
【０００８】
本発明に係る情報処理装置は、複数のＣＰＵをマルチプロセッサとして備える。また、第１実行部は、複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵとして用いて第１のＯＳを実行する。また、第１実行部は、実行ＣＰＵが第１のＯＳの実行に用いられていることを表すロックを獲得した上で第１のＯＳを実行する。また、確認部が、第２のＯＳを実行する割込み処理が発生すると、実行ＣＰＵについてロックが獲得されているかを確認する。また、選定部が、実行ＣＰＵについてロックが獲得されている場合に、第２のＯＳの実行を移譲する先のＣＰＵを移譲先ＣＰＵとして複数のＣＰＵから選定する。そして、第２実行部が、移譲先ＣＰＵに第２のＯＳを実行させる。よって、本発明に係る情報処理装置によれば、第２のＯＳであるＲＴＯＳの応答性能を保ちつつ、第１のＯＳであるＧＰＯＳの性能劣化を防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る情報処理装置１００のハードウェア構成図。
【図２】実施の形態１に係る情報処理装置１００の機能構成図。
【図３】実施の形態１に係るロック獲得処理Ｓ３０のフロー図。
【図４】実施の形態１に係るロック解放処理Ｓ４０のフロー図。
【図５】実施の形態１に係る移譲元ＣＰＵ処理Ｓ５０のフロー図。
【図６】実施の形態１に係る確認処理Ｓ５１のフロー図。
【図７】実施の形態１に係る選定処理Ｓ５２のフロー図。
【図８】実施の形態１に係る要求送信処理Ｓ５３のフロー図。
【図９】実施の形態１に係る移譲先ＣＰＵ処理Ｓ６０のフロー図。
【図１０】実施の形態１に係る確認応答処理Ｓ６１のフロー図。
【図１１】実施の形態１に係る実行準備処理Ｓ６２のフロー図。
【図１２】実施の形態２に係るロックテーブル２１９ａの構成図。
【図１３】実施の形態２に係る選定処理Ｓ５２ａのフロー図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１１】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係る情報処理装置１００のハードウェア構成について説明する。
情報処理装置１００は、ＣＰＵ１０１、ＣＰＵ１０２、ＣＰＵ１０３、およびＣＰＵ１０４を、マルチプロセッサとして備える。ＣＰＵ１０１、ＣＰＵ１０２、ＣＰＵ１０３、およびＣＰＵ１０４は、マルチプロセッサを構成する。以下において、ＣＰＵ１０１、ＣＰＵ１０２、ＣＰＵ１０３、およびＣＰＵ１０４をＣＰＵ１０１〜１０４と記載する場合がある。
マルチプロセッサ機構１０５は、ＣＰＵ１０１〜１０４をマルチプロセッサとして構成する機構である。
メモリ１０６は、ＣＰＵ１０１〜１０４からアクセスされるデータを記憶する素子である。
デバイス１０７およびデバイス１０８は、ＣＰＵ１０１〜１０４から操作されるデバイスである。
割込み管理機構１０９は、デバイス１０７およびデバイス１０８が発生させる割込み要因により、ＣＰＵ１０１〜１０４の任意の組合せで関連付けられたＣＰＵに対して割込み処理を発生させる。マルチプロセッサ用の割込み管理機構１０９は、一つの割込み要因を複数のＣＰＵへ関連付けることができる。割込み要因を関連付けられた複数のＣＰＵのうち、最も早く割込みを受け付けたＣＰＵが割込みを処理し、他のＣＰＵへの割込み要求はキャンセルされる。
【００１２】
図２を用いて、本実施の形態に係る情報処理装置１００の機能構成について説明する。
情報処理装置１００は、複数のＣＰＵであるＣＰＵ２０１、ＣＰＵ２０２、ＣＰＵ２０３、およびＣＰＵ２０４を、マルチプロセッサとして備えるコンピュータである。情報処理装置１００は、機能構成として、ＣＰＵスイッチ２１１、ＬＨＰ抑制部２１２、記憶部２２０、第１実行部２５、および第２実行部２６を備える。記憶部２２０には、ロックテーブル２１９、ＣＰＵ番号１４１、移譲先ＣＰＵ番号１４２、および割込み番号１４４が記憶されている。記憶部２２０は、メモリにより実現される。
【００１３】
図２において、ＣＰＵ２０１、ＣＰＵ２０２、ＣＰＵ２０３、およびＣＰＵ２０４の各々は、図１のＣＰＵ１０１、ＣＰＵ１０２、ＣＰＵ１０３、およびＣＰＵ１０４の各々に対応している。以下において、ＣＰＵ２０１、ＣＰＵ２０２、ＣＰＵ２０３、およびＣＰＵ２０４をＣＰＵ２０１〜２０４と記載する場合がある。
【００１４】
第１実行部２５は、複数のＣＰＵのいずれかのＣＰＵを実行ＣＰＵ３１として用いてＧＰＯＳ２０５を実行する。また、第１実行部２５は、実行ＣＰＵ３１がＧＰＯＳ２０５の実行に用いられていることを表すロックを獲得した上でＧＰＯＳ２０５を実行する。すなわち、ＧＰＯＳ２０５は、ＣＰＵ２０１〜２０４上で動作する。ＧＰＯＳ２０５は、汎用ＯＳである第１のＯＳ２０５ｘの例である。
ＣＴＸ２０７、ＣＴＸ２０８、ＣＴＸ２０９、およびＣＴＸ２１０は、それぞれＣＰＵ２０１〜２０４上で動作するＧＰＯＳ２０５のコンテキストである。
第２実行部２６は、複数のＣＰＵのいずれかのＣＰＵを用いてＲＴＯＳ２０６を実行する。すなわち、ＲＴＯＳ２０６は、ＣＰＵ２０１〜２０４上で動作する。ＲＴＯＳ２０６は、リアルタイムＯＳである第２のＯＳ２０６ｘの例である。
【００１５】
ロックテーブル２１９は、複数のＣＰＵの各々と、ロックが獲得されているか否かを表すロック情報１９０とを対応付ける。
ロックテーブル２１９は、ＣＰＵ番号１９１と、ロックカウンタ１９２とを有する。ロックカウンタ１９２は、対応するＣＰＵについてロックが獲得されているか否かを表すロック情報１９０の例である。ＣＰＵ番号１９１は、複数のＣＰＵの各々に割り当てられた番号である。ロックカウンタ１９２は、第１実行部２５により、対応するＣＰＵについてクリティカルセクションを保護するためのロックを獲得した場合にインクリメントされる。また、ロックカウンタ１９２は、第１実行部２５により、対応するＣＰＵについてロックを解放、すなわちアンロックした場合にデクリメントされる。
【００１６】
ＣＰＵスイッチ２１１は、ＬＨＰ抑制部２１２の指示に基づいて、ＲＴＯＳ２０６を実行するＣＰＵをＣＰＵ２０１〜２０４のうちのいずれかに切替える。
【００１７】
ＬＨＰ抑制部２１２は、ＲＴＯＳ２０６をアイドル状態から実行状態へ遷移させる場合に、ＲＴＯＳ２０６を実行するＣＰＵを選択する。
ＬＨＰ抑制部２１２は、確認部２１３と、選定部２１４と、要求送信部２１５と、応答部２８と、実行準備部２１８とを有する。応答部２８は、要求受信部２１６と、確認応答部２１７とを有する。
確認部２１３は、ロックテーブル２１９を参照し、自ＣＰＵのロックカウンタ１９２を確認する。確認部２１３は、ロック状態確認部ともいう。
選定部２１４は、ＣＰＵごとのロックカウンタ１９２に基づいて、ＲＴＯＳ２０６の実行を移譲する先のＣＰＵを選択する。ＲＴＯＳ２０６の実行を移譲する先のＣＰＵを移譲先ＣＰＵ３３ともいう。選定部２１４は、移譲先ＣＰＵ選定部ともいう。
要求送信部２１５は、選定部２１４により選定された移譲先ＣＰＵ３３にＲＴＯＳ２０６の実行の移譲を要求する移譲要求１５１を送信する。
確認部２１３と、選定部２１４と、要求送信部２１５とは、移譲元ＣＰＵ３２で動作する。
【００１８】
応答部２８は、要求送信部２１５から移譲要求１５１を受信すると、移譲先ＣＰＵ３３についてロックが獲得されているかを確認し、確認応答を要求送信部２１５に送信する。応答部２８の要求受信部２１６は、要求送信部２１５から送信された移譲要求１５１を受信する。応答部２８の確認応答部２１７は、ロックテーブル２１９を参照し、自ＣＰＵのロックカウンタ１９２を確認し、その確認の結果を要求受信部２１６へ送信する。そして、応答部２８の要求受信部２１６は、確認応答を要求送信部２１５に送信する。
実行準備部２１８は、自ＣＰＵ上でＲＴＯＳ２０６を実行する準備を行う。実行準備部２１８は、ＣＰＵスイッチ２１１に対して、ＲＴＯＳ２０６を実行するＣＰＵを移譲先ＣＰＵ３３に切替える指示を送信する。
要求受信部２１６と、確認応答部２１７と、実行準備部２１８とは、移譲先ＣＰＵ３３で動作する。
【００１９】
図１および図２を用いて、本実施の形態に係る情報処理装置１００のハードウェア構成についてさらに説明する。
上述したように、情報処理装置１００は、複数のＣＰＵであるＣＰＵ２０１、ＣＰＵ２０２、ＣＰＵ２０３、およびＣＰＵ２０４を、マルチプロセッサとして備えるコンピュータである。
ＣＰＵは、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。ＣＰＵは、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。情報処理装置１００では、複数のＣＰＵが、情報処理装置１００の各部の機能を実現するプログラムを連携して実行する。
【００２０】
メモリ１０６は、データを一時的に記憶する記憶装置である。メモリ１０６の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２１】
ストレージ１１０は、データを保管する記憶装置である。ストレージ１１０の具体例は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ１１０は、ＳＤ（登録商標）（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００２２】
ストレージ１１０には、情報処理装置１００の機能を実現するプログラムが記憶されている。情報処理装置１００の機能を実現するプログラムを情報処理プログラム６２０ともいう。また、情報処理装置１００の機能を実現する方法を情報処理方法６１０ともいう。
【００２３】
情報処理装置１００の各部の処理の結果を示す情報、データ、信号値、および変数値は、情報処理装置１００のストレージ１１０、メモリ１０６、または、ＣＰＵ内のレジスタまたはキャッシュメモリに記憶される。
【００２４】
情報処理装置１００の各部の機能を実現するプログラムは、可搬記録媒体に記憶されてもよい。可搬記録媒体とは、具体的には、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、あるいはＳＤ（登録商標）カードといったメモリカードである。
なお、情報処理プログラムプロダクトとは、情報処理プログラム６２０が記録された記憶媒体および記憶装置である。
【００２５】
＊＊＊動作の説明＊＊＊
図３を用いて、本実施の形態に係るロック獲得処理Ｓ３０について説明する。ロック獲得処理Ｓ３０は、第１実行部２５が、ＧＰＯＳ２０５の実行に用いる実行ＣＰＵについて、クリティカルセクションを保護するためのロックを獲得する処理である。
ステップＳ３０１において、第１実行部２５は、ロックテーブル２１９から自ＣＰＵである実行ＣＰＵのロックカウンタ１９２を選択する。ステップＳ３０２において、第１実行部２５は、選択したロックカウンタ１９２をインクリメント、すなわち１加算する。ステップＳ３０３において、第１実行部２５は、通常のロック獲得処理を実行する。
【００２６】
図４を用いて、本実施の形態に係るロック解放処理Ｓ４０について説明する。ロック解放処理Ｓ４０は、第１実行部２５が、ＧＰＯＳ２０５の実行に用いる実行ＣＰＵについて、ロックを解放する処理である。
ステップＳ４０１において、第１実行部２５は、通常のロック解放処理を実行する。ステップＳ４０２において、第１実行部２５は、ロックテーブル２１９から自ＣＰＵである実行ＣＰＵのロックカウンタを選択する。ステップＳ４０３において、第１実行部２５は、選択したロックカウンタをデクリメント、すなわち１減算する。
【００２７】
図５から図１１を用いて、本実施の形態に係るＬＨＰ抑制部２１２のＬＨＰ抑制処理について説明する。ＬＨＰ抑制処理は、ＲＴＯＳ２０６に関連付けられた割込み処理が発生した場合のＬＨＰ抑制部２１２の動作である。ＲＴＯＳ２０６に関連付けられた割込み処理とは、ＲＴＯＳ２０６を実行する割込み処理である。ＬＨＰ抑制処理は、移譲元ＣＰＵ処理Ｓ５０と、移譲先ＣＰＵ処理Ｓ６０とを有する。
【００２８】
＜移譲元ＣＰＵ処理Ｓ５０＞
図５を用いて、本実施の形態に係る移譲元ＣＰＵ処理Ｓ５０について説明する。
ここで、移譲元ＣＰＵ３２とは、割込み処理を受け付けた実行ＣＰＵである。
【００２９】
まず、ステップＳ５０１ａにおいて、移譲元ＣＰＵ３２の確認部２１３は、割込み処理を受け付けた時点で移譲元ＣＰＵ３２がＲＴＯＳ２０６を実行しているか否かを判定する。移譲元ＣＰＵ３２がＲＴＯＳ２０６を実行していない場合、処理はステップＳ５０１に進む。移譲元ＣＰＵ３２がＲＴＯＳ２０６を実行している場合、処理はステップＳ５０８に進む。
すなわち、移譲元ＣＰＵ３２の確認部２１３は、割込み処理が発生すると、実行ＣＰＵである移譲元ＣＰＵ３２についてロックが獲得されているかを確認する前に、第２実行部２６が第２のＯＳ２０６ｘであるＲＴＯＳ２０６を実行しているか否かを判定する。第２実行部２６は、確認部２１３によりＲＴＯＳ２０６を実行していると判定された場合は、ＲＴＯＳ２０６の実行を継続する。
【００３０】
ステップＳ５０１において、移譲元ＣＰＵ３２の確認部２１３は、移譲元ＣＰＵ３２のロック状態を確認する確認処理Ｓ５１を実行する。
【００３１】
図６を用いて、本実施の形態に係る確認処理Ｓ５１について説明する。確認処理Ｓ５１において、確認部２１３は、ＲＴＯＳ２０６を実行する割込み処理が発生すると、実行ＣＰＵ、すなわち移譲元ＣＰＵ３２である自ＣＰＵについてロックが獲得されているかを確認する。確認部２１３は、ロックテーブル２１９を用いて、実行ＣＰＵに対応するロック情報１９０を参照し、実行ＣＰＵについてロックが獲得されているかを確認する。
【００３２】
ステップＳ７０１において、確認部２１３は、ロックテーブル２１９から自ＣＰＵのロックカウンタを選択する。ステップＳ７０２において、確認部２１３は、ロックカウンタがゼロかゼロ以外かを確認する。ロックカウンタがゼロ以外の場合は、確認部２１３は、ステップＳ７０３に進み、自ＣＰＵがロックを獲得していると判断する。ロックカウンタがゼロの場合は、確認部２１３は、ステップＳ７０４に進み、自ＣＰＵがロックを獲得していないと判断する。以上で、確認処理Ｓ５１は終了する。
【００３３】
図５に戻り説明を続ける。
ステップＳ５０２において、確認部２１３は、自ＣＰＵがロックを獲得しているか獲得していないかを確認する。自ＣＰＵがロックを獲得している場合、ステップＳ５０３において、選定部２１４は選定処理Ｓ５２を実行する。自ＣＰＵがロックを獲得していない場合、移譲が不要であることを意味するので、ステップＳ５０８において、第２実行部２６は、自ＣＰＵ上で、ＲＴＯＳ２０６を実行する第２実行処理Ｓ２を実行する。
【００３４】
図７を用いて、本実施の形態に係る選定処理Ｓ５２について説明する。
選定処理Ｓ５２において、選定部２１４は、実行ＣＰＵについてロックが獲得されている場合に、ＲＴＯＳ２０６の実行を移譲する先のＣＰＵを移譲先ＣＰＵ３３として複数のＣＰＵから選定する。選定部２１４は、ロックテーブル２１９を用いて、複数のＣＰＵのうちロックが獲得されていないＣＰＵを移譲先ＣＰＵ３３として選定する。
【００３５】
ステップＳ９０１において、選定部２１４は、ロックテーブル２１９を参照するために使用するＣＰＵ番号１４１をゼロに初期化する。ステップＳ９０２において、選定部２１４は、移譲先のＣＰＵ番号を格納する移譲先ＣＰＵ番号１４２を、システム内に搭載されたＣＰＵ番号の最大値である最大ＣＰＵ番号に１を加算した値で初期化する。
ステップＳ９０３において、選定部２１４は、ＣＰＵ番号が自ＣＰＵ番号と等しいか異なるかを確認する。異なる場合は、選定部２１４は、ステップＳ９０４に進み、ロックテーブル２１９からＣＰＵ番号１４１に対応するロックカウンタ１９２を選択する。ＣＰＵ番号１４１が自ＣＰＵ番号と等しい場合は、選定部２１４は、ステップＳ９０７に進む。
ステップＳ９０５において、選定部２１４は、選択したロックカウンタ１９２がゼロかゼロ以外かを確認する。ゼロの場合は、選定部２１４は、ロックを獲得していないと判断し、ステップＳ９０６に進み、移譲先ＣＰＵ番号１４２へＣＰＵ番号１４１を設定する。ゼロ以外の場合は、選定部２１４は、ステップＳ９０７へ進む。
ステップＳ９０７において、選定部２１４は、次のＣＰＵを参照するため、ＣＰＵ番号１４１に１加算する。ステップＳ９０８において、選定部２１４は、ＣＰＵ番号１４１が最大ＣＰＵ番号以下か、超えているかを確認する。ＣＰＵ番号１４１が最大ＣＰＵ番号以下の場合、選定部２１４は、ステップＳ９０３へ戻り、ロックテーブル２１９の確認を継続する。ＣＰＵ番号１４１が最大ＣＰＵ番号を超えている場合、選定部２１４は、ステップＳ９０９に進み、移譲先ＣＰＵ番号１４２が最大ＣＰＵ番号を超えているか、それ以下かを確認する。移譲先ＣＰＵ番号が最大ＣＰＵ番号を超えている場合、選定部２１４は、移譲先ＣＰＵ３３が見つからなかったと判断し、ステップＳ９１０に進み、移譲先ＣＰＵ番号１４２に自ＣＰＵ番号を設定する。移譲先ＣＰＵ番号が最大ＣＰＵ番号以下の場合、選定部２１４は、処理を終了する。
【００３６】
図５に戻り説明を続ける。
ステップＳ５０４において、選定部２１４は、選定処理Ｓ５２により選定された移譲先ＣＰＵ３３が自ＣＰＵと等しいか異なるかを判断する。移譲先ＣＰＵ３３が自ＣＰＵと等しい場合、移譲が不要であることを意味する。よって、ステップＳ５０８において、第２実行部２６は、自ＣＰＵ上でＲＴＯＳ２０６を実行する。移譲先ＣＰＵ３３が自ＣＰＵと異なる場合、ステップＳ５０５において、要求送信部２１５は、要求送信処理Ｓ５３を実行し、移譲先ＣＰＵ３３に対してＲＴＯＳ２０６の実行を要求する移譲要求１５１を送信する。
【００３７】
図８を用いて、本実施の形態に係る要求送信処理Ｓ５３について説明する。要求送信処理Ｓ５３において、要求送信部２１５は、選定部２１４により選定された移譲先ＣＰＵ３３にＲＴＯＳ２０６の実行の移譲を要求する移譲要求１５１を送信する。
ステップＳ１１１において、要求送信部２１５は、ＣＰＵ間通信を用いて移譲先ＣＰＵ３３へ移譲要求１５１を送信する。ステップＳ１１２において、要求送信部２１５は、移譲先ＣＰＵ３３からの確認応答を受信したか受信していないかを確認する。受信していない場合は、要求送信部２１５は、移譲先ＣＰＵ３３からの確認応答を受信したかの確認を繰り返す。受信した場合は、移譲要求送信部２１５は、処理を終了する。
【００３８】
図５に戻り説明を続ける。
ステップＳ５０６において、要求送信部２１５は、移譲先ＣＰＵからの確認応答を確認する。確認応答が移譲可能であれば、ステップＳ５０７において、第１実行部２５は、ＧＰＯＳ２０５を実行する第１実行処理Ｓ１実行する。確認応答が移譲不可であれば、ステップＳ５０３に戻り、選定部２１４は、選定処理Ｓ５２の実行から処理を繰り返す。
すなわち、第１実行部２５は、要求送信部２１５が、応答部２８から移譲先ＣＰＵ３３についてロックが獲得されていないことを表す確認応答を受信すると、ＧＰＯＳ２０５の実行を継続する。また、選定部２１４は、要求送信部２１５が、応答部２８から、移譲先ＣＰＵ３３についてロックが獲得されていることを表す確認応答を受信すると、複数のＣＰＵから移譲先ＣＰＵを選定し直す。
移譲先ＣＰＵ３３についてロックが獲得されていないことを表す確認応答とは、確認応答が移譲可能であることを意味する。また、移譲先ＣＰＵ３３についてロックが獲得されていることを表す確認応答とは、確認応答が移譲不可であることを意味する。
以上で、移譲元ＣＰＵ処理Ｓ５０についての説明を終わる。
【００３９】
＜移譲先ＣＰＵ処理Ｓ６０＞
図９を用いて、本実施の形態に係る移譲先ＣＰＵ処理Ｓ６０について説明する。
ステップＳ６０１において、移譲先ＣＰＵ３３の要求受信部２１６は、移譲元ＣＰＵ３２から送信された移譲要求１５１を受信する。
ステップＳ６０２において、確認応答部２１７は、確認応答処理Ｓ６１を実行する。
【００４０】
図１０を用いて、本実施の形態に係る確認応答処理Ｓ６１について説明する。
確認応答処理Ｓ６１において、確認応答部２１７は、移譲先ＣＰＵ３３である自ＣＰＵがロックを獲得しているかを確認する。
ステップＳ８０１において、確認応答部２１７は、ロックテーブル２１９から自ＣＰＵのロックカウンタ１９２を選択する。ステップＳ８０２において、確認応答部２１７は、ロックカウンタ１９２がゼロかゼロ以外かを確認する。
ロックカウンタ１９２がゼロ以外の場合は、ステップＳ８０３において、確認応答部２１７は、自ＣＰＵがロックを獲得していると判断する。そして、ステップＳ８０４において、確認応答部２１７は、確認応答を移譲不可に設定する。
ロックカウンタ１９２がゼロの場合は、ステップＳ８０５において、確認応答部２１７は、自ＣＰＵがロックを獲得していないと判断する。そして、ステップＳ８０６において、確認応答部２１７は、確認応答を移譲可能に設定する。
ステップＳ８０８において、確認応答部２１７は、確認応答を移譲元ＣＰＵ３２へ送信する。確認応答部２１７は、確認応答処理Ｓ６１を終了する。
【００４１】
図９に戻り説明を続ける。
ステップＳ６０３において、確認応答部２１７は、自ＣＰＵがロックを獲得しているか獲得していないかを確認する。自ＣＰＵがロックを獲得していない場合、ステップＳ６０４において、実行準備部２１８は、実行準備処理Ｓ６２を実行する。自ＣＰＵがロックを獲得している場合、移譲が不可であるため、ステップＳ６０７において、第１実行部２５は、自ＣＰＵ上でＧＰＯＳ２０５の実行をする第１実行処理Ｓ１を継続する。そして、実行準備部２１８は、移譲先ＣＰＵ処理Ｓ６０を終了する。
【００４２】
図１１を用いて、本実施の形態に係る実行準備処理Ｓ６２について説明する。
実行準備処理Ｓ６２において、実行準備部２１８は、ＲＴＯＳ２０６に関連付けられた割込み要因による割込み処理を、移譲先ＣＰＵ３３である自ＣＰＵに対して関連付ける。
ステップＳ１０１において、実行準備部２１８は、割込み要因を選択するための割込み番号１４４をゼロに初期化する。
ステップＳ１０２において、実行準備部２１８は、割込み番号１４４が示す割込み要因が関連付けられた宛先ＣＰＵを割込み宛先ＣＰＵとして割込み管理機構１０９から読み出す。
ステップＳ１０３において、実行準備部２１８は、読み出した割込み宛先ＣＰＵに移譲元ＣＰＵ３２が含まれるか、含まれないかを確認する。含まれない場合は、実行準備部２１８は、次の割込み要因を確認するためステップＳ１０７に進む。含まれている場合は、ステップＳ１０４において、実行準備部２１８は、割込み宛先ＣＰＵに移譲先ＣＰＵ３３が含まれるか、含まれないかを確認する。含まれる場合は、実行準備部２１８は、次の割込み要因を確認するためステップＳ１０７に進む。含まれない場合は、ステップＳ１０５において、実行準備部２１８は、割込み宛先ＣＰＵから移譲元ＣＰＵ３２を削除する。また、ステップＳ１０６において、実行準備部２１８は、割込み宛先ＣＰＵへ移譲先ＣＰＵ３３を追加する。
ステップＳ１０７において、実行準備部２１８は、次の割込み要因を選択するため、割込み番号１４４をインクリメントする。
ステップＳ１０８において、実行準備部２１８は、割込み番号１４４が最大割込み番号以下か、超えているかを確認する。最大割込み番号以下の場合は、実行準備部２１８は、ステップＳ１０２からの処理を繰り返す。最大割込み番号を超えている場合は、実行準備部２１８は、実行準備処理Ｓ６２を終了する。
【００４３】
図９に戻り説明を続ける。
ステップＳ６０５において、ＣＰＵスイッチ２１１は、ＲＴＯＳ２０６を実行するＣＰＵを移譲先ＣＰＵ３３へ切替える。
ステップＳ６０６において、第２実行部２６は、移譲先ＣＰＵ３３においてＲＴＯＳ２０６を実行する第２実行処理Ｓ２を実行する。
【００４４】
＊＊＊他の構成＊＊＊
本実施の形態では、ＬＨＰ抑制部の機能がソフトウェアで実現される。しかし、変形例として、ＬＨＰ抑制部一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
【００４５】
情報処理装置１００のＣＰＵおよび記憶部を、総称して「プロセッシングサーキットリ」という。つまり、情報処理装置１００のＬＨＰ抑制部の機能および記憶部は、プロセッシングサーキットリにより実現される。
また、「部」を「工程」または「手順」または「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
【００４６】
＊＊＊本実施の形態の効果の説明＊＊＊
以上のように本実施の形態に係る情報処理装置１００によれば、ＲＴＯＳを実行するＣＰＵとして、ＧＰＯＳのロックを獲得していないＣＰＵを選択するようにしているので、ＬＨＰの発生を抑制することができる。さらに、本実施の形態に係る情報処理装置１００によれば、ＧＰＯＳのロックを獲得していないＣＰＵが存在しない場合は、ＲＴＯＳを実行するＣＰＵの選定を即時終了し、ＲＴＯＳの実行を開始することでＲＴＯＳの応答性能を保つことができる。
【００４７】
また、本実施の形態に係る情報処理装置１００は、ＲＴＯＳに関連付けられている割込み処理が発生し、ＲＴＯＳを実行状態へ遷移する場合、割込み処理を受付けた時点で動作していたＯＳがＲＴＯＳか否かを判定する。割込み処理を受付けた時点で動作していたＯＳがＲＴＯＳである場合は、情報処理装置１００は、ＣＰＵを移譲せずＲＴＯＳを実行するので、ＲＴＯＳの応答性能を保つことができる。
【００４８】
また、本実施の形態に係る情報処理装置１００は、選定部により移譲先ＣＰＵが選定され、ＣＰＵの移譲を実行している間に、移譲先ＣＰＵがＧＰＯＳのロックを獲得した場合は、移譲先ＣＰＵの選定から再実行する。よって、本実施の形態に係る情報処理装置１００によれば、ＲＴＯＳの応答性能を保ちつつＧＰＯＳの性能劣化を防ぐことができる。
【００４９】
実施の形態２．
本実施の形態では、主に、実施の形態１と異なる点について説明する。
本実施の形態において、実施の形態１と同様の構成については同一の符号を付し、その説明を省略する場合がある。
【００５０】
本実施の形態では、移譲先ＣＰＵ３３を選定する選定処理Ｓ５２ａが、実施の形態１の図７で説明した選定処理Ｓ５２と異なる。また、本実施の形態では、ロックテーブル２１９ａが、実施の形態１の図２で説明したロックテーブル２１９と異なる。
【００５１】
図１２を用いて、本実施の形態に係るロックテーブル２１９ａの構成について説明する。
図１２に示すように、ロックテーブル２１９ａは、複数のＣＰＵの各々と、ロック情報１９０と、複数のＣＰＵの各々の優先度１９３とが対応付けられている。
【００５２】
図１３を用いて、本実施の形態に係る選定処理Ｓ５２ａについて説明する。
選定処理Ｓ５２ａにおいて、選定部２１４は、ロックテーブル２１９ａを用いて、ロックが獲得されていないＣＰＵのうち優先度１９３が最も高いＣＰＵを移譲先ＣＰＵ３３として選定する。
【００５３】
ステップＳ９０１ａにおいて、選定部２１４は、ロックテーブル２１９ａを参照するために使用するＣＰＵ番号１４１と設定ＣＰＵ番号１４５と設定優先度１４６とをゼロに初期化する。
ステップＳ９０２からステップＳ９０５までの処理は、実施の形態１の図７と同様である。ステップＳ９０５において、選定部２１４は、選択したロックカウンタ１９２がゼロかゼロ以外かを確認する。ゼロの場合は、選定部２１４は、ロックを獲得していないと判断し、ステップＳ９０５ａに進む。ゼロ以外の場合は、選定部２１４は、ステップＳ９０７へ進む。
【００５４】
ステップＳ９０５ａにおいて、選定部２１４は、設定優先度１４６と、ロックテーブル２１９ａ内のＣＰＵ番号１４１の優先度１９３とを比較する。優先度１９３が設定優先度１４６以上の場合、ステップＳ９０６ａに進む。優先度１９３が設定優先度１４６未満の場合、ステップＳ９０７に進む。
ステップＳ９０６ａにおいて、選定部２１４は、移譲先ＣＰＵ番号１４２と設定ＣＰＵ番号１４５とにＣＰＵ番号１４１を設定する。また、選定部２１４は、設定優先度１４６にロックテーブル２１９ａ内のＣＰＵ番号１４１の優先度１９３を設定する。
ステップＳ９０７からステップＳ９１０までの処理は、実施の形態１の図７と同様である。
【００５５】
以上のように、本実施の形態に係る情報処理装置１００によれば、ロックテーブルにＣＰＵごとの優先度が設定でき、ロックを獲得していないＣＰＵが複数存在した場合は優先度をもとに移譲先ＣＰＵが選定される。よって、本実施の形態に係る情報処理装置１００によれば、より効率的に移譲先ＣＰＵを選定することができる。
【００５６】
以上、実施の形態１および２について説明した。実施の形態１および２では、情報処理装置１００のＬＨＰ抑制部の各部が独立した機能ブロックとして情報処理装置１００を構成している。しかし、上述した実施の形態のような構成でなくてもよく、情報処理装置１００の構成は任意である。情報処理装置１００の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、任意である。これらの機能ブロックを、他のどのような組み合わせ、あるいは任意のブロック構成で、情報処理装置１００を構成しても構わない。
【００５７】
実施の形態１および２について説明したが、これらの実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明、その適用物および用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００５８】
２５  第１実行部、２６  第２実行部、２８  応答部、３１  実行ＣＰＵ、３２  移譲元ＣＰＵ、３３  移譲先ＣＰＵ、１００  情報処理装置、１０１，１０２，１０３，１０４，２０１，２０２，２０３，２０４  ＣＰＵ、１０５  マルチプロセッサ機構、１０６  メモリ、１０７，１０８  デバイス、１０９  割込み管理機構、１１０  ストレージ、１４１，１９１  ＣＰＵ番号、１４２  移譲先ＣＰＵ番号、１４４  割込み番号、１４５  設定ＣＰＵ番号、１４６  設定優先度、１５１  移譲要求、１９２  ロックカウンタ、１９０  ロック情報、１９３  優先度、２０５  ＧＰＯＳ、２０５ｘ  第１のＯＳ、２０６  ＲＴＯＳ、２０６ｘ  第２のＯＳ、２０７，２０８，２０９，２１０  ＣＴＸ、２１１  ＣＰＵスイッチ、２１２  ＬＨＰ抑制部、２１３  確認部、２１４  選定部、２１５  要求送信部、２１６  要求受信部、２１７  確認応答部、２１８  実行準備部、２１９，２１９ａ  ロックテーブル、２２０  記憶部、６１０  情報処理方法、６２０  情報処理プログラム、Ｓ１  第１実行処理、Ｓ２  第２実行処理、Ｓ３０  ロック獲得処理、Ｓ４０  ロック解放処理、Ｓ５０  移譲元ＣＰＵ処理、Ｓ５１  確認処理、Ｓ５２，Ｓ５２ａ  選定処理、Ｓ５３  要求送信処理、Ｓ６０  移譲先ＣＰＵ処理、Ｓ６１  確認応答処理、Ｓ６２  実行準備処理。
【図１】
0006545399.tif 000002
【図２】
0006545399.tif 000003
【図３】
0006545399.tif 000004
【図４】
0006545399.tif 000005
【図５】
0006545399.tif 000006
【図６】
0006545399.tif 000007
【図７】
0006545399.tif 000008
【図８】
0006545399.tif 000009
【図９】
0006545399.tif 000010
【図１０】
0006545399.tif 000011
【図１１】
0006545399.tif 000012
【図１２】
0006545399.tif 000013
【図１３】
0006545399.tif 000014