JP5631022B2 - Processing device, processing allocation method, and program - Google Patents

Processing device, processing allocation method, and program Download PDF

Info

Publication number
JP5631022B2
JP5631022B2 JP2010049315A JP2010049315A JP5631022B2 JP 5631022 B2 JP5631022 B2 JP 5631022B2 JP 2010049315 A JP2010049315 A JP 2010049315A JP 2010049315 A JP2010049315 A JP 2010049315A JP 5631022 B2 JP5631022 B2 JP 5631022B2
Authority
JP
Japan
Prior art keywords
processing
task
executed
processing means
cpu
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.)
Expired - Fee Related
Application number
JP2010049315A
Other languages
Japanese (ja)
Other versions
JP2011186619A (en
Inventor
横山 英彦
英彦 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010049315A priority Critical patent/JP5631022B2/en
Publication of JP2011186619A publication Critical patent/JP2011186619A/en
Application granted granted Critical
Publication of JP5631022B2 publication Critical patent/JP5631022B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

複数の処理を時分割で実行することが可能な処理装置に関するものである。   The present invention relates to a processing apparatus capable of executing a plurality of processes in a time division manner.

従来、タスクと呼ばれるプログラムの実行単位を並列に実行して、複数の機能を提供するデータ処理装置がある(例えば特許文献1、特許文献2)。CPUが一つである場合には、CPUが時分割で複数のタスクを実行するため、タスクの数が増大するのに従い、単位時間あたりにCPUで実行されるタスクの数は減少する。その結果、一つのタスクで行われる処理にかかる時間は長くなる。   Conventionally, there is a data processing device that executes a program execution unit called a task in parallel and provides a plurality of functions (for example, Patent Document 1 and Patent Document 2). When the number of CPUs is one, the CPU executes a plurality of tasks in a time division manner, so that the number of tasks executed by the CPU per unit time decreases as the number of tasks increases. As a result, the time required for processing performed by one task becomes long.

特開2005−301890号公報JP 2005-301890 A 特開2007−149001号公報JP 2007-149001 A

複数のCPUあるいは単一パッケージに複数のCPUコアを実装したマルチコアプロセッサを用いて、複数のタスクを物理的に並列に実行することにより、単位時間あたりに実行されるタスクの数を増やす方法がある。   There is a method of increasing the number of tasks executed per unit time by executing a plurality of tasks physically in parallel using a multi-core processor in which a plurality of CPU cores are mounted on a plurality of CPUs or a single package. .

しかしながら、この方法でも、CPUの数を超える多数のタスクが存在する場合には、CPUが一つである場合と同様に、複数のCPUのそれぞれが時分割で複数のタスクを実行する。そのため、一つのタスクで行われる処理にかかる時間が長くなってしまうことがある。   However, even in this method, when there are a large number of tasks exceeding the number of CPUs, each of the plurality of CPUs executes a plurality of tasks in a time-sharing manner, as in the case of one CPU. For this reason, the time required for processing performed in one task may be increased.

データ処理装置の種類によっては、特定のタスクで行われる処理については、それにかかかる時間が長くなるのを避けたい場合がある。例えば、印刷ジョブに基づいて印刷を実行する印刷装置では、印刷ジョブから画像データを生成する処理に時間がかかってしまうと、印刷出力に時間がかかってしまう。従って、印刷ジョブから画像データを生成する処理にかかる時間が長くならないよう、多数のタスクが存在する場合でも、印刷ジョブから画像データを生成するタスクにはより多くの時間CPUを使えるようにしたい。   Depending on the type of data processing apparatus, there is a case where it is desired to avoid a long time for processing performed in a specific task. For example, in a printing apparatus that executes printing based on a print job, if it takes time to generate image data from the print job, it takes time to print out. Therefore, in order to prevent the time required for the process of generating image data from the print job from increasing, it is desired to use the CPU for a longer time for the task of generating image data from the print job, even when there are many tasks.

本発明はこのような課題を解決するため、その他の処理の実行を完全に停止してしまうことなく、特定の処理をより多く実行できるようにすることを目的とする。   In order to solve such a problem, an object of the present invention is to allow more specific processes to be executed without completely stopping the execution of other processes.

本発明に係わる処理装置は、複数の処理を時分割で実行することが可能な第1の処理手段と、複数の処理を時分割で実行することが可能な第2の処理手段と、実行すべき処理を前記第1の処理手段と前記第2の処理手段のそれぞれに割り当てる割り当て手段とを有し、実行すべき処理が予め決められた特定の処理である場合、前記割り当て手段は、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直、前記特定の処理を前記第1の処理手段に割り当て、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする。 A processing apparatus according to the present invention executes a first processing means capable of executing a plurality of processes in a time division, a second processing means capable of executing a plurality of processes in a time division, and And assigning means for allocating the processing to be performed to each of the first processing means and the second processing means, and when the processing to be executed is a predetermined specific process, already a process that is assigned to a processing unit and assigned directly to the second processing means, allocating the specific processing to the first processing means, in the specific process until the particular processing is completed It is characterized by restricting newly assigning no processing to the first processing means .

また、本発明に係わる割り当て方法は、複数の処理を時分割で実行することが可能な第1の処理手段と複数の処理を時分割で実行することが可能な第2の処理手段とのそれぞれに実行すべき処理を割り当てる割り当て方法であって、実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを有し、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする。 The allocation method according to the present invention includes a first processing unit capable of executing a plurality of processes in time division and a second processing unit capable of executing a plurality of processes in time division. If the process to be executed is a predetermined specific process, the process already assigned to the first processing means is assigned to the second processing means. If the first allocating step to reassign, to be executed process is the particular process, have a second allocation step of allocating the specific processing to the first processing means, the specific processing It is characterized in that it is limited to newly assign a process that is not the specific process to the first processing means until the process is completed .

また、本発明に係わるプログラムは、複数の処理を時分割で実行することが可能な第1の処理手段と複数の処理を時分割で実行することが可能な第2の処理手段とのそれぞれに実行すべき処理を割り当てる、コンピュータにより読み取り可能なプログラムであって、実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを前記コンピュータに実行させ、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする。 The program according to the present invention includes a first processing unit capable of executing a plurality of processes in time division and a second processing unit capable of executing a plurality of processes in time division. If the process to be executed is a computer-readable program that assigns a process to be executed and the process to be executed is a predetermined specific process, the process already assigned to the first processing means is assigned to the second process. A first assigning step for reassigning to the processing means, and a second assigning step for assigning the specific process to the first processing means if the process to be executed is the specific process. And restricting newly assigning a process that is not the specific process to the first processing means until the specific process is completed .

本発明によれば、複数の処理を時分割で実行することが可能な処理手段を複数有する処理装置において、他の処理の実行を完全に停止してしまうことなく、特定の処理をより多く実行できるようにすることができる。   According to the present invention, in a processing apparatus having a plurality of processing means capable of executing a plurality of processes in a time division manner, more specific processes are executed without completely stopping the execution of other processes. Can be able to.

データ処理装置の内部構成を示す図である。It is a figure which shows the internal structure of a data processor. タスク処理を説明するための概念図である。It is a conceptual diagram for demonstrating task processing. タスク情報の一例を示す図である。It is a figure which shows an example of task information. タスク投入処理を示すフローチャートである。It is a flowchart which shows a task input process. タスクスケジュール処理を示すフローチャートである。It is a flowchart which shows a task schedule process. マルチコアCPUの内部構成の一例を示す図である。It is a figure which shows an example of an internal structure of a multi-core CPU.

本発明に係る実施形態を説明する。   Embodiments according to the present invention will be described.

図1は本発明を適用可能なデータ処理装置の内部構成を示す図である。データ処理装置は大きく分けてメインボード100とサブボード108から構成されている。なお、メインボードとサブボードとに分けずにそれらを一つのボードにすることも可能であるが、下記では、データ処理装置がメインボード100とサブボード108の2つのボードから構成される場合を説明する。   FIG. 1 is a diagram showing an internal configuration of a data processing apparatus to which the present invention can be applied. The data processing apparatus is roughly composed of a main board 100 and a sub board 108. Although it is possible to make them one board without dividing the main board and sub board, in the following, the case where the data processing device is composed of two boards, the main board 100 and the sub board 108, will be described. explain.

メインボード100は、CPU101、不揮発性メモリ102、揮発性メモリ103、バスコントローラ104、ディスクコントローラ105及びUSBコントローラ106を備える。   The main board 100 includes a CPU 101, a nonvolatile memory 102, a volatile memory 103, a bus controller 104, a disk controller 105, and a USB controller 106.

CPU101は起動プログラム及び他のプログラムを実行する演算装置である。CPU101は複数のチップからなるマルチプロセッサとしてあるいは単一チップ内に複数の演算装置を組み込んだマルチコアプロセッサとして構成されている。図1ではそれぞれをCPU#1及びCPU#2としている。なお、OSが複数のCPUを扱うことが可能であれば、単体のCPUをそれぞれ別々に複数個用意しても良い。下記では、複数のCPUコアのそれぞれもCPUと呼ぶ。   The CPU 101 is an arithmetic device that executes a startup program and other programs. The CPU 101 is configured as a multiprocessor composed of a plurality of chips or as a multicore processor in which a plurality of arithmetic devices are incorporated in a single chip. In FIG. 1, CPU # 1 and CPU # 2 are used. If the OS can handle a plurality of CPUs, a plurality of single CPUs may be prepared separately. In the following, each of the plurality of CPU cores is also referred to as a CPU.

不揮発性メモリ(BOOT ROM)102は起動プログラムやOS(オペレーティングシステム)を格納している。なお、OSは後述のハードディスク装置107に格納されていても良い。揮発性メモリ(Volatile Memory)103はプログラムやデータを一時的に格納する。   A non-volatile memory (BOOT ROM) 102 stores a boot program and an OS (operating system). The OS may be stored in the hard disk device 107 described later. A volatile memory 103 temporarily stores programs and data.

バスコントローラ(Bus Controller)104はサブボード108と接続し、サブボード108との間の通信を制御する。ディスクコントローラ(Disk Controller)105はハードディスク装置(HDD)107を制御する。ハードディスク装置107は各種アプリケーションプログラムや各種データを格納し、ディスクコントローラ105はそれらの書き込みや読み出しを制御する。USBコントローラ(USB Controller)106はUSBメモリ等のUSBデバイス(不図示)を制御する。   A bus controller 104 is connected to the sub board 108 and controls communication with the sub board 108. A disk controller (Disk Controller) 105 controls a hard disk device (HDD) 107. The hard disk device 107 stores various application programs and various data, and the disk controller 105 controls writing and reading thereof. A USB controller 106 controls a USB device (not shown) such as a USB memory.

サブボード108は不揮発性メモリ109、CPU110、揮発性メモリ111、バスコントローラ112、デバイスコントローラ113及びイメージプロセッサ114を備える。   The sub board 108 includes a nonvolatile memory 109, a CPU 110, a volatile memory 111, a bus controller 112, a device controller 113, and an image processor 114.

不揮発性メモリ(BOOT ROM)109は起動プログラムを格納する。CPU110は起動プログラムやその他のプログラムを実行する演算装置である。揮発性メモリ(Volatile Memory)111はプログラムやデータを一時的に格納する。   A non-volatile memory (BOOT ROM) 109 stores a startup program. The CPU 110 is an arithmetic device that executes a startup program and other programs. Volatile memory 111 temporarily stores programs and data.

バスコントローラ(Bus Controller)112はメインボード100と接続し、メインボード100との間の通信を制御する。デバイスコントローラ(Device Controller)113は画像処理デバイスを制御し、それぞれ異なる画像処理を画像処理デバイスに実行させる。図1では、画像処理デバイスとしてスキャン装置(Scan Engine)115、印刷装置(Print Engine)116、ファクシミリ装置(Fax Engine)117がデバイスコントローラ113と接続している。イメージプロセッサ(Image Processor)114は画像データの生成などの画像形成処理を高速に実行する。   A bus controller (Bus Controller) 112 is connected to the main board 100 and controls communication with the main board 100. A device controller (Device Controller) 113 controls the image processing device and causes the image processing device to execute different image processing. In FIG. 1, a scanning device 115, a printing device 116, and a facsimile device 117 are connected to the device controller 113 as image processing devices. An image processor 114 executes image forming processing such as image data generation at high speed.

図2はCPU101で行われるタスク(プログラムの実行単位)の実行処理を説明するための概念図である。   FIG. 2 is a conceptual diagram for explaining a task (program execution unit) execution process performed by the CPU 101.

同時に複数の処理を並行して実行できるOS(マルチタスクOS)では、タイムスライスと呼ばれる規定時間の間CPUを一つのタスクに占有させる制御を繰り返すことにより、マルチタスク動作を実現する。つまり、CPUは規定時間の間一つのタスクを実行して、複数のタスクを時分割で実行する。これをマルチタスクスケジューリングと呼ぶ。   In an OS (multitask OS) capable of executing a plurality of processes in parallel at the same time, a multitask operation is realized by repeating control for occupying the CPU with one task for a specified time called a time slice. That is, the CPU executes one task for a specified time and executes a plurality of tasks in a time division manner. This is called multitask scheduling.

図2では、CPU#1(201)においてネットワークタスク202が現在実行されており、CPU#2(204)においてはストレージタスク205が現在実行されている。   In FIG. 2, the network task 202 is currently being executed in the CPU # 1 (201), and the storage task 205 is currently being executed in the CPU # 2 (204).

OSの一部であるタスクスケジューラ207はタイムスライスの経過や割り込みの発生などに起因して、現在実行中のネットワークタスク202の実行状態をタスク情報として実行待ち行列203に退避する。つまり、実行待ち行列203にあるネットワークタスクのタスク情報はCPUのレジスタ値などにより更新される。一方、実行待ち行列203にあるUI制御タスクのタスク情報をCPU#1に設定して、UI制御タスクをCPU#1に実行させる。同様に、タスクスケジューラ207はタイムスライスの経過や割り込みの発生などに起因して、現在実行中のストレージタスク205の実行状態を実行待ち行列206のタスク情報に退避する。つまり、実行待ち行列206にあるストレージタスクのタスク情報はCPUのレジスタ値などにより更新される。一方、実行待ち行列206にあるスキャンタスクのタスク情報をCPU#2に設定して、スキャンタスクをCPU#2に実行させる。このようなCPUにおけるタスクの実行の切り替えをタスクスイッチと呼ぶ。タスク情報の詳細は後述する(図4)。   The task scheduler 207, which is a part of the OS, saves the execution state of the network task 202 currently being executed in the execution queue 203 as task information due to the progress of time slices or the occurrence of an interrupt. That is, the task information of the network task in the execution queue 203 is updated with the register value of the CPU. On the other hand, the task information of the UI control task in the execution queue 203 is set in the CPU # 1, and the UI control task is executed by the CPU # 1. Similarly, the task scheduler 207 saves the execution state of the currently executing storage task 205 in the task information of the execution queue 206 due to the progress of the time slice or the occurrence of an interrupt. That is, the task information of the storage task in the execution queue 206 is updated with the register value of the CPU. On the other hand, the task information of the scan task in the execution queue 206 is set in the CPU # 2, and the scan task is executed by the CPU # 2. Such switching of task execution in the CPU is called a task switch. Details of the task information will be described later (FIG. 4).

タスクスケジューラ207はプログラムとしては一つであるが、CPU#1及びCPU#2のそれぞれで独立に実行されることにより、論理的には2つ存在することになる。よって、タスクスケジューラ#1がCPU#1でのタスクスケジューリングを制御し、タスクスケジューラ#2がCPU#2でのタスクスケジューリングを制御する。   There is only one task scheduler 207 as a program, but there are two logically by being executed independently by each of CPU # 1 and CPU # 2. Therefore, task scheduler # 1 controls task scheduling in CPU # 1, and task scheduler # 2 controls task scheduling in CPU # 2.

このようなマルチタスクスケジューリングで、全てのタスクがタイムスライスを完全に使い切ると仮定した場合、実行待ち行列に配置されているタスクの数が多くになるにつれて、ある一つのタスクがCPUで実行された後、次に実行されるまでの時間は長くなる。   In such multitask scheduling, assuming that all tasks use up the time slice completely, one task is executed by the CPU as the number of tasks placed in the execution queue increases. After that, the time until the next execution becomes longer.

例えば、PDL処理タスクは、ローカルエリアネットワーク(LAN)等を経由して情報処理装置から受信したプリントジョブをイメージデータに展開し、そのイメージデータをサブボード108のCPU110に送信する。そのあと、印刷装置116がCPU110、イメージプロセッサ114及びデバイスコントローラ113の制御の下、イメージデータに基づく画像を紙媒体に印刷する。実行待ち行列206に配置されたタスクの数が増えると、PDL処理タスクが単位時間あたりにCPU#2を占有できる回数(または時間)は減少するため、PDL処理タスクがプリントジョブをイメージデータに展開するのに掛かる時間は長くなる。すると、データ処理装置の性能指標の一つであるPPM値(Page Per Minute:1分間あたりの印刷ページ数)が下がる場合が生じてしまう。   For example, the PDL processing task develops a print job received from the information processing apparatus via a local area network (LAN) or the like into image data, and transmits the image data to the CPU 110 of the sub board 108. Thereafter, the printing device 116 prints an image based on the image data on a paper medium under the control of the CPU 110, the image processor 114, and the device controller 113. As the number of tasks placed in the execution queue 206 increases, the number of times (or time) that the PDL processing task can occupy the CPU # 2 per unit time decreases, so the PDL processing task expands the print job into image data. It takes longer to do. Then, the PPM value (Page Per Minute: the number of printed pages per minute), which is one of the performance indexes of the data processing apparatus, may decrease.

図2の占有タスク208については後述する。   The occupation task 208 in FIG. 2 will be described later.

図3は、実行待ち行列203または206に配置されるタスクのタスク情報の一例を示す図である。複数のタスクのそれぞれごとに図3のようなタスク情報が存在する。   FIG. 3 is a diagram illustrating an example of task information of tasks arranged in the execution queue 203 or 206. Task information as shown in FIG. 3 exists for each of a plurality of tasks.

タスクID301はタスクを一意に識別する識別子である。タスク状態302はタスクの状態を示す。コード・アドレスリスト303はタスク自身の実行コードが配置されたメモリアドレス群を示す。データ・アドレスリスト304はタスクが用いるデータが配置されたメモリアドレス群を示す。レジスタ情報305はそのタスクを実行していたときのCPUのレジスタ値を示す。   The task ID 301 is an identifier that uniquely identifies the task. Task state 302 indicates the state of the task. The code / address list 303 shows a memory address group in which the execution code of the task itself is arranged. The data address list 304 shows a memory address group in which data used by the task is arranged. Register information 305 indicates the register value of the CPU when the task is being executed.

タスクスケジューラ207は実行待ち行列203または206に配置されているタスク情報を参照して、CPUのレジスタ値等の設定または操作をすることにより、タスクの切り替えを実行する。   The task scheduler 207 executes task switching by referring to the task information arranged in the execution queue 203 or 206 and setting or operating the CPU register value or the like.

下記では、図4及び図5のフローチャートを参照しながら、メインボード100で行われるタスク制御処理を説明する。   Below, the task control processing performed in the main board 100 is demonstrated, referring the flowchart of FIG.4 and FIG.5.

図4は、メインボード100がCPU#1及びCPU#2の2つのCPUを有する場合にタスクスケジューラ207が実行するタスク投入処理を示すフローチャートである。ここでは、タスクスケジューラ207が、実行すべきタスクをCPU#1及びCPU#2のいずれかに割り当てる。   FIG. 4 is a flowchart showing a task input process executed by the task scheduler 207 when the main board 100 has two CPUs, CPU # 1 and CPU # 2. Here, the task scheduler 207 assigns a task to be executed to either the CPU # 1 or the CPU # 2.

まず、タスクスケジューラ207は、あるタスクを実行するためにそのタスクを投入するにあたり、そのタスクが占有タスクであるかどうかを判定する(S401)。   First, the task scheduler 207 determines whether or not the task is an occupied task when the task is submitted to execute a certain task (S401).

占有タスクとは、CPUを連続的に占有しつづけることのできるタスクである。占有タスクが占有することになっているCPUを占有CPUと呼ぶ。いずれのタスクを占有タスクにするか、いずれのCPUを占有CPUにするかは指定可能であり、指定されたタスクを占有タスクとして登録し、指定されたCPUを占有CPUとして登録する。図2の例では、PDL処理タスクが占有タスク、CPU#2が占有CPUになっている。   The occupied task is a task that can continuously occupy the CPU. A CPU that is occupied by an occupied task is called an occupied CPU. It is possible to specify which task is to be an exclusive task or which CPU is to be an exclusive CPU. The specified task is registered as an exclusive task, and the specified CPU is registered as an exclusive CPU. In the example of FIG. 2, the PDL processing task is an occupied task and CPU # 2 is an occupied CPU.

タスクが占有タスクであれば、タスクスケジューラ207は、CPU#2で実行中のタスクについて実行待ち行列206中のタスク情報を更新する。さらにCPU#2の実行待ち行列206に配置されている各タスクのタスク情報を別のCPUであるCPU#1の実行待ち行列203に移動する(S402)。図2の例では、ストレージタスク、スキャンタスク、ファックスタスク及びプリントタスクのそれぞれのタスク情報を実行待ち行列206から実行待ち行列203に移動する。   If the task is an exclusive task, the task scheduler 207 updates the task information in the execution queue 206 for the task being executed by the CPU # 2. Furthermore, the task information of each task arranged in the execution queue 206 of CPU # 2 is moved to the execution queue 203 of CPU # 1, which is another CPU (S402). In the example of FIG. 2, the task information of each of the storage task, scan task, fax task, and print task is moved from the execution queue 206 to the execution queue 203.

つぎに、タスクスケジューラ207は占有タスクであるPDL処理タスクのタスク情報をCPU#2の実行待ち行列206に配置する(S403)。さらに、タスクスケジューラ207は占有タスク動作モードフラグに1を設定する(S404)。この占有タスク動作モードフラグは揮発性メモリ103に記憶されており、その初期値は0(零)である。   Next, the task scheduler 207 places task information of the PDL processing task, which is an exclusive task, in the execution queue 206 of the CPU # 2 (S403). Further, the task scheduler 207 sets the exclusive task operation mode flag to 1 (S404). This exclusive task operation mode flag is stored in the volatile memory 103, and its initial value is 0 (zero).

占有タスクではないとS401で判定した場合には、タスクスケジューラ207は占有タスク動作モードフラグが1であるかどうかを判定する(S405)。占有タスク動作モードフラグが1である場合には、占有タスクがCPU#2を占有しているので、タスクスケジューラ207はタスクのタスク情報をCPU#1の実行待ち行列203に配置する(S406)。占有タスク動作モードフラグが1ではない場合には、どちらのCPUも占有タスクによって占有されていないので、タスクスケジューラ207は実行待ちのタスクが少ない方の実行待ち行列にタスクのタスク情報を配置する(S407)。実行待ちのタスクの数が実行待ち行列203と実行待ち行列206との間で同じである場合、タスクスケジューラ207は占有CPUではないCPU#1の実行待ち行列203にタスクのタスク情報を配置するものとする。ただし、これに限るものではない。   If it is determined in S401 that the task is not an exclusive task, the task scheduler 207 determines whether the exclusive task operation mode flag is 1 (S405). If the occupied task operation mode flag is 1, the occupied task occupies CPU # 2, so the task scheduler 207 places task information of the task in the execution queue 203 of CPU # 1 (S406). If the occupied task operation mode flag is not 1, since neither CPU is occupied by the occupied task, the task scheduler 207 places the task information of the task in the execution queue with the fewer waiting tasks ( S407). When the number of tasks waiting for execution is the same between the execution queue 203 and the execution queue 206, the task scheduler 207 arranges task information of the task in the execution queue 203 of the CPU # 1 that is not the exclusive CPU. And However, the present invention is not limited to this.

図5は、タスクスケジューラ207が実行するタスクスケジュール処理を示すフローチャートである。タスクスケジュール処理では、タスクスケジューラ207は各CPUにて、実行待ち行列から一つのタスクを選択して、そのタスクをタイムスライスの間CPUに実行させるためのタスクスケジューリングを行う。   FIG. 5 is a flowchart showing task schedule processing executed by the task scheduler 207. In the task schedule processing, the task scheduler 207 selects one task from the execution queue at each CPU, and performs task scheduling for causing the CPU to execute the task during a time slice.

タスクスケジューラ207は、CPUで現在実行中のタスクの処理が完了したかどうかを判定する(S501)。そのタスクの処理が完了した場合には、タスクスケジューラ207はそのタスクのタスク情報を実行待ち行列から削除する(S502)。さらに、タスクスケジューラ207はそのタスクが占有タスクであるかどうかを判定する(S503)。タスクが占有タスクであれば、タスクスケジューラ207は占有タスク動作モードフラグに0(零)を設定する(S504)。   The task scheduler 207 determines whether the processing of the task currently being executed by the CPU is completed (S501). When the processing of the task is completed, the task scheduler 207 deletes the task information of the task from the execution queue (S502). Further, the task scheduler 207 determines whether the task is an exclusive task (S503). If the task is an exclusive task, the task scheduler 207 sets the exclusive task operation mode flag to 0 (zero) (S504).

タスクの処理が完了していないとS501で判定した場合には、タスクスケジューラ207はタイムスライスが終了したかどうかを判定する(ステップS505)。タイムスライスが終了したかどうかの判断は、規定時間を初期値とするカウンタをデクリメントしていきながらカウンタが0になったかどうかを判定しても良いし、ハードウェアタイマで時間を計測して規定時間が経過したかどうかを判定しても良い。   If it is determined in S501 that the task processing has not been completed, the task scheduler 207 determines whether or not the time slice has ended (step S505). Whether the time slicing has ended can be determined by decrementing the counter whose initial value is the specified time, whether the counter has reached 0, or by measuring the time with a hardware timer. It may be determined whether time has passed.

タイムスライスが終了していなければ、そのタスクはCPUを使用することができるので、タスクスケジューラ207はそのタスクをCPUに実行させる(S508)。   If the time slice has not ended, the task can use the CPU, and the task scheduler 207 causes the CPU to execute the task (S508).

一方、タイムスライスが終了している場合には、タスクスケジューラ207は、そのCPUが規定時間の間CPUを使い果たしたと判断して、現在のCPUのレジスタ値等をタスク情報として実行待ち行列に保存する(S506)。さらに、タスクスケジューラ207は新たなタスクをCPUに実行させるため、実行待ち行列から一つのタスクを選択し、そのタスクのタスク情報をCPUのレジスタ値として設定する(S507)。そして、タスクスケジューラ207はそのタスクをCPUに実行させる(S508)。   On the other hand, if the time slice has been completed, the task scheduler 207 determines that the CPU has used up the CPU for a specified time, and stores the current CPU register value and the like as task information in the execution queue. (S506). Further, in order to cause the CPU to execute a new task, the task scheduler 207 selects one task from the execution queue and sets task information of the task as a register value of the CPU (S507). Then, the task scheduler 207 causes the CPU to execute the task (S508).

上記のタスクスケジューラ207の処理により、占有タスクとして登録されたタスクの実行を開始する場合、占有CPUとして指定されたCPUの実行待ち行列に配置されているタスクのタスク情報を他のCPUの実行待ち行列に移動することができる。その際に占有タスク動作モードフラグに1を設定することにより、それ以降は、他のタスクを占有CPUに割り当てずに他のCPUに割り当てることとなり、占有タスクをタスクの処理が完了するまで占有CPUで常に実行可能である。そのため、所望の実行性能を実現することができる。   When the task scheduler 207 starts executing a task registered as an exclusive task, the task information of the task placed in the execution queue of the CPU designated as the exclusive CPU is awaited to be executed by another CPU. You can move to the matrix. At that time, by setting the exclusive task operation mode flag to 1, other tasks are assigned to other CPUs without being assigned to the exclusive CPU, and the exclusive tasks are assigned until the task processing is completed. Is always feasible. Therefore, desired execution performance can be realized.

占有タスクの処理が完了すると、占有タスク動作モードフラグに0(零)を設定することにより、それ以降は、タスクを実行待ちのタスクが少ない方のCPUに配置することが可能となり、各CPUの負荷が平準化される。   When the processing of the dedicated task is completed, the dedicated task operation mode flag is set to 0 (zero), and thereafter, the task can be allocated to the CPU with fewer tasks waiting to be executed. The load is leveled.

図6はマルチコアCPUの内部構成の一例を示す図である。図6(A)は複数のCPUでL2キャッシュを共有する形式を示す。図6(B)は複数のCPUごとにL2キャッシュを分離する形式を示す。   FIG. 6 is a diagram illustrating an example of the internal configuration of the multi-core CPU. FIG. 6A shows a format in which a plurality of CPUs share the L2 cache. FIG. 6B shows a format for separating the L2 cache for each of a plurality of CPUs.

本実施形態では、タスク情報を特定のCPUの実行待ち行列から他方のCPUの実行待ち行列に移動させることにより、特定のCPUで特定のタスクを実行させている。そのため、実行待ち行列をL2キャッシュ上に構築し、さらにそのL2キャッシュを複数のCPUで共有させることができれば(図6(A)の形式)、他方のCPUは比較的高速にタスク情報にアクセス可能である。一方、L2キャッシュを複数のCPUがそれぞれ持つ場合(図6(B)の形式)、特定のCPU側のL2キャッシュには、このCPUではもう使われることがないもののメモリにまだ書き込まれていない移動すべきタスク情報が存在する。他方のCPU側のL2キャッシュには、移動されたタスク情報を参照しようとしても、そのタスク情報が格納されていない。よって、アクセスが遅くなる可能性がある。このため、タスク情報を移動するのに先立ちL2キャッシュのフラッシュを行い、L2キャッシュからメモリへのデータの書き込みを確定させることで、他方のCPUによるタスク情報へのアクセスの遅延を抑制することが望ましい。逆に、L2キャッシュを共有する場合には、他方のCPUがL2キャッシュのタスク情報を参照可能であるため、タスク情報の移動時にはL2キャッシュのフラッシュを行わないことが望ましい。   In this embodiment, a specific task is executed by a specific CPU by moving task information from the execution queue of the specific CPU to the execution queue of the other CPU. Therefore, if the execution queue is constructed on the L2 cache and the L2 cache can be shared by a plurality of CPUs (in the form shown in FIG. 6A), the other CPU can access the task information at a relatively high speed. It is. On the other hand, when a plurality of CPUs each have an L2 cache (the form shown in FIG. 6B), the movement that has not been written to the memory yet to be used by this CPU in the L2 cache on the specific CPU side. There is task information that should be done. Even if it is attempted to refer to the moved task information, the task information is not stored in the L2 cache on the other CPU side. Therefore, access may be delayed. For this reason, it is desirable to suppress the delay of access to the task information by the other CPU by flushing the L2 cache prior to moving the task information and confirming the writing of data from the L2 cache to the memory. . Conversely, when the L2 cache is shared, the other CPU can refer to the task information in the L2 cache, so it is desirable not to flush the L2 cache when the task information is moved.

以上説明したように、本実施形態によれば、CPUコア或いはCPUを連続的に占有しつづけるタスクを占有タスクとして予め登録する。占有タスクの実行を開始するときには、占有タスクを特定のCPUコア或いは特定のCPUで実行させると共に、他のタスクは他のCPUコア或いは他のCPUで実行させるように制御する。そして、占有タスクの処理が完了した場合には、他のタスクを特定のCPUコア或いは特定のCPUでも実行可能にする。こうすることにより、複数のタスクが並列にCPUで実行される場合においても、特定のタスクを優先的に実行して、データ処理装置における所定の性能(例えば、製品カタログなどで提示されている性能)を実現することができる。   As described above, according to the present embodiment, a task that continuously occupies a CPU core or CPU is registered in advance as an occupancy task. When the execution of the dedicated task is started, the dedicated task is executed by a specific CPU core or a specific CPU, and other tasks are controlled to be executed by another CPU core or another CPU. When the processing of the occupied task is completed, other tasks can be executed by a specific CPU core or a specific CPU. By doing this, even when a plurality of tasks are executed in parallel by the CPU, a specific task is preferentially executed and a predetermined performance in the data processing device (for example, a performance presented in a product catalog etc.) ) Can be realized.

