JPH08190537A - Multiprocessor system and process scheduling method - Google Patents

Multiprocessor system and process scheduling method

Info

Publication number
JPH08190537A
JPH08190537A JP154595A JP154595A JPH08190537A JP H08190537 A JPH08190537 A JP H08190537A JP 154595 A JP154595 A JP 154595A JP 154595 A JP154595 A JP 154595A JP H08190537 A JPH08190537 A JP H08190537A
Authority
JP
Japan
Prior art keywords
processor
page
processors
area
writing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP154595A
Other languages
Japanese (ja)
Inventor
Toshiki Kitsu
俊樹 岐津
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP154595A priority Critical patent/JPH08190537A/en
Publication of JPH08190537A publication Critical patent/JPH08190537A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE: To effectively use the data stored in cache memories and to improve the performance of a multiprocessor system. CONSTITUTION: The multiprocessor system consists of processors 11a, 11b and 11c which include the cache memories 11a1, 11b1 and 11c1 respectively. A monitoring device 18 monitors the writing frequency of each processor that carried out a writing operation in every area (page) 14 which is used for the process carried out by each processor. When the device 18 judged that the writing frequency of a certain processor exceeds a prescribed threshold, a written page is used and also the process that has not been carried out by the processor judged by the device 18 is shifted to this processor.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、マルチプロセッサシス
テムにおけるプロセススケジューリングに関するもので
ある。
FIELD OF THE INVENTION The present invention relates to process scheduling in a multiprocessor system.

【0002】[0002]

【従来の技術】一般に、マルチプロセッサシステムは、
各プロセッサにキャッシュメモリが設けられている。プ
ロセッサ上で実行されるプロセスが共有メモリに対して
アクセスする場合、キャッシュに対象とするデータが存
在するか判別され、対象とするデータが存在すればキャ
ッシュメモリ上で処理を実行する。これにより、共有メ
モリに対するアクセス回数が低減され、システムの性能
が向上される。
2. Description of the Related Art Generally, a multiprocessor system is
A cache memory is provided in each processor. When the process executed on the processor accesses the shared memory, it is determined whether the target data exists in the cache, and if the target data exists, the process is executed on the cache memory. As a result, the number of accesses to the shared memory is reduced and the system performance is improved.

【0003】ところで、マルチプロセッサシステムで
は、システムで実行すべきプロセスを複数のプロセッサ
を有効に用いて、システム全体の効率を高めるためにプ
ロセススケジューリングが実行されている。
By the way, in a multiprocessor system, process scheduling is executed in order to increase the efficiency of the entire system by effectively using a plurality of processors as processes to be executed in the system.

【0004】従来のマルチプロセッサシステムのプロセ
ススケジューリング方式としては、実行可能なプロセス
のうち、最も高いプライオリティのものを選択して実行
する方式が多い。この方式では、あるプロセッサ上で実
行されていたプロセスが他のプロセッサに自由に移動す
ることができる。
As a process scheduling method of a conventional multiprocessor system, there are many methods of selecting and executing the process having the highest priority among the executable processes. In this method, a process running on one processor can freely move to another processor.

【0005】プロセスがあるプロセッサ上で実行される
場合、そのプロセッサに設けられたキャッシュにプロセ
スが参照するデータが格納される。従って、プロセスが
他のプロセッサに移動された場合には、移動前のプロセ
ッサのキャッシュに格納された、それまでプロセスが参
照していたデータが無駄になってしまう。また、移動さ
れたプロセスは、移動先のプロセッサにおいて改めてキ
ャッシュに格納されたデータに対して処理を実行するこ
とになる。さらに、移動前のプロセッサで他のプロセス
とデータを共有していた場合には、移動後のプロセッサ
のキャッシュにも同じデータが格納されると、プロセス
の処理に伴ってデータの一貫性を維持するための処理が
必要となる。
When a process is executed on a processor, the data referenced by the process is stored in a cache provided in the processor. Therefore, when the process is moved to another processor, the data stored in the cache of the processor before the movement and referred to by the process up to that point is wasted. In addition, the moved process executes processing on the data stored in the cache again in the processor of the moving destination. Furthermore, if the same processor stores the same data in the cache of the moved processor if the processor before the movement shared data with other processes, the consistency of the data will be maintained as the process is processed. Processing is required.

【0006】[0006]

【発明が解決しようとする課題】このように、従来のマ
ルチプロセッサシステムでは、プロセススケジューリン
グによって、プロセスがプロセッサ間で自由に移動でき
るため、プロセッサのキャッシュに格納されたデータが
無駄になっていた。
As described above, in the conventional multiprocessor system, since the process can be freely moved between the processors by the process scheduling, the data stored in the cache of the processor is wasted.

【0007】本発明は前記のような事情を考慮してなさ
れたもので、キャッシュメモリのデータを有効に活用し
て、システム性能の向上を図ることが可能なマルチプロ
セッサシステムを提供することを目的とする。
The present invention has been made in consideration of the above circumstances, and an object thereof is to provide a multiprocessor system capable of improving system performance by effectively utilizing data in a cache memory. And

【0008】[0008]

【課題を解決するための手段】本発明は、キャッシュメ
モリが設けられた複数のプロセッサによって構成された
マルチプロセッサシステムにおいて、プロセッサ上で実
行されるプロセスが使用するメモリ領域について、所定
のメモリ領域毎に、書き込みを行なった各プロセッサの
書き込み頻度を監視する監視手段と、前記監視手段によ
ってあるプロセッサによる書き込みの頻度が所定の閾値
よりも高くなったことが判別された場合に、書き込みが
あったメモリ領域を使用し、かつ前記監視手段によって
判別されたプロセッサで実行されていないプロセスを、
前記プロセッサに移動するスケジューリング手段とを具
備したことを特徴とする。
According to the present invention, in a multiprocessor system including a plurality of processors each provided with a cache memory, a memory area used by a process executed on the processor is provided for each predetermined memory area. A monitoring unit that monitors the writing frequency of each processor that has written, and the memory that has been written when it is determined by the monitoring unit that the writing frequency by a certain processor is higher than a predetermined threshold value. A process that uses the area and is not executed by the processor determined by the monitoring means,
A scheduling means for moving to the processor is provided.

【0009】また、プロセスがプロセッサ間で移動した
際の履歴を記録するプロセス移動記録手段をさらに具備
し、前記スケジューリング手段は、前記プロセス移動記
録手段によって記録された移動の対象とするプロセスに
関する履歴に基づいて、特定のプロセッサ間での移動回
数が所定の閾値を越えた場合に、プロセスの移動を行な
わないことを特徴とする。
Further, the system further comprises a process migration recording means for recording a history when a process migrates between processors, and the scheduling means records the history about the process to be migrated recorded by the process migration recording means. Based on the above, the process is not moved when the number of movements between specific processors exceeds a predetermined threshold.

【0010】また、各プロセッサで実行されるプロセス
数を記録する実行中プロセス記録手段をさらに具備し、
前記スケジューリング手段は、前記実行中プロセス記録
手段によって記録されたプロセス数に基づいて、特定の
プロセッサに対してプロセスが集中していることが判別
された場合には、対象とするプロセスの移動を行なわ
ず、最も多くプロセスを実行しているプロセッサから他
のプロセッサにプロセスを移動することを特徴とする。
[0010] Further, it further comprises an in-execution process recording means for recording the number of processes executed by each processor,
The scheduling unit moves the target process when it is determined that the processes are concentrated on a specific processor based on the number of processes recorded by the executing process recording unit. Instead, the process is moved from the processor that is executing the most processes to another processor.

【0011】[0011]

