JPH07219665A - システムの状態を中断し、再開する方法およびそれができるコンピュータ装置 - Google Patents

システムの状態を中断し、再開する方法およびそれができるコンピュータ装置

Info

Publication number
JPH07219665A
JPH07219665A JP7032931A JP3293195A JPH07219665A JP H07219665 A JPH07219665 A JP H07219665A JP 7032931 A JP7032931 A JP 7032931A JP 3293195 A JP3293195 A JP 3293195A JP H07219665 A JPH07219665 A JP H07219665A
Authority
JP
Japan
Prior art keywords
computer
kernel
computer system
state
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7032931A
Other languages
English (en)
Inventor
Clark Dong
クラーク・ドン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH07219665A publication Critical patent/JPH07219665A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Abstract

(57)【要約】 【目的】 コンピュータ・システムを迅速に中断して、
再開する。 【構成】 コンピュータ・オペレーティング・システム
の状態を迅速に保存するために、プロセスはまず、オペ
レーティング・システム状態データを記憶するファイル
をルート・ファイル・システム上で割り振ることによっ
て、コンピュータ・システム中断の準備を行う。プロセ
スは次いで、コンピュータ・システム上で動作している
各ユーザ・アプリケーションに警告して、各ユーザ・ア
プリケーションが中断の準備ができるようにする。警告
の後、プロセスは各ユーザ・アプリケーション・プロセ
スを中断する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・オペレ
ーティング・システムの分野に関する。詳細には、高速
コンピュータ・システム中断操作と、コンピュータ・シ
ステムを中断される前の状態に復元する、対応する再開
操作とに関する。
【0002】
【従来の技術】ポータブル・コンピュータ装置は一般的
に、非常に短い時間だけ使用される。たとえば、ユーザ
は、空港で飛行機に搭乗するのを待つ間に10分間だけ
ポータブル・コンピュータ・システムで作業することが
ある。ポータブル・コンピュータは、そのように短い時
間だけ使用されることが多いので、非常に短い立ち上げ
時間および遮断時間を有することが望ましい。
【0003】既存のポータブル・パーソナル・コンピュ
ータ・システムは、異なる技法を使用して、立ち上げま
たは遮断に必要とされる時間の低減を図っている。図1
aは、プロセッサを一時停止することによってポータブ
ル・コンピュータ・システムが中断され、バッテリ・シ
ステムからの少量の電力を使用して動的ランダム・アク
セス(DRAM)メイン・メモリを絶えずリフレッシュ
することによってそのシステム状態が維持される、広く
使用されている第1の技法を示す。図1bは、DRAM
メイン・メモリの内容が非揮発性記憶システムに書き込
まれる、ポータブル・コンピュータ・システムを一時的
に遮断する、広く使用されている他の技法を示す。図1
aを参照すると、ポータブル・コンピュータ・システム
のプロセッサが一時停止され、次いで、メイン・メモリ
の内容全体がハード・ディスクなどの非揮発性記憶装置
に書き込まれている。しかし、これらの技法は共に、様
々な問題を発生させる。
【0004】第1の技法では、図1aに示したように、
ポータブル・コンピュータ・システムのプロセッサが一
時停止され、領域29以外のどの装置も電力を受け取ら
ないようにしながら、バッテリ・システムを使用してD
RAMメイン・メモリの内容がリフレッシュされる。図
1aの技法では依然として、バッテリ28からのバッテ
リ電力でメイン・メモリをリフレッシュし続ける必要が
ある。したがって、図1aのメモリ・リフレッシュ技法
は限られた継続時間だけしか有効でなく、バッテリ28
の電力が結果的に枯渇すると、DRAMメイン・メモリ
に記憶されているシステム状態情報はすべて失われる。
【0005】図1bに示した第2の技法は、強制メモリ
・ダンプ操作から成る。この強制技法では、コンピュー
タ・システムのメイン・メモリ27の内容全体が、ハー
ド・ディスク・ドライブ25など非揮発性記憶装置に書
き込まれる。メイン・メモリ27の内容全体をハード・
ディスク25上に書き込むには、メイン・メモリ27の
内容全体を記憶するためだけに留保された大規模な専用
ディスク・パーティションが必要とされる。さらに、メ
モリ・ダンプ技法は常に適切に機能するとは限らない。
ユーザ・アプリケーションまたはシステム・スレッド
が、それを一時停止してはならない状態のときにシステ
ムが遮断した場合、そのユーザ・アプリケーションまた
はシステム・スレッドは、ユーザがシステムの再開を試
みても動作しないことがある。
【0006】
【発明が解決しようとする課題】したがって、非揮発性
メモリに情報を記憶する前にコンピュータ・システムを
静止状態にする高速中断操作を有することが望ましい。
後述のように、本発明は、コンピュータ・システム状態
を非揮発性記憶域上に保存する前にコンピュータ・シス
テムの活動をすべて中断する多層コンピュータ・システ
ム静止中断操作を提供する。コンピュータ・システムの
状態を復元して、中断された状態を再開する、対応する
再開操作も定義される。
【0007】
【課題を解決するための手段】本発明は、コンピュータ
・システムのすべての活動を迅速に中断して、コンピュ
ータ・システムを迅速に中断できるようにコンピュータ
・オペレーティング・システムの状態を保存する方法お
よび装置を提供する。コンピュータ・オペレーティング
・システムの状態を迅速に保存するために、本発明の方
法はまず、オペレーティング・システム状態データを記
憶するファイルをルート・ファイル・システム上で割り
振ることによって、コンピュータ・システム中断の準備
を行う。この方法は、各ユーザ・アプリケーション・プ
ロセスで使用されるメモリ空間を非揮発性記憶域上にス
ワップ・アウトして、後で保存しなければならないメモ
リの量を低減する。この方法は次いで、コンピュータ・
システム上で動作している各ユーザ・アプリケーション
・プロセスに差し迫った中断に関して警告する。各ユー
ザ・アプリケーションは、警告を受けて中断の準備を行
う機会を与えられた後、中断される。次に、様々なカー
ネルのデーモンおよびオペレーティング・システム・サ
ブシステムが中断される。最後に、コンピュータ・シス
テム上で動作している各デバイス・ドライバが、関連す
るハードウェア装置の状態を保存するよう命令される。
各デバイス・ドライバは、関連するハードウェア装置状
態を保存した後、もはやコンピュータ・システムで活動
がなくなるように中断される。次いで、オペレーティン
グ・システム状態の圧縮済みバージョンが非揮発性記憶
装置に書き込まれる。
【0008】中断されたコンピュータ・システムの動作
を再開するには、類似のステップを逆の順序で実行す
る。第1に、非揮発性記憶装置上に記憶されているコン
ピュータ・システム状態を再びメイン・メモリに読み込
む。次いで、各デバイス・ドライバを再活動化する。各
デバイス・ドライバは、それに関連するハードウェア装
置の状態を復元する。次に、様々なカーネルのデーモン
およびオペレーティング・システム・サブシステムを再
活動化する。最後に、各ユーザ・アプリケーション・プ
ロセスを再活動化して、コンピュータ・システムが高速
中断から回復されたことを前記プロセスに通知する。
【0009】本発明の他の目的、特徴、および利点は、
添付の図面と、以下の詳細な説明から明らかになろう。
【0010】
【実施例】
概念および命名法 以下の詳細な説明は主として、コンピュータ・システム
内の動作のアルゴリズムおよび記号表現に関して提示さ
れる。このようなアルゴリズムによる説明および表現
は、データ処理技術分野の当業者が研究の内容を最も効
果的に他の当業者に伝えるために使用する手段である。
【0011】一般に、および本出願内では、アルゴリズ
ムは所望の結果に至る首尾一貫した一連のステップとみ
なされている。これらのステップは、物理量の物理的操
作を必要とするものである。通常、必ずしもそうとは限
らないが、このような量は、記憶し、送り、組み合わ
せ、比較し、その他の方法で操作することができる電気
信号または磁気信号の形をとる。主として一般的な使用
のために、これらの信号をビット、値、要素、記号、文
字、項、数などと呼ぶと好都合なことがある。しかし、
これらおよび類似の語はすべて、適当な物理量に関連
し、このような量に適用される好都合なラベルに過ぎな
いことに留意されたい。
【0012】さらに、実行される操作は、一般に、人間
のオペレータによって実行される知的動作に関連する、
加算や比較などの語で呼ばれることが多い。本発明の一
部を形成する、本明細書に記載されたどの動作でも、人
間のオペレータのそのような能力は必要とされず、多く
の場合望ましいものでもない。このような動作はマシン
動作である。本発明の動作を実行するのに有用なマシン
には、汎用ディジタルコンピュータまたはその他の類似
の装置が含まれる。すべての場合に、コンピュータを操
作する方法操作と計算自体の方法の間の違いが維持され
る。本発明は、電気信号またはその他の物理信号(たと
えば、機械、化学)を処理して他の所望の物理信号を生
成するうえでコンピュータを操作する方法ステップに関
する。
【0013】本発明は、このような操作を実行するため
の装置にも関する。この装置は、必要な目的のために特
別に構成することも、あるいはコンピュータに記憶され
たコンピュータ・プログラムによって選択的に活動化ま
たは再構成される汎用コンピュータを構成することもで
きる。本明細書に提示したアルゴリズムは、特定のコン
ピュータやその他の装置に固有に関係するものではな
い。具体的には、本明細書の開示によって書かれたプロ
グラムと共に様々な汎用マシンを使用することができ、
あるいは必要な方法ステップを実行するためのより専門
的な装置を構成する方が好都合なこともある。このよう
な様々なマシンに必要とされる構造は、以下の説明から
明らかになろう。
【0014】詳細説明 多層システム中断再開動作用の方法および装置を開示す
る。以下の説明では、説明の都合上、本発明を完全に理
解してもらうために特定の語を記載する。しかし、当業
者には、このような特定の詳細なしでも本発明が実施さ
れることが明らかになろう。たとえば、本発明はUNI
Xオペレーティング・システムに関して記載されてい
る。しかし、本発明の開示は、他のマルチプロセス・オ
ペレーティング・システムで使用することができる。
【0015】コンピュータ・システム 図2は、ワークステーション、パーソナル・コンピュー
タ、ハンドヘルド・コンピュータ装置など広いコンピュ
ータ装置クラスを包含するコンピュータ・システムのブ
ロック図である。図2のコンピュータ・システムの核
は、中央演算処理装置10とメモリ装置12とから成
る。入力装置14、記憶装置16、表示装置18など1
組の入出力装置もコンピュータ・システムに結合されて
いる。
【0016】中央演算処理装置10は、図2のコンピュ
ータ・システムの動作を制御するために、主としてメモ
リ装置12にあるオペレーティング・システムを走らせ
る。大規模なオペレーティング・システムは、記憶装置
16など外部非揮発性記憶装置上の追加記憶域を必要と
することも多い。
【0017】好ましい実施例では、本発明は、UNIX
オペレーティング・システムと共に使用できる高速中断
動作で構成されている。UNIXオペレーティング・シ
ステムは多重処理オペレーティング・システムであり、
いくつかの実行スレッドを並行的に実行する。UNIX
オペレーティング・システムを中断するには、本発明の
中断動作によって、UNIXオペレーティング・システ
ムで制御される実行スレッドを静止しなければならな
い。
【0018】UNIXオペレーティング・システム 図3は、コンピュータ・システム上で動作するUNIX
オペレーティング・システムの概念図を示す。図3で分
かるように、UNIXオペレーティング・システムは1
組の階層に分割することができる。UNIXオペレーテ
ィング・システムの1番下には、物理ハードウェア層3
0がある。ハードウェア層30は、UNIXオペレーテ
ィング・システムが動作する実際のコンピュータ・ハー
ドウェアから成る。
【0019】ハードウェア層30のすぐ上には、デバイ
ス・ドライバ層40の1組のデバイス・ドライバ(4
1、42、43)がある。デバイス・ドライバは、ハー
ドウェア層と直接、対話する責任を負う。異なるデバイ
ス・ドライバが異なるハードウェア装置を制御する。
【0020】デバイス・ドライバ層40の上には、デバ
イス・ドライバ・インタフェース及びドライバ・カーネ
ル・インタフェース(DDI/DKI)層50がある。
DDI/DKI層50は、カーネル層60と個別のデバ
イス・ドライバの間のインタフェースを提供する。DD
I/DKI層50は、デバイス・ドライバに関する詳細
をUNIXカーネルから隠す。
【0021】DDI/DKI層50の上には、UNIX
カーネルを含むカーネル層60がある。UNIXカーネ
ルは、UNIXオペレーティング・システムの機能の大
部分を実施する。カーネル層60内には、いくつかのオ
ペレーティング・システム・サブシステムがある。たと
えば、UNIXオペレーティング・システムの現行の実
施態様では、ネットワーク・ファイル・システム(NF
S)、仮想メモリ・マネージャ(VM)、およびタイム
アウト機構がオペレーティング・システム・サブシステ
ムとして実施されている。カーネル層60内にはカーネ
ル・デーモン64および65もある。カーネル・デーモ
ンとは、ある種の特定の活動を実行するためにカーネル
が走らせる実行スレッドである。たとえば、プリンタ・
デーモンは、コンピュータ・システムに接続されたプリ
ンタ用のスプール待ち行列を維持することができる。カ
ーネル層60は、DDI/DKI層50を介してデバイ
ス・ドライバ(41、42、43)を呼び出すことによ
ってコンピュータ・ハードウェアと対話する。
【0022】最後に、カーネル層60の上にユーザ・ア
プリケーション・プログラム(71、72、73)があ
る。ユーザ・アプリケーション・プログラムは、UNI
Xカーネルに対してシステム・コールを行うことによっ
てUNIXオペレーティング・システムと対話する。U
NIXカーネルは、各システム・コールを処理して、そ
のシステム・コールを行ったユーザ・アプリケーション
・プログラムに結果を返す。
【0023】多層静止中断動作 本発明の好ましい実施例は、UNIXオペレーティング
・システムを迅速に遮断して、UNIXオペレーティン
グ・システム状態を非揮発性記憶域上に記憶するマルチ
ステップ中断手順として実施される。UNIXオペレー
ティング・システムの状態は後で迅速に復元することが
できる。本発明の中断動作は、トップダウン階層的にU
NIXシステムを遮断する。図3を参照すると、まずユ
ーザ・アプリケーション・プログラムが中断され、次い
でオペレーティング・システム・サブシステムが中断さ
れ、次にデバイス・ドライバが中断され、最後に、中断
されたシステム状態が非揮発性記憶域に書き込まれる。
【0024】本発明の中断動作は、図3に示した既存の
uadmin()システム・コールを使用してユーザ・
アプリケーション・プログラムによってアクセスするこ
とができる。コンピュータ・システムを迅速に中断する
ために、ユーザ・アプリケーション・プログラムが、適
当な中断パラメータを含むuadmin()を呼び出
し、カーネルがコンピュータ・システムを中断する。
【0025】本発明の中断操作は、6つの一次ステップ
で実施することができる。図4および図5は、本発明の
中断手順の6つのステップを示す。図4は6つのステッ
プを流れ図で示し、図5は6つのステップを概念的に示
す。中断手順の6つのメイン・ステップを図4と図5と
に関して説明する。
【0026】第1のステップのステップ1では、コンピ
ュータ・システムが中断動作の準備を行う。この準備ス
テップでは、ユーザ・アプリケーション・プロセスによ
って使用されるメモリ・ページが非揮発性記憶域にスワ
ップ・アウトされ、UNIXカーネルの現状態を記憶す
るファイルがルート・ファイル・システム上で作成され
る。
【0027】uadmin(suspend)システム
・コールは、ユーザ・アプリケーション・プロセスによ
って使用されるメモリ・ページをスワップ・アウトする
ために、メモリ・スワッピングに責任を負うデーモンに
アクセスする。次いで、そのデーモンは、ユーザ・アプ
リケーションによって使用されるメモリ・ページをすべ
てスワップ・アウトする。
【0028】本発明の中断動作では、まず、カーネルに
よってどれだけのメモリが使用されるかを推定すること
によって、カーネル・ファイルが作成される。中断動作
は、ヒューリスティクスを適用して、どれだけのカーネ
ル・メモリを圧縮できるかを判定する。中断動作は次い
で、圧縮されたカーネル・サイズのファイルをルート・
ファイル・システム上に留保する。
【0029】後で、中断動作が、留保ファイルに書込み
を行う準備ができると、通常のファイル・システム・ル
ーチンはもはや使用できなくなる。中断動作は、留保フ
ァイルに書込みを行うために、プリミティブxx_du
mp()コマンドを使用する。xx_dump()コマ
ンドは、情報をどこに書き込むべきかに関して明示的な
情報であるべきである。中断動作は、この情報を提供す
るために、xx_dmpctl()ルーチンによって留
保ファイルを処理する。xx_dmpctl()は、後
で、xx_dump()コマンドを使用して状態ファイ
ルをダンプできるように、留保ファイルに必要な変位情
報を判定する。
【0030】中断手順の第2のステップのステップ2で
は、すべてのユーザ・アプリケーション・プロセスが中
断される。したがって、中断手順は、図3に示したUN
IXオペレーティング・システム階層の1番上から開始
する。uadmin(suspend)システム・コー
ルは、各ユーザ・アプリケーション・プロセスを停止す
るために、すべてのユーザ・アプリケーション・プロセ
スにSIGFREEZE信号を送る。SIGFREEZ
E信号は、UNIXシステム・ラボラトリ(USL)に
登録される信号である。
【0031】ユーザ・アプリケーション・プロセスは、
SIGFREEZE信号を受け取ったときに、システム
中断の準備を行うのに必要とされるあらゆる動作を実行
すべきである。たとえば、SIGFREEZE信号を受
け取ったデータベース・サーバ・プロセスは、差し迫っ
たシステム中断をクライアントに通知すべきである。シ
ステム中断の準備を行う必要がないユーザ・アプリケー
ション・プログラムは、SIGFREEZE信号を無視
することができる。本発明の中断手順が存在する前に書
かれたプログラムもSIGFREEZE信号を無視す
る。ユーザ・アプリケーション・プロセスがSIGFR
EEZE信号を処理し、あるいは無視した後、カーネル
はそのユーザ・アプリケーション・プロセスを中断す
る。
【0032】コンピュータ・システム中断手順のステッ
プ3は、システムが中断されることをすべてのカーネル
・デーモンに通知することである。図3に示したよう
に、デーモンとは、カーネルによって所有される実行ス
レッドであり、コンピュータ・システムに接続されたプ
リンタ用のスプール待ち行列を維持することなどオペレ
ーティング・システム用の様々なハウスキーピング処理
を実行する。
【0033】uadmin(suspend)システム
・コールは、コールバック機構を使用して、すべてのカ
ーネル・デーモンに差し迫ったシステム中断を通知す
る。中断コールバック・ルーチンは、開始されたときに
差し迫ったシステムを通知してもらいたい各デーモンに
よって登録される。ユーザ・アプリケーション・プログ
ラムと同様に、差し迫ったシステム中断を通知してもら
う必要のないデーモンは、コールバック・ルーチンをカ
ーネルに登録する必要がない。デーモンがコールバック
・ルーチンをカーネル・プロセスに登録するとき、各デ
ーモンはコールバック・ルーチンを優先順位レベルと共
に登録する。後で、システムが遮断するとき、カーネル
は、最低優先順位レベルで始まり、最高優先順位レベル
をもつデーモンで終わる順序でデーモンを遮断する。こ
のように、従属デーモンを適当な順序で中断し、したが
ってデッドロックを防ぐことができる。
【0034】ステップ3の後に、ユーザ・アプリケーシ
ョン・プロセスおよびデーモン・プロセスがすべて、中
断されると、活動状況のままなのはカーネルとデバイス
・ドライバだけなので、新しい入出力活動はないはずで
ある。したがって、システムは非活動状態になるはずで
ある。
【0035】ユーザ・アプリケーション・プロセスおよ
びデーモンが停止された後、カーネルは引き続き、ステ
ップ4で様々なカーネル・サブシステムを中断する。カ
ーネルは、様々なカーネル・サブシステムを中断するた
めに、カーネル・サブシステムが最初に始動されたとき
に登録されていた中断コールバック・アドレスを使用し
て各サブシステムを呼び出す。デーモン・コールバック
・ルーチンと同様に、各カーネル・サブシステム・コー
ルバック・ルーチンは対応する優先順位レベルと共に登
録される。カーネルは、デッドロックが発生しないよう
に、コールバック・ルーチン優先順位レベルによって示
された順序で各カーネル・サブシステムを遮断する。
【0036】ステップ5で、uadmin(suspe
nd)システム・コールは引き続き、コンピュータ・ハ
ードウェアに最も近いUNIXオペレーティング・シス
テムの層を中断する。この層はデバイス・ドライバ層で
ある。中断動作は、システム中の各デバイス・ドライバ
を中断する。uadmin(suspend)システム
・コールは、各デバイス・ドライバを中断するために、
活動状況の各デバイス・ドライバに特定の標準DDIデ
バイス・ドライバ・コールを行う。本実施例では、ua
dmin(suspend)ルーチンは、デバイス・ド
ライバにシステム中断の準備を行わせる修正されたde
tach()ルーチンを呼び出す。
【0037】各デバイス・ドライバは、適当な中断パラ
メータを含むdetach()コールを受け取るとま
ず、着信入出力要求の処理を停止する。現入出力要求は
すべて完了される。最終的に、各デバイス・ドライバ
は、関連するハードウェア装置の状態をカーネル・メモ
リに記憶する責任を負う。デバイス・ドライバは、さら
にメモリを必要とする場合、カーネルからさらにメモリ
を要求することができる。後で、コンピュータ・システ
ムが再開されたとき、各デバイス・ドライバは、記憶さ
れているハードウェア装置状態情報を使用して、ハード
ウェア装置の状態を復元する。修正されたdetach
()ルーチンおよび対応するattach()ルーチン
に関する追加情報は、引用によって本明細書に合体した
「Method & Apparatus For A Power Management Pseudo
-Device Driver」と題する関連特許出願の開示に記載さ
れている。
【0038】ユーザ・アプリケーション・プログラム、
デーモン、カーネル・サブシステム、およびデバイス・
ドライバが停止された後、コンピュータ・システムは完
全に非活動状況になる。ステップ6で、uadmin
(suspend)ルーチンは有効なカーネル・メモリ
・ページをすべてディスクに書き込む。
【0039】図6を参照すると、UNIXオペレーティ
ング・システムを走らせるコンピュータのメモリ・マッ
プが示されている。すべてのユーザ・メモリ・ページ2
01がすでに、ディスク・スワップ空間に書き込まれて
いるので、ユーザ・ページをディスクに書き込む必要は
ない。したがって、システムは、カーネル、カーネル・
サブシステム、および関連するデバイス・ドライバによ
って所有されているメモリ・ページを書き込むだけよ
い。
【0040】uadmin(suspend)ルーチン
は、ハーデ・ディスク上で必要とされる空間の量を低減
するために、ハード・ディスクにデータを書き込む前に
データを圧縮しておく。カーネル状態データは、以前に
ルート・ファイル・システム上で留保されたファイルに
書き込まれる。カーネル状態データをルート・ファイル
・システムに書き込むことによって、前記データをブー
トアップ時に使用することができる。カーネル状態の圧
縮済みバージョンだけを書き込む(そして、ユーザ・ア
プリケーション状態を書き込まない)と、本発明の中断
動作によって作成されるシステム状態ファイルが、メイ
ン・メモリ全体をハード・ディスクに書き込む遮断手順
によって記憶される状態ファイルよりもずっと小さなも
のになることが理解されよう。たとえば、本発明によっ
て作成されるカーネル状態ファイルは、他の方法に必要
とされるディスク空間の量の約6分の1ですむ。
【0041】本発明は、カーネル・メモリを完全に書き
込むために、すでにUNIXオペレーティング・システ
ムに存在するプリミティブxx_dump()ルーチン
を使用する。xx_dump()ルーチンは最初、コン
ピュータ・システムがクラッシュする際にメモリ・コア
・ダンプを実行するように設計されていた。xx_du
mp()ルーチンは、以前にステップ1でxx_dum
pctl()によって作成された情報しか使用せずにフ
ァイルに情報を書き込む。各カーネル・ページは、ハー
ド・ディスク・ドライブに書き込まれるときに圧縮され
る。システムは、ステップ6を完了した後、完全に中断
され、電力を除去することができる。
【0042】再開動作 本発明の中断動作を使用して中断されたコンピュータ・
システムを再開するには、類似の手順を逆の順序で実行
する。図7は、本発明の中断動作を使用して中断された
コンピュータ・システムを再開するために実行される6
つのメイン・ステップを示す。
【0043】中断されているコンピュータ・システムを
再開する第1のステップは、記憶されているカーネル・
メモリ・ファイルを読み込むことである。UNIXオペ
レーティング・システムを使用するコンピュータ・シス
テムをブートすると、読取り専用メモリ(ROM)は、
ルート・ファイル・システムを含む記憶装置からブート
・ブロックを読み取ることによってプロセスを開始す
る。ROMは、ブート・ローダ・プログラムを記憶装置
から読み取り、次いで、次の実行のためにブート・ロー
ダ・プログラムに制御を渡す。
【0044】本発明では、図7のサブステップ101
で、正規ブート・ローダ・プログラムによって特殊なチ
ェックポイント再開(CPR)ブート・ローダ・プログ
ラムが読み込まれて実行される。CPRブート・ローダ
・プログラムは、図7のサブステップ102で、ルート
装置上に中断カーネル状態ファイルがあるかどうかを調
べるための検査を行う。サブステップ103で、ブート
・ローダが中断カーネル状態ファイルを検出しなかった
場合、システムは、通常のブート手順が実行されるサブ
ステップ105に進む。しかし、サブステップ103
で、ブート・ローダが、記憶されている有効なカーネル
状態ファイルを検出した場合、CPRブート・プログラ
ムは引き続き、中断カーネル状態ファイルをメイン・メ
モリにロードして、中断されているシステムを再開す
る。
【0045】サブステップ109で、CPRブート・プ
ログラムは、カーネル状態情報ファイルの第1のセクシ
ョンを取り込むようブート・ローダに要求する。CPR
ブート・ローダは次いで、第1のセクションの内容を調
べて、カーネルがロードされるときにメイン・メモリの
どのページがカーネルによって占有されるかを判定す
る。サブステップ109で、CPRブート・プログラム
は、カーネルによって使用されないいくつかのメモリ・
ページを判定し、次いでそれ自体およびブート・ローダ
・プログラムをそれらの空きメモリ・ページに移動す
る。CPRブート・プログラムおよびブート・ローダ・
プログラムが、カーネルによって使用されるメモリ・ペ
ージの外へ出された後、サブステップ111で、CPR
ブート・プログラムはカーネル状態ファイルの残りの部
分を取り込むようブート・ローダに要求する。ブート・
ローダがカーネルを取り込むと、サブステップ113
で、CPRは、各ページを圧縮解除して、メモリの正し
い領域に入れる。
【0046】カーネルがメイン・メモリに再格納された
後、カーネルはすべてのプロセスおよびサブシステムを
停止されたときと逆の順序で再始動することによって、
動作を再開する。
【0047】したがってステップ2で、カーネルはすべ
てのデバイス・ドライバを再始動する。カーネルは、各
デバイス・ドライバを再始動するために、特殊な再開パ
ラメータを含むattach()コマンドを各デバイス
・ドライバに発行する。各デバイス・ドライバは、関連
するハードウェア装置を、システムが中断される前の正
確な状態に復元することによって、再開パラメータを含
むattach()コマンドに応答する。デバイス・ド
ライバは、システムが中断される直前にメモリに記憶さ
れたハードウェア状態情報を使用して、ハードウェア装
置の状態を復元する。すべてのデバイス・ドライバが復
元された後、コンピュータ・システムは入出力動作を実
行することができる。
【0048】ステップ3で、システムが中断される前に
存在していたカーネル・サブシステムが再始動される。
各カーネル・サブシステムは、それ自体において再開コ
ールバック・ルーチンを実行することによって再開動作
を通知される。したがって、各カーネル・サブシステム
には、サービスを提供することを要求される前にセット
アップ・コード・シーケンスを実行する機会が与えられ
る。
【0049】カーネル・サブシステムが再始動された
後、ステップ4で、様々なカーネル・デーモンが再始動
される。カーネル・サブシステムに対する再始動ステッ
プと同様に、カーネルは、カーネル・デーモンに再開動
作を通知するコールバック・ルーチンを各カーネル・デ
ーモンで実行する。
【0050】最後に、ステップ5で、カーネルはユーザ
・アプリケーション・プロセスを再始動する。カーネル
は、各ユーザ・アプリケーション・プロセスを再始動す
る前に、ユーザ・アプリケーション・プロセスが再開動
作の準備ができるようにするSIGTHAW信号を各ユ
ーザ・アプリケーション・プロセスに発行する。ユーザ
・アプリケーション・プロセスは、SIGTHAW信号
を受け取ると、ユーザ・アプリケーション・プロセス自
体が中断される直前にSIGFREEZEルーチンの間
に記憶されたあらゆるプロセス状態を復元することがで
きる。SIGTHAWルーチンが実行された後、ユーザ
・アプリケーションが再始動される。この点で、コンピ
ュータ・システム全体が再び活動状況になり、中断され
る前と同様に動作する。
【0051】ステップ6、すなわち再開動作の最終ステ
ップは、システムを再始動した再開スレッドを終了する
ことである。再開スレッドは単に、それ自体を終了する
ことができる。再開スレッドは、ログイン・プロセス、
またはウィンドウ・システムにおける「ロックスクリー
ン」プロセスに変換して、セキュリティを実行すること
もできる。
【0052】特定の典型的な実施例に関して本発明を説
明したが、特許請求の範囲に記載した本発明の趣旨およ
び範囲から逸脱せずに当業者によって様々な修正を加え
られることが理解されよう。
【図面の簡単な説明】
【図1】 バッテリを使用してメイン・メモリ中の情報
がリフレッシュされる遮断手順を示す図(a)と、メイ
ン・メモリ中の情報がすべて非揮発性記憶装置に書き込
まれる遮断手順を示す図(b)である。
【図2】 コンピュータ・システムのブロック図であ
る。
【図3】 UNIXオペレーティング・システムの概念
図である。
【図4】 本発明の高速中断技法によって実行されるス
テップを含む流れ図である。
【図5】 本発明の高速中断技法によって実行される動
作の概念図である。
【図6】 UNIXオペレーティング・システムを走ら
せるコンピュータのメモリ・マップを示す図である。
【図7】 本発明の再開動作によって実行されるステッ
プを含む流れ図である。
【符号の説明】
10 中央演算処理装置、 12 メモリ装置、 14
入力装置、16 記憶装置、 18 表示装置、 4
0 デバイス・ドライバ層、41 デバイス・ドライ
バ、 50 デバイス・ドライバ・インタフェース・ド
ライバ・カーネル・インタフェース(DDI/DKI)
層、60 カーネル層、 64 カーネル・デーモン、
71 ユーザ・アプリケーション・プログラム。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムの状態を中断
    し、かつ保存する、コンピュータによって実施される方
    法において、 前記コンピュータ・システム中断の準備を行うステップ
    と、 前記コンピュータ・システム上で動作する実行スレッド
    を中断するステップと、前記コンピュータ・システムの
    メモリ中のオペレーティング・システムの状態を非揮発
    性記憶装置上に書き込むステップとを含むことを特徴と
    する方法。
  2. 【請求項2】 中断されたコンピュータ・システムの動
    作を再開する、コンピュータによって実施される方法に
    おいて、 オペレーティング・システムの状態を含む状態ファイル
    を非揮発性記憶装置から読み取るステップと、 前記コンピュータ・システムが中断されたときに前記コ
    ンピュータ・システム上で動作していた1組の実行スレ
    ッドを再活動化するステップとを含むことを特徴とする
    方法。
  3. 【請求項3】 コンピュータ装置において、 コンピュータ・プロセッサと、 前記コンピュータ・プロセッサに結合されたメモリ装置
    と、 前記メモリ装置に存在する、前記コンピュータ装置を制
    御するためのオペレーティング・システムと、 前記コンピュータ・プロセッサに結合された比揮発性記
    憶装置と、 前記コンピュータ・システムで動作する1組の実行スレ
    ッドを中断して、前記オペレーティング・システムの状
    態を前記比揮発性記憶装置上に記憶するための中断装置
    の各要素を備えることを特徴とする装置。
  4. 【請求項4】 さらに、前記コンピュータ・プロセッサ
    に結合された少なくとも1つのハードウェア装置と、 各前記ハードウェア装置を制御して、関連するハードウ
    ェア装置の状態を前記メモリ装置に保存するための少な
    くとも1つのデバイス・ドライバとを備えることを特徴
    とする請求項3に記載のコンピュータ装置。
  5. 【請求項5】 コンピュータ・システムを中断し、次い
    で再開する方法において、 前記コンピュータ・システム中断の準備を行うステップ
    と、 前記コンピュータ・システム上で動作する1組の実行ス
    レッドを中断するステップと、 前記コンピュータ・システムが中断されるように、前記
    コンピュータ・システムのメモリ中のオペレーティング
    ・システムの圧縮済みバージョンを非揮発性記憶装置上
    の状態ファイルに書き込むステップと、 オペレーティング・システムの状態を含む状態ファイル
    を非揮発性記憶装置から読み取るステップと、 前記1組の実行スレッドが中断されたときに前記システ
    ム上で動作していた前記1組の実行スレッドを再活動化
    するステップとを含むことを特徴とする方法。
JP7032931A 1994-01-31 1995-01-31 システムの状態を中断し、再開する方法およびそれができるコンピュータ装置 Pending JPH07219665A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/189,417 US5696897A (en) 1994-01-31 1994-01-31 Method and apparatus for a multi-layer system quiescent suspend and resume operation
US189,417 1994-01-31

Publications (1)

Publication Number Publication Date
JPH07219665A true JPH07219665A (ja) 1995-08-18

Family

ID=22697239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7032931A Pending JPH07219665A (ja) 1994-01-31 1995-01-31 システムの状態を中断し、再開する方法およびそれができるコンピュータ装置

Country Status (4)

Country Link
US (1) US5696897A (ja)
EP (1) EP0665497B1 (ja)
JP (1) JPH07219665A (ja)
DE (1) DE69507969T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681058B2 (en) 2004-09-10 2010-03-16 Fujitsu Limited Information processing apparatus and power supply control method
JP2014501976A (ja) * 2010-12-06 2014-01-23 マイクロソフト コーポレーション 高速コンピューター起動
US10061595B2 (en) 2010-12-06 2018-08-28 Microsoft Technology Licensing, Llc Fast computer startup

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592675A (en) * 1992-01-08 1997-01-07 Hitachi, Ltd. Computer controlled method and system capable of preserving information representing plural work states and recovering the work states
DE19541651C1 (de) * 1995-11-08 1997-01-30 Siemens Nixdorf Inf Syst Schnelleinschaltungsverfahren
US5928365A (en) * 1995-11-30 1999-07-27 Kabushiki Kaisha Toshiba Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states
KR0174711B1 (ko) * 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
JPH10269091A (ja) * 1997-03-24 1998-10-09 Canon Inc 情報処理装置及びその方法
US5968170A (en) * 1997-04-23 1999-10-19 Advanced Micro Devices, Inc. Primary swap size increase on a UNIX based computer system
US6119212A (en) * 1997-04-23 2000-09-12 Advanced Micro Devices, Inc. Root size decrease on a UNIX based computer system
US5991860A (en) * 1997-04-23 1999-11-23 Advanced Micro Devices, Inc. Root file system size increase on a unix based computer system
US5964874A (en) * 1997-04-23 1999-10-12 Advanced Micro Devices, Inc. Swap size decrease on a UNIX based computer system
KR100231707B1 (ko) * 1997-08-04 2000-01-15 정선종 통신 장비의 디엠에이 처리 방법 및 그 장치
DE19752615C1 (de) * 1997-11-27 1999-04-08 Siemens Nixdorf Inf Syst Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems
JPH11242631A (ja) 1998-02-26 1999-09-07 Toshiba Corp コンピュータシステムおよび同システムにおけるデータ保存/復元方法
US6173417B1 (en) * 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6486892B1 (en) 1999-04-07 2002-11-26 Joseph L. Stern System and method for accessing, manipulating and viewing internet and non-internet related information and for controlling networked devices
US6851073B1 (en) * 1999-07-26 2005-02-01 Microsoft Corporation Extensible system recovery architecture
US6820214B1 (en) * 1999-07-26 2004-11-16 Microsoft Corporation Automated system recovery via backup and restoration of system state
US6662310B2 (en) * 1999-11-10 2003-12-09 Symantec Corporation Methods for automatically locating url-containing or other data-containing windows in frozen browser or other application program, saving contents, and relaunching application program with link to saved data
US6631480B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods and systems for protecting data from potential corruption by a crashed computer program
US6630946B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods for automatically locating data-containing windows in frozen applications program and saving contents
JP2002278783A (ja) * 2001-03-19 2002-09-27 Funai Electric Co Ltd ファームウェア書き換えシステム
US7032120B2 (en) * 2002-07-18 2006-04-18 Agere Systems Inc. Method and apparatus for minimizing power requirements in a computer peripheral device while in suspend state and returning to full operation state without loss of data
JP2004127040A (ja) * 2002-10-03 2004-04-22 Internatl Business Mach Corp <Ibm> 情報処理装置、制御方法、プログラム、及び記録媒体
US7562265B2 (en) * 2004-03-23 2009-07-14 International Business Machines Corporation Method, apparatus and program storage device for providing self-quiesced logic to handle an error recovery instruction
US7308609B2 (en) * 2004-04-08 2007-12-11 International Business Machines Corporation Method, data processing system, and computer program product for collecting first failure data capture information
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7480791B2 (en) * 2005-09-15 2009-01-20 Intel Corporation Method and apparatus for quick resumption where the system may forego initialization of at least one memory range identified in the resume descriptor
US7523323B2 (en) * 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
US20070234028A1 (en) * 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
US7613913B2 (en) * 2006-03-21 2009-11-03 Silicon Laboratories Inc. Digital architecture using one-time programmable (OTP) memory
US7900074B2 (en) * 2006-06-02 2011-03-01 Apple Inc. Method and apparatus for quickly reanimating devices from hibernation
US7734954B2 (en) * 2007-01-03 2010-06-08 International Business Machines Corporation Method, computer program product, and system for providing a multi-tiered snapshot of virtual disks
US8190624B2 (en) * 2007-11-29 2012-05-29 Microsoft Corporation Data parallel production and consumption
US9088757B2 (en) 2009-03-25 2015-07-21 Eloy Technology, Llc Method and system for socially ranking programs
US9445158B2 (en) 2009-11-06 2016-09-13 Eloy Technology, Llc Distributed aggregated content guide for collaborative playback session
US8543849B2 (en) 2010-12-06 2013-09-24 Microsoft Corporation Fast computer startup
JP5385347B2 (ja) * 2011-08-02 2014-01-08 レノボ・シンガポール・プライベート・リミテッド メイン・メモリのフリー・メモリ量を拡大する方法およびコンピュータ
CN104794025B (zh) * 2015-04-27 2017-11-10 四川效率源信息安全技术股份有限公司 快速校验存储设备的方法
US10831394B2 (en) * 2018-08-27 2020-11-10 International Business Machines Corporation Live upgrade of storage device driver using shim application
CN112306714B (zh) * 2020-10-30 2024-12-20 联想(北京)有限公司 控制方法及装置
US20250335286A1 (en) * 2024-04-25 2025-10-30 Microsoft Technology Licensing, Llc System and method for online machine issue resolution using live kernel dump file analysis

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253418A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US5093915A (en) * 1988-11-02 1992-03-03 Xerox Corporation Method for selectively loading bootable fiber to control apparatus based upon the corresponding bootable attributes
US5312752A (en) * 1989-07-31 1994-05-17 Trustees Of Boston University Specific antibodies against the DNA-binding domain of and immunoassays to determine the presence and functional status of estrogen receptor proteins
US5155842A (en) * 1989-08-14 1992-10-13 Microsoft Corporation Logical event notification method and apparatus
US5193176A (en) * 1990-10-17 1993-03-09 Powercard Supply C.A. Computer work saving during power interruption
US5297282A (en) * 1991-05-29 1994-03-22 Toshiba America Information Systems, Inc. Resume processing function for the OS/2 operating system
JPH077317B2 (ja) * 1991-06-10 1995-01-30 松下電器産業株式会社 システム再起動装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681058B2 (en) 2004-09-10 2010-03-16 Fujitsu Limited Information processing apparatus and power supply control method
US9459690B2 (en) 2004-09-10 2016-10-04 Fujitsu Limited Information processing apparatus and power supply control method
JP2014501976A (ja) * 2010-12-06 2014-01-23 マイクロソフト コーポレーション 高速コンピューター起動
US10061595B2 (en) 2010-12-06 2018-08-28 Microsoft Technology Licensing, Llc Fast computer startup