〔第2の実施形態〕
上記の実施形態では、占有タスクとして登録されているタスクの実行を開始するときに、他のタスクのタスク情報を他のCPUの実行待ち行列に移動していた。しかしながら、占有タスクの投入後、その占有タスクが他のタスクからのイベントを待つ状態(イベント待ち状態)になった場合、他のタスクからのイベント通知があるまで、別段処理を行わない。この場合は、占有タスクが占有CPUを独占しておく必要がないにもかかわらず、他のタスクは占有CPUを利用することができない。これでは、CPUの利用効率が下がる。
[Second Embodiment]
In the above embodiment, when the execution of a task registered as an exclusive task is started, the task information of another task is moved to the execution queue of another CPU. However, if the occupied task enters a state of waiting for an event from another task (event waiting state) after the dedicated task is input, no further processing is performed until an event notification is received from the other task. In this case, although the dedicated task does not need to monopolize the dedicated CPU, other tasks cannot use the dedicated CPU. This reduces the CPU utilization efficiency.

例えば、PDL処理タスクが占有タスクであり、そのPDL処理タスクがジョブ管理タスクからプリントジョブを受信したことを示すジョブ到着イベントを通知されるのを待っている場合、PDL処理タスクは処理を行わない。   For example, when the PDL processing task is an exclusive task and the PDL processing task is waiting for a job arrival event indicating that a print job has been received from the job management task, the PDL processing task does not perform processing. .

