JP2012230488A - Information processing device, scheduling method, and program - Google Patents

Information processing device, scheduling method, and program Download PDF

Info

Publication number
JP2012230488A
JP2012230488A JP2011097289A JP2011097289A JP2012230488A JP 2012230488 A JP2012230488 A JP 2012230488A JP 2011097289 A JP2011097289 A JP 2011097289A JP 2011097289 A JP2011097289 A JP 2011097289A JP 2012230488 A JP2012230488 A JP 2012230488A
Authority
JP
Japan
Prior art keywords
task
specific task
execution
cpu
information processing
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.)
Withdrawn
Application number
JP2011097289A
Other languages
Japanese (ja)
Inventor
Satoru Fujii
了 藤井
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.)
NEC Casio Mobile Communications Ltd
Original Assignee
NEC Casio Mobile Communications Ltd
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 NEC Casio Mobile Communications Ltd filed Critical NEC Casio Mobile Communications Ltd
Priority to JP2011097289A priority Critical patent/JP2012230488A/en
Publication of JP2012230488A publication Critical patent/JP2012230488A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To normally operate software which operates under a one-CPU environment and includes a sequence dependent on task priority in a multi-processor type information processing device.SOLUTION: An information processing device comprises: plural processors; and a scheduler that, when a specific task comes into an execution state in any of the plural processors, brings all the other tasks having priority lower than that of the specific task into an execution standby state until completion of processing of the specific task.

Description

本発明は、情報処理装置、スケジューリング方法、プログラムに関する。   The present invention relates to an information processing apparatus, a scheduling method, and a program.

近年、リアルタイムOS(Operating System)で動作するソフトウェアの中には、1CPU(Central Processing Unit)環境下で動作する、タスクの優先度に依存したシーケンスを含むものがある。   In recent years, some software that operates in a real-time OS (Operating System) includes a sequence that operates in a 1 CPU (Central Processing Unit) environment and that depends on task priority.

ここで、1つのCPUを搭載したシングルプロセッサ型の情報処理装置において、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアを実行する場合の動作について、図4を参照して説明する。   Here, with reference to FIG. 4, an operation when a single processor type information processing apparatus equipped with one CPU executes software including a sequence depending on task priority, which operates in a 1 CPU environment. explain.

なお、図4においては、プログラムには、タスクAとタスクBという2つのタスクが含まれるものとする。ここで、タスクAは、他のタスクとタイムシェアリングをして実行するタスクで優先度は低く、タスクBは、リアルタイムに実行するタスクで優先度は高いものであるとする。   In FIG. 4, it is assumed that the program includes two tasks, task A and task B. Here, it is assumed that task A is a task that is executed by sharing time with other tasks and has a low priority, and task B is a task that is executed in real time and has a high priority.

図4に示すように、CPU上で優先度が低いタスクAが実行状態にあり(ステップC1)、この状態で、タスクAが、優先度が高いタスクBを起床(wakeup)させたとする(ステップC2)。   As shown in FIG. 4, it is assumed that task A having a low priority is in an execution state on the CPU (step C1), and task A wakes up task B having a high priority in this state (step C1). C2).

この場合、優先度が高いタスクBにCPUが割り当てられ、CPU上ではタスクBが実行状態になる(ステップC3)。これに伴い、タスクAが実行待ち状態になる。   In this case, the CPU is assigned to the task B having a higher priority, and the task B enters an execution state on the CPU (step C3). As a result, task A enters an execution waiting state.

その後、タスクBの処理が終了し、タスクBが実行待ち状態になると(ステップC4)、実行待ち状態にあったタスクAにCPUが割り当てられ、CPU上ではタスクAが実行状態になる(ステップC5)。   Thereafter, when the processing of task B is completed and task B enters the execution waiting state (step C4), the CPU is assigned to task A that has been in the execution waiting state, and task A enters the execution state on the CPU (step C5). ).

このように、シングルプロセッサ型の情報処理装置においては、1CPU環境下で動作する、タスクの優先度に依存した構造のソフトウェアを実行する場合に、優先度が高いタスクBが実行状態にある間は、優先度が低いタスクAにCPUが割り当てられることはなく、タスクAは必ず実行待ち状態になる。   In this way, in a single processor type information processing apparatus, when executing software having a structure depending on the priority of a task that operates in a 1 CPU environment, while task B having a high priority is in an execution state, The CPU is not assigned to the task A having a low priority, and the task A is always in an execution waiting state.