【作用】このような構成によれば、あるメモリ領域(ペ
ージ)に対する書き込みが、頻繁に行なわれている場
合、すなわち予め設定されたある閾値よりも書き込み頻
度が高い場合には、その書き込みを行なっているプロセ
ッサに、同じメモリ領域にアクセスするプロセスを移動
することにより、複数のプロセッサのキャッシュメモリ
中に同じデータが存在することによるデータの一貫性を
取るための処理を不要とし、さらにキャッシュメモリ上
で複数のプロセスによる処理が実行可能であるので共有
メモリに対するアクセス回数が低減される。すなわち、
プロセスの移動を適切に制御することにより、キャッシ
ュ上などのデータが有効に活用されるので、システム全
体の性能の向上が図れる。
According to such a configuration, when writing to a certain memory area (page) is performed frequently, that is, when the writing frequency is higher than a certain preset threshold value, the writing is performed. By moving the process that accesses the same memory area to another processor, the processing to maintain data consistency due to the presence of the same data in the cache memory of multiple processors is not required. Since the processing can be executed by a plurality of processes, the number of accesses to the shared memory is reduced. That is,
By appropriately controlling the movement of processes, the data on the cache can be effectively used, and the performance of the entire system can be improved.

【0012】[0012]

【実施例】以下、図面を参照して本発明の実施例を説明
する。図1は本発明の第1実施例に係わるマルチプロセ
ッサシステムの構成を示すブロック図である。図1に示
すマルチプロセッサシステムは、複数のプロセッサ11
a,11b,11cと共有メモリ12が、バス13を介
して結合されて構成されている。さらに、バス13に
は、プロセッサ11a,11b,11cによる共有メモ
リ12に対する書き込みを監視する監視装置18が結合
されている。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a multiprocessor system according to the first embodiment of the present invention. The multiprocessor system shown in FIG.
a, 11b, 11c and the shared memory 12 are connected via a bus 13. Further, the bus 13 is coupled with a monitoring device 18 that monitors writing to the shared memory 12 by the processors 11a, 11b, and 11c.

【0013】各プロセッサ11a,11b,11cに
は、それぞれキャッシュメモリ11a1,11b1,1
1c1が設けられている。共有メモリ12には、プロセ
ッサ11a,11b,11c上で実行されるプロセスに
割り当てられる領域(アドレス空間)14、オペレーテ
ィングシステム(OS)が使用するデータ群15の他、
オペレーティングシステムプログラム(スケジューラを
含む)等のプログラムや各種データを格納するための領
域が確保される。スケジューラは、各プロセッサ11
a,11b,11cにおいて、プロセッサ間でプロセス
を移動させるための処理を実行させるものである。
Each of the processors 11a, 11b, 11c has a cache memory 11a1, 11b1, 1 respectively.
1c1 is provided. In the shared memory 12, an area (address space) 14 allocated to a process executed on the processors 11a, 11b, 11c, a data group 15 used by an operating system (OS),
An area for storing programs such as operating system programs (including a scheduler) and various data is secured. The scheduler uses each processor 11
In a, 11b, and 11c, processing for moving a process between processors is executed.

【0014】共有メモリ12中のプロセスに割り当てら
れる領域14は、プロセッサ11a,11b,11c上
でプロセスが生成される際にプロセス毎に割り当てられ
(領域14a,14b,…)、各領域14a,14b,
…がページと呼ばれる単位に分割されて管理されるもの
である。
The area 14 allocated to the process in the shared memory 12 is allocated for each process when the process is generated on the processors 11a, 11b, 11c (areas 14a, 14b, ...), and each area 14a, 14b. ,
... are managed by being divided into units called pages.

【0015】オペレーティングシステムが使用するデー
タ群15には、書き込み回数記録領域16、及びページ
番号格納領域17が含まれている。書き込み回数記録領
域16は、プロセスに割り当てられる領域14中のペー
ジ毎(領域16a,16b,16c,16d,…)に、
そのページに対して行われた書き込みの回数をプロセッ
サ毎に記録するためのものである。詳細については後述
する。
The data group 15 used by the operating system includes a write count recording area 16 and a page number storage area 17. The write count recording area 16 is provided for each page (areas 16a, 16b, 16c, 16d, ...) In the area 14 allocated to the process.
This is for recording the number of writings performed on the page for each processor. Details will be described later.

【0016】ページ番号格納領域17は、書き込み回数
記録領域16に格納されたページに対するプロセッサに
よる書き込みの回数が所定以上となった場合に、該当す
るページを示すページ番号を格納するためのものである
(領域17a,17b,17c,…)。詳細については
後述する。
The page number storage area 17 is for storing a page number indicating a corresponding page when the number of times of writing by the processor with respect to the page stored in the write number recording area 16 exceeds a predetermined number. (Areas 17a, 17b, 17c, ...). Details will be described later.

【0017】監視装置18は、プロセッサ11a,11
b,11cによる共有メモリ12に対する書き込みを監
視して、書き込まれたページに対応する書き込み回数記
録領域16中の所定の領域に、書き込みを行なったプロ
セッサ(プロセッサID)毎に書き込み回数を記録す
る。また、監視装置18は、書き込み回数記録領域16
に記録した書き込み回数を参照して、プロセッサからの
書き込みの回数が所定以上となった(予め設定された閾
値を越えた)場合に、プロセッサに対して割り込みを発
生するものである。
The monitoring device 18 includes processors 11a and 11a.
The writing to the shared memory 12 by b and 11c is monitored, and the writing number is recorded in a predetermined area in the writing number recording area 16 corresponding to the written page for each writing processor (processor ID). Further, the monitoring device 18 uses the write count recording area 16
When the number of writes from the processor is greater than or equal to a predetermined value (exceeds a preset threshold value), an interrupt is issued to the processor with reference to the number of writes recorded in (1).

【0018】図2は書き込み回数記録領域16に記録さ
れる内容の詳細を示す図である。ここでは、ある1つの
ページに対応する領域16aについて示す。領域16a
には、各プロセッサを示すプロセッサIDに対応して、
そのプロセッサが領域16aに対応するページに書き込
みを行なった回数を格納する領域21a,21b,21
c,…、領域21a,21b,21c,…に格納された
書き込み回数が所定以上となったことを判別するための
閾値を格納するための領域22、及び現在このページに
対する処理を実行中のプロセスが動作しているプロセッ
サ(監視装置18による割り込み先)を示すプロセッサ
IDを記録するための領域23が用意されている。
FIG. 2 is a diagram showing details of the contents recorded in the write count recording area 16. Here, the area 16a corresponding to a certain page is shown. Area 16a
Corresponds to the processor ID indicating each processor,
Areas 21a, 21b, 21 for storing the number of times the processor has written to the page corresponding to the area 16a
,, an area 22 for storing a threshold value for determining that the number of times of writing stored in the areas 21a, 21b, 21c, ... Has exceeded a predetermined number, and a process currently executing processing for this page. An area 23 is prepared for recording a processor ID indicating a processor (interrupt destination by the monitoring device 18) on which is operating.

【0019】書き込み回数記録領域16は、予め書き込
み回数が「0」で初期化される。また、プロセッサID
を記録する領域23には、初期値として領域16aに対
応するページが割り当てられたプロセスを実行するプロ
セッサを示すプロセッサIDが格納される。
The write count recording area 16 is initialized with the write count of "0" in advance. Also, the processor ID
In the area 23 for recording, a processor ID indicating a processor that executes a process to which a page corresponding to the area 16a is assigned as an initial value is stored.

