(57)【要約】【課題】動作中のオペレーティングシステムの命令（機能）の変更を容易かつ安全に行う命令変更方式を提供する。【解決手段】複数のプロセスが並行して実行される情報処理装置において、オペレーティングシステムの動作中にオペレーティングシステム内の命令を書き換えることによりその命令を変更する命令変更方式であって、書き換えアドレスと変更する命令を含む情報を変更情報記録領域へ記録する変更情報記録部２０と、変更情報記録領域へ保持された変更情報を参照し、主記憶上のオペレーティングシステム内の命令を書き換える命令書き換え部３０とを備え、プロセス管理部１１は、命令書き換え部３０を最低優先度に設定し、命令書き換え部３０は最低優先度により実行されることを特徴とする。【選択図】図１
2006120176.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置に備えられ、オペレーティングシステムの動作中に、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスを書き換える命令変更方式において、
変更する命令に関する情報を入力し、入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得し、少なくとも上記アドレスと変更後の命令の内容を記述した変更後命令とを含む変更情報を生成し、生成した変更情報を出力する書き換え要求生成部と、
上記アドレスと上記変更後命令とを含む変更情報を記録する記録領域である変更情報記録領域と、
上記書き換え要求生成部から変更情報を入力し、入力した変更情報に基づいて、上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ記録する変更情報記録部と、
オペレーティングシステムによって実行される実行可能状態にあるプロセスのプロセス状態を取得し、取得したプロセス状態の情報を出力するプロセス状態取得部と、
上記プロセス状態取得部からプロセス状態の情報を入力し、入力したプロセス状態の情報に基づいて、命令書き換えの可否を判定する命令書き換え判定部と、
上記命令書き換え部は、上記命令書き換え判定部に命令の書き換えの可否を判断する指示を出力し、上記命令書き換え判定部から命令書き換えが可能であると判定された場合に、変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスの中のプロセスを判定して、判定したプロセスの命令の書き換えを実行する命令書き換え部と
を備えることを特徴とする命令変更方式。
【請求項２】
上記プロセス状態取得部は、実行可能状態にあるプロセスを抽出し、抽出した実行可能状態にあるプロセスのプロセス状態の情報を上記命令書き換え判定部へ出力し、
上記命令書き換え判定部は、上記実行可能状態にあるプロセス状態の情報を入力し、入力した実行可能状態にあるプロセス状態の情報に基づいて、実行可能状態にあるプロセスが命令を中断した時点のアドレスを取得し、取得したアドレスが、上記変更情報記録領域に記録されている変更情報に含まれるアドレスと一致する場合は、命令の書き換えができないと判断することを特徴とする請求項１記載の命令変更方式。
【請求項３】
上記命令変更方式は、さらに、上記命令書き換え判定部から、変更情報に含まれるアドレスと一致するアドレスを有するプロセスのプロセス状態の情報を入力し、入力したプロセス状態の情報を用いて、上記プロセスの優先度を取得し、取得したプロセスの優先度より低い優先度を上記命令書き換え部へ設定することを上記プロセス管理部に指示する命令書き換え優先度設定部を備え、
上記プロセス管理部は、上記命令書き換え優先度設定部の指示に基づいて、上記命令書き換え部へ優先度を設定することを特徴とする請求項２記載の命令変更方式。
【請求項４】
上記命令変更方式は、さらに、上記複数のプロセスを、上記複数のプロセスを実行する優先度を用いて管理するプロセス管理部を備え、
上記書き換え要求生成部は、さらに、変更前の命令に復元することを要求する復元要求情報を含む変更する命令に関する情報を入力し、上記アドレスと上記変更後命令と上記復元要求情報とを含む変更情報を生成し、
上記変更情報記録領域は、さらに、変更前の命令である変更前命令と、上記復元要求情報とを記録する記録領域を備え、
上記変更情報記録部は、上記変更情報に上記復元要求情報が含まれている場合は、上記アドレスに格納されている命令を変更前命令として読み込み、読み込んだ変更前命令と上記復元要求情報と上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ書き込み、
上記書き換え要求生成部は、命令を復元する復元要求情報を入力し、入力した命令復元情報に基づいて、命令を復元することを上記命令書き換え部へ指示し、
上記命令書き換え部は、上記書き換え要求生成部からの指示に基づいて、上記変更情報記録領域に記録されている変更情報を読み込み、読み込んだ変更情報に復元要求情報が記録されている場合に、読み込んだ変更情報からアドレスと変更前命令とを抽出し、抽出した変更前命令を上記アドレスへ書き込むことを特徴とする請求項１から３いずれかに記載された命令変更方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置において、オペレーティングシステム動作中に命令の一部を書き換えることにより、その機能を動的に変更する命令変更方式及び方法に関する。
【背景技術】
【０００２】
特開平９−６２５００では、計算機システムの稼働中に、不具合を部分的に修正するパッチ処理を行うために、プロセスを最高優先度で実行することによりパッチ処理中に他のプロセスの動作を停止させ、誤動作を防止する方法を開示している。
【０００３】
現在広く使用されている米国Ｉｎｔｅｌ  ＣｏｒｐｏｒａｔｉｏｎのＰｅｎｔｉｕｍ（登録商標）プロセッサのように、プロセッサの命令長が単一ではない場合、１命令を書き込む場合にも、複数の命令を書き換える必要が生じることがある。例えば、スタック操作命令は１バイト、レジスタ転送命令が２バイトであるのに対し、ジャンプ命令は５バイトの領域を使用する場合がある。
【０００４】
一方、オペレーティングシステムには、プロセスの応答性を向上させるため、割り込み発生時に直ちにプロセス切り替えを行うことが可能な構造を持つものがある。割り込みの発生により、それまで待ち状態に置かれていたプロセスが実行可能状態となり、そのプロセスの優先度が割り込み発生時に実行されていたプロセスよりも高ければ、優先度の低いプロセスの実行権が横取りされる。この場合、オペレーティングシステム内の任意の箇所で、プロセスの切り替えが発生する。
【特許文献１】特開平９−６２５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のように、複数の命令を１命令に書き換えようとする場合、書き換えられる複数の命令の間で、プロセス実行権の横取りが行われている場合には、もしその書き換えを行ってしまうと、実行が中断されていたプロセスの再開時に、書き換えられた命令の途中から実行を再開しようとすることとなり、障害が発生してしまうという問題がある。
【０００６】
この発明は、上記のような課題を解決するためになされたもので、オペレーティングシステム内の任意の箇所で実行権の横取りによるプロセス切り替えが可能な構造を持ったオペレーティングシステムにおいて、命令の書き換え箇所で、プロセスの実行権の横取りが行われていないことを保証する方式及び方法を提供する。
【課題を解決するための手段】
【０００７】
この発明に係る命令変更方式は、複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置に備えられ、オペレーティングシステムの動作中に、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスを書き換える命令変更方式において、
変更する命令に関する情報を入力し、入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得し、少なくとも上記アドレスと変更後の命令の内容を記述した変更後命令とを含む変更情報を生成し、生成した変更情報を出力する書き換え要求生成部と、
上記アドレスと上記変更後命令とを含む変更情報を記録する記録領域である変更情報記録領域と、
上記書き換え要求生成部から変更情報を入力し、入力した変更情報に基づいて、上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ記録する変更情報記録部と、
変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスの中のプロセスを判定して、判定したプロセスの命令の書き換えを実行する命令書き換え部と、
上記複数のプロセスを、上記複数のプロセスを実行する優先度を用いて管理するプロセス管理部と
を備え、
上記プロセス管理部は、上記命令書き換え部の優先度を、実行可能状態にあるプロセスの中で最低レベルに設定することを特徴とする。
【０００８】
この発明に係る命令変更方式は、複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置に備えられ、オペレーティングシステムの動作中に、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスを書き換える命令変更方式において、
変更する命令に関する情報を入力し、入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得し、少なくとも上記アドレスと変更後の命令の内容を記述した変更後命令とを含む変更情報を生成し、生成した変更情報を出力する書き換え要求生成部と、
上記アドレスと上記変更後命令とを含む変更情報を記録する記録領域である変更情報記録領域と、
上記書き換え要求生成部から変更情報を入力し、入力した変更情報に基づいて、上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ記録する変更情報記録部と、
オペレーティングシステムによって実行される実行可能状態にあるプロセスのプロセス状態を取得し、取得したプロセス状態の情報を出力するプロセス状態取得部と、
上記プロセス状態取得部からプロセス状態の情報を入力し、入力したプロセス状態の情報に基づいて、命令書き換えの可否を判定する命令書き換え判定部と、
上記命令書き換え部は、上記命令書き換え判定部に命令の書き換えの可否を判断する指示を出力し、上記命令書き換え判定部から命令書き換えが可能であると判定された場合に、変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスの中のプロセスを判定して、判定したプロセスの命令の書き換えを実行する命令書き換え部と
を備えることを特徴とする。
【０００９】
上記プロセス状態取得部は、実行可能状態にあるプロセスを抽出し、抽出した実行可能状態にあるプロセスのプロセス状態の情報を上記命令書き換え判定部へ出力し、
上記命令書き換え判定部は、上記実行可能状態にあるプロセス状態の情報を入力し、入力した実行可能状態にあるプロセス状態の情報に基づいて、実行可能状態にあるプロセスが命令を中断した時点のアドレスを取得し、取得したアドレスが、上記変更情報記録領域に記録されている変更情報に含まれるアドレスと一致する場合は、命令の書き換えができないと判断することを特徴とする。
【００１０】
上記命令変更方式は、さらに、上記命令書き換え判定部から、変更情報に含まれるアドレスと一致するアドレスを有するプロセスのプロセス状態の情報を入力し、入力したプロセス状態の情報を用いて、上記プロセスの優先度を取得し、取得したプロセスの優先度より低い優先度を上記命令書き換え部へ設定することを上記プロセス管理部に指示する命令書き換え優先度設定部を備え、
上記プロセス管理部は、上記命令書き換え優先度設定部の指示に基づいて、上記命令書き換え部へ優先度を設定することを特徴とする。
【００１１】
上記書き換え要求生成部は、さらに、変更前の命令に復元することを要求する復元要求情報を含む変更する命令に関する情報を入力し、上記アドレスと上記変更後命令と上記復元要求情報とを含む変更情報を生成し、
上記変更情報記録領域は、さらに、変更前の命令である変更前命令と、上記復元要求情報とを記録する記録領域を備え、
上記変更情報記録部は、上記変更情報に上記復元要求情報が含まれている場合は、上記アドレスに格納されている命令を変更前命令として読み込み、読み込んだ変更前命令と上記復元要求情報と上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ書き込み、
上記書き換え要求生成部は、命令を復元する復元要求情報を入力し、入力した命令復元情報に基づいて、命令を復元することを上記命令書き換え部へ指示し、
上記命令書き換え部は、上記書き換え要求生成部からの指示に基づいて、上記変更情報記録領域に記録されている変更情報を読み込み、読み込んだ変更情報に復元要求情報が記録されている場合に、読み込んだ変更情報からアドレスと変更前命令とを抽出し、抽出した変更前命令を上記アドレスへ書き込むことを特徴とする。
【００１２】
上記命令変更方式は、さらに、上記複数のプロセスを、上記複数のプロセスを実行する優先度を用いて管理するプロセス管理部を備え、
上記書き換え要求生成部は、さらに、変更前の命令に復元することを要求する復元要求情報を含む変更する命令に関する情報を入力し、上記アドレスと上記変更後命令と上記復元要求情報とを含む変更情報を生成し、
上記変更情報記録領域は、さらに、変更前の命令である変更前命令と、上記復元要求情報とを記録する記録領域を備え、
上記変更情報記録部は、上記変更情報に上記復元要求情報が含まれている場合は、上記アドレスに格納されている命令を変更前命令として読み込み、読み込んだ変更前命令と上記復元要求情報と上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ書き込み、
上記書き換え要求生成部は、命令を復元する復元要求情報を入力し、入力した命令復元情報に基づいて、命令を復元することを上記命令書き換え部へ指示し、
上記命令書き換え部は、上記書き換え要求生成部からの指示に基づいて、上記変更情報記録領域に記録されている変更情報を読み込み、読み込んだ変更情報に復元要求情報が記録されている場合に、読み込んだ変更情報からアドレスと変更前命令とを抽出し、抽出した変更前命令を上記アドレスへ書き込むことを特徴とする。
【００１３】
この発明に係る命令変更方式は、変更する命令に関する変更情報を記録する変更情報記録領域を有し、複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置で実行され、オペレーティングシステムの動作中に、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスを書き換える命令変更方法において、
上記複数のプロセスを、上記複数のプロセスを実行する優先度を用いて管理し、
利用者から変更する命令に関する情報を入力し、
入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得し、
少なくとも上記アドレスと変更後の命令の内容を記述した変更後命令とを含む変更情報を生成し、
生成した変更情報を上記変更情報記録領域に記録し、
上記変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスの中のプロセスを判定して、上記プロセスの命令の書き換えを実行する命令書き換えプロセスを生成し、
生成した命令書き換えプロセスを実行する順番が実行可能状態のプロセスの中で最後になるように優先度に設定し、
上記命令書き換えプロセスを実行することを特徴とする。
【００１４】
この発明に係る命令変更プログラムは、変更する命令に関する変更情報を記録する変更情報記録領域を有し、複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置で実現され、オペレーティングシステムの動作中に、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスを書き換える命令変更を上記情報処理装置で実現する命令変更プログラムにおいて、
上記複数のプロセスを、上記複数のプロセスを実行する優先度を用いて管理する手順と、
変更する命令に関する情報を入力手順と、
入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得する手順と、
少なくとも上記アドレスと変更後の命令の内容を記述した変更後命令とを含む変更情報を生成する手順と、
生成した変更情報を上記変更情報記録領域に記録する手順と、
上記変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスの中のプロセスを判定して、上記プロセスの命令を書き換えを実行する命令書き換えプロセスを生成する手順と、
生成した命令書き換えプロセスを実行する順番が実行可能状態のプロセスの中で最後になるように優先度に設定する手順と、
上記命令書き換えプロセスを実行する手順と
を備えることを特徴とする。
【００１５】
この発明に係る命令変更プログラムを記録した計算機で読み取り可能な記録媒体は、変更する命令に関する変更情報を記録する変更情報記録領域を有し、複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置が読み取ることが可能である記録媒体であって、オペレーティングシステムの動作中に、オペレーティングシステムが有する命令を書き換える命令変更を上記情報処理装置で実現する命令変更プログラムを記録した記録媒体において、
上記複数のプロセスを、上記複数のプロセスを実行する優先度を用いて管理する手順と、
変更する命令に関する情報を入力手順と、
入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得する手順と、
少なくとも上記アドレスと変更後の命令の内容を記述した変更後命令とを含む変更情報を生成する手順と、
生成した変更情報を上記変更情報記録領域に記録する手順と、
上記変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスの中のプロセスを判定して、上記プロセスの命令を書き換えを実行する命令書き換えプロセスを生成する手順と、
生成した命令書き換えプロセスを実行する順番が実行可能状態のプロセスの中で最後になるように優先度に設定する手順と、
上記命令書き換えプロセスを実行する手順と
を備えることを特徴とする。
【発明の効果】
【００１６】
この発明の命令変更方式及び命令変更方法によれば、動作中のオペレーティングシステムの機能の変更（命令の変更）を容易かつ安全に行うことができる。
【００１７】
また、命令書き換えを行うアドレスで動作を中断しているプロセスの存在を確認することにより、動作中のオペレーティングシステムの機能の変更（命令の変更）を容易かつ安全に行うことができる。
【００１８】
さらに、命令書き換えを行うアドレスで動作を中断しているプロセスが存在するかを判定することができ、またそのようなプロセスが存在する場合でも可能な限り速やかに命令の書き換えを行うことができるため、動作中のオペレーティングシステムの機能を安全にかつ迅速に変更することができる。
【００１９】
また、デバッグやオペレーティングシステム動作の検証の目的で、一時的にオペレーティングシステムの機能を変更した場合にも、オペレーティングシステムの本来の機能を容易に復元することができる。
【発明を実施するための最良の形態】
【００２０】
実施の形態１．
図１は、この発明の実施の形態１における情報処理装置の一例を表す構成図である。
この情報処理装置は、複数の命令からなる複数のプロセスにより構成されたオペレーティングシステムを動作させる情報処理装置に備えられ、オペレーティングシステムの動作中に、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスを書き換える命令変更方式及び命令変更方法について説明する。
１０はオペレーティングシステム、２０は変更情報記録部、３０は命令書き換え部であり、１１はプロセス管理部である。
１００は命令書き換え要求を行う命令書き換え要求プロセス（書き換え要求プロセス）であり、１１０は命令書き換えを行う命令書き換えプロセス（書き換えプロセス）である。プロセス管理部１１は、命令書き換え要求プロセス１００を変更情報記録部２０へ出力し、命令書き換えプロセス１１０を命令書き換え部３０へ出力する。
【００２１】
プロセス管理部１１は、生成された複数のプロセスを管理する。プロセス管理部１１は、複数のプロセスを、上記複数のプロセスを実行する優先度を用いて、実行可能状態のプロセスの実行する順番を管理する。
書き換え要求生成部７０は、利用者から変更する命令に関する情報を入力し、入力した情報に基づいて、変更する命令が格納されているアドレスを検索して取得し、少なくとも上記アドレスと変更後の命令を記述した変更後命令（書き換え命令）とを含む変更情報を生成する。書き換え要求生成部７０は、生成した変更情報に基づいて命令書き換え要求プロセス１００を生成し、出力する。
変更情報記録領域は、上記アドレスと上記変更後命令とを含む変更情報を記録する記録領域である。変更情報記録領域は、図１中には、明示していないが、変更情報記録部２０へ備えられている。
【００２２】
変更情報記録部２０は、書き換え要求生成部７０が生成した命令書き換え要求プロセス１００を入力する。変更情報記録部２０は、入力した命令書き換え要求プロセスから変更情報を抽出し、上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ記録する。
命令書き換え部３０は、変更情報記録領域に記録された変更情報を読み込み、読み込んだ変更情報に基づいて、オペレーティングシステムを構成する複数のプロセスのいずれかのプロセスが有する命令を書き換える。
【００２３】
図２は、変更情報記録部２０に含まれる変更情報記録領域の構成の一例を示す図である。
この実施の形態では、プロセス管理部１１は、命令書き換え部３０の優先度、すなわち、書き換える命令を有する命令書き換えプロセスの優先度を、実行可能状態にあるプロセスの中で最低レベルに設定する。
変更情報記録領域は、図１には示していない。変更情報記録部２０は、命令書き換え要求プロセス１００を受け取る。
【００２４】
この発明の実施の形態１における情報処理装置の動作を図２を用いて説明する。
図３（ａ）は、書き換え要求動作を示すフロー図である。
まず、変更情報記録部２０は、Ｓ１０１で書き換えを行う命令が格納されているアドレスを変更情報記録領域に記録する。続いて、Ｓ１０２で書き換える命令を記録し、Ｓ１０３で書き換え要求プロセスの識別子を記録する。Ｓ１０４で命令書き換えの完了待ち状態となる。
【００２５】
書き換え要求を行ったプロセスが待ち状態になったため、プロセス管理部１１は、実行可能状態にあるプロセスのうち、最も優先度の高いものを選択し実行する。
そして、最低優先度に設定されている命令書き換えの動作が開始される時点では実行権が横取りされているプロセスは存在しないため、命令の書き換えを行っても障害が発生することはない。
【００２６】
命令書き換えの動作を、図３（ｂ）を用いて説明する。
命令書き換え部３０は、命令書き換えプロセス１１０を受け取る。Ｓ１２１で、命令書き換え部３０は、プロセス管理部１１に対しプロセス切り替えを停止させる指示を行う。続いて、Ｓ１２２で、変更情報記録部２０に記録されているアドレスに書き換える命令を書き込む。
Ｓ１２３で、変更情報記録領域に記録されているプロセス識別子を参照し、命令書き換え要求プロセス１００に対し、プロセス管理部１１を介して命令書き換えの完了を通知する。
【００２７】
この時点で、命令書き換え要求プロセス１００は、待ち状態から実行可能状態に遷移するが、プロセス切り替えは停止されているため、命令書き換えプロセス１１０の実行は継続する。
Ｓ１２４で、プロセス管理部１１に対しプロセス切り替えを再開させる指示を行う。
【００２８】
ここで、プロセス切り替えが再開されると、書き換え要求を行ったプロセスの優先度は、最低優先度に設定されている書き換えプロセスよりも必ず高い値を持つため、プロセス管理部１１は、実行可能状態となっている書き換え要求プロセスの実行を再開する。
【００２９】
図２（ａ）において、書き換え要求プロセスは、Ｓ１０５で実行が再開されると、Ｓ１０６で変更情報記録部の書き換え完了フラグを設定し、終了する。
【００３０】
以上のように、この実施の形態の命令変更方式は、複数のプロセスが並行して実行される情報処理装置において、オペレーティングシステムの動作中にオペレーティングシステム内の命令を書き換えることによりその機能を変更する命令変更方式であって、書き換えアドレスと変更する命令を含む情報を変更情報記録領域へ記録する変更情報記録部２０と、変更情報記録領域に保持された変更情報を参照し、主記憶上のオペレーティングシステム内の命令を書き換える命令書き換え部３０とを備え、命令書き換え部３０は、最低優先度により実行されることを特徴とする。
【００３１】
この実施の形態１の情報処理装置によれば、動作中のオペレーティングシステムの機能の変更を容易かつ安全に行うことが可能となる。
【００３２】
実施の形態２．
図４は、この発明の実施の形態２における情報処理装置の一例の構成図である。
４０はプロセス状態取得部、５０は命令書き換え判定部であり、その他の符号は、実施の形態１と同一である。
プロセス状態取得部４０は、オペレーティングシステムによって実行される実行可能状態にあるプロセスのプロセス状態を取得し、取得したプロセスのプロセス状態の情報を出力する。
命令書き換え判定部５０は、プロセス状態取得部４０からプロセスのプロセス状態の情報を入力し、入力したプロセスのプロセス状態の情報に基づいて、命令書き換えの可否を判定する。具体的には、命令書き換え判定部５０は、実行可能状態にあるプロセス状態の情報を入力し、入力した実行可能状態にあるプロセスのプロセス状態の情報に基づいて、実行可能状態にあるプロセスが命令を中断した時点のアドレスを取得し、取得したアドレスが、上記変更情報記録領域に記録されている変更情報に含まれるアドレスと一致する場合は、命令の書き換えができないと判断する。
【００３３】
実施の形態２における動作を、フロー図５および図６を用いて説明する。
まず、変更情報記録部２０は、Ｓ２０１で書き換えを行うアドレスを変更情報記録領域に記録し、Ｓ２０２で書き換える命令を記録する。続いて、命令書き換え部３０は、Ｓ２０３でプロセス切り替えを禁止する。このプロセス切り替えの禁止は、次に行う命令書き換え可否の判定時に、プロセスの状態が変化することを防止するために必要となる。Ｓ２０４で命令書き換え判定部５０により命令書き換えの可否を判定する。
【００３４】
命令書き換え判定部５０による判定の結果、書き換え可能であれば、命令書き換え部３０は、Ｓ２０６で変更情報記録領域に記録されているアドレスに、書き換える命令を書き込む。命令書き換え部３０は、続くＳ２０７では変更情報記録領域の書き換え完了フラグを設定し、Ｓ２０８でプロセス切り替えを再開させる指示を行い終了する。
【００３５】
命令書き換え判定部の詳細な動作を、図６を用いて説明する。
Ｓ２２１でプロセス状態取得部４０を介して、実行可能状態にあるプロセスが存在するかを調べる。存在しない場合には、命令書き換え判定部５０は、実行権が横取りされているプロセスは存在しないことを示しているため、Ｓ２２２において、命令書き換えが可能と判定して終了する。
【００３６】
Ｓ２２１で実行可能状態にあるプロセスが存在した場合、命令書き換え判定部５０は、続くＳ２２３でそのプロセスの実行中断アドレスを取得する。そして、Ｓ２２４で書き換え命令の配置されるアドレス範囲、すなわち、書き換えアドレスから書き換え命令長の範囲に、Ｓ２２３で取得したアドレスが含まれるかを調べる。
もし、含まれる場合には、命令書き換えを行ってしまうと、その実行可能状態プロセスの実行再開時に障害を発生させてしまうため、Ｓ２２５において命令書き換えは不可と判定して終了する。
【００３７】
実行可能プロセスの中断アドレスが、書き換え命令の範囲に含まれない場合には、実行可能状態にあるプロセスが他に存在しないかを調べ、Ｓ２２１からの処理を繰り返す。
【００３８】
以上のように、この実施の形態の命令変更方式は、複数のプロセスが並行して実行される情報処理装置において、オペレーティングシステムの動作中にオペレーティングシステム内の命令を書き換えることによりその機能を変更する方式であって、書き換えアドレスと変更する命令を含む情報を記録する変更情報記録部２０と、変更情報記録部に保持された変更情報を参照し、主記憶上のオペレーティングシステム内の命令を書き換える命令書き換え部３０と、オペレーティングシステム上で実行されるプロセスの状態を取得するプロセス状態取得部４０と、取得したプロセス状態に基づき命令書き換えの可否を判定する命令書き換え判定部５０とを備えたことを特徴とする。
【００３９】
この実施の形態２の情報処理装置によれば、命令書き換えを行うアドレスで動作を中断しているプロセスが存在するかを判定することができるため、動作中のオペレーティングシステムの機能を安全に変更することが可能となる。
【００４０】
実施の形態３．
図７は、この発明の実施の形態３における情報処理装置の一例の構成図である。
６０は書き換え優先度設定部であり、その他の符号は、実施の形態２と同一である。
命令書き換え優先度設定部６０は、命令書き換え判定部５０から、変更情報に含まれるアドレスと一致するアドレスを有するプロセスのプロセス状態の情報を入力する。命令書き換え優先度設定部６０は、入力したプロセス状態の情報を用いて、上記プロセスの優先度を取得し、取得したプロセスの優先度より低い優先度を命令書き換え部３０の優先度へ、すなわち、書き換え命令を有している命令書き換えプロセスの優先度へに設定することをプロセス管理部１１に指示する。
プロセス管理部１１は、命令書き換え優先度設定部６０の指示に基づいて、命令書き換え部３０の優先度、すなわち書き換え命令を有している命令書き換えプロセスの優先度を設定する。
【００４１】
実施の形態３における動作を図８を用いて説明する。
まず、変更情報記録部２０は、Ｓ３０１で書き換えを行うアドレスを変更情報記録領域に記録し、Ｓ３０２で書き換える命令を記録する。続いて、命令書き換え部３０は、Ｓ３０３でプロセス切り替えを禁止し、Ｓ２０４で命令書き換え判定部により命令書き換えの可否を判定する。命令書き換え判定部５０の動作は、実施の形態２の場合と同一である。
【００４２】
命令書き換え判定部５０による判定の結果、書き換え可能であれば、命令書き換え部３０は、Ｓ３０６で変更情報記録領域に記録されているアドレスに、書き換える命令を書き込む。命令書き換え部３０は、続くＳ３０７では変更情報記録領域の書き換え完了フラグを設定し、Ｓ３０８でプロセス切り替えを再開させる指示を行い終了する。
【００４３】
Ｓ３０５で書き換え不可と判定された場合、書き換え優先度設定部６０は、Ｓ３１０で命令書き換えアドレスで実行を中断しているプロセスの優先度を取得する。プロセス管理部１１は、Ｓ３１１では、命令書き換え部３０の優先度をＳ３１０で取得した優先度より１低い値に設定する。命令書き換え部３０は、続いてＳ３１２でプロセス切り替えを再開させる指示を行ない、Ｓ３１３で自身の実行を中断する。
【００４４】
この時点で、命令書き換えアドレスにおいて実行を中断していたプロセスの優先度が、命令書き換え部３０の優先度よりも高くなるため、実行を中断していたプロセスの実行が再開される。そして、そのプロセスの実行が完了、あるいは待ち状態となった場合には、直ちに命令書き換え部３０によって命令書き換えプロセスの実行が再開される。命令書き換えプロセスは、他の命令実行プロセスよりも優先度が１だけ低く設定されているため、命令書き換えプロセスの前にその他のプロセスが実行されることはない。
【００４５】
Ｓ３１４で実行が再開されると、Ｓ３１５で一旦プロセス切り替えを停止する指示を行い、Ｓ３１６で変更情報記録領域に記録されているアドレスに、書き換える命令を書き込む。続いて、プロセス管理部１１は、Ｓ３１７で命令書き換え部３０の優先度をＳ３１１での変更を行う前の値に復元し、Ｓ３０７で変更情報記録領域の書き換え完了フラグを設定する。Ｓ３０８でプロセス切り替えを再開させる指示を行い終了する。
【００４６】
以上のように、この実施の形態の命令変更方式は、実施の形態２の命令変更方式に加え、プロセス状態取得部４０により取得されたプロセス優先度に基づき命令書き換えプロセスの優先度を決定するする書き換え優先度設定部６０を備え、命令書き換え部３０は、書き換え優先度設定部６０により設定された優先度により実行されることを特徴とする。
【００４７】
この実施の形態３の情報処理装置によれば、命令書き換えを行うアドレスで動作を中断しているプロセスが存在するかを判定することができ、また、そのようなプロセスが存在する場合でも可能な限り速やかに命令の書き換えを行うことができるため、動作中のオペレーティングシステムの機能を安全にかつ迅速に変更することが可能となる。
【００４８】
実施の形態４．
図９は、この発明の実施の形態４における情報処理装置の一例の構成図である。
１２０は、書き換えた命令の復元要求を行うプロセスである。その他の符号は、実施の形態３と同一である。
実施の形態４の変更情報記録領域は、少なくとも、アドレスと、変更後命令と、変更前の命令である変更前命令（元命令保存部）と、復元要求情報（復元フラグ）とを記録する。
実施の形態４では、書き換え要求生成部７０、変更情報記録部２０、命令書き換え部３０とは、実施の形態１で説明した機能に加え、下記の機能を実施する。その他の機能は、実施の形態１で説明した機能と同様である。
【００４９】
書き換え要求生成部７０は、変更後命令に加え、変更前の命令に復元することを要求する復元要求情報を含む変更する命令に関する情報を入力する。従って、書き換え要求生成部７０は、アドレスと変更後命令と復元要求情報とを含む変更情報を生成する。
変更情報記録部２０は、変更情報に復元要求情報が含まれている場合は、上記アドレスに格納されている命令を変更前命令として読み込み、読み込んだ変更前命令と上記復元要求情報と上記アドレスと上記変更後命令とを含む変更情報を上記変更情報記録領域へ書き込む。
【００５０】
さらに、書き換え要求生成部７０は、利用者から命令を復元する復元要求情報を入力し、入力した命令復元情報に基づいて、命令を復元することを命令書き換え部へ指示する。
書き換え要求生成部７０は、上記命令復元情報を含む、復元を要求する復元要求プロセス１２０を生成する。復元要求プロセス１２０は、変更情報記録部２０を介して、命令書き換え部３０へ命令の復元を指示することになる。
命令書き換え部３０は、書き換え要求生成部７０からの指示に基づいて、変更情報記録領域に記録されている変更情報を読み込む。命令書き換え部３０は、読み込んだ変更情報に復元要求情報が記録されている場合に、読み込んだ変更情報からアドレスと変更前命令とを抽出し、抽出した変更前命令を上記アドレスへ書き込む。
【００５１】
図１０は、この発明の実施の形態４における変更情報記録領域の構成の一例を示す図である。
【００５２】
実施の形態４における動作を、図１１および図１２を用いて説明する。
図１１は、命令書き換え時の動作を示すフロー図である。
まず、変更情報記録部２０は、Ｓ４０１で書き換えを行うアドレスを変更情報記録領域に記録し、Ｓ４０２で書き換える命令を記録する。続いて、命令書き換え部３０は、Ｓ４０３でプロセス切り替えを禁止し、Ｓ２０４で命令書き換え判定部により命令書き換えの可否を判定する。命令書き換え判定部５０の動作は、実施の形態３の場合と同一である。
【００５３】
命令書き換え判定部５０による判定の結果、書き換え可能であれば、Ｓ４０６で書き換え領域に含まれる命令、すなわち、書き換えアドレスから書き換え命令長の範囲に含まれる命令を変更情報記録領域の元命令保存部に保存する。Ｓ４０７で変更情報記録領域に記録されているアドレスに、書き換える命令を書き込む。続くＳ４０８では、変更情報記録領域の書き換え完了フラグを設定し、Ｓ４０８でプロセス切り替えを再開させる指示を行い終了する。
【００５４】
Ｓ４０５で書き換え不可と判定された場合、Ｓ４１０で命令書き換えアドレスで実行を中断しているプロセスの優先度を取得する。Ｓ４１１では、自身の優先度をＳ４１０で取得した優先度より１低い値に設定する。続いてＳ４１２でプロセス切り替えを再開させる指示を行ない、Ｓ４１３で自身の実行を中断する。
【００５５】
Ｓ４１４で実行が再開されると、Ｓ４１５で一旦プロセス切り替えを停止する指示を行い、Ｓ４１６で変更情報記録領域に記録されているアドレスに、書き換える命令を書き込む。続いて、Ｓ４１７で自身の優先度をＳ４１１での変更を行う前の値に復元し、Ｓ４０７で変更情報記録領域の書き換え完了フラグを設定する。Ｓ４０８でプロセス切り替えを再開させる指示を行い終了する。
Ｓ４０６およびＳ４１６において、書き換え命令の保存を行う点が実施の形態３に比べて異なっている。
【００５６】
図１２は、命令復元時の動作を示すフロー図である。
Ｓ４２１で、変更情報記録領域の復元を行うアドレスを含む部分について、書き換え完了フラグが設定されているかを調べる。設定されていない場合には復元の必要はないため、そのまま終了する。
【００５７】
書き換え完了フラグが設定されている場合には、Ｓ４２２において、プロセス管理部に対しプロセス切り替えを停止する指示を行う。続くＳ４２３で、元命令保存部に保存されている変更前の命令を、下記和えアドレスに書き込む。Ｓ４２４で書き換え完了フラグを消去し、Ｓ４２５でプロセス切り替えを再開する指示を行って終了する。
【００５８】
以上のように、この実施の形態の命令変更方式は、実施の形態１〜３の命令変更方式に加え、変更情報記録領域は、変更前命令保存部と、復元要求フラグを含み、命令書き換え部３０は、復元要求フラグが設定されている場合に、変更情報記録領域中の変更前命令保存部に含まれる命令を復元することを特徴とする。
【００５９】
この実施の形態４の情報処理装置によれば、デバッグやオペレーティングシステム動作の検証の目的で、一時的にオペレーティングシステムの機能を変更した場合にも、オペレーティングシステムの本来の機能を容易に復元することが可能となる。
これにより、デバッグやオペレーティングシステム動作の検証のために、動作中のオペレーティングシステムの命令を書き換え、その機能を安全に変更することが可能となる。
【００６０】
実施の形態５．
上記実施の形態１〜４で説明した命令変更方式及び命令変更方法は、情報処理装置（計算機）で実現されるプログラム（命令変更プログラム）によって実現することができる。
また、上記命令変更プログラムは、上記情報処理装置が読み取り可能な記録媒体へ記録することができる。上記記録媒体へ記録された命令変更プログラムは、上記情報処理装置に備えられる記憶領域に読みこまれ、実行される。
【図面の簡単な説明】
【００６１】
【図１】実施の形態１における情報処理装置の一例を表す構成図。
【図２】変更情報記録部２０に含まれる変更情報記録領域の構成の一例を示す図。
【図３】（ａ）は命令の書き換え要求動作を示すフロー図。（ｂ）は命令の書き換え動作を示すフロー図。
【図４】実施の形態２における情報処理装置の一例の構成図。
【図５】実施の形態２の動作を示すフロー図。
【図６】命令書き換え判定部の詳細な動作フロー図。
【図７】実施の形態３における情報処理装置の一例の構成図。
【図８】実施の形態３における動作を示すフロー図。
【図９】実施の形態４における情報処理装置の一例の構成図。
【図１０】実施の形態４における変更情報記録領域の構成の一例を示す図。
【図１１】命令書き換え時の動作を示すフロー図。
【図１２】命令復元時の動作を示すフロー図。
【符号の説明】
【００６２】
１０  オペレーティングシステム、１１  プロセス管理部、２０  変更情報記録部、３０  命令書き換え部、４０  プロセス状態取得部、５０  命令書き換え判定部、６０  書き換え優先度設定部、７０  書き換え要求生成部、１００  命令書き換え要求プロセス、１１０  命令書き換えプロセス、１２０  復元要求を行うプロセス。
【図１】
2006120176.tif 000003
【図２】
2006120176.tif 000004
【図３】
2006120176.tif 000005
【図４】
2006120176.tif 000006
【図５】
2006120176.tif 000007
【図６】
2006120176.tif 000008
【図７】
2006120176.tif 000009
【図８】
2006120176.tif 000010
【図９】
2006120176.tif 000011
【図１０】
2006120176.tif 000012
【図１１】
2006120176.tif 000013
【図１２】
2006120176.tif 000014