しかしながら、ソフトウェアをダウンロードして使用する情報処理装置の場合、ソフトウェアの開発者が想定した情報処理装置の使用環境と、情報処理装置の実際の使用環境と、は必ずしも一致しない。   However, in the case of an information processing apparatus that downloads and uses software, the usage environment of the information processing apparatus assumed by the software developer does not necessarily match the actual usage environment of the information processing apparatus.

そのため、複数のCPUを搭載したマルチプロセッサ型の情報処理装置において、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアを実行する場合もある。この場合の動作について、図5を参照して説明する。   For this reason, in a multiprocessor type information processing apparatus equipped with a plurality of CPUs, there is a case where software including a sequence depending on the priority of a task that operates in a 1 CPU environment is executed. The operation in this case will be described with reference to FIG.

なお、図5においては、プログラムには、図4と同様のタスクAとタスクBという2つのタスクが含まれ、情報処理装置には、CPU#1とCPU#2という2つのCPUが設けられているものとする。   In FIG. 5, the program includes two tasks, task A and task B, similar to those in FIG. 4, and the information processing apparatus is provided with two CPUs, CPU # 1 and CPU # 2. It shall be.

図5に示すように、CPU#1上で優先度が低いタスクAが実行状態にあり(ステップD1)、この状態で、タスクAが、優先度が高いタスクBを起床させたとする(ステップD2)。   As shown in FIG. 5, it is assumed that task A having a low priority is in an execution state on CPU # 1 (step D1), and task A wakes up task B having a high priority in this state (step D2). ).

この場合、CPU#1とは異なるCPU#2が空き状態にあるため、そのCPU#2が優先度が高いタスクBに割り当てられ、CPU#2上でタスクBが実行状態になる(ステップD3)。したがって、CPU#1上ではタスクAが実行状態のままである。   In this case, since CPU # 2 different from CPU # 1 is in an empty state, that CPU # 2 is assigned to task B having a higher priority, and task B enters an execution state on CPU # 2 (step D3). . Therefore, task A remains in the running state on CPU # 1.

このように、マルチプロセッサ型の情報処理装置においては、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアを実行する場合に、優先度が高いタスクBが実行状態にある間も、優先度が低いタスクAにCPUが割り当てられ、タスクAが実行されてしまうことがある。   As described above, in the multiprocessor type information processing apparatus, when the software including the sequence depending on the priority of the task that operates in the 1 CPU environment is executed, the task B having a high priority is in the execution state. However, the CPU may be assigned to task A having a low priority, and task A may be executed.

そうすると、上述したタスクの優先度に依存したシーケンスが、期待したシーケンスとはならず、ソフトウェアを正常に動作させることができない。   Then, the sequence depending on the task priority described above does not become the expected sequence, and the software cannot be operated normally.

なお、タスク(またはプロセス)の優先度に依存したシーケンスを含むソフトウェアを実行するマルチプロセッサ型の情報処理装置のその他の例としては、特許文献1,2に記載されたものがある。   Other examples of the multiprocessor type information processing apparatus that executes software including a sequence depending on the priority of a task (or process) are described in Patent Documents 1 and 2.

特許文献1に記載のマルチプロセッサ型の情報処理装置においては、CPUは、自CPUがLAST CPUであれば、自CPU上で実行状態にあるプロセスが実行待ち状態にあるプロセスよりも優先度が低い場合、実行待ち状態にあるプロセスへの交換を行う。したがって、LAST CPUではないCPU上で実行状態にある優先度が低いプロセスが、優先度が高いプロセスが実行状態にある間に、実行されてしまうことがある。   In the multiprocessor type information processing apparatus described in Patent Document 1, if the CPU is a LAST CPU, the CPU has a lower priority than the process in the execution waiting state on the CPU. If it is, the process is switched to a process waiting for execution. Therefore, a process with a low priority that is in an execution state on a CPU that is not a LAST CPU may be executed while a process with a high priority is in the execution state.