【0020】図3はページ番号格納領域17に記録され
る内容の詳細を示す図である。ページ番号格納領域17
には、書き込み回数記録領域16の領域16a,16
b,16c,16d,…において書き込みの回数が閾値
を越えたものと判別された場合に、該当するページを示
すページ番号を、閾値を越える書き込みを行なったプロ
セッサを示すプロセッサIDと対応づけて格納するため
の領域31a,31b,31c,…が用意されている。
FIG. 3 is a diagram showing details of the contents recorded in the page number storage area 17. Page number storage area 17
Are the areas 16a, 16 of the write count recording area 16.
When it is determined that the number of times of writing exceeds the threshold in b, 16c, 16d, ..., The page number indicating the corresponding page is stored in association with the processor ID indicating the processor that has performed the writing exceeding the threshold. Areas 31a, 31b, 31c, ...

【0021】次に、第1実施例の動作について、図4及
び図5に示すフローチャートを参照しながら説明する。
図4は監視装置18の動作を示すフローチャートであ
る。プロセスが生成される際に、共有メモリ12中に領
域(領域14中の所定のページ)が割り当てられると、
そのページに対応して書き込み回数記録領域16中に、
プロセスが実行されるプロセッサを示すプロセッサID
が領域23に格納される。
Next, the operation of the first embodiment will be described with reference to the flow charts shown in FIGS.
FIG. 4 is a flowchart showing the operation of the monitoring device 18. When an area (a predetermined page in the area 14) is allocated in the shared memory 12 when a process is generated,
In the write count recording area 16 corresponding to the page,
Processor ID indicating the processor on which the process is executed
Is stored in area 23.

【0022】このプロセスがあるプロセッサ上で実行さ
れている時に、特定のページに対して書き込みを行なう
と、監視装置18は、書き込み回数記録領域16の対象
とするページに対応して、書き込みを実行したプロセッ
サのプロセッサIDを格納すると共に、このプロセッサ
IDに対応づけて格納された書き込み回数の値を1つ増
やす(ステップA1)。(既に該当するプロセッサID
が格納されていれば、そのプロセッサIDに対応して書
き込み回数の値を1つ増やす)。
When a particular page is written while this process is being executed on a certain processor, the monitoring device 18 executes the write corresponding to the target page of the write count recording area 16. The processor ID of the selected processor is stored, and the value of the write count stored in association with this processor ID is incremented by 1 (step A1). (Already applicable processor ID
Is stored, the write count value is incremented by 1 corresponding to the processor ID).

【0023】また、同じページに対して、他のプロセス
が書き込みを行なうと、同様にして監視装置18は、こ
のプロセスを実行しているプロセッサのプロセッサID
と対応づけて書き込みの回数を格納する(書き込み回数
を1つ増加する)。
Further, when another process writes to the same page, the monitoring device 18 similarly causes the processor ID of the processor executing this process.
The number of writes is stored in association with (the number of writes is increased by 1).

【0024】図2に示すような情報を作成するために
は、いくつかの方法が存在する。例えば、一般的なシス
テムにおいては、プロセッサがあるページに書き込みを
行った場合に、ページテーブルエントリにmodifiedビッ
トをセットするが、この時にmodifiedビットをセットす
ると同時に、書き込みを行ったプロセッサのプロセッサ
IDも記録するようにし、ソフトウェアでそれを定期的
に監視することにより、図2に示すような情報を作成す
る方法がある。
There are several ways to create the information shown in FIG. For example, in a general system, when the processor writes to a page, the modified bit is set in the page table entry. At this time, the modified bit is also set, and at the same time, the processor ID of the processor that wrote the page is also set. There is a method of creating information as shown in FIG. 2 by making a record and periodically monitoring it by software.

【0025】この時、書き込みを行なったプロセッサに
よる、このページへの書き込み回数が、領域22に格納
されている予め設定された閾値を越えた場合には(ステ
ップA2)、監視装置18は、ページ番号格納領域17
に、書き込み回数記録領域16の現在対象としているペ
ージの領域23に格納されているプロセッサIDとペー
ジ番号を対応づけて格納する(ステップA3)。
At this time, if the number of writings to this page by the processor that has performed writing exceeds the preset threshold value stored in the area 22 (step A2), the monitoring device 18 causes the page Number storage area 17
Then, the processor ID and the page number stored in the area 23 of the currently targeted page of the write count recording area 16 are stored in association with each other (step A3).

【0026】最後に、監視装置18は、領域23に格納
されたプロセッサIDが示すプロセッサに対して割り込
みを発行する(ステップA4)。すなわち、領域23に
格納されたプロセッサIDが示すプロセッサ上で実行中
のプロセスを、他のプロセッサに移動させるための処理
を実行させる。
Finally, the monitoring device 18 issues an interrupt to the processor indicated by the processor ID stored in the area 23 (step A4). That is, the process executing on the processor indicated by the processor ID stored in the area 23 is moved to another processor.

【0027】なお、ページ番号格納領域17には、書き
込み回数記録領域16において、他のページに対する書
き込み回数が、それぞれで設定された閾値を越えた場合
に、それぞれのページ番号がプロセッサIDと対応づけ
られて格納される。
In the page number storage area 17, when the number of times of writing to another page in the number-of-times recording area 16 exceeds the threshold value set for each page, each page number is associated with the processor ID. Stored.

【0028】図5は監視装置18によって割り込みを受
けたプロセッサの動作を示すフローチャートである。監
視装置18からの割り込みを受けたプロセッサは、共有
メモリ12のページ番号格納領域17に格納されたプロ
セッサIDから自プロセッサのプロセッサIDを検索
し、該当するプロセッサIDに対応づけて格納されたペ
ージ番号を調べる(ステップB1)。すなわち、どのペ
ージに対する書き込みが閾値を越えて割り込みが発生し
たかを調べる。
FIG. 5 is a flow chart showing the operation of the processor interrupted by the monitoring device 18. The processor receiving the interrupt from the monitoring device 18 retrieves the processor ID of its own processor from the processor ID stored in the page number storage area 17 of the shared memory 12, and stores the page number stored in association with the corresponding processor ID. Is checked (step B1). That is, it is checked to which page the writing exceeds the threshold value and the interrupt is generated.

【0029】割り込みを受けたプロセッサは、ページ番
号格納領域17に格納されたページ番号に応じて、書き
込み回数記録領域16に記録された対象とするページに
対する書き込み回数を調べて、このページに最も多く書
き込みを行なっているプロセッサのプロセッサIDを求
める(ステップB2)。
The processor that has received the interrupt checks the number of times of writing to the target page recorded in the number-of-times-of-writing recording area 16 in accordance with the page number stored in the page number storage area 17, and finds the largest number in this page. The processor ID of the writing processor is obtained (step B2).

【0030】割り込みを受けたプロセッサは、書き込み
回数記録領域16から求めたプロセッサIDと自プロセ
ッサIDとを比較し、一致するか否かを判別する(ステ
ップB3)。すなわち、自プロセッサで動作しているプ
ロセスを、他のプロセッサに移動させるかを判別するも
ので、プロセッサIDが同じであれば、移動先のプロセ
ッサが自プロセッサであるのでプロセスの移動は行なわ
ない。
The processor that has received the interrupt compares the processor ID obtained from the write count recording area 16 with its own processor ID and determines whether they match (step B3). That is, it determines whether or not the process running on its own processor is to be moved to another processor. If the processor IDs are the same, the process at the move destination processor is not its own processor.

【0031】一方、プロセッサIDが異なる場合には、
書き込み回数記録領域16に格納されていたプロセッサ
IDが示す最も書き込み回数の多いプロセッサに、現在
実行中のプロセスを移動させるための処理を実行する
(ステップB4)。
On the other hand, if the processor IDs are different,
A process for moving the currently executing process to the processor having the largest number of times of writing indicated by the processor ID stored in the number-of-writings recording area 16 is executed (step B4).

