(57)【要約】      （修正有）【課題】並列処理環境で動作するプログラムを実行する際、前記プログラムの命令の実行タイミングに起因する障害を削減する。【解決手段】記憶装置を備え、前記記憶装置に格納された複数のプロセス１３１を含むプログラム１０３を実行する情報処理装置においてプログラム制御を行い、並列処理環境で動作するプログラム実行の際、プログラムが実行した命令を取得し、実行された命令をスケジュール情報として前記記憶装置に記憶し、前記プログラムを実行して前記プログラムの命令が前記スケジュール情報に登録されている順序に合致するかを判定し、合致していれば前記プログラムの命令を実行させる。【選択図】図１Ｂ
2014078088.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を備え、前記記憶装置に格納された複数のプロセスを含むプログラムを実行する情報処理装置におけるプログラム制御方法において、
前記プログラムが実行した命令を取得し、実行された命令をスケジュール情報として前記記憶装置に記憶し、
前記プログラムを実行して前記プログラムの命令が前記記憶装置に記憶されているスケジュール情報に登録されている順序に合致するかを判定し、合致していれば前記プログラムの命令を実行させ、合致しない場合は前記プログラムの命令の実行を保留することを特徴とするプログラム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理環境で動作するプログラムにおける命令の実行を制御する技術に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２０１０−９４９５号公報がある。この公報には、「スレッド間の依存関係を固定的に実装する必要の無いマルチスレッド処理を実現する情報処理装置、プログラム処理方法及びコンピュータプログラムを提供する。
プログラムモジュール同士の並列処理の関係を記述した並列実行制御記述から、個々の前記プログラムモジュールに関連する部分を抽出した先行情報と後続情報を含むグラフデータ構造生成情報に基づいて所定のプログラムモジュールを抽出し、これを依存関係に従ってグラフデータ構造に追加更新し、先行するノードすべてが処理済であるノードから実行する処理方法とする。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−９４９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
並列処理環境でプログラムを動作させる際、ＯＳが行う、マルチタスクスケジューリングは、例え同じプログラムを実行しても、毎回同じ命令実行順序が保証されているわけではない。マシン環境の変化や実行中の割り込み、最適化などの実効環境の変化によって命令実行順序が異なる。例えば、テスト環境で対象プログラムが正常に動作したとしても、その他の環境で正常に動作することは保証できない。
【０００５】
そのため，並列処理に伴うプログラム制御をしても、プログラムそのものに起因する障害が発生するケース、例えば、処理Ｂは処理Ａの終了を前提としているが、命令の実行タイミングにより、処理Ｂが先に実行されてしまい障害が発生するケースや、複数の処理が共通資源にアクセスする際、処理Ａが共通資源を使用中にも関わらず、命令の実行タイミングにより処理Ｂも共通資源を使用してしまい、アクセス競合による障害が発生するケースなど、プログラム開発者が予期しない、命令の実行タイミングに起因する障害が発生するケースを否定できない。
【０００６】
背景技術では、処理の実行順序に起因する障害は防ぐことができるが、共通資源へのアクセス競合により発生する障害は防ぐことができず、並列処理環境における命令の実行タイミングに起因する障害の全てを抑止することは記載されていない。
【０００７】
本発明の目的は、並列処理環境で動作するプログラムを実行する際、命令の実行タイミングに起因する障害を削減することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【０００９】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「複数のプロセスを含むプログラムを、コンピュータに実行させるものにおいて、各プロセスに含まれる命令の実行順序を登録したスケジュール情報と、次に実行される命令を取得する命令取得手段と、次に実行される命令がスケジュール情報に登録されている順序に合致するかを判定する命令比較手段を有し、合致していれば命令を実行させることを特徴とするプログラム制御方法」を特徴とする。
【発明の効果】
【００１０】
本発明によれば、事前に命令の実行順序を登録したスケジュール情報を作成し、並列処理環境でプログラムを動作させる際にスケジュール情報を用いることで、正常な命令の実行順序を保証し、プログラム開発者が予期しない命令実行タイミングに起因する障害を発生させないという効果がある。
【図面の簡単な説明】
【００１１】
【図１Ａ】命令実行順序取得装置の構成を示す説明図である。
【図１Ｂ】命令監視実行制御装置の構成を示す説明図である。
【図２】実行命令取得部の命令取得ルーチンの処理を説明するフローチャートの例である。
【図３】命令実行順序テーブル作成部の処理を説明するフローチャートである。
【図４】命令実行スケジュール作成部の処理を説明するフローチャートである。
【図５】命令実行部の命令比較ルーチンの処理を説明するフローチャートである。
【図６】命令実行順序情報を示す例である。
【図７】命令実行順序テーブルを示す一例である。
【図８】スケジュール命令一覧を示す一例である。
【図９】命令実行順序作成部の処理を説明するフローチャートである。
【図１０】命令実行スケジュールの一例である。
【図１１】実行待ち命令スタックの一例である。
【図１２】最終命令の構造を示す一例である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【実施例１】
【００１３】
図１Ａ、図１Ｂは、本発明における実施例である並列処理環境における命令実行順序取得装置１００Ａ、および、命令監視実行制御装置１００Ｂの構成を示す説明図である。
【００１４】
本実施例は、命令実行順序取得部１４１、および、命令監視実行制御部１０１を有し、命令実行順序取得部１４１、および、命令監視実行制御部１０１の対象となるプログラム１０３（以下、複数のプロセスを含む、プログラムと定義する）を有する。このプログラム１０３に含まれるプロセスは通常２つ以上存在しても良いが、本実施例では本処理の構成を分かりやすく説明するためにプロセスＡ（１３１）とプロセスＢ（１３２）の２つとしている。
【００１５】
ここで示すプロセスは、コンピュータでプログラムなどを動作させる際、ＣＰＵが実行する、共有資源に並列にアクセスするひとまとまりの処理の単位で、タスク、スレッド、ジョブなどを含む。
【００１６】
プログラム１０３を処理する並列環境ＯＳ（オペレーティングシステム）１０２は、プログラム１０３中のタスクスケジューリングを行うスケジューラ１２１を有し、スケジューラ１２１は、命令１２２（以下、次に実行される命令と定義する）を命令処理ルーチン１２３に送り、命令処理ルーチン１２３で命令１２２を解析し処理を実行する。
【００１７】
図１Ａに示す命令実行順序取得装置１００Ａは、命令１２２を並列環境ＯＳ（１０２）から収集し、命令１２２の情報を命令実行順序順にまとめた、命令実行順序情報１１４を作成する、実行命令取得部１１１を有し、共有資源にアクセスする命令の集まりであるスケジュール命令一覧１２４と、共有資源にアクセスする命令の実行順序を定めた、命令実行スケジュール１２５から構成されるスケジュール情報１２７を作成する命令実行順序作成部１１２から構成されている。
【００１８】
図１Ｂに示す命令監視実行制御装置１００Ｂは、命令１２２を並列環境ＯＳ（１０２）から収集し、命令１２２の情報を命令実行部１１３に送る、実行命令取得部１１１を有し、実行命令取得部１１１から送られた、並列環境ＯＳ（１０２）から収集した、命令１２２の情報と、スケジュール命令一覧１２４と、命令実行スケジュール１２５を比較して、命令の実行を決定する命令実行部１１３から構成されている。
【００１９】
実行命令取得部１１１は、並列環境ＯＳ（１０２）から収集した、命令１２２から、命令実行順序情報１１４を作成、および、並列環境ＯＳ（１０２）から収集した、命令１２２の情報を命令実行部１１３に送る、命令取得ルーチン１２６から構成されている。命令取得ルーチン１２６の処理については図２で説明し、命令実行順序情報１１４の構成については図６で説明する。
【００２０】
命令実行順序作成部１１２は、命令実行順序情報１１４から、命令実行順序テーブル１１６を作成する、命令実行順序テーブル作成部１１５を有し、命令実行順序テーブル１１６から、共有資源にアクセスする命令の集まりであるスケジュール命令一覧１２４と、共有資源にアクセスする命令の実行順序を定めた命令実行スケジュール１２５を作成する、命令実行スケジュール作成部１１７から構成されている。命令実行順序作成部１１２については図９で説明し、命令実行順序テーブル作成部１１５の処理については図３で説明し、命令実行スケジュール作成部１１７の処理については図４で説明し、命令実行順序テーブルの構成については図７で説明し、スケジュール命令一覧１２４の構成については図８で説明し、命令実行スケジュール１２５の構成については図１０で説明する。
【００２１】
命令実行部１１３は、命令取得ルーチン１２６より送られた命令１２２の情報と、スケジュール命令一覧１２４と、命令実行スケジュール１２５に含まれる命令を比較して、次に実行する命令を決定し、実行待ち命令スタック１１９と、最終命令１２０を作成する、命令比較ルーチン１１８から構成されている。命令比較ルーチン１１８の処理については図５で説明し、実行待ち命令スタック１１９の構成については図１１で説明し、最終命令１２０の構成については図１２で説明する。
【００２２】
本実施例は、図１Ａに示す、命令実行順序取得装置１００Ａを用いた、プログラム１０３のテスト、または、運用時に動作し、スケジュール命令一覧１２４と命令実行スケジュール１２５のスケジュール情報１２７を作成する処理と、図１Ｂに示す、命令監視実行制御装置１００Ｂを用いた、プログラム１０３の運用時に動作し、スケジュール情報１２７に規定されている命令の順序でプログラムを実行する処理の２段階に分かれている。
【００２３】
命令実行順序取得装置１００Ａ、および、命令監視実行制御装置１００Ｂを使用する際、ユーザはまず、命令実行順序取得装置１００Ａを用いてスケジュール情報１２７の作成を行う。スケジュール情報１２７の作成では、まず、ユーザが命令実行順序取得装置１００Ａを開始する。次に、プログラム１０３を開始し、命令実行順序作成部１１２により、スケジュール命令一覧１２４と実行命令スケジュール１２５を作成し、プログラム１０３内の全てのプロセスが終了した後、処理を終了する。
【００２４】
スケジュール命令一覧１２４と実行命令スケジュール１２５のスケジュール情報１２７を作成した後、スケジュールに沿った命令の実行が可能となる。スケジュール情報１２７に規定されている命令の順序でプログラムを実行する際は、まず、ユーザが命令監視実行制御装置１００Ｂを開始する。次に、プログラム１０３を開始する。開始したプログラム１０３は、命令実行部１１３により、命令の実行、待機が決定され、あらかじめ作成したスケジュール情報１２７に規定されている順序で動作する。プログラム１０３内の全てのプロセスが終了した後、処理を終了する。
【００２５】
スケジュール情報１２７は、あらかじめ他の環境で作成した物でも利用することが可能である。
【００２６】
図２は、本発明における実施例である並列処理環境における命令実行順序取得部１４１、および、命令監視実行制御部１０１の実行命令取得部１１１における、命令取得ルーチン１２６の処理を説明するフローチャートである。
【００２７】
まず、ユーザが命令実行順序取得部１４１、または、命令監視実行制御部１０１を開始し（ステップ２０１）、プログラム１０３を開始する（ステップ２１６）と、命令取得ルーチン１２６が開始する（ステップ２０２）。
【００２８】
現在、命令取得ルーチン１２６を実行しているのが、命令実行順序取得部１４１の場合（ステップ２０４）、並列環境ＯＳ（１０２）から収集した、命令１２２から、命令実行順序情報１１４を作成する（ステップ２０５）。
【００２９】
次に、命令実行順序取得部１４１が、プログラム１０３内の全てのプロセスが終了したかを並列環境ＯＳ（１０２）に問い合わせ（ステップ２０６）、もし終了していなければ（ステップ２０７）、再び命令実行順序情報１１４を作成するためのステップ２０５を実行し、終了していれば、対象プログラムが正常終了したかの確認をユーザに問い合わせ（ステップ２０８）、もし正常終了していなければ（ステップ２０９）、スケジュール情報１２７を作成せずに命令実行順序取得部１４１を終了し（ステップ２１５）、正常終了していれば、命令取得ルーチン１２６を終了し（ステップ２１０）、命令実行順序情報１１４を命令実行順序作成部１１２に送り、スケジュール情報１２７の作成を行い（ステップ２１１）、命令実行順序取得部１４１を終了する（ステップ２１５）。
【００３０】
現在、命令取得ルーチン１２６を実行しているのが、命令監視実行制御部１０１の場合（ステップ２１２）、並列環境ＯＳ（１０２）から収集した、命令１２２を命令実行部１１３に送り（ステップ２１３）、命令取得ルーチン１２６を終了し（ステップ２１７）、命令実行部１１３の処理を行う（ステップ２１４）。
【００３１】
次に、命令監視実行制御部１０１が、プログラム１０３の全てのプロセスが終了したかを並列環境ＯＳ（１０２）に問い合わせ（ステップ２１８）、もし終了していなければ（ステップ２１９）、再び命令取得ルーチンを開始するステップ２０２を実行し、終了していれば、命令監視実行制御装置１００Ｂを終了する（ステップ２１５）。
【００３２】
図９は、本発明における実施例である並列処理環境における命令実行順序取得部１４１の命令実行順序作成部１１２の処理を説明するフローチャートである。
【００３３】
まず、命令実行順序作成部１１２に、命令実行順序情報１１４が送られ、命令実行順序作成部１１２の処理を開始する（ステップ９０１）。
【００３４】
次に、受け取った命令実行順序情報１１４から、命令実行順序テーブル１１６を作成する（ステップ９０２）。
【００３５】
次に、命令実行順序テーブル１１６から、命令実行スケジュール作成部１１７が、命令実行順序テーブル１１６に存在する命令をリスト化したスケジュール命令一覧１２４と、各命令の実行順序を規定した、命令実行スケジュール１２５を作成し（ステップ９０３）、命令実行順序取得装置１００Ａを終了する（ステップ９０４）。
【００３６】
図３は、本発明における実施例である並列処理環境における命令実行順序取得部１４１の命令実行順序テーブル作成部１１５の処理を説明するフローチャートである。
【００３７】
まず、命令実行順序テーブル作成部１１５に、命令実行順序情報１１４が送られ、命令実行順序テーブル１１６の作成を開始する（ステップ３０１）。
【００３８】
次に、命令実行順序テーブル作成部１１５が、命令実行順序情報１１４内の情報を、共有資源にアクセスしている命令ごとにまとめ、命令実行順序テーブル１１６を作成する。（ステップ３０２）共有資源にアクセスしていない命令は、命令実行順序テーブル１１６には含まれない。
【００３９】
次に、命令実行順序情報１１４内に存在する、全ての共有資源ごとに命令実行順序テーブル１１６が作成されているかどうか判定し（ステップ３０３）、まだ完了していない場合（ステップ３０４）は、（ステップ３０２）に戻り、完了すれば、命令実行順序テーブル１１６が完成（ステップ３０５）し、次の命令実行スケジュール作成部１１７の処理に移る。
【００４０】
図４は、本発明における実施例である並列処理環境における命令実行順序取得部１４１の命令実行スケジュール作成部１１７の処理を説明するフローチャートである。
【００４１】
まず、命令実行スケジュール作成部１１７に、命令実行順序テーブル１１６が送られ、スケジュール命令一覧１２４、および、命令実行スケジュール１２５の作成を開始する（ステップ４０１）。
【００４２】
次に、命令実行順序テーブル１１６から、命令実行順序テーブル１１６に存在する全ての命令の情報をまとめ、スケジュール命令一覧１２４を作成する（ステップ４０２）。
【００４３】
次に、命令実行順序テーブル１１６から、命令実行順序テーブル１１６に存在する命令の情報を一つ選択し、選択した命令の実行順序の情報を命令実行スケジュール１２５に登録する（４０３）。
【００４４】
次に、命令実行順序テーブル１１６に存在する全ての命令の情報について、命令実行スケジュール１２５に登録が完了したかどうか判定し（ステップ４０４）、まだ完了していない場合（ステップ４０５）は、（ステップ４０３）に戻り、完了すれば、スケジュール命令一覧１２４、および、命令実行スケジュール１２５が完成（ステップ４０６）し、命令実行順序作成部１１２の処理が完了する。
【００４５】
図５は、本発明における実施例である並列処理環境における命令監視実行制御部１０１の命令実行部１１３における命令比較ルーチン１１８の処理を説明するフローチャートである。
【００４６】
プログラム１１３が開始されると、実行命令取得部１１１から、並列環境ＯＳ（１０２）から収集した、命令１２２の情報が命令実行部１１３に送られ、命令比較ルーチン１１８の処理が開始する（ステップ５０１）。
【００４７】
次に、実行命令取得部１１１から送られてきた、命令１２２が、スケジュール命令一覧１２４に存在するか判定し（ステップ５０２）、存在しない場合（ステップ５０３）、そのまま命令が命令処理ルーチン１２３で実行され（ステップ５０４）、命令比較ルーチン１１８の処理を終了し（ステップ５１６）、存在すれば、スケジュール命令一覧１２４に存在する命令内で最後に実行された命令（最終命令１２０）を取得し（ステップ５０５）、取得した最終命令１２０の次に実行可能な命令を、命令実行スケジュール１２５から取得する（ステップ５０６）。
【００４８】
次に、命令実行スケジュール１２５を参照し、命令１２２が、取得した最終命令１２０の次に実行可能な命令か判定し（ステップ５０７）、実行不可能な場合（ステップ５０８）、命令１２２を実行待ち命令スタック１１９に格納し（ステップ５０９）、ＯＳのスケジューラ１２１に対して、命令１２２を待機させる割り込みを発生させ（ステップ５１０）、命令比較ルーチン１１８の処理を終了し（ステップ５１６）、実行可能な場合、命令１２２がＯＳのスケジューラ１２１において待機状態にあるかどうか並列環境ＯＳ（１０２）に問い合わせ、命令が待機状態でない場合は、命令の実行要求を並列環境ＯＳ（１０２）に出し、命令が待機状態の場合は、まず、待機状態を解除する要求を並列環境ＯＳ（１０２）に出すことで、並列環境ＯＳ（１０２）に命令の実行要求を行い（ステップ５１１）、最終命令１２０を実行した命令に更新する（ステップ５１２）。
【００４９】
次に、実行待ち命令スタック１１９に命令が存在するか判定し（ステップ５１３）、命令が存在する場合（ステップ５１４）、実行待ち命令スタック１１９から命令を取得し、取得した命令を命令１２２に置き換え（ステップ５１５）、ステップ５０５に戻り、存在しない場合、命令比較ルーチン１１８の処理を終了する（ステップ５１６）。
【００５０】
図６は、実行命令取得部１１１の命令取得ルーチン１２６で作成される、命令実行順序情報１１４の構成図の例である。
【００５１】
命令実行順序情報１１４は、命令取得ルーチン１２６が、並列環境ＯＳ（１０２）から収集した、命令１２２を命令実行順にまとめたものであり、各命令を識別する、命令識別子６０１と、その命令がアクセスした場所を示す、アクセス箇所６０２を有す。
【００５２】
命令実行順序情報１１４内の情報は、並列環境ＯＳ（１０２）のスケジューラ１２１によって実行された順序に従って配置される。
【００５３】
行６０３は、プロセスＡ２の示す命令がメモリアドレス１に対してアクセスする命令であることを示し、行６０４は、プロセスＡ３の示す命令がメモリアドレス２に対してアクセスする命令であることを示している。
【００５４】
図６内のプロセスＡ１、プロセスＡ２、・・・と書かれているものは、プロセスＡ内の命令に連続番号を振り、各命令を識別するものである。先頭命令から順にプロセスＡ１、プロセスＡ２、・・・と、番号を付与している。（以下、プロセスＡ１、プロセスＡ２、・・・という記述は同様の意味とする。）
図７は、命令実行順序作成部１１２の命令実行順序テーブル作成部１１５で作成される、命令実行順序テーブル１１６の構成図の例である。
【００５５】
命令実行順序テーブル１１６は、命令実行順序テーブル作成部１１５が、命令実行順序情報１１４から、共有資源にアクセスしている命令をアクセス箇所６０２ごとにグルーピングしたものであり、命令実行順序情報１１４から、アクセス箇所６０２ごとにグループ化された同じアクセス箇所にアクセスする命令識別子６０１の集合で構成される。
【００５６】
命令実行順序テーブル１１６を構成する命令識別子６０１は、並列環境ＯＳ（１０２）のスケジューラ１２１によって実行された順序に従って配置される。
【００５７】
テーブル７０１は、共有メモリアドレス１の示すアクセス箇所にアクセスする命令識別子６０１の集合であり、共有メモリアドレス１の示すアクセス箇所に、プロセスＡ１の示す命令の後に、プロセスＡ２の示す命令が実行され、プロセスＡ２の示す命令の後に、プロセスＢ１の命令が実行されるといった、アクセス箇所ごとの命令実行順序を示し、テーブル７０２は、共有メモリアドレス２の示すアクセス箇所にアクセスする命令識別子６０１の集合であり、共有メモリアドレス２の示すアクセス箇所に、プロセスＡ３の示す命令の後に、プロセスＡ４の示す命令が実行され、プロセスＡ４の示す命令の後に、プロセスＢ５の命令が実行されるといった、アクセス箇所ごとの命令実行順序を示している。
【００５８】
図８は、命令実行順序作成部１１２の命令実行スケジュール作成部１１７で作成される、スケジュール命令一覧１２４の構成図の例である。
【００５９】
スケジュール命令一覧１２４は、命令実行スケジュール作成部１１７が、命令実行順序テーブル１１６に存在する命令識別子６０１を重複なくまとめたものであり、共有資源にアクセスする命令の集まりである、本装置により実行順序を規定される命令を識別する、命令識別子８０１を有する。
【００６０】
図１０は、命令実行順序作成部１１２の命令実行スケジュール作成部１１７で作成される、命令実行スケジュール１２５の構成図の例である。
【００６１】
命令実行スケジュール１２５は、命令実行スケジュール作成部１１７が、命令実行順序テーブル１１６から共有資源にアクセスする命令の実行順序を定めたもので、本装置により実行順序を規定される、共有資源にアクセスする命令を示す命令識別子１００１と、命令識別子１００１が示す共有資源にアクセスする命令の直後に実行が可能である共有資源にアクセスする命令を示す、命令識別子１００２を有する。
【００６２】
行１００３は、プロセスＡ１の示す命令の後にプロセスＡ２の示す命令が実行可能であることを示し、行１００４は、プロセスＡ２の示す命令の後にプロセスＢ１の示す命令が実行可能であることを示している。
【００６３】
命令識別子１００１は、空白、または、１つの命令識別子から構成される。命令識別子１００１が空白の行は、最終命令１２０が設定されていない状態で、命令比較ルーチン１１８が動作した際に参照される行である。命令識別子１００１が空白の行における命令識別子１００２は、命令実行スケジュール１２５において最初に実行可能としている共有資源にアクセスする命令を指す。
【００６４】
命令識別子１００２は、空白、または、１つ以上の命令識別子から構成される。命令識別子１００２が空白の行における命令識別子１００１は、命令実行スケジュール１２５において、最後に実行可能な共有資源にアクセスする命令を指す。
【００６５】
図１１は、命令実行部１１３の命令比較ルーチン１１８で作成、および、使用される、実行待ち命令スタック１１９の構成図の例である。
【００６６】
実行待ち命令スタック１１９は、命令比較ルーチン１１８で実行不可と判定し、実行を保留する命令の情報を記憶するものであり、実行を保留している命令を示す、命令識別子１１０１を有する。
【００６７】
命令識別子１１０１は、空白、または、１つ以上の命令識別子から構成される。命令識別子１１０１が空白ということは、実行を保留している命令が存在しないということを指す。
【００６８】
図１２は、命令実行部１１３の命令比較ルーチン１１８で作成、および、使用される、最終命令１２０の構成図の例である。
【００６９】
最終命令１２０は、命令比較ルーチン１１８で実行可能と判断した共有資源にアクセスする命令のうち、最後に実行された命令の情報を記憶するものであり、本装置を用いて最後に実行された共有資源にアクセスする命令を示す、命令識別子１２０１を有する。
【００７０】
命令識別子１２０１は、空白、または、１つの命令識別子から構成される。命令識別子１２０１が空白ということは、命令実行スケジュール１２５に登録されている共有資源にアクセスする命令が一つも実行されていない状態を指す。
【００７１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００７２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００７３】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００７４】
１００Ａ  命令実行順序取得装置
１００Ｂ  命令監視実行制御装置
１０１  命令監視実行制御部
１０２  並列環境ＯＳ
１０３  プログラム
１１１  実行命令取得部
１１２  命令実行順序作成部
１１３  命令実行部
１１４  命令実行順序情報
１１５  命令実行順序テーブル作成部
１１６  命令実行順序テーブル
１１７  命令実行スケジュール作成部
１１８  命令比較ルーチン
１２１  スケジューラ
１２２  次に実行される命令
１２３  命令処理ルーチン
１２６  命令取得ルーチン
１２７  スケジュール情報
１４１  命令実行順序取得部
【図１Ａ】
2014078088.tif 000003
【図１Ｂ】
2014078088.tif 000004
【図２】
2014078088.tif 000005
【図３】
2014078088.tif 000006
【図４】
2014078088.tif 000007
【図５】
2014078088.tif 000008
【図６】
2014078088.tif 000009
【図７】
2014078088.tif 000010
【図８】
2014078088.tif 000011
【図９】
2014078088.tif 000012
【図１０】
2014078088.tif 000013
【図１１】
2014078088.tif 000014
【図１２】
2014078088.tif 000015