このような課題に対処するべく、占有タスクの単位時間あたりの実行回数をカウントするカウンタを設けてもよい。このカウント値は揮発性メモリ103に記憶されるものとする。   In order to deal with such a problem, a counter that counts the number of times the occupied task is executed per unit time may be provided. This count value is stored in the volatile memory 103.

タスクスケジューラ207はS401でタスクが占有タスクであると判定した場合、占有タスクの単位時間あたりの実行回数をカウントし始める。そのカウント値が第1の閾値(例えば5回)を下回っている間は、占有CPUの実行待ち行列に配置されている他のタスクのタスク情報を他のCPUの実行待ち行列に移動させない。つまり、占有タスクの処理が本格的に開始するまで、他のタスクのタスク情報を移動させず、他のタスクを占有CPUで実行させる。なお、第1の閾値は適宜指定可能である。   When the task scheduler 207 determines in S401 that the task is an exclusive task, the task scheduler 207 starts counting the number of executions of the exclusive task per unit time. While the count value is below the first threshold (for example, 5 times), the task information of other tasks arranged in the execution queue of the dedicated CPU is not moved to the execution queue of the other CPU. That is, the task information of other tasks is not moved, but the other tasks are executed by the dedicated CPU until the processing of the occupied tasks starts in earnest. The first threshold can be designated as appropriate.