また、特許文献2に記載のマルチプロセッサ型の情報処理装置においては、実行待ち状態にあるタスクには、複数のCPUのうち、優先度が最低のタスクでかつ実行待ち状態にあるタスクの優先度と同等以下のタスクを実行しているCPUが割り当てられる。したがって、CPU上で実行状態にある優先度が低いタスクのうち優先度が最低のタスク以外のタスクが、優先度が高いタスクが実行状態にある間に、実行されてしまうことがある。   Further, in the multiprocessor type information processing apparatus described in Patent Document 2, a task that is in the execution waiting state has a priority of a task that has the lowest priority and is in the execution waiting state among a plurality of CPUs. CPUs performing tasks equivalent to or less than are assigned. Therefore, tasks other than the task with the lowest priority among the tasks with the lower priority in the execution state on the CPU may be executed while the task with the higher priority is in the execution state.

特開昭62−115567号公報Japanese Patent Laid-Open No. 62-115567 特開平3−087935号公報Japanese Patent Laid-Open No. 3-087935

上述したように、関連するマルチプロセッサ型の情報処理装置においては、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアを実行する場合に、優先度が高いタスクが実行状態にある間も、優先度が低いタスクが実行され、ソフトウェアを正常に動作させることができないという課題があった。   As described above, in a related multiprocessor type information processing apparatus, when executing software including a sequence that depends on the priority of a task that operates in a 1 CPU environment, a task with a high priority is in an execution state. For some time, tasks with low priority were executed, and there was a problem that software could not operate normally.

そこで、本発明の目的は、上述した課題を解決することができる情報処理装置、スケジューリング方法、プログラムを提供することにある。   Therefore, an object of the present invention is to provide an information processing apparatus, a scheduling method, and a program that can solve the above-described problems.

本発明の第1の情報処理装置は、
複数のプロセッサと、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にするスケジューラと、を有する。
The first information processing apparatus of the present invention
Multiple processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task are in an execution wait state until the processing of the specific task ends. And a scheduler.

本発明の第2の情報処理装置は、
複数のプロセッサと、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクと同一のタスクグループに属するタスクのうち前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にするスケジューラと、を有する。
The second information processing apparatus of the present invention
Multiple processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task among tasks belonging to the same task group as the specific task, And a scheduler that waits for execution until the processing of the specific task is completed.

本発明の第1のスケジューリング方法は、
複数のプロセッサを有する情報処理装置が行うスケジューリング方法であって、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする。
The first scheduling method of the present invention includes:
A scheduling method performed by an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task are in an execution wait state until the processing of the specific task ends. To.

本発明の第2のスケジューリング方法は、
複数のプロセッサを有する情報処理装置が行うスケジューリング方法であって、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクと同一のタスクグループに属するタスクのうち前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする。
The second scheduling method of the present invention includes:
A scheduling method performed by an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task among tasks belonging to the same task group as the specific task, Until the processing of the specific task is completed, it is put in a waiting state.

本発明の第1のプログラムは、
複数のプロセッサを有する情報処理装置に、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする手順を実行させる。
The first program of the present invention is:
In an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task are in an execution wait state until the processing of the specific task ends. To execute the procedure.

本発明の第2のプログラムは、
複数のプロセッサを有する情報処理装置に、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクと同一のタスクグループに属するタスクのうち前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする手順を実行させる。
The second program of the present invention is:
In an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task among tasks belonging to the same task group as the specific task, The process of waiting for execution is executed until the processing of the specific task is completed.

本発明によれば、マルチプロセッサ型の情報処理装置においても、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアを正常に動作させることができるという効果が得られる。   According to the present invention, even in a multiprocessor type information processing apparatus, it is possible to normally operate software including a sequence depending on task priority, which operates under a 1 CPU environment.

本発明の第1および第2の実施形態の情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus of the 1st and 2nd embodiment of this invention. 本発明の第1の実施形態の情報処理装置の動作を説明するシーケンス図である。It is a sequence diagram explaining operation | movement of the information processing apparatus of the 1st Embodiment of this invention. 本発明の第2の実施形態の情報処理装置の動作を説明するシーケンス図である。It is a sequence diagram explaining operation | movement of the information processing apparatus of the 2nd Embodiment of this invention. 関連するシングルプロセッサ型の情報処理装置の動作を説明するシーケンス図である。FIG. 11 is a sequence diagram illustrating an operation of a related single processor type information processing apparatus. 関連するマルチプロセッサ型の情報処理装置の動作を説明するシーケンス図である。FIG. 11 is a sequence diagram illustrating an operation of a related multiprocessor type information processing apparatus.