【0032】そして、書き込み回数記録領域16に格納
された、プロセスの移動先となったプロセッサに対応す
る書き込み回数を「0」クリアする(ステップB5)。
なお、プロセスが切り替わるなどして、ページのマッピ
ングが変更になった場合には、そのページに対応する書
き込み回数記録領域16を初期化し直す。
Then, the write count stored in the write count recording area 16 corresponding to the processor to which the process is moved is cleared to "0" (step B5).
When the page mapping is changed due to the process switching or the like, the write count recording area 16 corresponding to the page is reinitialized.

【0033】このようにして、任意のプロセッサに移動
させるのではなく、共有メモリ12の共通するページに
対する書き込みが多いプロセッサにプロセスを移動させ
るスケジューリングにより、キャッシュメモリに格納さ
れたデータを有効に利用することができる。
In this way, the data stored in the cache memory is effectively used by the scheduling in which the process is moved to the processor that writes a lot to the common page of the shared memory 12 instead of moving it to an arbitrary processor. be able to.

【0034】次に、本発明の第2実施例について説明す
る。図6は、本発明の第2実施例に係わるマルチプロセ
ッサシステムの構成を示すブロック図である。図6に示
す第2実施例のマルチプロセッサシステムは、複数のプ
ロセッサ41a,41b,41cと共有メモリ42が、
バス43を介して結合されて構成されている。さらに、
バス43には、プロセッサ41a,41b,41cによ
る共有メモリ42に対する書き込みを監視する監視装置
48が結合されている。
Next, a second embodiment of the present invention will be described. FIG. 6 is a block diagram showing the configuration of a multiprocessor system according to the second embodiment of the present invention. In the multiprocessor system of the second embodiment shown in FIG. 6, a plurality of processors 41a, 41b, 41c and a shared memory 42 are
It is configured to be connected via a bus 43. further,
A monitoring device 48 that monitors writing to the shared memory 42 by the processors 41a, 41b, and 41c is coupled to the bus 43.

【0035】各プロセッサ41a,41b,41cに
は、それぞれキャッシュメモリ41a1,41b1,4
1c1が設けられている。共有メモリ42には、プロセ
ッサ41a,41b,41c上で実行されるプロセスに
割り当てられる領域(アドレス空間)44、オペレーテ
ィングシステムが使用するデータ群45の他、オペレー
ティングシステムプログラム(スケジューラを含む)等
のプログラムや各種データを格納するための領域が確保
される。スケジューラは、各プロセッサ41a,41
b,41cにおいて、プロセッサ間でプロセスを移動さ
せるための処理を実行させるものである。
The cache memories 41a1, 41b1, 4 are provided in the processors 41a, 41b, 41c, respectively.
1c1 is provided. In the shared memory 42, areas (address space) 44 allocated to processes executed on the processors 41a, 41b, 41c, a data group 45 used by the operating system, and programs such as operating system programs (including a scheduler) And an area for storing various data is secured. The scheduler uses the processors 41a, 41
In b and 41c, processing for moving a process between processors is executed.

【0036】共有メモリ42中のプロセスに割り当てら
れる領域44は、プロセッサ41a,41b,41c上
でプロセスが生成される際にプロセス毎に割り当てられ
(領域44a,44b,…)、各領域44a,44b,
…がページと呼ばれる単位に分割されて管理されるもの
である。
The area 44 allocated to the process in the shared memory 42 is allocated for each process when the process is generated on the processors 41a, 41b and 41c (areas 44a, 44b, ...), and the areas 44a and 44b. ,
... are managed by being divided into units called pages.

【0037】オペレーティングシステムが使用するデー
タ群45には、書き込み回数記録領域46、ページ番号
格納領域47、及びプロセッサID履歴領域49が含ま
れている。
The data group 45 used by the operating system includes a write count recording area 46, a page number storage area 47, and a processor ID history area 49.

【0038】書き込み回数記録領域46は、プロセスに
割り当てられる領域44中のページ毎(領域46a,4
6b,46c,46d,…)に、そのページに対して行
われた書き込みの回数をプロセッサ毎に記録するための
ものである。詳細については後述する。
The write count recording area 46 is for each page (areas 46a, 4a) in the area 44 allocated to the process.
6b, 46c, 46d, ...) For recording the number of times writing has been performed on the page for each processor. Details will be described later.

【0039】ページ番号格納領域47は、書き込み回数
記録領域46に格納されたページに対するプロセッサに
よる書き込みの回数が所定以上となった場合に、該当す
るページを示すページ番号を格納するためのものである
(領域47a,47b,47c,…)。詳細については
後述する。
The page number storage area 47 is for storing the page number indicating the corresponding page when the number of times of writing by the processor with respect to the page stored in the number-of-writes recording area 46 exceeds a predetermined number. (Areas 47a, 47b, 47c, ...). Details will be described later.

【0040】プロセッサID履歴領域49は、各プロセ
ス毎(領域49a,49b,49c,…)に、実行され
たプロセッサを示すプロセッサIDの履歴、すなわちプ
ロセスの移動の履歴を格納するためのものである。プロ
セッサID履歴領域49には、プロセスがプロセッサに
割り当てられることにより、オペレーティングシステム
によってプロセス毎に格納される。
The processor ID history area 49 is for storing, for each process (areas 49a, 49b, 49c, ...), a history of processor IDs indicating the executed processors, that is, a history of process migration. . The processor ID history area 49 is stored for each process by the operating system by allocating the process to the processor.

【0041】監視装置48は、プロセッサ41a,41
b,41cによる共有メモリ42に対する書き込みを監
視して、書き込まれたページに対応する書き込み回数記
録領域46中の所定の領域に、書き込みを行なったプロ
セッサ(プロセッサID)毎に書き込み回数を記録す
る。また、監視装置48は、書き込み回数記録領域46
に記録した書き込み回数を参照して、プロセッサからの
書き込みの回数が所定以上となった(予め設定された閾
値を越えた)場合に、プロセッサに対して割り込みを発
生するものである。
The monitoring device 48 includes processors 41a and 41a.
The writing to the shared memory 42 by b and 41c is monitored, and the writing number is recorded in a predetermined area in the writing number recording area 46 corresponding to the written page for each processor (processor ID) that has performed the writing. Further, the monitoring device 48 uses the write count recording area 46.
When the number of writes from the processor is greater than or equal to a predetermined value (exceeds a preset threshold value), an interrupt is issued to the processor with reference to the number of writes recorded in (1).

【0042】次に、第2実施例の動作について、図7に
示すフローチャートを参照しながら説明する。なお、監
視装置48の動作は、前述した第1実施例と同じである
ので(図4に示すフローチャート)説明を省略する。図
7は監視装置48によって割り込みを受けたプロセッサ
の動作を示すフローチャートである。
Next, the operation of the second embodiment will be described with reference to the flowchart shown in FIG. The operation of the monitoring device 48 is the same as that of the above-described first embodiment (flowchart shown in FIG. 4), and description thereof will be omitted. FIG. 7 is a flowchart showing the operation of the processor interrupted by the monitoring device 48.

【0043】監視装置48からの割り込みを受けたプロ
セッサは、共有メモリ42のページ番号格納領域47に
格納されたプロセッサIDから自プロセッサのプロセッ
サIDを検索し、該当するプロセッサIDに対応づけて
格納されたページ番号を調べる(ステップC1)。すな
わち、どのページに対する書き込みが閾値を越えて割り
込みが発生したかを調べる。
The processor receiving the interrupt from the monitoring device 48 retrieves the processor ID of its own processor from the processor ID stored in the page number storage area 47 of the shared memory 42, and stores it in association with the corresponding processor ID. Check the page number (step C1). That is, it is checked to which page the writing exceeds the threshold value and the interrupt is generated.