第2の実施形態によれば、占有タスクの単位時間あたりの実行回数を計測し、これが予め指定された回数を下回っている間は、占有タスク以外のタスクのタスク情報を他のCPUの実行待ち行列に移動させない。例えば、PDL処理タスクがプリントジョブを受信しイメージデータへの展開を開始するまでは、他のタスクを占有CPUで実行可能にする。こうすることで、CPUの利用効率を下げないようにすることが可能である。   According to the second embodiment, the number of executions of the occupied task per unit time is measured, and while this is less than the number of times designated in advance, the task information of tasks other than the occupied task is awaited to be executed by another CPU. Do not move to the queue. For example, until the PDL processing task receives the print job and starts developing the image data, other tasks can be executed by the dedicated CPU. By doing so, it is possible to prevent the CPU utilization efficiency from being lowered.

なお、占有タスクの単位時間あたりの実行頻度を計測するものであれば、単位時間あたりの実行回数のほか、単位時間あたりの実行時間でもよい。   As long as the frequency of execution of the occupied task per unit time is measured, the execution time per unit time may be used in addition to the number of executions per unit time.

〔第3の実施形態〕
上記の実施形態では、占有タスク以外の全てのタスクがCPU#1に割り当てられるため、多数のタスクが並列に動作している場合には、CPU#1の負荷が多大になる。例えば、ローカルUIの制御を司るUI制御タスクのように、ユーザからの指示を速やかに受信するとともにその指示に対して必要な情報を速やかに表示する必要があるタスクの処理が滞ると、操作性が著しく低下してしまう。
[Third Embodiment]
In the above embodiment, since all tasks other than the dedicated task are assigned to the CPU # 1, the load on the CPU # 1 becomes large when a large number of tasks are operating in parallel. For example, if the processing of a task that needs to promptly receive an instruction from the user and promptly display information necessary for the instruction, such as a UI control task that controls the local UI, is delayed. Will drop significantly.

