(57)【要約】【課題】リアルタイムＯＳを搭載しない非力なＣＰＵであっても、システムが要求する基本的なリアルタイム性を満たすことのできるジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラムを提供する。【解決手段】機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラ5であって、各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御するジョブスケジューラ。【選択図】図３
2008234285.tif 000002
【特許請求の範囲】
【請求項１】
機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラであって、
各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御するジョブスケジューラ。
【請求項２】
グループ分割された各ジョブを複数のサブグループに分割し、一サイクル毎にサブグループ単位で交互にジョブを呼び出し制御する請求項１記載のジョブスケジューラ。
【請求項３】
各ジョブの処理時間を計測し、その結果に基づいて各ジョブが属するグループを動的に変更する請求項１または２記載のジョブスケジューラ。
【請求項４】
機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジュール方法であって、
各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御するジョブスケジュール方法。
【請求項５】
グループ分割された各ジョブを複数のサブグループに分割し、一サイクル毎にサブグループ単位で交互にジョブを呼び出し制御する請求項４記載のジョブスケジュール方法。
【請求項６】
各ジョブの処理時間を計測し、その結果に基づいて各ジョブが属するグループを動的に変更する請求項４または５記載のジョブスケジュール方法。
【請求項７】
機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラとしてコンピュータを機能させるジョブ制御プログラムであって、
各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御するジョブ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラムに関し、特に、リアルタイムＯＳを搭載しない組み込みソフトウェアのリアルタイム性を向上させるジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラムに関する。
【背景技術】
【０００２】
既に広く利用されているプリンタ装置、複写機装置、ファクシミリ装置などに代表される情報処理装置等を制御する組み込みソフトウェアでは、リアルタイムＯＳを搭載することが一般的である。
【０００３】
リアルタイムＯＳでは、制御すべき処理単位（ジョブ）を分割し、並列に実行する必要があるジョブをタスクという概念に割り当て、予め設定された優先度に従って各タスクの順序を自動的に決定して実行制御する。
【０００４】
また、組み込みソフトウェアでは、実行すべき処理が複雑でない場合は、リアルタイムＯＳを搭載せずに、一般的にメインループと呼ばれ、各処理を順次呼び出していくジョブスケジューラを備えることも多い。
【０００５】
このようなメインループ構造を採用するものでは、メインループから呼び出される各ジョブは最小時間で実行を終了し、メインループに処理を戻すように構成される。
【０００６】
特許文献１には、制御処理のリアルタイム性の保証およびネットワーク通信処理のスループットの保証をともに実現することを目的として、複数のタスクと該タスクの実行制御を行うオペレーティングシステムを含むプログラムを備え、前記複数のタスクをネットワーク通信系と通信を行うための通信タスクグループと監視制御対象を監視制御するための制御タスクグループとに分けて管理するとともに、前記複数のタスクの実行順序をグループ単位で切換え、切換えられたタスク群に従って前記監視制御対象または前記ネットワーク通信系から得られた情報の処理を実行してなるコントローラが提案されている。
【特許文献１】特開２００３−６７２０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、リアルタイムＯＳを搭載する場合、メモリに各タスクの状態を記憶するタスクコントロールブロック（ＴＣＢ）と呼ばれる記憶領域が必要になり、必要とするＲＡＭサイズが増大するという問題があった。
【０００８】
また、リアルタイムＯＳが各タスクを呼び出すまでの時間が本来必要のない処理となり無駄時間が発生する。この時間をオーバーヘッド時間と一般的に呼称する。
【０００９】
リアルタイムＯＳを搭載しない場合には上記問題点はないが、メインループから各ジョブを順次呼び出すことを繰り返すため、時間的制限が厳しい処理があったとしても、それ以外のジョブがメインループから呼び出しされている場合には、メインループにより時間的制限が厳しいジョブを呼び出されるまでの間に遅延が発生するという問題があった。各ジョブの呼び出し実行時間総和に比較してＣＰＵの能力が高い場合は、要求される最小時間で各ジョブに実行権が渡されるのでリアルタイム性という点で問題は無いが、非力なＣＰＵの場合はシステムが要求するリアルタイム性を満たさないという致命的な問題が発生することになる。
【００１０】
本発明の目的は、上述の問題点に鑑み、リアルタイムＯＳを搭載しない非力なＣＰＵであっても、システムが要求する基本的なリアルタイム性を満たすことのできるジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラムを提供する点にある。
【課題を解決するための手段】
【００１１】
上述の目的を達成するため、本発明によるジョブスケジューラの第一の特徴構成は、特許請求の範囲の書類の請求項１に記載した通り、機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラであって、各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御する点にある。
【００１２】
上述の構成によれば、非力なＣＰＵであっても、ジョブスケジューラにより優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度が最小許容頻度に制限されるので、優先度の高いグループに属するジョブの実行時間が確保され、システムが要求する基本的なリアルタイム性を保証することができるようになる。
【００１３】
同第二の特徴構成は、同請求項２に記載した通り、上述の第一特徴構成に加えて、グループ分割された各ジョブを複数のサブグループに分割し、一サイクル毎にサブグループ単位で交互にジョブを呼び出し制御する点にある。
【００１４】
上述の構成によれば、頻度が同等の各ジョブが一サイクル毎に交互に実行されるので、リアルタイム性を保持しながら負荷分散を図ることができるようになる。例えば、処理時間の長いジョブと短いジョブを処理時間が均等になるようにサブグループに分割することにより、一サイクルに要するジョブの処理時間を短縮して、効率的に実行管理できるようになる。
【００１５】
同第三の特徴構成は、同請求項３に記載した通り、上述の第一または第二特徴構成に加えて、各ジョブの処理時間を計測し、その結果に基づいて各ジョブが属するグループを動的に変更する点にある。
【００１６】
同じジョブであっても、制御対象である機器の状況により処理時間が変動することがある。上述の構成によれば、そのような変動を各ジョブの処理時間を計測することにより把握し、その結果に基づいて各ジョブが属するグループを動的に変更することにより、システムが要求する基本的なリアルタイム性を保証することができるようになる。
【００１７】
本発明によるジョブスケジュール方法の第一の特徴構成は、同請求項４に記載した通り、機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジュール方法であって、各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御する点にある。
【００１８】
同第二の特徴構成は、同請求項５に記載した通り、上述の第一特徴構成に加えて、グループ分割された各ジョブを複数のサブグループに分割し、一サイクル毎にサブグループ単位で交互にジョブを呼び出し制御する点にある。
【００１９】
同第三の特徴構成は、同請求項６に記載した通り、上述の第一または第二特徴構成に加えて、各ジョブの処理時間を計測し、その結果に基づいて各ジョブが属するグループを動的に変更する点にある。
【００２０】
本発明によるジョブ制御プログラムの特徴構成は、同請求項７に記載した通り、機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラとしてコンピュータを機能させるジョブ制御プログラムであって、各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御する点にある。
【発明の効果】
【００２１】
以上説明した通り、本発明によれば、リアルタイムＯＳを搭載しない非力なＣＰＵであっても、システムが要求する基本的なリアルタイム性を満たすことのできるジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラムを提供することができるようになった。
【発明を実施するための最良の形態】
【００２２】
以下、本発明によるジョブスケジューラを複写機を制御するマイクロコンピュータにより実行される組込みソフトウェアに適用した場合について説明する。
【００２３】
図１に示すように、複写機を制御するマイクロコンピュータＭは、ＣＰＵ１と、ＣＰＵ１で実行される組込みソフトウェア６が格納されたＲＯＭ７と、データエリアやＣＰＵ１のワーキングエリアとして利用されるＲＡＭ４と、タイマ割込み部２と、Ｉ／Ｏインタフェース部３等を内部バス８で接続して構成されている。
【００２４】
ＲＯＭ７に格納された組込みソフトウェアは、複写機に組み込まれている各種のエレメントを制御して画像形成動作を制御するもので、搬送経路に沿って配置されたセンサにより記録紙を監視しながら搬送する搬送制御ジョブＡ、定着部に組み込まれたヒータにより定着温度を制御する温度制御ジョブＢ、感光体を含む像形成ブロックの画像形成タイミングを制御してトナー画像を形成する作像制御Ｃ、装置のカバー開閉検出制御Ｘ、機内環境をモニタする温湿度検出制御Ｙ、装置のカバー開閉検出制御Ｙ、機内に設置された除湿ヒータ制御Ｚ等の複数のジョブ６と、各ジョブ６をメインループで呼び出して実行させるジョブスケジューラ５を備えて構成される。
【００２５】
図１及び図２に示すように、マイクロコンピュータＭに電源が投入されると、内部レジスタやＲＡＭの値を初期設定した後に、ジョブスケジューラ５をＲＯＭ７から読み出してメインループ処理を実行する。ジョブスケジューラ５は所定のインタバルでＣＰＵ１にタイマ割込みがかかるようにタイマ割込み部２を設定して、精度の高い入力処理が必要なデータをタイマ割込み処理で取り込むように制御する一方、上述した各ジョブを所定の順序で呼び出すポーリング処理を実行する。
【００２６】
図２は、ジョブスケジューラ５がジョブＡ，Ｂ，Ｃ，・・・，ジョブＸ，Ｙ，Ｚ，・・・を呼び出し、それらの処理が終了することによりメインループの一サイクルを終了して、再度ジョブＡ，Ｂ，Ｃ，・・・を呼び出す通常のポーリング処理を示している。
【００２７】
このように、全てのジョブをメインループで順番に処理する場合には、メインループの一サイクルの時間が長くなり、制御のリアルタイム性を損なう場合が生じる。例えば、上述のジョブＡ，Ｂ，Ｃ等はリアルタイム性の要求が厳しく、数ｍｓｅｃ．から数十ｍｓｅｃ．のオーダーで処理が遅延すると正常に記録紙を搬送できず、正常な画像を形成できない等の不都合が生じるが、上述のジョブＸ，Ｙ，Ｚ等はリアルタイム性の要求がそれほど厳しくは無く、数百ｍｓｅｃ．から数秒のオーダーで処理が実行される限り大きな不都合が生じない。
【００２８】
そこで、ジョブスケジューラ５は、各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御する。
【００２９】
図３に示すように、ジョブスケジューラ５は予めＲＯＭ７に記憶された各ジョブのリアルタイム処理の必要度に応じて設定された優先度テーブル５ａに基づいて、ジョブＡ，Ｂ，Ｃ，・・・と、ジョブＸ，Ｙ，Ｚ，・・・をグループ化し、メインループ処理でジョブＡ，Ｂ，Ｃ，・・・を優先的に呼び出して順番に処理するとともに、数回に一回ジョブＸ，Ｙ，Ｚ，・・・を呼び出して順番に処理する。
【００３０】
ジョブＡ，Ｂ，Ｃ，・・・のグループが優先度の高いグループであり、ジョブＸ，Ｙ，Ｚ，・・・のグループが優先度の低いグループである。ジョブＸ，Ｙ，Ｚ，・・・のグループが処理されるのは、予めＲＯＭ７に記憶された最小許容頻度テーブル５ｂの値に従う。
【００３１】
ジョブスケジューラ５はタイマ割込み部２に設けられたタイマカウンタの値に基づいて、各グループの処理開始時刻から処理終了時刻までの時間、さらには各ジョブの処理開始時刻から処理終了時刻までの時間を計測して、各グループ及びジョブの処理時間をＲＡＭ４に区画された処理時間テーブルに記憶することにより、各グループの処理インタバルを監視し、最小許容頻度テーブル５ｂの値を逸脱しないようにジョブＸ，Ｙ，Ｚ，・・・のグループを呼び出して順番に処理するのである。
【００３２】
このような構成により、非力なＣＰＵであっても、ジョブスケジューラにより優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度が最小許容頻度に制限され、優先度の高いグループに属するジョブの実行時間が確保され、システムが要求する基本的なリアルタイム性を保証することができるようになる。尚、ジョブを分割するグループ数は二つに限るものではない。
【００３３】
さらに、別の実施形態では、ジョブスケジューラ５は、上述したようなグループ分割された各ジョブを複数のサブグループに分割し、一サイクル毎にサブグループ単位で交互にジョブを呼び出し制御する。
【００３４】
例えば、優先度テーブル５ａで設定されている優先度の高い順に、ジョブＡ，Ｂ，Ｃ，・・・のグループまたはジョブＸ，Ｙ，Ｚ，・・・のグループを複数のサブグループに分割して、一回のメインループで呼び出すサブグループを制限して負荷分散させるのである。
【００３５】
サブグループに分割する基準は優先度の高い順である場合以外に、処理時間テーブル５ｃに基づいて各ジョブの処理時間に基づいてサブグループ間での処理時間が均等になるように分割してもよい。
【００３６】
また、さらに、別の実施形態では、ジョブスケジューラ５は、処理時間テーブル５ｃに基づいて各ジョブが属するグループまたはサブグループを動的に変更する。
【００３７】
この場合には、同じジョブであっても、制御対象である機器の状況により処理時間が変動することがある。上述の構成によれば、そのような変動を各ジョブの処理時間を計測することにより把握し、その結果に基づいて各ジョブが属するグループを動的に変更することにより、システムが要求する基本的なリアルタイム性を保証することができるようになる。
【００３８】
具体的には、ジョブの処理時間に基づいてグループ間或いはサブグループ間での処理時間が均等になるように分割することにより負荷分散することができる。
【００３９】
尚、以上の説明において、各機器からの信号入力は、精度の高い入力処理以外は各ジョブの実行時にＩ／Ｏインタフェース３を介して入力され、各機器に対する制御信号は各ジョブの実行時にＩ／Ｏインタフェース３を介して出力される。
【００４０】
上述のジョブスケジューラは、機器を制御する複数のジョブに対して、各ジョブをメインループで呼び出して実行させるジョブスケジューラとしてコンピュータを機能させるジョブ制御プログラムであって、各ジョブをリアルタイム処理の必要度に応じて複数のグループに分割するとともにグループ毎に優先度を設定し、優先度の低いグループに属するジョブの一サイクル当りの呼び出し頻度を最小許容頻度に制限するように呼び出し制御するジョブ制御プログラムにより具現化することができる。
【００４１】
また、ジョブ制御プログラムは、グループ分割された各ジョブを複数のサブグループに分割し、一サイクル毎にサブグループ単位で交互にジョブを呼び出し制御するようにコンピュータを機能させることが好ましく、各ジョブの処理時間を計測し、その結果に基づいて各ジョブが属するグループを動的に変更するようにコンピュータを機能させることが好ましい。
【００４２】
以上の説明から明らかなように、本発明によれば、各ジョブの呼び出し実行時間総和に比較してＣＰＵの能力が高くない場合でも、要求される最小時間で各ジョブが効率的に実行されるのでリアルタイム性が確保できるようになる。
【図面の簡単な説明】
【００４３】
【図１】本発明によるジョブスケジューラが組み込まれたマイクロコンピュータの構成図
【図２】ジョブスケジューラにより呼び出されるジョブの実行手順を示すフローチャート
【図３】ジョブスケジューラにより呼び出されるジョブの実行手順を示すフローチャート
【符号の説明】
【００４４】
１：ＣＰＵ
２：タイマ割込み
３：Ｉ／Ｏインタフェース
４：ＲＡＭ
５：ジョブスケジューラ
６：ジョブ
７：ＲＯＭ
８：内部バス
Ｍ：マイクロコンピュータ
【図１】
2008234285.tif 000003
【図２】
2008234285.tif 000004
【図３】
2008234285.tif 000005