JP2007323181A - 起動方法及び起動装置 - Google Patents

起動方法及び起動装置 Download PDF

Info

Publication number
JP2007323181A
JP2007323181A JP2006150335A JP2006150335A JP2007323181A JP 2007323181 A JP2007323181 A JP 2007323181A JP 2006150335 A JP2006150335 A JP 2006150335A JP 2006150335 A JP2006150335 A JP 2006150335A JP 2007323181 A JP2007323181 A JP 2007323181A
Authority
JP
Japan
Prior art keywords
application
activation
time
checkpoint
function group
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
JP2006150335A
Other languages
English (en)
Inventor
Shuichi Okamura
秀一 岡村
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 JP2006150335A priority Critical patent/JP2007323181A/ja
Publication of JP2007323181A publication Critical patent/JP2007323181A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】システムの起動時間を守りつつ、なるべく速い段階で全機能が使用できるアプリケーションを起動することができるようにする。
【解決手段】シンプル版アプリケーションの起動シーケンス中にチェックポイントを設けておき、起動時からチェックポイントまでの時間が、ある定められた時間を越えた場合は、デラックス版のアプリケーションの起動を一時停止して、CPU101の負荷をさげる。そして、シンプル版アプリケーションが起動したという通知を受けた後に、デラックス版アプリケーションの起動を再開することで、システムの起動時間を守りつつ、なるべく速い段階で全機能が使用できるアプリケーションを起動する起動方法を提供する。
【選択図】図1

Description

