IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

<>
  • 特許-情報処理装置及び起動方法 図1
  • 特許-情報処理装置及び起動方法 図2
  • 特許-情報処理装置及び起動方法 図3
  • 特許-情報処理装置及び起動方法 図4
  • 特許-情報処理装置及び起動方法 図5
  • 特許-情報処理装置及び起動方法 図6
  • 特許-情報処理装置及び起動方法 図7
  • 特許-情報処理装置及び起動方法 図8
  • 特許-情報処理装置及び起動方法 図9
  • 特許-情報処理装置及び起動方法 図10
  • 特許-情報処理装置及び起動方法 図11
  • 特許-情報処理装置及び起動方法 図12
  • 特許-情報処理装置及び起動方法 図13
  • 特許-情報処理装置及び起動方法 図14
  • 特許-情報処理装置及び起動方法 図15
  • 特許-情報処理装置及び起動方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-19
(45)【発行日】2022-07-27
(54)【発明の名称】情報処理装置及び起動方法
(51)【国際特許分類】
   G06F 9/4401 20180101AFI20220720BHJP
   G06F 9/445 20180101ALI20220720BHJP
【FI】
G06F9/4401
G06F9/445
【請求項の数】 9
(21)【出願番号】P 2018142987
(22)【出願日】2018-07-30
(65)【公開番号】P2019185717
(43)【公開日】2019-10-24
【審査請求日】2021-05-20
(31)【優先権主張番号】P 2018068494
(32)【優先日】2018-03-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】千田 滋也
(72)【発明者】
【氏名】小池 和正
【審査官】多賀 実
(56)【参考文献】
【文献】特開2014-178913(JP,A)
【文献】特開2005-284491(JP,A)
【文献】特開2004-038546(JP,A)
【文献】特開2017-162311(JP,A)
【文献】国際公開第2006/001050(WO,A1)
【文献】米国特許出願公開第2013/0124842(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44-9/445
(57)【特許請求の範囲】
【請求項1】
ハイバネーション起動を行う情報処理装置であって、
スナップショット作成起動又はスナップショット起動を選択する選択手段と、
前記スナップショット作成起動の選択時に1つ以上のアプリケーションの起動処理を開始させる起動手段と、
前記起動処理におけるスナップショットの作成時点が設定されており、前記作成時点まで起動処理を進めたあとで通知を行う1つ以上のアプリケーションと、
前記アプリケーションの全てから前記通知を受け取ったあと、スナップショットの作成指示を行う作成指示手段と、
前記作成指示に基づき、スナップショットを作成する作成手段と、
前記スナップショットを記憶する記憶手段と、
前記スナップショット起動の選択時に前記記憶手段が記憶する前記スナップショットを読み出し、前記アプリケーションに前記作成時点以降の前記起動処理の開始指示を行うことで前記アプリケーションの起動処理を完了させる開始指示手段と、
を有する情報処理装置。
【請求項2】
前記スナップショット作成起動の選択時に1つ以上のアプリケーションの優先度を取得する優先度取得手段、を更に有し、
前記開始指示手段は、前記優先度取得手段が前記スナップショット作成起動の選択時に取得した1つ以上のアプリケーションの優先度に基づいた順番で、前記アプリケーションに前記作成時点以降の前記起動処理の開始指示を行うことで前記アプリケーションの起動処理を完了させること
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記優先度取得手段が前記スナップショット作成起動の選択時に取得した1つ以上のアプリケーションの優先度を、ユーザから受け付けた変更依頼に基づき変更する優先度変更手段、を更に有すること
を特徴とする請求項2記載の情報処理装置。
【請求項4】
前記起動手段は、ブートローダを含み、
前記ブートローダは、ブート処理時にデバイス処理の対象となる1つ以上のデバイスのうち、予め設定されたデバイスについて、前記スナップショット作成起動の選択時、前記デバイスを認識しないように制御を行い、前記スナップショット起動の選択時、前記デバイスを認識するように制御を行うこと、を特徴とする請求項1乃至3何れか一項記載の情報処理装置。
【請求項5】
前記起動手段は、オペレーティングシステムを含み、
前記オペレーティングシステムは、オペレーティングシステムの起動処理時にデバイスドライバ処理の対象となる1つ以上のデバイスドライバのうち、予め設定されたデバイスドライバについて、前記スナップショット作成起動の選択時、前記デバイスドライバを有効にしないように制御を行い、前記スナップショット起動の選択時、前記デバイスドライバを有効にするように制御を行うこと、を特徴とする請求項1乃至4何れか一項記載の情報処理装置。
【請求項6】
前記オペレーティングシステムは、オペレーティングシステムの起動処理時にデバイスドライバ処理の対象となる1つ以上のデバイスドライバのうち、予め設定されたデバイスドライバについて、前記スナップショット作成起動の選択時、前記デバイスドライバの機能の少なくとも1つを有効にしないように制御を行い、前記スナップショット起動の選択時、前記デバイスドライバの機能の全てを有効にするように制御を行うこと、を特徴とする請求項5記載の情報処理装置。
【請求項7】
前記スナップショット作成起動の選択時に前記情報処理装置にインストールされていなかった追加アプリケーションは、前記スナップショット起動の選択時、前記起動処理の開始指示の後で、前記起動処理を実行すること
を特徴とする請求項1乃至6何れか一項記載の情報処理装置。
【請求項8】
前記情報処理装置は、画像処理装置の操作部として機能すること
を特徴とする請求項1乃至7何れか一項記載の情報処理装置。
【請求項9】
ハイバネーション起動を行う情報処理装置の起動方法であって、
スナップショット作成起動又はスナップショット起動を選択するステップと、
前記スナップショット作成起動の選択時に1つ以上のアプリケーションの起動処理を開始させるステップと、
前記起動処理におけるスナップショットの作成時点が設定されている1つ以上のアプリケーションが、前記作成時点まで起動処理を進めたあとで通知を行うステップと、
前記アプリケーションの全てから前記通知を受け取ったあと、スナップショットの作成指示を行うステップと、
前記作成指示に基づき、スナップショットを作成する作成ステップと、
前記スナップショットを記憶手段に記憶するステップと、
前記スナップショット起動の選択時に前記記憶手段が記憶する前記スナップショットを読み出し、前記アプリケーションに前記作成時点以降の前記起動処理の開始指示を行うことで前記アプリケーションの起動処理を完了させるステップと、
を有する起動方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び起動方法に関する。
【背景技術】
【0002】
情報処理装置の省電力化と起動の高速化を可能にするハイバネーションと言う方法は従来から知られている。
【0003】
ハイバネーションは、メモリ内容やCPU等のハードウェアの設定など、情報処理装置が動作中の状態情報について、スナップショットと呼ばれるデータを作成し、不揮発性の記憶媒体に保存した後、情報処理装置をシャットダウンする。次回の起動において、情報処理装置は、不揮発性の記憶媒体に保存しておいたスナップショット(スナップショットイメージ)を使用し、シャットダウン前のシステム状態を復元することで、動作中のシステム中断と、起動および再開の高速化を可能にしている(例えば特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のハイバネーションは、シャフトダウン前にハイバネーションのスナップショットを作成するが、スナップショットの作成時間が掛かるため、シャフトダウンに即応性の求められる情報処理装置での使用に不向きであった。このため、シャフトダウンに即応性の求められる情報処理装置では固定のスナップショットを予め作成しておくことで、シャフトダウン前のスナップショットの作成を無くすことが考えられる。
【0005】
しかしながら、固定のスナップショットを予め作成しておく情報処理装置では、そのスナップショットの作成時と周辺機器の有無や有効無効が異なる環境で使用することができず、環境の変化に柔軟に対応できないという問題があった。
【0006】
本発明の実施の形態は上記の点に鑑みなされたもので、固定のスナップショットによるハイバネーション起動であっても、環境の変化に柔軟に対応できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本願請求項1は、ハイバネーション起動を行う情報処理装置であって、スナップショット作成起動又はスナップショット起動を選択する選択手段と、前記スナップショット作成起動の選択時に1つ以上のアプリケーションの起動処理を開始させる起動手段と、前記起動処理におけるスナップショットの作成時点が設定されており、前記作成時点まで起動処理を進めたあとで通知を行う1つ以上のアプリケーションと、前記アプリケーションの全てから前記通知を受け取ったあと、スナップショットの作成指示を行う作成指示手段と、前記作成指示に基づき、スナップショットを作成する作成手段と、前記スナップショットを記憶する記憶手段と、前記スナップショット起動の選択時に前記記憶手段が記憶する前記スナップショットを読み出し、前記アプリケーションに前記作成時点以降の前記起動処理の開始指示を行うことで前記アプリケーションの起動処理を完了させる開始指示手段と、を有すること、を特徴とする。
【発明の効果】
【0008】
本発明の実施の形態によれば、固定のスナップショットによるハイバネーション起動であっても、環境の変化に柔軟に対応できる。
【図面の簡単な説明】
【0009】
図1】本実施形態に係る画像処理装置の一例の構成図である。
図2】本実施形態に係る操作部の一例の機能構成図である。
図3】本実施形態に係る電源オンからの起動処理の一例のフローチャートである。
図4】ステップS13のスナップショット作成起動の一例のフローチャートである。
図5】ステップS25のアプリケーションの起動処理の一例のフローチャートである。
図6】ステップS21のブートローダ起動の一例のフローチャートである。
図7】ステップS22のOS起動の一例のフローチャートである。
図8】ステップS62のタッチパネルドライバの初期化の一例のフローチャートである。
図9】ステップS14のスナップショット起動の一例のフローチャートである。
図10】ステップS85の継続処理の一例のフローチャートである。
図11】本実施形態に係る操作部の他の例の機能構成図である。
図12】ステップS25のアプリケーションの起動処理の他の例のフローチャートである。
図13】優先度キューの一例の構成図である。
図14】eMMCに記憶されるスナップショットイメージ及び優先度キューの一例の構成図である。
図15】ステップS85の継続処理の他の例のフローチャートである。
図16】優先度変更処理の一例のフローチャートである。
【発明を実施するための形態】
【0010】
次に、本発明の実施の形態について説明する。本実施形態では画像処理装置の操作部として機能する情報処理装置がハイバネーション起動を行う例について説明する。画像処理装置は組み込み機器の一例であって、MFP(Multifunction Peripheral)等である。ただし、情報処理装置はこれに限定されず、アプリケーションがインストール可能な機器であれば良く、例えば、MFPの本体部2や電子黒板、プロジェクタ、パーソナルコンピュータ、スマートフォンやタブレット端末などの携帯端末であっても良い。
【0011】
[第1の実施形態]
<ハードウェア構成>
図1は本実施形態に係る画像処理装置の一例の構成図である。図1の画像処理装置1はケーブル4によりデータ通信可能に接続された本体部2と操作部3とを備える。なお、本体部2と操作部3は、ケーブル4による有線接続に代えて、無線(赤外線を含む)接続としてもよい。本体部2は、本体部コントローラの制御により、スキャナデバイスによる原稿の読み取りや、プロッタデバイスによる用紙への印刷を行う。
【0012】
操作部3は、SOC(System-on-a-chip)10と、タッチパネル12と、eMMC(embedded Multi Media Card)14と、LCD(Liquid Crystal Display)16と、メモリ18とを有する。SOC10は1個のチップに、USB(Universal Serial Bus)ファンクション20、CPU(Central Processing Unit)22、MMCコントローラ24、LCDコントローラ26、GPIO(General Purpose Input/Output)28、I2C(Inter-Integrated Circuit)30、及び、メモリコントローラ32を備える。
【0013】
SOC10は操作部3のシステムとして機能するように設計されている。SOC10は組み込み用マルチメディアカードであるeMMC14からブートする構成であり、eMMC14の特定箇所に置かれたブートローダからシステムをブートする。ブートローダはeMMC14のファイルパーティション上に置かれたカーネルおよびルートファイルシステムをロードし、カーネルを起動する。
【0014】
なお、後述するように本実施形態に係る操作部3は、スナップショット作成起動又はスナップショット起動を行う。スナップショット作成起動の場合、操作部3はカーネルの起動後、後述するようなスナップショット作成起動の処理により作成したスナップショットを不揮発性の記憶媒体であるeMMC14に記憶させる。
【0015】
また、スナップショット起動の場合、操作部3はカーネルの起動後、後述するようなスナップショット起動の処理により、eMMC14に記憶させたスナップショットをメモリ18に展開し、ハイバネーション起動を行う。本実施形態に係る画像処理装置1は例えば工場出荷前にスナップショット作成起動を行って、eMMC14にスナップショットを記憶しておく。そして、工場出荷後、本実施形態に係る画像処理装置1は通常の電源オンからの起動でスナップショット起動を行う。したがって、本実施形態に係る画像処理装置1はシャフトダウン時にスナップショットを作成する場合に生じる電源がなかなか落ちないというような不自然な状態にならない。
【0016】
タッチパネル12はユーザから操作を受け付ける。LCD16は画面表示を行う。メモリ18は、プログラムやデータを一時保持する揮発性の記憶媒体の一例である。CPU22はeMMC14などの記憶媒体からプログラムやデータをメモリ18に展開し、処理を実行することで、操作部3の制御や機能を実現する。
【0017】
なお、本体部2と操作部3とは図1に示したように別筐体内に設けてもよいし、同一匡体内に設けてもよい。例えば本体部2の筐体と別の匡体内に設けられ、本体部2から分離可能な操作部3は無線接続にすることで、本体部2から分離したまま利用するというような利用形態が可能となる。
【0018】
<ソフトウェア構成>
本実施形態に係る操作部3は例えば図1のハードウェア構成上でプログラムを実行することにより、図2に示すような各種機能を実現できる。図2は本実施形態に係る操作部の一例の機能構成図である。図2に示す操作部3はブートローダ50、OS(オペレーティングシステム)52、アプリ起動部54、アプリケーション56、スナップショットマネージャ58、スナップショット作成起動選択部60及びスナップショット記憶部62を実現している。
【0019】
ブートローダ50はスナップショット作成起動判断部70及び起動動作制御部72を有する。スナップショット作成起動判断部70は電源オンからの起動がスナップショット作成起動であるか、スナップショット起動であるか、を判断する。起動動作制御部72はスナップショット作成起動判断部70による判断に基づき、起動動作を制御する。
【0020】
OS52はカーネル74を有する。また、カーネル74は、スナップショット作成起動判断部76、スナップショット作成起動動作制御部78、スナップショット作成指示受付部80、スナップショット作成部82及びスナップショット起動動作制御部84を有している。
【0021】
スナップショット作成起動判断部76は電源オンからの起動がスナップショット作成起動であるか、スナップショット起動であるか、を判断する。スナップショット作成起動動作制御部78はスナップショット作成起動である場合に、スナップショット作成起動動作を制御する。
【0022】
スナップショット作成指示受付部80はスナップショットマネージャ58からスナップショット作成指示を受け付ける。スナップショット作成部82はスナップショット作成指示受付部80がスナップショットマネージャ58からスナップショット作成指示を受け付けると、スナップショットの作成を行う。また、スナップショット起動動作制御部84はスナップショット起動である場合に、スナップショット起動動作を制御する。
【0023】
アプリ起動部54は例えば「init」により実現される。アプリ起動部54はカーネルの起動後の最初のプロセスであり、例えば「init.rc」などの設定ファイルに従い、1つ以上のアプリケーション56を起動していく。アプリケーション56は起動処理部86、スナップショット作成時点通過通知部88及びスナップショット起動開始指示受付部90を有する。
【0024】
起動処理部86はアプリケーション56の起動処理を行う。スナップショット作成時点通過通知部88は起動処理の開始から終了までの間にスナップショットを作成するタイミング(スナップショット作成時点)を設計上、持っている。スナップショット作成時点通過通知部88は起動処理がスナップショット作成時点まで進んだタイミングで、スナップショットマネージャ58に通知を行う。つまり、スナップショット作成時点とは、複数の処理から成る起動処理のうち所定の処理まで終了した状態であること、又は終了したタイミングのことである。以下では、所定の処理まで終了すること、又は終了したタイミングを、スナップショット作成時点まで進む、又はスナップショット作成時点の通過と表現する場合がある。なお、起動処理部86はスナップショット作成時点まで進んだタイミングで起動処理を停止する。また、スナップショット起動開始指示受付部90はスナップショット起動である場合に、スナップショットマネージャ58からのスナップショット起動開始指示を受け付け、スナップショット作成時点以降の起動処理である継続起動を行う。
【0025】
スナップショットマネージャ58はスナップショット作成指示部92、及び、スナップショット起動開始指示部94を有する。スナップショット作成指示部92は全てのアプリケーション56からスナップショット作成時点通過通知を受け付けると、カーネル74にスナップショット作成指示を行う。
【0026】
スナップショット起動開始指示部94は、スナップショット起動である場合に、アプリケーション56にスナップショット起動開始指示を行う。
【0027】
なお、スナップショットマネージャ58は、操作部3のeMMC14などの記憶部を読み出すことで、又はアプリケーション56のインストール状況を制御するプログラムに問い合わせることで、操作部3にインストールされたアプリケーション56を把握しても良い。また、操作部3にインストールされた複数のアプリケーションのうち、スナップショット作成に必要なアプリケーション56のみを特定しても良い。この場合、スナップショット作成指示部92は、特定したアプリケーション56からスナップショット作成時点通知を受け付けると、カーネル74にスナップショット作成指示を行い、スナップショット起動開始指示部94は、スナップショット起動である場合に、特定したアプリケーション56にスナップショット起動開始指示を行う。
【0028】
スナップショット作成起動選択部60は電源オンからの起動が、スナップショット作成起動であるか、スナップショット起動であるか、を選択する。例えばスナップショット作成起動選択部60はGPIO28に接続されたDIPスイッチ(ディップスイッチ)等により、電源オンからの起動が、スナップショット作成起動であるか、スナップショット起動であるか、を選択する。ただし、スナップショット作成起動であるかスナップショット起動であるかの選択方法は、これに限定されず、例えば、記憶部に記憶されたフラグ情報に基づいて操作部3の起動が初回起動であるか否かを判断し、初回起動である場合はスナップショット作成起動を選択し、初回起動でない場合はスナップショット起動を選択しても良い。カーネル74のスナップショット作成部82に作成されたスナップショットはスナップショット記憶部62に記憶される。
【0029】
<処理の詳細>
本実施形態に係る操作部3は、例えば図3に示すような手順により電源オンからの起動処理を行う。図3は本実施形態に係る電源オンからの起動処理の一例のフローチャートである。
【0030】
ステップS11において、操作部3はスナップショット作成起動選択部60による電源オンからの起動処理の選択がスナップショット作成起動であるか、スナップショット起動であるか、を確認する。電源オンからの起動処理の選択がスナップショット作成起動であれば、操作部3はステップS13のスナップショット作成起動を行う。また、電源オンからの起動処理の選択がスナップショット作成起動でなければ、操作部3はステップS14のスナップショット起動を行う。
【0031】
ステップS13のスナップショット作成起動は、例えば図4に示すような手順により行われる。図4は、ステップS13のスナップショット作成起動の一例のフローチャートである。
【0032】
ステップS21においてブートローダ50が起動される。ブートローダ50の起動動作制御部72はスナップショット作成起動の起動動作を開始する。ステップS22において起動動作制御部72はOS52のカーネル74をロードし、起動する。カーネル74はOS52を起動する。また、ステップS23に進み、カーネル74はアプリ起動部54を起動する。
【0033】
ステップS24に進み、アプリ起動部54は設定ファイルに従い、スナップショットマネージャ58を起動する。アプリ起動部54はステップS25に進み、設定ファイルに従い、アプリケーション56に起動処理を開始させる。ステップS25のアプリケーション56の起動処理により、スナップショットマネージャ58のスナップショット作成指示部92は全てのアプリケーション56の起動処理がスナップショット作成時点まで進んだタイミングで、カーネル74にスナップショット作成指示を行う。したがって、カーネル74のスナップショット作成部82は、ステップS26において全てのアプリケーション56の起動処理がスナップショット作成時点まで進んだタイミングで、スナップショットを作成できる。
【0034】
ステップS25のアプリケーション56の起動処理は、例えば図5に示す手順により行われる。図5は、ステップS25のアプリケーションの起動処理の一例のフローチャートである。
【0035】
ステップS31に進み、起動処理部86は起動処理を開始する。起動処理部86は起動処理をスナップショット作成時点まで進め、起動処理を停止する。起動処理部86による起動処理がスナップショット作成時点まで進むと、スナップショット作成時点通過通知部88はスナップショットマネージャ58にスナップショット作成時点通過通知を行う。
【0036】
スナップショットマネージャ58のスナップショット作成指示部92はステップS33において、全てのアプリケーション56からスナップショット作成時点通過通知を受け付けるまで待機する。全てのアプリケーション56からスナップショット作成時点通過通知を受け付けると、スナップショット作成指示部92はステップS34に進み、カーネル74にスナップショット作成指示を行う。
【0037】
スナップショット作成部82はスナップショットマネージャ58からスナップショット作成指示を受け付けたタイミングで、スナップショットの作成を行う。したがって、本実施形態の操作部3は、全てのアプリケーション56の起動処理がスナップショット作成時点まで進んだタイミングのスナップショットを安定して作成できる。
【0038】
ところで、本実施形態に係る画像処理装置1では、スナップショット作成起動時、余計なデバイスドライバの処理を排除しておくことが望ましい。本実施形態に係る画像処理装置1では、スナップショット起動時に実際の環境に合わせてデバイスを有効にする方法が整合した起動状態となりやすい為である。
【0039】
そこで、本実施形態に係る画像処理装置1では、画像処理装置1のデバイス構成及びデバイスドライバ構成により、スナップショット作成起動時の状態が、画像処理装置1のデバイスの起動状態に依存しないようにデバイスドライバごとに検討を行った。本実施形態に係る画像処理装置1ではステップS21のブートローダ起動に含まれるデバイス処理の動作を、スナップショット作成起動時とスナップショット起動時とで以下のように変化させる。
【0040】
また、本実施形態に係る画像処理装置1ではステップS22のOS起動に含まれるデバイスドライバ処理の動作を、スナップショット作成起動時とスナップショット起動時とで以下のように変化させる。
【0041】
図6はステップS21のブートローダ起動の一例のフローチャートである。例えば図6のフローチャートは、スナップショット作成起動時、ハブ(HUB)のPHYチップの電源をオンしないで、USB機器が繋がっていても物理的に認識しないようにする。PHYチップの電源をオンしないことで、USBホストドライバ自体は初期化された状態にすることができる。また、スナップショット起動時、ハブのPHYチップの電源をオンにすることで、USB機器の接続が検知される状態にすることができる。
【0042】
ステップS51に進み、ブートローダ50の起動動作制御部72はメモリ18やCPU22の初期化を行う。ステップS52に進み、起動動作制御部72は後述の各デバイス処理を行う。ステップS53に進み、ブートローダ50はOS起動処理を開始する。
【0043】
ステップS52の各デバイス処理では、起動動作制御部72がUSBホストを含む、いろいろなデバイスの初期化を行う。USBホストの初期化では、ステップS56においてスナップショット作成起動であるか否かを判定し、スナップショット作成起動であれば、ハブのPHYチップの電源をオンしないことによりUSB機器を物理的に認識させないようにする。
【0044】
スナップショット作成起動でなければステップS57に進み、起動動作制御部72はハブのPHYチップの電源をオンすることにより、USB機器の接続が検知される状態とすることができる。USBホストのハブのPHYチップの電源制御は単純な電源の入り切りのため、ブートローダ50で処理する。
【0045】
図7はステップS22のOS起動の一例のフローチャートである。例えば図7のフローチャートは、スナップショット作成起動時、無線LANモジュールに電源供給しないことでデバイスドライバが有効にならないようにする。また、スナップショット起動時、無線LANモジュールに電源供給することでデバイスドライバが有効になるようにする。
【0046】
ステップS61に進み、カーネル74はOS52の初期化を行う。ステップS62に進み、カーネル74は後述の各デバイスドライバ処理を行う。ステップS63に進み、カーネル74は初期プロセス起動を開始する。
【0047】
ステップS62の各デバイスドライバ処理では、カーネル74が無線LANドライバ及びタッチパネルドライバを含む、いろいろなデバイスドライバの初期化を行う。無線LANドライバの初期化では、ステップS67においてスナップショット作成起動であるか否かを判定し、スナップショット作成起動であれば、無線LANモジュールに電源供給しないことにより無線LANドライバが有効にならないようにする。
【0048】
スナップショット作成起動でなければステップS68に進み、カーネル74は無線LANモジュールに電源供給することで無線LANモジュールが検知される状態となり、デバイスドライバが初期化され、有効となる。
【0049】
また、図7のフローチャートは、スナップショット作成起動時、タッチパネル12の入力検知を無効化して起動する。また、スナップショット起動時、タッチパネル12の入力検知を有効化して起動する。ステップS62のタッチパネルドライバの初期化は例えば図8に示すフローチャートのように行われる。
【0050】
図8は、ステップS62のタッチパネルドライバの初期化の一例のフローチャートである。ステップS71においてカーネル74は、タッチパネル12及びタッチパネルドライバを初期化する。タッチパネルドライバの初期化では、ステップS72においてスナップショット作成起動であるか否かを判定する。スナップショット作成起動であれば、タッチパネル12の入力検知を無効化して起動する。スナップショット作成起動でなければ、ステップS73に進み、カーネル74はタッチパネル12の入力検知(割り込み)を有効化する。図7に示した無線LANドライバの初期化及び図8に示したタッチパネルドライバの初期化はカーネル74で処理する。
【0051】
図6に示したブートローダ機能及び図7に示したOS起動によれば、画像処理装置1に固有な各デバイス処理及び各デバイスドライバ処理を行うことで、スナップショット作成時に余計な処理を行うことなく、構成に中立なスナップショットを作成できる。例えば画像処理装置1は、追加オプションによりUSB機器の指紋認証デバイスが繋がるケースがある。
【0052】
このような場合、本実施形態に係る画像処理装置1では、スナップショット作成起動で指紋認証デバイスが有効にならず、その指紋認証デバイスのデバイスドライバを有効にしない状態でスナップショットを作成できる。つまり、本実施形態に係る画像処理装置1ではデバイスドライバによるメモリ専有などの副作用のない状態で、スナップショットを作成できる。また、本実施形態に係る画像処理装置1ではスナップショット起動で指紋認証デバイスが有効になり、指紋認証デバイスの接続が検知される状態となるため、後述のドライバ環境対応及び継続起動により、指紋認証デバイスを動作させることができる。
【0053】
ステップS14のスナップショット起動は、例えば図9の手順により行われる。図9はステップS14のスナップショット起動の一例のフローチャートである。
【0054】
ステップS81においてブートローダ50が起動される。ブートローダ50の起動動作制御部72はスナップショット起動の起動動作を開始する。ステップS82において起動動作制御部72はOS52のカーネル74をロードし、起動する。カーネル74はOS52を起動する。
【0055】
ステップS83に進み、カーネル74のスナップショット起動動作制御部84はeMMC14に記憶されているスナップショットをメモリ18に展開し、ハイバネーション起動を行う。つまり、メモリ18には、アプリケーション56の起動処理がスナップショット作成時点まで進んだタイミングのメモリ18が再現される。
【0056】
ステップS84に進み、スナップショット起動動作制御部84は画像処理装置1の環境に依存する機能の整合をドライバ環境対応で行う。スナップショット起動動作制御部84はステップS85に進み、スナップショット作成時点以降のアプリケーション56の起動処理である継続起動を行う。
【0057】
ステップS85の継続処理は、例えば図10に示す手順により行われる。図10は、ステップS85の継続処理の一例のフローチャートである。スナップショットマネージャ58のスナップショット起動開始指示部94は、ステップS91でスナップショット起動が開始されたと判定すると、ステップS92に進む。
【0058】
ステップS92において、スナップショット起動開始指示部94はアプリケーション56にスナップショット起動開始指示を行う。アプリケーション56のスナップショット起動開始指示受付部90はステップS93において、スナップショットマネージャ58からのスナップショット起動開始指示を待っている。
【0059】
スナップショットマネージャ58からのスナップショット起動開始指示を受け付けるとアプリケーション56の起動処理部86は、ステップS94に進み、スナップショット作成時点以降の起動処理である継続起動を行う。
【0060】
<まとめ>
本実施形態によれば、固定のスナップショットによるハイバネーション起動を行う画像処理装置1の操作部3において、周辺機器の有無や有効無効などの環境の変化に影響を受けないようにスナップショットを作成しておくことができる。ハイバネーション起動では固定のスナップショットをメモリ18に展開した後、環境に依存する機能の整合をドライバ環境対応で行ったあと、残りの起動処理である継続起動を行うことができる。
【0061】
したがって、本実施形態によれば、固定のスナップショットによるハイバネーション起動であっても、環境の変化に柔軟に対応できる操作部3を提供できる。
【0062】
[第2の実施形態]
第1の実施形態に係る画像処理装置1では、工場出荷前にスナップショット作成起動を行って、工場出荷後、通常の電源オンからの起動でスナップショット起動を行う例を説明した。スナップショット作成起動は工場出荷後に行ってもよく、アプリケーション56の追加や周辺機器の追加などの環境の変化があった場合に、ユーザがスナップショット作成起動を選択できるようにしてもよい。
【0063】
また、スナップショット作成後に操作部3に追加された(インストールされた)追加アプリケーションの起動処理は、ステップS85の継続起動において、起動処理の開始から終了までを行うようにすることで、追加アプリケーションが追加される前に作成済みのスナップショットを継続して利用するようにしてもよい。
【0064】
[第3の実施形態]
図10に示したスナップショット作成時点以降のアプリケーション56の起動処理である継続起動では、アプリケーション56が複数ある場合、スナップショット起動開始指示を行う順番を以下のように設定しておいてもよい。なお、第3の実施形態は一部を除いて第1の実施形態と同様であるため、適宜説明を省略する。第3の実施形態は、第1の実施形態と同様に、画像処理装置1の操作部3がハイバネーション起動を行う。
【0065】
図11は本実施形態に係る操作部の他の例の機能構成図である。図11の操作部3は図2の操作部3に、優先度記憶部64、優先度取得部93及び優先度変更部95が追加された構成である。
【0066】
アプリケーション56のスナップショット作成時点通過通知部88は起動処理がスナップショット作成時点まで進んだタイミングで、スナップショットマネージャ58に自身の優先度の通知を行う。なお、スナップショット作成時点通過通知部88は、設計時に各アプリケーション56の間で依存性などを解決できるように整合が取られた優先度を持っている。
【0067】
スナップショットマネージャ58は、図2のスナップショットマネージャ58の構成に優先度取得部93及び優先度変更部95を追加した構成である。優先度取得部93はアプリケーション56から優先度の通知を受ける。通知された優先度はアプリケーション56と対応付けて優先度記憶部64に記憶される。スナップショット作成指示部92は全てのアプリケーション56から優先度の通知を受け付けると、カーネル74にスナップショット作成指示を行う。
【0068】
スナップショット起動開始指示部94は、スナップショット起動である場合に、アプリケーション56の優先度に従った順番にスナップショット起動開始指示を行う。優先度変更部95はアプリケーション56を介してユーザから優先度の変更依頼を受け付け、優先度記憶部64に記憶されたアプリケーション56の優先度を変更する。
【0069】
図12はステップS25のアプリケーションの起動処理の他の例のフローチャートである。ステップS101において「アプリケーションA」の起動処理部86は起動処理を開始する。起動処理部86は起動処理をスナップショット作成時点まで進め、起動処理を停止する。起動処理部86による起動処理がスナップショット作成時点まで進むと「アプリケーションA」のスナップショット作成時点通過通知部88はステップS102において自身の優先度「2」をスナップショットマネージャ58に通知する。
【0070】
また、ステップS103において「アプリケーションB」の起動処理部86は起動処理を開始する。起動処理部86は起動処理をスナップショット作成時点まで進め、起動処理を停止する。起動処理部86による起動処理がスナップショット作成時点まで進むと「アプリケーションB」のスナップショット作成時点通過通知部88はステップS104において自身の優先度「1」をスナップショットマネージャ58に通知する。
【0071】
ステップS105において、スナップショットマネージャ58の優先度取得部93はアプリケーション56からの優先度の通知を受け付けるまで待機する。アプリケーション56から優先度の通知を受け付けると、優先度取得部93はステップS106に進み、通知された優先度を優先度記憶部64の優先度キューへ挿入する。
【0072】
ステップS105~S107の処理は、全てのアプリケーション56から優先度の通知を受け付けるまで繰り返される。全てのアプリケーション56から優先度の通知を受け付けると、スナップショット作成指示部92はステップS108に進み、カーネル74にスナップショット作成指示を行う。
【0073】
図13は優先度キューの一例の構成図である。優先度キューはアプリケーション56の優先度を表している。例えば図13(a)の優先度キューは優先度毎にアプリケーション数を記憶したデータである。優先度の数値が低いアプリケーション56ほど、優先的に起動される。図13(b)の優先度キューはアプリケーション56を特定するアプリ名やアプリIDなどの情報(アプリ特定情報)と、そのアプリケーション56の優先順位とを対応付けてアプリケーション56の優先度を記憶したデータである。
【0074】
また、図13(c)の優先度キューはアプリケーション56ごとの起動条件によりアプリケーション56の優先度を記憶したデータである。図13(c)の優先度キューの場合は、起動条件が設定されていないアプリケーション56の優先度が高く、起動条件が設定されているアプリケーション56の優先度が低い。したがって、図13(c)の場合は起動条件が設定されていないアプリケーション56を起動した後、起動条件が設定されているアプリケーション56を起動させる。
【0075】
図14は、eMMCに記憶されるスナップショットイメージ及び優先度キューの一例の構成図である。スナップショットイメージには、スナップショット作成部82がスナップショットの作成を行ったとき、メモリ18に展開されたアプリケーション56やスナップショットマネージャ58が含まれている。
【0076】
一方、図13に示した優先度キューはスナップショットイメージに含まれず、eMMC14のスナップショットイメージと別のパーティションに保存される。スナップショット起動時、eMMC14のスナップショットイメージは、アプリケーション56やスナップショットマネージャ58としてメモリ18に展開される。スナップショットイメージがメモリ18に展開された段階ではメモリ18に優先度キューが展開されていなくてもよい。
【0077】
図15はステップS85の継続処理の他の例のフローチャートである。図15の継続処理においてスナップショットマネージャ58のスナップショット起動開始指示部94はeMMC14から優先度キューを読み出し、メモリ18に展開する。ステップS121~S128において、スナップショット起動開始指示部94は優先度キューに従い、優先度の高いアプリケーション56から順番に起動処理の再開通知を行う。スナップショット起動開始指示部94からの再開通知を受け付けると、アプリケーション56の起動処理部86はスナップショット作成時点以降の起動処理である継続起動を行う。継続起動を完了させたアプリケーション56は完了通知をスナップショットマネージャ58に返す。
【0078】
スナップショットマネージャ58のスナップショット起動開始指示部94は全てのアプリケーション56から完了通知を受け取るまでステップS121~S128に示した再開通知の送信と完了通知の受信を繰り返し行う。なお、図15は「アプリケーションB」の優先度が「アプリケーションA」の優先度よりも高い例を表している。このため、スナップショット起動開始指示部94は「アプリケーションA」よりも先に「アプリケーションB」へ再開通知を行っている。
【0079】
なお、優先度が同じアプリケーション56が複数ある場合、スナップショット起動開始指示部94は複数のアプリケーション56に対して同時に再開通知を送信し、並列して継続起動を行わせてもよい。また、CPU22の負荷を軽減するために、並列して継続起動を行わせるアプリケーション56の数を制限したり、ランダム又は所定の条件(継続起動に要する時間や必要なメモリ容量など)に基づいて、再開通知に時間差を設けたり、してもよい。
【0080】
図16は、優先度変更処理の一例のフローチャートである。ステップS131~S132において、スナップショットマネージャ58の優先度変更部95はユーザから「アプリケーションA」の優先度を「1」に変更する変更依頼を受け付ける。ステップS133において優先度変更部95は「アプリケーションA」の優先度を「1」に変更する変更依頼に基づき、優先度記憶部64に記憶されている優先度キューの「アプリケーションA」の優先度を「1」に変更する。これにより、スナップショット起動開始指示部94は変更された優先度キューに従い、起動処理の再開通知を行うことができる。
【0081】
第3の実施形態によれば、固定のスナップショットによるハイバネーション起動において起動する順番に依存性のあるアプリケーション56の継続起動の順番を、それぞれのアプリケーション56の優先度により調整できる。また、第3の実施形態によれば、固定のスナップショットによるハイバネーション起動において特定のアプリケーション56の継続起動を優先できるので、ユーザの体感起動の短縮を見込むことのできる例えばホーム画面を制御するアプリケーション56などを優先させて起動できる。
【0082】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば画像処理装置1は一例であって、用途や目的に応じて様々なシステム構成例があることは言うまでもないことである。
【0083】
スナップショット作成起動選択部60は、特許請求の範囲に記載した選択手段の一例である。ブートローダ50、OS52及びアプリ起動部54は、起動手段の一例である。スナップショットマネージャ58のスナップショット作成指示部92は作成指示手段の一例である。カーネル74のスナップショット作成部82は作成手段の一例である。
【0084】
スナップショット記憶部62は記憶手段の一例である。スナップショットマネージャ58のスナップショット起動開始指示部94は開始指示手段の一例である。優先度取得部93は優先度取得手段の一例である。優先度変更部95は優先度変更手段の一例である。
【符号の説明】
【0085】
1 画像処理装置
2 本体部
3 操作部
4 ケーブル
10 SOC(System-on-a-chip)
12 タッチパネル
14 eMMC(embedded Multi Media Card)
16 LCD(Liquid Crystal Display)
18 メモリ
20 USB(Universal Serial Bus)ファンクション
22 CPU(Central Processing Unit)
24 MMCコントローラ
26 LCDコントローラ
28 GPIO(General Purpose Input/Output)
30 I2C(Inter-Integrated Circuit)
32 メモリコントローラ
50 ブートローダ
52 OS
54 アプリ起動部
56 アプリケーション
58 スナップショットマネージャ
60 スナップショット作成起動選択部
62 スナップショット記憶部
64 優先度記憶部
70 スナップショット作成起動判断部
72 起動動作制御部
74 カーネル
76 スナップショット作成起動判断部
78 スナップショット作成起動動作制御部
80 スナップショット作成指示受付部
82 スナップショット作成部
84 スナップショット起動動作制御部
86 起動処理部
88 スナップショット作成時点通過通知部
90 スナップショット起動開始指示受付部
92 スナップショット作成指示部
93 優先度取得部
94 スナップショット起動開始指示部
95 優先度変更部
【先行技術文献】
【特許文献】
【0086】
【文献】特開2017-102584号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16