【0044】割り込みを受けたプロセッサは、ページ番
号格納領域47に格納されたページ番号に応じて、書き
込み回数記録領域46に記録された対象とするページに
対する書き込み回数を調べて、このページに最も多く書
き込みを行なっているプロセッサのプロセッサIDを求
める(ステップC2)。
The processor that has received the interrupt checks the number of times of writing to the target page recorded in the number-of-times-of-writing recording area 46 according to the page number stored in the page number storage area 47, and finds the largest number in this page. The processor ID of the writing processor is obtained (step C2).

【0045】割り込みを受けたプロセッサは、書き込み
回数記録領域46から求めたプロセッサIDと自プロセ
ッサIDとを比較し、一致するか否かを判別する(ステ
ップC3)。すなわち、自プロセッサで動作しているプ
ロセスを、他のプロセッサに移動させるかを判別するも
ので、プロセッサIDが同じであれば、移動先のプロセ
ッサが自プロセッサであるのでプロセスの移動は行なわ
ない。
The processor that has received the interrupt compares the processor ID obtained from the write count recording area 46 with its own processor ID and determines whether or not they match (step C3). That is, it determines whether or not the process running on its own processor is to be moved to another processor. If the processor IDs are the same, the process at the move destination processor is not its own processor.

【0046】一方、プロセッサIDが異なる場合には、
プロセッサID履歴領域49を参照し、対象とするプロ
セスが実行されたプロセッサの履歴、すなわちプロセス
の移動の履歴を調べる(ステップC4)。
On the other hand, if the processor IDs are different,
With reference to the processor ID history area 49, the history of the processor in which the target process is executed, that is, the history of process migration is checked (step C4).

【0047】そして、特定のプロセッサ間での移動が、
移動回数に対する予め設定された閾値を越えているかを
判別する(ステップC5)。すなわち、特定のプロセッ
サ間でプロセスの移動が繰り返して行なわれている場合
には、プロセスの移動による効果が十分に得られず、ま
たプロセス移動に要する負担のみが増加することになる
のでプロセスを移動させないようにする。
The movement between specific processors is
It is determined whether or not the number of movements exceeds a preset threshold value (step C5). In other words, if processes are repeatedly moved between specific processors, the effects of the process movement will not be fully obtained, and only the load required for process movement will increase, so the processes will be moved. Try not to let me.

【0048】一方、特定のプロセッサ間での移動が閾値
を越えていない場合には、書き込み回数記録領域46に
格納されていたプロセッサIDが示す最も書き込み回数
の多いプロセッサに、現在実行中のプロセスを移動させ
るための処理を実行する(ステップC6)。
On the other hand, when the movement between the specific processors does not exceed the threshold value, the currently executing process is assigned to the processor with the largest number of times of writing indicated by the processor ID stored in the writing number recording area 46. A process for moving is executed (step C6).

【0049】そして、書き込み回数記録領域46に格納
された、プロセスの移動先となったプロセッサに対応す
る書き込み回数を「0」クリアする(ステップC7)。
なお、プロセスが切り替わるなどして、ページのマッピ
ングが変更になった場合には、そのページに対応する書
き込み回数記録領域46を初期化し直す。
Then, the number of writes, which is stored in the number-of-writes recording area 46 and corresponds to the processor to which the process is moved, is cleared to "0" (step C7).
When the page mapping is changed due to the process switching or the like, the write count recording area 46 corresponding to the page is reinitialized.

【0050】このようにして、前述した第1実施例にお
ける効果に加えて、さらにプロセスの移動により十分な
効果が得られない、特定のプロセッサ間での移動が頻繁
に発生する場合には、プロセスを移動させないようにし
て、システムの性能低下を防ぐことができる。
In this way, in addition to the effect of the first embodiment described above, when movement between specific processors frequently occurs, which is not sufficient effect due to movement of the process, the process is It is possible to prevent the system performance from degrading by not moving.

【0051】次に、本発明の第3実施例について説明す
る。図8は、本発明の第3実施例に係わるマルチプロセ
ッサシステムの構成を示すブロック図である。図8に示
すように、第3実施例のマルチプロセッサシステムは、
複数のプロセッサ51a,51b,51cと共有メモリ
52が、バス53を介して結合されて構成されている。
さらに、バス53には、プロセッサ51a,51b,5
1cによる共有メモリ52に対する書き込みを監視する
監視装置58が結合されている。
Next, a third embodiment of the present invention will be described. FIG. 8 is a block diagram showing the configuration of a multiprocessor system according to the third embodiment of the present invention. As shown in FIG. 8, the multiprocessor system of the third embodiment is
A plurality of processors 51a, 51b, 51c and a shared memory 52 are connected via a bus 53.
Further, the bus 53 includes processors 51a, 51b, 5
A monitoring device 58 is connected to monitor writing to the shared memory 52 by 1c.

【0052】各プロセッサ51a,51b,51cに
は、それぞれキャッシュメモリ51a1,51b1,5
1c1が設けられている。共有メモリ52には、プロセ
ッサ51a,51b,51c上で実行されるプロセスに
割り当てられる領域(アドレス空間)54、オペレーテ
ィングシステムが使用するデータ群55の他、オペレー
ティングシステムプログラム(スケジューラを含む)等
のプログラムや各種データを格納するための領域が確保
される。スケジューラは、各プロセッサ51a,51
b,51cにおいて、プロセッサ間でプロセスを移動さ
せるための処理を実行させるものである。
The processors 51a, 51b, 51c have cache memories 51a1, 51b1, 5 respectively.
1c1 is provided. In the shared memory 52, an area (address space) 54 allocated to a process executed on the processors 51a, 51b, 51c, a data group 55 used by the operating system, and programs such as an operating system program (including a scheduler) And an area for storing various data is secured. The scheduler uses the processors 51a, 51
In b and 51c, processing for moving a process between processors is executed.

【0053】共有メモリ52中のプロセスに割り当てら
れる領域54は、プロセッサ51a,51b,51c上
でプロセスが生成される際にプロセス毎に割り当てられ
(領域54a,54b,…)、各領域54a,54b,
…がページと呼ばれる単位に分割されて管理されるもの
である。
The area 54 assigned to the process in the shared memory 52 is assigned to each process when the process is generated on the processors 51a, 51b, 51c (areas 54a, 54b, ...), and the respective areas 54a, 54b. ,
... are managed by being divided into units called pages.

【0054】オペレーティングシステムが使用するデー
タ群55には、書き込み回数記録領域56、ページ番号
格納領域57、プロセッサID履歴領域59、及び実行
中プロセス数領域5Aが含まれている。
The data group 55 used by the operating system includes a write count recording area 56, a page number storage area 57, a processor ID history area 59, and an executing process count area 5A.

【0055】書き込み回数記録領域56は、プロセスに
割り当てられる領域54中のページ毎(領域56a,5
6b,56c,56d,…)に、そのページに対して行
われた書き込みの回数をプロセッサ毎に記録するための
ものである。詳細については後述する。
The write count recording area 56 is provided for each page (areas 56a, 5a) in the area 54 allocated to the process.
6b, 56c, 56d, ...) for recording the number of times of writing to the page for each processor. Details will be described later.

【0056】ページ番号格納領域57は、書き込み回数
記録領域56に格納されたページに対するプロセッサに
よる書き込みの回数が所定以上となった場合に、該当す
るページを示すページ番号を格納するためのものである
(領域57a,57b,57c,…)。詳細については
後述する。
The page number storage area 57 is for storing the page number indicating the corresponding page when the number of times of writing by the processor with respect to the page stored in the number-of-writes recording area 56 exceeds a predetermined number. (Areas 57a, 57b, 57c, ...). Details will be described later.