このような課題に対処するべく、占有タスク以外の特定のタスクの単位時間あたりの実行回数をカウントするカウンタを設けてもよい。このカウント値は揮発性メモリ103に記憶されるものとする。   In order to deal with such a problem, a counter that counts the number of executions of a specific task other than the occupied task per unit time may be provided. This count value is stored in the volatile memory 103.

占有タスク以外の特定のタスクがUI制御タスクである場合には、タスクスケジューラ207はS401でタスクがUI制御タスクであると判定するのに応じて、UI制御タスクの単位時間あたりの実行回数をカウントし始める。そのカウント値が第2の閾値(例えば3回)を下回った場合には、占有タスク動作モードを解除するべく、占有タスク動作モードフラグに0(零)を設定する。こうすることで、占有タスク以外のタスクの動作があまりにも遅くなった場合には、占有CPUで他のタスクも実行可能にする。第2の閾値は適宜指定可能である。   If a specific task other than the exclusive task is a UI control task, the task scheduler 207 counts the number of executions per unit time of the UI control task in response to determining in S401 that the task is a UI control task. Begin to. When the count value falls below a second threshold value (for example, 3 times), 0 (zero) is set in the occupied task operation mode flag in order to release the occupied task operation mode. In this way, when the operation of tasks other than the dedicated task becomes too slow, other tasks can be executed by the dedicated CPU. The second threshold can be designated as appropriate.

