(57)【特許請求の範囲】
【請求項１】
ＯＳにおけるタスクの切り替えとして特定アプリケーションへのタスクの切り替えが発生した際に、メモリアクセスがあったときに前記特定アプリケーションが前記ＯＳへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする個別アプリケーションパッチ管理装置。
【請求項２】
前記ＴＬＢ内で前記個別パッチが登録されるカーネルファイルの仮想アドレスを前記個別パッチの仮想アドレスに書き替えることにより、前記カーネルファイルの仮想アドレスでメモリアクセスがあったときに前記個別パッチの仮想アドレスを指すように、前記ＴＬＢの内容を書き替えることを特徴とする請求項１記載の個別アプリケーションパッチ管理装置。
【請求項３】
カーネルファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、前記カーネルファイルに対して特定アプリケーションがＯＳへの適用を要求する個別パッチが登録されていれば、前記個別パッチを前記仮想記憶空間上に読み込み、前記カーネルファイルの前記仮想記憶空間上の仮想アドレス、前記個別パッチの前記仮想記憶空間上の仮想アドレス、及び前記特定アプリケーションの名称を、情報として出力するカーネル読み込み手段と、
該カーネル読み込み手段から出力された前記情報をテーブル形式で保持するＴＬＢ読み替えページテーブルと、
前記ＯＳにおけるタスクの切り替えとして前記特定アプリケーションへのタスクの切り替えを検出するＯＳタスク切り替え手段とを有し、
該ＯＳタスク切り替え手段により前記特定アプリケーションへのタスクの切り替えが検出されたとき、該検出された前記特定アプリケーションの名称が前記ＴＬＢ読み替えページテーブル上に登録されていれば、前記特定アプリケーションの名称に伴って登録される前記仮想記憶空間上の前記個別パッチの仮想アドレス及び前記仮想メモリ内の前記カーネルファイルの仮想アドレスに基づいて、ＴＬＢ（Translation-Lookaside buffer) が書き替えられることを特徴とする個別アプリケーションパッチ管理装置。
【請求項４】
前記ＯＳタスク切り替え手段により前記特定アプリケーションへのタスクの切り替えが検出されると、前記カーネルファイルの仮想アドレスと対応づけられて前記ＴＬＢに登録されている実メモリ上のアドレスを、前記個別パッチの前記仮想記憶空間上の仮想アドレスで書き替えることを特徴とする請求項３記載の個別アプリケーションパッチ管理装置。
【請求項５】
前記カーネル読み込み手段は、
読み込まれる前の前記カーネルファイルのカーネルファイル先頭からの相対アドレスと、読み込まれる前の前記個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、前記カーネルファイルに前記個別パッチが登録されていると判断し、前記カーネルファイルを前記仮想メモリ上に配置すると共に前記個別パッチを前記仮想記憶空間上に配置し、前記特定アプリケーションの名称、前記カーネルファイルの前記仮想メモリ上の仮想アドレス、及び前記個別パッチの前記仮想記憶空間上の仮想アドレスを、前記ＴＬＢ読み替えテーブルに書き込むことを特徴とする請求項３又は４記載の個別アプリケーションパッチ管理装置。
【請求項６】
アプリケーションにおけるタスクの切り替えとしてユーザの切り替えが発生した際に、メモリアクセスがあったときに前記ユーザが前記アプリケーションへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする個別アプリケーションパッチ管理装置。
【請求項７】
前記ＴＬＢ内で前記個別パッチが登録されるアプリケーションファイルの仮想アドレスを前記個別パッチの仮想アドレスに書き替えることにより、前記アプリケーションファイルの仮想アドレスでメモリアクセスがあったときに前記個別パッチの仮想アドレスを指すように、前記ＴＬＢの内容を書き替えることを特徴とする請求項６記載の個別アプリケーションパッチ管理装置。
【請求項８】
アプリケーションファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、前記アプリケーションファイルに対してユーザがそのアプリケーションへの適用を要求する個別パッチが登録されていれば、前記個別パッチを前記仮想記憶空間上に読み込み、前記アプリケーションファイルの前記仮想記憶空間上の仮想アドレス、前記個別パッチの前記仮想記憶空間上の仮想アドレス、及び前記ユーザの名称を、情報として出力するアプリケーション読み込み手段と、
該アプリケーション読み込み手段から出力された前記情報をテーブル形式で保持するＴＬＢ読み替えページテーブルと、
前記アプリケーションにおけるタスクの切り替えとして前記ユーザへのタスクの切り替えを検出するアプリケーションタスク切り替え手段とを有し、
該アプリケーションタスク切り替え手段により前記ユーザへのタスクの切り替えが検出されたとき、該検出された前記ユーザの名称が前記ＴＬＢ読み替えページテーブル上に登録されていれば、前記ユーザの名称に伴って登録される前記仮想記憶空間上の前記個別パッチの仮想アドレス及び前記仮想メモリ内の前記アプリケーションファイルの仮想アドレスに基づいて、ＴＬＢ（Translation-Lookaside buffer） の内容が書き替えられることを特徴とする個別アプリケーションパッチ管理装置。
【請求項９】
前記アプリケーションタスク切り替え手段により前記ユーザへのタスクの切り替えが検出されると、前記アプリケーションファイルの仮想アドレスと対応づけて前記ＴＬＢに登録されている実メモリ上のアドレスを、前記個別パッチの前記仮想記憶空間上の仮想アドレスへで書き替えることを特徴とする請求項８記載の個別アプリケーションパッチ管理装置。
【請求項１０】
前記アプリケーション読み込み手段は、
読み込まれる前の前記アプリケーションファイルのアプリケーションファイル先頭からの相対アドレスと、読み込まれる前の前記個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、前記アプリケーションファイルに前記個別パッチが登録されていると判断し、前記アプリケーションファイルを前記仮想メモリ上に配置すると共に前記個別パッチを前記仮想記憶空間上に配置し、前記ユーザの名称、前記アプリケーションファイルの前記仮想メモリ上の仮想アドレス、及び前記個別パッチの前記仮想記憶空間上の仮想アドレスを、前記ＴＬＢ読み替えテーブルに書き込むことを特徴とする請求項８又は９記載の個別アプリケーションパッチ管理装置。
【請求項１１】
前記個別アプリケーションパッチ管理装置は、さらに、
ユーザからの入力動作に基づき前記特定アプリケーションによる前記ＯＳに対する前記個別パッチの適用の有効／無効を指定する個別パッチ適用有効／無効指定手段と、
該個別パッチ適用有効／無効指定手段における指定に基づき前記ＴＬＢ読み替えページテーブル内のエントリをマスクするマスク手段とを有することを特徴とする請求項１から５のいずれかに記載の個別アプリケーションパッチ管理装置。
【請求項１２】
前記個別アプリケーションパッチ管理装置は、さらに、
ユーザからの入力動作に基づき前記特定アプリケーション毎に前記ＯＳに対する前記個別パッチの適用レベルを指定する個別パッチ適用レベル指定手段と、
該個別パッチ適用レベル指定手段における指定に基づき前記ＴＬＢ読み替えページテーブル内のエントリをマスクするマスク手段とを有することを特徴とする請求項１から５のいずれかに記載の個別アプリケーションパッチ管理装置。
【請求項１３】
ＯＳにおけるタスクの切り替えとして特定アプリケーションへのタスクの切り替えが発生した際に、メモリアクセスがあったときに前記特定アプリケーションが前記ＯＳへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする個別アプリケーションパッチ管理方法。
【請求項１４】
前記ＴＬＢ内で前記個別パッチが登録されるカーネルファイルの仮想アドレスを前記個別パッチの仮想アドレスに書き替えることにより、前記カーネルファイルの仮想アドレスでメモリアクセスがあったときに前記個別パッチの仮想アドレスを指すように、前記ＴＬＢの内容を書き替えることを特徴とする請求項１３記載の個別アプリケーションパッチ管理方法。
【請求項１５】
カーネルファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、前記カーネルファイルに対して特定アプリケーションがＯＳへの適用を要求する個別パッチが登録されていれば、前記個別パッチを前記仮想記憶空間上に読み込み、前記カーネルファイルの前記仮想メモリ上の仮想アドレス、前記個別パッチの前記仮想記憶空間上の仮想アドレス、及び前記特定アプリケーションの名称を、情報として出力するカーネル読み込み工程と、
該カーネル読み込み工程により出力された前記情報をテーブル形式でＴＬＢ読み替えページテーブルに書き込む情報書き込み工程と、
前記ＯＳにおけるタスクの切り替えとして前記特定アプリケーションへのタスクの切り替えを検出するＯＳタスク切り替え工程とを有し、
該ＯＳタスク切り替え工程により前記特定アプリケーションへのタスクの切り替えが検出されたとき、該検出された前記特定アプリケーションの名称が前記ＴＬＢ読み替えページテーブル上に登録されていれば、前記特定アプリーションの名称に伴って登録される前記仮想記憶空間上の前記個別パッチの仮想アドレス及び前記仮想メモリ内の前記カーネルファイルの仮想アドレスに基づいて、前記ＴＬＢの内容が書き替えられることを特徴とする個別アプリケーションパッチ管理方法。
【請求項１６】
前記ＯＳタスク切り替え工程により前記特定アプリケーションへのタスクの切り替えが検出されると、前記カーネルファイルの仮想アドレスと対応づけられて前記ＴＬＢに登録されている実メモリ上のアドレスを、前記個別パッチの前記仮想記憶空間上の仮想アドレスへで書き替えることを特徴とする請求項１５記載の個別アプリケーションパッチ管理方法。
【請求項１７】
前記カーネル読み込み工程では、
読み込まれる前の前記カーネルファイルのカーネルファイル先頭からの相対アドレスと、読み込まれる前の前記個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、前記カーネルファイルに前記個別パッチが登録されていると判断し、前記カーネルファイルを前記仮想メモリ上に配置すると共に前記個別パッチを前記仮想記憶空間上に配置し、前記特定アプリケーションの名称、前記カーネルファイルの前記仮想メモリ上の仮想アドレス、及び前記個別パッチの前記仮想記憶空間上の仮想アドレスを、前記ＴＬＢ読み替えテーブルに書き込むことを特徴とする請求項１５又は１６記載の個別アプリケーションパッチ管理方法。
【請求項１８】
アプリケーションにおけるタスクの切り替えとしてユーザの切り替えが発生した際に、メモリアクセスがあったときに前記ユーザが前記アプリケーションへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする個別アプリケーションパッチ管理方法。
【請求項１９】
前記ＴＬＢ内で前記個別パッチが登録されるアプリケーションファイルの仮想アドレスを前記個別パッチの仮想アドレスに書き替えることにより、前記アプリケーションファイルの仮想アドレスでメモリアクセスがあったときに前記個別パッチの仮想アドレスを指すように、前記ＴＬＢの内容を書き替えることを特徴とする請求項１８記載の個別アプリケーションパッチ管理方法。
【請求項２０】
アプリケーションファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、前記アプリケーションファイルに対してユーザがそのアプリケーションへの適用を要求する個別パッチが登録されていれば、前記個別パッチを前記仮想記憶空間上に読み込み、前記アプリケーションファイルの前記仮想メモリ上の仮想アドレス、前記個別パッチの前記仮想記憶空間上の仮想アドレス、及び前記ユーザの名称を、情報として出力するアプリケーション読み込み工程と、
該アプリケーション読み込み工程により出力された前記情報をテーブル形式でＴＬＢ読み替えページテーブルに書き込む情報書き込み工程と、
前記アプリケーションにおけるタスクの切り替えとして前記ユーザへのタスクの切り替えを検出するアプリケーションタスク切り替え工程とを有し、
該アプリケーションタスク切り替え工程により前記ユーザへのタスクの切り替えが検出されたとき、該検出された前記ユーザの名称が前記ＴＬＢ読み替えページテーブル上に登録されていれば、前記ユーザの名称に伴って登録される前記仮想記憶空間上の前記個別パッチの仮想アドレス及び前記仮想メモリ内の前記アプリケーションファイルの仮想アドレスに基づいて、前記ＴＬＢ（Translation-Lookaside buffer) の内容が書き替えられることを特徴とする個別アプリケーションパッチ管理方法。
【請求項２１】
前記アプリケーションタスク切り替え手段により前記ユーザへのタスクの切り替えが検出されると、前記アプリケーションファイルの仮想アドレスと対応づけられて前記ＴＬＢに登録されている実メモリ上のアドレスを、前記個別パッチの前記仮想記憶空間上の仮想アドレスへと書き替えられることを特徴とする請求項２０記載の個別アプリケーションパッチ管理方法。
【請求項２２】
前記アプリケーション読み込み工程では、
読み込まれる前の前記アプリケーションファイルのアプリケーションファイル先頭からの相対アドレスと、読み込まれる前の前記個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、前記アプリケーションファイルに前記個別パッチが登録されていると判断し、前記アプリケーションファイルを前記仮想メモリ上に配置すると共に前記個別パッチを前記仮想記憶空間上に配置し、前記ユーザの名称、前記アプリケーションファイルの前記仮想メモリ上の仮想アドレス、及び前記個別パッチの前記仮想記憶空間上の仮想アドレスを、前記ＴＬＢ読み替えテーブルに書き込むことを特徴とする請求項２０又は２１記載の個別アプリケーションパッチ管理方法。
【請求項２３】
前記個別アプリケーションパッチ管理方法は、さらに、
ユーザからの入力動作に基づき前記特定アプリケーションによる前記ＯＳに対する前記個別パッチの適用の有効／無効を指定する個別パッチ適用有効／無効指定工程と、
該個別パッチ適用有効／無効指定工程における指定に基づき前記ＴＬＢ読み替えページテーブル内のエントリをマスクするマスク工程とを有することを特徴とする請求項１３から１７のいずれかに記載の個別アプリケーションパッチ管理方法。
【請求項２４】
前記個別アプリケーションパッチ管理方法は、さらに、
ユーザからの入力動作に基づき前記特定アプリケーション毎に前記ＯＳに対する前記個別パッチの適用レベルを指定する個別パッチ適用レベル指定工程と、
該個別パッチ適用レベル指定工程における指定に基づき前記ＴＬＢ読み替えページテーブル内のエントリをマスクするマスク工程とを有することを特徴とする請求項１３から１７のいずれかに記載の個別アプリケーションパッチ管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＯＳ（オペレーティングシステム）に対して一般的に適用されるパッチ以外の特定のパッチ（以下、個別パッチという）の適用を要求する特定のアプリケーション（以下、特定アプリケーションという）の実行時に、ＯＳに対する個別パッチの適用を管理する個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法に関し、特に、特定アプリケーション間でタスクが切り替わるとき、その特定アプリケーションの切り替えに応じて、個別パッチのＯＳに対する適用状況を動的に切り替える個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法に関する。
【０００２】
【従来の技術】
従来、ＯＳに対して適用されるパッチは一般に全てのアプリケーションに作用するが、特定アプリケーションが要求するパッチをＯＳに適用すると、他のアプリケーションを実行させる際に不具合が生じてしまうことがある。
【０００３】
ここで、本発明と技術分野が類似する従来技術の具体例として、特開平５−２４１８１４号公報、及び特開平３−１６６６２４号公報に開示されるものがある。
【０００４】
既にパッチによって修正されたロードモジュールを実行する際には、このロードモジュールがロードされるときに全てのパッチが反映されてしまう。これまで、その一部のパッチを修正してロードモジュールを実行したい場合は、実行前にそのロードモジュールを修正していた。
【０００５】
これに対し、特開平５−２４１８１４号公報では、ロードモジュールに既に格納されているパッチを実行時に修正・削除でき、用途にあわせて容易にロードモジュールを実行できるパッチ管理装置を提供している。
【０００６】
また同じく、特開平３−１６６６２４号公報においても、パッチよって修正されたロードモジュールを実行する場合に、そのロードモジュールのロード時に無条件に全てのパッチが実行形式プログラムに反映されていたという、これまでの背景に基づくものが開示されており、本従来例では、パッチを一括して管理することで、ロードモジュールのロード時に実行形式プログラムに反映させるパッチを用途別に選択できるようにしている。
【０００７】
【発明が解決しようとする課題】
しかしながら、上記従来例はいずれも、用途に合わせて実行形式プログラムに反映させるパッチを修正・削除するためには、ユーザからのパッチ修正指示の入力を必要としている。また、このようなユーザからのパッチ修正指示の入力に基づくパッチ修正は、このパッチ修正指示の入力時点に限られるものであり、用途が変わるたびに、ユーザは、また新たにパッチ修正指示の入力を行わなければならない。
【０００８】
従って、本発明は、特定アプリケーションが要求する個別パッチをＯＳに適用させる際に、特定アプリケーション毎にＯＳへの適用が要求される個別パッチを判断し、パッチ修正指示等のユーザからの入力を必要とせず、特定アプリケーションの実行時におけるＯＳに対するパッチ適用状況を動的に切り替えることが可能な個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法を提供することを目的とする。
【０００９】
また、本発明は、一つのアプリケーションに対しユーザ毎に適用が要求される特定のパッチ（以下、同じく個別パッチという）を判断し、パッチ修正指示等のユーザからの入力を必要とせず、このアプリケーションが使用される際に、使用するユーザ毎にアプリケーションに対するパッチ適用状況を動的に切り替えることが可能な個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法を提供することを目的とする。
【００１０】
また、本発明は、ユーザが特定アプリケーションを使用してない場合、或いは、ユーザ側で出力ファイルを加工するなどバグ回避の工夫をしている場合には、外部からのユーザからの入力により、その特定アプリケーションが要求するＯＳへの個別パッチ適用を無効、或いは、その特定アプリケーションが要求するＯＳへの個別パッチ適用のレベルを変化させる個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法を提供することを目的とする。
【００１１】
さらに、本発明は、ユーザが特定アプリケーションを使用する上において、この特定アプリケーションが要求する個別パッチをＯＳに対して適用することが好ましくない場合に、ＯＳに対する不要な個別パッチの適用を避けることができる個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
かかる目的を達成するために、請求項１記載の発明は、ＯＳにおけるタスクの切り替えとして特定アプリケーションへのタスクの切り替えが発生した際に、メモリアクセスがあったときに特定アプリケーションがＯＳへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする。
【００１３】
請求項２記載の発明は、請求項１記載の発明において、ＴＬＢ内で個別パッチが登録されるカーネルファイルの仮想アドレスを個別パッチの仮想アドレスに書き替えることにより、カーネルファイルの仮想アドレスでメモリアクセスがあったときに個別パッチの仮想アドレスを指すように、ＴＬＢの内容を書き替えることを特徴とする。
【００１４】
請求項３記載の発明は、カーネルファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、カーネルファイルに対して特定アプリケーションがＯＳへの適用を要求する個別パッチが登録されていれば、個別パッチを仮想記憶空間上に読み込み、カーネルファイルの仮想記憶空間上の仮想アドレス、個別パッチの仮想記憶空間上の仮想アドレス、及び特定アプリケーションの名称を、情報として出力するカーネル読み込み手段と、カーネル読み込み手段から出力された情報をテーブル形式で保持するＴＬＢ読み替えページテーブルと、ＯＳにおけるタスクの切り替えとして特定アプリケーションへのタスクの切り替えを検出するＯＳタスク切り替え手段とを有し、ＯＳタスク切り替え手段により特定アプリケーションへのタスクの切り替えが検出されたとき、検出された特定アプリケーションの名称がＴＬＢ読み替えページテーブル上に登録されていれば、特定アプリケーションの名称に伴って登録される仮想記憶空間上の前記個別パッチの仮想アドレス及び仮想メモリ内のカーネルファイルの仮想アドレスに基づいて、ＴＬＢ（Translation-Lookaside buffer) が書き替えられることを特徴とする。
【００１５】
請求項４記載の発明は、請求項３記載の発明において、ＯＳタスク切り替え手段により特定アプリケーションへのタスクの切り替えが検出されると、カーネルファイルの仮想アドレスと対応付けられてＴＬＢに登録されている実メモリ上のアドレスを、個別パッチの仮想記憶空間上の仮想アドレスで書き替えることを特徴とする。
【００１６】
請求項５記載の発明は、請求項３又は４記載の発明において、カーネル読み込み手段は、読み込まれる前のカーネルファイルのカーネルファイル先頭からの相対アドレスと、読み込まれる前の個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、カーネルファイルに個別パッチが登録されていると判断し、カーネルファイルを仮想メモリ上に配置すると共に個別パッチを仮想記憶空間上に配置し、特定アプリケーションの名称、カーネルファイルの仮想メモリ上の仮想アドレス、及び個別パッチの仮想記憶空間上の仮想アドレスを、ＴＬＢ読み替えテーブルに書き込むことを特徴とする。
【００１７】
請求項６記載の発明は、アプリケーションにおけるタスクの切り替えとしてユーザの切り替えが発生した際に、メモリアクセスがあったときにユーザがアプリケーションへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする。
【００１８】
請求項７記載の発明は、請求項６記載の発明において、ＴＬＢ内で個別パッチが登録されるアプリケーションファイルの仮想アドレスを個別パッチの仮想アドレスに書き替えることにより、アプリケーションファイルの仮想アドレスでメモリアクセスがあったときに個別パッチの仮想アドレスを指すように、ＴＬＢの内容を書き替えることを特徴とする。
【００１９】
請求項８記載の発明は、アプリケーションファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、アプリケーションファイルに対してユーザがそのアプリケーションへの適用を要求する個別パッチが登録されていれば、個別パッチを仮想記憶空間上に読み込み、アプリケーションファイルの仮想記憶空間上の仮想アドレス、個別パッチの仮想記憶空間上の仮想アドレス、及びユーザの名称を、情報として出力するアプリケーション読み込み手段と、アプリケーション読み込み手段から出力された情報をテーブル形式で保持するＴＬＢ読み替えページテーブルと、アプリケーションにおけるタスクの切り替えとしてユーザへのタスクの切り替えを検出するアプリケーションタスク切り替え手段とを有し、アプリケーションタスク切り替え手段によりユーザへのタスクの切り替えが検出されたとき、検出されたユーザの名称がＴＬＢ読み替えページテーブル上に登録されていれば、ユーザの名称に伴って登録される仮想記憶空間上の個別パッチの仮想アドレス及び仮想メモリ内のアプリケーションファイルの仮想アドレスに基づいて、ＴＬＢ（Translation-Lookaside buffer) の内容が書き替えられることを特徴とする。
【００２０】
請求項９記載の発明は、請求項８記載の発明において、アプリケーションタスク切り替え手段によりユーザへのタスクの切り替えが検出されると、アプリケーションファイルの仮想アドレスと対応付けてＴＬＢに登録されている実メモリ上のアドレスを、個別パッチの仮想記憶空間上の仮想アドレスで書き替えることを特徴とする。
【００２１】
請求項１０記載の発明は、請求項８又は９記載の発明において、アプリケーション読み込み手段は、読み込まれる前のアプリケーションファイルのアプリケーションファイル先頭からの相対アドレスと、読み込まれる前の個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、アプリケーションファイルに個別パッチが登録されていると判断し、アプリケーションファイルを仮想メモリ上に配置すると共に個別パッチを仮想記憶空間上に配置し、ユーザの名称、アプリケーションファイルの仮想メモリ上の仮想アドレス、及び個別パッチの仮想記憶空間上の仮想アドレスを、ＴＬＢ読み替えテーブルに書き込むことを特徴とする。
【００２２】
請求項１１記載の発明は、請求項１から５のいずれかに記載の発明において、個別アプリケーションパッチ管理装置は、さらに、ユーザからの入力動作に基づき特定アプリケーションによるＯＳに対する個別パッチの適用の有効／無効を指定する個別パッチ適用有効／無効指定手段と、個別パッチ適用有効／無効指定手段における指定に基づきＴＬＢ読み替えページテーブル内のエントリをマスクするマスク手段とを有することを特徴とする。
【００２３】
請求項１２記載の発明は、請求項１から５のいずれかに記載の発明において、個別アプリケーションパッチ管理装置は、さらに、ユーザからの入力動作に基づき特定アプリケーション毎にＯＳに対する個別パッチの適用レベルを指定する個別パッチ適用レベル指定手段と、個別パッチ適用レベル指定手段における指定に基づきＴＬＢ読み替えページテーブル内のエントリをマスクするマスク手段とを有することを特徴とする。
【００２４】
請求項１３記載の発明は、ＯＳにおけるタスクの切り替えとして特定アプリケーションへのタスクの切り替えが発生した際に、メモリアクセスがあったときに特定アプリケーションがＯＳへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする。
【００２５】
請求項１４記載の発明は、請求項１３記載の発明において、ＴＬＢ内で個別パッチが登録されるカーネルファイルの仮想アドレスを個別パッチの仮想アドレスに書き替えることにより、カーネルファイルの仮想アドレスでメモリアクセスがあったときに個別パッチの仮想アドレスを指すように、ＴＬＢの内容を書き替えることを特徴とする。
【００２６】
請求項１５記載の発明は、カーネルファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、カーネルファイルに対して特定アプリケーションがＯＳへの適用を要求する個別パッチが登録されていれば、個別パッチを仮想記憶空間上に読み込み、カーネルファイルの仮想メモリ上の仮想アドレス、個別パッチの仮想記憶空間上の仮想アドレス、及び特定アプリケーションの名称を、情報として出力するカーネル読み込み工程と、カーネル読み込み工程により出力された情報をテーブル形式でＴＬＢ読み替えページテーブルに書き込む情報書き込み工程と、ＯＳにおけるタスクの切り替えとして特定アプリケーションへのタスクの切り替えを検出するＯＳタスク切り替え工程とを有し、ＯＳタスク切り替え工程により特定アプリケーションへのタスクの切り替えが検出されたとき、検出された特定アプリケーションの名称がＴＬＢ読み替えページテーブル上に登録されていれば、特定アプリーションの名称に伴って登録される仮想記憶空間上の個別パッチの仮想アドレス及び仮想メモリ内のカーネルファイルの仮想アドレスに基づいて、ＴＬＢの内容が書き替えられることを特徴とする。
【００２７】
請求項１６記載の発明は、請求項１５記載の発明において、ＯＳタスク切り替え工程により特定アプリケーションへのタスクの切り替えが検出されると、カーネルファイルの仮想アドレスと対応付けてＴＬＢに登録されている実メモリ上のアドレスを、個別パッチの仮想記憶空間上の仮想アドレスで書き替えることを特徴とする。
【００２８】
請求項１７記載の発明は、請求項１５又は１６記載の発明において、カーネル読み込み工程では、読み込まれる前のカーネルファイルのカーネルファイル先頭からの相対アドレスと、読み込まれる前の個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、カーネルファイルに個別パッチが登録されていると判断し、カーネルファイルを仮想メモリ上に配置すると共に個別パッチを仮想記憶空間上に配置し、特定アプリケーションの名称、カーネルファイルの仮想メモリ上の仮想アドレス、及び個別パッチの仮想記憶空間上の仮想アドレスを、ＴＬＢ読み替えテーブルに書き込むことを特徴とする。
【００２９】
請求項１８記載の発明は、アプリケーションにおけるタスクの切り替えとしてユーザの切り替えが発生した際に、メモリアクセスがあったときにユーザがアプリケーションへの適用を要求する個別パッチの仮想記憶空間上の仮想アドレスを指すように、ＴＬＢ（Translation-Lookaside buffer) の内容を書き替えることを特徴とする。
【００３０】
請求項１９記載の発明は、請求項１８記載の発明において、ＴＬＢ内で個別パッチが登録されるアプリケーションファイルの仮想アドレスを個別パッチの仮想アドレスに書き替えることにより、アプリケーションファイルの仮想アドレスでメモリアクセスがあったときに個別パッチの仮想アドレスを指すように、ＴＬＢの内容を書き替えることを特徴とする。
【００３１】
請求項２０記載の発明は、アプリケーションファイルを読み込み仮想記憶空間上の仮想メモリへ配置させると共に、アプリケーションファイルに対してユーザがそのアプリケーションへの適用を要求する個別パッチが登録されていれば、個別パッチを仮想記憶空間上に読み込み、アプリケーションファイルの仮想メモリ上の仮想アドレス、個別パッチの仮想記憶空間上の仮想アドレス、及びユーザの名称を、情報として出力するアプリケーション読み込み工程と、アプリケーション読み込み工程により出力された情報をテーブル形式でＴＬＢ読み替えページテーブルに書き込む情報書き込み工程と、アプリケーションにおけるタスクの切り替えとしてユーザへのタスクの切り替えを検出するアプリケーションタスク切り替え工程とを有し、アプリケーションタスク切り替え工程によりユーザへのタスクの切り替えが検出されたとき、検出されたユーザの名称がＴＬＢ読み替えページテーブル上に登録されていれば、ユーザの名称に伴って登録される仮想記憶空間上の個別パッチの仮想アドレス及び仮想メモリ内のアプリケーションファイルの仮想アドレスに基づいて、ＴＬＢ（Translation-Lookaside buffer) の内容が書き替えられることを特徴とする。
【００３２】
請求項２１記載の発明は、請求項２０記載の発明において、アプリケーションタスク切り替え手段によりユーザへのタスクの切り替えが検出されると、アプリケーションファイルの仮想アドレスと対応付けて登録されている実メモリ上のアドレスを、個別パッチの仮想記憶空間上の仮想アドレスで書き替えることを特徴とする。
【００３３】
請求項２２記載の発明は、請求項２０又は２１記載の発明において、アプリケーション読み込み工程では、読み込まれる前のアプリケーションファイルのアプリケーションファイル先頭からの相対アドレスと、読み込まれる前の個別パッチの個別パッチ先頭からの相対アドレスとが一致したとき、アプリケーションファイルに個別パッチが登録されていると判断し、アプリケーションファイルを仮想メモリ上に配置すると共に個別パッチを仮想記憶空間上に配置し、ユーザの名称、アプリケーションファイルの仮想メモリ上の仮想アドレス、及び個別パッチの仮想記憶空間上の仮想アドレスを、ＴＬＢ読み替えテーブルに書き込むことを特徴とする。
【００３４】
請求項２３記載の発明は、請求項１３から１７のいずれかに記載の発明において、個別アプリケーションパッチ管理方法は、さらに、ユーザからの入力動作に基づき特定アプリケーションによるＯＳに対する個別パッチの適用の有効／無効を指定する個別パッチ適用有効／無効指定工程と、個別パッチ適用有効／無効指定工程における指定に基づきＴＬＢ読み替えページテーブル内のエントリをマスクするマスク工程とを有することを特徴とする。
【００３５】
請求項２４記載の発明は、請求項１３から１７のいずれかに記載の発明において、個別アプリケーションパッチ管理方法は、さらに、ユーザからの入力動作に基づき特定アプリケーション毎にＯＳに対する個別パッチの適用レベルを指定する個別パッチ適用レベル指定工程と、個別パッチ適用レベル指定工程における指定に基づきＴＬＢ読み替えページテーブル内のエントリをマスクするマスク工程とを有することを特徴とする。
【００３６】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照しながら詳細に説明する。
【００３７】
図１は、本発明の一実施形態における個別アプリケーションパッチ管理装置の概略構成、及び、個別アプリケーションパッチ管理方法による処理の概略構成をを示した図である。図１において、１は、ＯＳにてタスクの切り替えが生じた際に、そのタスク切り替えを検出するＯＳ切り替え手段、２は、アプリケーション毎に仮想アドレスページの切り替えを指定したＴＬＢ読み替えページテーブル、３は、ハードディスク等に格納されるＯＳの基本部分であるカーネル、４は、同じくハードディスク等に格納されアプリケーション毎に用意された個別パッチ、５は、カーネル３から例えばページ単位でカーネルファイルを読み込むとともに、読み込まれたカーネルファイルに対して個別パッチが登録されていれば、個別パッチ４から個別パッチを読み込み、仮想アドレスページの切り替えを指定するための情報をＴＬＢ読み替えページテーブルに登録させるカーネル読み込み手段（通常、ブートロード）、６は、仮想記憶空間と実メモリとを対応付けるＴＬＢ（Translation-Lookaside buffer) 、７は、カーネル読み込み手段５により読み込まれたカーネルファイルが配置される仮想メモリ、８は、カーネル読み込み手段５により読み込まれた個別パッチが配置される個別パッチ空間である。
【００３８】
次に、本実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を図２及び図３のフローチャートを参照しながら説明する。
【００３９】
ＯＳの起動時に、カーネル読み込み手段５はカーネル３からカーネルファイルを読み込む（ステップＳ１）。通常、仮想メモリ７及び仮想記憶空間はページという概念で管理されており、１６Ｋバイト程度で区分けされている。このサイズが仮想メモリ７及び仮想記憶空間における通常の最小管理単位であり、本実施形態では、カーネル読み込み手段５は１ページ単位でカーネルファイル及び個別パッチの読み込み動作を行うものとする。
【００４０】
また、カーネル読み込み手段５は、読み込んだカーネルファイルを仮想メモリ７上に配置すると（ステップＳ２）、そのカーネルファイルに個別パッチが登録されているか否かを判定する（ステップＳ３）。個別パッチの登録がなされていれば（ステップＳ３／ＹＥＳ）、カーネルファイルを読み込むと共にそのカーネルファイルに登録されている個別パッチを読み込み個別パッチ空間８に配置させる（ステップＳ４）。個別パッチの登録がなされていなければ（ステップＳ３／ＮＯ）、後述するステップＳ６の処理に移行し、カーネル３から全てのカーネルファイルが読み出されたか否かを判定する。
【００４１】
このように、カーネル読み込み手段５は、個別パッチ空間８上に個別パッチを配置させると、その個別パッチのＯＳへのパッチ適用を要求するアプリケーション名、その個別パッチが登録されていたカーネルファイルの仮想メモリ７上における仮想アドレスページ番号、及び、その個別パッチの個別パッチ空間８上における仮想アドレスページ番号、の対応をＴＬＢ読み替えテーブル２に書き込む（ステップＳ５）。
【００４２】
次に、カーネル読み込み手段５は、カーネル３に収容されるカーネルファイル全てに対して読み込みが完了したか否かを判定する（ステップＳ６）。この判定において、全てのカーネルファイル読み出されたと判定されると（ステップＳ６／ＹＥＳ）、以上の処理を終了する。一方で、カーネル３に収容されるカーネルファイル全てに対して読み込みが完了していないと判定されると（ステップＳ６／ＮＯ）、読み込みがなされていないカーネルファイルに対して上記の処理が続行される。
【００４３】
ＯＳタスク切り替え手段１は、ＯＳのタスクの切り替えとしてアプリーションの切り替えが発生したか否かを判断する（ステップＳ１１）。この判断において、アプリケーションの切り替えは発生していないと判断された場合は（ステップＳ１１／ＮＯ）、ＯＳタスク切り替え手段１は引き続きタスクの切り替えを監視する。一方で、アプリケーションの切り替えが発生したと判断された場合は（ステップＳ１１／ＹＥＳ）、ＯＳタスク切り替え手段１は、次にタスクが移行するアプリケーションの名称を得る（ステップＳ１２）。
【００４４】
次に、ステップＳ１２において得たアプリケーションの名称がＴＬＢ読み替えテーブル２上に存在するか否かを判断する（ステップＳ１２）。この判断において、そのアプリケーション名称がＴＬＢ読み替えテーブル２上に存在しないと判断された場合（ステップＳ１３／ＮＯ）、ステップＳ１１の処理に戻る。一方で、そのアプリケーションの名称がＴＬＢ読み替えテーブル２上に存在すると判断された場合（ステップＳ１３／ＹＥＳ）、ＴＬＢ読み替えテーブル２上に登録されている仮想メモリ７上の全ての仮想アドレスページ番号について、それらの仮想アドレスページ番号に対応してＴＬＢ読み替えテーブル２に登録されている個別パッチ空間８上の仮想アドレスページ番号で、ＴＬＢ６の内容の書き替えを行う（ステップＳ１４）。その後は、後述するＯＳの仮想記憶システムの機能に制御が渡される（ステップＳ１５）。
【００４５】
このように書き替えられた仮想メモリ７上の仮想アドレスページ番号に対して外部からのメモリアクセスがあった場合は、この仮想メモリ７上の仮想アドレスページ番号は個別パッチ空間８上の仮想アドレスページ番号に書き替えられているため、その仮想アドレスページ番号で示される個別パッチ空間８上のページに対してリンクされる。
【００４６】
しかしながら、この個別パッチ空間８上の個別パッチは実メモリ上の領域には存在しないため、上記のメモリアクセスの際にはページフォールトが発生する。よって、ＯＳの仮想記憶システムは、このページフォールトに起因して、個別パッチ空間８上に存在している個別パッチを実メモリ上の空き領域に読み込むと共に、この実メモリ上の空き領域のアドレスページ番号を新たにＴＬＢ内容として登録する。
【００４７】
次に、図４及び図５を参照しながら、本実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を具体的に説明する。
【００４８】
カーネル読み込み手段５は、ハードディスク等から１ページ単位毎にカーネルファイル先頭から順次読み込み実メモリ上に順番に配置する。この読み込み動作においては、カーネルファイル先頭からの相対ページ番号によって表現されるアドレスにより読み込む対象となるカーネルファイルが指定される。
【００４９】
また、カーネル読み込み手段５は、上記の動作でカーネルファイルを読み出していく際に、そのカーネルファイル毎に個別パッチが登録されているか否かが判定する。この判定動作の詳細を以下に説明する。
【００５０】
カーネルファイルについては既に説明したように、ハードディスク上等においてカーネルファイル先頭からの相対ページ番号でアドレスが管理されている。同じく、個別パッチもアプリケーション毎に個別パッチ先頭からの相対ページ番号によりアドレスが管理されている。カーネル読み込み手段５は、相対ページ番号を順次指定していくことによりカーネル３からカーネルファイルを読み込むと共に、個別パッチ３内においてその相対ページ番号と一致する相対ページ番号のアドレスに個別パッチが存在するか否かを判定する。存在する場合は、カーネル読み込み手段５は、読み込んだカーネルファイルに個別パッチが登録されていると判定する。
【００５１】
また、一つのカーネルファイルに複数の個別パッチが登録されている場合（例えば、一つのカーネルファイルにアプリケーションＡ、アプリケーションＢが登録されている場合）は、カーネル読み込み手段５は、それらの個別パッチを個々に個別パッチ空間８に配置させると共に、アプリケーション名としてアプリケーションＡとアプリケーションＢ、個別パッチ空間上におけるそれらの個別パッチの仮想アドレスページ番号、及び、それらの個別パッチが登録されていたカーネルファイルの仮想メモリ７上の仮想アドレスページ番号を、ＴＬＢ読み替えページテーブル２上に書き込む。
【００５２】
このように読み込んだカーネルファイルに個別パッチが登録されていると判定された場合は、カーネル読み込み手段５は、カーネルファイルを仮想メモリ７上に配置すると共に、このカーネルファイルに登録されている個別パッチの実体を個別パッチ空間８上に配置する。
【００５３】
尚、個別パッチ空間８は仮想記憶空間上に存在する領域である。ＯＳの仮想記憶空間管理機能に対しては、個別パッチ空間８が属する仮想記憶空間上の仮想アドレスページ番号は全て予約され、その領域はハードディスク上に存在するとの管理情報が渡される。
【００５４】
図４によれば、カーネル３において相対ページ番号１のカーネルファイルがカーネル読み込み手段５により読み込まれると、同じくカーネル読み込み手段５によって図示したように仮想メモリ７上の領域に配置される。さらに、カーネル読み込み手段５は、個別パッチ３内において相対ページ番号１に格納されている個別パッチが存在するか否かをアプリケーション毎に判定する。尚、本図に示した実施形態においては、アプリケーションＡにより要求される個別パッチが登録されている。
【００５５】
カーネル読み込み手段５は、このアプリケーションＡにより要求される個別パッチと読み込んだカーネルファイルとの相対ページ番号を比較し、比較の結果、互いが相対ページ番号１で一致するため、その個別パッチの実体を個別パッチ空間８上に配置させる。また、カーネル読み込み手段５は、その際における仮想メモリ７上のカーネルファイルの仮想アドレスページ番号、個別パッチ空間８上の個別パッチの仮想アドレスページ番号、及び、アプリケーションＡの名称をＴＬＢ読み替えテーブルに書き込む。
【００５６】
次に、図５によれば、カーネル読み込み手段５の上記動作によりＴＬＢ読み替えページテーブル２に書き込まれた内容は、仮想メモリ７上のカーネルファイルの仮想アドレスページ番号として２、個別パッチ空間８上の個別パッチの仮想アドレスページ番号として１０００、及び、仮想アドレスページ番号２から仮想アドレスページ番号１０００への読み替えを要求するアプリケーションの名称としてＡが登録されている。
【００５７】
さらに、本図によれば、ＴＬＢ内容の一例として、仮想アドレスページ番号０と実メモリ上のアドレスページ番号０、仮想アドレスページ番号１と実メモリ上のアドレスページ番号３、仮想アドレスページ番号２と実メモリ上のアドレスページ番号１、及び、仮想アドレスページ番号３と実メモリ上のアドレスページ番号２が対応付けられている。
【００５８】
このようにカーネル読み込み手段５によりＴＬＢ読み替えページテーブル２に上記内容が書き込まれ、ＯＳタスク切り替え手段１がアプリケーションＡへのタスクの切り替えを検出すると、ＯＳタスク切り替え手段１は、ＴＬＢ読み替えページテーブル２に書き込まれているアプリケーションＡに関する全ての内容に基づき、ＴＬＢ６の内容を書き替える。
【００５９】
ＴＬＢ読み替えページテーブル２においてアプリケーションＡで上記仮想メモリ７上の仮想アドレスページ番号として登録される番号と同一の仮想アドレスページ番号でＴＬＢ６に登録される部分に対して、ＴＬＢ読み替えページテーブル２においてアプリケーションＡに関連して登録される全ての上記個別パッチ空間上の仮想アドレスページ番号と一致する箇所のＴＬＢ６の仮想アドレスページ番号を、ＴＬＢ読み替えページテーブル２においてアプリケーションＡで上記個別パッチ空間８上の仮想アドレスページ番号にそれぞれ書き替える。
【００６０】
例えば、外部からのメモリアクセスとして仮想アドレスページ番号２がＴＬＢに入力されると、仮想アドレスページ番号２と実メモリ上のアドレスページ番号１とのリンクが解除され、アドレスページ番号１で示される実メモリ上の領域が開放される。
【００６１】
また、ＴＬＢ読み替えページテーブル２では、仮想アドレスページ番号２と個別パッチ空間８上の仮想アドレスページ番号１０００が対応付けて登録されているため、ＴＬＢ６では、仮想アドレスページ番号２から個別パッチ空間８上の仮想アドレスページ番号１０００へと書き替えられる。従って、仮想アドレスページ番号２のメモリアクセスがなされると、替わって個別パッチ空間８上の仮想アドレスページ番号１０００にアクセスされる。
【００６２】
しかしながら、仮想アドレスページ番号１０００は個別パッチ空間８上に存在し実メモリに属する領域ではないため、このアクセス時にはメモリフォールトが発生してしまう。メモリフォールトが発生すると、仮想アドレスページ番号１０００の個別パッチの実体が、ＯＳの仮想記憶システムの機能により実メモリ上の空き領域（ここでは、アドレスページ番号４の領域）に読み込まれ、ＴＬＢ６の内容として、新たにアドレスページ番号４が仮想アドレスページ番号２に対応して登録される。
【００６３】
以上では、アプリケーション毎にＯＳに対して要求される個別パッチの適用について説明したが、本発明の他の実施形態として、ユーザ毎にアプリケーションに対して要求される個別パッチの適用を行う場合について説明する。
【００６４】
図６は、本実施形態における個別アプリケーションパッチ管理装置の概略構成、及び、個別アプリケーションパッチ管理方法による処理の概略構成をを示した図である。図６において、１１は、アプリケーションにてタスクの切り替えが生じた際に、そのタスク切り替えを検出するアプリケーションタスク切り替え手段、１２は、ユーザ毎に仮想アドレスページの切り替えを指定したＴＬＢ読み替えページテーブル、１３は、ハードディスク等に格納されるアプリケーション、１４は、同じくハードディスク等に格納されユーザ毎に用意された個別パッチ、１５は、アプリケーション１３から例えばページ単位でアプリケーションファイルを読み込むとともに、読み込まれたアプリケーションファイルに対して個別パッチが登録されていれば、個別パッチ１４から個別パッチを読み込み、仮想アドレスページの切り替えを指定するための情報をＴＬＢ読み替えページテーブル１２に登録させるアプリケーション読み込み手段、１６は、仮想記憶空間と実メモリとを対応付けるＴＬＢ、１７は、アプリケーション読み込み手段１５により読み込まれたアプリケーションファイルが配置される仮想メモリ、１８は、アプリーション読み込み手段１５により読み込まれた個別パッチが配置される個別パッチ空間である。
【００６５】
次に、本実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を図７及び図８のフローチャートを参照しながら説明する。
【００６６】
ＯＳの起動時に、アプリケーション読み込み手段１５はアプリケーション１３からアプリケーションファイルを読み込む（ステップＳ２１）。本実施形態でも、アプリケーション読み込み手段１５は１ページ単位でアプリケーションファイル及び個別パッチの読み込み動作を行うものとする。
【００６７】
次に、アプリケーション読み込み手段１５は、読み込んだアプリケーションファイルを仮想メモリ１７上に配置し（ステップＳ２２）、その毎にそのアプリケーションファイルに個別パッチが登録されているか否かを判定する（ステップＳ２３）。個別パッチの登録がなされていれば（ステップＳ２３／ＹＥＳ）、アプリケーションファイルを読み込むと共にそのアプリケーションファイルに登録されている個別パッチを読み込み個別パッチ空間１８に配置させる（ステップＳ２４）。個別パッチの登録がなされていなければ（ステップＳ２３／ＮＯ）、後述するステップＳ２６においてアプリケーション１３から全てのアプリケーションファイルが読み込まれたか否かが判定される。
【００６８】
このように、アプリケーション読み込み手段１５は、個別パッチ空間１８上に個別パッチを配置させると、その個別パッチをＯＳのＯＳへの適用を要求するユーザ名、その個別パッチが登録されていたアプリケーションファイルの仮想メモリ１７上における仮想アドレスページ番号、及び、その個別パッチの個別パッチ空間１８上における仮想アドレスページ番号、の対応をＴＬＢ読み替えテーブル１２に書き込む（ステップＳ２５）。
【００６９】
次に、アプリケーション読み込み手段１５は、アプリケーション１３に収容されるアプリケーションファイル全てに対して読み込みが完了したか否かを判断する（ステップＳ２６）。読み込みが完了したと判断された場合（ステップＳ２６／ＹＥＳ）、以上の処理を終了する。一方で、アプリケーション１３に収容されるアプリケーションファイル全てに対して読み込みが完了していないと判断した場合は（ステップＳ２６／ＮＯ）、読み込みがなされていないアプリケーションファイルに対して処理が続行される。
【００７０】
アプリケーションタスク切り替え手段１１は、アプリケーションのタスクの切り替えとしてユーザの切り替えが発生したか否かを判断する（ステップＳ３１）。この判断において、ユーザの切り替えは発生していないと判断された場合は（ステップＳ３１／ＮＯ）、アプリケーションタスク切り替え手段１１は引き続きタスクの切り替えを監視する。一方で、ユーザの切り替えが発生したと判断された場合は（ステップＳ３１／ＹＥＳ）、アプリケーションタスク切り替え手段１１は、次のユーザの名称を得る（ステップＳ３２）。
【００７１】
次に、ステップＳ３２において得たユーザの名称がＴＬＢ読み替えテーブル１２上に存在するか否かを判断する（ステップＳ３２）。この判断において、そのユーザ名称がＴＬＢ読み替えテーブル１２上に存在しないと判断された場合（ステップＳ３３／ＮＯ）、ステップＳ３１の処理に戻る。一方で、そのユーザの名称がＴＬＢ読み替えテーブル１２上に存在すると判断された場合（ステップＳ３３／ＹＥＳ）、ＴＬＢ読み替えテーブル１２上に登録されている仮想メモリ１７上の全ての仮想アドレスページ番号について、それらの仮想アドレスページ番号に対応してＴＬＢ読み替えテーブル１２に登録されている個別パッチ空間１８上の仮想アドレスページ番号で、ＴＬＢ１６の内容の書き替えを行う（ステップＳ３４）。その後は、既に説明したＯＳの仮想記憶システムの機能に制御が渡される（ステップＳ３５）。
【００７２】
さらに他の実施形態として、ユーザからの入力動作に基づき特定アプリケーションによるＯＳに対する個別パッチの適用の有効／無効を指定できる個別パッチ適用有効／無効指定手段や、同じくユーザからの入力動作に基づきアプリケーション毎にＯＳに対する個別パッチの適用レベルを指定できる個別パッチ適用レベル指定手段、及び、これらの手段でなされた指定に基づきＴＬＢ読み替えページテーブル２内のエントリをマスクするマスク手段を、図１の構成に追加する。
【００７３】
例えば、ユーザにとって使用されていないアプリケーションが存在し、そのアプリケーションがＯＳに対して個別パッチの適用を要求する特定アプリケーションであった場合、或いは、そのアプリケーションが特定アプリケーションであって、ユーザがこの特定アプリケーション上で出力ファイルを加工する等バグ回避の工夫を行っている場合では、上記個別パッチ適用有効／無効指定手段により、この特定アプリケーションによるＯＳに対する個別パッチの適用を無効とする指示が与えられる。上記マスク手段はこの指示を受け、ＴＬＢ読み替えページテーブル２内で特定アプリケーションに関連するエントリの全てをマスクする。
【００７４】
これにより、上記状況下において特定アプリケーションに対する個別パッチの適用はなされなくなり、ユーザがそのアプリケーションを使用していない場合には個別パッチの適用動作の無駄を省くことができる。さらに、ユーザが特定アプリケーション上で出力ファイルを加工するなどバグ回避の工夫をしている場合において、ＯＳに対する個別パッチの適用がなされると不具合が生じてしまうが、ユーザは個別パッチの適用を無効とする指示を与えることにより、この点も回避することができる。
【００７５】
また、ユーザが特定アプリケーションを使用する上において、ＯＳに対して個別パッチを適用することが好ましくない場合、例えば、計算精度を向上させるパッチを適用すると計算速度が遅くなる場合があるが、そのときは、このアプリケーションによりＯＳに対して適用される個別パッチのうちの幾つかを無効とするように、ユーザは、その旨の内容を上記個別パッチ適用レベル指定手段に入力する。上記マスク手段は、上記個別パッチ適用レベル指定手段からの指定を受け、ＴＬＢ読み替えページテーブル２上において無効とされた個別パッチに該当する箇所をマスクする。
【００７６】
これにより、ユーザが特定アプリケーションを使用する上において余計なパッチ適用を避けたい場合には、個別パッチ適用レベル指定手段を用いてパッチ適用レベルを入力すれば、用途に応じたパッチ適用を実行することができる。
【００７７】
【発明の効果】
以上の説明より明らかなように、本発明によれば、特定アプリケーションが要求するパッチをＯＳに適用させる際に、アプリケーション毎にＯＳへの適用が要求されるパッチを判断し、パッチ修正指示等のユーザからの入力を必要とせず、特定アプリケーションの実行時におけるＯＳに対するパッチ適用状況を動的に切り替えることできる。
【００７８】
また、本発明によれば、一つのアプリケーションに対しユーザ毎に適用が要求される個別パッチを判断し、パッチ修正指示等のユーザからの入力を必要とせず、このアプリケーションが使用される際に、使用するユーザ毎にアプリケーションに対する個別パッチ適用状況を動的に切り替えることができる。
【００７９】
また、本発明によれば、ユーザが特定アプリケーションを使用してない場合、或いは、ユーザ側で出力ファイルを加工するなどバグ回避の工夫をしている場合には、外部からのユーザからの入力により、その特定アプリケーションが要求するＯＳへの個別パッチ適用を無効、或いは、その特定アプリケーションが要求するＯＳへの個別パッチ適用のレベルを変化させることができる。
【００８０】
さらに、本発明によれば、ユーザが特定アプリケーションを使用する上において、この特定アプリケーションが要求する個別パッチをＯＳに対して適用することが好ましくない場合に、ＯＳに対する不要な個別パッチの適用を避けることができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態における個別アプリケーションパッチ管理装置の概略構成、及び個別アプリケーションパッチ管理方法による処理の概略構成を示した図である。
【図２】  本発明の第１の実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を示した第１のフローチャートである。
【図３】  本発明の第１の実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を示した第２のフローチャートである。
【図４】  本発明の第１の実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を具体的に説明するための第１の図である。
【図５】  本発明の第１の実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を具体的に説明するための第２の図である。
【図６】  本発明の第２の実施形態における個別アプリケーションパッチ管理装置の概略構成、及び個別アプリケーションパッチ管理方法による処理の概略構成を示した図である。
【図７】  本発明の第２の実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を示した第２のフローチャートである。
【図８】  本発明の第２の実施形態における個別アプリケーションパッチ管理装置の動作、及び個別アプリケーションパッチ管理方法を示した第２のフローチャートである。
【符号の説明】
１  ＯＳタスク切り替え手段
２、１２  ＴＬＢ読み替えページテーブル
３  カーネル
４、１４  個別パッチ
５  カーネル読み込み手段
６、１６  ＴＬＢ
７、１７  仮想メモリ
８、１８  個別パッチ空間
１１  アプリーションタスク切り替え手段
１３  アプリケーション
１５  アプリケーション読み込み手段
【図１】
0003674446.tif 000002
【図２】
0003674446.tif 000003
【図３】
0003674446.tif 000004
【図４】
0003674446.tif 000005
【図５】
0003674446.tif 000006
【図６】
0003674446.tif 000007
【図７】
0003674446.tif 000008
【図８】
0003674446.tif 000009