本発明は起動方法、起動装置及びコンピュータプログラムに関し、特に、アプリケーションの起動に用いて好適な技術に関する。
従来、システムが、ある定められた時間内に起動しなければならない場合に、特定のアプリケーションのみを起動時間内に起動して、その他のアプリケーションは遅れて起動していた。
同様の処理を行う2つのアプリケーションがあり、1つは、起動が速いが実行できる機能が少ないAアプリケーションと、もう1つは、起動は遅いが機能が豊富なBアプリケーションがある。この場合に、速いAアプリケーションを起動しておき、遅れて起動される機能が豊富なBアプリケーションをシステムを動作させながら入れ替えることで決められた時間内に必要最低限の処理ができる状態にまで起動できる。そしてなおかつ、しばらくたつと全機能が使えるアプリケーションを提供していた。
アプリケーションをシステムを動作させながら入れ替える方法としては、特許文献1では、特定時刻の計時や、チェックポイントの実行通過、およびチェックポイントまでの処理結果照合の終了などをきっかけとしてプログラム入れ替え方法が示されている。
特開平5−189392号公報
しかしながら、起動の速いアプリケーションを起動した後に、起動の遅い機能の豊富なアプリケーションを起動すると、ある機能が使えるようになるまでの時間がかかってしまうことになるという問題があった。
また、同時に複数のアプリケーションを並列起動する場合では、システムの性能が悪い場合や、起動時の環境要因のためにシステムの初期化処理に思わぬ時間がかかってしまった場合には、CPUパワーが複数のアプリケーションの起動にそれぞれに使われる。このため、起動の速いアプリケーションですら、ある定められた時間内に起動しない場合があるという問題があった。
また、マシンの性能によっては、起動の遅いアプリケーションでも起動時間が守れる場合があり、その場合は最初から機能の豊富なアプリケーションが起動してほしいという要求がある。
本発明は前述の問題点に鑑み、システムの起動時間を守りつつ、なるべく速い段階で全機能が使用できるアプリケーションを起動することができるようにすることを目的としている。
前記目的を達成するために、起動時間が定められていて、高速に起動するが機能が限られるAアプリケーションと、機能が豊富であるが起動に時間がかかるBアプリケーションとを同時に起動する起動方法であって、前記Aアプリケーション内にチェックポイントが設定されている場合に起動からの時間を計測する時間計測工程と、前記Bアプリケーションの起動が完了したことを検知するBアプリケーション起動完了検知工程と、前記Bアプリケーション起動完了検知工程により前記Bアプリケーションの起動が完了したことを検知した場合は処理を終え、前記Bアプリケーションの起動の完了を検知してない場合は前記時間計測工程によりある時間に達したかどうかを判定する時間判定工程と、前記時間判定工程で前記ある時間に達していない場合は前記ある時間に達するまで前記Bアプリケーション起動完了検知工程による処理を繰り返し、前記ある時間に達していた場合は前記Aアプリケーションのチェックポイントを通過したかどうかを判定するチェックポイント判定工程と、前記チェックポイント判定工程により、前記チェックポイントを通過済みと判定された場合は、Bアプリケーション起動完了検知工程からの処理を続け、前記チェックポイント判定工程により、前記チェックポイントを通過していないと判定された場合は前記Bアプリケーションを一時停止させる起動一時停止工程と、前記Aアプリケーションの起動が完了したことを検知するAアプリケーション起動完了検知工程と、前記Aアプリケーション起動完了検知工程により、前記Aアプリケーションの起動が完了したことを検知した場合は一時停止していたBアプリケーションの起動を再開させる起動再開工程とを有し、前記Bアプリケーション起動完了検知工程により、前記Bアプリケーションの起動が完了したことを検知しない場合は検知するまで処理を繰り返し、前記Bアプリケーションの起動の完了を検知した場合は、前記Aアプリケーションの起動を停止させ、前記AアプリケーションとBアプリケーションの入れ替え処理を行うことを特徴とする起動方法等、を提供する。
本発明によれば、起動優先の最低限の機能を持ったシンプル版アプリケーションの起動シーケンス中にチェックポイントを設けておき、起動時からチェックポイントまでの時間がある定められた時間を越えた場合は、デラックス版のアプリケーションの起動を一時停止してCPUの負荷をさげる。そして、シンプル版のアプリケーションが起動したという通知を受けた後に豊富な機能を持ったデラックス版のアプリケーションの起動を再開することで、いろいろな外因があってシステムの初期化などが遅れても、必要最低限の機能が使用できる状態で定められた時間内に起動することができる。
また、その後の、全ての、もしくは豊富な機能を使えるようになるまでの時間が短いシステムを提供することができる効果がある。
また、同じアプリケーション内においても、起動優先の最低限の機能を持ったシンプルな機能群と、豊富な機能を持ったデラックスな機能群に分けておき、シンプルな機能群内にチェックポイントを設けておくことで、起動時からチェックポイントまでの時間が、ある定められた時間を越えた場合は、デラックスな機能群の起動を一時停止して、CPUの負荷をさげる。そして、シンプルな機能群が起動したという通知を受けた後に、デラックスな機能群の起動を再開することで、いろいろな外因があってシステムの初期化などが遅れても必要最低限の機能が使用できる状態で定められた時間内に起動することができる。
また、その後の、全ての、もしくは豊富な機能を使えるようになるまでの時間が短いアプリケーションの起動を行うシステムを提供することができる効果がある。
(第1の実施形態)
本実施形態の装置の構成について、図1のブロック図を参照して説明する。図1において、101はコンピュータ装置100全体を制御するCentral Processing Unit(CPU)である。
102は変更を必要としないプログラムやパラメータを格納するRead Only Memory(ROM)である。103は外部記憶装置104などから供給されるプログラムやデータを一時記憶するRandom Access Memory(RAM)である。
104はコンピュータ装置100に固定して設置されたハードディスクやメモリカード、あるいはコンピュータ装置100から着脱可能なフレキシブルディスク(FD)やCompact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含む外部記憶装置である。
105はユーザの操作を受け、データを入力するポインティングデバイスやキーボード、タッチパネルなどの入力デバイスとの入力インターフェイスである。106はコンピュータ装置100の保持するデータや供給されたデータを表示するためのモニタや液晶パネルとの出力インターフェイスである。
107はネットワーク回線に接続するためのネットワークインターフェイスである。108は、プリンタ109やFAX110やスキャナ111などの外部機器との外部入出力インターフェイスである。この外部入出力インターフェイス108を通して外部機器にコマンドを送ったり、画像の入出力を行ったりする。112は101〜108の各ユニットを通信可能に接続するシステムバスである。
さらに、コンピュータ装置100、スキャナ111、FAX110及びプリンタ109とを合わせて一つのシステムを見ると、Multi Function Printer(MFP)(デジタル複合機)113とみることができる。この場合、FAX110は含まれていなくてもよい。
図2は、本実施形態におけるシステムの構成図を示す図である。
一番下の201は、ハードウェア部分となりその構成は図1に示す構成となっている。202は、基本ソフトであるOperating System(OS)である。203はドライバプログラムであり、OSを通して、アプリケーションからの要求によりハードウェア部分201の制御を行うプログラムである。204はJAVA(登録商標)実行環境であり、JAVA(登録商標)アプリケーション206を実行する仮想マシンである。
205は、ネイティブアプリケーションであり、OS202とドライバプログラム203との機能を用いてプログラムされており、通常JAVA(登録商標)アプリケーション206より高速に動作する。このネイティブアプリケーション205を本実施形態では、高速起動に重点をおいて実行できる機能が少ない(システムに必要最低限の機能を持った)アプリケーションとし、シンプル版アプリケーションと呼ぶ。
206はJAVA(登録商標)アプリケーションであり、JAVA(登録商標)実行環境204の仮想マシン上で動作するプログラムである。このJAVA(登録商標)アプリケーション206では、起動は遅いが機能豊富なアプリケーションが開発されることとし、本実施形態では、デラックス版アプリケーションと呼ぶ。
本実施形態を図3のフローチャートを用いて説明する。
シンプル版アプリケーションをAアプリケーションとし、デラックス版アプリケーションをBアプリケーションとして、システムの起動(OS202の起動も含まれる)が行われる。
また、デバイスの初期化(ドライバプログラム203によってデバイスの初期化が行われる)などが行われた時点で、AアプリケーションとBアプリケーションが同時に起動されるとする。ただし、Bアプリケーションの起動には、JAVA(登録商標)実行環境204の起動も含まれており、実際にはJAVA(登録商標)実行環境204が起動された後にBアプリケーションが起動される。
先ず、ステップS100でBアプリケーションの起動が完了したかどうかを判定する。この判定の結果、すでに、Bアプリケーションの起動が完了していれば、ステップS107に移り、Aアプリケーションを停止して(Aアプリケーションが起動中であっても)、処理を終える。
一方、ステップS100の判定の結果、Bアプリケーションの起動がまだ完了していなければ、ステップS101に移る。ステップS101では、起動してからの時間がT1に達したかどうかを調べる。この結果、T1にまだ達していなければステップS100に戻る。T1に達していれば、処理ステップS102に移る。
ステップS102では、Aアプリケーションのチェックポイント通過フラグがオンかどうかを調べる。この結果、チェックポイント通過フラグがオンであれば、ステップS106に移り、オフであればステップS103に移る。
ステップS103では、CPUパワーをAアプリケーションの起動に集中させるために、Bアプリケーションの起動を一時停止させる。次にステップS104に移り、Aアプリケーションの起動が完了した、もしくは完了通知を受けたかどうかを判定する。この判定の結果、Aアプリケーションの起動が完了していた、もしくは完了通知を受けた場合は、ステップS105に移る。一方、ステップS104の判定の結果、完了していない、もしくは完了通知を受けていない場合は、完了するまで、ステップS104を繰り返す。
ステップS105では、Aアプリケーションの起動が完了しているため、一時停止していたBアプリケーションの起動を再開させる。次に、ステップS106に移り、Bアプリケーションが起動を完了した、もしくは完了通知を受けたかどうかを判定する。この判定の結果、Bアプリケーションの起動が完了していた場合は、ステップS107に移る。一方、ステップS106の判定の結果、完了していない場合は、完了するまで、ステップS106を繰り返す。ステップS107では、Aアプリケーションを停止させることで、Bアプリケーションと入れ替える処理を行い、処理を終える。
Aアプリケーションにおけるチェックポイント通過に関する処理を図4のフローチャートを用いて説明する。
先ず、初期状態の設定ということで、ステップS200において、チェックポイント通過フラグをオフに設定する。次にステップS201に移り、チェックポイントに達したかどうかを判定する。この判定の結果、チェックポイントに達していれば次のステップS202に移り、達していなければ、ステップS201の処理を繰り返す。
ステップS202では、チェックポイントを通過したため、チェックポイント通過フラグをオンにする。次にステップS203に移り起動が完了したかどうかを判定する。この判定の結果、起動が完了していなければ、完了するまで、ステップS203を繰り返す。一方、ステップS203の判定の結果、起動が完了した場合はステップS204に移り、起動完了をシステムに通知して、処理を終える。
なお、チェックポイント通過フラグは、図1のRAM103または外部記憶装置104に格納される。図3のフローチャートのステップS102では、このチェックポイント通過フラグを読み出してオンかオフかを判定することで処理を行う。
(第2の実施形態)
本実施形態では、第1の実施形態と同様に、シンプル版アプリケーションをAアプリケーションとし、デラックス版アプリケーションをBアプリケーションとする。そして、システムの起動が行われ、デバイスの初期化などが行われた時点で、AアプリケーションとBアプリケーションが同時に起動されるとする。
ただし、Bアプリケーションの起動には、JAVA(登録商標)実行環境204の起動も含まれており、実際にはJAVA(登録商標)実行環境204が起動された後にBアプリケーションが起動される。また、機能構成は第1の実施形態と同様であるため、説明は省略する。
図5のように、システムが起動されると、システム初期化が行われ、システム初期化終了時点で、AアプリケーションとBアプリケーションを同時に起動する。
チェックポイント通過をチェックする時間をT1として、システムが起動していなければならない時間をT2とする。
Aアプリケーションは、T1よりも前にチェックポイントを通過する場合を考える。チェックポイントを通過した場合は、Aアプリケーションは通過済みフラグをメモリ内またはハードディスクなどに記録しておく(図4のステップS200およびステップS201でYesの場合のステップS202の処理)。
システムはT1に達した時点(図3のステップS100でNoの場合でステップS101でYesの場合)で、Aアプリケーションに対してチェックポイントを通過したかどうかを問い合わせる(図3のステップS102の処理)。
Aアプリケーションは、記録しておいた通過済みフラグの値(この例では、通過したという情報)をシステムに返す(図3のステップS102のYesの場合)。
T1以前にチェックポイントをAアプリケーションは通過しているため、Bアプリケーションを停止することなく、Aアプリケーションもそのまま起動を続ける。
続いてシステムは、Bアプリケーションの起動完了の通知を受けた場合(図3のステップS106のYesの場合)、Aアプリケーションを停止することでAアプリケーションとBのアプリケーションを入れ替える(図3のステップS107の処理)。このアプリケーションの入れ替え処理は、Aアプリケーションがユーザによって操作されている、もしくは、処理中の場合は、それらが終わるまで入れ替えを待つのがよい。
また、入れ替え時に状態を引き継ぐのが望ましい(例えばコピーアプリケーションならば、指定されたコピー部数の値を引き継ぐなど)。さらに、AアプリケーションとBアプリケーションの作り方として、入れ替えたときに大きく見た目が変わらないように(見た目のスムーズな入れ替えができるように)、なるべく見た目を同じにそろえるとよい。
例えば、シンプル版のAアプリケーションにおいては使用できない機能へのボタンをディスエイブル(使用不可)にしておく。そして、Bアプリケーションでは同じ位置のボタンがイネーブル(使用可能)になっていれば、入れ替わった時点で、あたかも同じアプリケーションのそのボタンだけがイネーブルに変化しただけのように見せるのが望ましい。なお、図11(a)はAアプリケーションの画面例で、「両面Copy」ボタンと「ソータ使用」ボタンが使用不可になっている。図11(b)はBアプリケーションの画面例で、「両面Copy」ボタンと「ソータ使用」ボタンが使用可能になっている。ユーザからは、図11(a)から図11(b)になるだけでアプリケーションが入れ替わったという印象があまりない。
次に、図6の場合を考えてみる。図6のように、システムが起動されると、システム初期化が行われ、システム初期化終了時点で、AアプリケーションとBアプリケーションを同時に起動する。しかし、ハードウェアの初期化やネットワークのサーバからの返答が遅かったなどの何らかの原因でシステムの初期化処理に時間がかかった場合を想定する。チェックポイント通過をチェックする時間をT1として、システムが起動していなければならない時間をT2とする。
Aアプリケーションは、T1よりも後にチェックポイントを通過する場合を考える。システムはT1に達した時点で(図3のステップS100でNoの場合でステップS101でYesの場合)、Aアプリケーションに対してチェックポイントを通過したかどうかを問い合わせる(図3のステップS102の処理)。
Aアプリケーションは、チェックポイントをまだ通過していなく、通過済みフラグの値には通過したという情報が記録されていないため、チェックポイントを未通過という情報をシステムに返す(図3のステップS102でNoの場合)。システムはこの時点でBアプリケーションを一時停止する(図3のステップS103の処理)。
これによりCPU負荷が下がりAアプリケーションにCPUパワーが注がれすばやく起動することができるようになる。システムはAアプリケーションの起動完了通知を受け取った時点で(図3のステップS104のYesの場合)、Bアプリケーションの起動を再開させる(図3のステップS105の処理)。
続いて、システムは、Bアプリケーションの起動完了の通知を受けた場合(図3のステップS106のYesの場合)、Aアプリケーションを停止することでAアプリケーションとBのアプリケーションを入れ替える(図3のステップS107の処理)。
次に、図7の場合を考えてみる。図7のように、システムが起動されると、システム初期化が行われ、システム初期化終了時点で、AアプリケーションとBアプリケーションを同時に起動する。チェックポイント通過をチェックする時間をT1として、システムが起動していなければならない時間をT2とする。Bアプリケーションの起動完了が、T1よりも前であった場合は、システムは、Aアプリケーションを停止させる(図3のステップS100でYesの場合で、ステップS107の処理)。
次に、図8の場合を考えてみる。図8のように、システムが起動されると、システム初期化が行われ、システム初期化終了時点で、AアプリケーションとBアプリケーションを同時に起動する。チェックポイント通過をチェックする時間をT1として、システムが起動していなければならない時間をT2とする。
Aアプリケーションは、T1よりも前にチェックポイントを通過する場合を考える。チェックポイントを通過した場合は、Aアプリケーションは通過済みフラグをメモリ内またはハードディスクなどに記録しておく(図4のステップS200およびステップS201でYesの場合のステップS202の処理)。
システムはT1に達した時点(図3のステップS100でNoの場合でステップS101でYesの場合)で、Aアプリケーションに対してチェックポイントを通過したかどうかを問い合わせる(図3のステップS102の処理)。
Aアプリケーションは、記録しておいた通過済みフラグの値(この例では、通過したという情報)をシステムに返す(図3のステップS102のYesの場合)。T1以前にチェックポイントをAアプリケーションは通過しているため、Bアプリケーションを停止することなく、Aアプリケーションもそのまま起動を続ける。
続いて、Bアプリケーションの起動がT2時間に達する前(図3のステップS106のYesの場合)であった場合、システムは、Aアプリケーションを停止する(図3のステップS107の処理)。
次に、図9の場合を考えてみる。図9のように、システムが起動されると、システム初期化が行われ、システム初期化終了時点で、AアプリケーションとBアプリケーションを同時に起動する。しかし、ハードウェアの初期化やネットワークのサーバからの返答が遅かったなどの何らかの原因でシステムの初期化処理に時間がかかった場合を想定する。
チェックポイント通過をチェックする時間をT1として、システムが起動していなければならない時間をT2とする。
Aアプリケーションは、T1よりも後にチェックポイントを通過する場合を考える。システムはT1に達した時点で(図3のステップS100でNoの場合でステップS101でYesの場合)、Aアプリケーションに対してチェックポイントを通過したかどうかを問い合わせる(図3のステップS102の処理)。
Aアプリケーションは、チェックポイントをまだ通過していなく、通過済みフラグの値には通過したという情報が記録されていないため、チェックポイントを未通過という情報をシステムに返す(図3のステップS102でNoの場合)。
システムはこの時点でBアプリケーションを一時停止する(図3のステップS103の処理)。これによりCPU負荷が下がりAアプリケーションにCPUパワーが注がれ、すばやく起動することができるようになる。
システムはAアプリケーションの起動完了通知を受け取った時点で(図3のステップS104のYesの場合)、Bアプリケーションの起動を再開させる(図3のステップS105の処理)。続いて、Bアプリケーションの起動完了通知を受けた場合(図3のステップS106のYesの場合)、システムは、Aアプリケーションを停止することでBアプリケーションと入れ替える(図3のステップS107の処理)。
図1のコンピュータ装置100、スキャナ111及びプリンタ109を合わせたシステムとしてMulti Function Printer(MFP)(デジタル複合機)113上のアプリケーションを考える。
MFP113上で動作するコピーのためのアプリケーションをC言語で書かれたものと、JAVA(登録商標)で書かれたものとで考えると、起動はC言語版(シンプル版)のコピーアプリケーションの方が速い。しかし、機能的に見ると、エラー表示などで、紙がジャム(紙詰まり)を起こした場合の処理はJAVA(登録商標)版(デラックス版)の方がイメージ(例えばイメージ例は図10)やアニメーションなどで表示され、豊富である。シンプル版でもエラーメッセージは出るだろうが、例えば単なる文字で、「紙が詰まりました」と出るだけであり、どこで詰まっているかがわかりにくい。
また、シンプル版コピーアプリケーションの画面を図11(a)とすると、シンプル版コピーアプリケーションはコピー部数の指定ができコピーのスタートとストップができるのみである。「両面Copy」ボタンと、「ソータ使用」ボタンは用意されているが、グレイアウトされており使用不可状態を示している。ところが、図11(b)に示すデラックス版コピーアプリケーションの画面をでは、「両面Copy」ボタンと、「ソータ使用」ボタンが使用できるようになっている。それぞれのボタンを押すと、もうすこし詳細な設定画面が出て豊富な機能を使用できるようになっている。
ここで、システムが利用できるまでの起動時間をなるべくはやめたい要求のために、シンプル版のコピーアプリケーションを起動しておく。そして、後で、デラックス版コピーアプリケーションが起動された場合に、コピーアプリケーションをデラックス版に置き換えることを考える。
ここで、順番にシンプル版アプリケーションが起動した後に、デラックス版を起動すると、デラックス版の起動がとても後になってしまい、ユーザとしてはできればデラックス版を早いうちに利用できたほうがよいため、並列に起動するのがよいと思われる。
しかし、このときに、システムの性能や、動作環境(例えばネットワークの負荷などの外因によっていつもと同様には起動できないなど)によっては、起動時に、シンプル版とデラックス版のコピーアプリケーションを同時に起動するとCPU101の負荷がかかり、シンプル版ですら起動が遅くなってしまう場合がある。
そこで、シンプル版アプリケーションの起動シーケンス中にチェックポイントを設けておき、起動時からチェックポイントまでの時間が、ある定められた時間を越えた場合は、デラックス版のアプリケーションの起動を一時停止して、CPU101の負荷をさげる。そして、シンプル版のアプリケーションが起動したという通知を受けた後に、豊富な機能を持ったデラックス版のアプリケーションの起動を再開する。
また、システムの性能や、動作環境によっては、デラックス版アプリケーションが決められた起動時間内に起動することもあるため、その場合は、シンプル版の起動は停止させ、はじめからデラックス版が使用できるようにする。
ここで、Aアプリケーション内に設定するチェックポイントの設定方法の一例を示す。まず、Aアプリケーション内の起動シーケンス内のいくつかの場所に起動からの時間を表示するプログラムを挿入する。そして、Aアプリケーションのみでシステムを起動する。起動完了までの時間を計測する(ET1とする)。そして、前記時間表示プログラムの挿入により、いくつかの時間を表示している部分の中から、起動完了までの時間のおよそ半分の地点の時間を表示している部分を仮にチェックポイントとして設定する(この時の仮チェックポイントの時間をCPT1とする)。そして、仮チェックポイントの部分のみ時間を表示するように他の時間表示プログラムの挿入した部分をはずす。
次に、AアプリケーションとBアプリケーションをシステム起動と同時に起動する。Aアプリケーションの起動完了時間を計測し(ET2とする)、仮チェックポイントの起動からの時間も計測する(CPT2とする)。システムが起動しなければならない時間をT2とすると、チェックポイント通過をシステムがチェックする時間T1は、以下の式で求められる。αは安全を見た数秒のマージンの時間である。
T1=T2−(ET1+α)
もしこのT1が0以下になってしまう場合は、そもそもAアプリケーション単独でも起動時間T2を守れないということなので、ET1がT2−α以下になるようにアプリケーションの高速化を行う必要がある。
ここで、AアプリケーションとBアプリケーションを同時に起動した場合のAアプリケーションの仮チェックポイント通過時間CPT2がT1以上の値となっている(T1≦CPT2)場合は、Aアプリケーションの仮チェックポイントの位置を前の方(処理の最初の方で、CPT1が短くなる場所)に持っていく。そして、CPT2<T1となるまで調整を行う。
このCPT2<T1となった地点を仮ではなく正式なチェックポイントとして設定する。このチェックポイントの場所であれば、システムが正常に起動した場合、必ず図5か図8の状態となり、システムの初期化などに時間がかかった場合は図6か図9となるほどよいチェックポイントが設定されたことになる。なお、本実施形態は一例を示したもので、本発明では、このチェックポイント設定方式に限定されるものではない。
(第3の実施形態)
第1の実施形態において、もし、Bアプリケーションの他にも、Aアプリケーションに関連しないアプリケーションが起動されていた場合は、図3のステップS103において、Bアプリケーションとともにそれらのアプリケーションの一時停止を行う。そして、同様に、図3のステップS105において、BアプリケーションとともにAアプリケーションに関連しないアプリケーションの起動も再開する。
(第4の実施形態)
第1〜第3の実施形態では、アプリケーション間で起動調整を行っていたが、本実施形態ではアプリケーション内での処理の起動方法について説明する。以下、JAVA(登録商標)の記述方法に従ってプログラム例を示す。メソッドという言葉は、C言語などにおける関数のようなものである。//はコメント行を表す。なお、2段階起動を行うことができるように、start1、start2という2つのメソッドに分ける。
public void start1(){
// 起動時間優先の処理を記述
}
public void start2(){
// 機能を豊富にする処理を記述
}
上記のように、start1には、起動時間優先の機能処理群を記述しておき、start2には、機能を豊富にするような機能処理群を記述しておく。そして、機動時間優先の機能処理群を記述するstart1の方には、機能処理群の間にチェックポイントを設定しておく。チェックポイントFlgをブーリアンのtrueかfalseを持つ変数とし、setチェックポイントは与えられた引数のブーリアンをチェックポイントFlgに設定するメソッドとしgetチェックポイントはチェックポイントFlgの値を返すメソッドとする。
boolean チェックポイントFlg = false;
public void setチェックポイント(boolean B){
チェックポイントFlg = B;
}
public boolean getチェックポイント(){
return チェックポイントFlg;
}
すると、start1は以下のようにsetチェックポイント(true)によってチェックポイントが設定される。
public void start1(){
//……… 前半処理記述 ………
setチェックポイント(true);
//……… 後半処理記述 ………
}
本実施形態をフローチャート図12を用いて説明する。シンプルな機能を実現する機能処理群をstart1に記述して、豊富な機能を実現する機能処理群をstart2として、アプリケーションの起動とともに、start1とstart2が同時に呼ばれるとする。
先ず、ステップS300でstart2の処理が完了したかどうかを判定する。この判定の結果、すでに、start2の処理が完了していれば、処理を終える。一方、ステップS300の判定の結果、start2の起動がまだ完了していなければ、ステップS301に移る。ステップS301では、起動してからの時間がT1に達したかどうかを調べ、T1にまだ達していなければステップS300に戻る。T1に達していれば、ステップS302に移る。
ステップS302では、start1のチェックポイント通過フラグがオンかどうかを調べ(getチェックポイント()の返り値がtrueかどうか)、チェックポイント通過フラグがオンであれば、処理を終える。オフであればステップS303に移る。ステップS303では、CPUパワーをstart1の処理に集中させるために、start2の処理を一時停止させる。
次にステップS304に移り、start1処理が完了した、もしくは完了通知を受けたかどうかを判定する。この判定の結果、start1処理が完了していた、もしくは完了通知を受けた場合は、ステップS305に移る。一方、ステップS304の判定の結果、完了していない、もしくは完了通知を受けていない場合は、完了するまで、ステップS304を繰り返す。ステップS305では、start2の処理が完了しているため、一時停止していたstart2の処理を再開させ、処理を終える。
例えば、図11(a)に示すようなコピーアプリケーションを考える。start1の処理群には、コピー部数をテンキーボタンにより設定でき、Copyスタートボタンでコピーを開始し、Copyストップボタンでコピーを途中でキャンセルすることができるコピーするための最低限の処理が入る。なお、「両面Copy」や「ソータ使用」ボタンはグレイアウトしてあり、使用できない状態を表している。
図11(b)の黒く使用できる状態のボタンに示すように、両面Copyやソータ使用時のソータの設定などのデバイスが持つ機能をフルに使えるような機能はstart2の処理群に入っているとする。なお、このボタンが黒く使用できる状態になるのは、start2の処理の起動が完了した時点である。
システムの機種によっては両面Copyができなかったり、ソータがついていなかったりするため、デバイスにその機能があるかを問い合わせる処理が必要になる。その問い合わせに時間がかかる場合にはstart2の起動を待っていると、システムが起動しなければならない時間を守れない場合がある。このため、本実施形態のチェックポイントを利用した方式をとると、システムの起動時間は守られ、なおかつなるべく短い時間でしばらくするとデバイスに適合した機能が使用できるようなアプリケーションを起動することができるシステムが構築できる。
本実施形態では、start1に起動時間優先の必要最低限の機能を提供する処理を記述しておき、start2では、機能を豊富にするような処理を記述するという使い方をする。これにより、システムの起動時間は守られ、なおかつなるべく短い時間でしばらくするとフル機能が使用できるようなアプリケーションを起動することができるシステムが構築できる。
(本発明に係る他の実施形態)
第1〜第3の実施形態では、機能が豊富なデラックス版アプリケーションを、また、第4の実施形態のアプリケーションを、JAVA(登録商標)アプリケーション206としていたが、特にJAVA(登録商標)アプリケーション206でなくてもよい。シンプル版ネイティブアプリケーションを高速起動優先で機能を絞って、デラックス版アプリケーションは機能優先で例えばデバイスの能力を問い合わせて最適な機能を提供するために、起動が遅くなってしまうといったネイティブアプリケーション205でもよい。このため、JAVA(登録商標)アプリケーション206に限定されるものではない。
前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、本発明の目的は達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
図1のコンピュータ装置100が読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、それだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明の第1の実施形態におけるシステムの構成を示すブロック図である。 本発明の第1の実施形態におけるソフトウェア階層を示す図である。 本発明の第1の実施形態におけるアプリケーション処理の一例を示すフローチャートである。 本発明の第1の実施形態におけるチェックポイント設定手順の一例を示すフローチャートである。 本発明の第2の実施形態において、システム起動からアプリケーション起動完了までの処理の概要の一例を示す図である。 本発明の第2の実施形態において、システム起動からアプリケーション起動完了までの処理の概要の他の一例を示す図である。 本発明の第2の実施形態において、システム起動からアプリケーション起動完了までの処理の概要のその他の一例を示す図である。 本発明の第2の実施形態において、システム起動からアプリケーション起動完了までの処理の概要のその他の一例を示す図である。 本発明の第2の実施形態において、システム起動からアプリケーション起動完了までの処理の概要のその他の一例を示す図である。 本発明の第2の実施形態において、ジャム(紙詰まり)のダイアログの一例を示す図である。 本発明の第2の実施形態におけるアプリケーション及び機能群の起動画面の一例を示す図である。 本発明の第4の実施形態におけるstart処理の一例を示すフローチャートである。
符号の説明
100 コンピュータ装置
101 CPU
102 ROM
103 RAM
104 外部記憶装置
105 入力インターフェイス
106 出力インターフェイス
107 ネットワークインターフェイス
108 外部入出力インターフェイス
109 プリンタ
110 FAX
111 スキャナ
112 システムバス
113 MFP