なお、一時的に操作性が低下しても印刷を高速に行わせたいケースも存在するので、第2の閾値に基づいて占有タスク動作モードを解除する機能を働かせるかどうかについてはそれを選択可能に構成することが望ましい。   Note that there are cases where you want to print at high speed even if the operability temporarily declines, so you can select whether to activate the function to release the exclusive task operation mode based on the second threshold. It is desirable to configure.

また、UI制御タスクの単位時間あたりの実行頻度を計測するものであれば、単位時間あたりの実行回数でも、単位時間あたりの実行時間でもよい。   Moreover, as long as the frequency of execution per unit time of the UI control task is measured, the number of executions per unit time or the execution time per unit time may be used.

第3の実施形態によれば、占有タスク以外の特定のタスクの単位時間あたりの実行回数を計測し、これが予め指定された回数を下回った場合には占有タスク動作モードを解除する。こうすることで、例えば操作性が著しく低下するのを防止することができる。   According to the third embodiment, the number of executions per unit time of a specific task other than the occupied task is measured, and the occupied task operation mode is canceled when the number of executions falls below a predetermined number. By doing so, it is possible to prevent, for example, the operability from being significantly lowered.

〔その他の実施形態〕
上記の実施形態では、CPUコア或いはCPUが2つの場合を説明してきたが、CPUコア或いはCPUが3つ以上である場合でも、本発明は適用可能である。
[Other Embodiments]
In the above embodiment, the case where there are two CPU cores or CPUs has been described. However, the present invention is applicable even when there are three or more CPU cores or CPUs.