Also Published As

Publication number Publication date
EP0665497A1 (en) 1995-08-02
US5696897A (en) 1997-12-09
EP0665497B1 (en) 1999-03-03
DE69507969D1 (de) 1999-04-08
DE69507969T2 (de) 1999-10-07

Similar Documents

Publication Publication Date Title
JPH07219665A (ja) システムの状態を中断し、再開する方法およびそれができるコンピュータ装置
EP3719637B1 (en) Runtime firmware activation for memory devices
JP7087029B2 (ja) 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構
US5127098A (en) Method and apparatus for the context switching of devices
US6098158A (en) Software-enabled fast boot
US10127073B2 (en) Operating system context switching
JP5106036B2 (ja) コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US7275183B2 (en) Method of restoring processes within process domain
TWI436199B (zh) 電源管理控制器與方法
US5016166A (en) Method and apparatus for the synchronization of devices
CN100375034C (zh) 在计算机系统中用于对进程进行休眠的方法和系统
US8230204B2 (en) Migration of system images
JPH06236284A (ja) コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
JP2004326749A (ja) マルチスレッド・プロセッサを単一スレッド・モード及び同時マルチスレッド・モードの間で動的に切り替える装置及び方法
WO1999015964A1 (en) Method and system for restoring the state of physical memory as the focus changes among application programs in a computer
US20160299777A1 (en) Request processing using vm functions
JPH07311749A (ja) マルチプロセッサシステム及びカーネル置換方法
JP2002132741A (ja) プロセッサ追加方法、計算機及び記録媒体
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US5016161A (en) Method and apparatus for the flow control of devices
JP3820230B2 (ja) 情報処理装置並びに省電力方法及びプログラム
JPH11288366A (ja) 情報処理方法及び装置並びに記憶媒体
JPH11102238A (ja) コンピュータシステムおよびそのシステムにおけるサスペンド制御方法
US12555299B2 (en) Scalable graphics processing using dynamic shader engine allocation
JPH04213733A (ja) 仮想プロセッサ方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050405