JP2019046339A - Information processing device and information processing program - Google Patents
Information processing device and information processing program Download PDFInfo
- Publication number
- JP2019046339A JP2019046339A JP2017170847A JP2017170847A JP2019046339A JP 2019046339 A JP2019046339 A JP 2019046339A JP 2017170847 A JP2017170847 A JP 2017170847A JP 2017170847 A JP2017170847 A JP 2017170847A JP 2019046339 A JP2019046339 A JP 2019046339A
- Authority
- JP
- Japan
- Prior art keywords
- command
- time limit
- usage rate
- cpu usage
- task
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 41
- 238000004891 communication Methods 0.000 description 59
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、情報処理装置及び情報処理プログラムに関する。 The present invention relates to an information processing apparatus and an information processing program.
特許文献1には、タスクがデッドラインを超過するか否かをできる限り早い段階で予測し、システム全体がシャットダウンすることを早めに回避することができる、車両制御装置を提供することを課題とし、車両制御装置は、タスクを構成するサブタスクの遅延度を求め、遅延度が閾値以上であれば当該タスクに代えてフェールセーフタスクを実行し、遅延度が閾値未満であれば当該タスクを継続することが開示されている。
It is an object of
特許文献2には、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約を軽減することを課題とし、プロセッサによってアプリケーションソフトウェアタスクが実行される場合において、アプリケーションソフトウェアタスクには予めチェックポイントが埋め込まれ、前記アプリケーションソフトウェアタスクの実行中に、前記チェックポイントを用いて、前記アプリケーションソフトウェアタスクの経過ポイントを問い合わせ、問い合わせた結果の現在の経過ポイントと経過ポイントに対応する経過予算から前記タスクの進捗状況を判断し、その判断結果に基づいて、タスクが利用する共有リソースを制御するとともに、新たな経過予算を設定し、これにより、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約が軽減されることが開示されている。
In
特許文献3には、シリアル通信専用デバイスによるシリアル通信と、CPUによるシリアル通信とを動的に選択して、常に速度の速いシリアル通信を可能とする通信装置を提供することを課題とし、接続された対象デバイスに対して、シリアル通信専用のデバイスを介してシリアル通信する手段と、CPUのデータ転送制御にしたがいシリアル通信する手段とを備えた通信装置であって、CPU負荷を判断する判定基準を設けており、シリアルデータ転送の要求があったときには、該判定基準に基づいて、CPU負荷が高いと判断したときはシリアル通信専用のデバイスでデータ転送させる一方、CPU負荷が低いと判断したときはCPUのデータ転送制御によりデータ転送させるデータ転送選択手段を有していることが開示されている。
複数のOS間で指令(以下、コマンドともいう)のやり取りを行う技術がある。この指令には、制限時間が対応している。つまり、その制限時間内に、指令の処理が終了しない場合は、エラーとして扱われることになる。
本発明は、他のOSから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
There is a technique for exchanging commands (hereinafter also referred to as commands) between a plurality of OSs. This command corresponds to a time limit. That is, if the processing of the command does not end within the time limit, it is treated as an error.
The present invention does not assign the processing of the command to a task having a predetermined priority when the processing of the command cannot be completed within the time limit provided for the command received from another OS. It is an object of the present invention to provide an information processing apparatus and an information processing program capable of reducing the number of cases that are handled as errors compared to the case.
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、第1のOSから第2のOSへの指令を受信する受信手段と、前記第2のOSのCPU使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段を有する情報処理装置である。
The gist of the present invention for achieving the object lies in the inventions of the following items.
According to the first aspect of the present invention, the receiving means for receiving a command from the first OS to the second OS, and the CPU usage rate of the second OS, the time limit provided in the command is within the time limit. When the command processing cannot be completed, the information processing apparatus includes an assigning unit that allocates the command processing to a task having a predetermined priority.
請求項2の発明は、前記割当手段は、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てる、請求項1に記載の情報処理装置である。 According to a second aspect of the present invention, in the first aspect of the present invention, the assigning unit assigns a task to be performed with priority over a task for processing a command that has already been received as a task having a predetermined priority. Information processing apparatus.
請求項3の発明は、前記第2のOSのCPU使用率で、前記指令に設けられている制限時間内に、該指令の処理が終了できる場合は、該指令を既に受信している指令の待ち行列に加える、請求項1に記載の情報処理装置である。
According to the third aspect of the present invention, if the processing of the command can be completed within the time limit provided in the command at the CPU usage rate of the second OS, the command already received The information processing apparatus according to
請求項4の発明は、CPU使用率と該CPU使用率で対応できる制限時間との関係を用いて、前記受信手段が受信した指令の制限時間内に、該指令の処理を終了できるか否かを判断する、請求項1に記載の情報処理装置である。
The invention of
請求項5の発明は、前記関係を用いて、前記CPU使用率に対応する制限時間を閾値として、前記受信手段が受信した指令の制限時間と該閾値とを比較することによって、該制限時間内に、該指令の処理を終了できるか否かを判断する、請求項4に記載の情報処理装置である。
The invention according to claim 5 uses the relation to compare the time limit of the command received by the receiving means with the threshold value by using the time limit corresponding to the CPU usage rate as a threshold value. The information processing apparatus according to
請求項6の発明は、前記関係を用いて、前記制限時間に対応するCPU使用率を閾値として、前記第2のOSのCPU使用率と該閾値とを比較することによって、該制限時間内に、該指令の処理を終了できるか否かを判断する、請求項4に記載の情報処理装置である。
The invention according to claim 6 uses the relation to compare the CPU usage rate of the second OS with the threshold value by using the CPU usage rate corresponding to the time limit as a threshold value. The information processing apparatus according to
請求項7の発明は、前記関係は、過去の実績に応じて学習したものである、請求項4に記載の情報処理装置である。
The invention according to claim 7 is the information processing apparatus according to
請求項8の発明は、コンピュータを、第1のOSから第2のOSへの指令を受信する受信手段と、前記第2のOSのCPU使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段として機能させるための情報処理プログラムである。 In the invention of claim 8, the computer receives the command from the first OS to the second OS, and the CPU usage rate of the second OS is within the time limit provided in the command. In addition, when the processing of the command cannot be completed, the information processing program is made to function as an assigning unit that allocates the processing of the command to a task having a predetermined priority.
請求項1の情報処理装置によれば、他のOSから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる。 According to the information processing apparatus of the first aspect, when the processing of the command cannot be completed within the time limit provided for the command received from another OS, the command of the command is assigned to a task having a predetermined priority. Compared with a case where processing is not assigned, it is possible to reduce the handling of errors.
請求項2の情報処理装置によれば、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てることができる。 According to the information processing apparatus of the second aspect, it is possible to assign a task to be performed with higher priority than a task for processing a command that has already been received as a task having a predetermined priority.
請求項3の情報処理装置によれば、指令の処理が制限時間内に終了できる場合は、その指令を既に受信している指令の待ち行列に加えることができる。 According to the information processing apparatus of the third aspect, when the command processing can be completed within the time limit, the command can be added to the queue of commands that have already been received.
請求項4の情報処理装置によれば、CPU使用率とそのCPU使用率で対応できる制限時間との関係を用いて、指令の処理を制限時間内に終了できるか否かを判断することができる。 According to the information processing apparatus of the fourth aspect, it is possible to determine whether or not the command processing can be completed within the time limit using the relationship between the CPU usage rate and the time limit that can be handled by the CPU usage rate. .
請求項5の情報処理装置によれば、指令の制限時間とCPU使用率に対応する制限時間とを比較することによって、指令の処理を制限時間内に終了できるか否かを判断することができる。 According to the information processing apparatus of the fifth aspect, it is possible to determine whether or not the command processing can be completed within the time limit by comparing the command time limit and the time limit corresponding to the CPU usage rate. .
請求項6の情報処理装置によれば、第2のOSのCPU使用率と制限時間に対応するCPU使用率とを比較することによって、指令の処理を制限時間内に終了できるか否かを判断することができる。 According to the information processing apparatus of the sixth aspect, by comparing the CPU usage rate of the second OS with the CPU usage rate corresponding to the time limit, it is determined whether or not the command processing can be completed within the time limit. can do.
請求項7の情報処理装置によれば、関係を、過去の実績に応じて学習することができる。 According to the information processing apparatus of the seventh aspect, the relationship can be learned according to the past results.
請求項8の情報処理プログラムによれば、他のOSから受信した指令に設けられている制限時間内に、その指令の処理が終了できない場合に、予め定められた優先度のタスクにその指令の処理を割り当てることを行わない場合に比べて、エラーとして扱われることを減少させることができる。 According to the information processing program of claim 8, when the processing of the command cannot be completed within the time limit provided for the command received from another OS, the command of the command is assigned to a task having a predetermined priority. Compared with a case where processing is not assigned, it is possible to reduce the handling of errors.
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
Hereinafter, an example of a preferred embodiment for realizing the present invention will be described with reference to the drawings.
FIG. 1 shows a conceptual module configuration diagram of a configuration example of the present embodiment.
The module generally refers to components such as software (computer program) and hardware that can be logically separated. Therefore, the module in the present embodiment indicates not only a module in a computer program but also a module in a hardware configuration. Therefore, the present embodiment is a computer program for causing these modules to function (a program for causing a computer to execute each procedure, a program for causing a computer to function as each means, and a function for each computer. This also serves as an explanation of the program and system and method for realizing the above. However, for the sake of explanation, the words “store”, “store”, and equivalents thereof are used. However, when the embodiment is a computer program, these words are stored in a storage device or stored in memory. This means that control is performed so as to be stored in the apparatus. Modules may correspond to functions one-to-one, but in mounting, one module may be configured by one program, or a plurality of modules may be configured by one program, and conversely, one module May be composed of a plurality of programs. The plurality of modules may be executed by one computer, or one module may be executed by a plurality of computers in a distributed or parallel environment. Note that one module may include other modules. Hereinafter, “connection” is used not only for physical connection but also for logical connection (data exchange, instruction, reference relationship between data, login, etc.). “Predetermined” means that the process is determined before the target process, and not only before the process according to this embodiment starts but also after the process according to this embodiment starts. Also, if it is before the target processing, it is used in accordance with the situation / status at that time or with the intention to be decided according to the status / status up to that point. When there are a plurality of “predetermined values”, they may be different values, or two or more values (of course, including all values) may be the same. In addition, the description of “do B when A” is used to mean “determine whether or not A and do B when A”. However, the case where it is not necessary to determine whether or not A is excluded. In addition, when enumerating things such as “A, B, C”, etc., it is an enumerated list unless otherwise specified, and includes cases where only one of them is selected (for example, only A).
In addition, the system or device is configured by connecting a plurality of computers, hardware, devices, and the like by communication means such as a network (including one-to-one correspondence communication connection), etc., and one computer, hardware, device. The case where it implement | achieves by etc. is included. “Apparatus” and “system” are used as synonymous terms. Of course, the “system” does not include a social “mechanism” (social system) that is an artificial arrangement.
In addition, when performing a plurality of processes in each module or in each module, the target information is read from the storage device for each process, and the processing result is written to the storage device after performing the processing. is there. Therefore, description of reading from the storage device before processing and writing to the storage device after processing may be omitted. Here, the storage device may include a hard disk, a RAM (Random Access Memory), an external storage medium, a storage device via a communication line, a register in a CPU (Central Processing Unit), and the like.
本実施の形態である情報処理装置100は、OS(Operating System)間通信の処理を行うものであって、図1の例に示すように、OS(A)110、OS(B)120を有している。
OS間通信を伴うコマンド処理のタイムアウトによりシステムエラーが生じる。そのためコマンド処理がタイムアウトになるのを避けるための技術が必要になる。
マルチプロセッサ構成によるOS間通信を行う場合、パフォーマンスに影響する時間的制約が課題となる。
情報処理装置100は、コマンド送受信(例えば、OS(A)110からOS(B)120へ、又は、OS(B)120からOS(A)110へ、等)が完了するまでの制限時間を各コマンドが超過しないように制御している。
The
A system error occurs due to a timeout of command processing involving communication between OSs. Therefore, a technique for avoiding command processing from timing out is required.
When performing inter-OS communication using a multiprocessor configuration, time constraints that affect performance become an issue.
The
OS(A)110とOS(B)120は、それぞれのCPU上で動作するOSである。例えば、OS(A)110として、主にユーザーインタフェース関連の処理を担当させ、OS(B)120として、主にデバイスの制御を担当させるようにしてもよい。具体的には、OS(A)110として、汎用OSであるLinux(登録商標)等、OS(B)120として、組込みOS(又は、リアルタイムOS)であるvxWorks(登録商標)等を採用してもよい。 The OS (A) 110 and the OS (B) 120 are OSs that operate on the respective CPUs. For example, the OS (A) 110 may be mainly responsible for user interface-related processing, and the OS (B) 120 may be mainly responsible for device control. Specifically, Linux (registered trademark), which is a general-purpose OS, is adopted as the OS (A) 110, and vxWorks (registered trademark), which is an embedded OS (or real-time OS), is adopted as the OS (B) 120. Also good.
OS(A)110は、通信モジュール115を有している。
通信モジュール115は、OS(B)120の通信モジュール125と接続されている。通信モジュール115は、OS(A)110とOS(B)120との間の通信を行う。通信モジュール115は、OS(A)110からOS(B)120への指令を送信する。例えば、OS(A)110は、ユーザーインタフェースを介して、ユーザーの操作を受け付ける。その操作による指示にOS(B)120が管理しているデバイスへの指令を含む場合は、通信モジュール115は、OS(A)110からOS(B)120への指令を送信する。具体的な例として、ユーザーからの印刷指示を受け付けた場合、プリンターへの指令がOS(B)120に送信されることになる。また、逆に、通信モジュール115は、OS(B)120からOS(A)110に送信されてきた、その指令の処理結果等を受信する。
The OS (A) 110 has a
The
OS(B)120は、通信モジュール125、タスク割当処理モジュール130、処理結果取得モジュール160、ログ記憶モジュール165、学習モジュール170を有している。
通信モジュール125は、OS(A)110の通信モジュール115と接続されている。通信モジュール125は、OS(B)120とOS(A)110との間の通信を行う。通信モジュール125は、OS(A)110からOS(B)120への指令を受信する。また、逆に、通信モジュール125は、OS(B)120からOS(A)110にその指令の処理結果等を送信する。
The OS (B) 120 includes a
The
タスク割当処理モジュール130は、制限時間取得モジュール135、CPU使用率取得モジュール140、判断モジュール145、タスク割当モジュール155を有している。
制限時間取得モジュール135は、通信モジュール125が受信した指令に設けられている制限時間を抽出する。ここでの制限時間とは、その指令の処理を終了させるまでの時間である。例えば、制限時間取得モジュール135は、後述する図7に示すコマンド・制限時間対応テーブル700を用いて、指令に設けられている制限時間を抽出するようにしてもよい。
また、OS(A)110から送信されてきた指令そのものに制限時間が付加されていてもよい。その場合、制限時間取得モジュール135は、指令に付加されている制限時間を抽出すればよい。
CPU使用率取得モジュール140は、OS(B)120が動作しているCPUの使用率を取得する。例えば、OS(B)120が用意しているタスクマネージャー等を用いて、現在のCPUの使用率を取得すればよい。
The task
The time
Further, a time limit may be added to the command itself transmitted from the OS (A) 110. In that case, the time
The CPU usage
判断モジュール145は、閾値記憶モジュール150を有しており、タスク割当モジュール155と接続されている。判断モジュール145は、CPU使用率とそのCPU使用率で対応できる制限時間との関係を用いて、通信モジュール125が受信した指令の制限時間内に、その指令の処理を終了できるか否かを判断する。
「CPU使用率とそのCPU使用率で対応できる制限時間との関係」として、具体的には、CPU使用率と制限時間とを対応させた表(テーブル)、CPU使用率と制限時間とを変数とした関係式等がある。
なお、「CPU使用率とそのCPU使用率で対応できる制限時間との関係」の用い方に2通りある。
1つ目は、その関係(CPU使用率とそのCPU使用率で対応できる制限時間との関係)を用いて、CPU使用率に対応する制限時間を閾値として、通信モジュール125が受信した指令の制限時間とその閾値とを比較することによって、その制限時間内に、その指令の処理を終了できるか否かを判断するものである。
2つ目は、その関係(CPU使用率とそのCPU使用率で対応できる制限時間との関係)を用いて、制限時間に対応するCPU使用率を閾値として、OS(B)120のCPU使用率とその閾値とを比較することによって、その制限時間内に、その指令の処理を終了できるか否かを判断するものである。
この関係は、ログ記憶モジュール165に記憶されている過去の実績に応じて、学習モジュール170が学習したものとしてもよい。
The
As the “relationship between the CPU usage rate and the time limit that can be handled by the CPU usage rate”, specifically, a table (table) in which the CPU usage rate and the time limit are associated with each other, the CPU usage rate and the time limit are variables. There is a relational expression.
There are two ways to use the “relationship between the CPU usage rate and the time limit that can be handled by the CPU usage rate”.
First, using the relationship (the relationship between the CPU usage rate and the time limit that can be supported by the CPU usage rate), the limit of the command received by the
Second, using the relationship (the relationship between the CPU usage rate and the time limit that can be handled by the CPU usage rate), the CPU usage rate of the OS (B) 120 using the CPU usage rate corresponding to the time limit as a threshold value. Is compared with the threshold value to determine whether or not the processing of the command can be completed within the time limit.
This relationship may be learned by the
閾値記憶モジュール150は、学習モジュール170と接続されている。閾値記憶モジュール150は、判断モジュール145による判断処理で用いる閾値を記憶している。例えば、後述する図8に示す制限時間・CPU使用率閾値対応テーブル800、図11に示すCPU使用率・制限時間閾値対応テーブル1100を記憶している。
The
タスク割当モジュール155は、判断モジュール145と接続されている。タスク割当モジュール155は、OS(B)120のCPU使用率では、指令に設けられている制限時間内に、その指令の処理が終了できない場合は、予め定められた優先度のタスクに、その指令の処理を割り当てる。
また、タスク割当モジュール155は、予め定められた優先度のタスクとして、既に受信している指令の処理を行うタスクよりも優先して行われるタスクを割り当てるようにしてもよい。つまり、他のタスクよりも優先してデバイスを利用することができるようになる。また、タスクを割り当てる際に、デバイスが使用中である場合であっても、その使用(指令の処理)を中断して、割り当てられたタスクの処理を行うようにしてもよい。また、デバイスが処理の中断を許さない場合は、タスクを割り当てる際に、デバイスが使用中である場合は、その使用(指令の処理)が終了するのを待って、その直後に割り当てられたタスクの処理を行うようにしてもよい。
また、タスク割当モジュール155は、OS(B)120のCPU使用率で、指令に設けられている制限時間内に、その指令の処理が終了できる場合は、その指令を既に受信している指令の待ち行列に加えるようにしてもよい。つまり、通信モジュール125が受信した順序通りに指令の処理を行わせるものである。
The
Further, the
In addition, the
処理結果取得モジュール160は、ログ記憶モジュール165と接続されている。処理結果取得モジュール160は、通信モジュール125が受信した指令の処理結果を取得する。処理結果として、例えば、処理が成功した(制限時間以内に終了した)こと、失敗したこと、失敗した場合のその原因、処理時間等がある。
ログ記憶モジュール165は、処理結果取得モジュール160、学習モジュール170と接続されている。ログ記憶モジュール165は、過去の実績を記憶している。ここで、「過去の実績」は、機械学習における教師データであり、具体的には、CPU使用率と制限時間と結果(そのCPU使用率で制限時間以内に終了したか否かを示すデータ)である。
学習モジュール170は、タスク割当処理モジュール130内の判断モジュール145の閾値記憶モジュール150、ログ記憶モジュール165と接続されている。学習モジュール170は、ログ記憶モジュール165内の過去の実績を用いて機械学習を行う。機械学習として、既存の手法を用いればよい。例えば、ニューラルネットワーク、サポートベクターマシン、クラスタリング等を用いればよい。
The processing
The
The
図2は、本実施の形態を利用したシステム構成例を示す説明図である。
画像処理装置200は、情報処理装置100、プリンター210、スキャナー220、符号化・復号装置230、A4ファックス240を有している。画像処理装置200は、例えば、複写機、ファックス、スキャナー、プリンター、複合機(スキャナー、プリンター、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)等である。
情報処理装置100は、OS(A)110、OS(B)120を有している。情報処理装置100は、画像処理装置200全体を制御する。
OS(A)110は、OS(B)120と接続されている。OS(B)120は、OS(A)110、プリンター210、スキャナー220、符号化・復号装置230、A4ファックス240と接続されている。OS(B)120は、プリンター210、スキャナー220、符号化・復号装置230、A4ファックス240を制御する。プリンター210は、情報処理装置100のOS(B)120と接続されている。スキャナー220は、情報処理装置100のOS(B)120と接続されている。符号化・復号装置230は、情報処理装置100のOS(B)120と接続されている。A4ファックス240は、情報処理装置100のOS(B)120と接続されている。
OS(A)110は、ユーザーの操作を受け付け、その操作に対応する指令をOS(B)120に送信する。OS(B)120は、その指令にしたがって、デバイスであるプリンター210等を制御して、その指令の処理を行う。そして、その処理結果をOS(B)120からOS(A)110に送信し、OS(A)110は、その処理結果をユーザーに提示する。
FIG. 2 is an explanatory diagram showing a system configuration example using the present embodiment.
The
The
The OS (A) 110 is connected to the OS (B) 120. The OS (B) 120 is connected to the OS (A) 110, the
The OS (A) 110 receives a user operation and transmits a command corresponding to the operation to the OS (B) 120. The OS (B) 120 controls the
情報処理装置100における処理例を示す。ただし、以下の説明(本段落番号内の説明)は、本実施の形態の理解を容易にすることを目的とするものであり、この説明を用いて限定解釈することは意図していない。そして、この説明部分のみを用いて、特許を受けようとする発明が発明の詳細な説明に記載したものであること(特許法第36条第6項第1号)の判断を行うべきではないことは当然である。
情報処理装置100は、コマンド制限時間に間に合わないと判断した場合には、高優先度のタスクでそのコマンドを処理することによってシステムエラーを回避するようにしている。
具体的には、通信モジュール125がコマンド処理タスクに振り分ける際、OS(B)120でのCPU使用率を問い合わせ、CPU使用率とコマンドの制限時間の2つを判断材料にして、待ち行列による処理タスクでコマンド処理が制限時間内に終わるか否かを判断し、終わる場合はその待ち行列による処理タスクで、終わらない場合は非常用の高優先度タスクで処理し、制限時間に間に合わせるようにしている。
タスク切り替え判断は、閾値記憶モジュール150にCPU使用率とコマンド制限時間との関係を記憶しておき、高優先度タスクに切り替えるか否かを判断する。この関係はシステムが学習によって変動させ、最適化するようにしてもよい。
単なる待ち行列によって処理タスクを処理した場合においてはCPU使用率が高いとシステムエラーになっていた場合も、情報処理装置100においてはコマンド制限時間に間に合わないと判断された場合、高優先度タスクに切り替えて処理させることで、システムエラーを回避することができる。
OS(A)110から受信したコマンドの処理を、予め設定されたタスクで実行するパス、非常用の高優先度タスクで実行するパスのどちらを使用して実行するかを、CPU使用率とコマンド制限時間の2つから判断して切り替えるようにしている。これによって、予め設定されたタスクでの処理ではコマンド制限時間に間に合わずシステムエラーになってしまうような処理でも、システムエラーにならずに処理を完了させることができるようになる。つまり、システムエラーとなる可能性が低くなることで、画像処理装置200全体の品質の向上が見込まれる。
The process example in the
When the
Specifically, when the
In the task switching determination, the
When a processing task is processed by a simple queue, a system error may occur if the CPU usage rate is high. If the
Whether the command received from the OS (A) 110 is executed by using a path executed by a preset task or a path executed by an emergency high priority task, the CPU usage rate and the command Judgment is made based on two of the time limits, and switching is performed. As a result, even if a process with a preset task causes a system error due to the command time limit, the process can be completed without causing a system error. That is, since the possibility of a system error is reduced, the quality of the entire
図3は、従来のOS間通信の処理例を示す説明図である。
OS(C)380は、OS(D)390と接続されており、ユーザーの操作に応じた指令をOS(D)390に送信する。
OS(D)390は、OS(C)380と接続されており、その指令にしたがって、タスクであるプリンターメインタスク310、スキャナーメインタスク320、符号化・復号処理メインタスク330、A4ファックスメインタスク340等を生成する。各タスクは、デバイスドライバを制御する。プリンターメインタスク310はプリンター210を制御し、スキャナーメインタスク320はスキャナー220を制御し、符号化・復号処理メインタスク330は符号化・復号装置230を制御し、A4ファックスメインタスク340はA4ファックス240を制御する。
各タスクは、OS(C)380とOS(D)390とのOS間通信の初期化時に決められた優先度で生成される。
FIG. 3 is an explanatory diagram showing a processing example of conventional inter-OS communication.
The OS (C) 380 is connected to the OS (D) 390 and transmits a command corresponding to the user operation to the OS (D) 390.
The OS (D) 390 is connected to the OS (C) 380, and according to the command, the printer
Each task is generated with a priority determined at the time of initialization of communication between the OS (C) 380 and OS (D) 390.
例えば、以下に示すような処理を行う。
コピー、プリント等のサービスは、OS(C)380(例えば、Linux)からOS(D)390(例えば、vxWorks)にOS間通信でコマンドを送信し、OS(D)390のデバイスドライバが各デバイスを制御して処理し、処理結果をOS(D)390からOS(C)380にOS間通信で送信することで実現している。
このコマンド処理には制限時間が設けられており、制限時間を超過するとシステムエラーとなってしまう。
従来のOS間通信構成では、コマンド毎にタスクが割り振られており、OS(D)390はコマンドを受信すると、事前に割り振られたタスクで処理を実行する。
例えばコマンドを4つ受信したとき、CPU使用率が低い場合は制限時間内にコマンド処理を完了させることができるが、CPU使用率が高い場合は制限時間内にコマンド処理を完了できず、システムエラーとなってしまう場合がある。
情報処理装置100は、コマンド制限時間超過によるシステムエラーを回避するようにしている。これによって、情報処理装置100を具備する画像処理装置200等の製品品質向上を図る。
For example, the following processing is performed.
A service such as copying and printing is performed by transmitting a command from the OS (C) 380 (for example, Linux) to the OS (D) 390 (for example, vxWorks) through inter-OS communication, and the device driver of the OS (D) 390 This process is realized by transmitting the processing result from the OS (D) 390 to the OS (C) 380 through inter-OS communication.
This command processing has a time limit, and if the time limit is exceeded, a system error occurs.
In the conventional inter-OS communication configuration, a task is allocated for each command, and when the OS (D) 390 receives the command, the task is executed with the task allocated in advance.
For example, when four commands are received, if the CPU usage rate is low, the command processing can be completed within the time limit, but if the CPU usage rate is high, the command processing cannot be completed within the time limit, resulting in a system error It may become.
The
図4は、従来のコマンド処理例で、正常終了する場合を示す説明図である。
OS(D)390は、図4(a)の例に示すように、コマンド1:410、コマンド2:420、コマンド3:430、コマンド4:440の順序でOS(C)380からのコマンドを受信したとする。これを、待ち行列として実現している。
FIG. 4 is an explanatory diagram showing a case of normal termination in a conventional command processing example.
As shown in the example of FIG. 4A, the OS (D) 390 receives commands from the OS (C) 380 in the order of command 1: 410, command 2: 420, command 3: 430, command 4: 440. Suppose it is received. This is realized as a queue.
図4(b)の例は、各コマンドに対応するタスクのタイムチャートを示している。つまり、左端を0時間(コマンド1:410を受信した時間)とし、右側への移行で時間の経過を示している時間軸上で、各コマンドの処理の時間(処理を待機している時間、処理が開始された時間、終了した時間)を示している。そして、各コマンドの制限時間を示している。コマンド4制限時間490が短く、それよりも長いコマンド1/2/3制限時間480がある。
例えば、図4(b)に示すように、CPU使用率が10%である場合(CPUに余裕がある場合の例)は、コマンド1:410に対応してコマンド実行時間415(待機時間がないのは、コマンド1:410の受信後のすぐに処理を開始しているからである)があり、コマンド2:420に対応してコマンド実行待機時間423、コマンド実行時間425があり、コマンド3:430に対応してコマンド実行待機時間433、コマンド実行時間435があり、コマンド4:440に対応してコマンド実行待機時間443、コマンド実行時間445がある。なお、コマンド実行待機時間423の終了(コマンド実行時間425の開始)は、コマンド実行時間415の終了に対応している。つまり、コマンド1:410の処理が終了し、タスクの切り替わりによって、次のコマンド2:420の処理が開始されるからである。
CPU使用率が10%であるので、全てのコマンドの処理がコマンド4制限時間490内に終了している。したがって、タイムアウトによりシステムエラーは生じていない。
The example of FIG. 4B shows a time chart of tasks corresponding to each command. That is, the left end is 0 hour (the time when the command 1: 410 is received), and the processing time of each command (the time waiting for the processing, The time when the process is started and the time when the process is finished). And the time limit of each command is shown. The
For example, as shown in FIG. 4B, when the CPU usage rate is 10% (an example in which the CPU has room), the command execution time 415 (no waiting time) corresponding to the command 1: 410. This is because the processing is started immediately after the command 1: 410 is received), and there is a command
Since the CPU usage rate is 10%, processing of all commands is completed within the
また、図4(c)の例に示すように、OS(D)390からOS(C)380へのコマンドの処理結果の応答順も、コマンド1:417、コマンド2:427、コマンド3:437、コマンド4:447の順序であり、図4(a)の例に示したコマンドの受信順と同じである。 Also, as shown in the example of FIG. 4C, the response order of the command processing results from the OS (D) 390 to the OS (C) 380 is also command 1: 417, command 2: 427, command 3: 437. , Command 4: 447, which is the same as the command reception order shown in the example of FIG.
図5は、従来のコマンド処理例で、制限時間に間に合わず異常終了する場合を示す説明図である。
OS(D)390は、図5(a)の例に示すように、コマンド1:410、コマンド2:420、コマンド3:430、コマンド4:440の順序でOS(C)380からのコマンドを受信したとする。
FIG. 5 is an explanatory diagram showing a case in which the command is terminated in a conventional command processing example and the time limit is not met.
As shown in the example of FIG. 5A, the OS (D) 390 receives commands from the OS (C) 380 in the order of command 1: 410, command 2: 420, command 3: 430, command 4: 440. Suppose it is received.
例えば、図5(b)に示すように、CPU使用率が90%である場合(CPUに余裕がない場合の例)は、コマンド1:410に対応してコマンド実行時間515があり、コマンド2:420に対応してコマンド実行待機時間523、コマンド実行時間525があり、コマンド3:430に対応してコマンド実行待機時間533、コマンド実行時間535があり、コマンド4:440に対応してコマンド実行待機時間543、コマンド実行時間545がある。
CPU使用率が90%の場合のコマンド実行時間515は、図4の例に示したCPU使用率が10%の場合のコマンド実行時間415と比較して、差分時間510だけ長くなっている。
そのため、その後のコマンド2:420、コマンド3:430、コマンド4:440においても、コマンド実行待機時間523、コマンド実行待機時間533、コマンド実行待機時間543は、コマンド実行待機時間423、コマンド実行待機時間433、コマンド実行待機時間443よりも長くなり、コマンド実行時間525、コマンド実行時間535、コマンド実行時間545は、コマンド実行時間425、コマンド実行時間435、コマンド実行時間445よりも長くなっている。
したがって、コマンド1:410、コマンド2:420、コマンド3:430はコマンド1/2/3制限時間480前に終了するが、コマンド4:440はコマンド4制限時間490前に終了することができなくなってしまう。つまり、CPU使用率が90%であるので、各処理は、図4(b)の例に示した処理よりも長い時間がかかっており、コマンド実行時間545で、コマンド4制限時間490を過ぎてしまうので、タイムアウトによりシステムエラーが生じてしまう。
For example, as shown in FIG. 5B, when the CPU usage rate is 90% (an example where the CPU has no margin), there is a
The
Therefore, also in the subsequent command 2: 420, command 3: 430, and command 4: 440, the command
Therefore, command 1: 410, command 2: 420, command 3: 430 end before
あるコマンド(図5の例では、コマンド1:410、コマンド2:420、コマンド3:430)が処理を握ってしまい、他のコマンド(図5の例では、コマンド4:440)が制限時間内に処理を完了できずにタイムアウトしてしまう。
制限時間が短いコマンドを優先的に処理させ、タイムアウトが起こらないようにすべきである。なお、前提として、CPUの使用率が高いため、コマンド処理に時間がかかっている。
図5の例では、制限時間をオーバーしているため、コマンド4:440の処理はエラーとなり、システムエラーと判断される。
A certain command (command 1: 410, command 2: 420, command 3: 430 in the example of FIG. 5) grasps the process, and another command (command 4: 440 in the example of FIG. 5) is within the time limit. Timed out without completing the process.
Commands with a short time limit should be processed preferentially and timeouts should not occur. As a premise, since the usage rate of the CPU is high, the command processing takes time.
In the example of FIG. 5, since the time limit is exceeded, the process of command 4: 440 results in an error and is determined to be a system error.
図6は、本実施の形態による処理例を示すフローチャートである。
ステップS602では、通信モジュール125は、コマンドを受信する。
ステップS604では、制限時間取得モジュール135は、制限時間を取得する。制限時間取得モジュール135は、例えば、コマンド・制限時間対応テーブル700を用いて、ステップS602で受信したコマンドに対応する制限時間を取得してもよい。図7は、コマンド・制限時間対応テーブル700のデータ構造例を示す説明図である。コマンド・制限時間対応テーブル700は、コマンド欄710、制限時間欄720を有している。コマンド欄710は、コマンド(指令)を記憶している。制限時間欄720は、そのコマンドに対応する制限時間を記憶している。
制限時間の取得方法として、ステップS602で受信したコマンドに付随してきた制限時間を取得してもよい。この場合は、OS(A)110が制限時間を指定してきた場合である。
FIG. 6 is a flowchart showing an example of processing according to this embodiment.
In step S602, the
In step S604, the time
As a time limit acquisition method, the time limit associated with the command received in step S602 may be acquired. In this case, the OS (A) 110 has designated a time limit.
ステップS606では、CPU使用率取得モジュール140は、OS(B)120の現在のCPU使用率を取得する。
ステップS608では、判断モジュール145は、その制限時間におけるCPU使用率の閾値を取得する。判断モジュール145は、例えば、制限時間・CPU使用率閾値対応テーブル800を用いて、CPU使用率の閾値を取得してもよい。図8は、制限時間・CPU使用率閾値対応テーブル800のデータ構造例を示す説明図である。制限時間・CPU使用率閾値対応テーブル800は、制限時間欄810、CPU使用率閾値欄820を有している。制限時間欄810は、制限時間を記憶している。CPU使用率閾値欄820は、その制限時間におけるCPU使用率の閾値を記憶している。CPU使用率がこの閾値以下であるならば、制限時間以内に完了すると判断することになる。
In step S606, the CPU usage
In step S608, the
ステップS610では、判断モジュール145は、「CPU使用率>閾値」であるか否かを判断し、「CPU使用率>閾値」の場合はステップS612へ進み、それ以外の場合はステップS614へ進む。
ステップS612では、タスク割当モジュール155は、受信したコマンドを優先タスクに割り当てる。ここで優先タスクとして、後述する図13の例に示す非常用タスク1310が該当する。
ステップS614では、タスク割当モジュール155は、受信したコマンドを通常のタスクに割り当てる。
In step S610, the
In step S612, the
In step S614, the
図9は、制限時間内に処理を完了させるためのCPU使用率の閾値例を示す説明図である。
図9の例に示すグラフは、横軸に制限時間、縦軸にCPU使用率をとり、CPU使用率閾値950を引いたものである。CPU使用率閾値950は、制限時間内に処理を完了させるためのCPU使用率閾値である。つまり、制限時間・CPU使用率閾値対応テーブル800をグラフ化したものである。なお、図9の例では、CPU使用率閾値950は直線になっているが、曲線、学習モジュール170の機械学習によって示される判断基準であってもよい。例えば、このグラフのCPU使用率閾値950は、コマンド処理時のCPU使用率と制限時間の関係を機械学習によって、学習モジュール170が算出し、最適化している。
図9の例に示すグラフでは、CPU使用率低領域910ではコマンド1:911、コマンド4:914のようにプロットされ、CPU使用率高領域990ではコマンド1:991、コマンド4:994のようにプロットされる。CPU使用率閾値950より下にあるコマンド1:911、コマンド4:914、コマンド1:991は、制限時間以内に処理が終了すると判断され、CPU使用率閾値950より上にあるコマンド4:994は、制限時間以内には処理は終了しないと判断される。つまり、CPU使用率が高いとコマンド4は、従来タスクでの処理では制限時間に間に合わない。CPU使用率が低いと従来のタスク処理で制限時間に間に合うことになる。
情報処理装置100は、コマンドの制限時間に対し、CPU使用率がCPU使用率閾値よりも上である場合、高優先度タスクで制限時間内に処理を完了させるようにしている。
FIG. 9 is an explanatory diagram illustrating an example of a threshold value of the CPU usage rate for completing the processing within the time limit.
The graph shown in the example of FIG. 9 is obtained by subtracting the CPU usage
In the graph shown in the example of FIG. 9, the CPU usage rate
When the CPU usage rate is higher than the CPU usage rate threshold with respect to the command time limit, the
図10は、本実施の形態による処理例を示すフローチャートである。図6の例に示したフローチャートとは異なる例を示している。
ステップS1002では、通信モジュール125は、コマンドを受信する。
ステップS1004では、制限時間取得モジュール135は、制限時間を取得する。
ステップS1006では、CPU使用率取得モジュール140は、OS(B)120の現在のCPU使用率を取得する。ステップS1002からステップS1006までの処理は、図6の例に示したフローチャートのステップS602からステップS606までの処理と同等である。
FIG. 10 is a flowchart showing an example of processing according to this embodiment. An example different from the flowchart shown in the example of FIG. 6 is shown.
In step S1002, the
In step S1004, the time
In step S <b> 1006, the CPU usage
ステップS1008では、そのCPU使用率における制限時間の閾値を取得する。判断モジュール145は、例えば、CPU使用率・制限時間閾値対応テーブル1100を用いて、制限時間の閾値を取得してもよい。図11は、CPU使用率・制限時間閾値対応テーブル1100のデータ構造例を示す説明図である。CPU使用率・制限時間閾値対応テーブル1100は、CPU使用率欄1110、制限時間閾値欄1120を有している。CPU使用率欄1110は、CPU使用率を記憶している。制限時間閾値欄1120は、そのCPU使用率における制限時間の閾値を記憶している。制限時間がこの閾値以下であるならば、制限時間以内に完了すると判断することになる。
In step S1008, a threshold value of the time limit for the CPU usage rate is acquired. For example, the
ステップS1010では、判断モジュール145は、「制限時間>閾値」であるか否かを判断し、「制限時間>閾値」の場合はステップS1012へ進み、それ以外の場合はステップS1014へ進む。
ステップS1012では、タスク割当モジュール155は、受信したコマンドを優先タスクに割り当てる。ここで優先タスクとして、後述する図13の例に示す非常用タスク1310が該当する。
ステップS1014では、タスク割当モジュール155は、受信したコマンドを通常のタスクに割り当てる。
In step S1010, the
In step S1012, the
In step S1014, the
図12は、制限時間内に処理を完了させるためのCPU使用率の閾値例を示す説明図である。
図12の例に示すグラフは、横軸にCPU使用率、縦軸に制限時間をとり、制限時間閾値1250を引いたものである。制限時間閾値1250は、CPU使用率において処理できる制限時間の閾値である。つまり、CPU使用率・制限時間閾値対応テーブル1100をグラフ化したものである。なお、図12の例では、制限時間閾値1250は直線になっているが、曲線、学習モジュール170の機械学習によって示される判断基準であってもよい。例えば、このグラフの制限時間閾値1250は、コマンド処理時のCPU使用率と制限時間の関係を機械学習によって、学習モジュール170が算出し、最適化している。
図12の例に示すグラフでは、CPU使用率低領域1210ではコマンド1:1211、コマンド4:1214のようにプロットされ、CPU使用率高領域1290ではコマンド1:1291、コマンド4:1294のようにプロットされる。制限時間閾値1250より下にあるコマンド1:1211、コマンド4:1214、コマンド1:1291は、制限時間以内に処理が終了すると判断され、制限時間閾値1250より上にあるコマンド4:1294は、制限時間以内には処理は終了しないと判断される。つまり、CPU使用率が高いとコマンド4は、従来タスクでの処理では制限時間に間に合わない。CPU使用率が低いと従来のタスク処理で制限時間に間に合うことになる。
情報処理装置100は、現在のCPU使用率において、コマンドの制限時間が制限時間閾値よりも上である場合、高優先度タスクで制限時間内に処理を完了させるようにしている。
FIG. 12 is an explanatory diagram illustrating an example of a threshold value of the CPU usage rate for completing the processing within the time limit.
The graph shown in the example of FIG. 12 is obtained by subtracting the time
In the graph shown in the example of FIG. 12, the CPU usage rate
In the current CPU usage rate, the
図13は、本実施の形態による処理例を示す説明図である。
この例では、従来のコマンド処理用のいずれのタスクよりも優先度を高く設定した非常用タスク1310を生成しておく。
ステップS1302では、OS(B)120は、OS(A)110から「プリンターコマンド1」を受信する。
ステップS1304では、CPU使用率(負荷)をCPU使用率計測モジュール1340に問い合わせる。
ステップS1306では、プリンターコマンド1の制限時間に間に合うため、タスクであるプリンターメインタスク310Aにコマンドを渡し、コマンドを実行する。
ステップS1308では、プリンターメインタスク310Aはプリンター210を制御して、「プリンターコマンド1」の処理を行わせる。
FIG. 13 is an explanatory diagram showing a processing example according to the present embodiment.
In this example, an
In step S <b> 1302, the OS (B) 120 receives “
In step S1304, the CPU usage rate (load) is inquired of the CPU usage
In step S1306, in order to meet the time limit of the
In step S1308, the printer
ステップS1310では、OS(B)120は、OS(A)110から「プリンターコマンド1」の処理中に、制限時間の短い「プリンターコマンド2」を受信する。
ステップS1312では、CPU使用率(負荷)をCPU使用率計測モジュール1340に問い合わせる。
ステップS1314では、CPU負荷が高く、通常経路では制限時間に間に合わないため、非常用タスク1310にコマンドを渡し、コマンド(プリンターコマンド2)を実行する。プリンターコマンド1を中断する。なお、1つのプリンター210であるが、プリンターコマンド1とプリンターコマンド2の排出先が異なっていれば、プリンターコマンド1を中断してプリンターコマンド2を実行しても問題(印刷用紙が混ざり合うこと)はない。
ステップS1316では、非常用タスク1310はプリンター210を制御して、「プリンターコマンド2」の処理を行わせる。
In step S1310, the OS (B) 120 receives “
In step S1312, the CPU usage
In step S1314, since the CPU load is high and the time limit is not reached in the normal route, the command is passed to the
In step S1316, the
ステップS1318では、非常用タスク1310は、「プリンターコマンド2」の処理結果をプリンター210から受け取る。
ステップS1320では、「プリンターコマンド2」の処理完了後、高優先度用通信路経由でOS(B)120にRetコマンド(処理完了通知)を渡す。
ステップS1322では、OS(B)120は、OS(A)110へ「プリンター応答2」(プリンターコマンド2の処理完了通知)を送信する。
In step S 1318, the
In step S1320, after the processing of “
In step S1322, the OS (B) 120 transmits “
ステップS1324では、プリンターメインタスク310Bは、「プリンターコマンド1」の処理結果をプリンター210から受け取る。
ステップS1326では、「プリンターコマンド1」の処理完了後、プリンターメインタスク310BからOS(B)120にRetコマンド(処理完了通知)を渡す。
ステップS1328では、OS(B)120は、OS(A)110へ「プリンター応答1」を送信する。
In step S1324, the printer
In step S1326, after the processing of “
In step S 1328, the OS (B) 120 transmits “
図14は、本実施の形態による処理例を示す説明図である。図6の例に示したステップS614又は図10の例に示したステップS1014の処理を行った場合の例を示すものである。
OS(B)120は、図14(a)の例に示すように、コマンド1:1410、コマンド2:1420、コマンド3:1430、コマンド4:1440の順序でOS(A)110からのコマンドを受信したとする。そして、CPU使用率が低い場合であるので、図4に示した例と同様に、全てのコマンドが制限時間内に終了している。
したがって、図14(c)の例に示すように、OS(B)120からOS(A)110へのコマンドの処理結果の応答順も、コマンド1:1417、コマンド2:1427、コマンド3:1437、コマンド4:1447の順序であり、図14(a)の例に示したコマンドの受信順と同じである。
FIG. 14 is an explanatory diagram showing a processing example according to the present embodiment. The example at the time of performing the process of step S614 shown in the example of FIG. 6 or step S1014 shown in the example of FIG. 10 is shown.
As shown in the example of FIG. 14A, the OS (B) 120 receives commands from the OS (A) 110 in the order of command 1: 1410, command 2: 1420, command 3: 1430, command 4: 1440. Suppose it is received. Since the CPU usage rate is low, all commands are completed within the time limit as in the example shown in FIG.
Therefore, as shown in the example of FIG. 14C, the response order of the command processing results from the OS (B) 120 to the OS (A) 110 is also command 1: 1417, command 2: 1427, command 3: 1437. , Command 4: 1447, which is the same as the command reception order shown in the example of FIG.
図15は、本実施の形態による処理例を示す説明図である。この例は、CPU使用率が高い場合であって、コマンド処理タスクを切り替える処理が発生する場合を示している。
OS(B)120は、図15(a)の例に示すように、コマンド1:1410、コマンド2:1420、コマンド3:1430、コマンド4:1440の順序でOS(A)110からのコマンドを受信したとする。
そして、CPU使用率の状態(CPU使用率が高い場合)から、従来のタスクでは時間内に処理を完了できないため、高優先度のタスク(図13の例に示した非常用タスク1310)で処理を実行する。
例えば、図15(b)に示すように、CPU使用率が90%である場合(CPUに余裕がない場合の例)は、コマンド1:1410に対応してコマンド実行時間1515aがあり、その処理中にコマンド4:1440を受信し、制限時間内に終了しないと判断されたので、コマンド4:1440を非常用タスク1310に割り当て、コマンド1:1410の処理を中断して、コマンド4:1440に対応するコマンド実行時間1545があり、その終了後に、中断していたコマンド1:1410の処理を再開する。つまり、コマンド実行時間1515aの後、コマンド実行中断時間1516が発生し、コマンド実行時間1515bで再開している。もちろんのことながら、コマンド4:1440のコマンド実行時間1545の終了時はコマンド4制限時間1490よりも前になる。なお、コマンド3:1430のコマンド実行時間1535は、コマンド4:1440の処理が優先されたので、遅くなっているが、コマンド1/2/3制限時間1480よりも前であるので、システムエラーは発生しない。
FIG. 15 is an explanatory diagram showing a processing example according to the present embodiment. This example shows a case where the CPU usage rate is high and processing for switching the command processing task occurs.
As shown in the example of FIG. 15A, the OS (B) 120 receives commands from the OS (A) 110 in the order of command 1: 1410, command 2: 1420, command 3: 1430, command 4: 1440. Suppose it is received.
Since the conventional task cannot complete the process in time from the state of the CPU usage rate (when the CPU usage rate is high), processing is performed with a high priority task (
For example, as shown in FIG. 15B, when the CPU usage rate is 90% (an example in which the CPU has no margin), there is a
図16を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図16に示す構成は、例えばパーソナルコンピュータ(PC)等によって構成されるものであり、スキャナー等のデータ読み取り部1617と、プリンター等のデータ出力部1618を備えたハードウェア構成例を示している。
A hardware configuration example of the information processing apparatus according to the present embodiment will be described with reference to FIG. The configuration illustrated in FIG. 16 is configured by, for example, a personal computer (PC), and illustrates a hardware configuration example including a
CPU(Central Processing Unit)1601は、前述の実施の形態において説明した各種のモジュール、すなわち、OS(A)110、通信モジュール115、OS(B)120、通信モジュール125、タスク割当処理モジュール130、制限時間取得モジュール135、CPU使用率取得モジュール140、判断モジュール145、閾値記憶モジュール150、タスク割当モジュール155、処理結果取得モジュール160、学習モジュール170等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
The CPU (Central Processing Unit) 1601 includes various modules described in the above-described embodiments, that is, the OS (A) 110, the
ROM(Read Only Memory)1602は、CPU1601が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1603は、CPU1601の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバス等から構成されるホストバス1604により相互に接続されている。
A ROM (Read Only Memory) 1602 stores programs, calculation parameters, and the like used by the
ホストバス1604は、ブリッジ1605を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス1606に接続されている。
The
キーボード1608、マウス等のポインティングデバイス1609は、操作者により操作されるデバイスである。ディスプレイ1610は、液晶表示装置又はCRT(Cathode Ray Tube)等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス1609とディスプレイ1610の両方の機能を備えているタッチスクリーン等であってもよい。その場合、キーボードの機能の実現について、キーボード1608のように物理的に接続しなくても、画面(タッチスクリーン)上にソフトウェアでキーボード(いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる)を描画して、キーボードの機能を実現するようにしてもよい。
A
HDD(Hard Disk Drive)1611は、ハードディスク(フラッシュ・メモリ等であってもよい)を内蔵し、ハードディスクを駆動し、CPU1601によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、ログ記憶モジュール165、等としての機能を実現させる。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
An HDD (Hard Disk Drive) 1611 includes a hard disk (may be a flash memory or the like), drives the hard disk, and records or reproduces a program executed by the
ドライブ1612は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1613に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1607、外部バス1606、ブリッジ1605、及びホストバス1604を介して接続されているRAM1603に供給する。なお、リムーバブル記録媒体1613も、データ記録領域として利用可能である。
The
接続ポート1614は、外部接続機器1615を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1614は、インタフェース1607、及び外部バス1606、ブリッジ1605、ホストバス1604等を介してCPU1601等に接続されている。通信部1616は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部1617は、例えばスキャナーであり、ドキュメントの読み取り処理を実行する。データ出力部1618は、例えばプリンターであり、ドキュメントデータの出力処理を実行する。
The
なお、図16に示す情報処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図16に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図16に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナー、プリンター、複合機などに組み込まれていてもよい。 Note that the hardware configuration of the information processing apparatus shown in FIG. 16 shows one configuration example, and the present embodiment is not limited to the configuration shown in FIG. 16, and the modules described in this embodiment are executed. Any configuration is possible. For example, some modules may be configured with dedicated hardware (for example, Application Specific Integrated Circuit (ASIC), etc.), and some modules are in an external system and connected via a communication line Alternatively, a plurality of systems shown in FIG. 16 may be connected to each other via communication lines so as to cooperate with each other. In particular, in addition to personal computers, mobile information communication devices (including mobile phones, smartphones, mobile devices, wearable computers, etc.), information appliances, robots, copiers, fax machines, scanners, printers, multifunction devices, etc. May be.
また、前述の実施の形態の説明内での比較処理において、「以上」、「以下」、「より大きい」、「より小さい(未満)」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい(未満)」、「以上」、「以下」としてもよい。 In addition, in the comparison processing in the description of the above-described embodiment, “more than”, “less than”, “greater than”, and “less than (less than)” The values may be “larger”, “smaller (less than)”, “more than”, and “less than”, respectively.
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
The program described above may be provided by being stored in a recording medium, or the program may be provided by communication means. In that case, for example, the above-described program may be regarded as an invention of a “computer-readable recording medium recording the program”.
The “computer-readable recording medium on which a program is recorded” refers to a computer-readable recording medium on which a program is recorded, which is used for program installation, execution, program distribution, and the like.
The recording medium is, for example, a digital versatile disc (DVD), which is a standard established by the DVD Forum, such as “DVD-R, DVD-RW, DVD-RAM,” and DVD + RW. Standard “DVD + R, DVD + RW, etc.”, compact disc (CD), read-only memory (CD-ROM), CD recordable (CD-R), CD rewritable (CD-RW), Blu-ray disc ( Blu-ray (registered trademark) Disc), magneto-optical disk (MO), flexible disk (FD), magnetic tape, hard disk, read-only memory (ROM), electrically erasable and rewritable read-only memory (EEPROM (registered trademark)) )), Flash memory, Random access memory (RAM) SD (Secure Digital) memory card and the like.
Then, the whole or a part of the program may be recorded on the recording medium for storage or distribution. Also, by communication, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wired network used for the Internet, an intranet, an extranet, or a wireless communication It may be transmitted using a transmission medium such as a network or a combination of these, or may be carried on a carrier wave.
Furthermore, the program may be a part or all of another program, or may be recorded on a recording medium together with a separate program. Moreover, it may be divided and recorded on a plurality of recording media. Further, it may be recorded in any manner as long as it can be restored, such as compression or encryption.
100…情報処理装置
110…OS(A)
115…通信モジュール
120…OS(B)
125…通信モジュール
130…タスク割当処理モジュール
135…制限時間取得モジュール
140…CPU使用率取得モジュール
145…判断モジュール
150…閾値記憶モジュール
155…タスク割当モジュール
160…処理結果取得モジュール
165…ログ記憶モジュール
170…学習モジュール
200…画像処理装置
210…プリンター
220…スキャナー
230…符号化・復号装置
240…A4ファックス
DESCRIPTION OF
115:
125 ...
Claims (8)
前記第2のOSのCPU使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段
を有する情報処理装置。 Receiving means for receiving a command from the first OS to the second OS;
In the CPU usage rate of the second OS, if the instruction processing cannot be completed within the time limit provided in the instruction, the allocating means allocates the instruction processing to a task having a predetermined priority. An information processing apparatus.
請求項1に記載の情報処理装置。 The assigning means assigns a task that is performed in preference to a task that processes a command that has already been received, as a task having a predetermined priority.
The information processing apparatus according to claim 1.
請求項1に記載の情報処理装置。 If the processing of the command can be completed within the time limit provided in the command at the CPU usage rate of the second OS, the command is added to the queue of commands already received.
The information processing apparatus according to claim 1.
請求項1に記載の情報処理装置。 Using the relationship between the CPU usage rate and the time limit that can be handled by the CPU usage rate, it is determined whether the command processing can be completed within the time limit of the command received by the receiving means.
The information processing apparatus according to claim 1.
請求項4に記載の情報処理装置。 Using the relationship, the time limit corresponding to the CPU usage rate is set as a threshold value, and the command time limit is compared with the threshold value of the command received by the receiving unit, thereby processing the command within the time limit. Determine if it can be terminated,
The information processing apparatus according to claim 4.
請求項4に記載の情報処理装置。 Using the relationship, the CPU usage rate corresponding to the time limit is used as a threshold value, and the CPU usage rate of the second OS is compared with the threshold value, thereby completing the processing of the command within the time limit. Determine whether it can be done,
The information processing apparatus according to claim 4.
請求項4に記載の情報処理装置。 The relationship is learned according to past results,
The information processing apparatus according to claim 4.
第1のOSから第2のOSへの指令を受信する受信手段と、
前記第2のOSのCPU使用率では、前記指令に設けられている制限時間内に、該指令の処理が終了できない場合は、予め定められた優先度のタスクに該指令の処理を割り当てる割当手段
として機能させるための情報処理プログラム。 Computer
Receiving means for receiving a command from the first OS to the second OS;
In the CPU usage rate of the second OS, if the instruction processing cannot be completed within the time limit provided in the instruction, the allocating means allocates the instruction processing to a task having a predetermined priority. Information processing program to function as
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017170847A JP2019046339A (en) | 2017-09-06 | 2017-09-06 | Information processing device and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017170847A JP2019046339A (en) | 2017-09-06 | 2017-09-06 | Information processing device and information processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019046339A true JP2019046339A (en) | 2019-03-22 |
Family
ID=65812946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017170847A Pending JP2019046339A (en) | 2017-09-06 | 2017-09-06 | Information processing device and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019046339A (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137910A (en) * | 1994-11-15 | 1996-05-31 | Hitachi Ltd | Parallel data base processing method and its executing device |
JPH09319596A (en) * | 1996-05-31 | 1997-12-12 | Canon Inc | Device and method for scheduling task |
JP2001350639A (en) * | 2000-06-06 | 2001-12-21 | Atr Adaptive Communications Res Lab | Scheduling method in soft real-time |
JP2003337713A (en) * | 2002-05-21 | 2003-11-28 | Hitachi Ltd | Method for controlling processor |
JP2010173206A (en) * | 2009-01-30 | 2010-08-12 | Riso Kagaku Corp | Printer controller |
JP2012045874A (en) * | 2010-08-30 | 2012-03-08 | Seiko Epson Corp | Data storage processing apparatus in printing apparatus, printing apparatus, and data storage processing method |
WO2013030908A1 (en) * | 2011-08-26 | 2013-03-07 | 富士通株式会社 | Scheduling system, data processing system and scheduling method |
-
2017
- 2017-09-06 JP JP2017170847A patent/JP2019046339A/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137910A (en) * | 1994-11-15 | 1996-05-31 | Hitachi Ltd | Parallel data base processing method and its executing device |
JPH09319596A (en) * | 1996-05-31 | 1997-12-12 | Canon Inc | Device and method for scheduling task |
JP2001350639A (en) * | 2000-06-06 | 2001-12-21 | Atr Adaptive Communications Res Lab | Scheduling method in soft real-time |
JP2003337713A (en) * | 2002-05-21 | 2003-11-28 | Hitachi Ltd | Method for controlling processor |
JP2010173206A (en) * | 2009-01-30 | 2010-08-12 | Riso Kagaku Corp | Printer controller |
JP2012045874A (en) * | 2010-08-30 | 2012-03-08 | Seiko Epson Corp | Data storage processing apparatus in printing apparatus, printing apparatus, and data storage processing method |
WO2013030908A1 (en) * | 2011-08-26 | 2013-03-07 | 富士通株式会社 | Scheduling system, data processing system and scheduling method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8392635B2 (en) | Selectively enabling a host transfer interrupt | |
US8966130B2 (en) | Tag allocation for queued commands across multiple devices | |
JP2004038758A (en) | Storage controller, control method for storage controller, and program | |
US20140156851A1 (en) | Server facility, method for providing copying service for system of server facility, and copying program for system of sever facility | |
JP6565391B2 (en) | Information processing apparatus and information processing program | |
US20170329644A1 (en) | Computer-readable recording medium having stored therein program, information processing apparatus, information processing system, and method for processing information | |
US9219794B2 (en) | Information processing apparatus and non-transitory computer readable medium storing information processing program | |
US12028269B2 (en) | Method for optimal resource selection based on available GPU resource analysis in large-scale container platform | |
US10558237B2 (en) | Information processing apparatus | |
CN111327595A (en) | System and method for prioritizing on-demand scanning and on-demand scanning tasks | |
US20150220361A1 (en) | Parallel computer system, control method of parallel computer system, and computer-readable storage medium | |
JP2019046339A (en) | Information processing device and information processing program | |
US10491757B2 (en) | Image processing device, image processing system, and program | |
JP6492865B2 (en) | Information processing apparatus, program, and information processing method | |
JP4630766B2 (en) | A system having a primary system and a secondary system | |
US11397603B2 (en) | Information processing apparatus, control method therefor, and program | |
US10339462B2 (en) | System and method for executing a high bandwidth network activity as a background activity in a virtual desktop environment | |
JP4997063B2 (en) | Computer startup method and computer system | |
US9870249B2 (en) | Virtual computer system, method, and non-transitory computer readable medium | |
US9933982B2 (en) | Managing print job associated processing by user processes associated with separate logged-in users of an information processing apparatus | |
US11842066B2 (en) | Control apparatus and information processing system for providing a bridge apparatus between a host controller and a non-volatile storage medium to encrypt and decrypt data | |
JP6645212B2 (en) | Information processing method and information processing apparatus | |
JP2015158800A (en) | Data transfer control apparatus, data transfer control program, and data transfer control method | |
WO2016006228A1 (en) | Virtualization system and virtualization method | |
US11609731B2 (en) | Image forming apparatus, non-transitory computer readable medium, and image forming method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200717 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210908 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220125 |