また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。   The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

100 メインボード
101 CPU
102 不揮発性メモリ
103 揮発性メモリ
104 バスコントローラ
105 ディスクコントローラ
106 USBコントローラ
107 ハードディスク装置
108 サブボード
109 不揮発性メモリ
110 CPU
111 揮発性メモリ
112 バスコントローラ
113 デバイスコントローラ
114 イメージプロセッサ
115 スキャン装置
116 印刷装置
117 ファクシミリ装置
100 main board 101 CPU
102 Nonvolatile Memory 103 Volatile Memory 104 Bus Controller 105 Disk Controller 106 USB Controller 107 Hard Disk Device 108 Subboard 109 Nonvolatile Memory 110 CPU
111 Volatile Memory 112 Bus Controller 113 Device Controller 114 Image Processor 115 Scanning Device 116 Printing Device 117 Facsimile Device

Claims (12)

複数の処理を時分割で実行することが可能な第1の処理手段と、
複数の処理を時分割で実行することが可能な第2の処理手段と、
実行すべき処理を前記第1の処理手段と前記第2の処理手段のそれぞれに割り当てる割り当て手段とを有し
実行すべき処理が予め決められた特定の処理である場合、前記割り当て手段は、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直、前記特定の処理を前記第1の処理手段に割り当て、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする処理装置。
A first processing means capable of executing a plurality of processes in a time-sharing manner;
A second processing means capable of executing a plurality of processes in a time-sharing manner;
The processing to be executed and a assigning means for assigning to each of said second processing means and the first processing means,
If processing to be executed is a specific processing determined in advance, the allocation means, the already assigned process to the first processing means is assigned directly to the second processing unit, the specific processing Is assigned to the first processing means, and the processing apparatus is restricted from newly assigning a process that is not the specific process to the first processing means until the specific process is completed .
少なくとも一つの処理を前記特定の処理として登録する登録手段を有することを特徴とする請求項1に記載の処理装置。   The processing apparatus according to claim 1, further comprising registration means for registering at least one process as the specific process. 前記特定の処理が終了した場合、前記割り当て手段は、前記第1の処理手段に前記特定の処理ではない処理を割り当て可能にすることを特徴とする請求項1または2に記載の処理装置。   3. The processing apparatus according to claim 1, wherein, when the specific process ends, the assigning unit can assign a process that is not the specific process to the first processing unit. 4. 前記特定の処理の単位時間あたりの実行頻度を計測する計測手段を有し、
実行すべき処理が前記特定の処理である場合であって、かつ前記計測手段で計測した実行頻度が所定の値を超えた場合に、前記割り当て手段は、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直すことを特徴とする請求項1乃至3のいずれか1項に記載の処理装置。
Measuring means for measuring the execution frequency per unit time of the specific process;
When the process to be executed is the specific process and the execution frequency measured by the measuring unit exceeds a predetermined value, the allocating unit is already allocated to the first processing unit. operation being a processing device according to any one of claims 1 to 3, wherein the assigned scores directly to the second processing means.
前記特定の処理ではない処理の単位時間あたりの実行頻度を計測する第2の計測手段を有し、
前記第2の計測手段で計測した実行頻度が第2の所定の値を下回った場合に、前記割り当て手段は、前記第1の処理手段に前記特定の処理ではない処理を割り当て可能にすることを特徴とする請求項1乃至4のいずれか1項に記載の処理装置。
A second measuring unit that measures an execution frequency per unit time of the process that is not the specific process;
When the execution frequency measured by the second measuring unit is less than a second predetermined value, the allocating unit can allocate a process that is not the specific process to the first processing unit. The processing apparatus according to claim 1, wherein the processing apparatus is characterized.
前記第2の計測手段で計測した実行頻度が第2の所定の値を下回った場合に前記第1の処理手段に前記特定の処理ではない処理を割り当て可能にする機能を働かせるか否かを選択可能にする選択手段を有することを特徴とする請求項5項に記載の処理装置。   Select whether or not to activate a function that allows a process other than the specific process to be assigned to the first processing means when the execution frequency measured by the second measuring means falls below a second predetermined value. 6. The processing apparatus according to claim 5, further comprising selection means for enabling. 前記第1の処理手段で実行されるべき処理の実行待ち行列と前記第2の処理手段で実行されるべき処理の待ち行列を有し、
前記割り当て手段は、前記第1の処理手段の実行待ち行列に並んでいる処理を前記第2の処理手段の待ち行列に移動することを特徴とする請求項1乃至6のいずれか1項に記載の処理装置。
An execution queue for processing to be executed by the first processing means and a queue for processing to be executed by the second processing means;
7. The apparatus according to claim 1, wherein the allocating unit moves a process queued in the execution queue of the first processing unit to a queue of the second processing unit. 8. Processing equipment.
前記第1の処理手段及び前記第2の処理手段は、プログラムの実行単位である複数のタスクを時分割で実行可能なCPUであり、
前記第1の処理手段及び前記第2の処理手段で実行される処理は、タスクによって行われる処理であることを特徴とする請求項1乃至7のいずれか1項に記載の処理装置。
The first processing means and the second processing means are CPUs capable of executing a plurality of tasks as program execution units in a time-sharing manner,
The processing apparatus according to claim 1, wherein the processing executed by the first processing unit and the second processing unit is processing performed by a task.
前記割り当て手段は、実行すべき処理が前記特定の処理であるかどうかを判定することを特徴とする請求項1乃至8のいずれか1項に記載の処理装置。The processing device according to claim 1, wherein the assigning unit determines whether or not a process to be executed is the specific process. 前記割り当て手段は、実行すべき処理が前記特定の処理である場合、前記特定の処理ではない処理を前記第1の処理手段に割り当てないモードに設定し、前記特定の処理が終了した場合、前記モードを解除することを特徴とする請求項1乃至9のいずれか1項に記載の処理装置。When the process to be executed is the specific process, the assigning unit sets a process that is not the specific process to a mode that is not assigned to the first processing unit, and when the specific process is completed, The processing apparatus according to claim 1, wherein the mode is canceled. 複数の処理を時分割で実行することが可能な第1の処理手段と複数の処理を時分割で実行することが可能な第2の処理手段とのそれぞれに実行すべき処理を割り当てる割り当て方法であって、
実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと
実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを有し、
前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする割り当て方法。
An allocation method for allocating a process to be executed to each of a first processing means capable of executing a plurality of processes in a time-sharing manner and a second processing means capable of executing a plurality of processes in a time-sharing manner. There,
A first assigning step for reassigning a process already assigned to the first processing means to the second processing means when the process to be executed is a predetermined specific process;
If processing to be executed is the particular process, it has a second allocation step of allocating the specific processing to the first processing means,
An assignment method characterized by restricting the assignment of a process that is not the specific process to the first processing means until the specific process is completed .
複数の処理を時分割で実行することが可能な第1の処理手段と複数の処理を時分割で実行することが可能な第2の処理手段とのそれぞれに実行すべき処理を割り当てる、コンピュータにより読み取り可能なプログラムであって、
実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと
実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを前記コンピュータに実行させ
前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とするプログラム。
By assigning a process to be executed to each of a first processing means capable of executing a plurality of processes in a time division and a second processing means capable of executing a plurality of processes in a time division, by a computer A readable program,
A first assigning step for reassigning a process already assigned to the first processing means to the second processing means when the process to be executed is a predetermined specific process;
When the process to be executed is the specific process, the computer is caused to execute a second assignment step of assigning the specific process to the first processing unit ,
A program for restricting newly assigning a process that is not the specific process to the first processing means until the specific process is completed .
JP2010049315A 2010-03-05 2010-03-05 Processing device, processing allocation method, and program Expired - Fee Related JP5631022B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010049315A JP5631022B2 (en) 2010-03-05 2010-03-05 Processing device, processing allocation method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010049315A JP5631022B2 (en) 2010-03-05 2010-03-05 Processing device, processing allocation method, and program