【0057】プロセッサID履歴領域59は、各プロセ
ス毎(領域59a,59b,59c,…)に、実行され
たプロセッサを示すプロセッサIDの履歴、すなわちプ
ロセスの移動の履歴を格納するためのものである。プロ
セッサID履歴領域59には、プロセスがプロセッサに
割り当てられることにより、オペレーティングシステム
によってプロセス毎に格納される。
The processor ID history area 59 is for storing the history of the processor ID indicating the executed processor, that is, the history of process migration, for each process (areas 59a, 59b, 59c, ...). . The processor ID history area 59 is stored for each process by the operating system by allocating the process to the processor.

【0058】実行中プロセス数領域5Aは、各プロセッ
サ51a,51b,51cで実行しているプロセスの個
数を、各プロセッサ毎(領域5Aa,5Ab,5Ac)
に格納するための領域である。実行中プロセス数領域5
Aには、プロセッサ間でのプロセスの移動等が発生する
ことにより、オペレーティングシステムによってプロセ
ッサ毎に実行中のプロセス数が更新される。
The number of executing processes area 5A indicates the number of processes executed by each processor 51a, 51b, 51c for each processor (areas 5Aa, 5Ab, 5Ac).
Is an area for storing in. Number of running processes area 5
In A, the number of processes being executed is updated for each processor by the operating system due to movement of processes between processors.

【0059】監視装置58は、プロセッサ51a,51
b,51cによる共有メモリ52に対する書き込みを監
視して、書き込まれたページに対応する書き込み回数記
録領域56中の所定の領域に、書き込みを行なったプロ
セッサ(プロセッサID)毎に書き込み回数を記録す
る。また、監視装置58は、書き込み回数記録領域56
に記録した書き込み回数を参照して、プロセッサからの
書き込みの回数が所定以上となった(予め設定された閾
値を越えた)場合に、プロセッサに対して割り込みを発
生するものである。
The monitoring device 58 includes processors 51a and 51a.
The writing to the shared memory 52 by b and 51c is monitored, and the number of writing is recorded in a predetermined area in the number-of-writing recording area 56 corresponding to the written page for each processor (processor ID) that has performed the writing. Further, the monitoring device 58 uses the write count recording area 56.
When the number of writes from the processor is greater than or equal to a predetermined value (exceeds a preset threshold value), an interrupt is issued to the processor with reference to the number of writes recorded in (1).

【0060】次に、第3実施例の動作について、図9に
示すフローチャートを参照しながら説明する。なお、監
視装置58の動作は、前述した第1実施例と同じである
ので(図4に示すフローチャート)説明を省略する。図
9は監視装置58によって割り込みを受けたプロセッサ
の動作を示すフローチャートである。
Next, the operation of the third embodiment will be described with reference to the flow chart shown in FIG. The operation of the monitoring device 58 is the same as that of the first embodiment described above (the flowchart shown in FIG. 4), and the description is omitted. FIG. 9 is a flowchart showing the operation of the processor interrupted by the monitoring device 58.

【0061】監視装置58からの割り込みを受けたプロ
セッサは、共有メモリ52のページ番号格納領域57に
格納されたプロセッサIDから自プロセッサのプロセッ
サIDを検索し、該当するプロセッサIDに対応づけて
格納されたページ番号を調べる(ステップD1)。すな
わち、どのページに対する書き込みが閾値を越えて割り
込みが発生したかを調べる。
The processor receiving the interrupt from the monitoring device 58 retrieves the processor ID of its own processor from the processor ID stored in the page number storage area 57 of the shared memory 52, and stores it in association with the corresponding processor ID. Check the page number (step D1). That is, it is checked to which page the writing exceeds the threshold value and the interrupt is generated.

【0062】割り込みを受けたプロセッサは、ページ番
号格納領域57に格納されたページ番号に応じて、書き
込み回数記録領域56に記録された対象とするページに
対する書き込み回数を調べて、このページに最も多く書
き込みを行なっているプロセッサのプロセッサIDを求
める(ステップD2)。
The processor that has received the interrupt checks the number of times of writing to the target page recorded in the number-of-times-of-writing recording area 56 according to the page number stored in the page number storage area 57, and finds the largest number of times in this page. The processor ID of the writing processor is obtained (step D2).

【0063】割り込みを受けたプロセッサは、書き込み
回数記録領域56から求めたプロセッサIDと自プロセ
ッサIDとを比較し、一致するか否かを判別する(ステ
ップD3)。すなわち、自プロセッサで動作しているプ
ロセスを、他のプロセッサに移動させるかを判別するも
ので、プロセッサIDが同じであれば、移動先のプロセ
ッサが自プロセッサであるのでプロセスの移動は行なわ
ない。
The processor that has received the interrupt compares the processor ID obtained from the write count recording area 56 with its own processor ID and determines whether they match (step D3). That is, it determines whether or not the process running on its own processor is to be moved to another processor. If the processor IDs are the same, the process at the move destination processor is not its own processor.

【0064】一方、プロセッサIDが異なる場合には、
実行中プロセス数領域5Aを参照し、各プロセッサで実
行されているプロセス数を比較する(ステップD4)。
そして、プロセス数の最大と最小との差が、プロセス数
に対する予め設定されている閾値を越えているかを判別
する(ステップD5)。
On the other hand, if the processor IDs are different,
The number of processes being executed in each processor is compared by referring to the number of processes in execution area 5A (step D4).
Then, it is determined whether the difference between the maximum number and the minimum number of processes exceeds a preset threshold value for the number of processes (step D5).

【0065】すなわち、プロセス移動の結果、特定のプ
ロセッサに対して集中してしまい、プロセッサによって
実行しているプロセス数に偏りが発生し、プロセスがあ
る閾値以上の数となっている場合には、現在対象として
いるプロセスの移動を行なわない。また、最も多くのプ
ロセスを実行しているプロセッサから、プライオリティ
の低いプロセスを、他のプロセスの実行数が少ないプロ
セッサに移動させるための処理を実行する(ステップD
6)。従って、プロセス数の差が閾値以下となるまで、
プロセスを最も実行しているプロセッサから他のプロセ
ッサに対してプロセスを移動する処理が、繰り返して実
行されることになる。
In other words, as a result of the process movement, the processes are concentrated on a specific processor, the number of processes executed by the processors is biased, and when the number of processes exceeds a certain threshold, Do not move the currently targeted process. Further, processing for moving a process having a low priority from a processor executing the most processes to a processor having a small number of executions of other processes is executed (step D).
6). Therefore, until the difference in the number of processes falls below the threshold,
The process of moving a process from the processor that is most executing the process to another processor is repeatedly executed.

【0066】一方、プロセッサで実行されているプロセ
ス数の最大と最小との差が閾値を越えない場合には、プ
ロセッサID履歴領域59を参照し、対象とするプロセ
スが実行されたプロセッサの履歴、すなわちプロセスの
移動の履歴を調べる(ステップD7)。
On the other hand, when the difference between the maximum number and the minimum number of processes executed by the processor does not exceed the threshold value, the processor ID history area 59 is referred to, and the history of the processor in which the target process is executed, That is, the history of process movements is checked (step D7).

【0067】そして、特定のプロセッサ間での移動が、
移動回数に対する予め設定された閾値を越えているかを
判別する(ステップD8)。すなわち、特定のプロセッ
サ間でプロセスの移動が繰り返して行なわれている場合
には、プロセスの移動による効果が十分に得られず、ま
たプロセス移動に要する負担のみが増加することになる
のでプロセスを移動させないようにする。
The movement between specific processors is
It is determined whether or not the number of movements exceeds a preset threshold value (step D8). In other words, if processes are repeatedly moved between specific processors, the effects of the process movement will not be fully obtained, and only the load required for process movement will increase, so the processes will be moved. Try not to let me.