以下に、本発明を実施するための形態について図面を参照して説明する。
(1)第1の実施形態
まず、本実施形態の情報処理装置の構成について、図1を参照して説明する。
EMBODIMENT OF THE INVENTION Below, the form for implementing this invention is demonstrated with reference to drawings.
(1) 1st Embodiment First, the structure of the information processing apparatus of this embodiment is demonstrated with reference to FIG.

図1に示すように、本実施形態の情報処理装置は、複数のCPU(#1〜#n)10−1〜10−nと、プロセッサ制御部20と、を有するマルチプロセッサ型の情報処理装置である。   As shown in FIG. 1, the information processing apparatus of this embodiment is a multiprocessor type information processing apparatus having a plurality of CPUs (# 1 to #n) 10-1 to 10-n and a processor control unit 20. It is.

CPU(#1〜#n)10−1〜10−nは、タスクを実行するプロセッサである。   The CPUs (# 1 to #n) 10-1 to 10-n are processors that execute tasks.

プロセッサ制御部20は、OS30およびOS30上のスケジューラ40を実行する。   The processor control unit 20 executes the OS 30 and the scheduler 40 on the OS 30.

スケジューラ40は、CPU(#1〜#n)10−1〜10−nにタスクを割り当てるスケジューリングを行う。   The scheduler 40 performs scheduling for assigning tasks to the CPUs (# 1 to #n) 10-1 to 10-n.

このとき、スケジューラ40は、CPU(#1〜#n)10−1〜10−nのいずれかにおいて特定のタスクが実行状態になった場合、特定のタスクよりも優先度が低い他の全てのタスクを、特定のタスクの処理が終了するまで、強制的に実行待ち状態にする。   At this time, when a specific task is in an execution state in any of the CPUs (# 1 to #n) 10-1 to 10-n, the scheduler 40 has all other lower priority than the specific task. The task is forcibly put into a waiting state until the processing of the specific task is completed.

ここで、特定のタスクとは、例えば、リアルタイムに実行するタスクなど、優先度が高いタスクのことをいう。   Here, the specific task refers to a task having a high priority, such as a task executed in real time.

以下、本実施形態の情報処理装置の動作について、図2を参照して説明する。   Hereinafter, the operation of the information processing apparatus of the present embodiment will be described with reference to FIG.

なお、図2においては、プログラムには、図4と同様のタスクAとタスクBという2つのタスクが含まれ、情報処理装置には、CPU(#1)10−1とCPU(#2)10−2という2つのCPUが設けられているものとする。   In FIG. 2, the program includes two tasks, task A and task B, similar to those in FIG. 4, and the information processing apparatus includes CPU (# 1) 10-1 and CPU (# 2) 10. It is assumed that two CPUs -2 are provided.

図2に示すように、CPU#1(10−1)上で優先度が低いタスクAが実行状態にあり(ステップA1)、この状態で、タスクAが、優先度が高いタスクBを起床させる命令を発行したとする(ステップA2)。   As shown in FIG. 2, task A having a low priority is in an execution state on CPU # 1 (10-1) (step A1). In this state, task A wakes up task B having a high priority. Assume that an instruction is issued (step A2).

この場合、スケジューラ40は、CPU#2(10−2)が空き状態にあるため、タスクBにCPU#2(10−2)を割り当て、CPU#2(10−2)上でタスクBを起床させる(ステップA3)。これにより、CPU#2(10−2)上ではタスクBが実行状態になる(ステップA4)。   In this case, since the CPU # 2 (10-2) is in an empty state, the scheduler 40 assigns the CPU # 2 (10-2) to the task B and wakes up the task B on the CPU # 2 (10-2). (Step A3). As a result, the task B enters an execution state on the CPU # 2 (10-2) (step A4).

また、スケジューラ40は、タスクBが優先度が高いタスクであるため、CPU#1(10−1)上で実行状態にあったタスクAを強制的に実行待ち状態にする(ステップA5)。   Further, since the task B is a task with high priority, the scheduler 40 forcibly places the task A in the execution state on the CPU # 1 (10-1) into the execution waiting state (step A5).

その後、タスクBの処理が終了し、タスクBが実行待ち状態になると(ステップA6)、スケジューラ40は、強制的に実行待ち状態にしたタスクAにCPU#1(10−1)を割り当て、CPU#1(10−1)上でタスクAを起床させる(ステップA7)。これにより、CPU#1(10−1)上ではタスクAが実行状態になる(ステップA8)。   Thereafter, when the processing of task B is completed and task B enters the execution waiting state (step A6), scheduler 40 assigns CPU # 1 (10-1) to task A that has been forcibly waiting for execution, and CPU Task A is woken up on # 1 (10-1) (step A7). As a result, task A enters the execution state on CPU # 1 (10-1) (step A8).

上述のように本実施形態においては、スケジューラ40は、CPU(#1〜#n)10−1〜10−nのいずれかにおいて、優先度が高い特定のタスクが実行状態になった場合、特定のタスクよりも優先度が低い他の全てのタスクを、特定のタスクの処理が終了するまで、強制的に実行待ち状態にする。   As described above, in the present embodiment, the scheduler 40 identifies the specific task having a high priority in any one of the CPUs (# 1 to #n) 10-1 to 10-n. All other tasks having a lower priority than the current task are forcibly placed in a waiting state until the processing of the specific task is completed.

そのため、例えば、図2の例においては、スケジューラ40は、優先度が高いタスクBが実行状態になった場合、タスクBよりも優先度が低いタスクAを、タスクBの処理が終了するまで、強制的に実行待ち状態にする。   Therefore, for example, in the example of FIG. 2, when the task B having a higher priority enters the execution state, the scheduler 40 changes the task A having a lower priority than the task B until the processing of the task B ends. Force to wait for execution.

したがって、優先度が高いタスクが実行状態にある間に、優先度が低いタスクが実行されることはないため、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアであっても、正常に動作させることができるという効果が得られる。   Therefore, since a task with a low priority is not executed while a task with a high priority is in an execution state, the software includes a sequence depending on the priority of the task that operates in a 1 CPU environment. However, the effect of being able to operate normally is obtained.

なお、図2の例においては、優先度が高いタスクBを起床させる際に、空き状態のCPUが存在していたが、CPUの数やタスクの数によっては、空き状態のCPUが存在しない場合もある。その場合は、タスクBよりも優先度が低いタスクAを強制的に実行待ち状態にして、空き状態のCPUを作ってから、その空き状態のCPUをタスクBに割り当て、タスクBを起床させれば良い。
(2)第2の実施形態
上述した第1の実施形態においては、優先度が高い特定のタスクが実行状態になった場合、他の全てのタスクを強制的に実行待ち状態にしていた。
In the example of FIG. 2, when a task B having a high priority is woken up, there is a free CPU, but depending on the number of CPUs and the number of tasks, there is no free CPU. There is also. In that case, task A, which has a lower priority than task B, is forcibly placed in a waiting state, a free CPU is created, the free CPU is assigned to task B, and task B is woken up. It ’s fine.
(2) Second Embodiment In the above-described first embodiment, when a specific task having a high priority is in an execution state, all other tasks are forcibly placed in an execution wait state.

しかしながら、タスクは、タスクの種別などに応じてタスク集合(以下、タスクグループと称す)に分類されており、特定のタスクが実行状態になっている間に、特定のタスクとは異なるタスクグループに属するタスクを実行しても、問題ないケースもある。   However, the tasks are classified into task sets (hereinafter referred to as task groups) according to the task type and the like, and while a specific task is in an execution state, it is assigned to a task group different from the specific task. There are cases where there is no problem even if the task to which it belongs is executed.

そこで、本実施形態においては、スケジューラ40は、CPU(#1〜#n)10−1〜10−nのいずれかにおいて、特定のタスクが実行状態になった場合、特定のタスクと同一のタスクグループに属するタスクのうち特定のタスクよりも優先度が低い他の全てのタスクを、特定のタスクの処理が終了するまで、強制的に実行待ち状態にする。   Therefore, in the present embodiment, the scheduler 40 has the same task as the specific task when the specific task is in the execution state in any of the CPUs (# 1 to #n) 10-1 to 10-n. Of the tasks belonging to the group, all other tasks having a lower priority than the specific task are forcibly put into an execution waiting state until the processing of the specific task is completed.

なお、本実施形態は、第1の実施形態と比較して、スケジューラ40の上述した動作が異なり、第1の実施形態と構成自体は同様である。   The present embodiment differs from the first embodiment in the above-described operation of the scheduler 40, and the configuration itself is the same as that of the first embodiment.

以下、本実施形態の情報処理装置の動作について、図3を参照して説明する。   Hereinafter, the operation of the information processing apparatus of the present embodiment will be described with reference to FIG.

なお、図3においては、プログラムには、タスクAとタスクBとタスクCという3つのタスクが含まれ、タスクA,Bがタスクグループαに属し、タスクCがタスクグループβに属するものとする。ここで、タスクA,Cは、他のタスクとタイムシェアリングをして実行するタスクで優先度が低く、タスクBは、リアルタイムに実行するタスクで優先度は高いものであるとする。また、情報処理装置には、CPU(#1)10−1とCPU(#2)10−2という2つのCPUが設けられているものとする。   In FIG. 3, the program includes three tasks, task A, task B, and task C. Tasks A and B belong to task group α, and task C belongs to task group β. Here, it is assumed that the tasks A and C are tasks that are executed by time sharing with other tasks and have a low priority, and the task B is a task that is executed in real time and has a high priority. Further, it is assumed that the information processing apparatus includes two CPUs, CPU (# 1) 10-1 and CPU (# 2) 10-2.

図3に示すように、タスクグループβに属し優先度が低いタスクCがCPU#1(10−1)上で実行状態にあり(ステップB1)、この状態で、タスクCが、タスクグループαに属し優先度が低いタスクAを起床させる命令を発行したとする(ステップB2)。   As shown in FIG. 3, task C belonging to task group β and having a low priority is in an execution state on CPU # 1 (10-1) (step B1). In this state, task C is assigned to task group α. It is assumed that an instruction to wake up task A having a low belonging priority is issued (step B2).

この場合、スケジューラ40は、CPU#2(10−2)が空き状態にあるため、タスクAにCPU#2(10−2)を割り当て、CPU#2(10−2)上でタスクAを起床させる(ステップB3)。これにより、CPU#2(10−2)上ではタスクAが実行状態になる(ステップB4)。このとき、CPU#1(10−1)上ではタスクCが実行状態のままである。   In this case, since the CPU # 2 (10-2) is in an empty state, the scheduler 40 assigns the CPU # 2 (10-2) to the task A and wakes up the task A on the CPU # 2 (10-2). (Step B3). As a result, the task A enters the execution state on the CPU # 2 (10-2) (step B4). At this time, the task C remains in the execution state on the CPU # 1 (10-1).

ここで、CPU#2(10−2)上で実行状態にあるタスクAが、優先度が高いタスクBを起床させる命令を発行したとする(ステップB5)。   Here, it is assumed that the task A in the execution state on the CPU # 2 (10-2) issues an instruction to wake up the task B having a high priority (step B5).

この場合、タスクBは優先度が高いタスクであり、タスクAとBは同一のタスクグループαに属するため、タスクBが実行状態になったら、タスクAは強制的に実行待ち状態にしなければならない。ただし、この時点で空き状態にあるCPUはない。   In this case, task B is a task with a high priority, and tasks A and B belong to the same task group α. Therefore, when task B enters an execution state, task A must be forcibly put into an execution wait state. . However, there is no free CPU at this time.

そこで、スケジューラ40は、CPU#2(10−2)上で実行状態にあったタスクAを強制的に実行待ち状態にし(ステップB6)、その後、タスクBにCPU#2(10−2)を割り当て、CPU#2(10−2)上でタスクBを起床させる(ステップB7)。これにより、CPU#2(10−2)上ではタスクBが実行状態になる(ステップB8)。このとき、CPU#1(10−1)上ではタスクCが実行状態のままである。   Therefore, the scheduler 40 forcibly places the task A in the execution state on the CPU # 2 (10-2) into the execution waiting state (step B6), and then assigns the CPU # 2 (10-2) to the task B. Allocate and wake up task B on CPU # 2 (10-2) (step B7). As a result, task B enters the execution state on CPU # 2 (10-2) (step B8). At this time, the task C remains in the execution state on the CPU # 1 (10-1).

その後、タスクBの処理が終了し、タスクBが実行待ち状態になると(ステップB9)、スケジューラ40は、強制的に実行待ち状態にしたタスクAにCPU#2(10−2)を割り当て、CPU#2(10−2)上でタスクAを起床させる(ステップB10)。これにより、CPU#2(10−2)上ではタスクAが実行状態になる(ステップB11)。   Thereafter, when the processing of task B is completed and task B enters a state of waiting for execution (step B9), scheduler 40 assigns CPU # 2 (10-2) to task A forcibly waiting for execution, and CPU Task A is woken up on # 2 (10-2) (step B10). As a result, task A enters the execution state on CPU # 2 (10-2) (step B11).

上述のように本実施形態においては、スケジューラ40は、CPU(#1〜#n)10−1〜10−nのいずれかにおいて、優先度が高い特定のタスクが実行状態になった場合、特定のタスクと同一のタスクグループに属するタスクのうち特定のタスクよりも優先度が低い他の全てのタスクを、特定のタスクの処理が終了するまで、強制的に実行待ち状態にする。   As described above, in the present embodiment, the scheduler 40 identifies the specific task having a high priority in any one of the CPUs (# 1 to #n) 10-1 to 10-n. All other tasks having a lower priority than the specific task among the tasks belonging to the same task group as the current task are forcibly placed in a waiting state until the processing of the specific task is completed.

そのため、例えば、図3の例においては、スケジューラ40は、優先度が高いタスクBが実行状態になった場合、タスクBと同一のタスクグループに属しタスクBよりも優先度が低いタスクAのみを、タスクBの処理が終了するまで、強制的に実行待ち状態にする。   Therefore, for example, in the example of FIG. 3, when the task B having a higher priority is in an execution state, the scheduler 40 belongs only to the task A that belongs to the same task group as the task B and has a lower priority than the task B. Until the processing of task B is completed, the task is forcibly put in a waiting state.

したがって、優先度が高いタスクが実行状態にある間に、そのタスクと同一のタスクグループに属する優先度が低いタスクが実行されることはないため、1CPU環境下で動作する、タスクの優先度に依存したシーケンスを含むソフトウェアであっても、正常に動作させることができるという効果が得られる。   Therefore, while a task with a high priority is in an execution state, a task with a low priority belonging to the same task group as that task is not executed. Even software including a dependent sequence can be operated normally.

なお、図3の例においては、優先度が高いタスクBを起床させる際に、空き状態のCPUが存在していなかったが、CPUの数やタスクの数によっては、空き状態のCPUが存在する場合もある。その場合は、空き状態のCPU上でタスクBを起床させてから、タスクBよりも優先度が低いタスクAを強制的に実行待ち状態にしても良い。   In the example of FIG. 3, when a task B having a high priority is woken up, there is no free CPU, but there is a free CPU depending on the number of CPUs and the number of tasks. In some cases. In this case, task B may be woken up on a free CPU, and then task A having a lower priority than task B may be forcibly placed in an execution wait state.

以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

例えば、上記実施形態では、プロセッサ制御部20が、OS30やスケジューラ40を実行する例を挙げたが、CPU(#1〜#n)10−1〜10−nの何れかでOS30やスケジューラ40を実行してもよい。   For example, in the above embodiment, the processor control unit 20 executes the OS 30 and the scheduler 40. However, the OS 30 and the scheduler 40 are executed by any of the CPUs (# 1 to #n) 10-1 to 10-n. May be executed.

また、上記実施形態では、CPUの数が2個である場合の例を挙げたが、CPUの数はこれに限定されない。   Moreover, although the example in the case where the number of CPUs is two was given in the said embodiment, the number of CPUs is not limited to this.

また、本発明は、例えば、携帯電話機、スマートフォン、ゲーム機、タブレット型PC(Personal Computer)、ノート型PCなどのマルチプロセッサ型の情報処理装置に適用可能である。   The present invention is also applicable to multiprocessor information processing apparatuses such as mobile phones, smartphones, game machines, tablet PCs (Personal Computers), and notebook PCs.

また、本発明の情報処理装置にて行われる方法は、コンピュータに実行させるためのプログラムに適用してもよい。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。   The method performed by the information processing apparatus of the present invention may be applied to a program for causing a computer to execute. In addition, the program can be stored in a storage medium and can be provided to the outside via a network.

10−1〜10−n CPU
20 プロセッサ制御部
30 OS
40 スケジューラ
10-1 to 10-n CPU
20 processor control unit 30 OS
40 scheduler

Claims (8)

複数のプロセッサと、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にするスケジューラと、を有する情報処理装置。
Multiple processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task are in an execution wait state until the processing of the specific task ends. An information processing apparatus.
複数のプロセッサと、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクと同一のタスクグループに属するタスクのうち前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にするスケジューラと、を有する情報処理装置。
Multiple processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task among tasks belonging to the same task group as the specific task, An information processing apparatus comprising: a scheduler that waits for execution until the processing of the specific task is completed.
前記特定のタスクは、リアルタイムに実行するタスクである、請求項1または2に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the specific task is a task executed in real time. 複数のプロセッサを有する情報処理装置が行うスケジューリング方法であって、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする、スケジューリング方法。
A scheduling method performed by an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task are in an execution wait state until the processing of the specific task ends. A scheduling method.
複数のプロセッサを有する情報処理装置が行うスケジューリング方法であって、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクと同一のタスクグループに属するタスクのうち前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする、スケジューリング方法。
A scheduling method performed by an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task among tasks belonging to the same task group as the specific task, A scheduling method for waiting for execution until the processing of the specific task is completed.
前記特定のタスクは、リアルタイムに実行するタスクである、請求項4または5に記載のスケジューリング方法。   The scheduling method according to claim 4, wherein the specific task is a task executed in real time. 複数のプロセッサを有する情報処理装置に、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする手順を実行させるためのプログラム。
In an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task are in an execution wait state until the processing of the specific task ends. Program to execute the procedure to make.
複数のプロセッサを有する情報処理装置に、
前記複数のプロセッサのいずれかにおいて特定のタスクが実行状態になった場合、前記特定のタスクと同一のタスクグループに属するタスクのうち前記特定のタスクよりも優先度が低い他の全てのタスクを、前記特定のタスクの処理が終了するまで、実行待ち状態にする手順を実行させるためのプログラム。
In an information processing apparatus having a plurality of processors,
When a specific task is in an execution state in any of the plurality of processors, all other tasks having a lower priority than the specific task among tasks belonging to the same task group as the specific task, A program for executing a procedure of waiting for execution until the processing of the specific task is completed.
JP2011097289A 2011-04-25 2011-04-25 Information processing device, scheduling method, and program Withdrawn JP2012230488A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011097289A JP2012230488A (en) 2011-04-25 2011-04-25 Information processing device, scheduling method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011097289A JP2012230488A (en) 2011-04-25 2011-04-25 Information processing device, scheduling method, and program

Publications (1)

Publication Number Publication Date
JP2012230488A true JP2012230488A (en) 2012-11-22

Family

ID=47431997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011097289A Withdrawn JP2012230488A (en) 2011-04-25 2011-04-25 Information processing device, scheduling method, and program

Country Status (1)

Country Link
JP (1) JP2012230488A (en)

Similar Documents

Publication Publication Date Title
JP5658365B2 (en) Method, system and program for high throughput computing in a hybrid computing environment
US9946563B2 (en) Batch scheduler management of virtual machines
US9396028B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
Chen et al. Accelerating mapreduce on a coupled cpu-gpu architecture
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
KR101332840B1 (en) Cluster system, Host node, Computing node, and application execution method based on parallel computing framework
WO2019218708A1 (en) Task processing method and device, and computer system
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
WO2012028213A1 (en) Re-scheduling workload in a hybrid computing environment
US20120066688A1 (en) Processor thread load balancing manager
US9201823B2 (en) Pessimistic interrupt affinity for devices
US9959134B2 (en) Request processing using VM functions
US9003094B2 (en) Optimistic interrupt affinity for devices
US20140181811A1 (en) Hypervisor modification of advanced configuration and power interface (acpi) tables
Margiolas et al. Portable and transparent software managed scheduling on accelerators for fair resource sharing
WO2018040845A1 (en) Method and apparatus for scheduling computing resource
Goswami et al. Landrush: Rethinking in-situ analysis for gpgpu workflows
US8977752B2 (en) Event-based dynamic resource provisioning
CN112860396B (en) GPU scheduling method and system based on distributed deep learning
US20140237017A1 (en) Extending distributed computing systems to legacy programs
WO2023165318A1 (en) Resource processing system and method
CN116360941A (en) Multi-core DSP-oriented parallel computing resource organization scheduling method and system
JP2012230488A (en) Information processing device, scheduling method, and program
Hsu et al. Performance benchmarking and auto-tuning for scientific applications on virtual cluster

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140701