Publications (2)

Publication Number Publication Date
JP2011186619A JP2011186619A (en) 2011-09-22
JP5631022B2 true JP5631022B2 (en) 2014-11-26

Family

ID=44792829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010049315A Expired - Fee Related JP5631022B2 (en) 2010-03-05 2010-03-05 Processing device, processing allocation method, and program

Country Status (1)

Country Link
JP (1) JP5631022B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0730946A (en) * 1993-07-08 1995-01-31 N T T Idou Tsuushinmou Kk Mobile communications service controller
JPH07114517A (en) * 1993-10-15 1995-05-02 Fujitsu Ltd Program execution control system of multiprocessor system
JP3893136B2 (en) * 2004-05-13 2007-03-14 ファームウェアシステム株式会社 Embedded computer control program, recording medium recording the program, and embedded system
JP4961931B2 (en) * 2006-09-29 2012-06-27 富士通株式会社 Job execution scheduling program, job execution scheduling method, and job execution scheduling apparatus
JP2008186208A (en) * 2007-01-30 2008-08-14 Hitachi Ltd Cpu load reducing method and monitoring/control server

Also Published As

Publication number Publication date
JP2011186619A (en) 2011-09-22

Similar Documents

Publication Publication Date Title
JP5598229B2 (en) Job distributed processing system, information processing apparatus, and program
JP5050601B2 (en) Resource allocation method for job, resource allocation method for job, and program
JP6341628B2 (en) Information processing apparatus, information processing method, information processing system, and program
JP5482528B2 (en) Printed document conversion apparatus and program
JP6136020B2 (en) Image forming apparatus, parallel processing control method, and control program
JP2012081626A (en) Image forming apparatus, image processing method, and program
JP2009241584A (en) Method of canceling printing job submitted to printer
JP6372262B2 (en) Printing apparatus and program
JP6206451B2 (en) Distributed printing control program, distributed printing control apparatus, and distributed printing control method
JP2012022503A (en) Print document conversion device and program
US9250842B2 (en) Image forming apparatus processing a plurality of pages in parallel
JP5631022B2 (en) Processing device, processing allocation method, and program
US10209931B2 (en) Image processing apparatus and image forming apparatus
JP2016096414A (en) Image forming apparatus, method of allocating control processing of multi-core processor in the apparatus, and program
JP2011046034A (en) Image processor, image processing method, image processing program, and recording medium
JP3724536B2 (en) Image output control device and process execution control method thereof
US10635157B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
JP2012008838A (en) Print document conversion device and program
JP6128104B2 (en) Image processing apparatus, control method thereof, and program
JP6435911B2 (en) Information processing apparatus, activation processing method, and activation processing program
JP6157260B2 (en) Image forming apparatus
JP2014091240A (en) Image forming apparatus, and printer controller
JP2018010640A (en) Distributed printing control program, distributed printing control device, and distributed printing control method
JP6372705B2 (en) Image forming apparatus
JP2012000778A (en) Image processor and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140909

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141007

R151 Written notification of patent or utility model registration

Ref document number: 5631022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees