JP2012252576A - 情報処理装置、起動方法およびプログラム - Google Patents

情報処理装置、起動方法およびプログラム Download PDF

Info

Publication number
JP2012252576A
JP2012252576A JP2011125345A JP2011125345A JP2012252576A JP 2012252576 A JP2012252576 A JP 2012252576A JP 2011125345 A JP2011125345 A JP 2011125345A JP 2011125345 A JP2011125345 A JP 2011125345A JP 2012252576 A JP2012252576 A JP 2012252576A
Authority
JP
Japan
Prior art keywords
kernel
initialization
memory
hibernation
hibernation image
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.)
Granted
Application number
JP2011125345A
Other languages
English (en)
Other versions
JP2012252576A5 (ja
JP5783809B2 (ja
Inventor
Kensuke Kato
謙介 加藤
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2011125345A priority Critical patent/JP5783809B2/ja
Priority to US13/484,125 priority patent/US20120311240A1/en
Priority to CN201210178824.9A priority patent/CN102981864B/zh
Publication of JP2012252576A publication Critical patent/JP2012252576A/ja
Publication of JP2012252576A5 publication Critical patent/JP2012252576A5/ja
Application granted granted Critical
Publication of JP5783809B2 publication Critical patent/JP5783809B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Abstract

【課題】 カーネル機能によるハイバネーション起動は、通常の起動シーケンスに伴う処理時間を要する為、起動時間が長くなってしまう。
【解決手段】 オペレーティングシステム起動において、メモリ管理機構の初期化が行われるより前に、ハイバネーション起動処理を行うかどうかを判定する。ハイバネーション起動処理を行う場合、メモリ管理領域のサイズをカーネル初期化のために必要なサイズにまで抑え、ハードウェア初期化と並行してハイバネーションイメージを読み込む。なお、制限されたメモリ管理領域は、ハイバネーションイメージを読み込むことで制限のない状態に復帰する。
【選択図】 図2

Description

発明の詳細な説明
本発明は、ハイバネーション機構を有する情報処理装置を高速起動する技術に関する。
近年、情報処理装置において待機状態の消費電力を低減することができるハイバネーションが注目されている。
ハイバネーションとは、システム中断機構である。システムが起動している状態でメモリやCPUレジスタの情報(以下では、「ハイバネーションイメージ」と称する)をハードディスクなどの不揮発性記憶装置に退避する。その後電源を切っても、次回起動時は当該ハイバネーションイメージを読み込むことで以前と同じ状態に復帰する(以下では、「ハイバネーション起動」と称する)。ハイバネーションは、システムの起動時間短縮を目的として用いられることもある。
ハイバネーション起動は大きく2種類に分類される。BIOS機能もしくはブートローダ機能により復帰を行う方式と、オペレーティングシステムのカーネル機能により復帰を行う方式が存在する。
カーネル機能によるハイバネーション起動では、カーネルの初期化をほぼ全て行った後、予め不揮発性記憶装置に記憶されたハイバネーションイメージを読み込むことで状態の復帰を行う。BIOSによるハイバネーションと比較すると、通常の起動シーケンスを実行することでデバイスの初期化を行う為、汎用性に優れており、様々な機器のデバイスドライバをハイバネーションに対応させることが容易である。
特開2010−157017号公報
しかし、カーネル機能によるハイバネーションは、BIOSやブートローダによるハイバネーションと比較すると、起動シーケンスに伴う処理時間を要することから、起動時間が長くなってしまう。
そこで、特許文献1のように、ハイバネーション起動時に初期化不要なデバイスを初期化対象から外すことで、起動時間を短縮するものがある。しかしながら、初期化対象から外すデバイスの選別をしなければならず、汎用性を欠いてしまう。
一般的に、DMAコントローラを用いると、特定の処理と並行し記憶装置間で情報を読み書きすることができる。ハイバネーション起動に本機構を組み込むことができると、カーネル初期化と並行して事前にハイバネーションイメージを読み込むことが可能になり、ハイバネーション起動時間を短縮することができる。ただし、Linux(登録商標)などの複雑なメモリ管理機構を備えたカーネル上では、DMAコントローラがカーネル管理のメモリ領域の任意のアドレスにデータを書き込むことができない。そのため、従来のハイバネーション起動方式では、カーネル初期化と並行してハイバネーションイメージを並行して読み込むことが困難である。
本発明に係る情報処理装置は、揮発性メモリと、ハイバネーションイメージを保持する不揮発性メモリと、前記揮発性メモリに展開するカーネルの初期化と並行して、前記不揮発性メモリに保持されている前記ハイバネーションイメージの一部を、前記カーネルの初期化に利用しない領域へ読み込む読み込み手段と、前記カーネルの初期化の後に残りのハイバネーションイメージを前記揮発性メモリに読み込んでシステムを起動させる起動手段とを有することを特徴とする。
本発明によればカーネルの初期化と並行してハイバネーションイメージを先読みすることができるので、従来に比べシステムの高速な起動が可能になる。
情報処理装置の構成を示す概略図である。 本発明のハイバネーション機構の機能構成を示す概略図である。 ハイバネーションイメージの生成処理を示すフローチャートである。 ハイバネーションイメージのフォーマットを示す図である。 システムの起動処理を示すフローチャートである。 カーネルとDMAコントローラのアクセス領域の差異について示す図である。 ハイバネーションイメージ復帰処理を示すフローチャートである。
<実施形態1>
図1は、本発明の1実施形態を適用可能な情報処理装置の利用例を示す図である。
図1において、101はCPUであり、102はダイレクトメモリアクセスコントローラ(以下、DMACと称す)である。103はメモリでありDRAM等の安価で大容量な揮発性メモリ(SDRAMなど)を含む、CPU101もしくはDMAC102によってデータの読み書きが行われる。104は入出力制御部(以下、I/Oコントローラと称す)であり、105は不揮発性記憶装置(フラッシュメモリ、HDD、SSDなどの不揮発性メモリ)である。
CPU101は不図示のROMのプログラムをメモリ103に展開し、メモリ103からプログラムをフェッチして後述の処理を実行する。
ハイバネーションにより生成されるハイバネーションイメージは、不揮発性記憶装置105に保存され、I/Oコントローラ104を介して読み書きが行われる。106はその他のデバイスであり、CPU101によって初期化される。デバイス106は複数あってもよい。
図2は、本発明のハイバネーション機構の構成を示す図である。201a、201b、201cはどれも同一のメモリである。ここで、201aはハイバネーションイメージ退避時のメモリであり、201bは並行読み込み時のメモリであり、201cは並行読み込み後におけるハイバネーションイメージ復帰時のメモリである。202はハイバネーションイメージを記憶する為の不揮発性記憶装置である。不揮発性記憶装置202は、カーネルコードやハイバネーションイメージ、スワップデータを保持する。
203は退避部である。ユーザがシステム中断状態への移行を要求すると、退避部203は、ハイバネーションイメージ及びスワップデータをメモリ201aのデータを不揮発性記憶装置202へ出力する。
204はメモリ制限部であり、205はメモリ初期化機構である。メモリ制限部204はメモリ初期化機構205に対してオペレーティングシステムが使用可能なメモリ領域サイズを制限し、メモリ初期化機構205はこの情報をもとにメモリ201bの初期化を行う。206はカーネル初期化機構である。カーネル初期化機構206は、不揮発性記憶装置に格納されているカーネルコードに基づいて、メモリ201bのメモリ初期化機構205によって初期化された領域であるカーネル管理領域を用いてカーネルの初期化を行う。
207は並行読み込み部であり、208はDMACである。並行読み込み部207は、DMAC208を用いることでカーネル初期化機構206の初期化処理と並行し、不揮発性記憶装置202に保存されたハイバネーションイメージを読み込む。なお、初期化処理中の並行読み込み部207におけるDMAC208のハイバネーションイメージ出力先は、メモリ初期化機構205によって初期化されていない領域である、カーネル管理外領域に限定される。
209は復帰部である。復帰部209は、不揮発性記憶装置202からメモリ201cへ、並行読み込み部207によって読み込んでいないハイバネーションイメージを、カーネル管理外領域と、カーネル管理領域へ読み込む。復帰部209が各ハイバネーションイメージを読み込むことで、メモリ201cは一部のデータを除きメモリ201aの状態に復元される。
本実施形態では、Linux(登録商標)のバージョン2.6.18を従来手法として、ハイバネーション起動の高速化について説明する。
まず、本実施形態におけるハイバネーションイメージ生成の流れを示す。
図3は、システム中断状態への移行が要求されてからシステムを停止するまでの流れを示したフローチャートである。ステップS300でプロセススケジューラの停止、ステップS301で各デバイスの停止、ステップS302でスワップアウト、ステップS303でCPUレジスタの退避を行う。ステップS304で、ハイバネーションイメージ生成中であるかどうかを判定する。通常はハイバネーションイメージ生成中であるためステップS305へ遷移する。ここで、ステップS308へ遷移するケースはハイバネーション起動によりシステムがステップS303直後の状態に復元されたケースでありその詳細については後述する。ステップS305でハイバネーションイメージの出力、ステップS306で各デバイスの再開、ステップS307でシステムの停止を行う。一方、ステップS308では各デバイスの再開、ステップS309でプロセススケジューラの再開を行う。ステップS306とステップS308の処理内容は同一である。
ユーザ(又はユーザアプリケーション)は、仮想ファイルシステムへアクセスすることで、システム中断状態への移行を要求する。ステップS300、ステップS301、ステップS302、ステップS306、ステップS307、ステップS308、ステップS309の実行には、Linux(登録商標)にもある従来どおりの機能を用いる。
ステップS302では、メモリに展開しているプロセスに関するデータを予めメモリから不揮発性記憶装置のスワップ領域へスワップアウトすることで、作業領域の確保し、ハイバネーションイメージサイズを縮小させ、起動時間を短縮する。スワップアウトサイズは、予めユーザ(又はユーザアプリケーション)が仮想ファイルシステムにアクセスして指定する。
ステップS303は、専用の関数の中で行う。そして、関数から抜ける際に値の書き戻しが必要なCPU汎用データレジスタの値を、パラメータとしてメモリ上の変数へ退避する。x86プロセッサでは、esp、ebx、ebp、esi、ediが相当する。復帰時にはメモリ及び上記CPUレジスタを書き戻して関数から抜けることで、システム停止前に実行している関数に復帰することができる。
ステップS305では、メモリ上に残っているデータをハイバネーションイメージとして不揮発性記憶装置へ出力する。図4は、ハイバネーションイメージのフォーマットを示した図である。識別子400は、有効なハイバネーションイメージであるかどうかを示す。カーネル管理外メモリ401は、カーネル管理外領域に含まれるデータ数を示す。データ総数402は、カーネル管理領域及びカーネル管理外領域の両方の領域に含まれるデータ数の合計を示す。アドレス403は、ハイバネーションイメージのアドレス群を格納する。データ404は、ハイバネーションイメージのデータ群を格納する。400〜403はヘッダ部、404はデータ部である。
データ404は、メモリ103上のデータをページ単位で格納する。ただし、カーネルのコード領域及びハイバネーション処理に関するグローバル変数(以下、ハイバネーショングローバル変数と称す)、スワップアウトしたデータについては含めない。なお、アドレス403とデータ404は対応関係にあり、データ404のN番目に格納されたデータの配置先は、アドレス403のN番目に格納されたアドレスとなる。アドレス403の情報の個数と、データ404の情報の個数は、それぞれデータ数402と等しい。
アドレス403及びデータ404に対応づけて格納するデータは、前方にカーネル管理外領域のデータを、後方にカーネル管理領域のデータを配置することが好ましい。これは、カーネル初期化時にカーネル管理メモリへの復帰をさせないことが目的である。並行読み込み部では、読み込み可能なデータ数をカーネル管理外データ数401に制限することでデータ404の前方のデータのみ読み込むようにし、カーネル管理メモリへの読み込みを行わないようにする。
ハイバネーションイメージの格納は、ハイバネーション起動の都合上、パーティションとして定義されていない領域(非パーティション領域)へ、特定のセクタから順に行う。このセクタ番号は、予めカーネルのコード領域に直接設定しておくことが好ましい。また、デバイスを停止しているためLinux(登録商標)の機能を用いて不揮発性記憶装置へデータを出力することができない。そのため、専用の出力機構をカーネルのコード領域に追記し、これを利用して不揮発性記憶装置への出力を行う。
次に、本実施形態におけるハイバネーション起動の流れを示す。
図5は、情報処理装置がONになりシステムが起動するまでのフローチャートである。ステップS500では、BIOSの初期化を行う。ステップS501では、ブートローダがカーネルのロード及び展開を行う。ステップS502では、不記憶性記憶装置105にハイバネーションイメージが存在するかどうかを確認する。ハイバネーションイメージが存在する場合、ステップS503aでカーネルの初期化を行い、ステップS504でハイバネーションイメージを復帰し、ハイバネーション起動を完了する。ステップS503aでは、カーネル初期化と並行してDMACによる並行読み込みを行う。ハイバネーションイメージが存在しない場合は、通常起動するためにステップS503bでカーネルの初期化を行い、システムの起動を完了する。なお、ステップS502とステップS504はカーネル初期化処理の一部として実行されてもよい。
ステップS502では、DMACを初期化し、ハイバネーションイメージ格納先となる不揮発性記憶装置の特定セクタを先頭とする領域からメモリ103へハイバネーションイメージのヘッダ部を読み込み、CPU101の処理によってハイバネーションイメージの有無を確認する。なお、ヘッダ部の読み込み先は、復帰時に上書きされることを避けるため、ハイバネーショングローバル変数へ行うことが好ましい。識別子400に所定の情報が書き込まれている場合、ハイバネーションイメージが不揮発性記憶装置に格納されていると判定できる。そして、不揮発性記憶装置の識別子400の情報をクリアしてハイバネーション起動を開始する。一方で、ハイバネーションイメージが不揮発性記憶装置に格納されていないと判定される場合、ステップS503bにおいてカーネル初期化を行い、システムを通常起動する。
Linux(登録商標)独自のハイバネーション機構では、カーネル機能の初期化を完了した後にハイバネーションイメージの読み込みを行うため、カーネル機能を用いてハイバネーションイメージを読み込む際に不揮発性記憶装置のパーティション情報やファイル情報を利用することができる。しかし、本実施形態の手法では、カーネル初期化の開始と並行してハイバネーションイメージの読み込みを開始するため、前述のパーティション情報を利用することはできない。従って、パーティション情報では区切られない領域(パーティション情報によって定義しない領域)を不揮発性記憶装置に設け、ファイルシステムに依存しない型式の独自フォーマットのデータにしたハイバネーションイメージをこの領域に格納することが好ましい。
ステップS503aのカーネルの初期化は、ステップS503bのハイバネーションイメージを利用しない初期化と比べて大きく2点異なる。
まず1点目の相違点は、初期化をするシステム(カーネル)が利用可能なメモリサイズに制限を加える点である。Linux(登録商標)におけるメモリ管理機構による初期化では、BIOSから得られたメモリマップをもとにメモリの初期化を行う。一方、本実施形態では、Linux(登録商標)の機能を用いてメモリの初期化を行う前にメモリマップの書き換えを行う。
メモリマップの書き換えでは、特定の値(アドレス)を指定することにより、その値(アドレス)までのメモリ領域のみをカーネルに使用させるように設定することができる。この値として、カーネルの初期化(システム初期化)を完了する為の作業領域としての最低限必要なサイズ以上を指定することが好ましい。変更した領域サイズ(メモリマップ)は、システム復帰後の動作に影響を与えないので特別な処理により戻す必要はない。これは、ハイバネーションイメージを読み込むことによって、領域サイズに関するデータが上書きされるためである。上述で説明したカーネルに使用させるメモリ領域(以降、カーネル管理領域)を設定するための情報は、カーネルのコード領域に直接設定しておくことが好ましい。
以上の処理により、カーネル管理領域とカーネル管理外領域の2種類の領域をメモリ103に確保する。なお制限サイズ比べて十分なサイズのメモリが搭載されている場合、カーネル管理領域のサイズは制限サイズと等しくなり、そしてメモリの全体サイズからカーネル管理領域を差し引いたサイズがカーネル管理外領域に相当する(さらに別の領域を設けてもよい)。しかし、制限サイズと比べメモリが十分に搭載されていない場合、カーネル管理外領域は確保しない。
次に2点目の相違点は、カーネル初期化と並行して、ハイバネーションイメージを不揮発性記憶装置105からメモリ103へ読み込む点である。
並行読み込みの手段としてDMAC(DMAコントローラ)を用い、ハイバネーションイメージの退避直前メモリ配置を復元するように、ハイバネーションイメージをメモリに読み込む。ただし、全メモリ領域にハイバネーションイメージを一度に復帰しようとすると、カーネル管理領域はカーネル初期化において利用されるため、初期化処理に利用するコードが上書きされてしまう恐れがある。その為、並行読み込み部の段階では、メモリの初期化を行わなかったカーネル管理外領域にのみハイバネーションイメージを読み込む。従って、カーネル管理外領域が確保されていない場合、並行読み込みは行わない。
この並行読み込みについて示したものが図6である。600はメモリであり、カーネル管理領域600aとカーネル管理外領域600bを有する。601はCPU101によって実行されているカーネルであり、CPU101によってカーネル管理領域600aにのみアクセスする。602はDMAC、603は不揮発性記憶装置であり、DMAC602はカーネルによる初期化中はカーネル管理外領域600bにのみハイバネーションイメージを転送する。
DMAC602は、データ転送に用いるパラメータ(転送元アドレス、転送先アドレス、データサイズ)をCPU101により指定すると、一定サイズを上限として不揮発性記憶装置603からメモリへCPUとは非同期に転送を行う。出力完了後は、CPU101により再び新たなパラメータを指定する必要がある。そこで、DMAC602が所定サイズの転送を完了したことをトリガとしてCPU101に割り込みをかけるように設定し、アドレス403をもとに次に読むべきデータを指定して新たな読み込みを実行することが好ましい。また、Local APIC(Advanced Programmable Interrupt Controller)タイマを利用して一定時間ごとに割り込みを発生させ、CPUがDMACの読み込み状況を確認し、読み込みが完了していればアドレス403をもとに次に読むべきデータを指定して新たな読み込みを実行するようにしてもよい。
DMAC602によるハイバネーションイメージの並行読み込みは、カーネル管理外領域に読む込むべき全てのハイバネーションイメージを読み込み終えるか、カーネルによる初期化終了後にハイバネーションイメージをカーネル管理領域・管理外領域を問わず読み込み始める直前まで継続して行われる。
ただし、ATA(Advanced Technology Attachment)の初期化中はDMA転送を行うことができない。そのため、ATAの初期化前にDMA転送の完了を待ちDMA転送を一時停止し、ATAの初期化後にDMA転送を再開する。
ステップS504では、不揮発性記憶装置603のハイバネーションイメージのうちのメモリ600に読み込んでいない部分をメモリ600へ読み込む。
図7は、ステップS504の詳細であり、本実施形態におけるハイバネーションイメージ復帰処理の流れである。ステップS700でプロセススケジューラの停止、ステップS701でデバイスの停止、ステップS702でスタックの切り替え、ステップS703でDMACによる並行読み込みの停止、ステップS704でCPU101によるハイバネーションイメージの読み込み、ステップS705でCPUレジスタの復帰を行う。
ステップS702では、カーネル初期化用のスタックからハイバネーションイメージ復帰用のスタックに切り替えを行う。ハイバネーションイメージ復帰用のスタックは、復帰中に内容が上書きされないよう、ハイバネーションイメージ復帰中に利用されないメモリ領域を指定する。なお、スタックの復帰はS705で行う。ステップS703では、動作中のDMACが停止するまで待機を行う。既に並行読み込みが完了している場合、待機は行わない。
ステップS704では、カーネル管理外領域に読み込むべきハイバネーションイメージの未読み込み部分と、カーネル管理領域に読み込むべきハイバネーションイメージの部分を読み込む。この処理を、DMA転送済みカウンタがデータ数402と等しくなるまで繰り返す。
ステップS705は、専用の関数の中で行う。まず、TLB(Translation Lookaside Buffer)が有ればTLBフラッシュを行う。x86プロセッサでこれを行うには、CR3レジスタの値を一度他のレジスタに退避し、再び退避した値でCR3レジスタを上書きする。そして、CPU退避時に用いた変数から汎用データレジスタへデータを復帰する。さらに、不揮発性記憶装置202へスワップアウトしたスワップデータについても復帰させる。
上記関数から抜けること、ハイバネーショングローバル変数やメモリの未使用領域を除き、ステップS303直後と同一の状態へ復帰することができる。ステップS304では、ハイバネーションイメージ生成中ではないため判定結果が偽となりS308へ遷移する。この判定には、ハイバネーショングローバル変数を用いる。ステップS308で各デバイスを再開し、ステップS309でプロセススケジューラの再開を行い、ハイバネーション起動を完了する。
ステップS302でスワップアウトしたデータについては、システム復帰後にストレージからメモリへ読み込む。例えば、Linux(登録商標)が備えるスワップ機構同様、ページフォルト発生に応じてスワップデータをメモリへ書き戻す。なお、カーネル初期化中にハイバネーションイメージの全てを並行してメモリに転送できるような場合には、ステップS703をスキップしカーネル管理領域についてはカーネルのメモリ管理機能で解放する等してもよい。
以上のように本実施形態では、ハイバネーションイメージを利用して、システムを再び起動する際に、カーネルによる初期化と並行してハイバネーションイメージの部分を読み込むことにより、従来の方法と比べて高速にシステムを復元することができる。また、本実施形態によればハイバネーション起動において、メモリ管理機構によるメモリの初期化時間を短縮することもできる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. 揮発性メモリと、
    ハイバネーションイメージを保持する不揮発性メモリと、
    前記揮発性メモリに展開するカーネルの初期化と並行して、前記不揮発性メモリに保持されている前記ハイバネーションイメージの一部を、前記カーネルの初期化に利用しない領域へ読み込む読み込み手段と、
    前記カーネルの初期化の後に残りのハイバネーションイメージを前記揮発性メモリに読み込んでシステムを起動させる起動手段と
    を有することを特徴とする情報処理装置。
  2. 前記揮発性メモリに、前記カーネルの初期化に利用するカーネル管理領域と前記カーネルの初期化に利用しないカーネル管理外領域とを割り当てるメモリ管理手段をさらに有することを特徴とする請求項1に記載の情報処理方法。
  3. 前記起動手段は、前記不揮発性メモリに前記ハイバネーションイメージが退避されていない場合は通常起動を行うことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記不揮発性メモリに前記ハイバネーションイメージを退避させる退避手段をさらに有することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 退避手段は、ファイルシステムに依存しない型式のファイルのハイバネーションイメージを前記不揮発性メモリに退避することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記メモリ管理手段は、前記カーネル管理領域のサイズを、前記カーネルの初期化に最低限必要なサイズ以上とすることを特徴とする請求項2に記載の情報処理装置。
  7. 前記読み込み手段は、DMAコントローラを用い、前記不揮発性メモリに保持されている前記ハイバネーションイメージを前記カーネルの初期化に利用しない領域へ読み込む
    ことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 揮発性メモリと、ハイバネーションイメージを保持する不揮発性メモリと、を有する情報処理装置の起動方法であって、
    前記揮発性メモリに展開するカーネルの初期化と並行して、前記不揮発性メモリに保持されている前記ハイバネーションイメージの一部を、前記カーネルの初期化に利用しない領域へ読み込む読み込み工程と、
    前記カーネルの初期化の後に残りのハイバネーションイメージを前記揮発性メモリに読み込んでシステムを起動させる起動工程とを有することを特徴とする起動方法。
  9. 揮発性メモリと、ハイバネーションイメージを保持する不揮発性メモリと、を備えるコンピュータを、
    前記揮発性メモリに展開するカーネルの初期化と並行して、前記不揮発性メモリに保持されている前記ハイバネーションイメージの一部を、前記カーネルの初期化に利用しない領域へ読み込む読み込み手段と、
    前記カーネルの初期化の後に残りのハイバネーションイメージを前記揮発性メモリに読み込んでシステムを起動させる起動手段として機能させることを特徴とするプログラム。
JP2011125345A 2011-06-03 2011-06-03 情報処理装置、起動方法およびプログラム Active JP5783809B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011125345A JP5783809B2 (ja) 2011-06-03 2011-06-03 情報処理装置、起動方法およびプログラム
US13/484,125 US20120311240A1 (en) 2011-06-03 2012-05-30 Information processing apparatus, information processing method, and storage medium
CN201210178824.9A CN102981864B (zh) 2011-06-03 2012-06-01 信息处理装置和信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011125345A JP5783809B2 (ja) 2011-06-03 2011-06-03 情報処理装置、起動方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2012252576A true JP2012252576A (ja) 2012-12-20
JP2012252576A5 JP2012252576A5 (ja) 2014-07-17
JP5783809B2 JP5783809B2 (ja) 2015-09-24

Family

ID=47262587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011125345A Active JP5783809B2 (ja) 2011-06-03 2011-06-03 情報処理装置、起動方法およびプログラム

Country Status (3)

Country Link
US (1) US20120311240A1 (ja)
JP (1) JP5783809B2 (ja)
CN (1) CN102981864B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085907A (ja) * 2012-10-25 2014-05-12 Canon Inc 情報処理装置、起動方法およびプログラム
JP2014085908A (ja) * 2012-10-25 2014-05-12 Canon Inc 情報処理装置、起動方法およびプログラム
JP2014085909A (ja) * 2012-10-25 2014-05-12 Canon Inc 情報処理装置、起動方法およびプログラム
JP2015127945A (ja) * 2013-12-27 2015-07-09 財團法人工業技術研究院Industrial Technology Research Institute ハイバネーションから復帰するための電子機器及び方法
JP2015155837A (ja) * 2014-02-20 2015-08-27 株式会社島津製作所 液体クロマトグラフとそれに用いるカラムオーブン
JP5804176B1 (ja) * 2014-12-19 2015-11-04 富士ゼロックス株式会社 情報処理装置
JP2016506583A (ja) * 2013-12-10 2016-03-03 華為技術有限公司Huawei Technologies Co.,Ltd. オペレーティングシステムリカバリー方法、装置、及び端末デバイス
US9600369B2 (en) 2013-12-10 2017-03-21 Huawei Technologies Co., Ltd. Operating system recovery method and apparatus, and terminal device
US10587802B2 (en) 2017-02-21 2020-03-10 Canon Kabushiki Kaisha Electronic device and control method thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904559B2 (en) * 2012-10-25 2018-02-27 Canon Kabushiki Kaisha Information processing apparatus and activation method therefor for processing data of a hibernation image
US10095435B1 (en) * 2015-01-09 2018-10-09 Altera Corporation Methods for initializing memory devices
JP2017162283A (ja) * 2016-03-10 2017-09-14 富士通株式会社 スマート装置、スワップ方法及びスワッププログラム
CN106331863A (zh) * 2016-08-16 2017-01-11 Tcl集团股份有限公司 一种Android系统电视的关机控制方法及装置、Android系统电视
CN112346789A (zh) * 2020-11-06 2021-02-09 中国电子信息产业集团有限公司 双系统休眠及唤醒方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334383A (ja) * 2006-06-12 2007-12-27 Sony Corp 情報処理装置とその起動方法およびプログラム
JP2009099092A (ja) * 2007-10-19 2009-05-07 Denso Wave Inc 携帯型情報端末
JP2010157017A (ja) * 2008-12-26 2010-07-15 Toshiba Corp 情報処理装置の制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883037B2 (en) * 2001-03-21 2005-04-19 Microsoft Corporation Fast data decoder that operates with reduced output buffer bounds checking
US7900074B2 (en) * 2006-06-02 2011-03-01 Apple Inc. Method and apparatus for quickly reanimating devices from hibernation
WO2010058440A1 (ja) * 2008-11-19 2010-05-27 富士通株式会社 メモリ初期化方法、メモリ初期化プログラム
US20110107020A1 (en) * 2009-10-30 2011-05-05 Duan Binghua Hibernation solution for embedded devices and systems
JP5121896B2 (ja) * 2010-08-11 2013-01-16 株式会社東芝 マルチコアプロセッサシステムおよびマルチコアプロセッサ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334383A (ja) * 2006-06-12 2007-12-27 Sony Corp 情報処理装置とその起動方法およびプログラム
JP2009099092A (ja) * 2007-10-19 2009-05-07 Denso Wave Inc 携帯型情報端末
JP2010157017A (ja) * 2008-12-26 2010-07-15 Toshiba Corp 情報処理装置の制御方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085907A (ja) * 2012-10-25 2014-05-12 Canon Inc 情報処理装置、起動方法およびプログラム
JP2014085908A (ja) * 2012-10-25 2014-05-12 Canon Inc 情報処理装置、起動方法およびプログラム
JP2014085909A (ja) * 2012-10-25 2014-05-12 Canon Inc 情報処理装置、起動方法およびプログラム
JP2016506583A (ja) * 2013-12-10 2016-03-03 華為技術有限公司Huawei Technologies Co.,Ltd. オペレーティングシステムリカバリー方法、装置、及び端末デバイス
US9600369B2 (en) 2013-12-10 2017-03-21 Huawei Technologies Co., Ltd. Operating system recovery method and apparatus, and terminal device
JP2015127945A (ja) * 2013-12-27 2015-07-09 財團法人工業技術研究院Industrial Technology Research Institute ハイバネーションから復帰するための電子機器及び方法
US9594572B2 (en) 2013-12-27 2017-03-14 Industrial Technology Research Institute Electronic apparatus and method for resuming from hibernation
JP2015155837A (ja) * 2014-02-20 2015-08-27 株式会社島津製作所 液体クロマトグラフとそれに用いるカラムオーブン
JP5804176B1 (ja) * 2014-12-19 2015-11-04 富士ゼロックス株式会社 情報処理装置
US10587802B2 (en) 2017-02-21 2020-03-10 Canon Kabushiki Kaisha Electronic device and control method thereof

Also Published As

Publication number Publication date
US20120311240A1 (en) 2012-12-06
CN102981864B (zh) 2016-04-27
CN102981864A (zh) 2013-03-20
JP5783809B2 (ja) 2015-09-24

Similar Documents

Publication Publication Date Title
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
KR101562973B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
US9384007B2 (en) Memory virtualization-based snapshot boot apparatus and method
US10754558B2 (en) Vehicular device
US20110213954A1 (en) Method and apparatus for generating minimum boot image
JPWO2006107095A1 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
JP2010500682A (ja) フラッシュメモリアクセス回路
JP2011175632A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
JP2005122334A (ja) メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
CN113127263B (zh) 一种内核崩溃恢复方法、装置、设备及存储介质
US20180011636A1 (en) Information processing apparatus and method of accessing a memory
JP2021149374A (ja) データ処理装置
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
JP2011175666A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP3702233B2 (ja) 情報処理システムおよびプログラム実行モード制御方法
JP4182928B2 (ja) 情報処理装置、メモリ管理プログラムおよびメモリ管理方法
US20190361730A1 (en) Application and system fast launch by virtual address area container
KR20180082232A (ko) 비휘발성 메모리를 이용하는 영속적 dram 스토리지 및 그 작동 방법
JP6080490B2 (ja) 情報処理装置、起動方法およびプログラム
JP6080491B2 (ja) 情報処理装置、起動方法およびプログラム
TWI357017B (en) Systems and methods for synchronous code retrieval

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150623

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150721

R151 Written notification of patent or utility model registration

Ref document number: 5783809

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151