Claims (7)

  1. 起動時間が定められていて、高速に起動するが機能が限られるAアプリケーションと、機能が豊富であるが起動に時間がかかるBアプリケーションとを同時に起動する起動方法であって、
    前記Aアプリケーション内にチェックポイントが設定されている場合に起動からの時間を計測する時間計測工程と、
    前記Bアプリケーションの起動が完了したことを検知するBアプリケーション起動完了検知工程と、
    前記Bアプリケーション起動完了検知工程により前記Bアプリケーションの起動が完了したことを検知した場合は処理を終え、前記Bアプリケーションの起動の完了を検知してない場合は前記時間計測工程によりある時間に達したかどうかを判定する時間判定工程と、
    前記時間判定工程で前記ある時間に達していない場合は前記ある時間に達するまで前記Bアプリケーション起動完了検知工程による処理を繰り返し、前記ある時間に達していた場合は前記Aアプリケーションのチェックポイントを通過したかどうかを判定するチェックポイント判定工程と、
    前記チェックポイント判定工程により、前記チェックポイントを通過済みと判定された場合は、Bアプリケーション起動完了検知工程からの処理を続け、前記チェックポイント判定工程により、前記チェックポイントを通過していないと判定された場合は前記Bアプリケーションを一時停止させる起動一時停止工程と、
    前記Aアプリケーションの起動が完了したことを検知するAアプリケーション起動完了検知工程と、
    前記Aアプリケーション起動完了検知工程により、前記Aアプリケーションの起動が完了したことを検知した場合は、一時停止していたBアプリケーションの起動を再開させる起動再開工程とを有し、
    前記Bアプリケーション起動完了検知工程により、前記Bアプリケーションの起動が完了したことを検知しない場合は検知するまで処理を繰り返し、前記Bアプリケーションの起動の完了を検知した場合は、前記Aアプリケーションの起動を停止させ、前記AアプリケーションとBアプリケーションの入れ替え処理を行うことを特徴とする起動方法。
  2. システムに複数のアプリケーションが起動される場合は、一時停止するアプリケーション及び再開されるアプリケーションは前記Bアプリケーションだけでなく、前記Aアプリケーションに関連しないアプリケーション全てが対象となることを特徴とする請求項1に記載の起動方法。
  3. 起動時間が定められていて、アプリケーション内で機能が分割されていて、最初に起動するが機能が限られる機能群Aと、機能が豊富であるが時間がかかる機能群Bとが係わる起動方法であって、
    前記機能群Aの中にチェックポイントが設定されており、前記アプリケーションの起動と同時に、前記機能群A及び機能群Bともに別スレッドとして起動される場合に起動からの時間を計測する時間計測工程と、
    前記機能群Bの処理が完了したことを検知する機能群B処理完了検知工程と、
    前記機能群B処理完了検知工程により、前記機能群Bの処理が完了したことを検知した場合は、処理を終え、前記機能群Bの処理の完了を検知してない場合は、前記時間計測工程により前記ある時間に達したかどうかを判定する時間判定工程と、
    前記時間判定工程において前記ある時間に達していない場合は、前記ある時間に達するまで前記機能群B処理完了検知工程による処理を繰り返し、前記ある時間に達していた場合は、前記機能群Aのチェックポイントを通過したかどうかを判定するチェックポイント判定工程と、
    前記チェックポイント判定工程により、前記チェックポイントを通過済みと判定された場合は処理を終え、前記チェックポイント判定工程により、チェックポイントを通過していないと判定された場合は、前記機能群Bの処理を一時停止させる処理一時停止工程と、
    前記機能群Aの処理が完了したことを検知する機能群A処理完了検知工程と、
    前記機能群A処理完了検知工程により、前記機能群Aの処理が完了したことを検知しない場合は検知するまで処理を繰り返し、前記機能群Aの処理の完了を検知した場合は一時停止していた機能群Bの処理を再開させる処理再開工程とを有することを特徴とする起動方法。
  4. 起動時間が定められていて、高速に起動するが機能が限られるAアプリケーションと、機能が豊富であるが起動に時間がかかるBアプリケーションとを同時に起動する起動装置であって、
    前記Aアプリケーション内にチェックポイントが設定されている場合に起動からの時間を計測する時間計測手段と、
    前記Bアプリケーションの起動が完了したことを検知するBアプリケーション起動完了検知手段と、
    前記Bアプリケーション起動完了検知手段により、前記Bアプリケーションの起動が完了したことを検知した場合は、処理を終え、前記Bアプリケーションの起動の完了を検知してない場合は、前記時間計測手段によりある時間に達したかどうかを判定する時間判定手段と、
    前記時間判定手段で前記ある時間に達していない場合は、前記ある時間に達するまでBアプリケーション起動完了検知手段による処理を繰り返し前記ある時間に達していた場合は、前記Aアプリケーションのチェックポイントを通過したかどうかを判定するチェックポイント判定手段と、
    前記チェックポイント判定手段により、前記チェックポイントを通過済みと判定された場合は、Bアプリケーション起動完了検知手段からの処理を続け、前記チェックポイント判定手段により、前記チェックポイントを通過していないと判定された場合は前記Bアプリケーションを一時停止させる起動一時停止手段と、
    前記Aアプリケーションの起動が完了したことを検知するAアプリケーション起動完了検知手段と、
    前記Aアプリケーション起動完了検知手段により、前記Aアプリケーションの起動が完了したことを検知した場合は、一時停止していたBアプリケーションの起動を再開させる起動再開手段とを有し、
    前記Bアプリケーション起動完了検知手段により、前記Bアプリケーションの起動が完了したことを検知しない場合は検知するまで処理を繰り返し、前記Bアプリケーションの起動の完了を検知した場合は、前記Aアプリケーションの起動を停止させ、前記Aアプリケーション及びBアプリケーションの入れ替え処理を行うことを特徴とする起動装置。
  5. システムに複数のアプリケーションが起動される場合は、一時停止するアプリケーション及び再開されるアプリケーションは前記Bアプリケーションだけでなく、前記Aアプリケーションに関連しないアプリケーション全てが対象となることを特徴とする請求項4に記載の起動装置。
  6. 起動時間が定められていて、アプリケーション内で機能が分割されていて、最初に起動するが機能が限られる機能群Aと、機能が豊富であるが時間がかかる機能群Bがある起動装置であって、
    前記機能群Aの中にチェックポイントが設定されており、前記アプリケーションの起動と同時に、前記機能群A及び機能群Bともに別スレッドとして起動される場合に起動からの時間を計測する時間計測手段と、
    前記機能群Bの処理が完了したことを検知する機能群B処理完了検知手段と、
    前記機能群B処理完了検知手段により、前記機能群Bの処理が完了したことを検知した場合は処理を終え、前記機能群Bの処理の完了を検知してない場合は、前記時間計測手段によりある時間に達したかどうかを判定する時間判定手段と、
    前記時間判定手段で前記ある時間に達していない場合は、前記ある時間に達するまで機能群B処理完了検知手段を繰り返し、前記ある時間に達していた場合は、前記機能群Aのチェックポイントを通過したかどうかを判定するチェックポイント判定手段と、
    前記チェックポイント判定手段により、前記チェックポイントを通過済みと判定された場合は処理を終え、前記チェックポイント判定手段により、前記チェックポイントを通過していないと判定された場合は、前記機能群Bの処理を一時停止させる処理一時停止手段と、
    前記機能群Aの処理が完了したことを検知する機能群A処理完了検知手段と、
    前記処理完了検知手段により、前記機能群Aの処理が完了したことを検知しない場合は検知するまで処理を繰り返し、前記機能群Aの処理の完了を検知した場合は一時停止していた機能群Bの処理を再開させる処理再開手段とを有することを特徴とする起動装置。
  7. 請求項1または2に記載の方法の各工程をコンピュータにて実施させることを特徴とするコンピュータプログラム。
