(57)【特許請求の範囲】
【請求項１】
ＯＳの再起動前に、ユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元することを特徴とする高速再起動方法。
【請求項２】
ＯＳの再起動前に、ユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させると共に、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定し、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元することを特徴とする高速再起動方法。
【請求項３】
ＯＳの再起動前に、ＯＳ再起動後に継続運用するユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元することを特徴とする高速再起動方法。
【請求項４】
ＯＳの再起動前に、ＯＳの再起動後に継続運用するプロセスまたは継続運用しないプロセスの識別子を保存してあるプロセスＩＤテーブルを参照して、ＯＳ再起動後に継続運用するユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元することを特徴とする高速再起動方法。
【請求項５】
ユーザプロセスの生成時、前記生成したユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新し、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にし、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元することを特徴とする高速再起動方法。
【請求項６】
或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定することを特徴とする請求の範囲第２項に記載の高速再起動方法。
【請求項７】
或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定することを特徴とする請求の範囲第５項に記載の高速再起動方法。
【請求項８】
主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージからＯＳの起動を行うことを特徴とする請求の範囲第１項に記載の高速再起動方法。
【請求項９】
システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換することを特徴とする請求の範囲第８項に記載の高速再起動方法。
【請求項１０】
ＯＳの再起動前に、ユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする情報処理装置。
【請求項１１】
ＯＳの再起動前に、ユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定する再起動フラグ設定手段と、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする情報処理装置。
【請求項１２】
ＯＳの再起動前に、ＯＳ再起動後に継続運用するユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする情報処理装置。
【請求項１３】
前記プロセス情報退避手段は、ＯＳの再起動前に、ＯＳの再起動後に継続運用するプロセスまたは継続運用しないプロセスの識別子を保存するプロセスＩＤテーブルを参照して、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるものであることを特徴とする請求の範囲第１２項に記載の情報処理装置。
【請求項１４】
ユーザプロセスの生成時、前記生成したユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス退避領域作成手段と、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新するプロセス退避情報更新手段と、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にするプロセス情報退避領域解放手段と、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする情報処理装置。
【請求項１５】
或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段を備えることを特徴とする請求の範囲第１１項に記載の情報処理装置。
【請求項１６】
或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段を備えることを特徴とする請求の範囲第１４項に記載の情報処理装置。
【請求項１７】
主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージからＯＳの起動を行う手段を備えることを特徴とする請求の範囲第１０項に記載の情報処理装置。
【請求項１８】
システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する手段を備えることを特徴とする請求の範囲第１７項に記載の情報処理装置。
【請求項１９】
コンピュータを、ＯＳの再起動前に、ユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とするプログラム。
【請求項２０】
コンピュータを、ＯＳの再起動前に、ユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定する再起動フラグ設定手段、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とするプログラム。
【請求項２１】
コンピュータを、ＯＳの再起動前に、ＯＳ再起動後に継続運用するユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領成は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とするプログラム。
【請求項２２】
前記プロセス情報退避手段は、ＯＳの再起動前に、ＯＳの再起動後に継続運用するプロセスまたは継続運用しないプロセスの識別子を保存するプロセスＩＤテーブルを参照して、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるものであることを特徴とする請求の範囲第２１項に記載のプログラム。
【請求項２３】
コンピュータを、ユーザプロセスの生成時、前記生成したユーザプロセスに関し、プロセス表及びブロックテーブルを含むＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス退避領域作成手段、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新するプロセス退避情報更新手段、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にするプロセス情報退避領域解放手段、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とするプログラム。
【請求項２４】
コンピュータを、さらに、或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段、として機能させることを特徴とする請求の範囲第２０項に記載のプログラム。
【請求項２５】
コンピュータを、さらに、或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段、として機能させることを特徴とする請求の範囲第２３項に記載のプログラム。
【請求項２６】
コンピュータを、さらに、主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージからＯＳの起動を行う手段、として機能させることを特徴とする請求の範囲第１９項に記載のプログラム。
【請求項２７】
コンピュータを、さらに、システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する手段、として機能させることを特徴とする請求の範囲第２６項に記載のプログラム。
【請求項２８】
メインメモリ上に、ＯＳをロードするためのメモリ領域である第１のＯＳメモリ領域と、プロセスをロードするためのメモリ領域であるプロセスメモリ領域とを割り当てて、ＯＳ及びプロセスを該当する領域にロードしたコンピュータで、ＯＳを再起動する方法において、ＯＳがプロセスを管理するための情報であり、プロセス表及びブロックテーブルを含むプロセス情報を、前記第１のＯＳメモリ領域から取得し、予め定められた記憶装置に設けた退避領域に格納する段階１と、前記プロセスメモリ領域を保持したまま、前記第１のＯＳメモリ領域を初期化する段階２と、前記メインメモリ上に第２のＯＳメモリ領域を割り当てて、前記ＯＳをロードする段階３と、ＯＳメモリ領域中のプロセス情報を、前記段階１にて格納されたプロセス情報に応じて更新する段階４とを含むことを特徴とするＯＳ再起動方法。
【請求項２９】
請求の範囲第２８項に記載のＯＳ再起動方法において、更に、プロセスメモリ領域にロードされたプロセスから保持すべきプロセスを選択する段階と、選択されなかったプロセスに割り当てられたプロセスメモリ領域を初期化する段階とを含むことを特徴とするＯＳ再起動方法。
【請求項３０】
請求の範囲第２８項に記載のＯＳ再起動方法において、前記退避領域をメインメモリ上に設けることを特徴とするＯＳ再起動方法。
【請求項３１】
請求の範囲第２８項に記載のＯＳ再起動方法において、各プロセスを再起動するか否かを示す情報を、当該プロセスのプロセス情報と共に、前記退避領域に記憶することを特徴とするＯＳ再起動方法。
【請求項３２】
請求の範囲第２８項に記載のＯＳ再起動方法において、各プロセスを再起動するか否かを示す情報を、前記退避領域を設けた記憶装置とは別の記憶装置に記憶することを特徴とするＯＳ再起動方法。
【請求項３３】
請求の範囲第２８項に記載のＯＳ再起動方法において、プロセスの生成、切り替え及び終了に応じて、前記退避領域を生成、更新及び解放する処理を、前記退避領域を設けた記憶装置に対して実行することを特徴とするＯＳ再起動方法。
【請求項３４】
請求の範囲第２８項に記載のＯＳ再起動方法において、前記ＯＳをメインメモリにロードしたときのイメージを格納した不揮発性記憶装置を予め用意する方法であって、前記段階３は、前記不揮発性記憶装置に格納したイメージを参照して前記メインメモリに前記ＯＳをロードすることを特徴とするＯＳ再起動方法。
【請求項３５】
請求の範囲第２８項に記載のＯＳ再起動方法において、更に、一のアプリケーションプログラムに対して関連付けられた複数のプロセスを含むプロセスを、プロセスメモリ領域にロードする段階と、プロセスメモリ領域にロードされたプロセスの中から、保持すべきプロセスを選択する段階と、選択されたプロセス、及び、当該プロセスと同じアプリケーションプログラムに関連付けられた他のプロセス以外のプロセスに割り当てられたプロセスメモリ領域を、初期化する段階とを含むことを特徴とするＯＳ再起動方法。
【請求項３６】
ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、
ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、
ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元し、
主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージからＯＳの起動を行い、
システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する
ことを特徴とする高速再起動方法。
【請求項３７】
ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、
ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、
ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段と
主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージからＯＳの起動を行う手段と、
システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する手段と
を備えることを特徴とする情報処理装置。
【請求項３８】
コンピュータを、
ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、
ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、
ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段、
主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージからＯＳの起動を行う手段、
システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】  本発明は、ＡＰサーバーや汎用情報処理装置などに好適な高速再起動方法に関し、特に、再起動前に運用していたアプリケーションをそのまま再起動後も継続して運用できる高速再起動方法および情報処理装置ならびにプログラムに関する。
【背景技術】  再起動は、ＯＳの設定を変更した場合、設定を反映させるために利用される。Ｗｉｎｄｏｗｓ（登録商標）ＯＳの場合は、レジストリの内容を変更し、変更を反映させるために再起動が必要になる。さらに、システムに何らかの障害が発生し、発生した障害の原因を特定することが困難である場合は、いち早く障害からシステムを回復させる最初の手段として、再起動を用いることが多い。このような再起動は、システムを運用している間は頻繁に利用するものであり、システムの停止時間を最小限にとどめるため、再起動処理は高速化が望まれていた。
再起動処理の高速化を実現するための従来の技術の例としては、特開平１１−２４９３６号公報第７頁、図１等に記載される情報処理装置の高速再起動方法がある。図１はこの従来の情報処理装置の構成を示したものである。図１に示すように従来の情報処理装置１は、その中に主記憶装置１１が配置され、外部には入出力装置２がある。また、主記憶装置１１の内部にはオペレーティングシステム（以下、ＯＳと呼ぶ）がロードされるＯＳプログラム領域１１１、初期化データ領域１１２、非初期化データ領域１１３、初期化データ退避領域１１４が配置されており、主記憶装置１１以外の情報処理装置内部は、再起動開始手段１２、高速再起動指定手段１３、実行制御手段１４、初期化データ退避手段１５、初期化データ回復手段１６、入出力停止手段１７、ＯＳロード手段１８から構成されている。
この従来の情報処理装置１では、ＯＳ起動時にＯＳの初期化データを初期化データ退避手段１５により初期化データ退避領域１１４に退避し、高速再起動指定手段１３により高速再起動が指定されると、実行制御手段１４によりＯＳプログラムの実行開始番地に実行を移し、初期化データ回復手段１６により初期化データを回復する。以上の処理を行うことで、ＯＳのプログラムおよびデータを再ロードすることなく情報処理装置を高速に再起動する高速再起動方式を提供している。
しかしながら、特許文献１に記載された従来の高速再起動方法では、ＯＳの高速再起動を実現することはできるが、ＯＳ上で実行されているアプリケーション（アプリケーションプログラム）については言及されていない。ＯＳを再起動する際にはアプリケーションを正常終了または強制終了させる必要がある。再起動時間を短縮するためにアプリケーションを強制終了させると、再起動後の当該アプリケーションの正常運用を保障できない。なぜなら、アプリケーションの強制終了は、現在のサービス状態を保存しない。アプリケーションによっては、運用時のサービス状態が再起動後に必要な場合がある。そのような場合には再起動後にアプリケーションの正常運用を保障することができなくなる。よって、アプリケーションを正常終了させる必要があるが、アプリケーションの正常終了は、現在のサービス状態を保存するために、ディスクなどの処理速度の遅い補助記憶装置へのアクセスが頻繁に発生する。このような補助記憶装置へのアクセスは、システムの終了処理時間を増大させることとなり、システムの再起動時間を増大させるものとなる。
また、再起動を利用する際に考慮すべき事項として、次のような場合が想定される。再起動は主にシステムの設定をＯＳに反映させたり、あるアプリケーションの障害によりＯＳが正常に動作しなくなった場合に利用される。複数のアプリケーションを使ってサービスを提供するサーバにおいて、ある一つのアプリケーションに障害が発生し、ＯＳが正常に動作しなくなった場合は、再起動する必要があるが、その際には、障害の発生したアプリケーション以外のアプリケーションも終了させる必要があり、サービス途中にあるアプリケーションはサービスを強制中断せざるを得なくなる。
上記の問題点を克服するために、本発明では、シャットダウン時の処理を最小限にとどめて、システムを高速に再起動できる高速再起動方法および情報処理装置ならびにプログラムを提供することを目的とする。
本発明の他の目的は、再起動後もアプリケーションを継続運用できる高速再起動方法および情報処理装置ならびにプログラムを提供することを目的とする。
【発明の開示】
課題を解決するための手段を説明するにあたり、本発明を理解するための要素技術の説明を行う。
計算機はプログラムを実行する。計算機中のプログラムはプロセスという実行単位に分割されて実行される。ある時点において計算機が実行できるプロセスは一つであるので、プロセスを複数同時に実行するには、当該プロセスを管理する上位プログラムが必要となる。それがＯＳにあたるが、ＯＳは複数のプロセスを管理するために、ＯＳ自身が利用している主記憶領域上にプロセス表というものを持っている。プロセス表はプロセス一つにつき一つ用意され、プロセスを実行するための情報や、実行途中の情報を格納している。よって、あるプロセスは当該プロセスの利用している主記憶領域とプロセス表を保存しておくことにより、実行途中にあるプロセスを中断したり、中断した時点から処理を再開することができる。一つまたは複数のプロセスによってアプリケーションが構成される。そこで本発明では、アプリケーションの実行時などにＯＳ内に存在するプロセス表やその他、プロセスを復元するために必要な情報を主記憶領域上の退避領域に複写しておき、再起動時には、アプリケーションの使用していた主記憶の領域はそのままに、ＯＳのみを初期化する。そして初期化の後に、退避しておいたプロセス情報（プロセス表やその他ＯＳが管理していた情報）をＯＳのプロセス管理領域に上書きするよう動作する。このような構成を採用することで、再起動前のプロセスを再起動後も継続実行できる環境を提供することができる。より具体的には、本発明は以下のような構成を有する。
本発明の第１の高速再起動方法は、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元することを特徴とする。
本発明の第２の高速再起動方法は、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させると共に、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定し、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元することを特徴とする。
本発明の第３の高速再起動方法は、ＯＳの再起動前に、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元することを特徴とする。ここで、ＯＳ再起動後に継続運用するユーザプロセスかどうか、あるいはその反対にＯＳ再起動時に再起動するユーザプロセスかどうかは、例えば、ＯＳの再起動後に継続運用するプロセスまたは継続運用しないプロセスの識別子を保存してあるプロセスＩＤテーブルを参照して、判断することができる。
本発明の第４の高速再起動方法は、ユーザプロセスの生成時、前記生成したユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させ、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新し、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にし、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元することを特徴とする。
本発明の第５の高速再起動方法は、第２または第４の高速再起動方法において、或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定することを特徴とする。
本発明の第６の高速再起動方法は、第１乃至第４の何れかの高速再起動方法において、ＯＳの使用していた主記憶領域の初期化は、主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージをＯＳの使用していた主記憶領域に上書きすることで行うことを特徴とする。
本発明の第７の高速再起動方法は、第６の高速再起動方法において、システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換することを特徴とする。
本発明の第１の情報処理装置は、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする。
本発明の第２の情報処理装置は、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定する再起動フラグ設定手段と、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする。
本発明の第３の情報処理装置は、ＯＳの再起動前に、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段と、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする。ここで、プロセス情報退避手段は、例えば、ＯＳの再起動前に、ＯＳの再起動後に継続運用するプロセスまたは継続運用しないプロセスの識別子を保存するプロセスＩＤテーブルを参照して、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるものである。
本発明の第４の情報処理装置は、ユーザプロセスの生成時、前記生成したユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス退避領域作成手段と、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新するプロセス退避情報更新手段と、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にするプロセス情報退避領域解放手段と、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段と、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段とを備えることを特徴とする。
本発明の第５の情報処理装置は、第２または第４の情報処理装置において、或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段を備えることを特徴とする。
本発明の第６の情報処理装置は、第１乃至第４の何れかの情報処理装置において、前記主記憶初期化手段は、ＯＳの使用していた主記憶領域の初期化は、主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージをＯＳの使用していた主記憶領域に上書きすることで行うものであることを特徴とする。
本発明の第７の情報処理装置は、第６の情報処理装置において、システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する手段を備えることを特徴とする。
本発明の第１のプログラムは、コンピュータを、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とする。
本発明の第２のプログラムは、コンピュータを、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定する再起動フラグ設定手段、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とする。
本発明の第３のプログラムは、コンピュータを、ＯＳの再起動前に、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、ＯＳの再起動時に、前記ユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とする。ここで、プロセス情報退避手段は、例えば、ＯＳの再起動前に、ＯＳの再起動後に継続運用するプロセスまたは継続運用しないプロセスの識別子を保存するプロセスＩＤテーブルを参照して、ＯＳ再起動後に継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるものである。
本発明の第４のプログラムは、コンピュータを、ユーザプロセスの生成時、前記生成したユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス退避領域作成手段、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新するプロセス退避情報更新手段、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にするプロセス情報退避領域解放手段、ＯＳの再起動時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化する主記憶初期化手段、ＯＳ再起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元するプロセス復元手段、として機能させることを特徴とする。
本発明の第５のプログラムは、第２または第４のプログラムにおいて、コンピュータを、さらに、或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段、として機能させることを特徴とする。
本発明の第６のプログラムは、第１乃至第４の何れかのプログラムにおいて、前記主記憶初期化手段は、ＯＳの使用していた主記憶領域の初期化は、主記憶装置の一部を構成する不揮発性記憶部に記憶されたＯＳの主記憶イメージをＯＳの使用していた主記憶領域に上書きすることで行うものであることを特徴とする。
本発明の第７のプログラムは、第６のプログラムにおいて、コンピュータを、さらに、システム運用中にＯＳから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する手段、として機能させることを特徴とする。
更に、本発明は、次のようなＯＳ再起動方法を提供する。即ち、メインメモリ上に、ＯＳをロードするためのメモリ領域である第１のＯＳメモリ領域と、プロセスをロードするためのメモリ領域であるプロセスメモリ領域とを割り当てて、ＯＳ及びプロセスを該当する領域にロードしたコンピュータで、ＯＳを再起動する方法において、ＯＳがプロセスを管理するための情報であるプロセス情報を、第１のＯＳメモリ領域から取得し、予め定められた記憶装置に設けた退避領域に格納する段階１と、プロセスメモリ領域を保持したまま、第１のＯＳメモリ領域を初期化する段階２と、メインメモリ上に第２のＯＳメモリ領域を割り当てて、ＯＳをロードする段階３と、ＯＳメモリ領域中のプロセス情報を、段階１にて格納されたプロセス情報に応じて更新する段階４とを含むことを特徴とするＯＳ再起動方法を提供する。
このＯＳ再起動方法において、更に、プロセスメモリ領域にロードされたプロセスから保持すべきプロセスを選択する段階と、選択されなかったプロセスに割り当てられたプロセスメモリ領域を初期化する段階とを含むこととしてもよい。
このＯＳ再起動方法において、退避領域をメインメモリ上に設けることとしてもよい。
このＯＳ再起動方法において、各プロセスを再起動するか否かを示す情報を、当該プロセスのプロセス情報と共に、退避領域に記憶することとしてもよい。
このＯＳ再起動方法において、各プロセスを再起動するか否かを示す情報を、退避領域を設けた記憶装置とは別の記憶装置に記憶することとしてもよい。
このＯＳ再起動方法において、プロセスの生成、切り替え及び終了に応じて、退避領域を生成、更新及び解放する処理を、退避領域を設けた記憶装置に対して実行することとしてもよい。
このＯＳ再起動方法において、ＯＳをメインメモリにロードしたときのイメージを格納した不揮発性記憶装置を予め用意する方法であって、段階３は、不揮発性記憶装置に格納したイメージを参照してメインメモリにＯＳをロードすることとしてもよい。
このＯＳ再起動方法において、更に、一のアプリケーションプログラムに対して関連付けられた複数のプロセスを含むプロセスを、プロセスメモリ領域にロードする段階と、プロセスメモリ領域にロードされたプロセスの中から、保持すべきプロセスを選択する段階と、選択されたプロセス、及び、当該プロセスと同じアプリケーションプログラムに関連付けられた他のプロセス以外のプロセスに割り当てられたプロセスメモリ領域を、初期化する段階とを含むこととしてもよい。
【図面の簡単な説明】  図１は従来の情報処理装置の構成を示すブロック図であり、
図２は本発明の第１の実施の形態にかかる情報処理装置の構成を示すブロック図であり、
図３は本発明の第１の実施の形態における退避領域のデータ構造を示す図であり、
図４Ａ及び図４Ｂは本発明の第１の実施の形態の動作を示す流れ図であり、
図５は本発明の第１の実施の形態におけるブロック識別子を示す図であり、
図６は本発明の第１の実施の形態における主記憶初期化手段の処理を示す流れ図であり、
図７は本発明の第１の実施の形態の変形例の構成を示すブロック図であり、
図８は本発明の第１の実施の形態の変形例の動作を示す流れ図であり、
図９は本発明の第２の実施の形態にかかる情報処理装置の構成を示すブロック図であり、
図１０は本発明の第２の実施の形態におけるプロセス退避情報作成手段の処理を示す流れ図であり、
図１１は本発明の第２の実施の形態におけるプロセス退避情報更新手段の処理を示す流れ図であり、
図１２は本発明の第２の実施の形態におけるプロセス情報退避領域解放手段の処理を示す流れ図であり、
図１３は本発明の第３の実施の形態で利用する主記憶イメージを用いた高速起動方式を適用した情報処理装置の構成図であり、
図１４は本発明の第３の実施の形態で利用する主記憶イメージを用いた高速起動方式を適用した情報処理装置におけるマッピングテーブル部のエントリ構成を示す図であり、
図１５は本発明の第３の実施の形態で利用する主記憶イメージを用いた高速起動方式を適用した情報処理装置における保護情報部のエントリ構成を示す図であり、
図１６は本発明の第３の実施の形態で利用する主記憶イメージを用いた高速起動方式を適用した情報処理装置の処理を示す流れ図であり、
図１７は本発明の第３の実施の形態で利用する主記憶イメージを用いた高速起動方式を適用した情報処理装置の処理を示す流れ図であり、
図１８は本発明の第３の実施の形態にかかる情報処理装置の構成を示すブロック図であり、
図１９は本発明の第３の実施の形態にかかる情報処理装置における主記憶初期化手段の処理を示す流れ図であり、
図２０は本発明の第４の実施の形態にかかる情報処理装置の構成を示すブロック図であり、
図２１は本発明の第４の実施の形態にかかる情報処理装置における再起動フラグ設定手段の処理を示す流れ図であり、
図２２は本発明の第１の実施例におけるプロセス情報退避手段の処理を示す流れ図であり、
図２３は本発明の第１の実施例における主記憶初期化手段の処理を示す流れ図であり、
図２４は本発明の第２の実施例におけるプロセス退避情報作成手段の処理を示す流れ図であり、
図２５は本発明の第２の実施例におけるプロセス退避情報更新手段の処理を示す流れ図である。
【発明を実施するための最良の形態】  次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
図２を参照すると、本発明の第１の実施の形態にかかる情報処理装置１００は、プログラム制御により動作するＣＰＵ（プロセッサ）１１０と、主記憶領域１２０と、ＯＳ１３０から構成されている。プロセスはＣＰＵ１１０により実行される。主記憶領域１２０は、ＯＳプログラム領域１２１、ＯＳデータ領域１２２、プロセス使用領域１２３、退避領域１２４を含み、退避領域１２４内には実行されているプロセス分だけプロセス情報退避領域１２５が存在する。ＯＳ１３０は、プロセス情報退避手段１３１、プロセス復元手段１３２、主記憶初期化手段１３３、再起動フラグ設定手段１３４を含む。
図３に退避領域１２４のデータ構造を示す。退避領域１２４には、プロセス情報退避領域１２５とよばれる個々のプロセスごとにＯＳの管理している情報を退避させる領域があり、プロセス情報退避領域１２５は単方向リスト２０５でつながれている。さらに、退避領域使用サイズ２０１という退避領域１２４の大きさを示すデータ領域を持つ。ＯＳの管理している情報とは、プロセス表２０２とブロックテーブル２０３である。ＯＳは１つのプロセスにつき１つのプロセス表を作成して保守している。プロセス表には、プロセスの状態、プログラムのカウンタやスタックポインタ、メモリの割り当て、オープンしているファイルの状態やスケジュール情報、プロセスに関するあらゆる情報が入っている。また、ＯＳは主記憶領域１２０をブロックという単位で管理しており、ブロックテーブル２０３とは、個々のプロセスに一つ存在し、当該プロセスの使用しているブロックのアドレスが記述されている。再起動フラグ２０４は、当該プロセスを再起動させるかどうかを判断するためのフラグである。本実施の形態では、プロセス表２０２とは独立に再起動フラグ２０４を設けてあるが、プロセス表２０２の中に再起動フラグを持つようにしてもよい。
退避領域１２４は、基本的に主記憶領域１２０の一番後方のアドレスから始まり、主記憶領域１２０の先頭に向かって、現在実行しているプロセスの数だけ主記憶領域１２０を使用する。退避領域１２４を後方の定位置からアドレッシングする方法は、次のような利点がある。ＯＳは、起動の際に主記憶領域の管理を行うために、主記憶領域の初期化を行う。本発明において主記憶領域初期化の際にＯＳは、再起動前に使用されていた退避領域１２４と、プロセス自身がプログラムを実行するために使用していたプロセス使用領域１２３を知る必要がある。再起動前にプロセスによって使用されていたプロセス使用領域１２３を起動後に知るには、定位置から退避領域１２４を置くとよい。起動後にＯＳは、退避領域１２４がどこにあるのかを調べる必要がなく、ＯＳプログラムの一部として「プロセス情報退避領域１２５は主記憶領域１２０の一番後方のアドレスから置かれる」と記述することで、プロセス情報退避領域１２５がどこにあるのかを知ることができ、退避領域１２４のプロセス情報退避領域１２５からプロセス使用領域１２３を知ることができる。よって、再起動前の退避領域１２４の位置がわかりさえすれば退避領域１２４の主記憶領域１２０上での位置は一番後方でなくてもよく、また別の記憶装置（フラッシュメモリなどの不揮発性主記憶装置）に退避領域１２４を保存しておいてもよい。
プロセス情報退避手段１３１、プロセス復元手段１３２、主記憶初期化手段１３３、再起動フラグ設定手段１３４は、それぞれ次のような機能を有する。
プロセス情報退避手段１３１は、ＯＳ内部にあるプロセス表とブロックテーブルをプロセス情報退避領域１２５に退避させる。
プロセス表の退避処理とは、あるプロセスについて、プロセス表をプロセス情報退避領域１２５へＯＳデータ領域１２２からコピーすることである。
通常、ＯＳは主記憶領域１２０を複数のブロックに分割して管理しており、ＯＳはプロセスに必要量のブロックを与えることで、プロセスを実行している。どのブロックを当該プロセスが使用しているかという情報はブロックテーブルに保存されている。ブロックテーブルの退避処理とは、プロセスに付随するブロックテーブル２０３を退避領域１２４にＯＳデータ領域１２２からコピーすることである。
再起動フラグ設定手段１３４は、ユーザからの入力によって、あるプロセス情報退避領域１２５内に設けられた再起動フラグ２０４を設定する手段である。ユーザからの入力は、プロセスを特定するためのプロセスＩＤである。再起動フラグ２０４を設定されたプロセスは、再起動されるため、再起動後に再起動前の状態に復元せず、当該プロセスのプロセス情報退避領域１２５と、プロセス使用領域１２３は解放される。これに対して、再起動フラグ２０４を設定されないプロセスは、再起動されず、当該プロセスのプロセス情報退避領域１２５とプロセス使用領域１２３を用いて、再起動前の状態に復元される。
主記憶初期化手段１３３は、ＯＳが起動前に実行していたプロセスについて、当該プロセスが利用していた領域を認識するための処理である。通常、ＯＳは起動時に利用できる主記憶領域１２０を認識するために、ブロックごとに初期化処理を行う。ここでプロセス情報退避領域１２５より、起動前に実行していたプロセスが使用しているブロックをブロックテーブル２０３より検索し、使用しているブロックについては初期化処理を施さないようにする。
プロセス復元手段１３２は、プロセス情報退避領域１２５に格納されているプロセス表２０２、ブロックテーブル２０３からプロセスを復元する処理である。復元処理とは、ＯＳデータ領域１２２にプロセス表２０２およびブロックテーブル２０３を書き戻す（コピー）処理である。
次に、図２ないし図６を参照して本実施の形態について全体の動作を詳細に説明する。
最初に、システム終了時までの処理について説明する。まず、全てのプロセスについて、プロセス情報退避手段１３１を用いてプロセス情報退避領域１２５を作成する（図４Ａ  Ｓ１００）。この処理は全てのプロセスについて行い、全てのプロセスについてプロセス情報退避領域１２５が作成できたとき終了する（Ｓ１０１）。
プロセス情報退避領域１２５の作成は、まず主記憶上にプロセス情報退避領域１２５を確保し、当該プロセスのプロセス表２０２をＯＳデータ領域１２２から読み出して、確保したプロセス情報退避領域１２５にコピーし、次にＯＳデータ領域１２２からブロックテーブル２０３を読み出して、確保したプロセス情報退避領域１２５にコピーすることで行う。また、作成時には退避領域使用サイズ２０１を当該プロセスのために使用した主記憶領域分だけ足す。さらに、必要に応じて再起動フラグ２０４を設定し、単方向リスト２０５でプロセス情報退避領域１２５どうしをつなげる。
こうして全てのプロセスについてプロセス情報退避領域１２５の作成を行った後、ＯＳの通常終了処理を行う（Ｓ１０２）。プロセスについては終了処理をせず、そのままの状態でＯＳ起動後のプロセスの復元処理を待つ。プロセス情報退避領域１２５の作成は、システム終了直前、つまりユーザがシステム終了命令を発行してから作成を開始し、ＯＳの終了処理を始めるまでの間に作成するが、任意の時間に作成してもよい。
再起動フラグ設定手段１３４による再起動フラグ２０４の設定は、システム終了までの任意の時間に行う。再起動フラグ２０４は、プロセス情報退避領域１２５の中に設置されており、当該プロセスの退避領域が作成されるまで設定することができないので、当該プロセスの退避領域が作成される前にユーザから再起動する旨の指示があれば、ＯＳは一時的に当該プロセスに対する再起動フラグ設定の情報を保持しておく必要がある。その際の設定の情報は、再起動フラグ設定手段１３４の中にプロセスＩＤのリストとして保持しておく。その後プロセス情報退避領域１２５が作成されたら、以前のユーザの指示に従い、再起動フラグ２０４を設定する。
次に、起動時の処理を説明する。ＯＳの展開を含むＯＳの起動（Ｓ１０３）については、ＬｉｎｕｘなどのＯＳと同様である。Ｌｉｎｕｘの展開については、例えば参考文献１「Ｄ．Ｂｏｖｅｔ  ａｎｄ  Ｍ．Ｃｅｓａｔｉ．詳解Ｌｉｎｕｘカーネル，オライリー・ジャパン，２００１．」に記載されている。起動時の処理の説明は、ＯＳの主記憶上への展開が終了し、ＯＳが最初の処理を行うところから始める。
まず、主記憶領域１２０の利用可能領域を認識するためにＯＳにより主記憶の初期化がブロック単位で行われる（Ｓ１０４）。この初期化の際には再起動前にプロセスによって使用されていた領域をＯＳに認識させる必要がある。ＯＳはあるブロックが使用中であるか否かを認識するために、ブロック識別子４００を持つ（図５）。ブロック識別子４００は、ブロック番号４０１と使用フラグ４０２とから構成される。ブロック識別子４００は一つのブロックについて一つ存在する。起動時には、ＯＳデータ領域１２２にブロック識別子４００のための領域を確保し、使用フラグ４０２を零（使用されていない）に設定することにより主記憶領域１２０の初期化とみなされる。利用可能である主記憶領域の開始アドレスは、あらかじめＢＩＯＳなどによってその値が与えられている。
図６は本発明における主記憶初期化手段１３３のフローチャートを示している。本発明における主記憶初期化手段１３３を実行する前にあらかじめ退避領域１２４の使用している領域を確認する（Ｓ２０１）。退避領域１２４の使用している領域は、退避領域１２４にある退避領域使用サイズ２０１を見ることで確認することができる。次に、退避領域１２４内にあるすべてのプロセス情報退避領域１２５を検索し、再起動フラグ２０４の設定されていない（再起動前のプロセスを継続利用する）プロセスのブロックテーブル２０３からあらかじめ初期化の必要のないブロックを把握しておく（Ｓ２０２）。退避領域１２４によって使用されているブロックのブロック番号４０１のリストを一時的に保持しておき、のちの処理に使用する。
退避領域使用サイズ２０１を確認し、初期化の必要のないブロックを把握した上で、指定されたアドレスに対するブロック識別子一つ分の主記憶領域を０で初期化する（Ｓ２０４）。次に、退避領域１２４で先ほど初期化したブロックが使用されているかを確認する（Ｓ２０５）。使用しているなら（Ｓ２０６のＹＥＳ）、使用フラグを立て（Ｓ２０７）、次のアドレスへ移る。このようにして、利用可能である領域の全てのブロック識別子４００を初期化すると（Ｓ２０３のＹＥＳ）主記憶初期化手段１３３を終了する。
主記憶領域１２０の初期化が終了すると、次にプロセスを復元する。退避領域１２４内のプロセス情報退避領域１２５を確認し、再起動フラグ２０４が設定されているか確認する（Ｓ１０７）。再起動を行うのであれば（Ｓ１０８）、当該プロセス情報の退避領域１２４を解放し、次のプロセスの退避情報に関して処理を行う（Ｓ１０５）。再起動を行わないのであれば、プロセスを復元する（Ｓ１０９）。以上の処理を退避領域１２４内にあるプロセス情報退避領域１２５のエントリが全てなくなるまで行う（Ｓ１０６）。プロセスの復元は、プロセス表とブロックテーブルのための領域をＯＳデータ領域１２２上に確保し（Ｓ１１０、Ｓ１１２）、退避しておいたプロセス表２０２とブロックテーブル２０３を用意した領域にコピーする（Ｓ１１１、Ｓ１１３）。あるプロセス情報の退避領域１２４の解放時には、以下の処理を行う。
１）削除するプロセス情報退避領域の一つ前のプロセス情報退避領域（単方向リスト２０５での一つ前のリスト要素）の単方向リスト２０５が指す次のプロセス情報退避領域へのポインタを、削除するプロセス情報退避領域に格納されている単方向リスト２０５の内容に置き換える。
２）削除するプロセス情報退避領域が使用している主記憶ブロックのブロック識別子４００内の使用フラグ４０２を零（使用していない）にする。
３）退避領域使用サイズ２０１の値から、削除するプロセス情報退避領域分だけ差し引く。
次に、本実施の形態の効果について説明する。
本実施の形態では、プロセス（アプリケーション）の終了処理を省略し、プロセスの終了にかかる補助記憶装置などの転送速度の遅い装置への入出力処理をなくすことができるので、システムの再起動時間を短縮することができる。
さらに、任意のプロセスを再起動後も再起動前の状態を保持したまま継続実行することができる。よって、システムの再起動に際してプロセスが提供していたサービスを強制的に中断する必要がなくなる。
次に、本発明の第１の実施の形態の変形例について図面を参照して詳細に説明する。
図７を参照すると、本発明の第１の実施の形態の変形例にかかる情報処理装置１００ａは、再起動フラグ設定手段１３４の代わりに再起動プロセスＩＤテーブル１３４ａと再起動設定手段１３４ｂを備えている点などで、図２に示した本発明の第１の実施の形態の情報処理装置１００と相違する。
本発明の第１の実施の形態においては、ＯＳの再起動前に、ユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域に退避させると共に、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグ２０４を設定し、ＯＳの再起動時に、再起動フラグ２０４が再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し、ＯＳ再起動後に、前記退避したプロセス情報のうち再起動フラグ２０４が再起動しない設定になっているユーザプロセスのプロセス情報をＯＳ内に復元した。
これに対して、第１の実施の形態の変形例では、再起動するユーザプロセスのＩＤを保持する再起動プロセスＩＤテーブル１３４ａを設け、再起動設定手段１３４ｂが、少なくともＯＳの終了前に、ユーザから入力されるプロセスＩＤに基づいて、再起動するユーザプロセスのＩＤを再起動プロセスＩＤテーブル１３４ａに設定する。プロセス情報退避手段１３１は、図８のフローチャートに示すように、ＯＳの再起動前に、ＯＳデータ領域１２２から一つのプロセス表を取り出し（Ｓ１１０）、そのプロセス表に設定されたプロセスＩＤが再起動プロセスＩＤテーブル１３４ａに登録されているかどうかを調べることにより（Ｓ１１１）、当該プロセス表に対応するユーザプロセスが再起動するプロセスか、ＯＳ再起動後に継続運用するユーザプロセスかを判断し（Ｓ１１２）、再起動せずに継続運用するユーザプロセスに関するＯＳ内のプロセス情報を主記憶装置上の退避領域１２４に退避させる（Ｓ１００）。すなわち、図３に示したようなプロセス情報退避領域１２５を作成する。但し、本変形例の場合、再起動フラグ２０４は省略してよい。そして、ＯＳの再起動時（Ｓ１０２、Ｓ１０３）、主記憶初期化手段１３３により、前記退避したユーザプロセスの使用していた主記憶領域は初期化せずにＯＳの使用していた主記憶領域は初期化し（Ｓ１０４）、前記退避したプロセス情報をＯＳ内に復元する（Ｓ１０５、Ｓ１０６、Ｓ１０９）。
なお、上記の説明では、再起動プロセスＩＤテーブル１３４ａに、再起動するユーザプロセスのプロセスＩＤを設定したが、その反対に、再起動せずに継続運用するユーザプロセスのプロセスＩＤを設定するようにしてもよい。
第１の実施の形態では、再起動の必要なプロセスについてもプロセス情報退避領域１２５を作成していたが、本変形例では、再起動の必要のないプロセスのみプロセス情報退避領域１２５を作成するので、第１の実施の形態よりも、プロセス情報退避領域１２５を作成する回数を減らすことができる。
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
図９を参照すると、本発明の第２の実施の形態にかかる情報処理装置１００ｂは、再起動フラグ設定手段１３４の代わりに、再起動プロセスＩＤテーブル１３４ａと再起動設定手段１３４ｂを備え、プロセス情報退避手段１３１の代わりに、プロセス退避情報作成手段１３５、プロセス退避情報更新手段１３６及びプロセス情報退避領域解放手段１３７を備えている点などで、図２に示した本発明の第１の実施の形態と相違する。ここで、再起動プロセスＩＤテーブル１３４ａと再起動設定手段１３４ｂは、本発明の第１の実施の形態の変形例におけるものと同様のものである。つまり、再起動設定手段１３４ｂは、ユーザから入力されるプロセスＩＤに基づいて、再起動するユーザプロセスのＩＤを再起動プロセスＩＤテーブル１３４ａに設定する。
本実施の形態では、本発明の第１の実施の形態におけるプロセス情報退避手段１３１を３つの手段に分割する。第１の実施の形態では、任意の時間にプロセス情報退避手段１３１を用いてプロセスの退避情報を作成していたが、本実施の形態では、プロセス生成時、プロセス切り替え時、プロセス終了時にそれぞれ、プロセス情報退避領域を作成し、更新し、領域を解放する。これら三つの処理をそれぞれプロセス退避情報作成手段１３５、プロセス退避情報更新手段１３６、プロセス情報退避領域解放手段１３７で実行する。プロセス切り替えとは、以下のような処理を指す。ＵＮＩＸ（登録商標）のようなマルチタスクＯＳでは、プロセスは複数同時に実行されるが、ある微小時間ΔｔでＣＰＵは一つのプロセスしか実行することができない。よってプロセスがあたかも複数同時に実行しているように見せかけるために、マルチタスクＯＳでは、プロセスの実行を一定時間ごとに切り替えている。これをプロセス切り替えという。以下では、プロセス情報退避領域の作成、更新、領域解放について説明する。
図１０はプロセス生成時に動作するプロセス退避情報作成手段１３５のフローチャートを示している。プロセス退避情報作成手段１３５は、ＯＳによるプロセスの生成が完了した時点で処理を開始する。プロセスの生成完了とは、生成するプロセスのプロセス表２０２をＯＳデータ領域１２２に用意し、当該プロセスにプロセス使用領域１２３を割り当て、その使用領域１２３に実行するプログラムをコピーし、当該プロセスが実行準備を完了した時点を指す。まず、プロセス情報退避領域１２５を主記憶領域１２０上に確保する（図１０のＳ３０１）。次に、当該プロセスのプロセス表２０２をＯＳデータ領域１２２からプロセス情報退避領域１２５にコピーする（Ｓ３０２）。次に、当該プロセスのブロックテーブル２０３をＯＳデータ領域１２２からプロセス情報退避領域１２５にコピーする（Ｓ３０３）。最後に、単方向リスト２０５を設定し、退避領域１２４のリストに登録する（Ｓ３０４）。
図１１はプロセス切り替え時に動作するプロセス退避情報更新手段１３６のフローチャートを示している。まず該当するプロセスのプロセス情報退避領域１２５を退避領域１２４から検索する（Ｓ４０１）。次に、ユーザから当該プロセスを再起動する旨の指示があるかどうかを再起動プロセスＩＤテーブル１３４ａを参照してチェックする（Ｓ４０２）。ユーザからの指示により再起動するのであれば（Ｓ４０３）、前記検索したプロセス情報退避領域１２５における再起動フラグ２０４を立て（Ｓ４０４）、プロセス退避情報更新手段１３６を終了する。再起動せず継続運用するのであれば（Ｓ４０３）、再起動フラグ２０４を取り消し（Ｓ４０５）、ＯＳデータ領域１２２上の最新のプロセス表２０２をプロセス情報退避領域１２５にコピー（Ｓ４０６）し、ＯＳデータ領域１２２上の最新のブロックテーブル２０３をプロセス情報退避領域１２５にコピー（Ｓ４０７）し、プロセス退避情報更新手段１３６を終了する。ユーザからの指示が存在しない場合は、再起動フラグに従う、再起動フラグ２０４が立っている状態であるのなら、更新処理（Ｓ４０６、Ｓ４０７）は行わず終了する。
図１２はプロセス終了時に動作するプロセス情報退避領域解放手段１３７のフローチャートを示している。まず退避領域１２４から当該プロセスのプロセス情報退避領域１２５を検索する（Ｓ５０１）。次に単方向リスト２０５から当該プロセスのプロセス情報退避領域１２５を削除する（Ｓ５０２）。この処理（Ｓ５０２）は、当該プロセスのプロセス情報退避領域の前につながっている領域と後につながっている領域のリストをつなぎ合わせる処理になる。次に、当該プロセスのプロセス情報退避領域１２５を解放する（Ｓ５０３）。つまり、削除するプロセス情報退避領域１２５が使用している主記憶ブロックのブロック識別子４００内の使用フラグ４０２を零（使用していない）にし、退避領域使用サイズ２０１の値から、削除するプロセス情報退避領域分だけ差し引く。これでプロセス情報退避領域解放手段１３７の処理が終了し、この後、ＯＳによるプロセスの終了処理に移ることになる。
再起動後の主記憶初期化、プロセス復元などは、第１の実施の形態と同様である。
本実施の形態における効果は以下の通りである。
第１の実施の形態では、プロセスの最新の情報を保持するためにはシステム終了時にプロセス情報退避領域１２５を作成する必要があった。例えば、システム終了１０分前にあるプロセスについてプロセス情報退避領域１２５を作成すると、プロセス情報退避領域１２５を作成してからシステム終了までの１０分間の間にプロセスは処理を実行し、プロセス表を書き換えたり、必要のなくなったブロックを解放し、ブロックテーブルを書き換えている可能性がある。このような場合にはプロセス復元手段１３２にてプロセス表２０２、ブロックテーブル２０３を元に戻しても実行できない場合がある。よって、プロセスの最新の情報を保持するためにシステム終了時にプロセス情報退避領域１２５を作成する必要があった。しかし、本実施の形態を適用すると、常にプロセス情報を最新の状態にしておくことができ、システム終了時にプロセスの終了処理を一切行う必要がなくなる。よって、第１の実施の形態と比較し、より高速にシステムを終了することができる。
次に、本発明の第３の実施の形態について図面を参照して詳細に説明するが、その前に、第３の実施の形態に利用する主記憶イメージを用いた高速起動方式（以下主記憶イメージ方式と呼ぶ）について説明する。
図１３を参照すると、主記憶イメージ方式を適用した情報処理装置は、少なくとも主記憶装置１０１とデータ処理装置１５０とを有し、プログラム制御により動作する。
主記憶装置１０１は、主記憶部１２６と不揮発性記憶部１４０とを含んで構成される。
不揮発性記憶部１４０は、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する部分である。この不揮発性記憶部１４０は、不揮発なメモリなら任意の種類のメモリで良く、例えばフラッシュＲＡＭ等の書き換え可能な不揮発性メモリや、ＲＯＭ等の読み出し専用の不揮発性メモリが使用できる。使用する主記憶イメージの内容を変更する方法としては、不揮発性記憶部１４０の差し替え、または、不揮発性記憶部１４０が書き換え可能な場合は、ネットワークを利用したイメージファイルのダウンロードや、外部記憶媒体からのイメージファイルの読み込みなどの方法が使用可能である。
不揮発性記憶部１４０に記憶する主記憶イメージの生成方法は任意であるが、例えば、通常のシステム起動方法で起動した直後の主記憶イメージをダンプすることにより生成することができる。
主記憶部１２６は、不揮発性記憶部１４０以外の主記憶領域を構成する部分である。この主記憶部１２６は、読み書き可能なメモリなら任意の種類のメモリで良く、一般的にはＤＲＡＭ、ＳＲＡＭ等の揮発性のメモリが使用される。但し、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、フラッシュＲＡＭ等の不揮発性のメモリを使用することも可能である。
他方、データ処理装置１５０は、マッピングテーブル変更部１９０とアドレス変換部２００とハードウェア初期化部１８０の機能手段を備え、ハードウェア初期化部２１０はマッピングテーブル初期化部１８０を有している。またデータ処理装置１５０は、制御テーブルとしてマッピングテーブル部１６０および保護情報部１７０を有している。
マッピングテーブル部１６０は、データ処理装置１５０上で動作するＯＳやアプリケーションプログラム（両者を総称してプログラムと言う）が主記憶装置１０１を操作する際に指定するメモリアドレス（論理アドレス）を、主記憶装置１０１を構成する主記憶部１２６および不揮発性記憶部１４０に実際に割り当てられているメモリアドレス（物理アドレス）に変換するための情報、および保護モードを記憶する制御テーブルである。ここで、論理アドレスは論理ブロックアドレスとブロック内アドレスとで構成され、物理アドレスは物理ブロックアドレスと前記ブロック内アドレスとで構成される。
図１４にマッピングテーブル部１６０のエントリの構成例を示す。マッピングテーブル部１６０は、このようなエントリの集合から構成される。図１４を参照すると、１つのエントリには、論理ブロックアドレス１６１と物理ブロックアドレス１６２と保護モード１６３の組が保持される。論理ブロックアドレス１６１は、論理アドレス空間を所定の大きさのブロックに分割したときにできる個々の論理ブロックを一意に識別するアドレスである。物理ブロックアドレス１６２は、物理アドレス空間を論理アドレス空間と同じ大きさのブロックに分割したときにできる個々の物理ブロックを一意に識別するアドレスである。ブロックとしては、ページと呼ばれるアーキテクチャに固有の単位を用いることで効率良く処理することが可能となるが、主記憶イメージ方式はその単位に制限されるわけではない。保護モード１６３は、読み込み専用の保護モードと読み書き可能の保護モードの何れか一方の値をとる。この保護モード１６３は、当該情報処理装置で実行されるプログラムの本来の保護属性とは異なる擬似的なものであり、不揮発性記憶部１４０のブロックに関してはシステム起動時に読み込み専用の保護モードが一律に設定される。
保護情報部１７０は、当該情報処理装置で実行されるプログラム本来の保護属性を保持する制御テーブルである。図１５に保護情報部１７０のエントリの構成例を示す。保護属性部１７０は、このようなエントリの集合で構成される。図１５を参照すると、１つのエントリには、論理ブロックアドレス１７１と保護属性１７２の組が保持される。保護属性１７２には、読み込み専用の保護属性と、読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、論理ブロックアドレス１７１で特定されるブロックの本来の保護属性によって決定される。
ハードウェア初期化部２１０は、当該情報処理装置の起動時および再起動時にシステム各部のハードウェアの初期化を行う部分であり、マッピングテーブル初期化部１８０を備えている。このマッピングテーブル初期化部１８０は、主記憶装置１０１を構成する主記憶部１２６および不揮発性記憶部１４０への物理アドレスの割り当て機能と、マッピングテーブル部１６０の初期設定機能とを有する。一般にＰＣＩバスの制御下に置かれているメモリなどのデバイスに対しては、ＢＩＯＳの機能で物理アドレスを物理的に固定させずに或る程度動的に割り当てることができるが、マッピングテーブル初期化部１８０は、このようなＢＩＯＳの処理と同様な物理アドレスの割り当て機能を有している。但し、主記憶イメージ方式において物理アドレスの動的な割り当ては必須の事項でなく、物理アドレスが静的に割り当てられている計算機システムに対しても適用可能である。マッピングテーブル部１６０の初期設定では、論理アドレス空間を構成する各論理ブロックに対して、不揮発性記憶部１４０に割り当てた物理ブロックを順次に対応付け、それら全てのブロックの保護モードを、そのブロックの本来の保護属性にかかわらず読み出し専用に設定する。
アドレス変換部２００は、当該情報処理装置上で動作するプログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能と保護モード違反による例外を検出し例外処理を起動する機能とを有する。論理アドレスから物理アドレスへの変換および保護モード違反による例外検出は、マッピングテーブル部１６０を参照して行う。マッピングテーブル変更部１９０は、アドレス変換部２００で起動された例外処理を実行する機能を有する。例外処理では、保護情報部１７０の参照による本来の保護属性の判定、不揮発性記憶部１４０のブロックの主記憶部１２６へのコピー、マッピングテーブル部１６０の更新などの処理が行われる。
図１６にアドレス変換部２００およびマッピングテーブル変更部１９０の処理の一例を示す。アドレス変換部２００は、プログラムから指定されたメモリアクセスにかかる論理アドレス中のブロックアドレスでマッピングテーブル部１６０を検索し、図１４に示した論理ブロックアドレス１６１が一致するエントリを取得する（ステップＳ７０１）。次に、アドレス変換部２００は、プログラムから指定されたメモリアクセスが、書き込みアクセスか、読み出しアクセスかを判別し（ステップＳ７０２）、読み出しアクセスであれば（ステップＳ７０２でＮＯ）、ステップＳ７０１で取得したエントリ中の物理ブロックアドレス１６２を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ７０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスする（ステップＳ７０４）。
プログラムから指定されたメモリアクセスが書き込みアクセスの場合（ステップＳ７０２でＹＥＳ）、アドレス変換部２００は、ステップＳ７０１で取得したエントリ中の保護モード１６３が読み込み専用の保護モードか、読み書き可能な保護モードかを判別する（ステップＳ７０５）。読み書き可能な保護モードであれば（ステップＳ７０５でＮＯ）、アドレス変換部２００は、ステップＳ７０１で取得した物理ブロックアドレス１６２を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ７０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスする（ステップＳ７０４）。
保護モード１６３が読み込み専用の保護モードである場合（ステップＳ７０５でＹＥＳ）、アドレス変換部２００は、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部１９０に通知して例外処理を起動する（ステップＳ７０６）。この例外イベントでは、ステップＳ７０１で取得したエントリ中の論理ブロックアドレス１６１と物理ブロックアドレス１６２をマッピングテーブル変更部１９０に通知する。
マッピングテーブル変更部１９０は、通知された論理ブロックアドレス１６１で保護情報部１７０を検索し、図１５の論理ブロックアドレス１７１が一致するエントリの保護属性１７２を取得する（ステップＳ７０７）。次に、マッピングテーブル変更部１９０は、保護属性１７２が読み込み専用の保護属性か、読み書き可能な保護属性かを判別する（ステップＳ７０８）。読み込み専用の保護属性であれば（ステップＳ７０８でＹＥＳ）、マッピングテーブル変更部１９０はアドレス変換部１７０に対してエラーを通知し、アドレス変換部２００は保留中のメモリアクセスを拒否する等のエラー処理を行う。
他方、保護属性１７２が読み書き可能な保護属性であれば（ステップＳ７０８でＮＯ）、マッピングテーブル変更部１９０は、アドレス変換部２００から通知された物理ブロックアドレス１６２で特定される不揮発性記憶部１４０のブロックを、主記憶部１２６の空きブロックにコピーする（ステップＳ７０９）。次にマッピングテーブル変更部１９０は、図１４の論理ブロックアドレス１６１がアドレス変換部２００から通知された論理ブロックアドレスに一致するエントリをマッピングテーブル部１６０から検索し、そのエントリの物理ブロックアドレス１６２をステップＳ７０９におけるコピー先の主記憶部１２６のブロックの物理ブロックアドレスに書き換え、かつ保護モード１６３を読み書き可能な保護モードに書き換える（ステップＳ７１０）。そして、例外処理の完了をアドレス変換部２００に通知する。アドレス変換部２００は、マッピングテーブル変更部１９０から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップＳ７０１から再度開始する。
図１７は主記憶イメージ方式を適用した情報処理装置の概略動作を示すフローチャートである。以下、各図を参照して主記憶イメージ方式を適用した情報処理装置の動作を説明する。
情報処理装置は起動されると、図１７に示されるように、先ず、ハードウェア初期化部２１０によってハードウェアの初期化を行った後（ステップＳ８０１）、マッピングテーブル初期化部１８０によって、主記憶部１２６および不揮発性記憶部１４０に物理アドレスを割り当て、マッピングテーブル部１６０を初期設定する（ステップＳ８０２）。マッピングテーブル部１６０の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部１６０に書き込み、且つ、不揮発性記憶部１４０の全てのブロックは読み込み専用の保護モードでマッピングテーブル部１６０に登録する。
次にデータ処理装置１５０は、不揮発性記憶部１４０に保存されている主記憶イメージからシステムを起動する（ステップＳ８０３）。この主記憶イメージは、ＯＳやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用（ステップＳ８０４）が可能になるまでの運用中断状態は存在しない。
システム運用（ステップＳ８０４）の段階において、プログラムから不揮発性記憶部１４０のとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているので、アドレス変換部２００が例外イベントを通知し、当該書き込みアクセスを一時保留する（図１６のＳ７０６）。例外イベントを受け取ったマッピングテーブル変更部１９０は、保護情報部１７０を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し（図１６のステップＳ７０８）、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部１２６から割り当て、その不揮発性記憶部１４０の当該ブロックの内容をコピーする（図１６のステップＳ７０９）。更に、マッピングテーブル変更部１９０は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部１６０に設定して、一時保留された書き込みアクセスの処理を再開させる（図１６のステップＳ７１０）。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
この状態で、再起動が行われると（図１７のステップＳ８０５）、再びハードウェアの初期化処理（ステップＳ８０１）から実行され、起動時と同じようにマッピングテーブル初期化部１８０の動作によってマッピングテーブル部１６０の内容が初期化され、不揮発性記憶部１４０がマッピングし直される（ステップＳ８０２）。このため、システムの運用中に主記憶部１２６に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
このように主記憶イメージ方式を適用した情報処理装置にあっては、不揮発性記憶部１４０に、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージが記憶されており、データ処理装置１５０は、不揮発性記憶部１４０に記憶された主記憶イメージからシステムを起動するため、システムの高速起動が可能になる。また、システム運用中にＯＳまたはアプリケーションプログラムから不揮発性記憶部１４０への書き込みアクセスが発生すると、データ処理装置１５０は、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部１４０から主記憶部１２６に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行う。このため、前記書き込みアクセスおよびそれ以降の前記所定幅のアクセス範囲へのアクセスは、前記代替領域へのアクセスに変換され、代替領域上のコピーが更新される。このように、ＯＳやアプリケーションプログラムによって書き換える必要のあるデータをシステムの起動時に不揮発性記憶部１４０から読み書き可能な主記憶部１２６へ連続してコピーしておくのではなく、書き込みアクセスが発生した都度実施することにより、システム起動後に直ちにシステムの運用を開始することができる。
以上が主記憶イメージを用いた高速再起動方式の説明である。続いて、この高速起動方式を応用した本発明の第３の実施の形態について図面を参照して説明する。
図１８を参照すると、本発明の第３の実施の形態にかかる情報処理装置１００ｃは、主記憶領域１２０が主記憶部１２６と不揮発性記憶領域１４０で構成され、データ処理装置１５０が追加されている点で、図２に示した第１の実施の形態の情報処理装置１００と構成が相違する。
不揮発性記憶部１４０には、図１３の不揮発性記憶部１４０の場合と異なり、ＯＳのみの起動イメージだけが記憶されている。つまり、ＯＳを通常起動した直後の主記憶上の内容を記憶している。不揮発性記憶部１４０に記憶されるＯＳの主記憶イメージ（起動イメージ）には、ＯＳプログラム領域とＯＳデータ領域とが含まれる。主記憶部１２６内にもＯＳデータ領域１２２が図示されているが、このＯＳデータ領域１２２は不揮発性記憶部１４０内のＯＳデータ領域１２２が運用中に書き込みのためにアクセスされたことによって、図１６のステップＳ７０９でコピーされて生成された領域であり、前述した「代替領域」に相当する。
データ処理装置１５０は、図１３で説明したような構成を備え、プログラムを実行する際のアドレス変換などを担う。
本実施の形態では、第１の実施の形態の動作を説明した図４Ａ及び図４ＢのＯＳ起動部分（Ｓ１０３）に、ＯＳの主記憶イメージを用いた高速起動方式を用いる。また、本実施の形態では、主記憶初期化手段１３３の処理内容が第１の実施の形態と異なる。すなわち、第１の実施の形態と同様、ＯＳに対し既に使用されているブロックを認識させる必要があるが、主記憶イメージはすでに主記憶領域の初期化を終了したものとみなすことができる。よって、第１の実施の形態における主記憶領域初期化手段１３３とは異なり、ブロック識別子４００のための領域を主記憶上に確保する（Ｓ２０２）必要がなく、すでに存在するブロック識別子に関して使用されているか否かを確認するのみでよい。また、第１の実施の形態と同様に、退避領域使用サイズ２０１とプロセスが使用しているブロックのリストは事前に知っておく必要がある。
図１９に本実施の形態における主記憶初期化手段１３３のフローチャートを示す。第１の実施の形態との違いは、ブロック識別子のための主記憶領域を用意し０で初期化するか（Ｓ２０４）、すでに存在するブロック識別子を検索するか（Ｓ９０４）である。
本実施の形態によれば、ＯＳの起動にＯＳ起動イメージを利用するため、ＯＳ起動時の初期化処理および転送速度の遅い補助記憶装置からの入出力をなくすことができるので、第１の実施の形態よりもさらに高速な再起動を実現することができる。勿論、常に再起動されるのはＯＳだけであり、再起動前に実行中のアプリケーションは、再起動フラグの値に応じて、再起動されるか、継続運用されるかが決定される。
本実施の形態は、第１の実施の形態に主記憶イメージによる高速起動方式を適用したものであるが、第１の実施の形態の変形例（図７）または第２の実施の形態に主記憶イメージによる高速起動方式を適用し、ＯＳの再起動の高速化を図るようにすることもできる。
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。
図２０を参照すると、本発明の第４の実施の形態にかかる情報処理装置１００ｄは、図２の第１の実施の形態にかかる情報処理装置１００と比較して、再起動フラグ設定手段１３４に代えて、再起動設定受付手段２２０、再起動プロセスＩＤテーブル２２１及び再起動フラグ設定手段２２２を備えている点で相違する。
再起動設定受付手段２２０は、ユーザから再起動するプロセスのプロセスＩＤをキーボード等を通じて受け付け、再起動プロセスＩＤテーブル２２１に保存する手段である。再起動フラグ設定手段２２２は、第１の実施の形態における再起動フラグ設定手段１３４と同様に、プロセス情報退避手段１３１によって退避領域１２４に生成されたプロセス情報退避領域１２５に設けられた再起動フラグ２０４の設定を、システム終了までの任意の時間に行う手段であるが、再起動プロセスＩＤテーブル２２１にプロセスＩＤが保存されたユーザ指定の再起動プロセスだけでなく、その再起動プロセスと同じアプリケーションに属するすべてのプロセスの再起動フラグ２０４をサーチし、これらのプロセスの再起動フラグ２０４も同様に設定する機能を有する。
一般に、複数のプロセスによってアプリケーションが構成される場合、それら複数のプロセスには、同じプロセスグループＩＤが付与され、プロセス表２０２の１エントリに保存される。従って、或るプロセスと同じアプリケーションに属する他のプロセスがどれであるかは、プロセス表２０２に保存されているプロセスグループＩＤを調べることで可能である。
図２１に再起動フラグ設定手段２２２の処理のフローチャートを示す。まず再起動フラグ設定手段２２２は、再起動プロセスＩＤテーブル２２１にプロセスＩＤが保存されている１つのプロセスに注目し（ステップＳ１００１）、そのプロセスに対応するプロセス情報退避領域１２５の再起動フラグ２０４をアクセスし、立っていなければ立てる（ステップＳ１００２）。次に、注目中のプロセスのプロセス表２０２からプロセスグループＩＤを取得し（ステップＳ１００３）、他のプロセス情報退避領域１２５のプロセス表２０２のプロセスグループＩＤを調べて、同じプロセスグループＩＤを持つ他のプロセスすべてを検索する（ステップＳ１００４）。そして、検索したすべてのプロセスのプロセス情報退避領域１２５の再起動フラグ２０４をアクセスし、立っていなければ立てる（ステップＳ１００５）。次に、再起動プロセスＩＤテーブル２２１にプロセスＩＤが保存されている他の１つのプロセスに注目を移し（ステップＳ１００６）、ステップＳ１００２に戻って上述した処理と同様の処理を繰り返す。再起動プロセスＩＤテーブル２２１に保存されたすべてのプロセスＩＤに注目した処理を終えた時点で（ステップＳ１００７でＹＥＳ）、処理を終える。
このように本実施の形態によれば、ユーザは、アプリケーションを構成する複数のプロセスのうち少なくとも１つのプロセスを再起動プロセスとして指定しておけば、残りのプロセスを再起動プロセスとして明示的に指定しなくても、自動的に再起動プロセスとして処理される。通常のアプリケーションは複数のプロセスから構成されることが多く、１つのアプリケーションを構成する複数のプロセスをこのように一括管理して再起動の設定を施すことで、個々のプロセスごとに再起動の設定を施すという煩雑な作業からユーザを解放することができる。また、再起動後にアプリケーションを構成するプロセスが足りない（アプリケーションの中の１つのプロセスのみ再起動してしまった。）などというミスを防ぐことができる。
本実施の形態は、第１の実施の形態を前提としたが、同様の考えを第２の実施の形態あるいは第３の実施の形態に対して適用することが可能である。
次に本発明の第１の実施例を、図面を参照して説明する。かかる実施例は本発明における第１の実施の形態に対応するものである。
本実施例は具体的なＯＳの例として、Ｌｉｎｕｘを使用する。
Ｌｉｎｕｘにおいて、プロセスを管理するためにカーネルが持っている情報としては、プロセスディスクリプタと、このプロセスディスクリプタに付随する他の構造体がある。プロセスディスクリプタは、プロセスを実行するために必要なほとんどの情報を保持している。他の構造体とは、例えばファイルをオープンしていれば、ファイル構造体、ソケットをオープンし、他の計算機と通信を行えば、ソケット構造体がプロセスディスクリプタに付随する。プロセスディスクリプタには、これら付随する構造体へのポインタが格納されている。これらプロセスディスクリプタと付随する構造体が、図３のプロセス表２０２にあたる。
また、Ｌｉｎｕｘでは、主記憶領域１２０をページという単位で管理している。プロセスの使用している主記憶領域１２０は複数のページから構成され、複数のページをまとめて管理するためにプロセス１つにつき１つのページテーブルがＯＳにより用意される。このページテーブルが、ブロックテーブル２０３にあたる。
プロセスを途中で中断し、再起動後にプロセスを継続実行するには、上記のプロセスディスクリプタ、ページテーブル、プロセスの使用メモリ領域のほかに、当該プロセスが実行中であれば、ＣＰＵ内のレジスタに格納されているデータが必要となる。マルチタスクＯＳではプロセスを複数同時に実行するためにプロセス切り替えを行っている。
プロセス切り替えによって、実行を一時中断されたプロセスのＣＰＵ内のデータは、タスク状態セグメントとカーネルモードスタックに分割して格納される。タスク状態セグメントは、プロセスディスクリプタの中にあるエントリの一つであり、カーネルモードスタックは、プロセスが使用しているメモリ領域の一部である。プロセスを再開するときは、タスク状態セグメントと、カーネルモードスタックから中断されたときのＣＰＵレジスタの状態を復元し実行を再開する。
プロセス情報退避手段１３１では、上記に記載したプロセスに関する情報（プロセスディスクリプタ、ページテーブルなど）をプロセス情報退避領域１２５に退避させることである。図２２はプロセス情報退避手段１３１のＬｉｎｕｘでの処理を表している。
生成された全てのプロセスのためのプロセスディスクリプタは、リスト構造になっており、プロセスディスクリプタの先頭アドレスは、ｉｎｉｔ＿ｔａｓｋという変数に収められている。まず、ｉｎｉｔ＿ｔａｓｋからプロセスディスクリプタのアドレスを取得する（ステップＳ１３０１）。次にプロセス情報退避領域１２５を主記憶上に確保し（ステップＳ１３０２）、プロセスディスクリプタを作成したプロセス情報退避領域１２５にコピーする（ステップＳ１３０３）。同様に、プロセスディスクリプタに付随する他の構造体、ページテーブルもプロセス情報退避領域１２５にコピーする（ステップＳ１３０４、Ｓ１３０５）。プロセス情報退避領域１２５を単方向リスト２０５に登録し（ステップＳ１３０６）、退避領域使用サイズ２０１に使用した主記憶サイズを足す（ステップＳ１３０７）。
以上でプロセス情報退避手段１３１の一度の処理が終了する。この処理を生成されたプロセス全てについて実行する。プロセス全てについてプロセス情報退避領域１２５を作成したのちＬｉｎｕｘを通常終了させる。
システム起動時は主記憶初期化とプロセス復元の二つの処理を行う。
Ｌｉｎｕｘでは、主記憶をページという単位で管理している。ページにはページディスクリプタとよばれる当該ページに関する情報を格納している領域があり、起動時にＬｉｎｕｘでは、Ｌｉｎｕｘ自身とハードウェアによって使用されている領域を除き、すべての主記憶領域１２０をページ単位に分割し、その各々にページディスクリプタを割り当てることで、利用できる主記憶領域１２０の初期化を行う。このような処理は、主記憶領域１２０をある単位（ページやセグメントなど）で管理しているＯＳに共通する処理である。主記憶初期化処理の時点で、再起動を行わないプロセスについては、当該プロセスが使用している主記憶空間をＯＳに認識させる必要がある。本実施例におけるページは、第１の実施の形態におけるブロックに相当し、ページディスクリプタはブロック識別子４００に相当する。
Ｌｉｎｕｘは、上述したとおり主記憶領域１２０をページという単位で管理しており、主記憶上のページの一つ一つにページディスクリプタが存在する。Ｌｉｎｕｘでは、このページディスクリプタの初期化作業をもって、主記憶領域１２０の初期化としている。Ｌｉｎｕｘの実装では、ページディスクリプタは、ＯＳ予約領域と呼ばれるＯＳをメモリ上に展開するために用意された領域の直後に配置され、固定長である。よって、再起動後もページディスクリプタを配置している主記憶上の位置、大きさは変わらない。また、主記憶領域１２０のページが使用されているかどうかは、ページディスクリプタ内のｃｏｕｎｔ変数によって管理されている。ｃｏｕｎｔ変数が１以上の時に当該ページは使用されていることになる。共有メモリを使用する複数のプロセスは、１つのページを複数のプロセスで使用することになる。このような場合には、ｃｏｕｎｔ変数は１以上の値をとることになる。
図２３に本実施例における主記憶初期化手段１３３の処理を示す。まず、退避領域１２４の使用している主記憶領域１２０を退避領域使用サイズ２０１から確認しておく（ステップＳ１４０１）。次に退避領域１２４内にある全てのプロセス情報退避領域１２５内のページテーブルを検索し、どのページがどのプロセスによって利用されてるかどうかを調べておく（ステップＳ１４０２）。調べた結果は、ページディスクリプタ番号と使用しているプロセス数のテーブルにして保持しておく。
主記憶領域１２０の最初のアドレス（厳密には、ＯＳの予約領域の直後のアドレス）から、ページディスクリプタを設置していく。指定されたアドレスにつき一つのディスクリプタ領域を用意し０で初期化する（ステップＳ１４０４）。次に、指定されたアドレスが退避領域１２４に格納されているページテーブルで使用されているかを確認する（ステップＳ１４０５）。確認には上記にて調べたページディスクリプタ番号と使用しているプロセス数のテーブルを利用する。使用していれば（ステップＳ１４０６のＹＥＳ）、ページディスクリプタ内のｃｏｕｎｔ変数に使用しているプロセス数を代入する（ステップＳ１４０７）。使用していない場合（ステップＳ１４０６のＮＯ）もしくはステップＳ１４０７の処理を終了すると、次のページディスクリプタの初期化に移る。利用できるすべての主記憶領域１２０を初期化すると（ステップＳ１４０３のＹＥＳ）、主記憶初期化手段１３３の処理が完了する。
プロセス復元手段１３２は、プロセスディスクリプタおよび付随する他の構造体ならびにページテーブルを復元のために用意したＯＳデータ領域１２２にコピーすることであり、実施の形態１に記載したプロセス復元処理と同様である。
次に、第２の実施の形態について実施例を以下に示す。
図２４はプロセス生成時のプロセス退避情報作成手段１３５の処理内容を示している。
ユーザによりプログラムの実行要求がＯＳに指示されると、ＯＳはプロセスを生成する。ここでは、ある一つのプロセスの名称としてプロセスＡと呼ぶ。プロセスＡが生成され、プロセスディスクリプタがプロセス実行キューに登録されることで初めてプロセスＡが実行される。プロセス退避情報生成手段１３５は、プロセス実行キューに当該プロセスが登録される前に実行する。プロセスＡが生成された時点で、プロセスディスクリプタが格納されているアドレスは、すでにＯＳが保持している（ＯＳ内の一時変数に生成したプロセスＡのプロセスディスクリプタが格納されている）。よって、プロセスディスクリプタのアドレスを取得する処理は行わない。まず最初にプロセスＡの退避情報を格納する領域をメモリ上に確保する（ステップＳ１５０１）。次に、プロセスＡのプロセスディスクリプタを確保したプロセス情報退避領域１２５にコピーする（ステップＳ１５０２）。さらにプロセスディスクリプタに付随する他の構造体（ファイル構造体、ソケット構造体など）を同退避領域１２５にコピーする（ステップＳ１５０３）。次に、プロセスＡのページテーブルを同退避領域１２５にコピーする（ステップＳ１５０４）。ページテーブルが置かれているアドレスは、プロセスディスクリプタ中のメモリディスクリプタに格納されているので、それを参照する。最後に同退避領域１２５を退避領域リストに登録し、退避領域サイズに使用した主記憶サイズを足す（ステップＳ１５０５、Ｓ１５０６）。
図２５にプロセス退避情報更新手段１３６の処理内容を示す。更新処理は、プロセス切り替えに関する処理がすべて終了し、次に実行されるプロセスのレジスタ情報がタスク状態セグメントから復元される前に行う。プロセスＡのプロセス情報退避領域１２５の更新処理を行う前に、まずユーザから当該プロセスを再起動するかどうかの命令を受け取っているかを確認する。この命令はシステムコールとして実装されてもよいし、他の方法を使っても良い。ユーザから当該プロセスを再起動するとの指示があると（ステップＳ１６０１のＹＥＳ）、更新処理としては、プロセスＡのプロセス情報退避領域１２５にある再起動フラグ２０３を立てて、処理を終了する（ステップＳ１６０７）。ユーザから再起動が指示されていなければ（ステップＳ１６０１のＮＯ）、以下のように処理を行う。
まず、プロセスＡのスタックポインタよりプロセスディスクリプタのアドレスを取得する（ステップＳ１６０２）。次に、退避領域１２４からプロセスＡのプロセス情報退避領域１２５のアドレスを取得する。図３における退避領域１２４のデータ構造を参照するとわかるように、退避領域１２４は、各プロセスのプロセス情報退避領域１２５をリストで管理している。よって、一番先頭（リストの最初のプロセス情報退避領域１２５）のアドレスを取得し、つぎにリストを探索していくことで目的のプロセスのプロセス情報退避領域１２５のアドレスが取得できる。現在、アクセスしている退避領域１２４がどのプロセスのプロセス情報退避領域１２５かを確認するには、プロセス生成時点でコピーされているプロセスディスクリプタ内のプロセスＩＤを見ればよい。プロセスＡの退避領域１２４のアドレスを取得できれば、次にプロセスＡのプロセスディスクリプタと付随する構造体をプロセスＡのプロセス情報退避領域１２５にコピーする（ステップＳ１６０４、Ｓ１６０５）。最後に、ページテーブルをコピーする（ステップＳ１６０６）。
プロセス終了時のプロセス情報退避領域解放手段１３７の処理内容は、第２の実施の形態と同様である。まず、退避領域１２４のリストからプロセスＡのプロセス情報退避領域１２５のアドレスを取得する。アドレスが取得できたら、プロセス情報退避領域１２５をリストから削除し、領域を解放する。その後プロセスの終了処理を行う。
以上でＯＳの持つプロセス情報の退避処理がすべて完了する。このように計算機システムの運用中に退避情報を作成しておくことで、再起動時には終了処理を行わなくてすむ。よって、終了処理に伴う補助記憶装置へのアクセスの削減に伴って再起動時間の短縮が実現できる。
【産業上の利用可能性】  本発明の第１の効果は、システムの終了時間を削減できることにある。その理由は次の通りである。システムの終了処理とは、ＯＳの終了処理とアプリケーションの終了処理から構成される。ＯＳは通常終了することになるが、アプリケーションの終了処理に関しては、当該アプリケーションを構成するプロセスのプロセス表などのプロセス情報を主記憶上の退避領域に退避させているだけである。よって、アプリケーションの終了処理に伴う転送速度の遅い補助記憶装置に対するアクセスを軽減することになるので、システムの終了時間を短縮することができる。
本発明の第２の効果は、再起動後も再起動前に運用していたアプリケーションを継続実行できることにある。その理由は、再起動前にＯＳの使用している主記憶上よりプロセス表などのプロセス情報を退避し、再起動後にはＯＳの使用している主記憶上にプロセス表などのプロセス情報を復元するため、プロセス表を退避、復元したプロセスは、実行を中断、再開したに過ぎず、あたかも継続運用されているように見えるためである。よって、障害の発生していないアプリケーションは、サービスを継続提供することができる。
よって、本発明によれば、再起動時にユーザへのサービスを中断することがないので、長時間連続運用が求められる大規模アプリケーションサーバーといった用途に適用できる。また、通常のパーソナル情報処理装置上のＯＳ、たとえばＷｉｎｄｏｗｓなどにおけるレジストリ書き換えによる再起動の際にも、ユーザの作業状況はそのままに、ＯＳのみ再起動することにより書き換えたレジストリ情報を反映させるような用途として適用可能である。
【図１】
0004683218.tif 000002
【図２】
0004683218.tif 000003
【図３】
0004683218.tif 000004
0004683218.tif 000005
0004683218.tif 000006
【図５】
0004683218.tif 000007
【図６】
0004683218.tif 000008
【図７】
0004683218.tif 000009
【図８】
0004683218.tif 000010
【図９】
0004683218.tif 000011
【図１０】
0004683218.tif 000012
【図１１】
0004683218.tif 000013
【図１２】
0004683218.tif 000014
【図１３】
0004683218.tif 000015
【図１４】
0004683218.tif 000016
【図１５】
0004683218.tif 000017
【図１６】
0004683218.tif 000018
【図１７】
0004683218.tif 000019
【図１８】
0004683218.tif 000020
【図１９】
0004683218.tif 000021
【図２０】
0004683218.tif 000022
【図２１】
0004683218.tif 000023
【図２２】
0004683218.tif 000024
【図２３】
0004683218.tif 000025
【図２４】
0004683218.tif 000026
【図２５】
0004683218.tif 000027