JP2007188212A - Multiprocessor, and program for making computer execute control method of multiprocessor - Google Patents
Multiprocessor, and program for making computer execute control method of multiprocessor Download PDFInfo
- Publication number
- JP2007188212A JP2007188212A JP2006004655A JP2006004655A JP2007188212A JP 2007188212 A JP2007188212 A JP 2007188212A JP 2006004655 A JP2006004655 A JP 2006004655A JP 2006004655 A JP2006004655 A JP 2006004655A JP 2007188212 A JP2007188212 A JP 2007188212A
- Authority
- JP
- Japan
- Prior art keywords
- load
- multiprocessor
- unit
- operating system
- operating systems
- 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
Links
Images
Abstract
Description
本発明は、複数のプロセッサを組合わせて構成されるマルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムに係り、特に複数のプロセッサを複数のOSを使って動作させるマルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムに関する。 The present invention relates to a multiprocessor configured by combining a plurality of processors and a program for causing a computer to execute a control method of the multiprocessor, and more particularly to a multiprocessor and a multiprocessor that operate a plurality of processors using a plurality of OSs. The present invention relates to a program for causing a computer to execute a processor control method.
特定の用途に用いられるソフトウェアとハードウェアとを組合わせた構成は、組み込みシステムと呼ばれている。近年では、組込みシステムにマルチ形式のプロセッサであるマルチプロセッサやマルチスレッドプロセッサが採用されることも多い。マルチ形式のプロセッサ(以降マルチプロセッサと記す)の採用は、装置の低クロック化や応答性の向上に有利である。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチプロセッサの採用の要請が強い。 A configuration in which software and hardware used for a specific application are combined is called an embedded system. In recent years, multiprocessors and multithread processors, which are multi-format processors, are often employed in embedded systems. The use of a multi-type processor (hereinafter referred to as a multiprocessor) is advantageous in reducing the clock of the device and improving the responsiveness. In particular, portable devices are advantageous in reducing power consumption, and there is a strong demand for adopting a multiprocessor.
ところで、新たに開発したソフトウェアが正常に動作するか否かの判断に時間及びコストがかかる。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサのソフトウェアが流用可能であるならば、これを流用することが望ましいとされている。したがって、組込みシステムをマルチプロセッサ化する場合、先に使用されていたシングルプロセッサのソフトウェアを流用する要求がある。 By the way, it takes time and cost to determine whether or not newly developed software operates normally. For this reason, in the field of software, if it is possible to divert processor software that has been used as a result, it is desirable to divert it. Therefore, when an embedded system is made into a multiprocessor, there is a demand for diverting the previously used single processor software.
シングルプロセッサのソフトウェアをマルチプロセッサに流用する従来技術として、例えば、特許文献1がある。特許文献1の発明は、μITRON(登録商標)をベースにしたシングルプロセッサ用のオペレーティングシステム(OS:Operating System)をマルチプロセッサに移植するものである。
ただし、特許文献1の発明は、マルチプロセッサのシステムをSMP(Symmetric Multi Processor)型のみのプロセッサで構築すると、シングルプロセッサの資産であるアプリケーションの移植作業の作業量が膨大になるという欠点がある。また、既に開発済みのアプリケーションを複数動作させる場合、マルチプロセッサ向けに統合作業を行うよりも、複数のOSを動作させて対応することが考えられる。
However, the invention of
マルチプロセッサにおいて複数のOSを使用する場合、複数のOSの各々が複数のプロセッサを分担して制御することになる。各OSが制御するプロセッサ及び数は、OSが起動した時点でOSに認識され、以降再起動するまで変化しない。
しかしながら、マルチプロセッサでは、各プロセッサに割り当てられる処理量が常に均等であるとは限らない。このため、複数OSを使用するマルチプロセッサにあっては、1つのOSに処理が集中した場合、このOSの処理が滞ってマルチプロセッサ全体の稼動に影響がでるおそれがある。
When a plurality of OSs are used in a multiprocessor, each of the plurality of OSs shares and controls a plurality of processors. The processor and the number controlled by each OS are recognized by the OS when the OS starts and do not change until the OS is restarted thereafter.
However, in a multiprocessor, the amount of processing allocated to each processor is not always equal. For this reason, in a multiprocessor using a plurality of OSs, when processing is concentrated on one OS, the processing of this OS may be delayed and the operation of the entire multiprocessor may be affected.
本発明は、このような点に鑑みてなされたものであり、複数のプロセッサを複数のOSが各々分担して制御する場合、処理の状況に応じて各OSにかかる負荷を調整することができ、処理効率の高いマルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムを提供することを目的とする。 The present invention has been made in view of the above points. When a plurality of processors are controlled by a plurality of OSs, the load on each OS can be adjusted according to the processing status. Another object of the present invention is to provide a program for causing a computer to execute a multiprocessor having high processing efficiency and a control method for the multiprocessor.
以上の課題を解決するため、本発明のマルチプロセッサは、複数のオペレーティングシステムと、複数の前記オペレーティングシステムが分担して動作させる複数の単位プロセッサを備えるマルチプロセッサであって、前記複数のオペレーティングシステムの各々にかかる負荷を判定する負荷判定手段と、前記負荷判定手段によって少なくとも一のオペレーティングシステムにかかる負荷が大きいと判断された場合、複数のオペレーティングシステムのうち少なくとも一部のオペレーティングシステムの各々にかかる負荷を調整する負荷調整手段と、を備えることを特徴とする。 In order to solve the above problems, a multiprocessor according to the present invention is a multiprocessor including a plurality of operating systems and a plurality of unit processors that are operated by the plurality of operating systems. A load determining unit that determines a load applied to each of the plurality of operating systems, and a load applied to each of at least some of the plurality of operating systems when the load determining unit determines that the load applied to at least one operating system is large. And a load adjusting means for adjusting.
このような発明によれば、複数のオペレーティングシステムと、複数の前記オペレーティングシステムが分担して動作させる複数の単位プロセッサを備えるマルチプロセッサにおいて、複数のオペレーティングシステムの各々にかかる負荷を判定し、少なくとも一のオペレーティングシステムにかかる負荷が大きい場合、複数のオペレーティングシステムのうち少なくとも一部のオペレーティングシステムの各々にかかる負荷を調整し、このオペレーティングシステムの負荷を軽減することができる。
このため、本発明は、処理の状況に応じて各OSにかかる負荷を調整することができ、処理効率の高いマルチプロセッサを提供することができる。
According to such an invention, in a multiprocessor including a plurality of operating systems and a plurality of unit processors that are operated by the plurality of operating systems, the load applied to each of the plurality of operating systems is determined, and at least one When the load on the operating system is large, the load on each of at least some of the plurality of operating systems can be adjusted to reduce the load on the operating system.
Therefore, the present invention can adjust the load applied to each OS according to the processing status, and can provide a multiprocessor with high processing efficiency.
また、本発明のマルチプロセッサは、前記負荷判定手段が、複数のオペレーティングシステムのうちの1つにかかる負荷についてのみ大きいか否か判定し、前記負荷調整手段は、前記負荷判定手段による判定の結果に基づいて該オペレーティングシステムに対する他のオペレーティングシステムによる負荷の調整の要求に対応することを特徴とする。
このような構成によれば、本実施形態は、負荷判定手段が、各OSにおいてこのOSの負荷の判定及び調整を実行することによって複数のOS間で負荷の調整を行うことができる。このため、複数のOS間における負荷の判定及び調整を比較的簡易に行うことができる。
The multiprocessor according to the present invention determines whether or not the load determination unit is large only for a load applied to one of a plurality of operating systems, and the load adjustment unit is a result of determination by the load determination unit. In response to a request for load adjustment by another operating system based on the operating system.
According to such a configuration, in the present embodiment, the load determination unit can perform load adjustment among a plurality of OSs by executing determination and adjustment of the load of the OS in each OS. For this reason, it is possible to relatively easily determine and adjust the load among a plurality of OSs.
また、本発明のマルチプロセッサは、前記負荷判定手段が、一のオペレーティングシステムが担当して実行する処理の数によって一のオペレーティングシステムにかかる負荷を判定することを特徴とする。
このような発明によれば、各オペレーティングシステムにかかる負荷を比較的簡易に、かつ正確に判定することができる。
The multiprocessor according to the present invention is characterized in that the load determining means determines the load applied to one operating system based on the number of processes executed by the one operating system.
According to such an invention, the load on each operating system can be determined relatively easily and accurately.
また、本発明のマルチプロセッサは、一のオペレーティングシステムが担当して実行する処理をタスクとして管理するスケジュール手段を備え、前記負荷判定手段は、前記スケジュール手段によって管理されるタスクを単位にして一のオペレーティングシステムにかかる負荷を判断することを特徴とする。
このような発明によれば、オペレーティングシステムにかかる負荷を処理の種別によらず正確にかつ簡易に判定することができる。
The multiprocessor according to the present invention further includes scheduling means for managing processing executed and executed by one operating system as a task, and the load determination means is configured to execute one task for each task managed by the scheduling means. It is characterized by determining the load on the operating system.
According to such an invention, the load applied to the operating system can be accurately and easily determined regardless of the type of processing.
また、本発明のマルチプロセッサは、前記負荷調整手段が、複数のオペレーティングシステムのうち少なくとも一部のオペレーティングシステムの各々が担当して動作させる単位プロセッサの数を調整することによってオペレーティングシステムの各々にかかる負荷を調整することを特徴とする。 In the multiprocessor according to the present invention, the load adjusting unit adjusts the number of unit processors to be operated by each of at least some of the plurality of operating systems. It is characterized by adjusting the load.
このような発明によれば、オペレーティングシステムが処理をするのに使用できる単位プロセッサの数を増減するという比較的簡単な方法によってオペレーティングシステムの負荷を調整することができる。このため、本発明は、比較的簡易な制御でありながら確実にマルチプロセッサ上で動作する複数のオペレーティングシステムの負荷を調整することができる。 According to such an invention, the operating system load can be adjusted by a relatively simple method of increasing or decreasing the number of unit processors that can be used by the operating system for processing. Therefore, according to the present invention, it is possible to adjust the loads of a plurality of operating systems that operate on the multiprocessor with certainty while performing relatively simple control.
また、本発明のマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムは、複数のオペレーティングシステムと、複数の前記オペレーティングシステムが分担して動作させる複数の単位プロセッサを備えるマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムであって、前記複数のオペレーティングシステムの各々おいて、該オペレーティングシステムにかかる負荷を判定する負荷判定ステップと、前記負荷判定ステップにおいてオペレーティングシステムにかかる負荷が大きいと判断された場合、他のオペレーティングシステムとの間で該オペレーティングシステムが担当する単位プロセッサの数を調整する負荷調整ステップと、を含むことを特徴とする。 Further, a program for causing a computer to execute the multiprocessor control method of the present invention is a computer program that includes a plurality of operating systems and a plurality of unit processors that are operated by the plurality of operating systems. In each of the plurality of operating systems, a load determination step for determining a load applied to the operating system, and a load applied to the operating system in the load determination step is determined to be large A load adjusting step of adjusting the number of unit processors that the operating system is in charge of with another operating system.
このような発明によれば、複数のオペレーティングシステムと、複数の前記オペレーティングシステムが分担して動作させる複数の単位プロセッサを備えるマルチプロセッサにおいて、複数のオペレーティングシステムの各々において、該オペレーティングシステムかかる負荷を判定し、オペレーティングシステ間でオペレーティングシステムの各々にかかる負荷を調整し、このオペレーティングシステムの負荷を軽減することができる。 According to such an invention, in a multiprocessor including a plurality of operating systems and a plurality of unit processors that are operated by the plurality of operating systems, the load on the operating systems is determined in each of the plurality of operating systems. In addition, it is possible to reduce the load on the operating system by adjusting the load on each of the operating systems between the operating systems.
このため、本発明は、処理の状況に応じて各OSにかかる負荷を調整することによって高い処理効率を得るマルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムを提供することができる。 For this reason, the present invention can provide a program for causing a computer to execute a multiprocessor and a control method for the multiprocessor that obtain high processing efficiency by adjusting the load on each OS according to the processing status. .
以下、図を参照して本発明に係るマルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムの一実施の形態を説明する。
図1は、本発明の一実施形態のマルチプロセッサの構成を説明するための図である。本実施形態のマルチプロセッサは、複数のプロセッサ(プロセッサを構成するプロセッサであるため単位プロセッサと記す)P0、P1、P2、P3と、メモリ103とを備えている。メモリ103は、単位プロセッサP0〜P3を動作させる複数のOS(オペレーティングシステム:Operating System)A、Bを保存している。また、メモリ103の少なくとも一部は、単位プロセッサP0〜P3によって共有される共有メモリ101である。
An embodiment of a program for causing a computer to execute a multiprocessor and a multiprocessor control method according to the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram for explaining the configuration of a multiprocessor according to an embodiment of the present invention. The multiprocessor of this embodiment includes a plurality of processors (denoted as unit processors because they are processors constituting the processor) P0, P1, P2, P3, and a
図2ないし4は、本実施形態のマルチプロセッサの構成及びOSの負荷調整の動作を説明するための図である。特に図2は、本実施形態のマルチプロセッサの負荷調整の開始動作を示し、図3は負荷調整の完了、図4は完了した負荷調整を再度調整前の状態に戻す動作を示している。
図2に示したように、本実施形態のマルチプロセッサは、複数のOS−A及びOS−Bと、複数のOS−A、Bが分担して動作させる複数の単位プロセッサP0〜P3を備えている。図2に示した例では、OS−Aが単位プロセッサP0、単位プロセッサP1を担当して動作させ(以下管理すると記す)、OS−Bが単位プロセッサP2、単位プロセッサP3を管理している。
2 to 4 are diagrams for explaining the configuration of the multiprocessor and the load adjustment operation of the OS according to the present embodiment. In particular, FIG. 2 shows the load adjustment start operation of the multiprocessor of this embodiment, FIG. 3 shows the completion of load adjustment, and FIG. 4 shows the operation of returning the completed load adjustment to the state before adjustment again.
As shown in FIG. 2, the multiprocessor of this embodiment includes a plurality of OS-A and OS-B, and a plurality of unit processors P0 to P3 that are operated by the plurality of OS-A and B. Yes. In the example shown in FIG. 2, the OS-A is responsible for operating the unit processor P0 and the unit processor P1 (hereinafter referred to as management), and the OS-B manages the unit processor P2 and the unit processor P3.
また、OS−A、OS−Bは、いずれも担当するプロセッサで処理されるタスクのスケジュールを管理するためのOS管理テーブル203を備えている。OS管理テーブル203は、タスクを実行の順序にしたがって記録するレディキュー204を作成する。レディキュー204におけるタスクの実行順序は、タスクの切替え等の発生によって変更され得る。レディキュー204におけるタスクの実行順序の変更を再スケジューリングとも記す。
Each of OS-A and OS-B includes an OS management table 203 for managing a schedule of tasks processed by a processor in charge. The OS management table 203 creates a
スケジューラ201a、201bは、レディキュー204に基づいてタスクの実行順序を制御するプログラムであって、本実施形態ではレディキュー204にあるタスクの数から自OSにかかる負荷を判定する構成としても機能するものとする。負荷の判定は、1つのOSが管理するプログラムの処理の数によって行われる。本実施形態では、処理の数をタスクと呼ばれるプログラムの処理単位を単位にして定義する。
The
OS−A、OS−Bは、自OSのスケジューラ201a、201bに基づいて一のOS(自OSである)にかかる負荷が大きいと判断された場合、複数のOSのうち少なくとも一部のOSの各々にかかる負荷を調整する。本実施形態は、複数のOSのうち少なくとも一部のオペレーティングシステムの各々が担当して動作させる単位プロセッサの数を加減して調整することにより負荷の調整を実行する。なお、各OSが現在管理している単位プロセッサの数は、OS管理テーブル203のプロセッサ数記録部205に保存されている。
When it is determined that the load on one OS (the own OS) is large based on the
以上の構成において、OS−A、OS−Bは、複数のOSの各々にかかる負荷を判定する負荷判定手段として機能する。また、OS−A、OS−Bは、自OSにかかる負荷を調整する負荷調整手段として機能する。なお、本実施形態は、OS−A、OS−Bが、1つのOSにかかる負荷についてのみ大きいか否か判定し、判定の結果に基づいて自OSに対する他のオペレーティングシステムによる負荷の調整の要求に対応する。
このような構成によれば、本実施形態は、各OSが自OSの負荷の判定及び調整を実行することができる。このため、複数のOS間における負荷の判定及び調整を比較的簡易に行うことができる。
In the above configuration, OS-A and OS-B function as a load determination unit that determines a load applied to each of a plurality of OSs. OS-A and OS-B function as load adjusting means for adjusting the load applied to the own OS. In this embodiment, it is determined whether OS-A and OS-B are large only for a load on one OS, and a request for adjusting the load by another operating system on the own OS based on the determination result. Corresponding to
According to such a configuration, in this embodiment, each OS can execute determination and adjustment of the load of the own OS. For this reason, it is possible to relatively easily determine and adjust the load among a plurality of OSs.
以上述べた構成は、以下のように動作する。すなわち、マルチプロセッサが起動することにより、マルチプロセッサに保存されているOS−A、OS−Bがそれぞれ起動する。OS−A、OS−Bは、起動直後に初期化され、このときに自OSが動作を担当すべき単位プロセッサの数を取得する。取得された単位プロセッサの数は、各OSのOS管理テーブル203において管理される。 The configuration described above operates as follows. That is, when the multiprocessor is activated, OS-A and OS-B stored in the multiprocessor are activated. OS-A and OS-B are initialized immediately after startup, and acquire the number of unit processors that the OS should take charge of at this time. The acquired number of unit processors is managed in the OS management table 203 of each OS.
マルチプロセッサの動作中、スケジューラ201は、レディキュー204として実行が予定されているタスクの数に基づいて自OSにかかる負荷の高低を判定する。この判定は、例えば、レディキュー204で実行が予定されているタスクの数が所定の数より多いか否かによって実現できる。
所定のタスク数は、予めOS管理テーブル203に設定しておくものであってもよいし、OS−A、OS−Bが初期化されるたびに設定されるものであってもよい。また、初期化の際、所定のタスク数を、OS−A、OS−Bが初期化時に管理している単位プロセッサの数によって変化することも考えられる。
During the operation of the multiprocessor, the scheduler 201 determines whether the load on the own OS is high or low based on the number of tasks scheduled to be executed as the
The predetermined number of tasks may be set in advance in the OS management table 203, or may be set every time OS-A and OS-B are initialized. In addition, at the time of initialization, the predetermined number of tasks may be changed depending on the number of unit processors managed by OS-A and OS-B at the time of initialization.
例えば、OS−Bにおいてレディキュー204に記録されたタスクが所定の数になった場合、スケジューラ201bがOS−Bにかかる負荷が大きくなったと判断する。このような場合、スケジューラ201bは、OS−Aに対してOS−Aが使用できる単位プロセッサの増加を要求する。
単位プロセッサ増加の要求は、例えば、OS−Bが単位プロセッサを要求すること、OS−Bが現在使用している単位プロセッサの数、自OSの識別情報等を共有メモリ101に書き込むことによって実現することができる。OS−Aは、共用メモリ101を参照し、OS−Bが単位プロセッサの増加を要求していることを認識できる。
For example, when the number of tasks recorded in the
The request to increase the unit processor is realized by, for example, requesting the unit processor by the OS-B, writing the number of unit processors currently used by the OS-B, identification information of the own OS, and the like in the shared
OS−Aは、OS−Bの要求を受付けるか否か判定する(この判定を受付判定とも記す)。受付判定は、例えば、OS−Aの負荷をOS−Aのレディキュー204のタスク数等から判断することによって実現することができる。そして、OS−Bの負荷と比べ、OS−Aにかかる負荷が軽いと判断した場合にのみ要求を受付けるようにしてもよい。
受付判定において、OS−AがOS−Bの要求を受付けると判定した場合(A)、図3に示すように、スケジューラ201aは、OS−Aが管理しているプロセッサ数記録部205に記録されているプロセッサ数を1つ減じる。そして、減じた単位プロセッサがスリープあるいはコンテキストスイッチしたタイミングでさらにタスクを割り当てないようOS−Aがスケジューリングする。
OS-A determines whether to accept the request from OS-B (this determination is also referred to as an acceptance determination). The acceptance determination can be realized, for example, by determining the load of the OS-A from the number of tasks in the
When it is determined in the acceptance determination that OS-A accepts the request from OS-B (A), as shown in FIG. 3, the
なお、受付判定において、OS−Aは、自OSにかかる負荷が大きい(OS−Aにおいてレディキューのタスクが所定の数以上)と判定した場合にはOS−Bの単位プロセッサの要求に応じない。このような本実施形態は、各OSが個別に自OSにのみかかる負荷を判定する。そして、判定の結果に基づいて自OSに対する他のOSによる負荷の調整の要求に対応することにより複数のOS間で負荷を調整することができる。 In the acceptance determination, OS-A does not respond to the request of the OS-B unit processor when determining that the load on the own OS is large (the number of ready queue tasks in OS-A is a predetermined number or more). . In this embodiment, each OS individually determines a load applied only to the own OS. Then, the load can be adjusted among a plurality of OSs by responding to a request for adjusting the load by another OS based on the determination result.
また、OS−Bは、プロセッサ数記録部205に記録されているプロセッサ数を1つ増加する。そして、増加した単位プロセッサに対し、レディキュー204に記録されているタスクを割り当てるようスケジューリングしなおす。以上の処理により、OS−AからOS−Bへの単位プロセッサの移動が完了する。
さらに、本実施形態のマルチプロセッサは、OSにかかる負荷が軽くなった場合、いったん増加させた単位プロセッサを移動前に管理されていたOSに戻すこともできる。OSの負荷が軽くなったか否かの判断は、例えば、次のようにして実行することができる。
The OS-B increases the number of processors recorded in the processor
Furthermore, the multiprocessor of this embodiment can return the unit processor once increased to the OS managed before the movement when the load on the OS becomes light. The determination as to whether or not the load on the OS has been reduced can be executed as follows, for example.
すなわち、本実施形態では、OS−Bにおいて、スケジューラ201bがレディキュー204において単位プロセッサの割当を待つ状態(待機状態)のタスクがない状態が継続した時間を計時する。そして、計時された時間が所定の時間に達した場合、OS−Bにかかる負荷が軽減されたと判断する。さらに、本実施形態では、OS−Bが起動時に管理していた単位プロセッサの数と現在管理している単位プロセッサの数とを比較する。
That is, in the present embodiment, in OS-B, the
比較の結果、現在管理されている単位プロセッサの数が起動時に管理していた単位プロセッサの数よりも多い場合には、本実施形態では、OS−BがOS−Aに要求した単位プロセッサをOS−Aに返すものとする。
また、OS−Bにかかる負荷の軽減、単位プロセッサの返却は、レディキュー204のタスクの数が所定の数より少なくなった場合に行ってもよい。この場合、所定のタスク数は、予めOS管理テーブル203に設定しておくものであってもよいし、OS−A、OS−Bが初期化されるたびに設定されるものであってもよい。また、初期化の際、所定のタスク数を、OS−A、OS−Bが初期化時に管理している単位プロセッサの数によって変化することも考えられる。
As a result of comparison, if the number of unit processors currently managed is larger than the number of unit processors managed at the time of startup, in this embodiment, the unit processor requested by OS-B to OS-A is the OS. -Return to A.
Further, the load on OS-B and the return of the unit processor may be performed when the number of tasks in the
例えば、OS−Bにおいてレディキュー204に記録されたタスクが所定の数以下になった場合、スケジューラ201bがOS−Bにかかる負荷が軽くなったと判断する。このような場合、スケジューラ201bは、OS−Aに対してOS−Aに要求した単位プロセッサを返却することを通知する。
単位プロセッサ返却の通知は、例えば、OS−Bが単位プロセッサを返却すること、OS−Bが現在使用している単位プロセッサの数、自OSの識別情報等を共有メモリ101に書き込むことによって実現することができる。OS−Aは、共用メモリ101を参照し、OS−Bから単位プロセッサの返却通知があったことを認識できる。
For example, when the number of tasks recorded in the
The unit processor return notification is realized by, for example, returning the unit processor by the OS-B, writing the number of unit processors currently used by the OS-B, identification information of the own OS, and the like in the shared
OS−Aは、受付判定において、OS−AがOS−Bの単位プロセッサ返却を受付けると判定した場合、図4に示すように、スケジューラ201bは、OS−Aに増加を要求して現在自OSが管理している単位プロセッサに対し、この単位プロセッサがスリープあるいはコンテキストスイッチしたタイミングでさらにタスクを割り当てないようスケジューリングする。またOS−Aは、プロセッサ数記録部205に記録されているプロセッサ数を1つ減じる。
When the OS-A determines in the acceptance determination that the OS-A accepts the OS-B unit processor return, as shown in FIG. 4, the
一方、OS−Aは、プロセッサ数記録部205に記録されているプロセッサ数を1つ増加する。そして、増加した単位プロセッサに対し、レディキュー204に記録されているタスクを割り当てるようスケジューリングしなおす。以上の処理により、OS−BからOS−Aへの単位プロセッサの返却が完了する。
On the other hand, the OS-A increases the number of processors recorded in the processor
図5及び図6は、以上述べた本実施形態のマルチプロセッサで実行される制御方法をコンピュータに実行させるためのプログラムを説明するためのフローチャートである。OS(OS−AまたはOS−Bのいずれであってもよい)は、起動時に初期化され(S501)、実行状態になってイベントの発生に備えて待機する(S502)。なお、図5のフローチャートでいうイベントは、OS内部の要求を抽象化した概念である。 5 and 6 are flowcharts for explaining a program for causing a computer to execute the control method executed by the multiprocessor of the present embodiment described above. The OS (which may be either OS-A or OS-B) is initialized at startup (S501), enters an execution state, and waits for the occurrence of an event (S502). The event referred to in the flowchart of FIG. 5 is a concept that abstracts an internal request of the OS.
OSは、イベント発生すると、発生したイベントの内容を判定する(S503)。そして、この判定の結果得られたイベントの内容に応じて動作する。先ず、発生したイベントがプロセッサの追加を通知するものであった場合(S504:Yes)、OSは、プロセッサ数記録部205に保存されている単位プロセッサの数を1つ加算する(S505)。そして、スケジューラにスケジューリングを要求する(S506)。なお、スケジューリングの要求は、定期的にも実行されている。 When an event occurs, the OS determines the content of the event that has occurred (S503). And it operates according to the contents of the event obtained as a result of this determination. First, when the event that has occurred is a notification of addition of a processor (S504: Yes), the OS adds one to the number of unit processors stored in the processor number recording unit 205 (S505). Then, the scheduler is requested for scheduling (S506). Note that the scheduling request is also periodically executed.
また、OSは、イベントがスケジューリング要求であると判定した場合(S507:Yes)、レディキュー204にあるタスクを取り出して自OSが管理している複数の単位プロセッサの各々に割り当てる(S508)。次に、単位プロセッサの切り離し(一のOSによって管理されていた単位プロセッサをこのOSによる管理対象から除外する)の要求が通知されたか、または単位プロセッサの切り離しを要求する処理の実行中であるかを判断する(S509)。ステップS509の判断において、切り離し要求、切り離し要求の処理の実行中のいずれかであった場合(S509:Yes)、要求に沿って単位プロセッサを切り離す。そして、単位プロセッサを切り離したことを、切り離しを要求したOSに通知する(S510)。
If the OS determines that the event is a scheduling request (S507: Yes), the OS takes out the task in the
また、発生したイベントが、レディキュー204に所定の数(X個)以上の待機状態のタスクがあることを示すものである場合(S511:Yes)、OSは、他のOSに単位プロセッサを要求する(S512)。
また、OSは、図6に示したように、レディキュー204において待機しているタスクがない状態が継続しているか否か判断する(S601)。そして、自OSが現在管理している単位プロセッサの数が起動時に管理していた単位プロセッサの数より多いか否か判断する(S602)。判断の結果、現在管理している単位プロセッサの数の方が多い場合(S602:Yes)、自OSが管理している単位プロセッサを切り離し、この単位プロセッサを要求したOSに移動(返却)する(S603)。
When the event that has occurred indicates that there are a predetermined number (X) or more of waiting tasks in the ready queue 204 (S511: Yes), the OS requests a unit processor from another OS. (S512).
Further, as shown in FIG. 6, the OS determines whether or not there is a state in which no task is waiting in the ready queue 204 (S601). Then, it is determined whether or not the number of unit processors currently managed by the own OS is larger than the number of unit processors managed at the time of startup (S602). If the number of unit processors currently managed is larger as a result of the determination (S602: Yes), the unit processor managed by the own OS is disconnected and moved (returned) to the OS that requested the unit processor ( S603).
なお、本実施形態では、ステップS602において、OSによって管理されている単位プロセッサの増加がないと判断された場合(S602:No)、単位プロセッサの返却は行わないものとする。
さらに、OSは、単位プロセッサの切り離し、または単位プロセッサの要求のイベントが発生したか否か判断する(S604)。OSは、切り離し要求、単位プロセッサの要求いずれがなされた場合にも、自OSの負荷が軽いか否か判断する(S605)。ステップS605の判断は、例えば、レディキュー204おける待機状態のタスクの数等によって実現できる。ステップS605において、自OSの負荷が軽くないと判断された場合(S605:No)、OSは再び実行状態に戻る。
In this embodiment, when it is determined in step S602 that there is no increase in unit processors managed by the OS (S602: No), the unit processors are not returned.
Further, the OS determines whether or not a unit processor disconnection or a unit processor request event has occurred (S604). The OS determines whether the load on the own OS is light regardless of whether a disconnection request or a unit processor request is made (S605). The determination in step S605 can be realized by, for example, the number of standby tasks in the
このような動作により、本実施形態は、単位プロセッサが要求された場合であっても、OSは、自OSにかかる負荷が大きい場合には他のOSに単位プロセッサを提供することはない。また、OSは、自OSにかかる負荷が大きい場合に単位プロセッサを返却することがない。
ステップS605において、負荷が軽いと判断された場合、OSは、プロセッサ数記録部205に保存されている単位プロセッサの数を1つ減じる(S606)。そして、スケジューラに対してスケジューリングを要求する(S607)。
なお、以上の動作において、各イベントの発生の判断においてイベントが発生していないと判断された場合(S504,S507,S509,S511,S602,S604:No)、再度実行状態に戻ってイベントの判定を繰り返す。
With this operation, in this embodiment, even when a unit processor is requested, the OS does not provide the unit processor to another OS when the load on the own OS is large. Further, the OS does not return the unit processor when the load on the own OS is large.
If it is determined in step S605 that the load is light, the OS reduces the number of unit processors stored in the processor
In the above operation, when it is determined that no event has occurred in the determination of the occurrence of each event (S504, S507, S509, S511, S602, S604: No), the process returns to the execution state again to determine the event. repeat.
以上述べた本実施形態によれば、複数のOSが分担して単位プロセッサP0〜P3を動作させるマルチプロセッサにおいて、複数のOSの各々において、このOSかかる負荷を判定し、判定の結果から、OS間でOSの各々にかかる負荷を調整することができる。
このため、本発明は、処理の状況に応じて各OSにかかる負荷を調整することができ、負荷の大きいOSにはより多くの単位プロセッサを割り当てて処理効率の高いマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムを提供することができる。
According to the present embodiment described above, in a multiprocessor in which a plurality of OSs share and operate the unit processors P0 to P3, the load on the OS is determined in each of the plurality of OSs, and the OS results from the determination result. The load on each of the OSs can be adjusted in between.
Therefore, according to the present invention, the load on each OS can be adjusted according to the processing status, and a multiprocessor control method with high processing efficiency can be achieved by assigning more unit processors to the OS with a large load. A program for executing the program can be provided.
なお、図5、図6のフローチャートで示した本実施形態のマルチプロセッサの制御方法をコンピュータに実行させるプログラム(本実施形態ではOS)は、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フロッピー(登録商標)ディスク(FD)、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態のマルチプロセッサの制御方法をコンピュータに実行させるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。 A program (OS in this embodiment) that causes a computer to execute the multiprocessor control method of the present embodiment shown in the flowcharts of FIGS. 5 and 6 is a file in an installable format or an executable format in a CD- The program is provided by being recorded on a computer-readable recording medium such as a ROM, a floppy (registered trademark) disk (FD), or a DVD. Further, a program for causing a computer to execute the multiprocessor control method of the present embodiment may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network.
さらに、以上述べた本実施形態のマルチプロセッサの制御方法をコンピュータに実行させるためのプログラムは、コンピュータで読み取り可能なROM、フラッシュメモリ、メモリカード、USB接続型フラッシュメモリ等のメモリデバイスに記録されて提供してもよい。 Furthermore, a program for causing a computer to execute the multiprocessor control method of the present embodiment described above is recorded in a memory device such as a ROM, flash memory, memory card, or USB-connected flash memory that can be read by a computer. May be provided.
101 共用メモリ、103 メモリ、201a、201b スケジューラ、203 OS管理テーブル、204 レディキュー、205 プロセッサ数記録部、P0,P1,P2,P3 単位プロセッサ 101 shared memory, 103 memory, 201a, 201b scheduler, 203 OS management table, 204 ready queue, 205 processor number recording unit, P0, P1, P2, P3 unit processor
Claims (6)
前記複数のオペレーティングシステムの各々にかかる負荷を判定する負荷判定手段と、
前記負荷判定手段によって少なくとも一のオペレーティングシステムにかかる負荷が大きいと判断された場合、複数のオペレーティングシステムのうち少なくとも一部のオペレーティングシステムの各々にかかる負荷を調整する負荷調整手段と、
を備えることを特徴とするマルチプロセッサ。 A multiprocessor comprising a plurality of operating systems and a plurality of unit processors that are operated by the operating systems in a shared manner,
Load determining means for determining a load applied to each of the plurality of operating systems;
A load adjusting unit that adjusts a load applied to each of at least some of the plurality of operating systems when the load determining unit determines that the load applied to at least one operating system is large;
A multiprocessor characterized by comprising:
前記複数のオペレーティングシステムの各々おいて、該オペレーティングシステムにかかる負荷を判定する負荷判定ステップと、
前記負荷判定ステップにおいてオペレーティングシステムにかかる負荷が大きいと判断された場合、他のオペレーティングシステムとの間で該オペレーティングシステムが担当する単位プロセッサの数を調整する負荷調整ステップと、
を含むことを特徴とするマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム。 A program for causing a computer to execute a control method of a multiprocessor including a plurality of operating systems and a plurality of unit processors that are operated by the plurality of operating systems.
In each of the plurality of operating systems, a load determination step of determining a load applied to the operating system;
A load adjustment step of adjusting the number of unit processors in charge of the operating system with another operating system when it is determined that the load applied to the operating system is large in the load determination step;
A program for causing a computer to execute a multiprocessor control method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006004655A JP2007188212A (en) | 2006-01-12 | 2006-01-12 | Multiprocessor, and program for making computer execute control method of multiprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006004655A JP2007188212A (en) | 2006-01-12 | 2006-01-12 | Multiprocessor, and program for making computer execute control method of multiprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007188212A true JP2007188212A (en) | 2007-07-26 |
Family
ID=38343351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006004655A Withdrawn JP2007188212A (en) | 2006-01-12 | 2006-01-12 | Multiprocessor, and program for making computer execute control method of multiprocessor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007188212A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010079908A (en) * | 2008-09-26 | 2010-04-08 | Samsung Electronics Co Ltd | Memory management apparatus and its method |
DE112009001700T5 (en) | 2008-07-22 | 2011-06-01 | Toyota Jidosha Kabushiki Kaisha | Multicore system, on-board electronic control unit and task switching method |
JP2013037290A (en) * | 2011-08-10 | 2013-02-21 | Canon Inc | Information processing system, information processing method, and program |
US8555289B2 (en) | 2010-03-16 | 2013-10-08 | Samsung Electronics Co., Ltd. | System and method for dynamically managing tasks for data parallel processing on multi-core system |
JP2014515526A (en) * | 2011-06-01 | 2014-06-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Resource allocation for multiple resources for dual operating systems |
US9342365B2 (en) | 2012-03-15 | 2016-05-17 | Samsung Electronics Co., Ltd. | Multi-core system for balancing tasks by simultaneously comparing at least three core loads in parallel |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002202959A (en) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | Virtual computer system for performing dynamic resource distribution |
-
2006
- 2006-01-12 JP JP2006004655A patent/JP2007188212A/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002202959A (en) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | Virtual computer system for performing dynamic resource distribution |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112009001700T5 (en) | 2008-07-22 | 2011-06-01 | Toyota Jidosha Kabushiki Kaisha | Multicore system, on-board electronic control unit and task switching method |
US8856196B2 (en) | 2008-07-22 | 2014-10-07 | Toyota Jidosha Kabushiki Kaisha | System and method for transferring tasks in a multi-core processor based on trial execution and core node |
DE112009001700B4 (en) | 2008-07-22 | 2019-02-07 | Toyota Jidosha Kabushiki Kaisha | Multicore system, on-board electronic control unit and task switching method |
JP2010079908A (en) * | 2008-09-26 | 2010-04-08 | Samsung Electronics Co Ltd | Memory management apparatus and its method |
US9250968B2 (en) | 2008-09-26 | 2016-02-02 | Samsung Electronics Co., Ltd. | Method and memory manager for managing a memory in a multi-processing environment |
US8555289B2 (en) | 2010-03-16 | 2013-10-08 | Samsung Electronics Co., Ltd. | System and method for dynamically managing tasks for data parallel processing on multi-core system |
JP2014515526A (en) * | 2011-06-01 | 2014-06-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Resource allocation for multiple resources for dual operating systems |
US9396027B2 (en) | 2011-06-01 | 2016-07-19 | International Business Machines Corporation | Resource allocation for a plurality of resources for a dual activity system |
JP2013037290A (en) * | 2011-08-10 | 2013-02-21 | Canon Inc | Information processing system, information processing method, and program |
US9342365B2 (en) | 2012-03-15 | 2016-05-17 | Samsung Electronics Co., Ltd. | Multi-core system for balancing tasks by simultaneously comparing at least three core loads in parallel |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4370336B2 (en) | Low power consumption job management method and computer system | |
US7979861B2 (en) | Multi-processor system and program for causing computer to execute controlling method of multi-processor system | |
KR101686010B1 (en) | Apparatus for fair scheduling of synchronization in realtime multi-core systems and method of the same | |
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 | |
US7941643B2 (en) | Multi-thread processor with multiple program counters | |
WO2017179537A1 (en) | Software update control device, software update control system, software update control method, and recording medium having software update control program stored thereon | |
JP2007188212A (en) | Multiprocessor, and program for making computer execute control method of multiprocessor | |
US20150121387A1 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium | |
WO2008062647A1 (en) | Multiprocessor system, system configuration method in multiprocessor system, and program thereof | |
WO2020091916A1 (en) | Resource conservation for containerized systems | |
US20140115601A1 (en) | Data processing method and data processing system | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
US9336049B2 (en) | Method, system, and program for scheduling jobs in a computing system | |
JP5549189B2 (en) | Virtual machine management apparatus, virtual machine management method, and virtual machine management program | |
KR20200032253A (en) | Method and apparatus for managing scheduling of services during boot-up | |
JP2008204243A (en) | Job execution control method and system | |
CN111158875B (en) | Multi-module-based multi-task processing method, device and system | |
JP2008225641A (en) | Computer system, interrupt control method and program | |
JP4325466B2 (en) | Task execution system | |
EP3276489B1 (en) | Parallel processing system | |
WO2024024102A1 (en) | Computer system, task scheduler device, pending process awakening method, and program | |
US11403138B2 (en) | Method and electronic device for handling relative priority based scheduling procedure | |
CN110888675B (en) | Hardware system and electronic device | |
JP4877317B2 (en) | Information processing apparatus and interrupt control method | |
US10419532B2 (en) | Asynchronous connection handling in a multi-threaded server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081001 |
|
A131 | Notification of reasons for refusal |
Effective date: 20111101 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A521 | Written amendment |
Effective date: 20111222 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A131 | Notification of reasons for refusal |
Effective date: 20120626 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A761 | Written withdrawal of application |
Effective date: 20120718 Free format text: JAPANESE INTERMEDIATE CODE: A761 |