JP2006150335A 2006-05-30 2006-05-30 起動方法及び起動装置 Pending JP2007323181A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006150335A JP2007323181A (ja) 2006-05-30 2006-05-30 起動方法及び起動装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006150335A JP2007323181A (ja) 2006-05-30 2006-05-30 起動方法及び起動装置

Publications (1)

Publication Number Publication Date
JP2007323181A true JP2007323181A (ja) 2007-12-13

Family

ID=38855960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006150335A Pending JP2007323181A (ja) 2006-05-30 2006-05-30 起動方法及び起動装置

Country Status (1)

Country Link
JP (1) JP2007323181A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015830A (ja) * 2007-06-07 2009-01-22 Canon Inc プログラム起動装置及びプログラム起動方法
JP2009294716A (ja) * 2008-06-02 2009-12-17 Ricoh Co Ltd 画像形成装置、拡張機能組合作成方法、プログラム、及び記録媒体
JP2012234265A (ja) * 2011-04-28 2012-11-29 Kyocera Document Solutions Inc 画像形成装置
JP2014199682A (ja) * 2014-07-31 2014-10-23 富士通株式会社 マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2015046182A (ja) * 2014-10-24 2015-03-12 株式会社リコー 画像形成装置、画像形成システム、画面制御方法及びプログラム
WO2016009593A1 (ja) * 2014-07-14 2016-01-21 株式会社デンソー 表示制御装置及び表示制御プログラム製品
WO2017037819A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037817A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037818A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015830A (ja) * 2007-06-07 2009-01-22 Canon Inc プログラム起動装置及びプログラム起動方法
JP2009294716A (ja) * 2008-06-02 2009-12-17 Ricoh Co Ltd 画像形成装置、拡張機能組合作成方法、プログラム、及び記録媒体
JP2012234265A (ja) * 2011-04-28 2012-11-29 Kyocera Document Solutions Inc 画像形成装置
WO2016009593A1 (ja) * 2014-07-14 2016-01-21 株式会社デンソー 表示制御装置及び表示制御プログラム製品
JP2016021124A (ja) * 2014-07-14 2016-02-04 株式会社デンソー 表示制御装置及び表示制御プログラム
JP2014199682A (ja) * 2014-07-31 2014-10-23 富士通株式会社 マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2015046182A (ja) * 2014-10-24 2015-03-12 株式会社リコー 画像形成装置、画像形成システム、画面制御方法及びプログラム
WO2017037817A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037819A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
WO2017037818A1 (ja) * 2015-08-31 2017-03-09 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
JPWO2017037819A1 (ja) * 2015-08-31 2017-10-26 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
JPWO2017037817A1 (ja) * 2015-08-31 2017-10-26 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
JPWO2017037818A1 (ja) * 2015-08-31 2017-10-26 三菱電機株式会社 アプリケーション実行装置およびアプリケーション実行方法
CN107924316A (zh) * 2015-08-31 2018-04-17 三菱电机株式会社 应用程序执行装置以及应用程序执行方法
CN107924317A (zh) * 2015-08-31 2018-04-17 三菱电机株式会社 应用程序执行装置以及应用程序执行方法
CN107924317B (zh) * 2015-08-31 2020-12-22 三菱电机株式会社 应用程序执行装置以及应用程序执行方法