【0068】一方、特定のプロセッサ間での移動が閾値
を越えていない場合には、書き込み回数記録領域56に
格納されていたプロセッサIDが示す最も書き込み回数
の多いプロセッサに、現在実行中のプロセスを移動させ
るための処理を実行する(ステップD9)。
On the other hand, when the movement between the specific processors does not exceed the threshold value, the currently executing process is assigned to the processor with the largest number of times of writing indicated by the processor ID stored in the writing number recording area 56. A process for moving is executed (step D9).

【0069】そして、書き込み回数記録領域56に格納
された、プロセスの移動先となったプロセッサに対応す
る書き込み回数を「0」クリアする(ステップD1
0)。なお、プロセスが切り替わるなどして、ページの
マッピングが変更になった場合には、そのページに対応
する書き込み回数記録領域56を初期化し直す。
Then, the number of writes, which is stored in the number-of-writes recording area 56 and corresponds to the processor to which the process is moved, is cleared to "0" (step D1).
0). When the page mapping is changed due to the process switching or the like, the write count recording area 56 corresponding to the page is reinitialized.

【0070】このようにして、前述した第1実施例及び
第2実施例における効果に加えて、さらにプロセスの移
動により特定のプロセッサにプロセスが集中した場合に
は、対象としているプロセスの移動を中止し、最も多く
プロセスを実行しているプロセッサから他のプロセッサ
にプロセスを移動させることとにより、各プロセッサに
対する負担を平均化して、システム全体の性能低下を防
ぐことができる。
In this way, in addition to the effects of the first and second embodiments described above, when processes are further concentrated in a specific processor due to process migration, the migration of the target process is stopped. However, by moving the process from the processor that is executing the most processes to another processor, it is possible to average the load on each processor and prevent performance degradation of the entire system.

【0071】[0071]

【発明の効果】以上詳述したように本発明によれば、プ
ロセスが使用するメモリ領域を監視し、このめり領域に
対するプロセッサによる書き込み回数に基づいて、頻繁
に書き込みを行なっているプロセッサにプロセスを移動
させることにより、キャッシュのデータを有効に活用し
て、システム性能の向上を図ることが可能となるもので
ある。
As described above in detail, according to the present invention, a memory area used by a process is monitored, and a process is frequently written to a processor which frequently writes based on the number of times the processor writes to this margin area. By moving the data, the cache data can be effectively used and the system performance can be improved.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1実施例に係わるマルチプロセッサ
システムの構成を示すブロック図。
FIG. 1 is a block diagram showing the configuration of a multiprocessor system according to a first embodiment of the present invention.

【図2】第1実施例における書き込み回数記録領域16
に記録される内容の詳細を示す図。
FIG. 2 is a write count recording area 16 in the first embodiment.
The figure which shows the detail of the content recorded on.

【図3】第1実施例におけるページ番号格納領域17に
記録される内容の詳細を示す図。
FIG. 3 is a diagram showing details of contents recorded in a page number storage area 17 in the first embodiment.

【図4】第1実施例における監視装置18の動作を示す
フローチャート。
FIG. 4 is a flowchart showing the operation of the monitoring device 18 in the first embodiment.

【図5】第1実施例における監視装置18によって割り
込みを受けたプロセッサの動作を示すフローチャート。
FIG. 5 is a flowchart showing the operation of the processor which is interrupted by the monitoring device 18 in the first embodiment.

【図6】本発明の第2実施例に係わるマルチプロセッサ
システムの構成を示すブロック図。
FIG. 6 is a block diagram showing the configuration of a multiprocessor system according to a second embodiment of the present invention.

【図7】第2実施例における監視装置48によって割り
込みを受けたプロセッサの動作を示すフローチャート。
FIG. 7 is a flowchart showing the operation of the processor which is interrupted by the monitoring device 48 in the second embodiment.

【図8】本発明の第3実施例に係わるマルチプロセッサ
システムの構成を示すブロック図。
FIG. 8 is a block diagram showing the configuration of a multiprocessor system according to a third embodiment of the present invention.

【図9】第3実施例における監視装置58によって割り
込みを受けたプロセッサの動作を示すフローチャート。
FIG. 9 is a flowchart showing the operation of the processor which is interrupted by the monitoring device 58 in the third embodiment.

【符号の説明】[Explanation of symbols]

