(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6105038
(24)【登録日】2017年3月10日
(45)【発行日】2017年3月29日
(54)【発明の名称】システム一時停止方法、システム再開方法、及びこれらの方法を用いるコンピュータシステム
(51)【国際特許分類】
G06F 9/445 20060101AFI20170316BHJP
【FI】
G06F9/06 610J
【請求項の数】11
【全頁数】14
(21)【出願番号】特願2015-256482(P2015-256482)
(22)【出願日】2015年12月28日
【審査請求日】2015年12月28日
(31)【優先権主張番号】104140194
(32)【優先日】2015年12月1日
(33)【優先権主張国】TW
(73)【特許権者】
【識別番号】390023582
【氏名又は名称】財團法人工業技術研究院
【氏名又は名称原語表記】INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】林國弘
(72)【発明者】
【氏名】林祐慶
(72)【発明者】
【氏名】沈子傑
【審査官】
石川 亮
(56)【参考文献】
【文献】
特開2002−132393(JP,A)
【文献】
特開2004−164545(JP,A)
【文献】
特開2014−157490(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 1/30
G06F 1/32
(57)【特許請求の範囲】
【請求項1】
複数の周辺装置と中央処理装置とを含むコンピュータシステムを待機状態(S3)または休眠状態(S4)に移行させるシステム一時停止方法であって、
前記コンピュータシステムの運転を凍結する(freeze)ステップと、
第1種別および第2種別として分類される前記周辺装置を一時停止する(suspend)ステップと、
前記中央処理装置の電力をオフにするステップと、を含み、
前記第1種別に属す前記周辺装置は、前記コンピュータシステムがシステム再開プロセスを実行したときに全て再開し(resume)、
前記第2種別に属す前記周辺装置は、前記コンピュータシステムが使用要求をインターセプトしたときに再開する、システム一時停止方法。
【請求項2】
前記周辺装置とオペレーティングシステムとの接続が維持されており、
前記第1種別に属す前記周辺装置は、少なくとも1つのフォアグランドプログラムに関連しており、
前記第1種別に属す前記周辺装置に所定のタグが付与されており、または、前記第1種別に属す前記周辺装置が所定のリスト中に記録されている、請求項1に記載のシステム一時停止方法。
【請求項3】
前記システム一時停止方法は、前記コンピュータシステムを前記休眠状態(S4)に移行させるものであり、
前記コンピュータシステムは、さらにメモリおよび外部記憶装置を含み、
前記システム一時停止方法は、前記メモリ内の、全ての前記周辺装置に対応するコンテンツを前記外部記憶装置に記憶するステップをさらに含む、請求項1に記載のシステム一時停止方法。
【請求項4】
第1種別および第2種別として分類される複数の周辺装置と中央処理装置とを含むコンピュータシステムを、待機状態(S3)または休眠状態(S4)から起動状態(S0)へ再開させるシステム再開方法であって、
前記中央処理装置の電力をオンにするステップと、
前記第1種別に属す前記周辺装置のみを再開させる(resume)ステップと、
前記コンピュータシステムの運転を解凍する(thaw)ステップと、
使用要求をインターセプトするステップと、
前記使用要求に基づき、該使用要求に対応する、前記第2種別に属す前記周辺装置を再開させるステップと、を含むシステム再開方法。
【請求項5】
前記第2種別に属す前記周辺装置は、フェイク再開(fake resumed)状態に設定されており、
前記第1種別に属す前記周辺装置は、少なくとも1つのフォアグランドプログラムに関連しており、
前記第1種別に属す前記周辺装置に所定のタグが付与されており、または、前記第1種別に属す前記周辺装置が所定のリスト中に記録されている、請求項4に記載のシステム再開方法。
【請求項6】
第1種別および第2種別として分類される複数の周辺装置と中央処理装置とを含むコンピュータシステムを、待機状態(S3)または休眠状態(S4)から起動状態(S0)へ再開させるシステム再開方法であって、
前記中央処理装置の電力をオンにするステップと、
前記第1種別に属す前記周辺装置のみを再開させる(resume)ステップと、
前記コンピュータシステムの運転を解凍する(thaw)ステップと、を含み、
前記第2種別に属す前記周辺装置は、フェイク再開(fake resumed)状態に設定されており、
前記第1種別に属す前記周辺装置は、少なくとも1つのフォアグランドプログラムに関連しており、
前記第1種別に属す前記周辺装置に所定のタグが付与されており、または、前記第1種別に属す前記周辺装置が所定のリスト中に記録されている、システム再開方法。
【請求項7】
コンピュータシステムであって、
複数の周辺装置と、
前記周辺装置を制御する中央処理装置と、
前記コンピュータシステムを待機状態(S3)または休眠状態(S4)に移行させるシステム一時停止プロセスを実行する電源管理インターフェースと、を含み、
前記システム一時停止プロセスにおいて、前記電源管理インターフェースが、前記コンピュータシステムの運転を凍結し(freeze)、前記周辺装置を一時停止する(suspend)と共に前記中央処理装置の電力をオフにし、
前記電源管理インターフェースは、前記周辺装置を第1種別および第2種別として分類し、
前記第1種別に属す前記周辺装置は、前記コンピュータシステムがシステム再開プロセスを実行したときにすべて再開し(resume)、
前記第2種別に属す前記周辺装置は、前記コンピュータシステムが使用要求をインターセプトしたときに再開する、コンピュータシステム。
【請求項8】
前記システム一時停止プロセスにおいて、
前記電源管理インターフェースが、前記周辺装置とオペレーティングシステムとの接続を維持し、前記第1種別に属す前記周辺装置が少なくとも1つのフォアグランドプログラムに関連しており、前記電源管理インターフェースが前記第1種別に属す前記周辺装置に所定のタグを付与し、または、前記電源管理インターフェースが前記第1種別に属す前記周辺装置を所定のリスト中に記録する、請求項7に記載のコンピュータシステム。
【請求項9】
前記システム一時停止プロセスは、前記コンピュータシステムを前記休眠状態(S4)に移行させるものであり、
前記コンピュータシステムは、さらにメモリおよび外部記憶装置を含み、
前記システム一時停止プロセスにおいて、さらに前記電源管理インターフェースが、前記メモリ内の、全ての前記周辺装置に対応するコンテンツを前記外部記憶装置に記憶する、請求項7に記載のコンピュータシステム。
【請求項10】
前記システム再開プロセスは、前記コンピュータシステムを前記待機状態(S3)または前記休眠状態(S4)から起動状態(S0)へ再開させるものであり、
前記システム再開プロセスにおいて、前記電源管理インターフェースが、前記中央処理装置の電力をオンにし、前記第1種別に属す前記周辺装置のみを再開させる(resume)と共に、前記コンピュータシステムの運転を解凍する(thaw)、請求項7に記載のコンピュータシステム。
【請求項11】
前記システム再開プロセスにおいて、前記電源管理インターフェースが、
前記第2種別に属す前記周辺装置をフェイク再開(fake resumed)状態に設定し、さらに、
使用要求をインターセプトし、前記使用要求に基づき、該使用要求に対応する、前記第2種別に属す前記周辺装置を再開させる、請求項10に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム一時停止方法、システム再開方法、及びこれらの方法を用いるコンピュータシステムに関する。
【背景技術】
【0002】
従来、休眠技術(suspend‐to‐disk)を用いて快速起動を実現する方法が広く採用されてきた。その休眠状態(S4)としては、メモリの情報が外部の記録媒体に書き込まれると共に、全ての周辺装置の動作が停止する。
【0003】
休眠技術を用いる一般的なシステム一時停止プロセス(system suspend procedure)では、メモリ内のコンテンツが休眠ファイル(hibernation file)として作成されると共に外部の記録媒体に書き込まれる。
【0004】
そして、休眠技術を用いるシステム再開プロセス(system resume procedure)では、全ての周辺装置が初期化されると共に、周辺装置を再開させるための休眠ファイルがロードされる。しかし、このようなシステム再開プロセスでは、多量な時間をかけ、全ての周辺装置の初期化動作および再開動作を行わなければならず、快速起動の実行速度にボトルネックを引き起こす問題がある。この問題については、例えば中華民国特許第514796号に開示のシステム再開方法が挙げられる。
【0005】
ところで、ウェアラブル装置の登場に伴い、ウェアラブル装置の電力を如何に節約するかという難題がある。そして、スマートウェアラブル装置(例えばスマートメガネ)の場合、該装置上において例えばAndroid(登録商標)システムなどの複雑なオペレーティングシステムを実行しなければならない可能性があり、電力に対する需要が非常に高くなる。そのため、スマートウェアラブル装置の節電について、異なる規模の2カーネル設計が生み出されている。すなわち、システム上において高性能のアプリケーションを実行する必要がある場合には、高性能な大規模カーネルを用いて実行し、必要がない場合には、大規模カーネルを休眠状態または待機状態に移行させると共に大部分の周辺装置をオフにし、小規模カーネルのみを維持し動作させ続け、より多くの電力の節約を図る。このような設計の実現において、ユーザ体験に影響を及ぼさないためには、大規模カーネルのシステム再開プロセスの時間が長くなってはならないというキー要素が必要である。したがて、大規模カーネルのシステム再開における問題を解決するためには、より速いシステム再開プロセスが必要である。
【0006】
また、不揮発性メモリは、その発展につれ、将来には既存のダイナミック・ランダム・アクセス・メモリ(DRAM)に取って替わる可能性がある。そして、休眠技術を用いる快速起動方法も、待機技術(suspend‐to‐RAM)を用いる快速起動方法(待機技術は、スリープ技術とも称する)へ徐々に変わり、メモリのコンテンツをそのまま不揮発性メモリ内に残し、外部の記録媒体に書き込む必要がなくなると予想される。
【0007】
待機技術を用いる一般的なシステム再開プロセスは、休眠ファイルの読み取り動作が省略されるものの、初期化および全ての周辺装置の再開を行わなければならない。このようなシステム再開プロセスでは、依然として、多量な時間をかけて全ての周辺装置の初期化動作および再開動作を行わなければならず、同様に快速起動の流れにボトルネックを引き起こす問題がある。
【発明の概要】
【0008】
本発明は、システム一時停止方法、システム再開方法、及びこれらの方法を用いるコンピュータシステムに関する。
【0009】
本発明の第1態様によれば、コンピュータシステムを待機状態(S3)または休眠状態(S4)に移行させるシステム一時停止方法を提供する。コンピュータシステムは、複数の周辺装置と中央処理装置とを含む。コンピュータシステムのシステム一時停止方法は、コンピュータシステムの運転を凍結する(freeze)ステップと、前記周辺装置を一時停止する(suspend)ステップと、中央処理装置の電力をオフにするステップとを含む。前記周辺装置は、第1種別および第2種別として分類される。第1種別に属す前記周辺装置は、コンピュータシステムがシステム再開プロセスを実行したときにすべて再開する(resume)。第2種別に属す前記周辺装置は、コンピュータシステムが使用要求をインターセプトしたときに再開する。
【0010】
本発明の第2態様によれば、コンピュータシステムを待機状態(S3)または休眠状態(S4)から起動状態(S0)へ再開させるシステム再開方法を提供する。コンピュータシステムは、複数の周辺装置と中央処理装置とを含む。前記周辺装置は、第1種別および第2種別として分類される。コンピュータシステムのシステム再開方法は、中央処理装置の電力をオンにするステップと、第1種別に属す前記周辺装置のみを再開させる(resume)ステップと、コンピュータシステムの運転を解凍する(thaw)ステップと、を含む。
【0011】
本発明の第3態様によれば、複数の周辺装置と、中央処理装置と、電源管理インターフェースとを含むコンピュータシステムを提供する。中央処理装置は、前記周辺装置を制御する。電源管理インターフェースは、コンピュータシステムを待機状態(S3)または休眠状態(S4)に移行させるシステム一時停止プロセスを実行する。システム一時停止プロセスにおいて、電源管理インターフェースは、コンピュータシステムの運転を凍結し(freeze)、前記周辺装置を一時停止する(suspend)と共に中央処理装置の電力をオフにする。電源管理インターフェースは、前記周辺装置を第1種別および第2種別として分類する。第1種別に属す前記周辺装置は、コンピュータシステムがシステム再開プロセスを実行したときにすべて再開する(resume)。第2種別に属す前記周辺装置は、コンピュータシステムが使用要求をインターセプトしたときに再開する。
【0012】
本発明の上記態様および他の態様がさらに良く理解されるように、以下は好ましい実施例を挙げると共に、添付される図面を参照しつつ、詳細に説明する。
【図面の簡単な説明】
【0013】
【
図2】コンピュータシステムが「周辺装置要求性再開機能」を用いながら休眠状態に移行するシステム一時停止方法を示すフローチャートである。
【
図3】コンピュータシステムが「周辺装置要求性再開機能」を用いながら休眠状態から離脱するシステム再開方法を示すフローチャートである。
【
図4】電源管理インターフェースが「周辺装置要求性再開機能」を実行する様子を示す模式図である。
【
図5】コンピュータシステムが「周辺装置要求性再開機能」を用いながら待機状態に移行するシステム一時停止方法を示すフローチャートである。
【
図6】コンピュータシステムが「周辺装置要求性再開機能」を用いながら待機状態から離脱するシステム再開方法を示すフローチャートである。
【
図7】Linux(登録商標、以下略)オペレーティングシステム環境を示す模式図である。
【
図8】Linuxオペレーティングシステム環境において行われるメモリマッピングを示す模式図である。
【発明を実施するための形態】
【0014】
本発明は、システム再開プロセス(system resume procedure)に「要求に基づいて周辺装置を再開させる機能(peripheral resume on demand)」が設定されているため、すぐに再開(resume)すべき周辺装置のみを再開させると共に、すぐに再開すべきでない周辺装置を一時停止状態、または、再開の成功を偽るフェイク再開(fake resumed)状態に維持しつつ、当該周辺装置にシステム再開プロセスを回避させる(bypass)ようになっている。そして、システム再開プロセスの完了後は、アプリケーションが一時停止状態またはフェイク再開状態の周辺装置に対して使用を要求したときに、一時停止状態またはフェイク再開状態の周辺装置の再開動作を行う。このように、システム再開プロセスは、再開すべき周辺装置の数を減らすことにより、システム再開プロセスの実行時間を短縮させることができる。
【0015】
図1を参照する。
図1は、コンピュータシステム100を示す模式図である。コンピュータシステム100は、中央処理装置(CPU)110と、電源管理インターフェース120と、メモリ130と、外部記憶装置140と、複数の周辺装置150とを含む。周辺装置150は、例えば表示パネル、タッチパネル、スピーカ、カメラ、またはユニバーサル・シリアス・バス(USB)である。周辺装置150は、第1種別R1および第2種別R2に分類される。第1種別R1の周辺装置150は、フォアグランドプログラムに関連しており、システム再開プロセスにおいてすぐに再開させる必要がある。第2種別R2の周辺装置150は、フォアグランドプログラムに関連せず、システム再開プロセスにおいてすぐに再開させる必要がない。例を挙げて説明すると、第1種別R1の周辺装置150は、例えば表示パネルまたはタッチパネルである。第2種別R2の周辺装置150は、例えばスピーカ、カメラ、またはユニバーサル・シリアス・バスである。
【0016】
図1および2を参照する。
図2は、コンピュータシステム100が「周辺装置要求性再開機能」を用いながら休眠状態(S4)に移行するシステム一時停止方法を示すフローチャートである。まず、ステップS210において、コンピュータシステム100の運転を凍結する(freeze)。
【0017】
続いて、ステップS220において、全ての周辺装置150を一時停止する(suspend)と共に、当該周辺装置150を一時停止状態に変更する。なお、これらの周辺装置150は、第1種別R1および第2種別R2として分類されている。このステップでは、電源管理インターフェース120は、第1種別R1に属す各周辺装置150に所定のタグを付与してもよい。或いは、電源管理インターフェース120は、第1種別R1に属する周辺装置150を所定のリスト中に記録してもよい。これにより、後にタグの内容、若しくは所定のリストのクエリーを行うだけで、当該周辺装置150が第1種別R1に属すか否かを判明することができる。第1種別R1に属する周辺装置150は、コンピュータシステム100がシステム再開プロセスを行ったときに、全装置が再開する(resume)。一方、第2種別R2に属する周辺装置150は、コンピュータシステム100が使用要求Q1(
図4に示す)をインターセプトしたときに再開する。このステップでは、周辺装置150のいずれもが一時停止状態(または電源オフ状態)に移行するが、各周辺装置150とオペレーティングシステムとの接続は、アンインストールせずに維持される。これにより、周辺装置150のいずれも、所定の起動状態にしか初期化されないということがなく、一時停止の直前の状態で再開することができる。
【0018】
ステップS230において、メモリ130内のコンテンツを休眠ファイル(hibernation file)に作成することにより、メモリ130内の、全ての周辺装置150に対応するコンテンツを記録する。このステップでは、第1種別R1および第2種別R2に関係なく、全ての周辺装置150の一時停止の直前の状態が休眠ファイル内に記録される。
【0019】
ステップS240において、休眠ファイルを外部記憶装置140に記憶することにより、メモリ130内の、全ての周辺装置150に対応するコンテンツを外部記憶装置140に記憶する。
【0020】
ステップS250において、中央処理装置110およびメモリ130など、大部分のデバイスの電力をオフにする。
【0021】
再び
図1および3を参照する。
図3は、コンピュータシステム100が「周辺装置要求性再開機能」を用いながら休眠状態(S4)から離脱するシステム再開方法を示すフローチャートである。まず、ステップS310において、中央処理装置110、メモリ130、外部記憶装置140など、各デバイス電力をオンにする。
【0022】
ステップS320において、起動プログラム(Boot−loader)による簡単な初期化を行う。
【0023】
ステップS330において、カーネル(kernel)をロードし、カーネルに対して詳細な初期化を行う。
【0024】
ステップS340において、第1種別R1に属する周辺装置150に対して初期化を行う。また、第2種別R2に属する周辺装置150については、一時停止状態に維持し、または、フェイク再開状態に変更する。このように、初期化すべき周辺装置150の数を減らすことにより、システム再開プロセスの所要時間を短縮させることができる。
【0025】
ステップS350において、休眠ファイルをロードし、一時停止の直前のメモリ130内のコンテンツをリストアする。
【0026】
ステップS360において、第1種別R1に属する周辺装置150のみを再開させる(resume)。また、第2種別R2に属する周辺装置150を一時停止状態に維持し、または、フェイク再開状態に変更する。このように、再開すべき周辺装置150の数を減らすことにより、システム再開プロセスの所要時間を短縮させることができる。
【0027】
ステップS370において、コンピュータシステム100の運転を解凍する。これで、システム再開プロセスは完了する。
【0028】
次に、ステップS380において「周辺装置要求性再開機能」を実行する。
図3および4を参照する。
図4は、電源管理インターフェース120が「周辺装置要求性再開機能」を実行する様子を示す模式図である。電源管理インターフェース120は、所定の再開ユニット121と、インターセプトユニット122と、要求性再開ユニット123とを含む。ステップS340およびS360では、所定の再開ユニット121が、第1種別R1に属する周辺装置150の初期化および再開のために用いられるが、ステップS381では、インターセプトユニット122が、ユーザ空間(user space)USにおけるアプリケーション910からの使用要求Q1をインターセプトする。ステップS382では、要求性再開ユニット123が、この使用要求Q1に基づき、当該対応の周辺装置150が一時停止状態またはフェイク再開状態であるか否かを確認する。当該周辺装置150が一時停止状態またはフェイク再開状態である場合には、当該周辺装置150が第2種別R2に属していることを意味するため、要求性再開ユニット123は、使用要求Q1に対応している、第2種別R2に属する周辺装置150を初期化し、再開させる。
【0029】
このようにして、システム再開プロセスは、一部の周辺装置150(すなわち第1種別R1)を初期化し再開させると共に、アプリケーション910による使用要求Q1をインタセフトしてから残りの周辺装置150(すなわち第2種別R2)を初期化し再開させるだけで済む。これにより、システム再開プロセスを快速起動技術に適用した場合でも、起動の所要時間をさらに効果的に短縮させることができる。
【0030】
休眠技術以外に、待機技術(suspend‐to‐RAM)を用いた快速起動方法(待機技術は、スリープ技術とも称する)にも、上記「周辺装置要求性再開機能」を適用することが可能である。
図1および5を参照する。
図5は、コンピュータシステム100が「周辺装置要求性再開機能」を用いながら待機状態(S3)に移行するシステム一時停止方法を示すフローチャートである。まず、ステップS510において、コンピュータシステム100の運転を凍結する(freeze)。
【0031】
続いて、ステップS520において、全ての周辺装置150を一時停止する(suspend)と共に、当該周辺装置150を一時停止状態に変更する。なお、これらの周辺装置150は、第1種別R1および第2種別R2として分類されている。このステップでは、電源管理インターフェース120は、第1種別R1に属す各周辺装置150に所定のタグを付与しもてよい。或いは、電源管理インターフェース120は、第1種別R1に属する周辺装置を所定のリスト中に記録してもよい。これにより、後にタグの内容、若しくは該リストのクエリーを行うだけで、当該周辺装置150が第1種別R1に属すか否かを判明することができる。第1種別R1に属する周辺装置150は、コンピュータシステム100がシステム再開プロセスを行ったときに、全装置が再開する(resume)。一方、第2種別R2に属する周辺装置150は、コンピュータシステム100が使用要求Q1(
図4に示す)をインターセプトしたときに再開する。このステップでは、周辺装置150のいずれもが一時停止状態(または電源オフ状態)に移行するが、各周辺装置150とオペレーティングシステムとの接続は、アンインストールせずに維持される。これにより、周辺装置150のいずれも、所定の起動状態にしか初期化されないということがなく、一時停止の直前の状態で再開することができる。
【0032】
ステップS530において、メモリ130内のコンテンツを記憶することにより、メモリ130内の、全ての周辺装置150に対するコンテンツを記録する。このステップでは、第1種別R1および第2種別R2に関係なく、全ての周辺装置150の一時停止の直前の状態が記憶される。
【0033】
ステップS540において、メモリ130をリフレッシモード(refresh mode)に設定する。
【0034】
ステップS550において、中央処理装置110など、大部分のデバイスの電力をオフにする。
【0035】
再び
図1及6を参照する。
図6は、コンピュータシステム100が「周辺装置要求性再開機能」を用いながら待機状態(S3)から離脱するシステム再開方法を示すフローチャートである。まず、ステップS610において、中央処理装置110、メモリ130、外部記憶装置140など、各デバイスの電力をオンにする。
【0036】
ステップS620において、中央処理装置110をレジュームする。
【0037】
ステップS630において、メモリ130を通常状態(normal mode)に戻す。
【0038】
ステップS640において、システム状態を元に戻す。
【0039】
ステップS650において、第1種別R1に属する周辺装置150のみを再開させる(resume)。また、第2種別R2に属する周辺装置150を一時停止状態に維持し、または、フェイク再開状態に変更する。このように、再開すべき周辺装置150の数を減らすことにより、システム再開プロセスの所要時間を短縮させることができる。
【0040】
ステップS660において、コンピュータシステム100の運転を解凍する。これでシステム再開プロセスは完了する。
【0041】
次に、ステップS670において「周辺装置要求性再開機能」を実行する。
図4および6を参照する。ステップS650では、所定の再開ユニット121が、第1種別R1に属する周辺装置150の再開のために用いられるが、ステップS671では、インターセプトユニット122が、ユーザ空間(user space)におけるアプリケーション910からの使用要求Q1をインターセプトする。ステップS672では、要求性再開ユニット123が、この使用要求Q1に基づき、該使用要求Q1に対応している、第2種別R2に属する周辺装置150を初期化し、再開させる。
【0042】
一実施例として、何らかの周辺装置150の初期化および再開動作を行う際に、該周辺装置150に付随している周辺装置150も併せて一斉に再開させてもよい。周辺装置150同士の付随関係は、予め設定してもよく、コンピュータシステム100が通常の起動プロセスを行う際に初期化ステップで構築してもよく、コンピュータシステム100がシステム一時停止プロセスを行う際に構築してもよい。
【0043】
上記周辺装置150の分類は、フォアグランドプログラムとの関連性に応じて分けてもよい。或いは、別の実施例として、周辺装置150の分類は、ユーザにより設定されてもよい。
【0044】
また、フェイク再開状態は、装置の元状態の変数を用いてマークアップしてもよく、別途で変数若しくはリストを生成し、登録してもよい。
【0045】
図7を参照する。
図7は、Linuxオペレーティングシステム環境を示す模式図である。Linuxオペレーティングシステムは、ユーザ空間(user space)USおよびカーネル空間(kernel space)KSを含む。アプリケーション(application)910およびGNU Cライブラリ(GNU C library)920は、ユーザ空間USに位置する。システム呼出インターフェース(system call interface)930、仮想ファイルシステム(virtual file system)940、インデックス・ノードキャッシュ(inode cache)950、ディレクトリキャッシュ(directory cache)960、個別ファイルシステム(individual file system)970、バッファキャッシュ(buffer cache)980、およびデバイスドライバー(device driver)990は、カーネル空間KSに位置する。Linuxオペレーティングシステム環境では、いずれの周辺装置150もファイル(file)形式で取り扱われる。アプリケーション910は、システム呼出(system call)を介して、周辺装置150とやり取りを行う。上記インターセプトユニット122は、システム呼出インターフェース930上において、例えばオープン(open)、リード(read)、ライト(write)、アイ・オー・コントロール(ioctl)システム呼出などの使用要求Q1をインターセプトすることができる。インターセプトユニット122は、使用要求Q1をインターセプトすると、周辺装置150の状態を判断する。該周辺装置150が一時停止状態またはフェイク再開状態である場合には、要求性再開ユニット123が、初期化および再開動作を行うと共に、該周辺装置150を通常の状態に変更する。これが完了すると、使用要求Q1に対する応答を行う。
【0046】
図8を参照する。
図8は、Linuxオペレーティングシステム環境において行われるメモリマッピングを示す模式図である。Linuxオペレーティングシステム環境では、周辺装置150に対する操作が、メモリマッピング(mmap)方式で行われてもよい。すなわち、システム一時停止プロセスを行う際は、第2種別R2の周辺装置150に対応しているメモリマッピングページ(mmaped page)710の権限を「アクセス不可」に設定してもよい。システム再開プロセスの完了後は、アプリケーション910がメモリマッピングのアドレス空間を利用して当該周辺装置150を操作すると、ページフォルト(page fault)PGによる中断が発生する。そこで、ページエラー処理プログラム(page fault handler)720が周辺装置150の状態を判断し、該周辺装置150が一時停止状態またはフェイク再開状態である場合には、要求性再開ユニット123が初期化および再開動作を行うと共に、該周辺装置150を通常の状態に変更する。これが完了すると、アプリケーション910からの使用要求Q1に対する応答を行う。
【0047】
上述した実施例によれば、「要求に基づいて周辺装置を再開させる機能」は、すぐに再開(resume)すべき周辺装置のみを再開させるが、すぐに再開すべきでない周辺装置を一時停止状態、または、再開の成功を偽るフェイク再開(fake resumed)状態に保持しつつ、当該周辺装置にシステム再開プロセスを回避させる(bypass)。そして、システム再開プロセスの完了後は、アプリケーションが一時停止状態またはフェイク再開状態の周辺装置に対して使用を要求したときに、一時停止状態またはフェイク再開状態の周辺装置の再開動作を行う。このように、システム再開プロセスは、再開すべき周辺装置の数を減らすことにより、システム再開プロセスの実行時間を短縮させ、ひいては起動速度を向上させることができる。
【0048】
以上は、好ましい実施例を通して本発明を説明したが、本発明はこれに限定されるものではない。また、当業者は、本発明の精神および範囲を逸脱しない範囲で様々な変更および改修を成し得る。したがって、本発明の保護範囲は、添付される特許請求の範囲により定義されるべきである。
【符号の説明】
【0049】
100 コンピュータシステム
110 中央処理装置
120 電源管理インターフェース
121 所定の再開ユニット
122 インターセプトユニット
123 要求性再開ユニット
130 メモリ
140 外部記憶装置
150 周辺装置
710 メモリマッピングページ
720 ページエラー処理プログラム
910 アプリケーション
920 GNU Cライブラリ
930 システム呼出インターフェース
940 仮想ファイルシステム
950 インデックス・ノードキャッシュ
960 ディレクトリキャッシュ
970 個別ファイルシステム
980 バッファキャッシュ
990 デバイスドライバー
KS カーネル空間
Q1 使用要求
R1 第1種別
R2 第2種別
S210、S220、S230、S240、S250、S310、S320、S330、S340、S350、S360、S370、S380、S381、S382、S510、S520、S530、S540、S550、S610、S620、S630、S640、S650、S660、S670、S671、S672 ステップ
US ユーザ空間
【要約】 (修正有)
【課題】システム一時停止後のシステム再開時間をより速くする。
【解決手段】コンピュータシステムのシステム再開方法は、コンピュータシステムを待機状態または休眠状態から起動状態へ再開させる。コンピュータシステムは、複数の周辺装置と中央処理装置とを含む。周辺装置は、第1種別および第2種別として分類される。システム再開方法は、中央処理装置の電力をオンにするステップと、第1種別に属す周辺装置のみを再開させる(resume)ステップと、コンピュータシステムの運転を解凍する(thaw)ステップと、を含む。
【選択図】
図3