Similar Documents

Publication Publication Date Title
JP2007323181A (ja) 起動方法及び起動装置
EP2528314B1 (en) Information processing apparatus and method of controlling launch thereof
WO2010001555A1 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
JP2004171516A (ja) 情報処理装置および印刷制御方法および印刷制御プログラム
CN101526901B (zh) 一种电脑中查看文件的方法及装置
JP2006067328A (ja) 画像処理装置、並びにその制御方法、プログラム、及び記憶媒体
JP2007035010A (ja) 高速データアクセスメモリよりオペレーションシステムコアプログラムをロードしてコンピュータプログラムをインスタント起動実行する方法
JP5300346B2 (ja) 画像形成装置及び画像形成方法
JP3715772B2 (ja) ホストコンピュータおよびデータ処理方法およびコンピュータが読み取り可能な記憶媒体
US20030093659A1 (en) Method and system for directly starting a PDA operating system on a portable PC using hardware devices
JPH08147118A (ja) 情報処理装置および情報処理装置のプリント制御方法
JP5247317B2 (ja) 装置、方法、プログラム、及び記憶媒体
JPH08234872A (ja) 情報処理装置
CN110418025A (zh) 图像形成装置
JP4870098B2 (ja) 電子装置及び該電子装置の制御方法
JP2002019236A (ja) 画像処理装置および画像処理装置の制御方法および記憶媒体
US7171569B2 (en) Apparatus, method and program product for preventing system mode change by mistaken instruction
JP3376256B2 (ja) 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2013146934A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2007001041A (ja) 印刷装置およびその割込制御方法
JP2020088490A (ja) ソフトウェアの改ざんを検知することが可能な情報処理装置
JP2015148978A (ja) 情報処理装置、情報処理装置の制御方法
JP2008149489A (ja) 画像形成装置、印刷システム及び出力制御プログラム
JP2007068015A (ja) 画像形成システム、画像形成装置、画像読取装置、画像形成装置の制御方法
JP6524890B2 (ja) 画像形成装置および制御プログラム