JP2014178913A - 電子機器、スナップショットイメージの作成方法及びプログラム - Google Patents
電子機器、スナップショットイメージの作成方法及びプログラム Download PDFInfo
- Publication number
- JP2014178913A JP2014178913A JP2013052691A JP2013052691A JP2014178913A JP 2014178913 A JP2014178913 A JP 2014178913A JP 2013052691 A JP2013052691 A JP 2013052691A JP 2013052691 A JP2013052691 A JP 2013052691A JP 2014178913 A JP2014178913 A JP 2014178913A
- Authority
- JP
- Japan
- Prior art keywords
- data
- snapshot image
- electronic device
- control unit
- volatile 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Quality & Reliability (AREA)
Abstract
【課題】起動時間を短縮することができる電子機器などの技術を提供すること。
【解決手段】本技術に係る電子機器は、揮発性メモリと、スワップデバイスと、制御部とを具備する。前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る。
【選択図】図5
【解決手段】本技術に係る電子機器は、揮発性メモリと、スワップデバイスと、制御部とを具備する。前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る。
【選択図】図5
Description
本技術は、スナップショットイメージを用いて起動を行う電子機器、スナップショットイメージの作成方法及びプログラムに関する。
従来から、デジタルカメラ、テレビジョン受信装置、PC(Personal Computer)など各種の電子機器を高速起動するための技術として、ハイバネーションや、スナップショットブートなどの技術が知られている。
例えば、下記特許文献1には、ハイバネーションに関する技術がされている。ハイバネーションは、シャットダウンの前に、揮発性メモリ内のメモリイメージを不揮発性メモリに記憶させ、起動の際に、このメモリイメージを読み出すことによって、シャットダウン前の状態を再現するといった技術である。
また、例えば、下記特許文献2には、スナップショットブートに関する技術が記載されている。スナップショットブートは、スナップショットイメージとよばれる高速起動用のメモリイメージを予め用意しておき、起動時にスナップショットイメージを利用して電子機器を起動させるといった技術である。
ハイバネーション及びスナップショットブートの違いは、ハイバネーションでは、毎回異なるメモリイメージに基づいて起動が行われるに対して、スナップショットブートでは、原則的に、毎回同じメモリイメージに基づいて起動が行われる点である。
電子機器においては、起動時間が短いことが望ましく、従って、さらに起動時間を短縮することができる技術が期待されている。
以上のような事情に鑑み、本技術の目的は、起動時間を短縮することができる電子機器などの技術を提供することにある。
本技術に係る電子機器は、揮発性メモリと、スワップデバイスと、制御部とを具備する。
前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る。
前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る。
本技術に係る電子機器では、起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータのうち、一部がスナップショットイメージの作成に用いられる。そして、少なくとも他の一部がスワップデバイスに記憶される。これにより、スナップショットイメージのサイズが小さくなり、システムの起動時間を短縮することが可能となる。
上記電子機器において、前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかをプロファイリングにより判断するプロファイリングモードを実行してもよい。
これにより、制御部は、どのデータをスナップショットイメージの作成に用いるかを適切に判断することができる。
上記電子機器において、前記制御部は、前記プロファイリングモードにおいて、前記揮発性メモリへのデータの読み込みに関するプロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかを判断してもよい。
これにより、制御部は、どのデータをスナップショットイメージの作成に用いるかを適切に判断することができる。
上記電子機器において、前記制御部は、前記プロファイリングモードにおいて、OS(Operation System)の先読み機能を停止してもよい。
これにより、起動に本来必要のないデータがOSの先読み機能によりスナップショットイメージに含まれてしまうことを防止することができる。
上記電子機器において、前記制御部は、前記プロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかに関するリストを作成してもよい。
上記電子機器において、前記制御部は、前記プロファイリングモードを実行した後、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータを、前記揮発性メモリに読み込み、読み込まれた前記揮発性メモリ内のデータに基づいて、前記スナップショットイメージを作成するスナップショットイメージ作成モードを実行してもよい。
これにより、スナップショットイメージを適切に作成することができる。
上記電子機器において、前記制御部は、前記スナップショットイメージ作成モードにおいて、OS(Operation System)の先読み機能を停止してもよい。
これにより、起動に本来必要のないデータがOSの先読み機能によりスナップショットイメージに含まれてしまうことを防止することができる。
上記電子機器において、前記制御部は、前記プロファイリングモードに先立って、前記起動開始から前記起動開始後の特定の時点まで、通常起動により前記データをメモリに展開させる準備モードを実行してもよい。
上記電子機器において、前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラムで使用されているデータを前記スワップデバイスにスワップアウトしてもよい。
上記電子機器において、前記スワップデバイスは、前記データがスワップアウトされた後、リードオンリーの状態とされてもよい。
上記電子機器において、前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラム及びページキャッシュを削除してもよい。
上記電子機器において、前記制御部は、前記準備モードにおいて、アプリケーションプログラムで使用されているデータがスワップアウトされ、かつ、アプリケーションプログラム及びページキャッシュが削除された後の前記揮発性メモリ内のデータに基づいて、最終的な前記スナップショットイメージを作成する前の段階のスナップショットイメージを作成してもよい。
上記電子機器において、前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータについて、前記スナップショットイメージの作成に用いるべきデータの数を判断してもよい。
これにより、起動時間をさらに短縮することが可能となる。
上記電子機器において、前記制御部は、データを前記揮発性メモリへ読み込むときの速度及びページフォールトが発生したときにデータを前記揮発性メモリに読み込むときに掛かる処理時間に基づいて、前記スナップショットイメージの作成に用いるべきデータの数を判断してもよい。
これにより、起動時間をさらに短縮することが可能となる。
上記電子機器において、前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかを更に判断してもよい。
これにより、起動時間をさらに短縮することが可能となる。
上記電子機器において、前記制御部は、データと、前記データが前記揮発性メモリに読み込まれた時刻を示す時刻情報とを前記プロファイリングモードにおいて関連付け、前記時刻情報に基づいて、データが読み込まれる頻度が高い時間区域を判断し、頻度が高い前記時間区域内に前記揮発性メモリに読み込まれたデータを用いて前記スナップショットイメージを作成してもよい。
これにより、起動時間をさらに短縮することが可能となる。
本技術に係るスナップショットイメージの作成方法は、起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振ることを含む。
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージが作成される。
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージが作成される。
本技術に係るプログラムは、電子機器に、
起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振るステップと、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成するステップと
を実行させる。
起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振るステップと、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成するステップと
を実行させる。
以上のように、本技術によれば、起動時間を短縮することができる電子機器などの技術を提供することができる。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
<第1実施形態>
[電子機器の全体構成及び各部の構成]
図1は、本技術の第1実施形態に係る電子機器10の内部構成を示すブロック図である。本技術に係る電子機器10は、デジタルカメラ、テレビジョン受信装置、PC(Personal Computer)など各種の電子機器10である。
[電子機器の全体構成及び各部の構成]
図1は、本技術の第1実施形態に係る電子機器10の内部構成を示すブロック図である。本技術に係る電子機器10は、デジタルカメラ、テレビジョン受信装置、PC(Personal Computer)など各種の電子機器10である。
図1に示すように、電子機器10は、制御部1と、メインメモリ2と、DMAC3(Direct Memory Access Controller)と、ストレージデバイス4と、スワップデバイス5とを備える。これらの各部は、バス6を介して相互に接続されている。
制御部1は、例えば、CPU(Central Processing Unit)により構成される。制御部1は、ストレージデバイス4に記憶された各種のプログラムに基づき、電子機器10の全体を統括的に制御する。
メインメモリ2(揮発性メモリ)は、例えば、RAM(Random Access Memory)により構成される。メインメモリ2は、制御部1の作業用の領域として用いられる揮発性のメモリである。
ストレージデバイス4は、HDD(Hard Disc Drive)、SDD(Solid State Drive)、あるいは、NANDフラッシュメモリなどの半導体メモリ、又はこれらの組み合わせにより構成される。ストレージデバイス4には、OS(Operating System)や、アプリケーションプログラムなどが固定的に記憶されている。また、ストレージデバイス4には、以降で説明する処理によって作成されるスナップショットイメージなども記憶される(スナップショットイメージの作成後)。
本技術に係るスナップショットイメージは、起動に本来必要のないメモリデータが排除されたメモリイメージである。このスナップショットイメージは、ページ毎に管理される。ページとは、メインメモリ2を管理する際の最小単位であり、ページのサイズは、例えば、4KBである。
スワップデバイス5は、例えば、HDD(Hard Disc Drive)、SDD(Solid State Drive)、あるいは、NANDフラッシュメモリなどの半導体メモリ、又はこれらの組み合わせにより構成される。スワップデバイス5は、データを固定的に記憶しておくことができる形態であれば、どのような形態であってもよい。このスワップデバイス5には、電子機器10の起動完了に必要のないデータが、ページ毎に記憶される。
図に示す例では、ストレージデバイス4と、スワップデバイス5が別体である場合の一例が示されている。しかし、スワップデバイス5は、ストレージデバイス4と一体的に形成されていてもよい。すなわち、ストレージデバイス4がスワップデバイス5としての機能を有していてよい。
DMAC3は、メインメモリ2と、ストレージデバイス4及びスワップデバイス5との間において、DMAによるデータの授受を制御する。DMAC3により、制御部1の負荷が軽減される。
[動作説明]
次に、本技術に係る電子機器10(制御部1)の処理について説明する。本技術に係る電子機器10は、電子機器10の高速起動に用いられるスナップショットイメージを作成する処理を実行する。
次に、本技術に係る電子機器10(制御部1)の処理について説明する。本技術に係る電子機器10は、電子機器10の高速起動に用いられるスナップショットイメージを作成する処理を実行する。
典型的には、制御部1は、起動開始からスナップショットイメージの作成時点(起動開始後の特定の時点)までの間にメインメモリ2に展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイス5に記憶しておくデータとに割り振る。そして、電子機器10は、スナップショットイメージの作成に用いられるデータに基づいて、スナップショットイメージを作成する。
制御部1の処理は、大別して、1.準備モード、2.プロファイリングモード、3.スナップショットイメージ作成モードの3つの処理に分類される。以降、これらについて、詳細に説明する。
図2は、スナップショットイメージが作成されるときの処理を示すフローチャートである。
図2に示すように、まず、制御部1は、起動開始時において、現在のモードが準備モードであるかどうか判定する(ステップ101)。現在のモードが準備モードであると判定された場合(ステップ101のYES)、制御部1は、準備モードを実行する(ステップ102)。準備モードが実行された後、制御部1は、再起動を実行し(ステップ103)、再びステップ101へ戻る。
この準備モードは、どのデータが起動に本来必要なデータであるかをプロファイリングにより判断するプロファイリングモードの準備段階としてのモードである。
起動開始時において、現在のモードが準備モードではないと判断された場合(ステップ101のNO)、制御部1は、現在のモードがプロファインリングモードであるかどうかを判定する(ステップ104)。現在のモードがプロファイリングモードであると判定された場合(ステップ104のYES)、制御部1は、プロファイリングモードを実行する(ステップ105)。プロファイリングモードが実行された後、制御部1は、再起動を実行し(ステップ106)、再びステップ101へ戻る。
このプロファイリングモードは、起動開始からスナップショットイメージ作成時点までの間にメインメモリ2に展開されたデータのうち、どのデータが起動に本来必要なデータであるかをプロファイリングにより判断するモードである。
起動開始時において、現在のモードが準備モードではなく、かつ、プロファイリングモードでもないと判定された場合(ステップ104のNO)、制御部1は、現在のモードがスナップショットイメージ作成モードであるかどうかを判定する(ステップ107)。現在のモードがスナップショットイメージ作成モードであると判定された場合(ステップ107のYES)、制御部1は、スナップショットイメージ作成モードを実行する(ステップ108)。スナップショットイメージ作成モードが実行された後、制御部1は、再起動を実行し(ステップ109)、再びステップ101へ戻る。
スナップショットイメージ作成モードは、プロファイリングによりスナップショットイメージの作成に用いられると判断されたデータをメインメモリ2に読み込み、メインメモリ2内のデータに基づいて、スナップショットイメージを作成するモードである。
《準備モード》
次に、準備モードについて詳細に説明する。図3は、準備モードでの処理を示すフローチャートである。図4は、準備モードでの処理を説明するための模式図である。
次に、準備モードについて詳細に説明する。図3は、準備モードでの処理を示すフローチャートである。図4は、準備モードでの処理を説明するための模式図である。
図3及び図4を参照して、準備モードでは、制御部1は、まず、通常での起動と同様にして電子機器10の起動を開始する(ステップ201)。この場合、制御部1は、まず、ブートローダを実行して、ストレージデバイス4からOS(カーネル)をページ単位でメインメモリ2に読み込む。その後、制御部1は、OSを起動(初期化)する。
次に、制御部1は、ストレージデバイス4からアプリケーションプログラムをページ単位でメインメモリ2に読み込んで、アプリケーションを起動(初期化)する。その後、制御部1は、アプリケーションプログラムを実行する(ステップ202)。制御部1は、アプリケーションプログラムの実行に伴い、必要に応じてストレージデバイス4からデータ(ファイル)をページ単位でメインメモリ2へ読み込む。また、制御部1は、アプリケーションプログラムの実行に伴い、各種の計算を実行し、計算結果をページ単位でメインメモリ2に記憶しておく。
そして、制御部1は、スナップショットイメージ作成時点(起動開始後の特定の時点)まで、アプリケーションプログラムの実行を継続する。スナップショットイメージの作成時点は、起動の高速化の観点から任意に設定可能である。例えば、スナップショットイメージの作成時点は、OSの起動後に実行される1つ目のアプリケーションの実行が完了した時点であってもよいし、2つ目のアプリケーションの実行が完了した時点であってもよい。
図4には、起動開始から、スナップショットイメージの作成時点までの間にメインメモリ2に展開されたデータが示されている。図4に示すように、スナップショットイメージの作成時点において、メインメモリ2には、ストレージデバイス4から読み込まれたOS(カーネル)、アプリケーションプログラムなどのデータが展開されている。さらに、メインメモリ2には、アプリケーションプログラムで使用されているデータや、ページキャッシュなどのデータが展開されている。
アプリケーションプログラムで使用されているデータは、アプリケーションプログラムにより算出されたデータを含む。ページキャッシュ(バッファ)は、後で使用される可能性があるとしてメインメモリ2に残されているデータである。
スナップショットイメージ作成時点に達すると、制御部1は、スワップデバイス5を有効にして、アプリケーションプログラムで使用されているデータ(匿名ページ)をスワップデバイス5にスワップアウトする(ステップ203)。その後、スワップデバイス5は、リードオンリーの状態に調整される。スワップアウトされるデータを圧縮することも可能である。この圧縮は、ハードウェアで実行されてもよいし、ソフトウェアで実行されてもよい。
また、スナップショットイメージ作成時点に達すると、制御部1は、メインメモリ2上に展開されているアプリケーションプログラム、ページキャッシュなどのページをメインメモリ2上から削除する(ステップ204)。
アプリケーションプログラムで使用されているデータがスワップアウトされ、かつ、アプリケーションプログラム、ページキャッシュが削除されることで、メインメモリ2上には、OS(カーネル)が残る。メインメモリ2上には、ファームフェアで使用しているデータなども残る場合がある。制御部1は、メインメモリ2に残されたデータに基づいて、ページ単位でメモリイメージを作成する(ステップ205)。すなわち、制御部1は、OS(及びファームウェアで使用しているデータ)を含むメモリイメージを作成する。
このメモリイメージを以降では、最小化イメージと呼ぶ。この最小化イメージは、最終的なスナップショットイメージを作成する前の段階のスナップショットイメージであり、スナップショットイメージを作成するために最低限必要とされるデータ(OS(カーネル))を含む最小化されたイメージである。
制御部1は、最小化イメージを作成すると、最小化イメージをストレージデバイス4に記憶する(ステップ206)。そして、制御部1は、再起動を実行する(ステップ103)。
ここで、比較例について説明する。一般的なスナップショットイメージの作成では、図4に示すようなメインメモリ2のメモリイメージに基づいて、スナップショットイメージが作成される。すなわち、スナップショットイメージの作成時点においてメインメモリ2上に展開されているデータの全てが使用されてスナップショットイメージが作成される。しかしながら、このような方法によって、スナップショットイメージが作成された場合、起動に本来必要のないデータがスナップショットイメージに含まれてしまう可能性がある。
近年においては、アプリケーションプログラムのサイズが大きくなる傾向にあり、これに伴い、スナップショットイメージも大きくなってしまう傾向にある。一方で、ストレージデバイス4からメインメモリ2への読み込み速度は向上していないため、スナップショットイメージをメインメモリ2に読み込むときの時間が長くなってしまう。これにより、起動完了までに時間が掛かる。
そこで、本技術では、起動開始から起動開始後の特定の時点までの間にメインメモリ2に展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイス5に記憶しておくデータとに割り振るといった処理が実行される。
すなわち、本技術では、図4に示すようなメモリイメージに含まれるデータのうち、どのデータが起動に本来必要なデータであるかが判断され、このデータがスナップショットイメージの作成に用いられる。一方で、起動に本来必要とされないデータは、スワップデバイス5に記憶される。
ここで、上述のように、準備モードでは、アプリケーションプログラムで使用されているデータがスワップデバイス5にスワップアウトされ、このデータがスワップデバイス5に記憶される。
しかしながら、これは、アプリケーションプログラムで使用されているデータの全てが起動に本来必要でないデータであるということを意味するものではない。つまり、これは、どのデータが起動に本来必要なデータであるかが判断される前の段階において、起動に本来必要とされるデータと、起動に本来必要ではないデータとを含む形で、スワップデバイス5にデータが記憶されるということを意味している。
《プロファイリングモード》
次に、プロファイリングモードについて説明する。図5は、プロファイリングモードでの処理を示すフローチャートである。図6は、プロファイリングモードでの処理を説明するための模式図である。
次に、プロファイリングモードについて説明する。図5は、プロファイリングモードでの処理を示すフローチャートである。図6は、プロファイリングモードでの処理を説明するための模式図である。
このプロファリングモードにおいて、起動開始からスナップショットイメージ作成時点までの間にメインメモリ2に展開されたデータのうち、どのデータをスナップショットイメージの作成に用いるかが判断される。
プロファイリングモードは、準備モードが完了した後における再起動の後に実行される(図2参照)。図5及び図6を参照して、プロファイリングモードでは、制御部1は、まず、準備モードで作成された最小化イメージを使用して、起動を開始する(ステップ301)。この場合、制御部1は、まず、ブートローダを実行して、最小化イメージに含まれるデータをストレージデバイス4からページ単位でメインメモリ2に読み込む。
次に、制御部1は、OSによる先読み機能を停止する(ステップ302)。ここで、OSの先読み機能が実行された場合、起動に本来必要のないデータが先読み機能によりメインメモリ2に読み込まれ、これがプロファイリングに反映されてしまう可能性がある。この場合、起動に本来必要のないデータがスナップショットイメージに含まれてしまう可能性がある。そこで、本技術では、OSの先読み機能を停止することとしている。これにより、起動に本来必要のないデータがOSの先読み機能によりスナップショットイメージに含まれてしまうことを防止することができる。
次に、制御部1は、どのデータをスナップショットイメージの作成に用いるかについてのプロファイリングを開始する(ステップ303)。このプロファイリングは、ストレージデバイス4又はスワップデバイス5からメインメモリ2へデータを読み込むときに発生するページフォールトの履歴を取ることで実行される。
次に、制御部1は、ストレージデバイス4からアプリケーションプログラムをページ単位でメインメモリ2に読み込んで、アプリケーションを起動(初期化)する。その後、制御部1は、アプリケーションプログラムを実行する(ステップ304)。制御部1は、アプリケーションプログラムの実行に伴い、必要に応じてストレージデバイス4からデータ(ファイル)をページ単位でメインメモリ2へ読み込む。また、制御部1は、必要に応じてスワップデバイス5から、アプリケーションプログラムで使用されていたデータ(匿名ページ)をメインメモリ2に読み込む。
ストレージデバイス4からアプリケーションプログラム、ファイルが読み込まれるときにページフォールトが発生している。また、スワップデバイス5からアプリケーションプログラムで使用されていたデータ(匿名ページ)が読み込まれるときに、ページフォールトが発生している。制御部1は、このページフォールトの履歴についてのイメージリストを作成する。
そして、制御部1は、起動完了時点まで、アプリケーションプログラムの実行を継続する。起動完了時点に達すると、制御部1は、プロファイリングを停止する(ステップ305)。すなわち、制御部1は、ページフォールトの履歴の記録を停止する。
その後、制御部1は、ページフォールトの履歴をイメージリストとしてストレージデバイス4に保存する(ステップ306)。
このようにして、どのデータをスナップショットイメージの作成に用いるかが制御部1により自動的に判断される。つまり、制御部1は、起動完了時点に達するまでの間にストレージデバイス4又はスワップデバイス5から読み込まれるデータが起動に本来必要なデータであると自動的に判断している。
図7及び図8は、ページフォールトの履歴を取ることで生成されたイメージリストの一例を示す図である。図7は、アプリケーションプログラム、ファイルがストレージデバイス4から読み込まれるときに発生したページフォールトの履歴を取ることで生成されたイメージリストである。図8は、アプリケーションプログラムで使用されていたデータがスワップデバイス5から読み込まれるときに発生したページフォールトの履歴を取ることで生成されたイメージリストである。図7に示すイメージリストを以降では、プログラム用イメージリストと呼び、図8に示すイメージリストを以降では、データ用イメージリストと呼ぶ。
図7に示すように、プログラム用イメージリストでは、ファイル名と、そのファイルがファイルの先頭からどの程度ずれているかを示すオフセット(単位は、例えば、バイト)とが関連付けられている。また、プログラム用イメージリストでは、アプリケーションプログラムがメインメモリ2に読み込まれたときの時間情報(単位は、例えば、nsec)が関連付けられている。
なお、この時間情報は、必ずしも必要な情報ではなく、この情報は、後述の第3実施形態が実行されるときに用いられる情報である。典型的には、プログラム用イメージリストは、そのファイルがストレージデバイス4のどこに保存されているかを制御部1が判断することができる情報を含んでいればよい。
図8に示すように、データ用イメージリストでは、プロセス情報の仮想アドレスと、そのプロセスで使用されているデータの仮想アドレスとが関連づけられている。また、データ用イメージリストでは、アプリケーションプログラムで使用されているデータがメインメモリ2に読み込まれたときの時間情報(単位は、例えば、nsec)が関連付けられている。
この時間情報は、必ずしも必要な情報ではなく、この情報は、後述の第3実施形態が実行されるときに用いられる情報である。典型的には、データ用イメージリストは、そのデータがスワップデバイス5のどこに保存されているかを制御部1が判断することができる情報を含んでいればよい。
《スナップショットイメージ作成モード》
次に、スナップショットイメージ作成モードについて説明する。図9は、スナップショットイメージ作成モードでの処理を示すフローチャートである。図10は、スナップショットイメージ作成モードでの処理を説明するための模式図である。
次に、スナップショットイメージ作成モードについて説明する。図9は、スナップショットイメージ作成モードでの処理を示すフローチャートである。図10は、スナップショットイメージ作成モードでの処理を説明するための模式図である。
スナップショットイメージ作成モードは、プロファイリングモードが完了した後における再起動の後に実行される(図2参照)。図9及び図10を参照して、スナップショットイメージ作成モードでは、制御部1は、まず、最小化イメージを使用して、起動を開始する(ステップ401)。この場合、制御部1は、まず、ブートローダを実行して、最小化イメージに含まれるデータをストレージデバイス4からページ単位でメインメモリ2に読み込む。
次に、制御部1は、OSによる先読み機能を停止する(ステップ402)。これにより、起動に本来必要のないデータがOSの先読み機能によりスナップショットイメージに含まれてしまうことを防止することができる。
次に、制御部1は、イメージリストに基づいて、イメージリストに含まれるデータをメインメモリ2に読み込む(ステップ403)。この場合、制御部1は、イメージリスト(図7参照)に基づいて、ストレージデバイス4からアプリケーションプログラム、ファイルをメインメモリ2にページ単位で読み込む。また、制御部1は、イメージリスト(図8参照)に基づいて、アプリケーションプログラムで使用されていたデータ(匿名ページ)をページ単位で読み込む(スワップイン)。
イメージリストに含まれる全てのデータがメインメモリ2に読み込まれると、制御部1は、メインメモリ2に読み込まれたデータに基づいて、スナップショットイメージを作成する(ステップ404)。その後、制御部1は、再起動を実行する。
生成されたスナップショットには、起動に本来必要とされるデータが含まれている。一方、起動に本来必要とされないデータは、スワップデバイス5に保存された状態とされている。
[作用等]
以降では、比較例を参照しつつ、本技術の作用について説明する。
図11は、比較例に係るスナップショットイメージを使用して起動を行うときの様子を示す図である。図12は、本技術に係るスナップショットイメージを使用して起動を行うときの様子を示す図である。
以降では、比較例を参照しつつ、本技術の作用について説明する。
図11は、比較例に係るスナップショットイメージを使用して起動を行うときの様子を示す図である。図12は、本技術に係るスナップショットイメージを使用して起動を行うときの様子を示す図である。
比較例に係るスナップショットイメージは、図4に示すような、スナップショットイメージの作成時においてメインメモリ2に展開されている全てのデータを使用して作成されたイメージである。
比較例では、まず、起動開始時にブートローダが実行され、スナップショットイメージに含まれるデータ(OS(カーネル)、アプリケーションプログラム、ファイル、匿名ページ)がストレージデバイス4からメインメモリ2にページ単位で読み込まれる。その後、システムが再開され、起動が完了する。比較例に係るスナップショットイメージは、起動に本来必要のないデータを含んでしまっているため、起動に時間が掛かってしまっている。
次に、図12を参照して本技術に係るスナップショットイメージを使用して起動を行うときの処理について説明する。まず、制御部1は、起動開始時にブートローダを実行し、スナップショットイメージに含まれるデータ(OS(カーネル)、アプリケーションプログラム、ファイル、匿名ページ)をストレージデバイス4からメインメモリ2にページ単位で読み込む。その後、システムが再開され、起動が完了する。本技術に係るスナップショットイメージは、起動に本来必要のないデータを含んでいないため、起動に係る時間を短縮することができる。さらに、起動に本来必要のないデータは、スワップデバイス5に保存されている。
起動に本来必要のないデータとしてスワップデバイス5に保存されているデータは、そのデータが必要となった時点で、スワップデバイス5からメインメモリ2に読み込まれる。つまり、起動に本来必要のないデータとしてスワップデバイス5に保存されているデータは、アプリケーションプログラム実行中であっても、そのデータが必要とされるまでは、メインメモリ2上には、読み込まれない。これは、つまり、アプリケーションプログラムが実行されているときのメインメモリ2の使用量を低減させることができ、メインメモリ2の空き容量を増やすことができることを示している。
ここで、図4を参照して、起動開始からスナップショットイメージ作成時点までの間にメインメモリ2に展開されたデータは、OS(カーネル)、アプリケーションプログラム、アプリケーションプログラムで使用されているデータ、及びページキャッシュを含む。また、上述のようにアプリケーションプログラムで使用されているデータは、アプリケーションプログラムで算出されたデータを含む。
例えば、スナップショットイメージ作成時点に至るまでに、ルックアップテーブルのようなサイズの大きなデータがアプリケーションプログラムにより算出される場合がある。例えば、何度も繰り返し同じような計算が行なわれるような場合、処理速度を向上させるために、自明な計算がルックアップテーブルとして算出される場合がある。このルックアップテーブルは、アプリケーションプログラムで使用されているデータとして、メインメモリ2上に保存される。
このルックアップテーブルのようにサイズの大きいデータがスナップショットイメージに含まれてしまうと、起動が遅くなってしまう。比較例においては、スナップショットイメージ作成時にメモリに展開されている全てのデータがスナップショットイメージに含められる。従って、比較例において、ルックアップテーブルのようなサイズの大きいデータがスナップショットイメージに含まれてしまうことを回避するためには、ルックアップテーブルが算出される前の時点をスナップショットイメージ作成時点とする必要がある。
一方、本技術においては、ルックアップテーブルのようなサイズの大きなデータが算出された後の時点をスナップショットイメージの作成時点としても、プロファイリングによりそのデータが起動に本来必要ないデータであると判断される場合がある。この場合、スナップショットイメージに、ルックアップテーブルのようなサイズの大きいデータが含まれることはない。そして、本技術では、ルックアップテーブルのようなサイズの大きなデータは、スワップデバイス5に記憶されており、そのデータが必要となった時点でスワップデバイス5からメインメモリ2に読み込まれる。
つまり、本技術は、比較例と比べて、スナップショットイメージの作成時点を遅くしつつ、スナップショットイメージをコンパクト化することができる。このことからも、本技術が起動の時間短縮において有利であることが理解される。
<第2実施形態>
次に、本技術の第2実施形態について説明する。第2実施形態以降では、上述の第1実施形態と異なる点を中心に説明する。
次に、本技術の第2実施形態について説明する。第2実施形態以降では、上述の第1実施形態と異なる点を中心に説明する。
第2実施形態では、上述のプロファイリングによってスナップショットブートの作成に用いられると判断されたデータについて、スナップショットイメージの作成に用いるべきデータの数を判断する処理が実行される。例えば、上述の図7及び図8に示めすイメージリストに含まれる、合計で5つのデータについて、この5つのデータのうち何個のデータをスナップショットイメージに含めるかを判断する処理が実行される。
典型的には、制御部1は、イメージリストの情報、データをストレージデバイス4からメインメモリ2へ読み込むときの速度、及びページフォールトが発生したときにデータをスワップデバイス5からメインメモリ2に読み込むときに掛かる平均処理時間に基づいて、スナップショットイメージの作成に用いるべきデータの数を判断する。この処理は、プロファイリングモードにおいてイメージリストが作成された後に実行される。
ここで、最小化イメージのサイズをM(MB)、データ(ページ)をストレージデバイス4からメインメモリ2に読み込むときの速度をx(MB/sec)、スナップショットイメージに含めるべきデータの数をE(未知数)とする。また、1つのページのサイズをPAGESIZE(典型的には、4KB)、イメージリストに含まれるエントリ数の合計をEmax(図7及び図8に示す例では、5つ)とする。また、ページフォールトが発生したときに、データ(ページ)をスワップデバイス5(ストレージデバイス4がスワップデバイス5としての機能を有する場合には、ストレージデバイス4)からメインメモリ2に読み込むときに掛かる平均処理時間をTf(sec)とする。また、スナップショットイメージを使用して復帰したあとのデバイスアクセス時間をTd(sec)とする。この場合、制御部1は、以下の式を使用して、スナップショットイメージの作成に用いるべきデータの数を判断する。
図13は、数式の左辺及び右辺の意味を説明するための図である。図13の上側を参照して、数式の左辺におけるM/xは、最小化イメージをストレージデバイス4からメインメモリ2に読み込むときに掛かる時間を表している。また、E×PAGESIZE/xは、スナップショットイメージに含まれるデータの数を仮にE(未知数)としたときに、これらのデータをストレージデバイス4からメインメモリ2に読み込むときに掛かる時間を表している。
また、(Emax−E)は、イメージリストには含まれているものの、スナップショットイメージには含まれないデータの数を表している。つまり、(Emax−E)は、スワップデバイス5から読み込まれるデータの数を表している。そして、(Emax−E)×Tfは、(Emax−E)個のデータをスワップデバイス5から読み込むときに掛かる時間を表している。
つまり、数式の左辺は、スナップショットイメージに含まれるデータの数を仮にE(未知数)とした場合における、起動に掛かる時間を表している。
図13の下側を参照して、数式の右辺において、M/xは、最小化イメージをストレージデバイス4からメインメモリ2に読み込むときに掛かる時間を表している。また、Emax×PAGESIZE/xは、イメージリストに含まれる全てのデータがスナップショットイメージに含まれる場合において、これらのデータがストレージデバイス4からメインメモリ2に読み込まれときに掛かる時間を表している。また、Tdは、スナップショットイメージを使用して復帰したあとのデバイスアクセス時間を表している。
つまり、数式の右辺は、イメージリストに含まれる全てのデータがスナップショットイメージに含まれる場合における、起動に掛かる時間を表している。
なお、数式の左辺には、スナップショットイメージを使用して復帰したあとのデバイスアクセス時間Tdが表されていない。これは、(Emax−E)個のデータがスワップデバイス5から読み込まれているときに、同時平行でTdが実行されるためである。
スナップショットイメージに含まれるデータの数をEとした場合における起動時間(左辺)が、イメージリストに含まれる全てのデータがスナップショットイメージに含まれる場合における起動時間(右辺)よりも小さくなれば、起動時間の短縮となる。
例えば、制御部1は、イメージリストが作成された後、数式に基づいてEを算出する。そして、制御部1は、スナップショットイメージを作成するときに、イメージリストに含まれる全てのデータのうち、E個分のデータをメインメモリ2に読み込んで、スナップショットイメージを作成する。これにより、起動時間をさらに短縮することができるスナップショットイメージが作成される。なお、典型的には、プロファイルされた時刻が早いほうから順番にE個分のデータがスナップショットイメージの作成に用いられる。
<第3実施形態>
次に、本技術の第3実施形態について説明する。
第3実施形態では、上述のプロファイリングによりスナップショットイメージの作成に用いられると判断されたデータ(イメージリストに含まれるデータ)のうち、どのデータをスナップショットイメージの作成に用いるかが更に判断される。この点で、上述の各実施形態とは異なっている。
次に、本技術の第3実施形態について説明する。
第3実施形態では、上述のプロファイリングによりスナップショットイメージの作成に用いられると判断されたデータ(イメージリストに含まれるデータ)のうち、どのデータをスナップショットイメージの作成に用いるかが更に判断される。この点で、上述の各実施形態とは異なっている。
第3実施形態では、制御部1が2つのCPUを有している場合が想定される。2つのCPUのうち、一方のCPUは、スナップショットイメージを使用してシステム(OS)を起動させる処理を実行する。他方のCPUは、一方のCPUがスナップショットイメージを使用してシステムを起動させているときに、別のシステムを開始する処理を実行する。
このような場合において、スナップショットイメージのサイズが大きい場合を想定する。この場合、一方のCPUがスナップショットイメージに含まれるデータをメインメモリ2に読み込む処理を開始した場合に、バス6の帯域を圧迫してしまい、他方のCPUが別のシステムを素早く開始することができない。この場合、システムの全体的な起動開始時間が遅くなってしまう。
そこで、第3実施形態では、イメージリストに含まれるデータのうち、どのデータをスナップショットイメージの作成に用いるかを判断することによって、スナップショットイメージのサイズを小さくする処理が実行される。このようにスナップショットイメージのサイズを小さくすることで、スナップショットイメージのメインメモリ2への読み込みによるバス6の負荷が低減される。
図14を参照しつつ、第3実施形態の具体的な処理について説明する。図14は、第3実施形態に係る電子機器10の処理を説明するための図である。
プロファイリングによりイメージリスト(図7及び図8参照)が作成された後、制御部1は、イメージリストの時刻情報に基づいて、プロファイリングされた時刻が最も遅いデータの時刻情報Tmaxを取得する。
次に、制御部1は、区間時刻Tによって、Tmaxをn個の時間区域T1〜Tnに分割する。区間時刻Tは、任意に設定可能である。そして、制御部1は、イメージリストの時刻情報に基づいて、各時間区域T1〜Tnに含まれるデータの度数分布を作成する。
次に、制御部1は、各時間区域T1〜Tnに含まれるデータの数(度数)が、所定の閾値Thを超えるかどうかを判定する。この所定の閾値Thは、例えば、各時間区域T1〜Tnに含まれるデータの数の平均値であってもよい。あるいは、所定の閾値Thは、バス6の負荷を低減するという観点に基づいて予め設定されていてもよい。
次に、制御部1は、データの数が所定の閾値Thを超える時間区域について、所定の閾値を超えた部分(図14の斜線部分)に対応するデータを、スナップショットイメージの作成に用いるデータであると判断する。そして、制御部1は、スナップショットイメージを作成するときに、イメージリストに含まれる全てのデータのうち、所定の閾値を超えた部分に対応するデータをメインメモリ2に読み込んで、スナップショットイメージを作成する。
すなわち、制御部1は、イメージリストの時刻情報に基づいて、データが読み込まれる頻度が高い時間区域T1〜Tnを判断し、頻度が高い時間区域内にメインメモリ2に読み込まれたデータの一部を用いてスナップショットイメージを作成する。
このような処理により作成されたスナップショットイメージが用いられて起動が実行される場合、スナップショットイメージに含まれるデータがメインメモリ2に読み込まれた後に、ページフォールトが発生する。しかしながら、ページフォールトが発生する頻度が高い時刻のデータは、スナップショットイメージに含められているので、ページフォールトの頻度が一定の値を超えることはない。
つまり、第3実施形態では、システム(OS)を起動させる一方のCPUがバス6にアクセスしない期間に、他方のCPUがバス6にアクセスすることが可能となり、従って、システム全体の起動が高速化する。
なお、第2実施形態で説明した技術と、第3実施形態で説明した技術とを組み合わせることも可能である。
<各種変形例>
<各種変形例>
本技術は、以下の構成をとることもできる。
(1) 揮発性メモリと、
スワップデバイスと、
起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る制御部と
を具備する電子機器。
(2) 上記(1)に記載の電子機器であって、
前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかをプロファイリングにより判断するプロファイリングモードを実行する
電子機器。
(3) 上記(2)に記載の電子機器であって、
前記制御部は、前記プロファイリングモードにおいて、前記揮発性メモリへのデータの読み込みに関するプロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかを判断する
電子機器。
(4) 上記(3)に記載の電子機器であって、
前記制御部は、前記プロファイリングモードにおいて、OS(Operation System)の先読み機能を停止する
電子機器。
(5) 上記(3)又は(4)に記載の電子機器であって、
前記制御部は、前記プロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかに関するリストを作成する
電子機器。
(6) 上記(2)〜(5)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングモードを実行した後、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータを、前記揮発性メモリに読み込み、読み込まれた前記揮発性メモリ内のデータに基づいて、前記スナップショットイメージを作成するスナップショットイメージ作成モードを実行する
電子機器。
(7) 上記(6)に記載の電子機器であって、
前記制御部は、前記スナップショットイメージ作成モードにおいて、OS(Operation System)の先読み機能を停止する
電子機器。
(8) 上記(2)〜(7)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングモードに先立って、前記起動開始から前記起動開始後の特定の時点まで、通常起動により前記データをメモリに展開させる準備モードを実行する
電子機器。
(9)上記(8)に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラムで使用されているデータを前記スワップデバイスにスワップアウトする
電子機器。
(10)上記(9)に記載の電子機器であって、
前記スワップデバイスは、前記データがスワップアウトされた後、リードオンリーの状態とされる
電子機器。
(11) 上記(9)又は(10)に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラム及びページキャッシュを削除する
電子機器。
(12) 上記(11)に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、アプリケーションプログラムで使用されているデータがスワップアウトされ、かつ、アプリケーションプログラム及びページキャッシュが削除された後の前記揮発性メモリ内のデータに基づいて、最終的な前記スナップショットイメージを作成する前の段階のスナップショットイメージを作成する
電子機器。
(13) 上記(2)〜(12)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータについて、前記スナップショットイメージの作成に用いるべきデータの数を判断する
電子機器。
(14) 上記(13)に記載の電子機器であって、
前記制御部は、データを前記揮発性メモリへ読み込むときの速度及びページフォールトが発生したときにデータを前記揮発性メモリに読み込むときに掛かる処理時間に基づいて、前記スナップショットイメージの作成に用いるべきデータの数を判断する
電子機器。
(15) 上記(2)〜(14)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかを更に判断する
電子機器。
(16) 上記(15)に記載の電子機器であって、
前記制御部は、データと、前記データが前記揮発性メモリに読み込まれた時刻を示す時刻情報とを前記プロファイリングモードにおいて関連付け、前記時刻情報に基づいて、データが読み込まれる頻度が高い時間区域を判断し、頻度が高い前記時間区域内に前記揮発性メモリに読み込まれたデータを用いて前記スナップショットイメージを作成する
電子機器。
(17) 起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振り、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成する
スナップショットイメージの作成方法。
(18) 電子機器に、
起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振るステップと、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成するステップと
を実行させるプログラム。
(1) 揮発性メモリと、
スワップデバイスと、
起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る制御部と
を具備する電子機器。
(2) 上記(1)に記載の電子機器であって、
前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかをプロファイリングにより判断するプロファイリングモードを実行する
電子機器。
(3) 上記(2)に記載の電子機器であって、
前記制御部は、前記プロファイリングモードにおいて、前記揮発性メモリへのデータの読み込みに関するプロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかを判断する
電子機器。
(4) 上記(3)に記載の電子機器であって、
前記制御部は、前記プロファイリングモードにおいて、OS(Operation System)の先読み機能を停止する
電子機器。
(5) 上記(3)又は(4)に記載の電子機器であって、
前記制御部は、前記プロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかに関するリストを作成する
電子機器。
(6) 上記(2)〜(5)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングモードを実行した後、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータを、前記揮発性メモリに読み込み、読み込まれた前記揮発性メモリ内のデータに基づいて、前記スナップショットイメージを作成するスナップショットイメージ作成モードを実行する
電子機器。
(7) 上記(6)に記載の電子機器であって、
前記制御部は、前記スナップショットイメージ作成モードにおいて、OS(Operation System)の先読み機能を停止する
電子機器。
(8) 上記(2)〜(7)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングモードに先立って、前記起動開始から前記起動開始後の特定の時点まで、通常起動により前記データをメモリに展開させる準備モードを実行する
電子機器。
(9)上記(8)に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラムで使用されているデータを前記スワップデバイスにスワップアウトする
電子機器。
(10)上記(9)に記載の電子機器であって、
前記スワップデバイスは、前記データがスワップアウトされた後、リードオンリーの状態とされる
電子機器。
(11) 上記(9)又は(10)に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラム及びページキャッシュを削除する
電子機器。
(12) 上記(11)に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、アプリケーションプログラムで使用されているデータがスワップアウトされ、かつ、アプリケーションプログラム及びページキャッシュが削除された後の前記揮発性メモリ内のデータに基づいて、最終的な前記スナップショットイメージを作成する前の段階のスナップショットイメージを作成する
電子機器。
(13) 上記(2)〜(12)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータについて、前記スナップショットイメージの作成に用いるべきデータの数を判断する
電子機器。
(14) 上記(13)に記載の電子機器であって、
前記制御部は、データを前記揮発性メモリへ読み込むときの速度及びページフォールトが発生したときにデータを前記揮発性メモリに読み込むときに掛かる処理時間に基づいて、前記スナップショットイメージの作成に用いるべきデータの数を判断する
電子機器。
(15) 上記(2)〜(14)のうちいずれか1つに記載の電子機器であって、
前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかを更に判断する
電子機器。
(16) 上記(15)に記載の電子機器であって、
前記制御部は、データと、前記データが前記揮発性メモリに読み込まれた時刻を示す時刻情報とを前記プロファイリングモードにおいて関連付け、前記時刻情報に基づいて、データが読み込まれる頻度が高い時間区域を判断し、頻度が高い前記時間区域内に前記揮発性メモリに読み込まれたデータを用いて前記スナップショットイメージを作成する
電子機器。
(17) 起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振り、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成する
スナップショットイメージの作成方法。
(18) 電子機器に、
起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振るステップと、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成するステップと
を実行させるプログラム。
1…制御部
2…メインメモリ
3…DMAC
4…ストレージデバイス
5…スワップデバイス
6…バス
10…電子機器
2…メインメモリ
3…DMAC
4…ストレージデバイス
5…スワップデバイス
6…バス
10…電子機器
Claims (18)
- 揮発性メモリと、
スワップデバイスと、
起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、前記スワップデバイスに記憶しておくデータとに割り振る制御部と
を具備する電子機器。 - 請求項1に記載の電子機器であって、
前記制御部は、起動開始から起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかをプロファイリングにより判断するプロファイリングモードを実行する
電子機器。 - 請求項2に記載の電子機器であって、
前記制御部は、前記プロファイリングモードにおいて、前記揮発性メモリへのデータの読み込みに関するプロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかを判断する
電子機器。 - 請求項3に記載の電子機器であって、
前記制御部は、前記プロファイリングモードにおいて、OS(Operation System)の先読み機能を停止する
電子機器。 - 請求項3に記載の電子機器であって、
前記制御部は、前記プロファイリングにより、どのデータを前記スナップショットイメージの作成に用いるかに関するリストを作成する
電子機器。 - 請求項2に記載の電子機器であって、
前記制御部は、前記プロファイリングモードを実行した後、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータを、前記揮発性メモリに読み込み、読み込まれた前記揮発性メモリ内のデータに基づいて、前記スナップショットイメージを作成するスナップショットイメージ作成モードを実行する
電子機器。 - 請求項6に記載の電子機器であって、
前記制御部は、前記スナップショットイメージ作成モードにおいて、OS(Operation System)の先読み機能を停止する
電子機器。 - 請求項2に記載の電子機器であって、
前記制御部は、前記プロファイリングモードに先立って、前記起動開始から前記起動開始後の特定の時点まで、通常起動により前記データをメモリに展開させる準備モードを実行する
電子機器。 - 請求項8に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラムで使用されているデータを前記スワップデバイスにスワップアウトする
電子機器。 - 請求項9に記載の電子機器であって、
前記スワップデバイスは、前記データがスワップアウトされた後、リードオンリーの状態とされる
電子機器。 - 請求項9に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、前記起動開始から前記起動開始後の特定の時点までの間に前記揮発性メモリに展開されたデータのうち、アプリケーションプログラム及びページキャッシュを削除する
電子機器。 - 請求項11に記載の電子機器であって、
前記制御部は、前記準備モードにおいて、アプリケーションプログラムで使用されているデータがスワップアウトされ、かつ、アプリケーションプログラム及びページキャッシュが削除された後の前記揮発性メモリ内のデータに基づいて、最終的な前記スナップショットイメージを作成する前の段階のスナップショットイメージを作成する
電子機器。 - 請求項2に記載の電子機器であって、
前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータについて、前記スナップショットイメージの作成に用いるべきデータの数を判断する
電子機器。 - 請求項13に記載の電子機器であって、
前記制御部は、データを前記揮発性メモリへ読み込むときの速度及びページフォールトが発生したときにデータを前記揮発性メモリに読み込むときに掛かる処理時間に基づいて、前記スナップショットイメージの作成に用いるべきデータの数を判断する
電子機器。 - 請求項2に記載の電子機器であって、
前記制御部は、前記プロファイリングにより前記スナップショットイメージの作成に用いられると判断されたデータのうち、どのデータを前記スナップショットイメージの作成に用いるかを更に判断する
電子機器。 - 請求項15に記載の電子機器であって、
前記制御部は、データと、前記データが前記揮発性メモリに読み込まれた時刻を示す時刻情報とを前記プロファイリングモードにおいて関連付け、前記時刻情報に基づいて、データが読み込まれる頻度が高い時間区域を判断し、頻度が高い前記時間区域内に前記揮発性メモリに読み込まれたデータを用いて前記スナップショットイメージを作成する
電子機器。 - 起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振り、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成する
スナップショットイメージの作成方法。 - 電子機器に、
起動開始から起動開始後の特定の時点までの間に揮発性メモリに展開されたデータを、スナップショットイメージの作成に用いるデータと、スワップデバイスに記憶しておくデータとに割り振るステップと、
前記スナップショットイメージの作成に用いるデータに基づいて、前記スナップショットイメージを作成するステップと
を実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013052691A JP2014178913A (ja) | 2013-03-15 | 2013-03-15 | 電子機器、スナップショットイメージの作成方法及びプログラム |
US14/157,586 US20140281187A1 (en) | 2013-03-15 | 2014-01-17 | Electronic apparatus, method of creating snapshot image, and program |
CN201410083551.9A CN104050055A (zh) | 2013-03-15 | 2014-03-07 | 电子设备、创建快照映像的方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013052691A JP2014178913A (ja) | 2013-03-15 | 2013-03-15 | 電子機器、スナップショットイメージの作成方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014178913A true JP2014178913A (ja) | 2014-09-25 |
Family
ID=51502946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013052691A Pending JP2014178913A (ja) | 2013-03-15 | 2013-03-15 | 電子機器、スナップショットイメージの作成方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140281187A1 (ja) |
JP (1) | JP2014178913A (ja) |
CN (1) | CN104050055A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017091512A (ja) * | 2015-11-06 | 2017-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | サービスの再活性化時間を短縮するための方法、システム、およびプログラム |
JP2019003286A (ja) * | 2017-06-12 | 2019-01-10 | トヨタ自動車株式会社 | 情報処理方法、情報処理装置、及びプログラム |
JP2019185717A (ja) * | 2018-03-30 | 2019-10-24 | 株式会社リコー | 情報処理装置及び起動方法 |
JP2020004205A (ja) * | 2018-06-29 | 2020-01-09 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
JP2020027554A (ja) * | 2018-08-17 | 2020-02-20 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
JP2021518605A (ja) * | 2018-03-21 | 2021-08-02 | マイクロン テクノロジー,インク. | ハイブリッドメモリシステム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6223740B2 (ja) * | 2013-07-25 | 2017-11-01 | 京セラ株式会社 | 電子機器、プログラムおよび電子機器の制御方法 |
JP6737013B2 (ja) * | 2016-07-05 | 2020-08-05 | コニカミノルタ株式会社 | 画像形成装置、起動方法、およびコンピュータプログラム |
CN114185494B (zh) * | 2022-02-16 | 2022-07-19 | 荣耀终端有限公司 | 内存匿名页的处理方法、电子设备及可读存储介质 |
-
2013
- 2013-03-15 JP JP2013052691A patent/JP2014178913A/ja active Pending
-
2014
- 2014-01-17 US US14/157,586 patent/US20140281187A1/en not_active Abandoned
- 2014-03-07 CN CN201410083551.9A patent/CN104050055A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017091512A (ja) * | 2015-11-06 | 2017-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | サービスの再活性化時間を短縮するための方法、システム、およびプログラム |
US10834228B2 (en) | 2015-11-06 | 2020-11-10 | International Business Machines Corporation | Method to reduce reactivation time of cloud based services |
JP2019003286A (ja) * | 2017-06-12 | 2019-01-10 | トヨタ自動車株式会社 | 情報処理方法、情報処理装置、及びプログラム |
JP2021518605A (ja) * | 2018-03-21 | 2021-08-02 | マイクロン テクノロジー,インク. | ハイブリッドメモリシステム |
JP7049476B2 (ja) | 2018-03-21 | 2022-04-06 | マイクロン テクノロジー,インク. | ハイブリッドメモリシステム |
JP2019185717A (ja) * | 2018-03-30 | 2019-10-24 | 株式会社リコー | 情報処理装置及び起動方法 |
JP7107069B2 (ja) | 2018-03-30 | 2022-07-27 | 株式会社リコー | 情報処理装置及び起動方法 |
JP2020004205A (ja) * | 2018-06-29 | 2020-01-09 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
JP7053979B2 (ja) | 2018-06-29 | 2022-04-13 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
JP2020027554A (ja) * | 2018-08-17 | 2020-02-20 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
JP7192303B2 (ja) | 2018-08-17 | 2022-12-20 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN104050055A (zh) | 2014-09-17 |
US20140281187A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014178913A (ja) | 電子機器、スナップショットイメージの作成方法及びプログラム | |
US8719639B2 (en) | Virtual machine control program, virtual machine control system, and dump capturing method | |
US20170286153A1 (en) | Managing Container Pause And Resume | |
TWI514140B (zh) | 非揮發性記憶裝置及其操作方法 | |
KR101201186B1 (ko) | 데이터를 기억 장치에 기록하기 위한 방법 및 시스템 | |
US20150378888A1 (en) | Controller, flash memory apparatus, and method for writing data into flash memory apparatus | |
JP6138774B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
US20150074058A1 (en) | Container-based processing method, apparatus, and system | |
US9081692B2 (en) | Information processing apparatus and method thereof | |
JP4886866B2 (ja) | 主記憶装置へのアクセスを高速化する方法および記憶装置システム | |
US20110225342A1 (en) | Opportunistic page caching for virtualized servers | |
CN114546634B (zh) | 对系统的同步重启的管理 | |
CN108475201B (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
US9342344B2 (en) | Content-based swap candidate selection | |
JP5158206B2 (ja) | メモリ初期化方法、メモリ初期化プログラム | |
US10346234B2 (en) | Information processing system including physical memory, flag storage unit, recording device and saving device, information processing apparatus, information processing method, and computer-readable non-transitory storage medium | |
KR100994723B1 (ko) | 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체 | |
WO2012098633A1 (ja) | メモリ管理方法、メモリ管理装置およびメモリ管理回路 | |
US20140372806A1 (en) | Virtual machine system and information storing processing method | |
US9904559B2 (en) | Information processing apparatus and activation method therefor for processing data of a hibernation image | |
JP2017201481A (ja) | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
JP5335625B2 (ja) | ブート時間を短縮するコンピュータ・プログラム | |
US8140597B2 (en) | Computer system memory management | |
US20160266960A1 (en) | Information processing apparatus and kernel dump method | |
JP6429197B2 (ja) | 論理物理アドレス変換テーブルの制御方法及びメモリ装置 |