(57)【要約】【課題】他のＯＳから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる情報処理装置を提供する。【解決手段】情報処理装置の受信手段は、第１のＯＳから第２のＯＳへの指令を受信し、割当手段は、前記第２のＯＳのＣＰＵ使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる。【選択図】図１
2019046339.tif 000002
【特許請求の範囲】
【請求項１】
第１のＯＳから第２のＯＳへの指令を受信する受信手段と、
前記第２のＯＳのＣＰＵ使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段
を有する情報処理装置。
【請求項２】
前記割当手段は、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てる、
請求項１に記載の情報処理装置。
【請求項３】
前記第２のＯＳのＣＰＵ使用率で、前記指令に設けられている制限時間内に、該指令の処理が終了できる場合は、該指令を既に受信している指令の待ち行列に加える、
請求項１に記載の情報処理装置。
【請求項４】
ＣＰＵ使用率と該ＣＰＵ使用率で対応できる制限時間との関係を用いて、前記受信手段が受信した指令の制限時間内に、該指令の処理を終了できるか否かを判断する、
請求項１に記載の情報処理装置。
【請求項５】
前記関係を用いて、前記ＣＰＵ使用率に対応する制限時間を閾値として、前記受信手段が受信した指令の制限時間と該閾値とを比較することによって、該制限時間内に、該指令の処理を終了できるか否かを判断する、
請求項４に記載の情報処理装置。
【請求項６】
前記関係を用いて、前記制限時間に対応するＣＰＵ使用率を閾値として、前記第２のＯＳのＣＰＵ使用率と該閾値とを比較することによって、該制限時間内に、該指令の処理を終了できるか否かを判断する、
請求項４に記載の情報処理装置。
【請求項７】
前記関係は、過去の実績に応じて学習したものである、
請求項４に記載の情報処理装置。
【請求項８】
コンピュータを、
第１のＯＳから第２のＯＳへの指令を受信する受信手段と、
前記第２のＯＳのＣＰＵ使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、タスクがデッドラインを超過するか否かをできる限り早い段階で予測し、システム全体がシャットダウンすることを早めに回避することができる、車両制御装置を提供することを課題とし、車両制御装置は、タスクを構成するサブタスクの遅延度を求め、遅延度が閾値以上であれば当該タスクに代えてフェールセーフタスクを実行し、遅延度が閾値未満であれば当該タスクを継続することが開示されている。
【０００３】
特許文献２には、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約を軽減することを課題とし、プロセッサによってアプリケーションソフトウェアタスクが実行される場合において、アプリケーションソフトウェアタスクには予めチェックポイントが埋め込まれ、前記アプリケーションソフトウェアタスクの実行中に、前記チェックポイントを用いて、前記アプリケーションソフトウェアタスクの経過ポイントを問い合わせ、問い合わせた結果の現在の経過ポイントと経過ポイントに対応する経過予算から前記タスクの進捗状況を判断し、その判断結果に基づいて、タスクが利用する共有リソースを制御するとともに、新たな経過予算を設定し、これにより、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約が軽減されることが開示されている。
【０００４】
特許文献３には、シリアル通信専用デバイスによるシリアル通信と、ＣＰＵによるシリアル通信とを動的に選択して、常に速度の速いシリアル通信を可能とする通信装置を提供することを課題とし、接続された対象デバイスに対して、シリアル通信専用のデバイスを介してシリアル通信する手段と、ＣＰＵのデータ転送制御にしたがいシリアル通信する手段とを備えた通信装置であって、ＣＰＵ負荷を判断する判定基準を設けており、シリアルデータ転送の要求があったときには、該判定基準に基づいて、ＣＰＵ負荷が高いと判断したときはシリアル通信専用のデバイスでデータ転送させる一方、ＣＰＵ負荷が低いと判断したときはＣＰＵのデータ転送制御によりデータ転送させるデータ転送選択手段を有していることが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−０６６１３９号公報
【特許文献２】特開２００９−０２５９３９号公報
【特許文献３】特開２００６−３５０８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のＯＳ間で指令（以下、コマンドともいう）のやり取りを行う技術がある。この指令には、制限時間が対応している。つまり、その制限時間内に、指令の処理が終了しない場合は、エラーとして扱われることになる。
本発明は、他のＯＳから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、第１のＯＳから第２のＯＳへの指令を受信する受信手段と、前記第２のＯＳのＣＰＵ使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段を有する情報処理装置である。
【０００８】
請求項２の発明は、前記割当手段は、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てる、請求項１に記載の情報処理装置である。
【０００９】
請求項３の発明は、前記第２のＯＳのＣＰＵ使用率で、前記指令に設けられている制限時間内に、該指令の処理が終了できる場合は、該指令を既に受信している指令の待ち行列に加える、請求項１に記載の情報処理装置である。
【００１０】
請求項４の発明は、ＣＰＵ使用率と該ＣＰＵ使用率で対応できる制限時間との関係を用いて、前記受信手段が受信した指令の制限時間内に、該指令の処理を終了できるか否かを判断する、請求項１に記載の情報処理装置である。
【００１１】
請求項５の発明は、前記関係を用いて、前記ＣＰＵ使用率に対応する制限時間を閾値として、前記受信手段が受信した指令の制限時間と該閾値とを比較することによって、該制限時間内に、該指令の処理を終了できるか否かを判断する、請求項４に記載の情報処理装置である。
【００１２】
請求項６の発明は、前記関係を用いて、前記制限時間に対応するＣＰＵ使用率を閾値として、前記第２のＯＳのＣＰＵ使用率と該閾値とを比較することによって、該制限時間内に、該指令の処理を終了できるか否かを判断する、請求項４に記載の情報処理装置である。
【００１３】
請求項７の発明は、前記関係は、過去の実績に応じて学習したものである、請求項４に記載の情報処理装置である。
【００１４】
請求項８の発明は、コンピュータを、第１のＯＳから第２のＯＳへの指令を受信する受信手段と、前記第２のＯＳのＣＰＵ使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段として機能させるための情報処理プログラムである。
【発明の効果】
【００１５】
請求項１の情報処理装置によれば、他のＯＳから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる。
【００１６】
請求項２の情報処理装置によれば、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てることができる。
【００１７】
請求項３の情報処理装置によれば、指令の処理が制限時間内に終了できる場合は、その指令を既に受信している指令の待ち行列に加えることができる。
【００１８】
請求項４の情報処理装置によれば、ＣＰＵ使用率とそのＣＰＵ使用率で対応できる制限時間との関係を用いて、指令の処理を制限時間内に終了できるか否かを判断することができる。
【００１９】
請求項５の情報処理装置によれば、指令の制限時間とＣＰＵ使用率に対応する制限時間とを比較することによって、指令の処理を制限時間内に終了できるか否かを判断することができる。
【００２０】
請求項６の情報処理装置によれば、第２のＯＳのＣＰＵ使用率と制限時間に対応するＣＰＵ使用率とを比較することによって、指令の処理を制限時間内に終了できるか否かを判断することができる。
【００２１】
請求項７の情報処理装置によれば、関係を、過去の実績に応じて学習することができる。
【００２２】
請求項８の情報処理プログラムによれば、他のＯＳから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】従来のＯＳ間通信の処理例を示す説明図である。
【図４】従来のコマンド処理例で、正常終了する場合を示す説明図である。
【図５】従来のコマンド処理例で、制限時間に間に合わず異常終了する場合を示す説明図である。
【図６】本実施の形態による処理例を示すフローチャートである。
【図７】コマンド・制限時間対応テーブルのデータ構造例を示す説明図である。
【図８】制限時間・ＣＰＵ使用率閾値対応テーブルのデータ構造例を示す説明図である。
【図９】制限時間内に処理を完了させるためのＣＰＵ使用率の閾値例を示す説明図である。
【図１０】本実施の形態による処理例を示すフローチャートである。
【図１１】ＣＰＵ使用率・制限時間閾値対応テーブルのデータ構造例を示す説明図である。
【図１２】制限時間内に処理を完了させるためのＣＰＵ使用率の閾値例を示す説明図である。
【図１３】本実施の形態による処理例を示す説明図である。
【図１４】本実施の形態による処理例を示す説明図である。
【図１５】本実施の形態による処理例を示す説明図である。
【図１６】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係、ログイン等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。また、「Ａ、Ｂ、Ｃ」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その１つのみを選んでいる場合（例えば、Ａのみ）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２５】
本実施の形態である情報処理装置１００は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）間通信の処理を行うものであって、図１の例に示すように、ＯＳ（Ａ）１１０、ＯＳ（Ｂ）１２０を有している。
ＯＳ間通信を伴うコマンド処理のタイムアウトによりシステムエラーが生じる。そのためコマンド処理がタイムアウトになるのを避けるための技術が必要になる。
マルチプロセッサ構成によるＯＳ間通信を行う場合、パフォーマンスに影響する時間的制約が課題となる。
情報処理装置１００は、コマンド送受信（例えば、ＯＳ（Ａ）１１０からＯＳ（Ｂ）１２０へ、又は、ＯＳ（Ｂ）１２０からＯＳ（Ａ）１１０へ、等）が完了するまでの制限時間を各コマンドが超過しないように制御している。
【００２６】
ＯＳ（Ａ）１１０とＯＳ（Ｂ）１２０は、それぞれのＣＰＵ上で動作するＯＳである。例えば、ＯＳ（Ａ）１１０として、主にユーザーインタフェース関連の処理を担当させ、ＯＳ（Ｂ）１２０として、主にデバイスの制御を担当させるようにしてもよい。具体的には、ＯＳ（Ａ）１１０として、汎用ＯＳであるＬｉｎｕｘ（登録商標）等、ＯＳ（Ｂ）１２０として、組込みＯＳ（又は、リアルタイムＯＳ）であるｖｘＷｏｒｋｓ（登録商標）等を採用してもよい。
【００２７】
ＯＳ（Ａ）１１０は、通信モジュール１１５を有している。
通信モジュール１１５は、ＯＳ（Ｂ）１２０の通信モジュール１２５と接続されている。通信モジュール１１５は、ＯＳ（Ａ）１１０とＯＳ（Ｂ）１２０との間の通信を行う。通信モジュール１１５は、ＯＳ（Ａ）１１０からＯＳ（Ｂ）１２０への指令を送信する。例えば、ＯＳ（Ａ）１１０は、ユーザーインタフェースを介して、ユーザーの操作を受け付ける。その操作による指示にＯＳ（Ｂ）１２０が管理しているデバイスへの指令を含む場合は、通信モジュール１１５は、ＯＳ（Ａ）１１０からＯＳ（Ｂ）１２０への指令を送信する。具体的な例として、ユーザーからの印刷指示を受け付けた場合、プリンターへの指令がＯＳ（Ｂ）１２０に送信されることになる。また、逆に、通信モジュール１１５は、ＯＳ（Ｂ）１２０からＯＳ（Ａ）１１０に送信されてきた、その指令の処理結果等を受信する。
【００２８】
ＯＳ（Ｂ）１２０は、通信モジュール１２５、タスク割当処理モジュール１３０、処理結果取得モジュール１６０、ログ記憶モジュール１６５、学習モジュール１７０を有している。
通信モジュール１２５は、ＯＳ（Ａ）１１０の通信モジュール１１５と接続されている。通信モジュール１２５は、ＯＳ（Ｂ）１２０とＯＳ（Ａ）１１０との間の通信を行う。通信モジュール１２５は、ＯＳ（Ａ）１１０からＯＳ（Ｂ）１２０への指令を受信する。また、逆に、通信モジュール１２５は、ＯＳ（Ｂ）１２０からＯＳ（Ａ）１１０にその指令の処理結果等を送信する。
【００２９】
タスク割当処理モジュール１３０は、制限時間取得モジュール１３５、ＣＰＵ使用率取得モジュール１４０、判断モジュール１４５、タスク割当モジュール１５５を有している。
制限時間取得モジュール１３５は、通信モジュール１２５が受信した指令に設けられている制限時間を抽出する。ここでの制限時間とは、その指令の処理を終了させるまでの時間である。例えば、制限時間取得モジュール１３５は、後述する図７に示すコマンド・制限時間対応テーブル７００を用いて、指令に設けられている制限時間を抽出するようにしてもよい。
また、ＯＳ（Ａ）１１０から送信されてきた指令そのものに制限時間が付加されていてもよい。その場合、制限時間取得モジュール１３５は、指令に付加されている制限時間を抽出すればよい。
ＣＰＵ使用率取得モジュール１４０は、ＯＳ（Ｂ）１２０が動作しているＣＰＵの使用率を取得する。例えば、ＯＳ（Ｂ）１２０が用意しているタスクマネージャー等を用いて、現在のＣＰＵの使用率を取得すればよい。
【００３０】
判断モジュール１４５は、閾値記憶モジュール１５０を有しており、タスク割当モジュール１５５と接続されている。判断モジュール１４５は、ＣＰＵ使用率とそのＣＰＵ使用率で対応できる制限時間との関係を用いて、通信モジュール１２５が受信した指令の制限時間内に、その指令の処理を終了できるか否かを判断する。
「ＣＰＵ使用率とそのＣＰＵ使用率で対応できる制限時間との関係」として、具体的には、ＣＰＵ使用率と制限時間とを対応させた表（テーブル）、ＣＰＵ使用率と制限時間とを変数とした関係式等がある。
なお、「ＣＰＵ使用率とそのＣＰＵ使用率で対応できる制限時間との関係」の用い方に２通りある。
１つ目は、その関係（ＣＰＵ使用率とそのＣＰＵ使用率で対応できる制限時間との関係）を用いて、ＣＰＵ使用率に対応する制限時間を閾値として、通信モジュール１２５が受信した指令の制限時間とその閾値とを比較することによって、その制限時間内に、その指令の処理を終了できるか否かを判断するものである。
２つ目は、その関係（ＣＰＵ使用率とそのＣＰＵ使用率で対応できる制限時間との関係）を用いて、制限時間に対応するＣＰＵ使用率を閾値として、ＯＳ（Ｂ）１２０のＣＰＵ使用率とその閾値とを比較することによって、その制限時間内に、その指令の処理を終了できるか否かを判断するものである。
この関係は、ログ記憶モジュール１６５に記憶されている過去の実績に応じて、学習モジュール１７０が学習したものとしてもよい。
【００３１】
閾値記憶モジュール１５０は、学習モジュール１７０と接続されている。閾値記憶モジュール１５０は、判断モジュール１４５による判断処理で用いる閾値を記憶している。例えば、後述する図８に示す制限時間・ＣＰＵ使用率閾値対応テーブル８００、図１１に示すＣＰＵ使用率・制限時間閾値対応テーブル１１００を記憶している。
【００３２】
タスク割当モジュール１５５は、判断モジュール１４５と接続されている。タスク割当モジュール１５５は、ＯＳ（Ｂ）１２０のＣＰＵ使用率では、指令に設けられている制限時間内に、その指令の処理が終了できない場合は、予め定められた優先度のタスクに、その指令の処理を割り当てる。
また、タスク割当モジュール１５５は、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てるようにしてもよい。つまり、他のタスクよりも優先してデバイスを利用することができるようになる。また、タスクを割り当てる際に、デバイスが使用中である場合であっても、その使用（指令の処理）を中断して、割り当てられたタスクの処理を行うようにしてもよい。また、デバイスが処理の中断を許さない場合は、タスクを割り当てる際に、デバイスが使用中である場合は、その使用（指令の処理）が終了するのを待って、その直後に割り当てられたタスクの処理を行うようにしてもよい。
また、タスク割当モジュール１５５は、ＯＳ（Ｂ）１２０のＣＰＵ使用率で、指令に設けられている制限時間内に、その指令の処理が終了できる場合は、その指令を既に受信している指令の待ち行列に加えるようにしてもよい。つまり、通信モジュール１２５が受信した順序通りに指令の処理を行わせるものである。
【００３３】
処理結果取得モジュール１６０は、ログ記憶モジュール１６５と接続されている。処理結果取得モジュール１６０は、通信モジュール１２５が受信した指令の処理結果を取得する。処理結果として、例えば、処理が成功した（制限時間以内に終了した）こと、失敗したこと、失敗した場合のその原因、処理時間等がある。
ログ記憶モジュール１６５は、処理結果取得モジュール１６０、学習モジュール１７０と接続されている。ログ記憶モジュール１６５は、過去の実績を記憶している。ここで、「過去の実績」は、機械学習における教師データであり、具体的には、ＣＰＵ使用率と制限時間と結果（そのＣＰＵ使用率で制限時間以内に終了したか否かを示すデータ）である。
学習モジュール１７０は、タスク割当処理モジュール１３０内の判断モジュール１４５の閾値記憶モジュール１５０、ログ記憶モジュール１６５と接続されている。学習モジュール１７０は、ログ記憶モジュール１６５内の過去の実績を用いて機械学習を行う。機械学習として、既存の手法を用いればよい。例えば、ニューラルネットワーク、サポートベクターマシン、クラスタリング等を用いればよい。
【００３４】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
画像処理装置２００は、情報処理装置１００、プリンター２１０、スキャナー２２０、符号化・復号装置２３０、Ａ４ファックス２４０を有している。画像処理装置２００は、例えば、複写機、ファックス、スキャナー、プリンター、複合機（スキャナー、プリンター、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）等である。
情報処理装置１００は、ＯＳ（Ａ）１１０、ＯＳ（Ｂ）１２０を有している。情報処理装置１００は、画像処理装置２００全体を制御する。
ＯＳ（Ａ）１１０は、ＯＳ（Ｂ）１２０と接続されている。ＯＳ（Ｂ）１２０は、ＯＳ（Ａ）１１０、プリンター２１０、スキャナー２２０、符号化・復号装置２３０、Ａ４ファックス２４０と接続されている。ＯＳ（Ｂ）１２０は、プリンター２１０、スキャナー２２０、符号化・復号装置２３０、Ａ４ファックス２４０を制御する。プリンター２１０は、情報処理装置１００のＯＳ（Ｂ）１２０と接続されている。スキャナー２２０は、情報処理装置１００のＯＳ（Ｂ）１２０と接続されている。符号化・復号装置２３０は、情報処理装置１００のＯＳ（Ｂ）１２０と接続されている。Ａ４ファックス２４０は、情報処理装置１００のＯＳ（Ｂ）１２０と接続されている。
ＯＳ（Ａ）１１０は、ユーザーの操作を受け付け、その操作に対応する指令をＯＳ（Ｂ）１２０に送信する。ＯＳ（Ｂ）１２０は、その指令にしたがって、デバイスであるプリンター２１０等を制御して、その指令の処理を行う。そして、その処理結果をＯＳ（Ｂ）１２０からＯＳ（Ａ）１１０に送信し、ＯＳ（Ａ）１１０は、その処理結果をユーザーに提示する。
【００３５】
情報処理装置１００における処理例を示す。ただし、以下の説明（本段落番号内の説明）は、本実施の形態の理解を容易にすることを目的とするものであり、この説明を用いて限定解釈することは意図していない。そして、この説明部分のみを用いて、特許を受けようとする発明が発明の詳細な説明に記載したものであること（特許法第３６条第６項第１号）の判断を行うべきではないことは当然である。
情報処理装置１００は、コマンド制限時間に間に合わないと判断した場合には、高優先度のタスクでそのコマンドを処理することによってシステムエラーを回避するようにしている。
具体的には、通信モジュール１２５がコマンド処理タスクに振り分ける際、ＯＳ（Ｂ）１２０でのＣＰＵ使用率を問い合わせ、ＣＰＵ使用率とコマンドの制限時間の２つを判断材料にして、待ち行列による処理タスクでコマンド処理が制限時間内に終わるか否かを判断し、終わる場合はその待ち行列による処理タスクで、終わらない場合は非常用の高優先度タスクで処理し、制限時間に間に合わせるようにしている。
タスク切り替え判断は、閾値記憶モジュール１５０にＣＰＵ使用率とコマンド制限時間との関係を記憶しておき、高優先度タスクに切り替えるか否かを判断する。この関係はシステムが学習によって変動させ、最適化するようにしてもよい。
単なる待ち行列によって処理タスクを処理した場合においてはＣＰＵ使用率が高いとシステムエラーになっていた場合も、情報処理装置１００においてはコマンド制限時間に間に合わないと判断された場合、高優先度タスクに切り替えて処理させることで、システムエラーを回避することができる。
ＯＳ（Ａ）１１０から受信したコマンドの処理を、予め設定されたタスクで実行するパス、非常用の高優先度タスクで実行するパスのどちらを使用して実行するかを、ＣＰＵ使用率とコマンド制限時間の２つから判断して切り替えるようにしている。これによって、予め設定されたタスクでの処理ではコマンド制限時間に間に合わずシステムエラーになってしまうような処理でも、システムエラーにならずに処理を完了させることができるようになる。つまり、システムエラーとなる可能性が低くなることで、画像処理装置２００全体の品質の向上が見込まれる。
【００３６】
図３は、従来のＯＳ間通信の処理例を示す説明図である。
ＯＳ（Ｃ）３８０は、ＯＳ（Ｄ）３９０と接続されており、ユーザーの操作に応じた指令をＯＳ（Ｄ）３９０に送信する。
ＯＳ（Ｄ）３９０は、ＯＳ（Ｃ）３８０と接続されており、その指令にしたがって、タスクであるプリンターメインタスク３１０、スキャナーメインタスク３２０、符号化・復号処理メインタスク３３０、Ａ４ファックスメインタスク３４０等を生成する。各タスクは、デバイスドライバを制御する。プリンターメインタスク３１０はプリンター２１０を制御し、スキャナーメインタスク３２０はスキャナー２２０を制御し、符号化・復号処理メインタスク３３０は符号化・復号装置２３０を制御し、Ａ４ファックスメインタスク３４０はＡ４ファックス２４０を制御する。
各タスクは、ＯＳ（Ｃ）３８０とＯＳ（Ｄ）３９０とのＯＳ間通信の初期化時に決められた優先度で生成される。
【００３７】
例えば、以下に示すような処理を行う。
コピー、プリント等のサービスは、ＯＳ（Ｃ）３８０（例えば、Ｌｉｎｕｘ）からＯＳ（Ｄ）３９０（例えば、ｖｘＷｏｒｋｓ）にＯＳ間通信でコマンドを送信し、ＯＳ（Ｄ）３９０のデバイスドライバが各デバイスを制御して処理し、処理結果をＯＳ（Ｄ）３９０からＯＳ（Ｃ）３８０にＯＳ間通信で送信することで実現している。
このコマンド処理には制限時間が設けられており、制限時間を超過するとシステムエラーとなってしまう。
従来のＯＳ間通信構成では、コマンド毎にタスクが割り振られており、ＯＳ（Ｄ）３９０はコマンドを受信すると、事前に割り振られたタスクで処理を実行する。
例えばコマンドを４つ受信したとき、ＣＰＵ使用率が低い場合は制限時間内にコマンド処理を完了させることができるが、ＣＰＵ使用率が高い場合は制限時間内にコマンド処理を完了できず、システムエラーとなってしまう場合がある。
情報処理装置１００は、コマンド制限時間超過によるシステムエラーを回避するようにしている。これによって、情報処理装置１００を具備する画像処理装置２００等の製品品質向上を図る。
【００３８】
図４は、従来のコマンド処理例で、正常終了する場合を示す説明図である。
ＯＳ（Ｄ）３９０は、図４（ａ）の例に示すように、コマンド１：４１０、コマンド２：４２０、コマンド３：４３０、コマンド４：４４０の順序でＯＳ（Ｃ）３８０からのコマンドを受信したとする。これを、待ち行列として実現している。
【００３９】
図４（ｂ）の例は、各コマンドに対応するタスクのタイムチャートを示している。つまり、左端を０時間（コマンド１：４１０を受信した時間）とし、右側への移行で時間の経過を示している時間軸上で、各コマンドの処理の時間（処理を待機している時間、処理が開始された時間、終了した時間）を示している。そして、各コマンドの制限時間を示している。コマンド４制限時間４９０が短く、それよりも長いコマンド１／２／３制限時間４８０がある。
例えば、図４（ｂ）に示すように、ＣＰＵ使用率が１０％である場合（ＣＰＵに余裕がある場合の例）は、コマンド１：４１０に対応してコマンド実行時間４１５（待機時間がないのは、コマンド１：４１０の受信後のすぐに処理を開始しているからである）があり、コマンド２：４２０に対応してコマンド実行待機時間４２３、コマンド実行時間４２５があり、コマンド３：４３０に対応してコマンド実行待機時間４３３、コマンド実行時間４３５があり、コマンド４：４４０に対応してコマンド実行待機時間４４３、コマンド実行時間４４５がある。なお、コマンド実行待機時間４２３の終了（コマンド実行時間４２５の開始）は、コマンド実行時間４１５の終了に対応している。つまり、コマンド１：４１０の処理が終了し、タスクの切り替わりによって、次のコマンド２：４２０の処理が開始されるからである。
ＣＰＵ使用率が１０％であるので、全てのコマンドの処理がコマンド４制限時間４９０内に終了している。したがって、タイムアウトによりシステムエラーは生じていない。
【００４０】
また、図４（ｃ）の例に示すように、ＯＳ（Ｄ）３９０からＯＳ（Ｃ）３８０へのコマンドの処理結果の応答順も、コマンド１：４１７、コマンド２：４２７、コマンド３：４３７、コマンド４：４４７の順序であり、図４（ａ）の例に示したコマンドの受信順と同じである。
【００４１】
図５は、従来のコマンド処理例で、制限時間に間に合わず異常終了する場合を示す説明図である。
ＯＳ（Ｄ）３９０は、図５（ａ）の例に示すように、コマンド１：４１０、コマンド２：４２０、コマンド３：４３０、コマンド４：４４０の順序でＯＳ（Ｃ）３８０からのコマンドを受信したとする。
【００４２】
例えば、図５（ｂ）に示すように、ＣＰＵ使用率が９０％である場合（ＣＰＵに余裕がない場合の例）は、コマンド１：４１０に対応してコマンド実行時間５１５があり、コマンド２：４２０に対応してコマンド実行待機時間５２３、コマンド実行時間５２５があり、コマンド３：４３０に対応してコマンド実行待機時間５３３、コマンド実行時間５３５があり、コマンド４：４４０に対応してコマンド実行待機時間５４３、コマンド実行時間５４５がある。
ＣＰＵ使用率が９０％の場合のコマンド実行時間５１５は、図４の例に示したＣＰＵ使用率が１０％の場合のコマンド実行時間４１５と比較して、差分時間５１０だけ長くなっている。
そのため、その後のコマンド２：４２０、コマンド３：４３０、コマンド４：４４０においても、コマンド実行待機時間５２３、コマンド実行待機時間５３３、コマンド実行待機時間５４３は、コマンド実行待機時間４２３、コマンド実行待機時間４３３、コマンド実行待機時間４４３よりも長くなり、コマンド実行時間５２５、コマンド実行時間５３５、コマンド実行時間５４５は、コマンド実行時間４２５、コマンド実行時間４３５、コマンド実行時間４４５よりも長くなっている。
したがって、コマンド１：４１０、コマンド２：４２０、コマンド３：４３０はコマンド１／２／３制限時間４８０前に終了するが、コマンド４：４４０はコマンド４制限時間４９０前に終了することができなくなってしまう。つまり、ＣＰＵ使用率が９０％であるので、各処理は、図４（ｂ）の例に示した処理よりも長い時間がかかっており、コマンド実行時間５４５で、コマンド４制限時間４９０を過ぎてしまうので、タイムアウトによりシステムエラーが生じてしまう。
【００４３】
あるコマンド（図５の例では、コマンド１：４１０、コマンド２：４２０、コマンド３：４３０）が処理を握ってしまい、他のコマンド（図５の例では、コマンド４：４４０）が制限時間内に処理を完了できずにタイムアウトしてしまう。
制限時間が短いコマンドを優先的に処理させ、タイムアウトが起こらないようにすべきである。なお、前提として、ＣＰＵの使用率が高いため、コマンド処理に時間がかかっている。
図５の例では、制限時間をオーバーしているため、コマンド４：４４０の処理はエラーとなり、システムエラーと判断される。
【００４４】
図６は、本実施の形態による処理例を示すフローチャートである。
ステップＳ６０２では、通信モジュール１２５は、コマンドを受信する。
ステップＳ６０４では、制限時間取得モジュール１３５は、制限時間を取得する。制限時間取得モジュール１３５は、例えば、コマンド・制限時間対応テーブル７００を用いて、ステップＳ６０２で受信したコマンドに対応する制限時間を取得してもよい。図７は、コマンド・制限時間対応テーブル７００のデータ構造例を示す説明図である。コマンド・制限時間対応テーブル７００は、コマンド欄７１０、制限時間欄７２０を有している。コマンド欄７１０は、コマンド（指令）を記憶している。制限時間欄７２０は、そのコマンドに対応する制限時間を記憶している。
制限時間の取得方法として、ステップＳ６０２で受信したコマンドに付随してきた制限時間を取得してもよい。この場合は、ＯＳ（Ａ）１１０が制限時間を指定してきた場合である。
【００４５】
ステップＳ６０６では、ＣＰＵ使用率取得モジュール１４０は、ＯＳ（Ｂ）１２０の現在のＣＰＵ使用率を取得する。
ステップＳ６０８では、判断モジュール１４５は、その制限時間におけるＣＰＵ使用率の閾値を取得する。判断モジュール１４５は、例えば、制限時間・ＣＰＵ使用率閾値対応テーブル８００を用いて、ＣＰＵ使用率の閾値を取得してもよい。図８は、制限時間・ＣＰＵ使用率閾値対応テーブル８００のデータ構造例を示す説明図である。制限時間・ＣＰＵ使用率閾値対応テーブル８００は、制限時間欄８１０、ＣＰＵ使用率閾値欄８２０を有している。制限時間欄８１０は、制限時間を記憶している。ＣＰＵ使用率閾値欄８２０は、その制限時間におけるＣＰＵ使用率の閾値を記憶している。ＣＰＵ使用率がこの閾値以下であるならば、制限時間以内に完了すると判断することになる。
【００４６】
ステップＳ６１０では、判断モジュール１４５は、「ＣＰＵ使用率＞閾値」であるか否かを判断し、「ＣＰＵ使用率＞閾値」の場合はステップＳ６１２へ進み、それ以外の場合はステップＳ６１４へ進む。
ステップＳ６１２では、タスク割当モジュール１５５は、受信したコマンドを優先タスクに割り当てる。ここで優先タスクとして、後述する図１３の例に示す非常用タスク１３１０が該当する。
ステップＳ６１４では、タスク割当モジュール１５５は、受信したコマンドを通常のタスクに割り当てる。
【００４７】
図９は、制限時間内に処理を完了させるためのＣＰＵ使用率の閾値例を示す説明図である。
図９の例に示すグラフは、横軸に制限時間、縦軸にＣＰＵ使用率をとり、ＣＰＵ使用率閾値９５０を引いたものである。ＣＰＵ使用率閾値９５０は、制限時間内に処理を完了させるためのＣＰＵ使用率閾値である。つまり、制限時間・ＣＰＵ使用率閾値対応テーブル８００をグラフ化したものである。なお、図９の例では、ＣＰＵ使用率閾値９５０は直線になっているが、曲線、学習モジュール１７０の機械学習によって示される判断基準であってもよい。例えば、このグラフのＣＰＵ使用率閾値９５０は、コマンド処理時のＣＰＵ使用率と制限時間の関係を機械学習によって、学習モジュール１７０が算出し、最適化している。
図９の例に示すグラフでは、ＣＰＵ使用率低領域９１０ではコマンド１：９１１、コマンド４：９１４のようにプロットされ、ＣＰＵ使用率高領域９９０ではコマンド１：９９１、コマンド４：９９４のようにプロットされる。ＣＰＵ使用率閾値９５０より下にあるコマンド１：９１１、コマンド４：９１４、コマンド１：９９１は、制限時間以内に処理が終了すると判断され、ＣＰＵ使用率閾値９５０より上にあるコマンド４：９９４は、制限時間以内には処理は終了しないと判断される。つまり、ＣＰＵ使用率が高いとコマンド４は、従来タスクでの処理では制限時間に間に合わない。ＣＰＵ使用率が低いと従来のタスク処理で制限時間に間に合うことになる。
情報処理装置１００は、コマンドの制限時間に対し、ＣＰＵ使用率がＣＰＵ使用率閾値よりも上である場合、高優先度タスクで制限時間内に処理を完了させるようにしている。
【００４８】
図１０は、本実施の形態による処理例を示すフローチャートである。図６の例に示したフローチャートとは異なる例を示している。
ステップＳ１００２では、通信モジュール１２５は、コマンドを受信する。
ステップＳ１００４では、制限時間取得モジュール１３５は、制限時間を取得する。
ステップＳ１００６では、ＣＰＵ使用率取得モジュール１４０は、ＯＳ（Ｂ）１２０の現在のＣＰＵ使用率を取得する。ステップＳ１００２からステップＳ１００６までの処理は、図６の例に示したフローチャートのステップＳ６０２からステップＳ６０６までの処理と同等である。
【００４９】
ステップＳ１００８では、そのＣＰＵ使用率における制限時間の閾値を取得する。判断モジュール１４５は、例えば、ＣＰＵ使用率・制限時間閾値対応テーブル１１００を用いて、制限時間の閾値を取得してもよい。図１１は、ＣＰＵ使用率・制限時間閾値対応テーブル１１００のデータ構造例を示す説明図である。ＣＰＵ使用率・制限時間閾値対応テーブル１１００は、ＣＰＵ使用率欄１１１０、制限時間閾値欄１１２０を有している。ＣＰＵ使用率欄１１１０は、ＣＰＵ使用率を記憶している。制限時間閾値欄１１２０は、そのＣＰＵ使用率における制限時間の閾値を記憶している。制限時間がこの閾値以下であるならば、制限時間以内に完了すると判断することになる。
【００５０】
ステップＳ１０１０では、判断モジュール１４５は、「制限時間＞閾値」であるか否かを判断し、「制限時間＞閾値」の場合はステップＳ１０１２へ進み、それ以外の場合はステップＳ１０１４へ進む。
ステップＳ１０１２では、タスク割当モジュール１５５は、受信したコマンドを優先タスクに割り当てる。ここで優先タスクとして、後述する図１３の例に示す非常用タスク１３１０が該当する。
ステップＳ１０１４では、タスク割当モジュール１５５は、受信したコマンドを通常のタスクに割り当てる。
【００５１】
図１２は、制限時間内に処理を完了させるためのＣＰＵ使用率の閾値例を示す説明図である。
図１２の例に示すグラフは、横軸にＣＰＵ使用率、縦軸に制限時間をとり、制限時間閾値１２５０を引いたものである。制限時間閾値１２５０は、ＣＰＵ使用率において処理できる制限時間の閾値である。つまり、ＣＰＵ使用率・制限時間閾値対応テーブル１１００をグラフ化したものである。なお、図１２の例では、制限時間閾値１２５０は直線になっているが、曲線、学習モジュール１７０の機械学習によって示される判断基準であってもよい。例えば、このグラフの制限時間閾値１２５０は、コマンド処理時のＣＰＵ使用率と制限時間の関係を機械学習によって、学習モジュール１７０が算出し、最適化している。
図１２の例に示すグラフでは、ＣＰＵ使用率低領域１２１０ではコマンド１：１２１１、コマンド４：１２１４のようにプロットされ、ＣＰＵ使用率高領域１２９０ではコマンド１：１２９１、コマンド４：１２９４のようにプロットされる。制限時間閾値１２５０より下にあるコマンド１：１２１１、コマンド４：１２１４、コマンド１：１２９１は、制限時間以内に処理が終了すると判断され、制限時間閾値１２５０より上にあるコマンド４：１２９４は、制限時間以内には処理は終了しないと判断される。つまり、ＣＰＵ使用率が高いとコマンド４は、従来タスクでの処理では制限時間に間に合わない。ＣＰＵ使用率が低いと従来のタスク処理で制限時間に間に合うことになる。
情報処理装置１００は、現在のＣＰＵ使用率において、コマンドの制限時間が制限時間閾値よりも上である場合、高優先度タスクで制限時間内に処理を完了させるようにしている。
【００５２】
図１３は、本実施の形態による処理例を示す説明図である。
この例では、従来のコマンド処理用のいずれのタスクよりも優先度を高く設定した非常用タスク１３１０を生成しておく。
ステップＳ１３０２では、ＯＳ（Ｂ）１２０は、ＯＳ（Ａ）１１０から「プリンターコマンド１」を受信する。
ステップＳ１３０４では、ＣＰＵ使用率（負荷）をＣＰＵ使用率計測モジュール１３４０に問い合わせる。
ステップＳ１３０６では、プリンターコマンド１の制限時間に間に合うため、タスクであるプリンターメインタスク３１０Ａにコマンドを渡し、コマンドを実行する。
ステップＳ１３０８では、プリンターメインタスク３１０Ａはプリンター２１０を制御して、「プリンターコマンド１」の処理を行わせる。
【００５３】
ステップＳ１３１０では、ＯＳ（Ｂ）１２０は、ＯＳ（Ａ）１１０から「プリンターコマンド１」の処理中に、制限時間の短い「プリンターコマンド２」を受信する。
ステップＳ１３１２では、ＣＰＵ使用率（負荷）をＣＰＵ使用率計測モジュール１３４０に問い合わせる。
ステップＳ１３１４では、ＣＰＵ負荷が高く、通常経路では制限時間に間に合わないため、非常用タスク１３１０にコマンドを渡し、コマンド（プリンターコマンド２）を実行する。プリンターコマンド１を中断する。なお、１つのプリンター２１０であるが、プリンターコマンド１とプリンターコマンド２の排出先が異なっていれば、プリンターコマンド１を中断してプリンターコマンド２を実行しても問題（印刷用紙が混ざり合うこと）はない。
ステップＳ１３１６では、非常用タスク１３１０はプリンター２１０を制御して、「プリンターコマンド２」の処理を行わせる。
【００５４】
ステップＳ１３１８では、非常用タスク１３１０は、「プリンターコマンド２」の処理結果をプリンター２１０から受け取る。
ステップＳ１３２０では、「プリンターコマンド２」の処理完了後、高優先度用通信路経由でＯＳ（Ｂ）１２０にＲｅｔコマンド（処理完了通知）を渡す。
ステップＳ１３２２では、ＯＳ（Ｂ）１２０は、ＯＳ（Ａ）１１０へ「プリンター応答２」（プリンターコマンド２の処理完了通知）を送信する。
【００５５】
ステップＳ１３２４では、プリンターメインタスク３１０Ｂは、「プリンターコマンド１」の処理結果をプリンター２１０から受け取る。
ステップＳ１３２６では、「プリンターコマンド１」の処理完了後、プリンターメインタスク３１０ＢからＯＳ（Ｂ）１２０にＲｅｔコマンド（処理完了通知）を渡す。
ステップＳ１３２８では、ＯＳ（Ｂ）１２０は、ＯＳ（Ａ）１１０へ「プリンター応答１」を送信する。
【００５６】
図１４は、本実施の形態による処理例を示す説明図である。図６の例に示したステップＳ６１４又は図１０の例に示したステップＳ１０１４の処理を行った場合の例を示すものである。
ＯＳ（Ｂ）１２０は、図１４（ａ）の例に示すように、コマンド１：１４１０、コマンド２：１４２０、コマンド３：１４３０、コマンド４：１４４０の順序でＯＳ（Ａ）１１０からのコマンドを受信したとする。そして、ＣＰＵ使用率が低い場合であるので、図４に示した例と同様に、全てのコマンドが制限時間内に終了している。
したがって、図１４（ｃ）の例に示すように、ＯＳ（Ｂ）１２０からＯＳ（Ａ）１１０へのコマンドの処理結果の応答順も、コマンド１：１４１７、コマンド２：１４２７、コマンド３：１４３７、コマンド４：１４４７の順序であり、図１４（ａ）の例に示したコマンドの受信順と同じである。
【００５７】
図１５は、本実施の形態による処理例を示す説明図である。この例は、ＣＰＵ使用率が高い場合であって、コマンド処理タスクを切り替える処理が発生する場合を示している。
ＯＳ（Ｂ）１２０は、図１５（ａ）の例に示すように、コマンド１：１４１０、コマンド２：１４２０、コマンド３：１４３０、コマンド４：１４４０の順序でＯＳ（Ａ）１１０からのコマンドを受信したとする。
そして、ＣＰＵ使用率の状態（ＣＰＵ使用率が高い場合）から、従来のタスクでは時間内に処理を完了できないため、高優先度のタスク（図１３の例に示した非常用タスク１３１０）で処理を実行する。
例えば、図１５（ｂ）に示すように、ＣＰＵ使用率が９０％である場合（ＣＰＵに余裕がない場合の例）は、コマンド１：１４１０に対応してコマンド実行時間１５１５ａがあり、その処理中にコマンド４：１４４０を受信し、制限時間内に終了しないと判断されたので、コマンド４：１４４０を非常用タスク１３１０に割り当て、コマンド１：１４１０の処理を中断して、コマンド４：１４４０に対応するコマンド実行時間１５４５があり、その終了後に、中断していたコマンド１：１４１０の処理を再開する。つまり、コマンド実行時間１５１５ａの後、コマンド実行中断時間１５１６が発生し、コマンド実行時間１５１５ｂで再開している。もちろんのことながら、コマンド４：１４４０のコマンド実行時間１５４５の終了時はコマンド４制限時間１４９０よりも前になる。なお、コマンド３：１４３０のコマンド実行時間１５３５は、コマンド４：１４４０の処理が優先されたので、遅くなっているが、コマンド１／２／３制限時間１４８０よりも前であるので、システムエラーは発生しない。
【００５８】
図１６を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図１６に示す構成は、例えばパーソナルコンピュータ（ＰＣ）等によって構成されるものであり、スキャナー等のデータ読み取り部１６１７と、プリンター等のデータ出力部１６１８を備えたハードウェア構成例を示している。
【００５９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１６０１は、前述の実施の形態において説明した各種のモジュール、すなわち、ＯＳ（Ａ）１１０、通信モジュール１１５、ＯＳ（Ｂ）１２０、通信モジュール１２５、タスク割当処理モジュール１３０、制限時間取得モジュール１３５、ＣＰＵ使用率取得モジュール１４０、判断モジュール１４５、閾値記憶モジュール１５０、タスク割当モジュール１５５、処理結果取得モジュール１６０、学習モジュール１７０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００６０】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１６０２は、ＣＰＵ１６０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６０３は、ＣＰＵ１６０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバス等から構成されるホストバス１６０４により相互に接続されている。
【００６１】
ホストバス１６０４は、ブリッジ１６０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バス等の外部バス１６０６に接続されている。
【００６２】
キーボード１６０８、マウス等のポインティングデバイス１６０９は、操作者により操作されるデバイスである。ディスプレイ１６１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス１６０９とディスプレイ１６１０の両方の機能を備えているタッチスクリーン等であってもよい。その場合、キーボードの機能の実現について、キーボード１６０８のように物理的に接続しなくても、画面（タッチスクリーン）上にソフトウェアでキーボード（いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる）を描画して、キーボードの機能を実現するようにしてもよい。
【００６３】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１６１１は、ハードディスク（フラッシュ・メモリ等であってもよい）を内蔵し、ハードディスクを駆動し、ＣＰＵ１６０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、ログ記憶モジュール１６５、等としての機能を実現させる。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
【００６４】
ドライブ１６１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１６１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１６０７、外部バス１６０６、ブリッジ１６０５、及びホストバス１６０４を介して接続されているＲＡＭ１６０３に供給する。なお、リムーバブル記録媒体１６１３も、データ記録領域として利用可能である。
【００６５】
接続ポート１６１４は、外部接続機器１６１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１６１４は、インタフェース１６０７、及び外部バス１６０６、ブリッジ１６０５、ホストバス１６０４等を介してＣＰＵ１６０１等に接続されている。通信部１６１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１６１７は、例えばスキャナーであり、ドキュメントの読み取り処理を実行する。データ出力部１６１８は、例えばプリンターであり、ドキュメントデータの出力処理を実行する。
【００６６】
なお、図１６に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１６に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図１６に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナー、プリンター、複合機などに組み込まれていてもよい。
【００６７】
また、前述の実施の形態の説明内での比較処理において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００６８】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００６９】
１００…情報処理装置
１１０…ＯＳ（Ａ）
１１５…通信モジュール
１２０…ＯＳ（Ｂ）
１２５…通信モジュール
１３０…タスク割当処理モジュール
１３５…制限時間取得モジュール
１４０…ＣＰＵ使用率取得モジュール
１４５…判断モジュール
１５０…閾値記憶モジュール
１５５…タスク割当モジュール
１６０…処理結果取得モジュール
１６５…ログ記憶モジュール
１７０…学習モジュール
２００…画像処理装置
２１０…プリンター
２２０…スキャナー
２３０…符号化・復号装置
２４０…Ａ４ファックス
【図１】
2019046339.tif 000003
【図２】
2019046339.tif 000004
【図３】
2019046339.tif 000005
【図４】
2019046339.tif 000006
【図５】
2019046339.tif 000007
【図６】
2019046339.tif 000008
【図７】
2019046339.tif 000009
【図８】
2019046339.tif 000010
【図９】
2019046339.tif 000011
【図１０】
2019046339.tif 000012
【図１１】
2019046339.tif 000013
【図１２】
2019046339.tif 000014
【図１３】
2019046339.tif 000015
【図１４】
2019046339.tif 000016
【図１５】
2019046339.tif 000017
【図１６】
2019046339.tif 000018