プログラムの実行順序上の所定地点をスナップショットポイントとして設定するスナップショットポイント設定部と、前記スナップショットポイントまで前記プログラムを実行する第1実行部と、前記スナップショットポイントまでの前記プログラムの実行結果を保存するスナップショットイメージ保存部と、を含むことを特徴とするプログラム設置及び実行装置。前記スナップショットポイントまでの実行結果をローディングするスナップショットイメージローディング部と、前記ローディングされたスナップショットイメージに基づいて、前記プログラムのスナップショットポイント以後の残りの部分を実行する第2実行部と、を含むことを特徴とする請求項1に記載のプログラム設置及び実行装置。前記スナップショットポイント設定部は、前記プログラムの実行順序のうち、システム実行環境に実質的に影響を受ける部分を検出し、該検出された部分に基づいて、前記スナップショットポイントの設定位置を決定することを特徴とする請求項1に記載のプログラム設置及び実行装置。前記システム実行環境に実質的に影響を受ける部分は、前記プログラムの初期化関数のうち、システムコールを使う初期化関数の実行順序に対応することを特徴とする請求項3に記載のプログラム設置及び実行装置。前記初期化関数は、前記プログラムのメイン関数の実行前に実行される全域クラス生成子または共有ライブラリーの初期関数を含むことを特徴とする請求項4に記載のプログラム設置及び実行装置。前記スナップショットポイント設定部は、前記プログラムの実行順序上で、システムコールの使用如何によって、システム実行環境に実質的に影響を受ける部分を検出する依存性分析部と、前記システム実行環境に実質的に影響を受ける部分の実行順序を調節する再配列部と、を含むことを特徴とする請求項1に記載のプログラム設置及び実行装置。前記プログラムは、システム実行環境に実質的に影響を受けない独立関数と前記システム実行環境に実質的に影響を受ける従属関数とを含み、前記再配列部は、前記独立関数が、前記従属関数より相対的に先に実行または先に呼び出されるように、前記独立関数及び前記従属関数の実行順序を調節することを特徴とする請求項6に記載のプログラム設置及び実行装置。前記プログラムは、設置されたプログラムまたは設置後の更新されたプログラムを含むことを特徴とする請求項1に記載のプログラム設置及び実行装置。前記実行結果は、前記プログラムが、前記スナップショットポイントまで実行された時までのレジストリ情報及びメモリ情報を含むことを特徴とする請求項1に記載のプログラム設置及び実行装置。前記実行結果は、不揮発性メモリに保存されることを特徴とする請求項1に記載のプログラム設置及び実行装置。プログラムの実行順序上で、システムコールの使用如何によって、システム実行環境に実質的に影響を受ける部分を検出する依存性分析部と、前記システム実行環境に実質的に影響を受ける部分の実行順序を調節する再配列部と、を含むことを特徴とするプログラムコンパイラ。プログラムの実行順序上の所定部分をスナップショットポイントとして設定する段階と、前記スナップショットポイントまで前記プログラムを実行する段階と、前記スナップショットポイントまでの前記プログラムの実行結果を保存する段階と、を含むことを特徴とするプログラム設置及び実行方法。前記保存された実行結果をローディングする段階と、前記ローディングされた実行結果に基づいて、前記プログラムのスナップショットポイント以後の残りの部分を実行する段階と、をさらに含むことを特徴とする請求項12に記載のプログラム設置及び実行方法。前記スナップショットポイントを設定する段階は、前記プログラムの実行順序のうち、システム実行環境に実質的に影響を受ける部分を検出し、該検出された部分に基づいて、前記スナップショットポイントの位置を決定する過程を含むことを特徴とする請求項12に記載のプログラム設置及び実行方法。前記システム実行環境に実質的に影響を受ける部分は、前記プログラムの初期化関数のうち、システムコールを使う初期化関数の実行順序に対応することを特徴とする請求項14に記載のプログラム設置及び実行方法。前記初期化関数は、前記プログラムのメイン関数の実行前に実行される全域クラス生成子または共有ライブラリーの初期関数を含むことを特徴とする請求項15に記載のプログラム設置及び実行方法。前記プログラムは、システム実行環境に実質的に影響を受けない独立関数と前記システム実行環境に実質的に影響を受ける従属関数とを含み、前記スナップショットポイントを設定する段階は、前記独立関数が、前記従属関数より相対的に先に実行または先に呼び出されるように、前記独立関数及び前記従属関数の実行順序を調節した後、前記スナップショットポイントの設定位置を決定する過程を含むことを特徴とする請求項12に記載のプログラム設置及び実行方法。前記プログラムは、設置されたプログラムまたは設置後の更新されたプログラムを含むことを特徴とする請求項12に記載のプログラム設置及び実行方法。前記実行結果は、前記プログラムが、前記スナップショットポイントまで実行された時までのレジストリ情報及びメモリ情報を含むことを特徴とする請求項12に記載のプログラム設置及び実行方法。前記実行結果は、不揮発性メモリに保存されることを特徴とする請求項12に記載のプログラム設置及び実行方法。前記プログラムは、スナップショットイメージを生成するために、前記プログラムの設置過程で実行されることを特徴とする請求項12に記載のプログラム設置及び実行方法。前記プログラムの実行結果は、前記プログラムの更新によって更新及び再生成されることを特徴とする請求項12に記載のプログラム設置及び実行方法。前記プログラムの実行結果は、前記プログラムの更新によって無効化されることを特徴とする請求項12に記載のプログラム設置及び実行方法。前記各段階が実行される時点に対応するスナップショットタイミングは、前記プログラムのシステムコールに基づいて決定されることを特徴とする請求項12に記載のプログラム設置及び実行方法。ソース/バイナリ静的解析ツールを用いてシステムコールの発生位置を確認することを特徴とする請求項12に記載のプログラム設置及び実行方法。運用体制のシステムコールインターフェースを通じてシステムコールの発生を確認することを特徴とする請求項12に記載のプログラム設置及び実行方法。初期化関数は、スナップショットタイミングを遅延させるために再位置されることを特徴とする請求項12に記載のプログラム設置及び実行方法。初期化関数を再位置するために静的解析ツールを用いて自動化ツールが新たに形成されることを特徴とする請求項12に記載のプログラム設置及び実行方法。初期化関数を再位置させるためにプログラムバイナリが訂正されることを特徴とする請求項12に記載のプログラム設置及び実行方法。スナップショットイメージが無効化されることによって対応するスナップショットイメージが再生成されることを特徴とする請求項12に記載のプログラム設置及び実行方法。プログラムの実行順序上の所定部分をスナップショットポイントとして設定する段階と、前記スナップショットポイントまで前記プログラムを実行する段階と、前記スナップショットポイントまでの前記プログラムの実行結果を保存する段階と、を含むことを特徴とするプログラム設置及び実行方法が記録されたコンピュータで判読可能な記録媒体。前記保存された実行結果をローディングする段階と、前記ローディングされた実行結果に基づいて、前記プログラムのスナップショットポイント以後の残りの部分を実行する段階と、をさらに含むことを特徴とする請求項31に記載の記録媒体。前記スナップショットポイントを設定する段階は、前記プログラムの実行順序のうち、システム実行環境に実質的に影響を受ける部分を検出し、該検出された部分に基づいて、前記スナップショットポイントの位置を決定する過程を含むことを特徴とする請求項31に記載の記録媒体。前記システム実行環境に実質的に影響を受ける部分は、前記プログラムの初期化関数のうち、システムコールを使う初期化関数の実行順序に対応することを特徴とする請求項31に記載の記録媒体。前記初期化関数は、前記プログラムのメイン関数の実行前に実行される全域クラス生成子または共有ライブラリーの初期関数を含むことを特徴とする請求項31に記載の記録媒体。前記プログラムは、システム実行環境に実質的に影響を受けない独立関数と前記システム実行環境に実質的に影響を受ける従属関数とを含み、前記スナップショットポイントを設定する段階は、前記独立関数が、前記従属関数より相対的に先に実行または先に呼び出されるように、前記独立関数及び前記従属関数の実行順序を調節した後、前記スナップショットポイントの設定位置を決定する過程を含むことを特徴とする請求項31に記載の記録媒体。前記プログラムは、設置されたプログラムまたは設置後の更新されたプログラムを含むことを特徴とする請求項31に記載の記録媒体。前記実行結果は、前記プログラムが、前記スナップショットポイントまで実行された時までのレジストリ情報及びメモリ情報を含むことを特徴とする請求項31に記載の記録媒体。プログラムの実行順序上の特定の位置をスナップショットポイントとして設定するスナップショットポイント設定部と、前記スナップショットポイントまで前記プログラムを実行する第1実行部と、前記プログラムのスナップショットポイント以後の残りの部分を実行する第2実行部と、を含むことを特徴とするプログラム実行装置。前記プログラムは、システム実行環境に独立した独立関数と、前記システム実行環境に依存的な従属関数と、を含み、前記プログラム実行装置は、前記独立関数が、前記従属関数より先に実行または呼び出されるように、前記独立関数及び前記従属関数の実行順序を調節する再配置部をさらに含むことを特徴とする請求項39に記載のプログラム実行装置。前記プログラムは、設置されたプログラムまたは更新されたプログラムを含むことを特徴とする請求項39に記載のプログラム実行装置。前記プログラムの実行結果は、前記スナップショットポイントまで実行されたプログラムのレジストリ情報及びメモリ情報のうち少なくとも一つを含むことを特徴とする請求項39に記載のプログラム実行装置。前記プログラムの実行結果は、不揮発性メモリに保存されることを特徴とする請求項39に記載のプログラム実行装置。プログラムの実行順序上の特定の位置をスナップショットポイントとして設定する段階と、前記スナップショットポイントまで前記プログラムを実行する段階と、前記プログラムのスナップショットポイント以後の残りの部分を実行する段階と、を含むことを特徴とするプログラム実行方法。前記プログラムは、システム実行環境に独立した独立関数と、前記システム実行環境に依存的な従属関数と、を含み、前記プログラム実行装置は、前記独立関数が、前記従属関数より先に実行または呼び出されるように、前記独立関数及び前記従属関数の実行順序を調節する段階をさらに含むことを特徴とする請求項44に記載のプログラム実行方法。前記プログラムは、設置されたプログラムまたは更新されたプログラムを含むことを特徴とする請求項44に記載のプログラム実行方法。前記プログラムの実行結果は、前記スナップショットポイントまで実行されたプログラムのレジストリ情報及びメモリ情報のうち少なくとも一つを含むことを特徴とする請求項44に記載のプログラム実行方法。本発明は、プログラムコンパイラ、プログラム設置装置、及びプログラム設置方法を提供することを目的とする。本発明の一態様による装置は、プログラムの実行順序上の所定地点をスナップショットポイントとして設定するスナップショットポイント設定部と、前記スナップショットポイントまで前記プログラムを実行する第1実行部と、前記スナップショットポイントまでの前記プログラムの実行結果を保存するスナップショットイメージ保存部と、を含みうる。本発明の一態様によるコンパイラは、プログラムの実行順序上で、システムコールの使用如何によって、システム実行環境に実質的に影響を受ける部分を検出する依存性分析部と、前記システム実行環境に実質的に影響を受ける部分の実行順序を調節する再配列部と、を含みうる。本発明の一態様による方法は、プログラムの実行順序上の所定部分をスナップショットポイントとして設定する段階と、前記スナップショットポイントまで前記プログラムを実行する段階と、前記スナップショットポイントまでの前記プログラムの実行結果を保存する段階と、を含みうる。本発明の一態様によるコンピュータで判読可能な記録媒体は、プログラムの実行順序上の所定部分をスナップショットポイントとして設定する段階と、前記スナップショットポイントまで前記プログラムを実行する段階と、前記スナップショットポイントまでの前記プログラムの実行結果を保存する段階と、を含むプログラム設置及び実行方法が記録されうる。本発明の他の態様による装置は、プログラムの実行順序上の特定の位置をスナップショットポイントとして設定するスナップショットポイント設定部と、前記スナップショットポイントまで前記プログラムを実行する第1実行部と、前記プログラムのスナップショットポイント以後の残りの部分を実行する第2実行部と、を含みうる。本発明の他の態様による方法は、プログラムの実行順序上の特定の位置をスナップショットポイントとして設定する段階と、前記スナップショットポイントまで前記プログラムを実行する段階と、前記プログラムのスナップショットポイント以後の残りの部分を実行する段階と、を含みうる。以下、添付した図面を参照して、本発明の実施のための具体的な例を詳しく説明する。図1は、本発明の一実施形態によるプログラム設置及び実行装置を示す図である。図1を参照すると、プログラム設置及び実行装置100は、スナップショットポイント設定部101、実行部102、スナップショットイメージ保存部103、及びローディング部104を含む。スナップショットポイント設定部101は、プログラムの実行順序のうち、特定の部分をスナップショットポイントsnapshotpointとして設定する。スナップショットポイントとは、プログラムの部分実行地点に対応する。例えば、実行部102が、一連の関数または、コードで構成されたプログラムを実行する時、実行部102は、スナップショットポイント設定部101の制御命令によって設定されたスナップショットポイントまでにプログラムを部分的に実行させることができる。スナップショットポイント設定部101は、プログラムの実行順序でシステム実行環境に依存的な部分を検出し、該検出されたシステム実行環境に依存的な部分に基づいてスナップショットポイントの設定位置を決定する。システム実行環境とは、運用体制及びプログラムの初期入力値などになり、システム実行環境に依存的な部分は、このような初期入力値などに影響を受ける関数またはコードになりうる。例えば、あるプログラムが、A関数、B関数、C関数、及びD関数の順序で実行され、C関数が、システム実行環境に依存的な関数であると仮定すれば、スナップショットポイント設定部101は、B関数の実行完了地点またはC関数の実行開始地点をスナップショットポイントの設定位置として決定することができる。スナップショットポイント設定部101は、プログラムを構成する関数のシステムコールの使用如何によって、システム実行環境に依存的な部分を検出することができる。例えば、スナップショットポイント設定部101は、プログラムを構成する関数を分析してシステムコールを使う関数を検出し、システムコールを使う関数が実行される部分をシステム実行環境に依存性がある部分として検出することができる。第1実行部112は、スナップショットポイント設定部101によって設定されたスナップショットポイントまでプログラムの一部分を実行する。例えば、あるプログラムが、A関数、B関数、C関数、及びD関数の順序で実行され、B関数の実行完了地点またはC関数の実行開始地点がスナップショットポイントとして設定された場合、第1実行部112は、全体プログラムでA関数及びB関数のみ実行することができる。スナップショットイメージ保存部103は、第1実行部112の部分実行結果であるスナップショットイメージを生成し、該生成されたスナップショットイメージを保存する。スナップショットイメージは、プログラムがスナップショットポイントまで実行された時の結果値、レジストリ情報、及びメモリ情報などを含みうる。生成されたスナップショットイメージは、不揮発性メモリに保存することができる。不揮発性メモリとしては、PRAMPhase-changeMemory、MRAMMagneticRandomAccessMemory、FRAMFerroelectricRandomAccessMemoryなどが使われる。ローディング部104は、スナップショットイメージ保存部103でスナップショットイメージをローディングする。ローディング部104は、ユーザの実行要請または実行命令がある場合に、スナップショットイメージをローディングすることができる。第2実行部122は、ローディング部104がローディングしたスナップショットイメージに基づいてプログラムの残りの部分、すなわち、スナップショットポイント以後の部分を実行する。例えば、A関数、B関数、C関数、及びD関数の順序で実行され、B関数の実行完了地点またはC関数の実行開始地点がスナップショットポイントとして設定された場合、プログラムが設置されるやいなや第1実行部112は、全体プログラムでA関数及びB関数のみ実行し、第2実行部122は、設置以後のユーザの実行命令によって残りのC関数及びD関数を実行することができる。このように、プログラム設置及び実行装置100は、あるプログラムを即時実行される形態で設置することが可能である。すなわち、スナップショットポイントは、システム実行環境を考慮してその位置が決定されるために、プログラムが設置されるやいなやスナップショットポイントまであらかじめ実行させ、以後の実行要請に対しては、スナップショットイメージに基づいてスナップショットポイント以後を実行することができる。したがって、設置されたプログラムまたは更新によって再設置されたプログラムの初期起動時間を減らすことができる。図2は、本発明の一実施形態によるスナップショットポイント設定部を示す図である。図2を参照すると、スナップショットポイント設定部101は、依存性分析部201、再配列部202及び位置決定部203を含む。依存性分析部201は、プログラムを構成する関数またはコードに対するシステム実行環境の依存性を分析する。本実施形態で、システム実行環境に依存性がある関数またはコードを従属関数であると指称し、システム実行環境に依存性がない関数またはコードを独立関数であると指称する。あるプログラムが、メイン関数とメイン関数の進入前の初期化関数で構成された場合、初期化関数は、システム実行環境の依存性によって独立関数と従属関数とに区分することができる。初期化関数は、メイン関数の実行前に実行または呼び出される全域クラス生成子または共有ライブラリーの初期関数などになりうる。ある初期化関数が、独立関数であるか、または従属関数であるかは、その初期化関数が、システムコールを使用するか否かによって決定されうる。例えば、システムメモリ量によって相異なる経路に分岐される関数の場合、システム実行環境に影響を受ける従属関数になりうる。依存性分析部201は、システムコールの使用如何によって、プログラムの実行順序でシステム実行環境に依存的な部分を検出することができる。再配列部202は、依存性分析部201が分析した初期化関数に対するシステム実行環境の依存性に基づいてシステム実行環境に影響を受ける初期化関数が最大限遅く実行されるように、初期化関数の実行順序を変更する。例えば、メイン関数の進入前に、A関数、B関数、C関数、及びD関数などの初期化関数が存在し、そのうち、B関数が、システム実行環境に影響を受ける従属関数であると仮定すれば、再配列部202は、B関数の実行順序または呼び出し順序をA関数、C関数、及びD関数の実行順序または呼び出し順序より裏側に位置させることができる。位置決定部203は、依存性分析部201が分析した初期化関数に対するシステム実行環境の依存性及び再配列部202の実行順序の調節に基づいてスナップショットポイントの設定位置を決定する。位置決定部203は、従属関数の実行開始地点をスナップショットポイントの設定位置として決定することができる。例えば、再配列部202によって初期化関数の実行順序が、A関数、C関数、D関数、及びB関数の順序で調節された場合、位置決定部203は、D関数の実行完了地点またはB関数の実行開始地点をスナップショットポイントの設定位置として決定することができる。図3は、本発明の一実施形態によるプログラム及びプログラムの実行順序を示す図である。図3を参照すると、プログラムは、初期化関数301とメイン関数302とを含む。メイン関数302は、プログラムの主要機能を実行する部分であり、初期化関数301は、メイン関数302の実行前に実行または呼び出される全域クラス生成子または共有ライブラリーの初期関数になりうる。プログラムが設置されれば、スナップショットポイント設定部101は、プログラムの実行順序でシステム実行環境に影響を受ける部分を検出する。例えば、A関数、B関数、C関数、及びD関数からなる初期化関数のシステムコールの有無を分析した結果、C関数が、システムコールを使う場合、スナップショットポイント設定部101は、C関数をシステム実行環境に影響を受ける従属関数として検出することができる。システム実行環境に影響を受ける部分が検出されれば、スナップショットポイント設定部101は、システム実行環境に影響を受ける部分に基づいてプログラムの部分実行地点であるスナップショットポイント303を設定する。例えば、スナップショットポイント設定部101は、従属関数として検出されたC関数の実行開始地点をスナップショットポイント303として設定することができる。スナップショットポイント303が設定されれば、第1実行部112は、スナップショットポイント303までプログラムを実行する。例えば、第1実行部112は、初期化関数301のうち、A関数及びB関数を実行することができる。スナップショットポイント303までプログラムが部分的に実行されれば、プログラムの部分実行結果であるスナップショットイメージが生成及び保存される。例えば、スナップショットイメージ保存部103は、A関数及びB関数が実行された時の結果値、レジストリ情報及びメモリ情報をスナップショットイメージとして生成して不揮発性メモリに保存することができる。以後、ユーザのプログラム実行要請または実行命令がある場合、ローディング部104は、保存されたスナップショットイメージをローディングし、第2実行部122がローディングされたスナップショットイメージに基づいて、C関数、D関数、及びメイン関数を実行することが可能である。図4A及び図4Bは、本発明の他の実施形態によるプログラム及びプログラムの実行順序を示す図である。図4Aを参照すると、プログラムは、初期化関数301とメイン関数302とを含む。初期化関数301及びメイン関数302は、図3から説明したものと同じである。図4Aで、プログラムが設置されれば、依存性分析部201は、プログラムの実行順序でシステム実行環境に影響を受ける部分を検出する。例えば、A関数、B関数、C関数、及びD関数からなる初期化関数のシステムコールの有無を分析した結果、C関数がシステムコールを使う場合、依存性分析部201は、C関数をシステム実行環境に影響を受ける従属関数として検出することができる。従属関数であるC関数が検出されれば、再配列部202は、初期化関数301の実行順序を調節する。例えば、図4Bのように、再配列部202は、従属関数として検出されたC関数がD関数より遅く実行されるように実行順序を変更する。図4Bで、初期化関数301の実行順序が調節されれば、位置決定部203は、依存性分析部201が検出した従属関数を用いてスナップショットポイント303の設定位置を決定する。例えば、位置決定部203は、従属関数であるC関数の実行開始地点をスナップショットポイント303として設定することができる。このように、プログラム設置及び実行装置100は、あるプログラムをシステム実行環境に影響を受けない部分をあらかじめ実行させて設置することができ、以後の実行要請に対しては、あらかじめ実行させた部分を省略し、その以後の部分から即時実行が可能であるので、プログラムの初期起動時間を減らすことができる。また、システム実行環境に依存性がある部分が最大限遅く実行されるように初期化関数の実行順序を調節するために、プログラムの初期起動時間をさらに短縮させることができる。図5は、本発明の一実施形態によるプログラム設置方法を示す図である。図5を参照すると、プログラム設置方法500は、あるプログラムが新たに設置される場合、または設置されたプログラムが更新によって再設置される場合、全てに適用可能である。図5で、プログラム設置方法500は、プログラム設置命令または更新命令によってプログラムが設置されれば開始される。理解の便宜上、プログラムの各種コードがシステムに保存される一般的な設置過程を第1設置過程であると名付ける。すなわち、プログラム設置方法500は、第1設置過程が完了されれば開始されうる。第1設置過程が完了されれば、本実施形態による第2設置過程が開始されるが、第2設置過程によってプログラム設置方法500は、スナップショットポイントを設定する501。スナップショットポイントは、第1設置過程を通じて設置されたプログラムの部分実行地点になりうる。例えば、スナップショットポイント設定部101が、初期化関数のシステムコールの使用如何を分析してシステム実行環境に依存的な部分をスナップショットポイントとして設定することができる。そして、プログラム設置方法500は、設定されたスナップショットポイントまでプログラムを実行する502。例えば、第1実行部112が、第1設置過程を通じて設置されたプログラムをシステム実行環境に影響を受けない部分まであらかじめ実行させることが可能である。そして、プログラム設置方法500は、スナップショットポイントまでのプログラム実行結果をスナップショットイメージとして生成及び保存する503。例えば、スナップショットイメージ保存部103が、第1実行部112の実行結果値、レジストリ情報及びメモリ情報を不揮発性メモリに保存することが可能である。スナップショットポイントは、システム実行環境に依存的な部分に基づいて設定されるので、第2設置過程を通じてシステム実行環境に影響を受けない部分があらかじめ実行され、即時実行可能な形態でプログラムが設置されることもある。図6は、本発明の一実施形態によるプログラム実行方法を示す図である。図6を参照すると、プログラム実行方法600は、図5のような過程を通じてプログラムが設置された以後に、ユーザの実行要請または実行命令がある場合に開始されうる。また、プログラム実行方法600は、任意のまたは定められた時間にスナップショットイメージを生成するためにプログラムのインストール段階で実行することもある。図6で、プログラム実行方法600は、ユーザの実行要請または実行命令によってスナップショットイメージをローディングする601。例えば、ローディング部104が、スナップショットイメージ保存部103でスナップショットイメージをローディングすることができる。そして、プログラム実行方法600は、ローディングされたスナップショットイメージが実行可能な形態であるか否かを判断する602。判断の結果、実行可能な形態であれば、スナップショットイメージを用いてプログラムを実行する603。例えば、第2実行部122が、ローディングされたスナップショットイメージに基づいてスナップショットポイント以後の残りのプログラム部分を実行することができる。判断の結果、実行可能な形態ではないならば、スナップショットイメージを再生成する604。スナップショットイメージを再生成する過程は、図5の過程による。生成されたスナップショットイメージは、プログラムが更新されることによって更新及び/または再生成されうる。また、生成されたスナップショットイメージは、プログラムが更新されることによって無効化され、再び生成されることもある。スナップショットタイミングは、プログラムのシステムコールに基づいて決定されうる。プログラマーは、ソースコードを訂正することができる。プログラマーは、システムコールの発生時間に関する情報を提供するためにヒントhintを提供することもできる。システムコールの発生位置は、ソース/バイナリ静的解析ツールを通じて分かる。システムコールの発生は、運用体制のシステムコールインターフェースを通じて確認されうる。初期関数は、スナップショットタイミングを遅延させるために再配置されうる。プログラマーは、初期関数が再配置されるようにソースを訂正することができる。初期関数の再配置のために、静的解析ツールを通じて自動化ツールが新たに形成されることもある。初期関数の再配置のためにプログラムバイナリが訂正されることもある。ソース例えば、ソースコード静的解析ツールは、応用プログラムのソースコードを有しているという仮定下で、プログラムソースをパージングして、システムコールsystemcallを呼び出す関数または間接的にシステムコールを呼び出すライブラリー関数libraryfunctionを探す方法を言う。バイナリ静的解析ツールは、応用プログラムの実行ファイルフォーマットex、ELF、COFFのコードセクションcodesectionを探してアセンブリー言語assemblylanguageを分析して、システムコールを呼び出す関数または間接的にシステムコールを呼び出すライブラリー関数を探す方法を言う。自動化ツールは、次のように動作することができる。1.関数の呼び出し時ごとに特定の関数を呼び出すモードでソースコードを再コンパイルするex、-finstrument-functioninGCC。2.プログラムを実行させ、1番から言及した特定の関数は、呼び出される度に如何なる関数が呼び出されたのかを記録する。3.プログラムの起動startupが完了されれば終了する。4.2番から得た関数をソースコードに基づいて分析して、順序が変わっても実行に問題にならなければex、全域の親子関係ではないクラスの生成子関数、当該関数のリストlistをリンカーlinkerに引き渡す。5.リンカーは、当該関数の呼び出し順序を裏側に来るように再配置する。開発者は、自身が使う関数がシステムの状態stateによって行動が変わる関数であるか否かが分かる。したがって、当該関数のソースコード上に、そのような関数が呼び出される直前システムに、その事実を知らせる特定の関数を挿入するか、またはそのような関数をプログラマーが、ソースコード上に特定のアトリビュートattributeで宣言してコンパイラに知らせ、コンパイラは、そのような関数をコンパイルする時、システムにその事実を知らせる特定の関数を挿入することが可能である。図7は、本発明の一実施形態によるコンピューティング装置を示す図である。図7を参照すると、コンピューティング装置700は、中央処理部701、入出力部702、及び保存部703を含む。本実施形態による中央処理部701は、プログラムを設置する時、プログラムの各種コードを保存部703に予備的に設置した後、予備的に設置したプログラムを部分的に実行してスナップショットイメージを生成し、該生成されたスナップショットイメージを保存してプログラムを最終的に設置する。保存部703は、メインメモリとハードディスクとに区分されることもある。本実施形態によって少なくとも保存部703のメインメモリは、不揮発性メモリとして形成される。したがって、スナップショットイメージが、保存部703に保存された後、保存部703への電源供給が遮断されても、スナップショットイメージは維持されうる。また、中央処理部701は、保存部703に保存されたスナップショットイメージを用いてプログラムを実行し、その実行結果を入出力部702を通じてユーザに提供する。図8は、本発明の一実施形態によるコンパイラを示す図である。図8を参照すると、コンパイラ800は、依存性分析部801、再配列部802、及び実行ファイル生成部803を含む。依存性分析部801は、プログラムを構成する関数またはコードに対するシステム実行環境の依存性を分析する。例えば、依存性分析部801は、プログラムを構成する関数がシステムコールを使用するか否かによって、システム実行環境に依存的な従属関数を検出することができる。再配列部802は、システム実行環境に依存的な従属関数の実行または呼び出し順序が最大限遅くなるように、関数の実行順序または呼び出し順序を調節する。実行ファイル生成部803は、調節された関数の実行順序または呼び出し順序に基づいてプログラムの実行ファイルを生成する。一方、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピー登録商標ディスク、光データ保存装置などがあり、また、キャリアウェーブ例えば、インターネットを通じる伝送の形態で具現するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的なfunctionalプログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。以上、本発明の実施のための具体的な例を説明した。前述した実施形態は、本発明を例示的に説明するためのものであって、本発明の権利範囲が特定の実施形態に限定されない。