11a,11b,11c,41a,41b,41c,5
1a,51b,51c…プロセッサ、12,42,52
…共有メモリ、14,44,54…プロセスに割り当て
られる領域、15,45,55…オペレーティングシス
テムが使用するデータ群、16,46,56…書き込み
回数記録領域、17,47,57…ページ番号格納領
域、49,59…プロセッサID履歴領域、5A…実行
中プロセス数領域。
11a, 11b, 11c, 41a, 41b, 41c, 5
1a, 51b, 51c ... Processor, 12, 42, 52
... shared memory, 14, 44, 54 ... area allocated to process, 15, 45, 55 ... data group used by operating system, 16, 46, 56 ... write count recording area, 17, 47, 57 ... page number storage Area, 49, 59 ... Processor ID history area, 5A ... Execution process number area.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 キャッシュメモリが設けられた複数のプ
ロセッサによって構成されたマルチプロセッサシステム
において、 プロセッサ上で実行されるプロセスが使用するメモリ領
域について、所定のメモリ領域毎に、書き込みを行なっ
た各プロセッサの書き込み頻度を監視する監視手段と、 前記監視手段によってあるプロセッサによる書き込みの
頻度が所定の閾値よりも高くなったことが判別された場
合に、書き込みがあったメモリ領域を使用し、かつ前記
監視手段によって判別されたプロセッサで実行されてい
ないプロセスを、前記プロセッサに移動するスケジュー
リング手段と、 を具備したことを特徴とするマルチプロセッサシステ
ム。
1. In a multiprocessor system composed of a plurality of processors each provided with a cache memory, each processor that writes data in a predetermined memory area in a memory area used by a process executed on the processor. Monitoring means for monitoring the writing frequency of the memory, and when the monitoring means determines that the frequency of writing by a processor is higher than a predetermined threshold value, the memory area in which the writing is performed is used, and the monitoring is performed. A multiprocessor system comprising: scheduling means for migrating a process, which is not executed by the processor determined by the means, to the processor.
【請求項2】 プロセスがプロセッサ間で移動した際の
履歴を記録するプロセス移動記録手段をさらに具備し、 前記スケジューリング手段は、前記プロセス移動記録手
段によって記録された移動の対象とするプロセスに関す
る履歴に基づいて、特定のプロセッサ間での移動回数が
所定の閾値を越えた場合に、プロセスの移動を行なわな
いことを特徴とする請求項1記載のマルチプロセッサシ
ステム。
2. A process migration recording means for recording a history when a process migrates between processors, wherein the scheduling means records history concerning a process to be migrated recorded by the process migration recording means. 2. The multiprocessor system according to claim 1, wherein, based on the above, the process is not moved when the number of movements between specific processors exceeds a predetermined threshold value.
【請求項3】 各プロセッサで実行されるプロセス数を
記録する実行中プロセス記録手段をさらに具備し、 前記スケジューリング手段は、前記実行中プロセス記録
手段によって記録されたプロセス数に基づいて、特定の
プロセッサに対してプロセスが集中していることが判別
された場合には、対象とするプロセスの移動を行なわ
ず、最も多くプロセスを実行しているプロセッサから他
のプロセッサにプロセスを移動することを特徴とするマ
ルチプロセッサシステム。
3. A specific processor based on the number of processes recorded by said active process recording means, further comprising active process recording means for recording the number of processes executed by each processor. When it is determined that the processes are concentrated in the process, the target process is not moved and the process is moved from the processor that is executing the most processes to another processor. Multiprocessor system to do.
【請求項4】 キャッシュメモリが設けられた複数のプ
ロセッサによって構成されたマルチプロセッサシステム
において、 プロセッサ上で実行されるプロセスが使用するメモリ領
域について、所定のメモリ領域毎に、書き込みを行なっ
た各プロセッサの書き込み頻度を監視し、 あるプロセッサによる書き込みの頻度が所定の閾値より
も高くなった場合に、書き込みがあったメモリ領域を使
用し、かつ前記監視手段によって判別されたプロセッサ
で実行されていないプロセスを前記プロセッサに移動す
ることを特徴とするプロセススケジューリング方法。
4. A multiprocessor system including a plurality of processors provided with a cache memory, wherein each memory area used by a process executed on the processor is written in every predetermined memory area. The write frequency of a certain processor, and when the write frequency by a certain processor is higher than a predetermined threshold value, the process that uses the memory area where the write is performed and is not executed by the processor determined by the monitoring means A process scheduling method comprising: moving a processor to the processor.
【請求項5】 キャッシュメモリが設けられた複数のプ
ロセッサによって構成されたマルチプロセッサシステム
において、 プロセッサ上で実行されるプロセスが使用するメモリ領
域について、所定のメモリ領域毎に、書き込みを行なっ
た各プロセッサの書き込み頻度を監視し、 あるプロセッサによる書き込みの頻度が所定の閾値より
も高くなった場合に、移動の対象とするプロセスの特定
のプロセッサ間での移動回数が、所定の閾値を越えた場
合にはプロセスの移動を行なわず、 前記所定の閾値を越えていない場合には前記プロセッサ
にプロセスの移動を行なうことを特徴とするプロセスス
ケジューリング方法。
5. In a multiprocessor system composed of a plurality of processors provided with a cache memory, each processor that writes data in a predetermined memory area in a memory area used by a process executed on the processor. Monitoring the write frequency of a certain processor, and when the write frequency by a certain processor exceeds a predetermined threshold, the number of movements between the specific processors of the process to be moved exceeds the predetermined threshold. Does not move the process, and moves the process to the processor when the predetermined threshold is not exceeded.
【請求項6】 キャッシュメモリが設けられた複数のプ
ロセッサによって構成されたマルチプロセッサシステム
において、 プロセッサ上で実行されるプロセスが使用するメモリ領
域について、所定のメモリ領域毎に、書き込みを行なっ
た各プロセッサの書き込み頻度を監視し、 あるプロセッサによる書き込みの頻度が所定の閾値より
も高くなった場合に、特定のプロセッサに対してプロセ
スが集中していなければ対象とするプロセスを前記プロ
セッサに移動し、 特定のプロセッサに対してプロセスが集中していること
が判別された場合には、対象とするプロセスの移動を行
なわず、最も多くプロセスを実行しているプロセッサか
ら他のプロセッサにプロセスを移動することを特徴とす
るプロセススケジューリング方法。
6. A multiprocessor system including a plurality of processors provided with a cache memory, wherein each memory area used by a process executed on the processor is written in every predetermined memory area. Monitor the write frequency of a certain processor, and if the write frequency by a processor exceeds a specified threshold, move the target process to that processor if the process is not concentrated on that processor, If it is determined that the process is concentrated on the other processor, the target process is not moved, and the process that moves the most processes is moved to another processor. Characteristic process scheduling method.
JP154595A 1995-01-09 1995-01-09 Multiprocessor system and process scheduling method Pending JPH08190537A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP154595A JPH08190537A (en) 1995-01-09 1995-01-09 Multiprocessor system and process scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP154595A JPH08190537A (en) 1995-01-09 1995-01-09 Multiprocessor system and process scheduling method

Publications (1)

Publication Number Publication Date
JPH08190537A true JPH08190537A (en) 1996-07-23

Family

ID=11504499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP154595A Pending JPH08190537A (en) 1995-01-09 1995-01-09 Multiprocessor system and process scheduling method

Country Status (1)

Country Link
JP (1) JPH08190537A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055966A (en) * 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> Multiprocessor system, processor module used for multiprocessor system, and method for allocating task in multiprocessing
JP2002519758A (en) * 1998-06-23 2002-07-02 マイクロソフト コーポレイション Hysteresis system and method for limiting the average cost per operation of a series of operations in a computer system
WO2009069573A1 (en) * 2007-11-26 2009-06-04 Nec Corporation Virtual computer shift system, virtual computer shift method, and virtual computer shift program
CN103814357A (en) * 2011-09-23 2014-05-21 高通股份有限公司 Memory coherency acceleration via virtual machine mifration
JP2015194899A (en) * 2014-03-31 2015-11-05 富士通株式会社 Control program, control method, and control device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002519758A (en) * 1998-06-23 2002-07-02 マイクロソフト コーポレイション Hysteresis system and method for limiting the average cost per operation of a series of operations in a computer system
JP2002055966A (en) * 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> Multiprocessor system, processor module used for multiprocessor system, and method for allocating task in multiprocessing
US7171666B2 (en) 2000-08-04 2007-01-30 International Business Machines Corporation Processor module for a multiprocessor system and task allocation method thereof
WO2009069573A1 (en) * 2007-11-26 2009-06-04 Nec Corporation Virtual computer shift system, virtual computer shift method, and virtual computer shift program
JP5382449B2 (en) * 2007-11-26 2014-01-08 日本電気株式会社 Virtual machine migration system, virtual machine migration method, and virtual machine migration program
CN103814357A (en) * 2011-09-23 2014-05-21 高通股份有限公司 Memory coherency acceleration via virtual machine mifration
JP2014530430A (en) * 2011-09-23 2014-11-17 クアルコム,インコーポレイテッド Accelerate memory coherency through virtual machine migration
JP2015194899A (en) * 2014-03-31 2015-11-05 富士通株式会社 Control program, control method, and control device
US9973575B2 (en) 2014-03-31 2018-05-15 Fujitsu Limited Distributed processing system and control method

Similar Documents

Publication Publication Date Title
US6948034B2 (en) Method for use of stack
US6807605B2 (en) Managing a data storage array, a data storage system, and a raid controller
US5349656A (en) Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information
US20020013889A1 (en) Distributed shared memory system with variable granularity
JP4871948B2 (en) Virtual computer system, hypervisor in virtual computer system, and scheduling method in virtual computer system
JPH05204656A (en) Method for holding data inherent in thread
JPH09212371A (en) Register saving and restoring system
JP4036206B2 (en) Set associative cache system and cache memory control method
US6129458A (en) Cache optimization method
US6473845B1 (en) System and method for dynamically updating memory address mappings
US8726248B2 (en) Method and apparatus for enregistering memory locations
JPH08190537A (en) Multiprocessor system and process scheduling method
JPH05151064A (en) Tightly coupled multiprocessor system
JPH06202877A (en) Emulator
JP2001290704A (en) Device and method for controlling multiprocess
JPH06266619A (en) Page saving/restoring device
JP2975253B2 (en) Multiplexed volume device
JP5577518B2 (en) Memory management method, computer and memory management program
JP3772003B2 (en) Memory management system and data management method
JPH03122737A (en) Paging system
JP2002251322A (en) System for controlling storage device
JP3463696B2 (en) Online garbage collection processing method
JPH0830512A (en) Thread control system
JPH03182945A (en) Transfer system for data in main storage
JPS61248152A (en) Procedure change controlling system