(57)【要約】【課題】  受け付けたジョブの処理と所定の処理との競合動作を避けつつ、その所定の処理の完了が遅れてしまうことを抑制することを目的とする。【解決手段】  所定の処理で用いられるデータの読み出しを実行し、その読み出し完了前に受け付けられたジョブの処理を、その読み出しを止めて実行する。【選択図】  図４
2018099855.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理で用いられるデータを記憶している第１の記憶部から、前記データを第２の記憶部に読み出し、前記第２の記憶部に読み出された前記データを用いて前記所定の処理を実行可能な実行手段と、
ジョブを受け付ける受付手段と、
を有し、
前記実行手段は、
前記読み出し完了前に受け付けられた前記ジョブの処理を、前記読み出しを止めて実行可能であることを特徴とする画像形成装置。
【請求項２】
前記実行手段は、前記受け付けられたジョブの処理後に、前記第２の記憶部に既に読み出されている前記データの一部、および、前記第２の記憶部に読み出されていない前記第１の記憶部に記憶されている前記データの一部を用いて、前記所定の処理を実行可能であることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
画像形成装置の電源がオンされたことにしたがって第１の初期化処理を実行する前記画像形成装置であって、
前記第１の初期化処理の完了後、第２の初期化処理で用いられるデータを第１の記憶部から第２の記憶部に読み出し、当該第２の記憶部に読み出されたデータを用いて前記第２の初期化処理を実行可能な実行手段と、
ジョブを受け付ける受付手段と、
を有し、
前記実行手段は、
前記受付手段が前記第１の初期化処理の完了後に受け付けるジョブの処理を実行可能であり、
前記受付手段が前記第１の初期化処理の完了によって処理可能となる種類のジョブを受け付けたことに基づいて、前記読み出しを止めて当該ジョブの処理を実行することを特徴とする画像形成装置。
【請求項４】
前記実行手段は、前記第１の初期化処理の完了によって処理可能となる種類の前記ジョブの処理の完了後、当該ジョブが受け付けられる前に読みだされたデータを少なくとも用いて前記第２の初期化処理を実行可能なことを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記実行手段は、前記第１の初期化処理の完了によって処理可能となる種類の前記ジョブの処理の完了後、前記読み出しによって読みだされていない、前記第２の初期化処理で用いられるデータを用いて前記第２の初期化処理を実行可能なことを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記第１の記憶部および前記第２の記憶部を有し、
前記実行手段は、
前記第１の初期化処理の完了によって処理可能となる種類の前記ジョブの処理の完了後、前記第２の記憶部に読み出されたデータと、前記読み出しによって読みだされていない、前記第１の記憶部に記憶されているデータと、を用いて前記第２の初期化処理を実行可能なことを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記実行手段は、前記受付手段によって受け付けられたジョブを、前記第２の記憶部を利用して処理することを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記実行手段は、前記第１の初期化処理後の所定期間において、前記読み出しを実行するが、前記第２の初期化処理を実行しないことを特徴とする請求項３乃至７の何れか１項に記載の画像形成装置。
【請求項９】
前記所定期間とは、前記第１の初期化処理後から所定時間が経過するまでの期間であって、かつ、前記第１の初期化処理後から前記受付手段がジョブを受け付けるまでの期間であることを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記実行手段は、前記所定時間が経過する前に前記読み出しが完了した場合に、前記所定時間が経過する前に、前記第２の初期化処理を実行することを特徴とする請求項９に記載の画像形成装置。
【請求項１１】
前記実行手段は、前記所定時間が経過する前に前記読み出しが完了した場合に、前記所定時間が経過してから、前記第２の初期化処理を実行することを特徴とする請求項９に記載の画像形成装置。
【請求項１２】
前記実行手段は、第１のデータに対する前記読み出しを行った際にかかった時間に基づいて制限時間を設定し、前記設定された制限時間に基づいて第２のデータに対する前記読み出しを行うことを特徴とする請求項３乃至１１の何れか１項に記載の画像形成装置。
【請求項１３】
前記第１の初期化処理および前記第２の初期化処理は、前記実行手段の初期化処理であることを特徴とする請求項３乃至１２の何れか１項に記載の画像形成装置。
【請求項１４】
画像形成装置の電源がオンされたことにしたがって第１の初期化処理を実行する前記画像形成装置の制御方法であって、
実行手段が、前記第１の初期化処理の完了後、第２の初期化処理で用いられるデータを第１の記憶部から第２の記憶部に読み出し、当該第２の記憶部に読み出されたデータを用いて前記第２の初期化処理を実行する実行工程と、
受付手段が、ジョブを受け付ける受付工程と、
を有し、
前記実行工程は、
前記受付工程で前記第１の初期化処理の完了後に前記第１の初期化処理の完了によって処理可能となる種類のジョブを受け付けたことに基づいて、前記読み出しを止めて当該ジョブの処理を実行することを特徴とする画像形成装置の制御方法。
【請求項１５】
請求項１乃至１３の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の処理で用いられるデータの読み出しを止めて、受け付けたジョブの処理を実行可能な画像形成装置、画像形成装置の制御方法、プログラムに関する。
【背景技術】
【０００２】
画像形成装置は電源投入後、初期化処理で用いられるデータを読み出し、そのデータを用いて初期化処理を行う。この初期化処理を段階的に行う画像形成装置が知られている。この画像形成装置は、電源投入後、第１の種類のＰＤＬデータの印刷機能を含む機能を実行可能にするための初期化処理を行う。これを第１タスクの起動とも呼ぶ。第１タスクの起動によって第１の種類のＰＤＬデータを解釈するためのＰＤＬインタプリタ等が起動されて、第１の種類のＰＤＬデータ印刷ジョブが処理可能になる。そして画像形成装置は、この第１タスクの起動が完了した後に、第１の種類のＰＤＬデータの印刷機能に比べて使用頻度が比較的低い第２の種類のＰＤＬデータの印刷機能や、その他の機能を実行可能にするための初期化処理を行う。この初期化処理には例えば、第２の種類のＰＤＬデータを解釈するためのＰＤＬインタプリタの起動などが含まれる。これを第２タスクの起動とも呼ぶ。このような段階的な初期化処理において、第１タスクの起動完了によって処理可能となった印刷ジョブを第２タスクの起動中に受け付けたとき、印刷ジョブの処理と第２タスクの起動とによって競合が生じることがある。
【０００３】
そこで特許文献１に開示される画像形成装置は、第１タスクの起動後の所定の期間において、第１の種類のＰＤＬデータの印刷ジョブを受け付け可能にするとともに第２タスクの起動を行わないようにする。これにより、第１タスクの起動後の所定期間において、第１タスクの起動によって処理可能となったＰＤＬデータ印刷ジョブを、第２タスクの起動と競合させずに処理することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−４０８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、印刷ジョブの処理が優先される上記所定期間において第２タスクの起動もその準備も始まらないので、第２タスクの起動の完了が遅れてしまう。
【０００６】
本発明は、受け付けたジョブの処理と第２タスクの起動のような所定の処理との競合動作を避けつつ、その所定の処理の完了を従来よりも早めることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像形成装置は、所定の処理で用いられるデータを記憶している第１の記憶部から、前記データを第２の記憶部に読み出し、前記第２の記憶部に読み出された前記データを用いて前記所定の処理を実行可能な実行手段と、ジョブを受け付ける受付手段と、を有し、前記実行手段は、前記読み出し完了前に受け付けられた前記ジョブの処理を、前記読み出しを止めて実行可能であることを特徴とする。
【発明の効果】
【０００８】
本発明は、受け付けたジョブの処理と所定の処理との競合動作を避けつつ、その所定の処理の完了を従来よりも早めることを抑制できる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置の構成を示すブロック図である。
【図２】コントローラーファームの構成を示すブロック図である。
【図３】第１タスクと第２タスクの初期化処理内容を示す構成図である。
【図４】実施例１におけるタスク起動制御の手順を示すフローチャートである。
【図５】実施例１における先読みファイルリストの例である。
【図６】実施例１における画面例である。
【図７】実施例１におけるジョブ受付／データ先読み並列処理の手順を示すフローチャートである。
【図８】実施例２におけるタスク起動制御の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１１】
（実施例１）
本実施例における画像形成装置は、図３に示される第１タスク初期化処理と第２タスク初期化処理を行う。そして、これら２種類に分類されるタスクの初期化処理を次のようにして行う。まず画像形成装置は、第１タスク初期化処理を実行し、その処理を完了させる。次に画像形成装置は、第２タスク初期化処理（所定の処理）を実行するために必要なデータファイル（図５参照）の第１の記憶部（例えばＲＯＭ）から第２の記憶部（例えばＲＡＭ）への読み出しを開始する。つまり画像形成装置は、第１の記憶部から読み出したデータを後の第２タスク初期化処理で用いるために第２の記憶部にキャッシュする。画像形成装置は、この読み出し（先読み動作）を所定時間だけ実行しようとし、少なくとも先読み動作を行っている間、画像形成装置は、第２タスク初期化処理を実行しない。つまりデータの先読みは行われるがそのデータを用いた初期化処理は行われない。ここで、この所定時間の間に画像形成装置が第１タスクに関するジョブ（あるいはそのジョブの実行指示）を受け付けた場合には、画像形成装置は、先読み動作を止めて、そのジョブの実行を開始する。
【００１２】
このように本実施例における画像形成装置は、第１タスクの初期化処理を第２タスクの初期化処理を実行する前に完了することで、第１タスクに関するジョブの実行の開始を早めることができる。そして、第１タスク初期化処理の完了後、第２タスクの初期化処理に必要なデータファイルの先読み動作中に第１タスクに関するジョブを受け付けられると、先読み動作を止めるので、先読み動作とジョブの実行との競合が防ぐことができる。なお、ジョブが受け付けられた場合でも先読みされてキャッシュされているデータファイルを用いて第２タスク初期化処理ができるので第２タスク初期化処理の完了を従来よりも早めることができる。また、ジョブが受け付けられなかった場合、キャッシュされているデータファイルを用いて第２タスク初期化処理が実行される。これにより、前述の所定時間が経過後にデータファイルが第１記憶部から読み出され始めて第２タスク初期化処理が実行される場合よりも、第２タスク初期化処理の完了を早めることができる。
【００１３】
図１は、画像形成装置の構成を示すブロック図である。
【００１４】
データ処理装置１０１（例えばＰＣ）は、ＰＤＬデータを生成し、当該ＰＤＬデータを、ＬＡＮを介して画像形成装置１０２に送信する。
【００１５】
画像形成装置１０２（例えばレーザープリンタ）は、データ処理装置１０１からＰＤＬデータを受信し、当該ＰＤＬデータに基づいてシートに画像形成を行う。なお、画像形成装置１０２は、スキャナ機能やＦＡＸ機能等を有する複合機であってもよい。
【００１６】
カードリーダー装置１０３は、画像形成装置１０２にＵＳＢ等のケーブルを介して接続され、画像形成装置１０２を操作しようとするユーザの認証情報をＩＣカードから読み込む装置である。ＩＣカードには、認証情報として個人を特定するためのユニークなＩＤが含まれる。カードリーダー装置１０３はＩＣカードから認証情報を無線によって読み取る。
【００１７】
画像形成装置１０２は、大きく分けると、コントローラ１１０、ＵＩパネル１１１、プリントエンジン１１２に分けられる。
【００１８】
ＵＩパネル１１１は、ユーザインターフェースであり、ユーザに様々な情報を伝える表示部や、ユーザから様々な操作を受け付ける操作部を有する。例えば、物理的なボタンの他にタッチパネル等を備えてもいてもよい。また、ＬＥＤによって、画像形成装置１０２内で発生したエラーや警告を、光の点灯・点滅によって報知する機能を備えていてもよい。あるいは、ブザー等によって、画像形成装置１０２内で発生したエラーや警告を、音によって報知する機能を備えていても良い。
【００１９】
コントローラ１１０は、データ処理装置１０１から送信されたＰＤＬデータに基づき、印刷用のビットマップデータを生成し、当該ビットマップデータをプリントエンジン１１２に送信する。なお、画像形成装置１０１に関する設定や状態をレポートとして印字するために、コントローラ１１０自身がＰＤＬデータを生成し、印刷指示することもできる。
【００２０】
プリントエンジン１１２は、コントローラ１１０から受信したビットマップデータに基づいて、電子写真方式の画像形成を行う。なお、画像形成の方式は、電子写真方式以外に、例えばインクジェット方式や感熱方式でもよい。また、プリントエンジン１１２は複数色の記録材を備え、ＰＤＬデータをカラー印刷ができても良い。あるいは、プリントエンジン１１２は複数の給紙段を備えて、ＰＤＬデータで指定された給紙段からシートを給紙できてもよい。
【００２１】
コントローラ１１０は、ＣＰＵ１２１（実行手段に相当する）、ＲＯＭ１２２（第１の記憶部に相当する）、ＲＡＭ１２３（第２の記憶部に相当する）、ＮＩＣ（ネットワークインタフェースコントローラ）１２４、パネルＩ／Ｆ１２５を含む。コントローラ１１０は、更に、エンジンＩ／Ｆ１２６、ＲＩＰ部１２８、内蔵ストレージ部１３０、拡張Ｉ／Ｆ部１３２も備える。コントローラ１１０は更に、これらの各要素を接続する、バス１３１を含む。
【００２２】
ＣＰＵ１２１は、ＲＯＭ１２２に格納されたコントローラーファーム２００のプログラムをＲＡＭ１２３に展開し、当該プログラムを実行することで、画像形成装置１０２の制御を行う。例えばＣＰＵ１２１は、プログラムにしたがって、受信されたＰＤＬデータを解釈して中間データを生成する。
【００２３】
ＲＯＭ１２２は、ＣＰＵ１２１が実行するコントローラーファーム２００のプログラムや図５に示される先読みファイルリスト等を記憶する不揮発性メモリである。なお、例えば最低限のファイルシステムアクセス機能などの基本機能だけを備えた初期プログラムを起動し、初期プログラムがファイルシステム上にあるコントローラーファーム２００を実行することで、画像形成装置のプログラムを実行することもできる。
【００２４】
ＲＡＭ１２３は、ＲＯＭ１２２から展開されたコントローラーファーム２００のプログラム等を記憶する。また、ＲＡＭ１２３は、ＰＤＬデータ、ＰＤＬデータを解釈して生成される中間データ、中間データをレンダリングして生成されるビットマップデータ、その他の処理に必要な一時的な各種処理ステータスやログ情報等も記憶する。また、後述する先読みファイルリストもＲＡＭ１２３上に読み出されて保持される。
【００２５】
ＮＩＣ１２４は、データ処理装置１０１とコントローラ１１０とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継するネットワークインタフェイスコントローラーである。ＮＩＣ１２４によって、外部のデータ処理装置１０１で生成されたＰＤＬデータを受信することができる。なお、接続形態としては有線接続をするもののほかに、無線接続をするものを採用しても良い。優先接続する場合には、ＮＩＣ１２４とデータ処理装置１０１はイーサネット（登録商標）等で接続される。
【００２６】
パネルＩ／Ｆ１２５は、ＵＩパネル１１１とコントローラ１１０とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継する。
【００２７】
エンジンＩ／Ｆ１２６は、プリントエンジン１１２とコントローラ１１０とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継する。
【００２８】
ＲＩＰ部１２８は、中間データをビットマップデータに変換し、ＲＡＭ１２３に展開する。なお、本発明では、ＲＩＰ部１２８がＣＰＵ１２１とは独立した専用のチップを用いる形態で説明を行う。別形態としては、ＲＩＰ部１２８を設けずにＣＰＵ１２１がビットマップデータへの変換処理までを行う方式を用いても良い。
【００２９】
内蔵ストレージ部１３０は、コントローラ１１０が利用する拡張プログラム等を保持する不揮発性記憶領域である。例えば、Ｆｌａｓｈ  ＲＯＭによって実現することもできる。あるいは、ハードディスクやソリッドステートドライブ等によって実現することもできる。
【００３０】
ＲｅａｌＴｉｍｅＣｌｏｃｋ（ＲＴＣ）１３４は、画像形成装置１０２内の時刻情報を不揮発に管理するためのハードチップである。電池駆動することで、画像形成装置１０２の電源切断後であっても時刻情報を定期的に更新するなどの機能を有する。
【００３１】
バス１３１は、コントローラ１１０に含まれる各要素を相互に接続する。
【００３２】
図２は、コントローラーファームの構成を示すブロック図である。
【００３３】
コントローラーファーム２００のプログラムは、ＲＯＭ１２２に格納されており、ＣＰＵ１２１によってＲＡＭ１２３に展開し、実行される。コントローラーファーム２００には、画像形成装置１０２を制御するためのいくつかの制御部とモジュールが含まれる。
【００３４】
コントローラーファーム２００は、タスク制御部２０１を含む。タスク制御部２０１は、以下で説明する各制御部を起動するためのタスクを起動する。各制御部に対応するタスクが起動されると、その制御部が起動されて初期化処理が実行される。この制御部の初期化処理によって、その制御部の制御下にある各モジュールが起動される。ここで制御部の初期化には、その制御部およびその制御部に対応する各モジュールが動作可能なメモリ環境の設定が含まれる。例えば、その制御部および各モジュールに対応するワークメモリ領域を、ＲＡＭ１２３中に確保し、必要に応じて確保されたワークメモリ領域にデータを書き込む処理が含まれる。
【００３５】
コントローラーファーム２００は、ハードウェアリソース制御部２１０を含む。ハードウェアリソース制御部２１０は、ＮＩＣ制御モジュール２１１、パネル制御モジュール２１２、エンジン制御モジュール２１３を含む。ハードウェアリソース制御部２１０は、ＲＩＰ制御モジュール２１４、内蔵ストレージ制御モジュール２１５、拡張Ｉ／Ｆ制御モジュール２１６、ＲＴＣ制御モジュール２１７を含む。
【００３６】
ＮＩＣ制御モジュール２１１は、外部に接続されたデータ処理装置１０１と、ＮＩＣ１２４を介して通信するための制御モジュールである。パネル制御モジュール２１２は、外部に接続されたＵＩパネル１１１と、パネルＩ／Ｆ１２５を介して通信する制御モジュールである。これによりコントローラーファーム２００は、ＵＩパネル１１１に備えられたＬＣＤ上に表示したい画像データを通知する事ができる。また、コントローラーファーム２００は、ＵＩパネル１１１上に備えられたボタンが押されたイベントを受け取る事ができる。
【００３７】
エンジン制御モジュール２１３はプリントエンジン１１２と通信するための制御モジュールである。ＲＩＰ制御モジュール２１４は、ＲＩＰ部１２８を制御するための制御モジュールである。コントローラーファーム２００は、ＲＩＰ制御モジュール２１４を介して、ＲＡＭ１２３上に格納された中間データや、ＲＡＭ１２３上に展開するビットマップデータのアドレスなどをＲＩＰ部１２８に通知できる。
【００３８】
内蔵ストレージ制御モジュール２１５は、内蔵ストレージ部１３０を制御するための制御モジュールである。拡張Ｉ／Ｆ制御モジュール２１６は、外部に接続されたカードリーダー装置１１３と、拡張Ｉ／Ｆ１３２を介して通信するための制御モジュールである。ＲＴＣ制御モジュール２１７は、ＲＴＣ１３４を制御し、電源投入時などに現時刻の取得を行い、システム全体の時刻情報を更新する。
【００３９】
コントローラーファーム２００は、ファイルシステム制御部２２０を含む。ファイルシステム制御部２２０は、各制御モジュールや各制御部がデータやプログラムなどのファイルにアクセスする機能を提供する。また、ファイルシステム制御部２２０は、ディスクキャッシュ機能も有し、ＲＯＭ１２２や内蔵ストレージ部１３０上のファイルを読み込んだ場合に、その一部もしくは全部をＲＡＭ１２３上にディスクキャッシュとして記憶しておく。これにより、再度読み込み要求があった場合には、ＲＯＭ１２２や内蔵ストレージ部１３０にアクセスすることなく、ディスクキャッシュ上の内容を読み込んだ結果として通知することができる。また、ＲＯＭ１２２からのデータ読み込みが非常に遅い場合がある。こうした場合には、ＲＯＭ１２２上にはデータを種々の圧縮アルゴリズムを用いて圧縮して格納しておく。そして、ディスクキャッシュ機能は、読み込み要求を受けたら圧縮されたデータをＲＡＭ１２３上で展開し、展開されたデータを、読み込んだ結果として通知することもできる。このとき展開済みのデータは、次に読み込み要求を受けた場合に、その展開済みのデータが読み込み結果として通知される。例えば、元々のデータを５０％までのサイズに圧縮して格納すれば、ＲＯＭ１２２からリードする必要があるデータ量も半分とすることができる。その反面、ＣＰＵ１２１が行うべき処理量は増加する。
【００４０】
コントローラーファーム２００は、画面制御部２３０を含む。画面制御部２３０は画像形成装置１０２の状態や状況に応じて、ＵＩパネル１１１上のＬＣＤで表示するべき画像を形成し、通知するためのモジュールである。例えば、印刷しているジョブの状態を表示したり、シートのジャム（紙詰まり）が発生した場合に警告を表示したりする。
【００４１】
コントローラーファーム２００は、通信制御部２４０を含む。通信制御部２４０は、ＮＷ通信モジュール２４１を含む。ＮＷ通信モジュール２４１は、ＮＩＣ制御モジュール２１１を介して、外部のデータ処理装置１０１と通信を行うための制御をするための制御部である。例えば、ネットワーク通信を行うためのプロトコルに対応したコマンドの送受信を行う。なお、ここでは説明を簡略化するために省略しているが、通信制御部２４０が無線での通信手段をサポートしていても良い。あるいは、ＮＩＣ以外の有線通信手段をサポートしていても良い。
【００４２】
コントローラーファーム２００は、ＰＤＬ制御部２５０を含む。ＰＤＬ制御部２５０は、第１ＰＤＬモジュール２５１と、第２ＰＤＬモジュール２５２を含む。第１ＰＤＬモジュール２５１には、ユーザが優先的に利用するＰＤＬを解釈する１つ以上のＰＤＬインタプリタが含まれる。また、第２ＰＤＬモジュール２５２には、利用頻度の低いＰＤＬを解釈するためのＰＤＬインタプリタや、起動に特に時間を必要とする１つＰＤＬインタプリタが含まれる。各ＰＤＬインタプリタは、後述のＰＤＬ印刷モジュール２７２から通知されるＰＤＬデータを解釈して中間データを生成する。このＰＤＬ制御部２５０の初期化では、後述するように第１タスクの起動によって第１ＰＤＬモジュール２５１を起動させることで、第１の種類のＰＤＬデータが処理可能になる。そして第１ＰＤＬモジュール２５１の起動後、第２タスクの起動によって、第２ＰＤＬモジュール２５２が起動する。第１ＰＤＬモジュール２５１を先に起動させることで、画像形成装置を、第１の種類のＰＤＬデータの印刷ジョブを処理可能な状態に早く移行させることができる。このＰＤＬモジュールによる解釈処理は、ＲＡＭ１２３上に割り当てられたワークメモリ領域を用いる。
【００４３】
コントローラーファーム２００は、ＲＩＰ制御部２６０を含む。ＲＩＰ制御部２６０は、ＰＤＬモジュールが生成した中間データをビットマップデータに展開するために、ＲＩＰ制御モジュール２１４を介してＲＩＰ部１２８を制御する。なお、前述したとおり、ＲＩＰ部１２８の代わりに、ＣＰＵ１２１が当該ビットマップデータ展開処理を担う形態をとることも可能である。
【００４４】
コントローラーファーム２００は、ジョブ制御部２７０を含む。ジョブ制御部２７０は、ＰＤＬホールドモジュール２７１と、ＰＤＬ印刷モジュール２７２を含む。ジョブ制御部２７０は、データ処理装置１０１から送信されたＰＤＬデータのヘッダやデータの一部を解釈し、当該ＰＤＬデータに対する適切なＰＤＬインタプリンタの起動などを行うための制御部である。
【００４５】
ＰＤＬホールドモジュール２７１は、データ処理装置１０１からホールド指示がされたＰＤＬデータが通知された場合に、内蔵ストレージ部１３０上にＰＤＬデータを格納するためのモジュールである。またこのモジュールは、ＵＩパネル１１１あるいは後述するＩＣカード認証プログラム２２１から印刷指示が有った場合に、ＰＤＬ印刷モジュールへ内蔵ストレージ１３０上に格納したＰＤＬデータの印刷指示を行うためのモジュールである。このようなＰＤＬデータを格納し、格納後のユーザからの印刷指示にしたがってそのＰＤＬデータの印刷を行うジョブをホールド印刷ジョブと呼び、ＰＤＬデータはホールド印刷ジョブの指示とともに、データ処理装置１０１から受信される。
【００４６】
ＰＤＬ印刷モジュール２７２は、印刷処理を実行するためのモジュールである。ＰＤＬ印刷モジュール２７２は、データ処理装置１０１からＰＤＬデータを受信した場合に、第１ＰＤＬモジュール２５１若しくは、第２ＰＤＬモジュール２５２のいずれかに、当該ＰＤＬデータを通知する。
【００４７】
拡張機能制御部２８０は、コントローラーファーム２００に含まれない拡張機能を実現するための外部プログラムを制御するための制御部である。拡張機能制御部２８０は、拡張機能基本プログラ２２０と、ＩＣカード認証プログラム２２１を制御する。拡張機能基本プログラム２２０は、システムとしてあらかじめ組み込まれている、外部プログラムを制御する上での基本プラットフォーム機能を提供するための外部プログラムである。ＩＣカード認証プログラム２２１は、ユーザが任意でインストールした機能である。ＩＣカード認証プログラム２２１は、カードリーダー装置１１３から読み取ったＩＤなどのユーザ情報を基に、ＰＤＬホールドモジュール２７１に対してホールドジョブの印刷指示を行う。画像形成装置１０２は、その他の外部プログラムを備わっていても良い。なお、外部プログラムは、ＲＯＭ１２２や内蔵ストレージ部１３０に含まれる。
【００４８】
図３は、コントローラーファームの起動（第１タスクと第２タスクの起動）によって行われるコントローラの初期化処理の内容を示す構成図である。
【００４９】
初期化処理は、タスク制御部２０１が各制御部に対して初期化実行命令を呼び出す事によって実現される。タスク制御部２０１が第１タスクおよび第２タスクを起動することで行われる初期化処理をそれぞれ第１タスク初期化処理（第１の初期化）、第２タスク初期化処理（第２の初期化）と呼ぶ。第１タスク初期化処理には、ハードウェアリソース制御部初期化、ファイルシステム制御部初期化、画面制御部初期化、通信制御部初期化、ＰＤＬ制御部初期化（第１ＰＤＬ）、ＲＩＰ制御部初期化、ジョブ制御部初期化が含まれる。つまり第１タスク初期化処理によって、ハードウェアリソース制御部２１０、ファイルシステム制御部２２０、画面制御部２３０、通信制御部２４０、ＰＤＬ制御部２５０、ＲＩＰ制御部２６０、ジョブ制御部が起動される。ただし、第１タスク初期化処理においては、ＰＤＬ制御部２５０の第１ＰＤＬモジュール２５１は起動されるが、第２ＰＤＬモジュール２５２は起動されない。また、拡張機能制御部２８０も拡張Ｉ／Ｆ制御モジュール２１６も起動されない。これら第２ＰＤＬモジュール２５２、拡張機能制御部２８０、拡張Ｉ／Ｆ制御モジュール２１６は、第２タスク初期化処理において起動される。つまり、第２タスク初期化処理には、ＰＤＬ制御部初期化（第２ＰＤＬ），拡張機能制御部初期化、拡張機能モジュール初期化が含まれる。本実施例においては、拡張機能モジュール初期化においては、ＩＣカード認証プログラム２２１の初期化処理が行われる。
【００５０】
この第１タスク初期化処理によって例えばＰＤＬ印刷モジュール２７２が起動し、第１ＰＤＬモジュール２５１で解釈可能なＰＤＬデータの解釈処理が可能となる。つまり第１の種類のＰＤＬデータ印刷ジョブが処理可能になる。また、ＰＤＬホールドモジュール２７１が起動し、第１ＰＤＬモジュール２５１で解釈可能なＰＤＬデータと、第２ＰＤＬモジュール２５２で解釈可能なＰＤＬデータとを、内蔵ストレージ部１３０内にホールドすることが可能となる。
【００５１】
第２タスク初期化処理によって例えば第２ＰＤＬモジュール２５２が起動し、第２ＰＤＬモジュール２５２で解釈可能なＰＤＬデータの解釈処理が可能となる。つまり第２の種類のＰＤＬデータ印刷ジョブが処理可能になる。また、拡張機能モジュールすなわちＩＣカード認証プログラム２２１が起動することで、ＩＣカード認証処理をトリガーとして、内蔵ストレージ部１３０にホールドしたジョブの印刷処理も可能となる。
【００５２】
図４は、本実施例におけるタスク起動制御の手順を示すフローチャートである。このフローによれば、第１の初期化（第１ＰＤＬモジュールなどの起動）が完了すると、第２の初期化（第２ＰＤＬモジュールなどの起動）の完了前でも、特定のジョブ（第１の種類のＰＤＬデータの印刷ジョブ）が処理可能になる。そして第１の初期化の完了後、第２の初期化に関する処理（後述の先読み処理）が開始される。そして、第１の初期化の完了後の所定期間（後述の開始時刻から第１の閾値時間が経過するまでの時間）において特定ジョブの実行が指示されると、それまで行っていた第２の初期化に関する処理が停止（あるいは中断）される。これにより、特定ジョブを第２の初期化に関する処理と競合させずに実行でき、かつ、第２の初期化に関する処理を第１の初期化の完了後に速やかに開始するので第２の初期化の完了を従来よりも早めることができる。
【００５３】
なお、このフローチャートは、画像形成装置の電源がオンされたことにしたがって、ＣＰＵ１２１がコントローラーファーム２００のプログラムを実行することで行われる。本フローでは、タスク制御部２０１によって各ステップの処理が行われる。
【００５４】
タスク制御部２０１は、第１タスクの起動を開始する（Ｓ４０１）。これにより、第１タスク初期化処理に含まれる各制御部の初期化処理が開始される。つまりタスク制御部２０１が第１タスクの起動を開始することで、対応する制御部が起動され、それら制御部は第１の初期化を開始する。各制御部はそれぞれスレッドもしくはプロセス上で動作をする。
【００５５】
タスク制御部２０１は、第１タスクの起動完了を待つ（Ｓ４０２）。第１タスク初期化処理で初期化処理を開始した各制御部は、初期化が完了したタイミングでメッセージ通信機能などによって、タスク制御部２０１に対して初期化が完了したことを通知する。制御部の初期化が完了すると、初期化が完了したその制御部の機能が第２タスク初期化処理の完了前でも実行可能となる。例えば第１ＰＤＬモジュール２５１による第１の種類のＰＤＬデータの解釈が実行できるようになる。第１タスク初期化処理に含まれる各制御部の初期化処理が全て完了すると、タスク制御部２０１は次の処理を実行する。
【００５６】
タスク制御部２０１は、ジョブ受付／データ先読み並列処理の開始時刻として現在時刻を、ＲＴＣ制御モジュール２１７を介してから取得する（Ｓ４０３）。
【００５７】
タスク制御部２０１は、ジョブ制御部２７０に、ジョブを受け付けたか（ジョブの実行が指示されたか）を問い合わせる。ジョブ制御部２７０は現時点で受け付けたジョブが存在しているか、存在していないかを判別し、タスク制御部２０１へ返答する。タスク制御部２０１は、当該返答を基に処理を分岐する（Ｓ４１０）。
【００５８】
ジョブを受け付けていない場合（Ｓ４１０でＮｏ）、タスク制御部２０１は、ジョブ受付／データ先読み並列処理にかかっている時間を算出する（Ｓ４１１）。ここでは、Ｓ４０３で取得した現在時刻からどれだけの時間が経過したか、つまり経過時間が算出される。具体的には、タスク制御部２０１は、ＲＴＣ制御モジュール２１７を介して現在の時刻を取得し、Ｓ４０３で取得した開始時刻との差分によって、経過時間が算出される。
【００５９】
タスク制御部２０１は、経過時間が第１の閾値時間を超過したか否かによって処理を分岐する（Ｓ４１２）。この閾値時間は、第１の種類のＰＤＬデータの処理を第２タスクの起動よりも優先して処理するために設定された所定の時間である。本実施例では、経過時間が閾値時間を越える前に第１の種類のＰＤＬデータが受信された場合に、後述の先読み処理を停止して、受信されたＰＤＬデータの処理を行う。すなわち、この閾値時間は、先読み処理に第１の種類のＰＤＬデータの処理を割り込みさせることが可能な時間とも言える。本実施例では、予め定めた時間、例えば５秒間を第１の閾値時間とする。
【００６０】
経過時間が第１の閾値時間を超過していない場合（Ｓ４１２でＮｏ）、タスク制御部２０１は、後述する先読み処理を一定時間行う（Ｓ４１３）。ここで一定時間とは、第１の閾値時間よりも短い時間であり、例えば２００ミリ秒である。この一定時間の決め方は図７を用いて後述する。
【００６１】
タスク制御部２０１は、先読み処理が完了したか否かによって処理を分岐する（Ｓ４１４）。ここで、先読み処理が完了した状態とは、後述する先読みファイルリスト内の全てのファイルの内容（第２タスク初期化処理が用いる全データ）をＲＡＭ１２３上のディスクキャッシュに展開できた状態である。ここでは、ファイル（データ）のディスクキャッシュへの展開とは、ファイルのディスクキャッシュへの記憶に相当する。圧縮された状態のファイルは、解凍した状態でディスクキャッシュへ記憶されることも含まれる。
【００６２】
先読み処理が完了していない場合、タスク制御部２０１はＳ４１０に戻る。この一連の流れを閾値時間分、繰り返す事で、第１タスク初期化処理（第１の初期化）によって処理可能となったジョブの受付を行いつつ、データ先読み処理も並行的に行うことができる。
【００６３】
経過時間が第１の閾値時間を超過している場合、タスク制御部２０１は、第２タスクの起動を開始する（Ｓ４３１）。この第２タスクの起動によって、対応する制御部の第２タスク初期化処理（第２の初期化）が開始される。
【００６４】
この第２タスク初期化処理は、後述の先読みファイルリストに記載されているファイル（データ）を用いる。これらファイルは、ＲＯＭ１２２あるいは内蔵ストレージ部１３０に格納されているが、先読み処理によって既にディスクキャッシュに展開されていれば、第２タスク初期化処理は、そのディスクキャッシュに展開されたファイルを用いる。具体的には、第２タスク初期化処理は、ＲＡＭ１２３上のディスクキャッシュから読み出したファイル（あるいはその一部）を、ＲＡＭ１２３のワークメモリ領域に展開して用いる。ディスクキャッシュに記憶されたファイルのワークメモリ領域への読み出しは、ＲＯＭ１２２あるいは内蔵ストレージ部１３０に記憶されたファイルのワークメモリ領域への読み出しよりも高速である。そのため、先読み処理によってファイルをディスクキャッシュに展開しておくことで、第２タスク初期化処理の完了を早めることができる。一方、ディスクキャッシュへ展開されなかったファイルは、ＲＯＭ１２２あるいは内蔵ストレージ部１３０からワークメモリ領域へ読み出される。すなわち、ディスクキャッシュに記憶されたファイルと、ＲＯＭ１２２あるいは内蔵ストレージ部１３０に記憶されたファイルを用いて第２タスク初期化処理が行われることがある。
【００６５】
タスク制御部２０１は、第２タスクの起動の完了（すなわち、対応する制御部の第２タスク初期化処理の完了）を待つ（Ｓ４３２）。そして起動処理を完了する。
【００６６】
ジョブを受け付けている場合、タスク制御部２０１は、ジョブ制御部２７０に、受け付けたジョブの種別を問い合わせる。ジョブ制御部２７０はタスク制御部２０１にジョブ種別を通知する。タスク制御部２０１はジョブ種別に応じて処理を分岐する（Ｓ４２０）。
【００６７】
ジョブが第２ＰＤＬジョブ（第２のＰＤＬデータの印刷ジョブ）であれば、タスク制御部２０１は即座に第２タスクの起動処理と、起動完了待ちを行う（Ｓ４３１、Ｓ４３２）。起動処理の完了後、タスク制御部２０１は、この第２ＰＤＬジョブを処理するように各制御部を制御する。
【００６８】
ジョブが第１ＰＤＬジョブ（第１のＰＤＬデータの印刷ジョブ）、あるいは、ホールドジョブ（ホールド印刷ジョブ）であれば、タスク制御部２０１は、第１ＰＤＬジョブを処理するように、関連する各制御部を制御する。また、タスク制御部２０１はジョブ制御部２７０に当該ジョブの処理が完了したかを適宜問い合わせる。ジョブ制御部２７０はタスク制御部２０１に対して当該ジョブの処理が完了したかを通知する。処理の完了とはＰＤＬデータの解釈、ビットマップの生成、あるいは画像が印刷されたシートの排出の完了の何れかである。本実施例ではＰＤＬデータの解釈の完了をジョブ処理の完了と見なす。タスク制御部２０１は通知されたジョブ処理の完了結果に応じて処理を分岐する（Ｓ４２１）。
【００６９】
ジョブ処理が完了していなければ、タスク制御部２０１は一定時間、待機処理を繰り返す（Ｓ４２２）。そして、ジョブが完了したら、タスク制御部２０１は即座に第２タスクの起動処理と、起動完了待ちを行う（Ｓ４３１，Ｓ４３２）。待機処理指示すると、ＣＰＵ１２１はタスク制御部２０１に対して一定時間アイドル状態とする。すなわちジョブを処理している間、当該ジョブの処理にＣＰＵ資源を割り振る事ができる。すなわち、タスク制御部２０１が実行するデータ先読み処理と、ＰＤＬ制御部２５０のＰＤＬ処理の競合を回避することができる。
【００７０】
また、本実施例においては、一定時間の細かい時間間隔でファイル（データ）を先読みしてディスクキャッシュに展開するだけなので、第１タスク初期化処理によって処理可能となった特定ジョブを受け付けた場合に、速やかに展開を停止することができる。
【００７１】
また、第２タスク初期化処理を実行している状況で特定ジョブを第２タスク初期化処理とＣＰＵ競合せずに処理するべく、第２タスク初期化処理を中断したとする。しかし、第２タスク初期化処理によってＲＡＭ１２３のワークメモリ領域は消費されているので、特定ジョブは限られたワークメモリ領域で処理しなければならず、処理速度の低下を招く可能性がある。これに対して本実施例では第２タスク初期化処理ではなく、ファイルの先読みを行うので、ＲＡＭ１２３のメモリ消費量を第２タスク初期化処理よりも抑えることができ、受け付けた特定のジョブの処理速度の低下を防ぐことができる。
【００７２】
また、第１タスク初期化処理後にジョブを受け付けるまで行われた先読み処理によってディスクキャッシュに展開されたファイルあるいはその一部を用いて、第２タスク初期化処理が行われる。なお第２タスク初期化処理で用いられるが、ディスクキャッシュに展開されていないファイルやその一部については、ＲＯＭ１２２や内蔵ストレージ部１３０から読み出されたものが用いられる。
【００７３】
図５は、本実施例における先読みファイルリストの例である。
【００７４】
先読みファイルリストは、先読み処理の対象となるファイルのリストである。先読みファイルリストは予めＲＯＭ１２２内に固定情報として持っておくだけではなく、内蔵ストレージ部１３０に可変情報として持っておくこともできる。また、先読みファイルリストは起動毎に動的に生成する構成をとることもできる。
【００７５】
図５の例では、８個のファイルを対象としている。このうち、／ｖａｒ／ｒｏｍから始まるＮｏ．５０１〜５０７のファイルは、ＲＯＭ１２２内に格納されたリードオンリーファイルである。５０１から５０４は、拡張機能基本プログラム２２０が動作するために必要なファイルである。
【００７６】
例えば、Ｎｏ．５０１のファイルは基本的なサービスを提供するためのプログラムである。Ｎｏ．５０２のファイルは画面制御部２３０と通信するためのプログラムである。Ｎｏ．５０３のファイルは画像形成装置１０２内で起きた種々の状況変化を取得し、制御するためのプログラムである。Ｎｏ．５０４のファイルは画像形成装置１０２内でのユーザ認証を制御するためのプログラムである。
【００７７】
Ｎｏ．５０５から５０７のファイルは、第２ＰＤＬモジュール２５２が動作するために必要なファイルである。例えばＮｏ．５０５のファイルは、基本的な欧文フォントのデータである。Ｎｏ．５０６のファイルは和文フォントのデータである。Ｎｏ．５０７のファイルは、ＣＭＹＫプロファイルのデータである。
【００７８】
／ｖａｒ／ｓｔｏｒａｇｅから始まるＮｏ．５０８のファイルは、内蔵ストレージ部１３０内に格納されたリードライト可能なファイルである。このファイルは、ＩＣカード認証プログラム２２１が動作するために必要なファイルである。
【００７９】
なお、ここではａｐｐという拡張子を持つファイルと記載している。これは、実行ファイルである場合もあるが、更に実行ファイルとデータファイルをアーカイブしたアーカイブファイルを先読みファイルリストに記載しても良い。本実施例では、以上の８つのファイルが、ＲＯＭ１２２あるいは内蔵ストレージ部１３０からＲＡＭ１２３のディスクキャッシュに展開する先読み処理の対象のファイルである。
【００８０】
図６は、本実施例における画面例である。
【００８１】
画面制御部２３０は起動進捗表示をする画面や、設定変更メニュー機能などを有している。ここでは、起動進捗表示の画面と、ホールド設定画面６５０や、待機画面設定画面６５１を抜き出して説明する。
【００８２】
画像形成装置１０２に電源投入すると、画面制御部２３０は、第１タスク初期化処理の進捗をユーザに通知する。例えば、ハードウェアリソース制御部初期化が開始し、ＵＩパネル１１１の初期化が終了した段階で、パネル制御モジュール２１２は画面６０１をＵＩパネル１１１に表示する。各制御部初期化が終了すると、タスク制御部２０１は画面制御部２３０に対して画面更新要求を出す。画面制御部２３０は当該進捗に合わせて、画面上のプログレッシブバーの進捗を更新する。ジョブ制御部初期化が終了した時点、つまり第１タスク初期化処理に関わる制御部の初期化が終了した段階で画面６０２を表示する。
【００８３】
第１タスク初期化処理が完了したら（すなわち、Ｓ４０３からＳ４３１の前までの期間内）、画面制御部２３０は、基本待機画面６１１を表示し印刷可能であることをユーザに通知する。また、第２タスクの起動処理中（Ｓ４３１からＳ４３２）においては、画面制御部２３０は、第２タスク起動画面６１２を表示する。そして、第２タスクの起動完了後（Ｓ４３２以後）は、画面制御部２３０は基本待機画面６１３を表示する。これらによって、画面制御部２３０はＵＩパネル１１１上のＬＣＤに起動処理進捗をユーザへ通知することができる。
【００８４】
ホールド設定画面６５０は、ジョブ制御部２７０が参照する強制ホールド機能を有効にするかどうかの設定画面である。強制ホールドが選択されている場合、ジョブ制御部２７０は当該画像形成装置１０２に送信されたＰＤＬジョブを、全てホールドジョブとして扱う。指定ホールドが選択されている場合、ジョブ制御部２７０は当該画像形成装置１０２に送信されたＰＤＬジョブに、ホールドジョブ指定がある場合にのみ、ホールドジョブとして扱う。ホールドジョブとして扱うべきＰＤＬジョブは、ＰＤＬホールドモジュール２７１で処理される。ホールドジョブではないＰＤＬジョブは印刷対象として、ＰＤＬ印刷モジュール２７２で処理される。当該設定を用いることで、ＩＣカード認証プログラム２２１を介してしか印刷処理ができないようにすることができる。
【００８５】
待機画面設定画面６５１は、画面制御部２３０が待機状態時に表示するべき画面を選択する設定画面である。基本画面が選択された場合には、上記のように基本待機画面６１１や基本待機画面６１２を表示する。拡張アプリケーションが選択された場合には、拡張機能制御部２８０を介して、拡張機能アプリケーションから提供される画面を待機画面として表示する。
【００８６】
例えば、実施例１においては、ＩＣカード認証プログラム２２１が動作する。この場合、画面６０２の後に基本画面６１１を表示する代わりに、画面制御部２３０は拡張機能起動画面６２１を表示しておく。そして、拡張機能アプリケーション側から拡張機能画面６２２が画面提供され、画面制御部２３０は、拡張機能画面６２２を表示する。
【００８７】
本実施例によれば、画面制御部２３０が基本待機画面６１１を表示している間、第２タスク初期化処理に必要となるデータの少なくとも一部を先読みすることができる。これにより、基本待機画面６１３や、拡張機能画面６２２を画面に表示するまでの時間を短縮できる。
【００８８】
図７は、本発明におけるジョブ受付／データ先読み並列処理の手順を示すフローチャートである。
【００８９】
当該処理は、図４上のＳ４１３で実行される処理である。具体的には、タスク制御部２０１が、制限時間にしたがって、ファイルシステム制御部２２０を介し、後述する先読みファイルリスト上に記されているファイルの中身を、ＲＡＭ１２３上のディスクキャッシュに展開する。本実施例においては、制限時間を決めるための基準の時間（基準時間）を２００ミリ秒とし、この２００ミリ秒を基に、Ｓ４１３で先読み処理が行われる時間（制限時間）が決まる。
【００９０】
なお、ファイルシステム制御部２２０を介しファイルにアクセスする方法としては、当該ファイルの現時点でのアクセス位置などの情報を含む領域へのポインタである、ファイルポインタを介する手段が一般的である。本実施例においては、先読みファイルリスト上のファイルの内容を読み出すための、先読み用ファイルポインタを定義する。なお、先読み用ファイルポインタの初期状態は、ファイル未オープン状態である。
【００９１】
タスク制御部２０１は、経過時間を０に初期化する（Ｓ７０１）。
【００９２】
タスク制御部２０１は、ＲＴＣ制御モジュール２１７を介して現在時刻を取得し、その時刻を開始時刻とする（Ｓ７０２）。タスク制御部２０１は、基準時間（本実施例では２００ミリ秒）から、前回実行した本フローの先読み処理で決定されたペナルティ時間（以下単にペナルティ）を引いたものを、今回実行する本フローの先読み処理の制限時間とする（Ｓ７０３）。このペナルティは、前回本フローを実行した際に、設定された制限時間を超過して先読み処理を行った時間（超過時間）である。このペナルティは、前回の本フローを実行した際に、後述のＳ７４２で求められる。このペナルティは、毎回の処理時間の平均時間がおおよそ基準時間となるようにするための補正値である。前回の処理で制限時間を超過した分が４０ミリ秒で合った場合にペナルティは４０ミリ秒となる。そして今回の処理で制限時間は、基準時間２００ミリ秒からペナルティ分引かれた１６０ミリ秒となる。
【００９３】
タスク制御部２０１は、先読み用ファイルポインタを確認することで、ファイルがオープン済みであるかを検証し、その結果にしたがって処理を分岐する（Ｓ７１０）。
【００９４】
ファイルがオープン済みであれば（Ｓ７１０でＹｅｓ）、処理はＳ７２０へ進む。ファイルが未オープンであれば（Ｓ７１０でＮｏ）、タスク制御部２０１は全ファイルを処理済みであるかを検証し、その結果にしたがって処理を分岐する（Ｓ７１１）。
【００９５】
先読み用ファイルリストにおいて未処理のファイルがあるならば（Ｓ７１１でＮｏ）、タスク制御部２０１は当該ファイルをオープンする（Ｓ７１２）。そして、タスク制御部２０１は当該ファイルのオープンに成功したかどうかを検証し、その結果にしたがって処理を分岐する（Ｓ７１３）。
【００９６】
ファイルオープンに成功した場合（Ｓ７１３でＹｅｓ）は、タスク制御部２０１は、先読み用ファイルポイントでファイルが読み込み可能であるかを検証し、その結果にしたがって処理を分岐する（Ｓ７２０）。
【００９７】
ファイルが読み込み可能でなければ（Ｓ７２０でＮｏ）、処理はＳ７３０に進む。ファイルが読み込み可能であれば（Ｓ７２０でＹｅｓ）、タスク制御部２０１はファイルシステム制御部２２０を介して先読み用ファイルの内容を読み込み、ＲＡＭ１２３上のディスクキャッシュに展開する（Ｓ７２１）。このときファイルの内容の読み込みおよび展開は、所定データサイズ分（例えば４ＫＢ）だけ行う。
【００９８】
タスク制御部２０１は、先読み用ファイルポインタがファイル終端に到達しているかを検証し、その結果にしたがって処理を分岐する（Ｓ７３０）。先読みファイルポイントがファイル終端に達していいない場合（Ｓ７３０でＮｏ）、処理はＳ７４０へ進む。先読み用ファイルポインタがファイル終端に達している場合（Ｓ７３０でＹｅｓ）、タスク制御部２０１は、先読み用ファイルをクローズする（Ｓ７３１）。
【００９９】
ファイルオープンに失敗した場合（Ｓ７１３でＮｏ）は、タスク制御部２０１は、先読み用ファイルリストの次のファイルを対象とする（Ｓ７１４）。
【０１００】
先読み用ファイルリストの全てのファイルを処理済みであれば（Ｓ７１１でＹｅｓ）、制限時間と経過時間の差分だけ待機処理をする（Ｓ７１５）。
【０１０１】
タスク制御部２０１は、現在時刻と開始時刻の差分から経過時間を更新する（Ｓ７４０）。タスク制御部２０１は、経過時間がＳ７０３で設定された制限時間を超過しているかを検証し、その結果にしたがって処理を分岐する（Ｓ７４１）。経過時間が制限時間を超過していない場合（Ｓ７４１でＮｏ）、処理はＳ７１０へ戻り、経過時間が制限時間を超過している場合（Ｓ７４１でＹｅｓ）、処理はＳ７４２に進む。
【０１０２】
タスク制御部２０１は、経過時間と制限時間の差分を、次回処理時に参照するペナルティとして記憶する（Ｓ７４２）。
【０１０３】
以上の処理を行うことで、タスク制御部２０１は、第１タスクに関するジョブの受け付けを行いつつ、先読み用ファイルリスト上のファイルの内容をＲＡＭ１２３上のディスクキャッシュに展開する。これにより、Ｓ４３１、Ｓ４３２で行われる第２タスク初期化処理については、アクセス速度の遅いＲＯＭ１２２や内蔵ストレージ部１３０からではなく、アクセス速度の速いＲＡＭ１２３のディスクキャッシュから、ファイル内容を読み出す事ができる。
【０１０４】
以上により、（１）電源投入してから第１タスクに関する機能（例えば第１の種類のＰＤＬデータの印刷）が利用可能になるまでの時間はＳ４０２直後から利用可能にできる。（２）（１）のＦＰＯＴ（ＦｉｒｓｔＰｒｉｎｔＯｕｔＴｉｍｅ）性能は、Ｓ４２２で待機処理することで競合動作を回避し、全機能起動完了後のＣＰＵがアイドルな状態で実行した時と同程度にできる。（３）第２タスクに関する機能（例えば第２の種類のＰＤＬデータの印刷）が利用可能になるまでの時間は、Ｓ４１３でファイルの先読みをすることで、ジョブ受付／データ先読み並列処理を行わない時と同程度に抑えられる。
【０１０５】
（実施例２）
実施例１では、電源投入後の第１タスク初期化処理の完了から第２タスク初期化処理の開始までの時間が第１の閾値時間となるようにする場合の説明をした。
【０１０６】
実施例２では、ジョブ受付／データ先読み並列処理を行う時間を最大にする場合の例について説明を行う。
【０１０７】
図８は、本実施例におけるタスク起動制御の手順を示すフローチャートである。
【０１０８】
図８と図４との違いは２点ある。１点目の差異は、実施例１におけるＳ４１２の処理が無いことである。２点目の差異は、Ｓ４１４で先読みが完了したかを判定し、先読みが第１の閾値時間の経過前に完了した場合には、タスク制御部２０１は、第１の閾値時間と経過時間の差分だけ、待機処理を行うこと（Ｓ８３１）である。
【０１０９】
実施例１では、データ先読み処理は第１の閾値時間内でできる限り行われる。そのため、先読みファイルリストに記載されている全てのファイルに対して先読み処理が完了することは保証されない。
【０１１０】
実施例２においては、ジョブが受け付けられていない限り、先読みファイルリストに記載されている全てのファイルに対して先読み処理が完了するまで行われる。そして、第１の閾値時間が経過する前に先読み処理が完了した場合でも、第１の閾値時間だけは、第１ＰＤＬジョブやホールドジョブを優先的に（第２タスク初期化処理との競合を避けて）処理できるように、第２タスク初期化処理の開始を待機する。
【０１１１】
実施例１に比べて実施例２が優れている点は、第２タスクの起動完了時間を遅延させず、第１タスクに関するジョブ受付時間をより長くすることができる点である。
【０１１２】
（その他の実施例）
上記実施例においては、第２の初期化に関する処理として第２の初期化で用いられるデータのＲＯＭからＲＡＭへのキャッシュ（先読み処理）を行っていた。他の実施例によれば、この先読み処理に代えて、第２の初期化を開始しても良い。この場合、第１の初期化によって処理可能となったジョブの受け付けに従って、第２の初期化を中断し、そのジョブの処理の完了に従って中断された第２の初期化を再開すればよい。
【０１１３】
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2018099855.tif 000003
【図２】
2018099855.tif 000004
【図３】
2018099855.tif 000005
【図４】
2018099855.tif 000006
【図５】
2018099855.tif 000007
【図６】
2018099855.tif 000008
【図７】
2018099855.tif 000009
【図８】
2018099855.tif 000010