JPH09152976A - Computer system - Google Patents

Computer system

Info

Publication number
JPH09152976A
JPH09152976A JP31194095A JP31194095A JPH09152976A JP H09152976 A JPH09152976 A JP H09152976A JP 31194095 A JP31194095 A JP 31194095A JP 31194095 A JP31194095 A JP 31194095A JP H09152976 A JPH09152976 A JP H09152976A
Authority
JP
Japan
Prior art keywords
processor
shared memory
processes
execution
memory area
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
JP31194095A
Other languages
Japanese (ja)
Inventor
Tomonori Sekiguchi
知紀 関口
Hiroki Yamamoto
礼己 山本
Tadashi Shoji
直史 庄司
Yutaka Enko
豊 円光
Toshiaki Arai
利明 新井
Shigeo Takasaki
繁夫 高崎
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP31194095A priority Critical patent/JPH09152976A/en
Publication of JPH09152976A publication Critical patent/JPH09152976A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To improve the execution speed of a process by scheduling a process so that a cache memory which holds the contents of a common memory is effectively utilized. SOLUTION: Processes 190 and 191 share the common memory 110. The processes 190 and 191 are executed by one of processors 101 and 103 and data which are referred to during the execution are stored in caches 102 and 104. Even when the common memory is referred to during the execution, the contents are stored in the cache memories. For example, when the process 190 alters the contents of the common memory 110, the alteration is recorded in the cache 102. For example, the process 191 tries to refer to the contents of the common memory that are altered by the process 190 at this time. In this case, the contents of the common memory 110 stored in the cache 102 are transferred to the processor 103 through a bus 106 and used by the process 103.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は計算機システムに関
する。
TECHNICAL FIELD The present invention relates to a computer system.

【0002】[0002]

【従来の技術】UNIXではプロセス間通信の手段の一
つとして共用メモリ機構が実装されている。UNIXの
共用メモリ機構は、共通のメモリ領域を複数のプロセス
から同時にアクセス可能にすることにより、プロセスが
通常のメモリアクセスと同様の手段でその共通のメモリ
領域をアクセスできるようにし、それによりプロセス間
でデータのやりとりをする。共用メモリ機構の利点は、
メッセージ通信等の他のプロセス間通信の手段と比較し
て、その機構に付随する特殊なプログラムの仕方を必要
としないことである。メッセージ通信であればメッセー
ジの送信、受信といった新たな考え方が必要となるが、
共用メモリへのアクセスは通常のメモリアクセスと同様
の方法で行なうことができるので、プログラミングの考
え方を変える必要がない。ただし、共用メモリへのアク
セスには通常は排他制御が必要である。排他制御に必要
なデータも共用メモリ上に置かれる。
2. Description of the Related Art In UNIX, a shared memory mechanism is mounted as one of means for interprocess communication. The UNIX shared memory mechanism allows a process to access a common memory area in the same manner as a normal memory access by making the common memory area accessible to a plurality of processes at the same time. Exchange data with. The advantages of the shared memory mechanism are:
Compared to other means of interprocess communication such as message communication, it does not require a special programming method attached to the mechanism. For message communication, a new way of thinking such as sending and receiving messages is required.
Access to the shared memory can be performed in the same manner as normal memory access, so there is no need to change the way of thinking of programming. However, access to the shared memory usually requires exclusive control. The data required for exclusive control is also placed on the shared memory.

【0003】UNIXの共用メモリ機構は、元来シング
ルプロセッサの計算機上で時分割で実行される複数のプ
ロセスの間の通信機構を実現したものである。また、共
用メモリ機構はプロセスのアドレス空間に作用するもの
で、共用メモリにアクセス可能なプロセスのスケジュー
ルには影響を与えるものではない。したがって、ある共
用メモリを使用するプロセスの実行後に、その共用メモ
リを使用しないプロセスが実行され、次に、再びその共
用メモリを使用するプロセスが実行されるという順番で
プロセスのスケジュールが行なわれてしまうと、はじめ
に実行されたプロセスが参照しキャッシュに格納された
共用メモリの内容が、最後のプロセスが実行される時に
はキャッシュメモリから追い出されている可能性が高く
なり、実行速度が低下してしまうおそれがあり問題であ
る。
The shared memory mechanism of UNIX originally realizes a communication mechanism between a plurality of processes which are time-divisionally executed on a single processor computer. Also, the shared memory mechanism acts on the address space of the process and does not affect the schedule of processes that can access the shared memory. Therefore, after executing a process that uses a certain shared memory, a process that does not use the shared memory is executed, and then a process that uses the shared memory is executed again in this order. When the last process is executed, the contents of the shared memory that the first executed process refers to and are stored in the cache are more likely to be evacuated from the cache memory, which may reduce the execution speed. There is a problem.

【0004】近年では、共有メモリ型マルチプロセッサ
計算機が高い性能を要求されるシステムで利用されるよ
うになってきている。一般に、プロセッサはアクセス速
度の早いキャッシュメモリを持っており、頻繁に使用す
るデータ、命令はキャッシュメモリに格納しメモリアク
セス時間を減らして実行速度をあげている。共用メモリ
型マルチプロセッサ計算機では、計算機内の各プロセッ
サのキャッシュは何らかの手段により内容の一貫性(キ
ャッシュコヒーレンス)が保たれるようになっている。
In recent years, shared memory multiprocessor computers have come to be used in systems that require high performance. Generally, a processor has a cache memory with a high access speed, and frequently used data and instructions are stored in the cache memory to reduce the memory access time and increase the execution speed. In the shared memory type multiprocessor computer, the cache of each processor in the computer maintains the coherence of contents (cache coherence) by some means.

【0005】共用メモリ型マルチプロセッサ計算機上で
プログラムを実行する場合、キャッシュミス率、キャッ
シュコヒーレンス制御に要するバスのトラフィックがプ
ログラムの実行速度、計算機システム自体の性能に大き
く影響することが知られており、プロセスのスケジュー
ル方法によりキャッシュミスを減らすための工夫がなさ
れている。代表的な方法としては、プロセスの実行プロ
セッサを制御するアフィニティ制御があり、例として、
文献(ASPLOS-VI Proceedings Sixth International Co
nference on Architectural Support for Programming
Language and Operating Systems、Scheduling and Pag
e Migration for Multiprocessor Compute Server)が
ある。アフィニティ制御は、プロセスの実行プロセッサ
をできる限り固定してやることにより、一旦、キャッシ
ュメモリにはいったデータを有効に利用しプログラムの
実行速度を上げようとするものである。この論文では実
行中のプロセスの優先度を一時的に引き上げてプロセス
に与えられるタイムスライスを実質的に長くすることで
実行プロセッサを固定し、キャッシュの有効利用を行な
い、プログラムの実行速度の向上を図っている。
When a program is executed on a shared memory type multiprocessor computer, it is known that the cache miss rate and the bus traffic required for cache coherence control greatly affect the program execution speed and the performance of the computer system itself. , The process scheduling method is designed to reduce cache misses. A typical method is affinity control that controls the execution processor of a process.
Reference (ASPLOS-VI Proceedings Sixth International Co
nference on Architectural Support for Programming
Language and Operating Systems, Scheduling and Pag
e Migration for Multiprocessor Compute Server). Affinity control aims to increase the execution speed of a program by effectively using the data once stored in the cache memory by fixing the execution processor of the process as much as possible. In this paper, the priority of the running process is temporarily raised and the time slice given to the process is substantially lengthened to fix the execution processor, effectively use the cache, and improve the program execution speed. I am trying.

【0006】キャッシュコヒーレンス制御を行なう共有
メモリ型マルチプロセッサ計算機で共用メモリ機構を使
用するプログラムを実行する場合、プロセッサ間のコヒ
ーレント制御がプログラムの実行速度、計算機全体の実
行速度に影響する。つまり、同じ共用メモリを利用して
いる複数のプロセスが異なるプロセッサ上で実行される
場合、あるプロセッサのキャッシュメモリに共用メモリ
の内容が格納されている時に、他のプロセッサでプロセ
ッサにキャッシュされている共用メモリの内容を必要と
するプロセスが走行する時、後者のプロセッサは前者の
プロセッサのキャッシュの内容をコピーする必要があ
る。このような関係にある複数のプロセスが異なるプロ
セッサ上で同時に走行して共用メモリにアクセスする場
合、キャッシュメモリの内容がプロセッサ間で行き来す
るキャッシュのピンポン現象が発生する。結果として、
プロセッサ間を接続するバスのトラフィックが増大し、
プログラムの実行が遅くなり、計算機システム自体の性
能が低下し問題である。
When executing a program using a shared memory mechanism in a shared memory type multiprocessor computer which performs cache coherence control, coherent control between processors affects the program execution speed and the execution speed of the entire computer. In other words, when multiple processes that use the same shared memory are executed on different processors, when the shared memory contents are stored in the cache memory of one processor, they are cached in the processor of another processor. When a process that needs the contents of shared memory runs, the latter processor needs to copy the cache contents of the former processor. When a plurality of processes having such a relationship run on different processors at the same time to access the shared memory, a cache ping-pong phenomenon occurs in which the contents of the cache memory move back and forth between the processors. as a result,
The traffic on the bus connecting the processors increases,
This is a problem because the execution of the program becomes slow and the performance of the computer system itself deteriorates.

【0007】UNIXの共用メモリ機構は、元来シング
ルプロセッサ上で時分割で実行されるプロセス間の通信
機構を実現したものであり、マルチプロセッサ型計算機
で共用メモリが複数のプロセスによって同時にアクセス
されることを考慮していないことが問題である。特定の
プロセスの集合のスケジュールに影響を与えるものとし
て文献(fair share schedule(The design of UNIX ope
rating systemby Maurice J。 Bach、 Prentice-Hall、
pp。 255-257))がある。これは、特定のプロセスの集
合に一定の割合以上のCPU時間が与えられることを保
証するプロセススケジュール方式である。
The shared memory mechanism of UNIX originally realizes a communication mechanism between processes that are time-divisionally executed on a single processor, and a shared memory is simultaneously accessed by a plurality of processes in a multiprocessor type computer. The problem is that it does not take this into consideration. As a document that affects the schedule of a set of specific processes (fair share schedule (The design of UNIX ope
rating system by Maurice J. Bach, Prentice-Hall,
pp. 255-257)). This is a process scheduling method that guarantees that a certain set of processes is given a certain percentage of CPU time or more.

【0008】なお、UNIXはX/Openカンパニー
リミテッドがライセンスしている米国ならびに他の国に
おける登録商標である。
UNIX is a registered trademark in the United States and other countries licensed by X / Open Company Limited.

【0009】[0009]

【発明が解決しようとする課題】本発明は、同じメモリ
領域にアクセス可能である複数のプロセスに関して特別
なスケジュールを行なわない従来の計算機システムに対
して、同じメモリ領域にアクセス可能である複数のプロ
セスのスケジュールに作用し、プロセスの実行速度を向
上させる。
SUMMARY OF THE INVENTION The present invention provides a plurality of processes that can access the same memory area as compared to a conventional computer system that does not perform a special schedule for a plurality of processes that can access the same memory area. Affects the schedule and improves the process execution speed.

【0010】さらに、キャッシュコヒーレンス制御付き
の共有メモリ型マルチプロセッサ計算機での共用メモリ
機構について、同じメモリ領域にアクセス可能である複
数のプロセスのスケジュールに作用し、実行速度を向上
させる。
Further, with respect to the shared memory mechanism in the shared memory type multiprocessor computer with cache coherence control, it affects the schedules of a plurality of processes that can access the same memory area and improves the execution speed.

【0011】さらに、同じメモリ領域にアクセス可能で
ある複数のプロセスの実行プロセッサに関し、それらの
各プロセスのCPU利用量に基づき各プロセスの実行プ
ロセッサを再構成し、共用メモリを使用するプロセスの
実行速度を向上させる機構を有する計算機システムを提
供する。
Further, regarding execution processors of a plurality of processes that can access the same memory area, the execution processors of the respective processes are reconfigured based on the CPU usage of the respective processes, and the execution speed of the processes using the shared memory. A computer system having a mechanism for improving

【0012】[0012]

【課題を解決するための手段】本発明の計算機システム
は、複数のプロセスに関し実行優先度付きで時分割にプ
ロセッサを割り当てスケジュールする手段と、プロセス
間で共通にアクセスすることのできるメモリ領域の作成
と、プロセスが前記メモリ領域へのアクセス権を獲得す
る手段を有している。複数のプロセスが共通にアクセス
することのできるメモリ領域の作成に関し、作成するメ
モリ領域にアクセス可能なプロセスのスケジュールを、
メモリ領域にアクセスすることを考慮して実施するよう
要求する手段、あるいは、プログラムの実行中に、共通
のメモリ領域にアクセス権を持つことを考慮したスケジ
ュールの開始と終了を要求する手段を有している。更
に、プロセスがアクセス可能な共通のメモリ領域を持っ
ているかどうか、その場合のプロセスのCPU利用量、
各プロセスの実行優先度、及び実行プロセッサを比較し
プロセスのスケジュール、実効プロセッサの決定を行な
う手段を有している。
A computer system according to the present invention comprises means for allocating and scheduling processors in a time-sharing manner with execution priorities for a plurality of processes, and creation of a memory area which can be commonly accessed by the processes. And the process has means for gaining access to the memory area. Regarding the creation of the memory area that multiple processes can access in common, the schedule of the process that can access the created memory area,
It has a means for requesting execution in consideration of accessing the memory area, or a means for requesting start and end of the schedule considering having access right to the common memory area during execution of the program. ing. In addition, whether the processes have a common memory area that can be accessed, the CPU usage of the processes in that case,
It has means for comparing the execution priority of each process and the execution processor to determine the process schedule and the effective processor.

【0013】あるプロセッサ上で、同じ共通のメモリ領
域にアクセス可能な実行プロセッサが同じである複数の
プロセスを連続してスケジュールすることで、その実行
プロセッサのキャッシュメモリをより有効に利用してキ
ャッシュミスを減らし、結果としてプロセスの実行速度
が向上する。同じメモリにアクセス可能なプロセスの優
先度を上下させることで、スケジューラがプロセスを選
択する時に、あるプロセッサではその共通のメモリ領域
にアクセス可能なプロセスを連続してスケジュールし、
別のプロセッサではその共通のメモリ領域にアクセス可
能なプロセスの実行を抑制することで、プロセッサ間の
キャッシュコヒーレンス制御の要するトラフィックを減
らし、結果として計算機システム全体の実行速度が向上
する。同じメモリ領域にアクセス可能なプロセスの集合
のCPU利用量と、そのそれぞれのプロセスのCPU利
用量から、同じ共用のメモリ領域にアクセス可能な複数
のプロセスの実行プロセッサを再構成することで、プロ
セッサ間のキャッシュコヒーレント制御に要するバスト
ラフィックを減らし、結果として計算機システム全体の
実行速度が向上する。
By continuously scheduling a plurality of processes having the same execution processor that can access the same common memory area on a certain processor, the cache memory of the execution processor is used more effectively and a cache miss occurs. , Resulting in faster process execution. By raising or lowering the priority of processes that can access the same memory, when the scheduler selects processes, one processor continuously schedules processes that can access the common memory area,
In another processor, by suppressing the execution of processes that can access the common memory area, traffic required for cache coherence control between processors is reduced, and as a result, the execution speed of the entire computer system is improved. Based on the CPU usage of a set of processes that can access the same memory area and the CPU usage of each process, reconfiguring the execution processors of multiple processes that can access the same shared memory area The bus traffic required for cache coherent control is reduced, and as a result, the execution speed of the entire computer system is improved.

【0014】[0014]

【発明の実施の形態】本発明はプロセスのスケジュール
方式、特にプロセスがプロセス間通信の手段として共用
メモリを使用する場合のプロセスのスケジュールに関す
る。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a process scheduling scheme, and more particularly to process scheduling when processes use shared memory as a means of interprocess communication.

【0015】以下、図面を用いて本発明の実施例を説明
する。図1は共用メモリ型マルチプロセッサ計算機のブ
ロック図である。102、104はそれぞれプロセッサ
101、103に専用のキャッシュメモリで、それぞれ
の接続するプロセッサに管理される。プロセッサ10
1、103上ではオペレーティングシステムと応用プロ
グラムを実行する複数のプロセスが動作している。図1
ではプロセッサ数を2個としたが、これは本発明のプロ
セッサの数を限定するものではない。プロセスのデータ
は主記憶105上に置かれる。図1でプロセス190、
191は共用メモリ110を共用している。プロセス1
90、191はプロセッサ101、103のいずれかで
実行され、実行中に参照されたデータはキャッシュ10
2、104に格納される。実行中に共用メモリが参照さ
れた場合もその内容がキャッシュメモリに格納される。
例えば、プロセス190がプロセッサ101で実行され
ているとする。プロセス190が共用メモリ110の内
容を変更すると、キャッシュ102にその変更が記録さ
れる。この時同時に、プロセス191がプロセッサ10
3で実行されていて、プロセス191がプロセス190
が変更した共用メモリの内容を参照しようとしたとす
る。この時は、キャッシュ102に格納されている共用
メモリ110の内容がバス106を介してプロセッサ1
03に転送されプロセス191に利用される。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram of a shared memory type multiprocessor computer. 102 and 104 are cache memories dedicated to the processors 101 and 103, respectively, and are managed by the processors connected to them. Processor 10
A plurality of processes for executing an operating system and application programs are running on Nos. 1 and 103. FIG.
However, the number of processors is set to two, but this does not limit the number of processors of the present invention. The process data is stored in the main memory 105. In FIG. 1, process 190,
191 shares the shared memory 110. Process 1
90 and 191 are executed by one of the processors 101 and 103, and the data referred to during execution is cache 10
2, 104 are stored. Even if the shared memory is referenced during execution, the contents are stored in the cache memory.
For example, suppose process 190 is running on processor 101. As process 190 modifies the contents of shared memory 110, the modification is recorded in cache 102. At this time, at the same time, the process 191 causes the processor 10
Process 191 and process 191
Suppose you try to refer to the contents of the shared memory changed by. At this time, the contents of the shared memory 110 stored in the cache 102 are transferred to the processor 1 via the bus 106.
03 is used for the process 191.

【0016】本発明の第1の実施例について説明する。
本発明の第1の実施例は同一の共用メモリにアクセス可
能な複数のプロセスのスケジュールに関して、そのよう
なプロセスを連続してスケジュールする。
A first embodiment of the present invention will be described.
The first embodiment of the present invention relates to the scheduling of multiple processes that can access the same shared memory, and schedules such processes sequentially.

【0017】図2は本発明の第1の実施例のデータ構造
の説明図を示す。図2にしたがって本発明の第1の実施
例のデータ構造について説明する。200、220はプ
ロセスの状態を記述するデータ構造である。200には
プロセス20の実行優先度201、プロセス20の最近
のCPU利用量202、プロセス20の実行プロセッサ
203、プロセス20のアドレス空間を表現するデータ
構造へのポインタ204を含んでいる。220も同様に
プロセス22の優先度221、CPU利用量222、実
行プロセッサ223、アドレス空間224を含む。21
0、230はそれぞれプロセス20、22のアドレス空
間を表現するデータ構造である。プロセスのアドレス空
間は、そのプロセスの実行コード部分、データ部分、ス
タック部分を含み、プロセスが共用メモリへアクセス可
能な時は共用メモリを管理するデータ構造へのポインタ
211、231を含む。240は共用メモリを管理する
データ構造で共用メモリ管理テーブル250へのポイン
タ241を含んでいる。250は計算機システム内の全
ての共用メモリを管理する共用メモリ管理テーブルで、
作成された共用メモリに関する情報を保持する。作成さ
れた共用メモリ毎にエントリが割り当てられ、その共用
メモリを使用しているプロセスの集合を表現するデータ
構造251、その共用メモリを使用しているプロセスの
CPU利用量の合計252、共用メモリ優先スケジュー
ルフラグ253を含んでいる。270は計算機内の各プ
ロセッサ毎の情報を記述するデータ構造である。270
はプロセッサ101で優先スケジュールの対象になって
いる共用メモリの共用メモリ管理テーブル250でのエ
ントリへのポインタ281と、281の示す共用メモリ
にアクセス可能なプロセスの優先スケジュールを開始し
た時刻を保持する282を含んでいる。プロセッサ10
2の情報は291、292により記述される。281、
291で示される共用メモリを使用しているプロセス
は、それぞれのCPUで優先的にスケジュールされる。
FIG. 2 shows an explanatory diagram of the data structure of the first embodiment of the present invention. The data structure of the first embodiment of the present invention will be described with reference to FIG. Reference numerals 200 and 220 are data structures that describe the state of the process. 200 includes an execution priority 201 of the process 20, a recent CPU usage 202 of the process 20, an execution processor 203 of the process 20, and a pointer 204 to a data structure expressing the address space of the process 20. 220 also includes the priority 221, the CPU usage 222, the execution processor 223, and the address space 224 of the process 22. 21
Reference numerals 0 and 230 are data structures that represent the address spaces of the processes 20 and 22, respectively. The address space of a process includes the execution code portion, the data portion, the stack portion of the process, and pointers 211 and 231 to the data structure managing the shared memory when the process can access the shared memory. A data structure 240 manages the shared memory and includes a pointer 241 to the shared memory management table 250. Reference numeral 250 is a shared memory management table for managing all shared memories in the computer system.
Holds information about the created shared memory. An entry is assigned to each created shared memory, a data structure 251 expressing a set of processes using the shared memory, a total CPU usage 252 of processes using the shared memory, and a shared memory priority. The schedule flag 253 is included. A data structure 270 describes information for each processor in the computer. 270
282 holds a pointer 281 to an entry in the shared memory management table 250 of the shared memory that is the target of the priority schedule in the processor 101, and a time 282 when the priority schedule of the process accessible to the shared memory indicated by 281 is started. Is included. Processor 10
The second information is described by 291 and 292. 281,
The process using the shared memory indicated by 291 is scheduled by each CPU with priority.

【0018】各プロセスのCPU利用量202、22
2、共用メモリにアクセス可能なプロセスのCPU利用
量の合計252は、一定時間間隔毎に発生させるクロッ
ク割り込みの割り込み処理で計算される。例えば、プロ
セス20が走行中にクロック割り込みが発生したとす
る。クロック割り込み処理ハンドラはプロセス20のプ
ロセス状態データ構造である200のCPU利用量20
2をインクリメントし、さらに、プロセス20は共用メ
モリ240にアクセス可能になっているので、その共用
メモリ240のCPU利用量合計である252をインク
リメントする。各CPU利用量は一定時間間隔で減衰さ
せて、CPU利用量が最近のCPU利用量を近似するよ
うにする。つまり、時間が経過すれば過去のCPU利用
量を忘れるようにする。
CPU usage 202, 22 of each process
2. The total CPU usage 252 of processes that can access the shared memory is calculated by the interrupt processing of the clock interrupt generated at regular time intervals. For example, assume that a clock interrupt occurs while the process 20 is running. The clock interrupt handler is a process state data structure of the process 20 and has a CPU usage amount of 200.
2 is incremented, and since the process 20 can access the shared memory 240, 252 which is the total CPU usage of the shared memory 240 is incremented. The CPU usage is attenuated at regular time intervals so that the CPU usage approximates the latest CPU usage. That is, the past CPU usage amount is forgotten as time passes.

【0019】プロセス20が共用メモリ優先スケジュー
ルを行ないたい共用メモリ240の作成を要求したもの
として、共用メモリ作成の手順について説明する。プロ
セス20がオペレーティングシステムに対して共用メモ
リの作成を要求すると、システムは共用メモリ管理テー
ブル250の空きエントリを一つ割り当て、共用メモリ
管理構造体240を作成する。作成要求時に共用メモリ
優先スケジュールが要求されている場合は、共用メモリ
管理テーブルの割り当てたエントリの優先スケジュール
フラグ253をセットする。プロセス20が共用メモリ
240へのアクセス権を要求すると、プロセス20のア
ドレス空間を表現するデータ構造である210に共用メ
モリ用のエントリ211を設定する。これにより、共用
メモリ240がプロセス20のアドレス空間に組み込ま
れ、プロセス20から共用メモリ240へのアクセスが
可能になる。図2では、プロセスがアクセス可能な共用
メモリは一つしか描かれていないが、これはプロセスが
利用できる共用メモリの数を制限するものではない。
The procedure for creating the shared memory will be described on the assumption that the process 20 requests the creation of the shared memory 240 which is to be subjected to the shared memory priority schedule. When the process 20 requests the operating system to create the shared memory, the system allocates one free entry in the shared memory management table 250 and creates the shared memory management structure 240. If the shared memory priority schedule is requested at the time of creation request, the priority schedule flag 253 of the assigned entry in the shared memory management table is set. When the process 20 requests the access right to the shared memory 240, the entry 211 for the shared memory is set in the data structure 210 that represents the address space of the process 20. As a result, the shared memory 240 is incorporated in the address space of the process 20, and the process 20 can access the shared memory 240. Although only one shared memory is accessible to the process in FIG. 2, this does not limit the number of shared memories available to the process.

【0020】図3は本発明の第1の実施例のフローチャ
ートを示している。図3は本発明の第1の実施例でのプ
ロセスのスケジュール方式を示している。本フローチャ
ートにしたがって第1の実施例の動作の説明をする。オ
ペレーティングシステムは走行中のプロセスが何らかの
事象待ちでスリープした、あるいは、走行中のプロセス
が与えられたCPU時間を使い切った等、何らかの契機
により走行プロセスの切替を行なう。システム内には走
行待ちになっているプロセスを保持する待ち行列があり
プロセスの実行優先度にしたがって管理されている。今
まで走行していたプロセスをプロセス20、プロセス切
替を行なうプロセッサを101として説明する。まず、
ステップ1001では現在プロセッサ101で優先スケ
ジュールされている共用メモリがあるか検査する。これ
は、プロセッサ構造体テーブル270の優先スケジュー
ル共用メモリ281を参照すれば分かる。優先スケジュ
ールしている共用メモリがあれがステップ1002へ、
なければ、ステップ1010へ進む。ステップ1010
では走行可能プロセス待ち行列から最も優先度の高いプ
ロセスを一つ選択する。ここで選択されたプロセスがプ
ロセス22であるとする。選択されたプロセス22がア
クセス可能な共用メモリをもっているならば(ステップ
1011)、プロセス22がアクセス可能な優先スケジ
ュールフラグ253が設定されている共用メモリのうち
で、共用メモリのCPU利用量の合計が最も少ないもの
を選ぶ(ステップ1012)。ステップ1012は、共用
メモリ管理テーブル250のプロセス22がアクセス可
能な共用メモリのエントリの共用メモリCPU利用量2
52を検査して行なう。ステップ1013では、ステッ
プ1012で選択したCPU利用量が最も少ない共用メ
モリの共用メモリ管理テーブル250のエントリへのポ
インタをプロセッサ構造体テーブル270のプロセッサ
101のエントリの優先スケジュール共用メモリ281
に書き込み、更に、現在の時刻を優先スケジュール開始
時刻282に書き込む。そして、選択したプロセス22
を走行させる。
FIG. 3 shows a flow chart of the first embodiment of the present invention. FIG. 3 shows a process scheduling method according to the first embodiment of the present invention. The operation of the first embodiment will be described according to this flowchart. The operating system switches the running process for some reason, such as when the running process sleeps waiting for some event, or when the running process runs out of the given CPU time. In the system, there is a queue that holds the processes waiting to run, and they are managed according to the execution priority of the processes. The process that has been running until now is described as process 20, and the processor that performs process switching is described as 101. First,
In step 1001, it is checked whether or not there is a shared memory currently preferentially scheduled by the processor 101. This can be understood by referring to the priority schedule shared memory 281 of the processor structure table 270. If there is a shared memory with priority scheduling, go to step 1002,
If not, the process proceeds to step 1010. Step 1010
Then, one process with the highest priority is selected from the runnable process queue. It is assumed that the process selected here is the process 22. If the selected process 22 has the accessible shared memory (step 1011), the total CPU usage of the shared memory among the shared memories in which the priority schedule flag 253 accessible by the process 22 is set is The smallest number is selected (step 1012). Step 1012 is the shared memory CPU usage 2 of the shared memory entry accessible by the process 22 of the shared memory management table 250.
52 is inspected. In step 1013, the pointer to the entry of the shared memory management table 250 of the shared memory with the smallest CPU usage selected in step 1012 is set to the priority schedule shared memory 281 of the entry of the processor 101 of the processor structure table 270.
In the priority schedule start time 282. And the selected process 22
To run.

【0021】プロセス切替を行なうプロセッサで優先ス
ケジュールを実施している場合、つまり、プロセッサ構
造体テーブル270のプロセッサ101のエントリの優
先スケジュール共用メモリ281に共用メモリテーブル
250のエントリへのポインタが登録されている場合は
ステップ1002を行なう。ここではプロセッサ101
が共用メモリ240を対象として優先スケジュールを行
なっているものとして説明する。まず、ステップ100
2では実行プロセッサがプロセッサ101で予め定めた
定数K4よりも実行優先度の高い走行可能プロセスがあ
るか検査する。ある場合はステップ1015へ、なけれ
ばステップ1003へ進む。ステップ1003では、実
行プロセッサが101で今まで実行していたプロセスの
実行優先度よりも実行優先度が高くて、その差が予め定
めた定数K3よりも大きいプロセスがあるか検査する。
あればステップ1015へ、なければステップ1004
へ進む。ステップ1015では、プロセッサ構造体テー
ブル270のプロセッサ101のエントリの優先スケジ
ュール共用メモリ281、優先スケジュール開始時刻2
82を無効に設定し、ステップ1010へ進む。ステッ
プ1004では、次に、プロセッサ構造体テーブル27
0のプロセッサ101のエントリの優先スケジュール開
始時刻282に設定されている時刻を検査し、その時刻
から現在までの経過時間が予め定めた定数K0を越えて
いる、あるいは、優先スケジュール共用メモリ281に
登録されている共用メモリ240にアクセス可能な実行
プロセッサが101である走行可能プロセスがない(ス
テップ1005)、あるいは、そのようなプロセスはあ
るが今まで走行していたプロセス20の優先度201と
比較して差がK1より大きい(ステップ1006)場合
は、プロセッサ構造体テーブル270のプロセッサ10
1のエントリの優先スケジュール共用メモリ281、優
先スケジュール開始時刻282を無効に設定し(ステッ
プ1009)、ステップ1010へ進む。そうでなけれ
ば、ステップ1007を実行する。ステップ1007で
は、優先スケジュール共用メモリ281に登録されてい
る共用メモリ240を使用しているプロセスで実行優先
度の最も高いプロセスを選択する。選択したプロセスを
プロセス22とすると、続くステップ1008では、ス
テップ1007で選択したプロセス22の実行優先度2
21を今まで走行していたプロセス20の優先度201
に設定する。
When the processor which performs the process switching is implementing the priority schedule, that is, the pointer to the entry of the shared memory table 250 is registered in the priority schedule shared memory 281 of the entry of the processor 101 of the processor structure table 270. If so, step 1002 is performed. Here, the processor 101
Describes that the shared memory 240 is the target of the priority schedule. First, step 100
In 2, the execution processor checks whether or not there is a runnable process whose execution priority is higher than the predetermined constant K4 in the processor 101. If there is, go to step 1015, and if not, go to step 1003. In step 1003, it is checked whether or not there is a process in which the execution processor 101 has a higher execution priority than the process that has been executed up to now, and the difference between them is larger than a predetermined constant K3.
If there is, go to step 1015, and if there is not, go to step 1004
Proceed to. In step 1015, the priority schedule shared memory 281 of the entry of the processor 101 in the processor structure table 270, the priority schedule start time 2
82 is set to invalid and the process proceeds to step 1010. In step 1004, next, the processor structure table 27
The time set in the priority schedule start time 282 of the entry of the processor 101 of 0 is checked and the elapsed time from that time to the present exceeds the predetermined constant K0, or is registered in the priority schedule shared memory 281. There is no runnable process whose execution processor 101 is 101 that is accessible to the shared memory 240 (step 1005), or there is such a process, but the priority 201 of the process 20 which has been running until now is compared. If the difference is larger than K1 (step 1006), the processor 10 in the processor structure table 270 is processed.
The priority schedule shared memory 281 and the priority schedule start time 282 of the entry 1 are set to be invalid (step 1009), and the process proceeds to step 1010. If not, step 1007 is executed. In step 1007, the process having the highest execution priority among the processes using the shared memory 240 registered in the priority schedule shared memory 281 is selected. If the selected process is process 22, then in step 1008, the execution priority 2 of the process 22 selected in step 1007 is set.
Priority 201 of process 20 that has been running 21
Set to.

【0022】この実施例では、実行プロセッサが同じで
同じ共用メモリにアクセス可能なプロセスをできるだけ
連続してスケジュールすることで、一旦、プロセッサの
キャッシュに入った共用メモリの内容をキャッシュから
追い出すことなく利用することを特徴とする。例えば、
共用メモリ240を使うプロセス20がプロセッサ10
1でスケジュールされ、走行中に共用メモリ240にア
クセスしたと仮定する。アクセスされた共用メモリの内
容はキャッシュ102にキャッシュされる。この後のあ
る時点でプロセス切替が発生するが、この時にキャッシ
ュ102に共用メモリの内容が残っているとすると、こ
れを使う可能性のあるプロセスを次にスケジュールする
とキャッシュ102を有効に使えることになり、メモリ
システムへの負荷が減り実行速度が向上する。
In this embodiment, by scheduling the processes in which the execution processors are the same and can access the same shared memory as continuously as possible, the contents of the shared memory once stored in the cache of the processor can be used without being expelled from the cache. It is characterized by doing. For example,
The process 20 using the shared memory 240 is the processor 10
Suppose that the shared memory 240 was accessed while traveling at the scheduled time of 1. The contents of the accessed shared memory are cached in the cache 102. At some point after this, process switching occurs, but if the contents of the shared memory remain in the cache 102 at this time, the cache 102 can be effectively used when the process that may use this is next scheduled. This reduces the load on the memory system and improves the execution speed.

【0023】本実施例では、あるプロセッサで優先スケ
ジュール指定された共用メモリにアクセス可能なプロセ
スがスケジュールされると、その共用メモリと使用開始
時刻を記録する。使用開始時刻を記録するのは、同一の
共用メモリを使用するプロセスをできるだけ連続してス
ケジュールするために、そのプロセッサで走行待ちにな
っている最高実行優先度のプロセスを待たせて実行優先
度の低いプロセスをスケジュールすることがあり、それ
によりプロセッサを占有してしまうことがないようにす
るために共用メモリを使用してから一定時間が経過した
ら通常のプロセス実行優先度にしたがったスケジュール
に戻すためである。
In this embodiment, when a process capable of accessing the shared memory for which the priority schedule is designated by a certain processor is scheduled, the shared memory and the use start time are recorded. The use start time is recorded by waiting for the process with the highest execution priority waiting to run in that processor to schedule the processes that use the same shared memory as continuously as possible. To schedule a low process, so that it will not occupy the processor, and to return to the schedule according to the normal process execution priority after a certain period of time after using shared memory Is.

【0024】本発明の第2の実施例について説明する。
本発明の第2の実施例は、同一の共用メモリを使用する
が実行プロセッサが異なっている複数のプロセスのスケ
ジュールに関する。優先スケジュール指定された共用メ
モリにアクセス可能なプロセスがあるプロセッサで走行
を開始した時に、この共用メモリにアクセス可能であっ
て他のプロセッサが実行プロセッサであるプロセスの実
行優先度を下げて、他のプロセッサでの共用メモリの利
用を減らすことを特徴とする。
A second embodiment of the present invention will be described.
The second embodiment of the present invention relates to a schedule of a plurality of processes using the same shared memory but different execution processors. Priority schedule When a process that has access to the specified shared memory starts running on a processor, the process that has access to this shared memory and is another processor is the executing processor, reduces the execution priority, and It is characterized by reducing the use of shared memory in the processor.

【0025】図4は本発明の第2の実施例のデータ構造
を示している。400、420はプロセスの状態を記述
するデータ構造である。400はプロセス40の実行優
先度401、プロセス40の引下げ前実行優先度40
2、プロセス40の実行優先度が強制的に下げられたか
を示す実行優先度引下げフラグ403、プロセス40の
実行プロセッサ405を含んでいる。プロセス42の状
態は420の421、422、423、425によりプ
ロセス40と同様に記述される。404、424はそれ
ぞれのプロセス40、42のアドレス空間を記述するデ
ータ構造である410、430を指している。プロセス
がアクセス可能な共用メモリを持っているならば、41
0、430は共用メモリを管理するデータ構造を指すエ
ントリ411、431を持ち、411、431は共用メ
モリを管理するデータ構造440を指す。この例ではプ
ロセス40、42は同じ共用メモリ440に対してアク
セスが可能であり、この共用メモリは440により記述
されている。共用メモリ440は、システムの共用メモ
リ管理テーブルである450へのインデックス441を
含んでいる。共用メモリ管理テーブル450は作成され
たシステム内のすべての共用メモリの情報を管理するテ
ーブルで、共用メモリ毎にエントリが割り当てられてい
る。エントリ毎にその共用メモリを優先利用しているプ
ロセッサの番号451、その共用メモリにアクセス可能
なプロセスの集合452、優先スケジュールフラグ45
3を含んでいる。480は、将来のある時点で呼び出す
手続きのリストで、呼びだし時刻481、呼び出す手続
き482、手続き482へ渡す引数483を含む要素の
リストである。一定時間間隔毎発生させるクロック割り
込み処理時にこのリスト480を検査し、時刻481に
なると483を引数として手続き482を呼ぶようにシ
ステムがスケジュールする。
FIG. 4 shows the data structure of the second embodiment of the present invention. Reference numerals 400 and 420 are data structures that describe the state of the process. Reference numeral 400 denotes the execution priority 401 of the process 40, and execution priority 40 of the process 40 before reduction.
2, the execution priority lowering flag 403 indicating whether the execution priority of the process 40 is forcibly lowered, and the execution processor 405 of the process 40 are included. The state of the process 42 is described in the same manner as the process 40 by 421, 422, 423, 425 of 420. Reference numerals 404 and 424 denote data structures 410 and 430 that describe the address spaces of the processes 40 and 42, respectively. 41 if the process has shared memory accessible
0 and 430 have entries 411 and 431 that point to a data structure that manages the shared memory, and 411 and 431 indicate a data structure 440 that manages the shared memory. In this example, processes 40, 42 can access the same shared memory 440, which is described by 440. The shared memory 440 contains an index 441 to 450, which is the system's shared memory management table. The shared memory management table 450 is a table for managing information on all the shared memories in the created system, and an entry is assigned to each shared memory. For each entry, the number 451 of the processor that preferentially uses the shared memory, the set 452 of processes that can access the shared memory, and the priority schedule flag 45.
Contains three. Reference numeral 480 is a list of procedures to be called at a certain point in the future, which is a list of elements including a calling time 481, a calling procedure 482, and an argument 483 to be passed to the procedure 482. This list 480 is inspected at the time of clock interrupt processing generated at fixed time intervals, and at time 481, the system schedules to call the procedure 482 with 483 as an argument.

【0026】共用メモリの作成、共用メモリの優先スケ
ジュール指定、プロセスへのアクセス権の付与方法は実
施例1と同様に行なう。
The method of creating the shared memory, specifying the priority schedule of the shared memory, and granting the access right to the process are the same as in the first embodiment.

【0027】図5は本発明の第2の実施例のフローチャ
ートを示している。図5は本発明の第2の実施例でのプ
ロセスのスケジュール方式を示している。本発明の第2
の実施例について本フローチャートにより説明する。オ
ペレーティングシステムは何らかの契機により実行プロ
セスの切替を行なう。その際、次に走行させるプロセス
を選択しなければならない。システム内には走行待ちで
あるプロセスを保持する待ち行列がありプロセスの実行
優先度にしたがって管理されている。以下では、プロセ
ス切替が行なわれるプロセッサを101として説明す
る。まず、ステップ2001では、プロセス切替を行な
おうとしているプロセッサ101を実行プロセッサとす
る最も実行優先度の高いプロセスを1つ選択する。これ
をプロセス40とする。続くステップ2002では、ス
テップ2001でで選択したプロセス40が優先スケジ
ュール指定されている共用メモリにアクセス可能でない
ならば、何もせずそのプロセス40を走行させる。仮
に、選択したプロセス40が優先スケジュール指定され
ている共用メモリ440にアクセス可能であるとする。
ステップ2001で選択したプロセスがアクセス可能で
優先スケジュール指定された共用メモリがある場合、そ
れらの共用メモリのうちで優先利用プロセッサの指定を
されていない共用メモリについて、それぞれループ20
20を実行する。優先利用プロセッサの指定をされてい
るかどうかは、共用メモリ管理テーブル450の共用メ
モリに対応するエントリの優先利用プロセッサ指定45
1を検査すれば分かる。プロセス40が優先スケジュー
ル指定されているが優先利用プロセッサの指定をされて
いない共用メモリ440にアクセス可能であるとして説
明する。
FIG. 5 shows a flowchart of the second embodiment of the present invention. FIG. 5 shows a process scheduling method in the second embodiment of the present invention. Second of the present invention
The embodiment will be described with reference to this flowchart. The operating system switches the execution process with some kind of trigger. At that time, the process to be run next must be selected. In the system, there is a queue that holds processes that are waiting to run, and they are managed according to the execution priority of the processes. In the following, the processor in which process switching is performed will be described as 101. First, in step 2001, one process having the highest execution priority is selected with the processor 101, which is about to perform process switching, as the execution processor. This is process 40. In the following step 2002, if the process 40 selected in step 2001 cannot access the shared memory for which the priority schedule is designated, nothing is done and the process 40 is run. It is assumed that the selected process 40 can access the shared memory 440 for which the priority schedule is designated.
If there is a shared memory that can be accessed by the process selected in step 2001 and that has a priority schedule specified, a loop 20 is performed for each of the shared memories that are not specified as the priority use processor.
Execute 20. Whether or not the preferential use processor is designated is determined by the preferential use processor designation 45 of the entry corresponding to the shared memory in the shared memory management table 450.
You can tell by inspecting 1. It is assumed that the process 40 can access the shared memory 440 that is designated as the priority schedule but is not designated as the priority use processor.

【0028】まず、ステップ2003で、共用メモリ4
40の優先利用プロセッサ指定をプロセッサ101に設
定する。続いて、現在検査している共用メモリにアクセ
ス可能なプロセスのそれぞれにステップ2004からス
テップ2007を実行する。ステップ2004からステ
ップ2007では、プロセスが共用メモリ440にアク
セス可能で、実行プロセッサがプロセッサ101以外
(ステップ2004)で、走行中でなく(ステップ200
5)、実行優先度が引き下げられていない(ステップ20
06)プロセスの優先度を予め定めた定数P0だけ下げ
て新しい実行優先度とする(ステップ2007)。例え
ば、プロセス42が優先スケジュール指定されている共
用メモリ440に対してアクセス可能で、プロセッサ1
01以外のプロセッサが実行プロセッサで、走行待ちに
なっているものとする。もし、プロセス42が既に優先
利用プロセッサ指定を受けた共用メモリにアクセス可能
でプロセスの実行優先度が引き下げられているならば、
なにもしない。これはプロセス42の実行優先度引下げ
フラグ423を検査すれば分かる。実行優先度が下げら
れていないならば、現在の実行優先度421を引下げ前
実行優先度422に保存し、プロセスの実行優先度を予
め定めた定数P0だけ下げて新しい優先度を421に設
定する。もし、プロセス42が走行中ならば、プロセス
42の優先度は引き下げずそのままにしておく。もし、
他に共用メモリ440にアクセス可能なプロセスがある
ならば同様の手順でプロセスの実行優先度を下げてい
く。共用メモリ440にアクセス可能なすべてのプロセ
スについて検査し終ったらステップ2008へ進む。ス
テップ2008では、実行優先度を引き下げたプロセス
があったかどうか検査する。もし、なかったならば、先
に登録した共用メモリ440の優先利用プロセッサ指定
451を無効にする(ステップ2010)。実行優先度を
引き下げたプロセスがあったならば、一定時間後に優先
利用プロセッサ指定を解除するための手続きを480に
登録する(ステップ2009)。実行優先度を下げたプロ
セスがあるので480に予め定めた定数時間T0後に共
用メモリ優先利用プロセッサ指定解除手続きを、引数を
共用メモリ440としてスケジュールするように登録す
る。この手続きはシステムによりT0後に呼び出され、
共用メモリの優先利用プロセッサ指定を解除し、それに
より実行優先度を下げられたプロセスの実行優先度を元
に戻す。この手続きについては後述する。他に優先利用
プロセッサ指定されていない共用メモリにプロセス40
がアクセス可能であるならばそれらについても同様にス
テップ2003からの検査を実施する。
First, in step 2003, the shared memory 4
The priority use processor designation of 40 is set to the processor 101. Then, step 2004 to step 2007 are executed for each process that can access the shared memory currently being inspected. In steps 2004 to 2007, the process can access the shared memory 440, and the execution processor is other than the processor 101.
In (Step 2004), it is not running (Step 200
5), the execution priority has not been lowered (step 20)
06) The process priority is lowered by a predetermined constant P0 to obtain a new execution priority (step 2007). For example, the process 42 can access the shared memory 440 for which the priority schedule is designated, and the processor 1
It is assumed that a processor other than 01 is an execution processor and is waiting for running. If the process 42 can access the shared memory that has already been designated as the priority processor and the process execution priority is lowered,
do nothing. This can be seen by inspecting the execution priority lowering flag 423 of the process 42. If the execution priority has not been lowered, the current execution priority 421 is saved in the pre-lowering execution priority 422, the process execution priority is lowered by a predetermined constant P0, and a new priority is set to 421. . If the process 42 is running, the priority of the process 42 is not lowered and is left as it is. if,
If there is another process that can access the shared memory 440, the execution priority of the process is lowered by the same procedure. When all the processes that can access the shared memory 440 have been checked, the process proceeds to step 2008. In step 2008, it is checked whether there is a process whose execution priority has been lowered. If not, the priority processor designation 451 of the shared memory 440 registered previously is invalidated (step 2010). If there is a process whose execution priority has been lowered, a procedure for canceling the preferential use processor designation after a certain time is registered in 480 (step 2009). Since there is a process whose execution priority has been lowered, a shared memory priority use processor deselection procedure is registered in 480 after a predetermined constant time T0 so as to schedule the argument as the shared memory 440. This procedure is called by the system after T0,
Cancels the priority use processor specification of the shared memory, and restores the execution priority of the process whose execution priority has been lowered. This procedure will be described later. Process 40 in the shared memory that is not designated as another priority processor
If they are accessible, the inspection from step 2003 is similarly performed for them.

【0029】図6は本発明の第2の実施例のフローチャ
ートを示している。図6は共用メモリの優先利用プロセ
ッサ指定解除手続きを示している。図6にしたがって優
先利用プロセッサ指定解除手続きについて説明する。こ
の手続きは480に登録され、共用メモリを引数として
呼ばれ優先利用プロセッサ指定を解除する。ここでは、
優先利用プロセッサ指定を解除する共用メモリを44
0、プロセス42が共用メモリ優先利用プロセッサ指定
により実行優先度を下げられたプロセスであるとする。
優先利用プロセッサ指定解除手続きは共用メモリを引数
として呼び出される。本手続きは共用メモリ440を引
数として呼び出され、共用メモリ管理テーブルの452
を参照し、この共用メモリ440を使用しているすべて
のプロセスについてステップ2101からステップ21
02を実施する。ステップ2101では、プロセスの実
行優先度引下げフラグを検査する。もし実行優先度が下
げられていたならば、ステップ2102へ進み、プロセ
スの実行優先度を元に戻す。プロセス42ついてみれ
ば、プロセス42の構造体である420の実行優先度引
下げフラグ423を検査し実行優先度が下げられたのか
どうか調べる。プロセス42は実行優先度を下げられて
いるので、構造体420の引下げ前実行優先度422を
実行優先度421に設定し実行優先度引下げフラグ42
3をクリアする。この手順を共用メモリ440を使用す
るすべてのプロセスに対しておこなう。最後に、続くス
テップ2103で共用メモリの優先利用プロセッサ指定
451を無効に設定する。
FIG. 6 shows a flowchart of the second embodiment of the present invention. FIG. 6 shows a procedure for deselecting the preferential use processor of the shared memory. The priority processor designation cancellation procedure will be described with reference to FIG. This procedure is registered in 480 and is called with the shared memory as an argument to cancel the preferential use processor designation. here,
44 shared memory for canceling priority processor designation
0, the process 42 is a process whose execution priority is lowered by the designation of the shared memory priority use processor.
The priority processor specification cancellation procedure is called with the shared memory as an argument. This procedure is called with the shared memory 440 as an argument, and the shared memory management table 452
For all processes using this shared memory 440, refer to steps 2101 to 21.
Perform 02. In step 2101, the execution priority lowering flag of the process is checked. If the execution priority has been lowered, the process advances to step 2102 to restore the process execution priority. As for the process 42, the execution priority lowering flag 423 of the structure 420 of the process 42 is checked to see whether the execution priority has been lowered. Since the execution priority of the process 42 is lowered, the pre-lowering execution priority 422 of the structure 420 is set to the execution priority 421, and the execution priority lowering flag 42 is set.
Clear 3 This procedure is performed for all processes using the shared memory 440. Finally, in the following step 2103, the priority use processor designation 451 of the shared memory is set to be invalid.

【0030】本発明の第2の実施例では、同じ共用メモ
リを利用するプロセスの優先度を調節することによりキ
ャッシュコヒーレンス制御のトラフィックを減らすこと
を特徴とする。また、共用メモリは通常プログラムの排
他制御の下で利用されるが、同じ共用メモリを頻繁にア
クセスするプロセスが複数ある場合に、この排他制御に
要する時間を減少させる効果がある。通常の排他制御は
資源獲得を何度か試み、獲得できなければプロセッサを
明け渡し、指定された時間後に再び獲得を試みるという
操作を行なう。この制御で資源を獲得することができな
いことが続けば、プロセス切替が頻発し、効率が悪化す
る。また、排他制御に関わるデータ自身が共用メモリ上
におかれるため、キャッシュミスが頻発する。本実施例
では、あるプロセッサで共用メモリを利用するプロセス
が走行した時に、他プロセッサ上で走行待ちになってい
るプロセスの優先度を下げることで、もし、他に関係の
ないプロセスが走行できるのならばそれらを走行させて
やり、共用メモリに関わるキャッシュミス、排他制御に
要する時間を減少させている。もし、他に走行するプロ
セスがないならば、優先度を下げられてもプロセスは走
行し、プログラムの並列性は維持される。
The second embodiment of the present invention is characterized in that the traffic for cache coherence control is reduced by adjusting the priority of processes using the same shared memory. Further, the shared memory is usually used under exclusive control of a program, but when there are a plurality of processes that frequently access the same shared memory, it has an effect of reducing the time required for this exclusive control. Ordinary exclusive control attempts to acquire the resource several times, if the resource cannot be acquired, surrenders the processor, and tries to acquire the resource again after a specified time. If the resource cannot be acquired by this control continuously, process switching frequently occurs and the efficiency deteriorates. Further, since the data itself related to exclusive control is stored in the shared memory, cache misses frequently occur. In this embodiment, when a process using shared memory runs on a processor, the priority of the process waiting to run on another processor is lowered, so that a process unrelated to another can run. If so, they are run to reduce the cache misses related to shared memory and the time required for exclusive control. If there is no other process running, the process runs even if the priority is lowered, and the parallelism of the program is maintained.

【0031】本発明の第3の実施例について説明する。
本発明の第3の実施例は共用メモリにアクセス可能なプ
ロセスのCPU利用量に基づいてプロセスの実行プロセ
ッサを再構成することを特徴とする。
A third embodiment of the present invention will be described.
The third embodiment of the present invention is characterized in that the execution processor of the process is reconfigured based on the CPU usage of the process that can access the shared memory.

【0032】図7は本発明の第3の実施例のデータ構造
を示している。図7にしたがって本発明の第3の実施例
のデータ構造について説明する。各プロセスはプロセス
の状態を記述するプロセス状態構造体を持っている。図
7の300、320はそれぞれプロセス30、32のプ
ロセス状態構造体である。プロセス30のプロセス状態
構造体を例に説明する。プロセス30のプロセス状態構
造体である300はプロセス30の実行プロセッサ30
1、プロセス30の最近のCPU利用量302、マイグ
レート禁止フラグ303、プロセス30のアドレス空間
を記述するデータ構造へのポインタ304を含んでい
る。プロセス32についてもプロセス情報構造体320
により同様に記述される。304により示されるアドレ
ス空間を表現するデータ構造体310は、プロセス30
のアドレス空間でアクセス可能な共用メモリがあるなら
ば、共用メモリを記述するデータを指すポインタを含ん
でいる。プロセス30は共用メモリ340に対してアク
セス可能であり、310内に340へのポインタをもつ
311を含んでいる。共用メモリは共用メモリ管理テー
ブル350によって管理される。350はシステム内の
すべての共用メモリの情報を持ち、共有メモリ毎にエン
トリが割り当てられる。各共用メモリを記述するエント
リはマイグレート検査禁止フラグ351、共用メモリC
PU利用量352、プロセッサ毎共用メモリCPU利用
量360へのポインタをもつ353を含んでいる。プロ
セッサ毎共用メモリCPU利用量360は共用メモリ3
40にアクセス可能なプロセスがどのプロセッサ上でど
れくらい走行したかを表現するものである。図7では3
61、362、363、364の4プロセッサ分しか描
かれていないが、これはプロセッサ数を制限しているも
のではない。370はプロセッサ毎のアイドル時間を表
す。
FIG. 7 shows the data structure of the third embodiment of the present invention. The data structure of the third embodiment of the present invention will be described with reference to FIG. Each process has a process state structure that describes the state of the process. Reference numerals 300 and 320 in FIG. 7 denote process state structures of the processes 30 and 32, respectively. The process state structure of the process 30 will be described as an example. A process state structure 300 of the process 30 is an execution processor 30 of the process 30.
1, a recent CPU usage 302 of the process 30, a migration prohibition flag 303, and a pointer 304 to a data structure describing the address space of the process 30. Also for the process 32, the process information structure 320
Is similarly described by. The data structure 310 representing the address space indicated by 304 is a process 30.
Contains a pointer to the data that describes the shared memory, if any is accessible in the address space. The process 30 is accessible to the shared memory 340 and includes 310 in 311 with a pointer to 340. The shared memory is managed by the shared memory management table 350. Reference numeral 350 has information on all shared memories in the system, and an entry is assigned to each shared memory. The entry describing each shared memory is a migration inspection prohibition flag 351 and shared memory C.
It includes a PU usage amount 352 and a pointer 353 to a shared memory CPU usage amount per processor 360. Shared memory for each processor CPU usage 360 is shared memory 3
It expresses how much a process accessible to 40 has run on which processor. In FIG. 7, 3
Only four processors 61, 362, 363, 364 are drawn, but this does not limit the number of processors. 370 represents the idle time for each processor.

【0033】図8は本発明の第3の実施例のフローチャ
ートを示している。図8にしたがって本発明の第3の実
施例について説明する。図8はクロック割り込み処理に
関するフローチャートである。クロック割り込みは計算
機システム内の各プロセッサで発生し、各プロセッサで
独立にクロック割り込みは処理される。まず、ステップ
3001では、クロック割り込みが発生した時に、割り
込みを受けたプロセッサ上でプロセスが走行していたか
どうかを検査する。もし、プロセスが走行していなかっ
たのならば、例えば、アイドル状態であったならば、何
もしない。ここでは、割り込みを受けたプロセッサが1
01、その時101でプロセス30が走行していたもの
とする。続くステップ3002では、割り込まれたプロ
セスが共用メモリを使用してるか検査する。使っている
ならば、そのプロセスがアクセス可能である共用メモリ
のプロセッサ毎CPU利用量、共用メモリのCPU利用
量をインクリメントする(ステップ3003、300
4)。プロセス30は共用メモリ340を使用している
ので、340のCPU利用量352、340の101に
対応するCPU毎共用メモリ利用量361をインクリメ
ントする。共用メモリを使用していないのであれば、何
もしない。各CPU利用量は一定時間間隔毎に減衰させ
られて、最近のCPU利用量を近似するようにする。こ
のクロック割り込み処理により共用メモリを使用するプ
ロセスがどのプロセッサでどの程度走行したかを求めて
いる。プロセスのCPU利用量実施例1での場合と同様
に計算される。プロセッサのアイドル時間は、クロック
割り込み発生時に走行しているプロセスがなかった時
に、割り込みが発生したプロセッサに対応するアイドル
時間をインクリメントすることで求める。
FIG. 8 shows a flow chart of the third embodiment of the present invention. A third embodiment of the present invention will be described with reference to FIG. FIG. 8 is a flowchart regarding the clock interrupt processing. The clock interrupt is generated in each processor in the computer system, and each processor processes the clock interrupt independently. First, in step 3001, when a clock interrupt occurs, it is checked whether a process is running on the processor that received the interrupt. If the process was not running, eg idle, then do nothing. Here, the interrupted processor is 1
It is assumed that the process 30 is running at 01 and 101 at that time. In the following step 3002, it is checked whether the interrupted process uses the shared memory. If used, the CPU usage amount of each processor of the shared memory accessible by the process and the CPU usage amount of the shared memory are incremented (steps 3003 and 300).
4). Since the process 30 uses the shared memory 340, the CPU shared memory usage 352 of 340, and the CPU shared memory usage 361 corresponding to 101 of 340 are incremented. If you are not using shared memory, do nothing. Each CPU usage is attenuated at regular time intervals so that the recent CPU usage is approximated. By this clock interrupt processing, it is required to determine which processor and how much the process using the shared memory has run. CPU usage of process Calculated as in the first embodiment. The idle time of the processor is obtained by incrementing the idle time corresponding to the processor in which the interrupt occurs when there is no process running at the time of the clock interrupt.

【0034】図9、図10は本発明の第3の実施例のフ
ローチャートを示している。図9、図10にしたがって
本発明の第3の実施例について説明する。図9、図10
に示したフローチャートは一定時間間隔で実行されるよ
うシステムによりスケジュールされる。まず、ステップ
3101では共用メモリ管理テーブル350を走査し、
マイグレート検査禁止されていない共用メモリのうち
で、共用メモリCPU利用量の最も多い共用メモリを見
つける。各共用メモリがマイグレート検査を禁止されて
いるかどうかは管理テーブル350の各エントリのマイ
グレート検査禁止フラグ351により検査する。CPU
利用量は共用メモリ管理テーブルのエントリ352から
取得する。続くステップ3102では、ステップ310
1で見つけた共用メモリのCPU利用量が予め定めた定
数S0未満であるか検査し、そうであるならばプロセス
のマイグレートは行なわず終了する。そうでなければス
テップ3103へ進む。ステップ3103では、各プロ
セッサ毎の共用メモリCPU利用量を検査し、プロセッ
サ毎の共用メモリCPU利用量のうちで予め定めた定数
S1以上のプロセッサがあって、そのプロセッサのアイ
ドル時間が予め定めた定数S2以上であるプロセッサが
あるかを調べる。そのようなプロセッサがあればステッ
プ3105へ、なければステップ3104へ進む。ここ
では、共用メモリ340が共用メモリCPU利用量がS
0以上であったとする。共用メモリ340の管理テーブ
ルエントリの353よりCPU毎共用メモリ利用量テー
ブル360を検査する。プロセッサ101に対応する利
用量が361であるとしそれがS1以上で、プロセッサ
101に対応するアイドル時間371がS2以上である
とすならば、ステップ3105へ進む。もし、いま検査
対象にしている共用メモリについてそのようなプロセッ
サを見つけることができなければステップ3104へ進
む。ステップ3104では、マイグレート検査の禁止さ
れておらず、今まで選択していた共用メモリの次に共用
メモリCPU利用量の多い共用メモリを選択してステッ
プ3102へ進む。ステップ3105では、共用メモリ
CPU利用量のうちで予め定めた定数S1以上のプロセ
ッサでアイドル時間が最長のプロセッサを選択する。
9 and 10 show a flow chart of the third embodiment of the present invention. A third embodiment of the present invention will be described with reference to FIGS. 9 and 10
The flow chart shown in is scheduled by the system to be executed at regular time intervals. First, in step 3101, the shared memory management table 350 is scanned,
Among the shared memories that are not prohibited from migration inspection, the shared memory with the highest shared memory CPU usage is found. Whether or not each shared memory is prohibited from migration inspection is checked by the migration inspection prohibition flag 351 of each entry in the management table 350. CPU
The usage amount is acquired from the entry 352 of the shared memory management table. In the following step 3102, step 310
It is checked whether the CPU usage of the shared memory found in 1 is less than a predetermined constant S0, and if so, the process is not migrated and the process ends. Otherwise, proceed to step 3103. In step 3103, the shared memory CPU usage of each processor is checked, and there is a processor having a predetermined constant S1 or more among the shared memory CPU usage of each processor, and the idle time of the processor is a predetermined constant. It is checked whether there is a processor that is S2 or higher. If there is such a processor, go to step 3105, and if not, go to step 3104. Here, the shared memory 340 has a shared memory CPU usage of S
It is assumed that the value is 0 or more. The shared memory usage table 360 for each CPU is checked from the management table entry 353 of the shared memory 340. If the usage amount corresponding to the processor 101 is 361 and it is S1 or more and the idle time 371 corresponding to the processor 101 is S2 or more, the process proceeds to step 3105. If no such processor can be found for the shared memory currently being tested, the process proceeds to step 3104. In step 3104, the migration inspection is not prohibited, the shared memory having the second largest shared memory CPU usage amount after the previously selected shared memory is selected, and the process proceeds to step 3102. In step 3105, the processor having the longest idle time is selected from the processors having a predetermined constant S1 or more in the shared memory CPU usage amount.

【0035】ステップ3105で、共用メモリ340、
プロセッサ101が選択されたものとして説明する。ス
テップ3106では選択プロセス数を0にセットする。
選択した共用メモリ340にアクセス可能なすべてのプ
ロセスについてステップ3107から3113を行な
う。プロセス30を例にして説明する。まず、プロセス
状態構造体300のマイグレート禁止フラグ303を検
査する(ステップ3107)。禁止であるならばステップ
3113へ進み他のプロセスを調べる。そうでなけれ
ば、ステップ3108へ進む。ステップ3108では、
プロセス状態構造体300の実行プロセッサ301がマ
イグレート先に選択したプロセッサ101であるか検査
する。そうであるならば、このプロセス30のプロセス
状態構造体300のマイグレート禁止フラグ303をセ
ットしマイグレート禁止にし(ステップ3115)、ステ
ップ3113へ進み他のプロセスの検査に移る。そうで
なければ、そのプロセス30のCPU利用量302を調
べる(ステップ3109)。CPU利用量302が予め定
めた定数S3以下ならば、ステップ3110へ、そうで
なければステップ3113へ進む。ステップ3110で
は、プロセスのプロセス状態構造体300の実行プロセ
ッサ301をマイグレート先として選択している実行プ
ロセッサ101に変更し、マイグレート禁止フラグ30
3をセットする。続くステップ3111で選択プロセス
数をインクリメントし、プロセスの実行プロセッサを変
更したプロセスの数がS4になったならば(ステップ3
112)終了する。そうでなければ、選択している共用
メモリにアクセス可能な他のプロセスを検査する。選択
している共用メモリにアクセス可能なすべてのプロセス
を検査してしまったら、選択した共用メモリのマイグレ
ート検査禁止フラグ351をセットして終了する(ステ
ップ3114)。
In step 3105, the shared memory 340,
It is assumed that the processor 101 is selected. In step 3106, the number of selected processes is set to 0.
Steps 3107 to 3113 are performed for all processes that can access the selected shared memory 340. The process 30 will be described as an example. First, the migration prohibition flag 303 of the process state structure 300 is inspected (step 3107). If it is prohibited, the process proceeds to step 3113 to check another process. Otherwise, proceed to step 3108. In step 3108,
It is checked whether the execution processor 301 of the process state structure 300 is the processor 101 selected as the migration destination. If so, the migration prohibition flag 303 of the process state structure 300 of this process 30 is set to prohibit migration (step 3115), and the process proceeds to step 3113 to check another process. If not, the CPU usage 302 of the process 30 is checked (step 3109). If the CPU usage 302 is equal to or less than the predetermined constant S3, the process proceeds to step 3110, and if not, the process proceeds to step 3113. In step 3110, the execution processor 301 of the process state structure 300 of the process is changed to the execution processor 101 selected as the migration destination, and the migration prohibition flag 30 is set.
Set 3 In step 3111, if the number of selected processes is incremented and the number of processes that changed the process execution processor is S4 (step 3
112) Finish. Otherwise, check other processes that have access to the selected shared memory. When all the processes that can access the selected shared memory have been inspected, the migration inspection prohibition flag 351 of the selected shared memory is set and the process ends (step 3114).

【0036】本発明の第3の実施例では、同じ共用メモ
リを使用するプロセスをできる限り同じプロセッサで実
行することで、プロセッサのキャッシュに入る共用メモ
リのエントリを有効に利用する。実行プロセッサの決定
方針としては、共用メモリにアクセス可能である程度C
PUを利用したプロセスの実行プロセッサに、同じ共用
メモリを利用しているがあまりCPUを利用していない
プロセスを実行させるようにする。CPU利用の少ない
プロセスを移動させるのは、一定時間以上実行されたプ
ロセスを実行プロセッサお変更してしまうのでは、共用
メモリ以外のキャッシュエントリの利用の効率が悪くな
るからである。
In the third embodiment of the present invention, processes using the same shared memory are executed by the same processor as much as possible, so that the entry of the shared memory in the cache of the processor is effectively used. As a decision policy of the execution processor, it is C to some extent that the shared memory can be accessed.
Execution of process using PU Causes a processor to execute a process that uses the same shared memory but uses less CPU. The reason why the process that uses less CPU is moved is that if the process that has been executed for a certain time or longer is changed to the executing processor, the efficiency of using the cache entry other than the shared memory deteriorates.

【0037】以上、本発明の三つの実施例について説明
した。これらの実施例ではスケジュールの対象をプロセ
スとしたが、一つのアドレス空間を共用している複数の
スレッドのスケジュールに関しても本発明の実施例のス
ケジュール方式が適用でき、同様の効果が期待できる。
The three embodiments of the present invention have been described above. In these embodiments, the target of the schedule is the process, but the schedule system of the embodiments of the present invention can be applied to the schedule of a plurality of threads sharing one address space, and the same effect can be expected.

【0038】[0038]

【発明の効果】本発明は、共用メモリを利用するプロセ
スのスケジュールに関して、共用メモリの内容を保持す
るキャッシュメモリを有効に利用するようにプロセスを
スケジュールするため、プロセスの実行速度が向上し、
また、プロセッサ間のキャッシュコピーも減少するた
め、計算機システム自体の実行速度が向上する。
As described above, according to the present invention, the process execution speed is improved because the process is scheduled so as to effectively use the cache memory that holds the contents of the shared memory with respect to the process schedule that uses the shared memory.
Further, the cache copy between processors is also reduced, so that the execution speed of the computer system itself is improved.

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

【図1】本発明の共有メモリ型マルチプロセッサ計算機
のブロック図。
FIG. 1 is a block diagram of a shared memory type multiprocessor computer according to the present invention.

【図2】本発明の第1の実施例を示すデータ構造の説明
図。
FIG. 2 is an explanatory diagram of a data structure showing the first embodiment of the present invention.

【図3】本発明の第1の実施例を示すフローチャート。FIG. 3 is a flowchart showing a first embodiment of the present invention.

【図4】本発明の第2の実施例を示すデータ構造の説明
図。
FIG. 4 is an explanatory diagram of a data structure showing a second embodiment of the present invention.

【図5】本発明の第2の実施例を示す第一のフローチャ
ート。
FIG. 5 is a first flowchart showing a second embodiment of the present invention.

【図6】本発明の第2の実施例を示す第二のフローチャ
ート。
FIG. 6 is a second flowchart showing the second embodiment of the present invention.

【図7】本発明の第2の実施例を示すデータ構造の説明
図。
FIG. 7 is an explanatory diagram of a data structure showing a second embodiment of the present invention.

【図8】本発明の第3の実施例を示す第一のフローチャ
ート。
FIG. 8 is a first flowchart showing a third embodiment of the present invention.

【図9】本発明の第3の実施例を示す第二のフローチャ
ート。
FIG. 9 is a second flowchart showing the third embodiment of the present invention.

【図10】本発明の第3の実施例を示す第三のフローチ
ャート。
FIG. 10 is a third flowchart showing the third embodiment of the present invention.

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

101、103…プロセッサ、 102、104…キャッシュメモリ、 105…主記憶装置、 190、191…プロセスのアドレス空間、 110…共用メモリ、 106…バス。 101, 103 ... Processor, 102, 104 ... Cache memory, 105 ... Main storage device, 190, 191 ... Process address space, 110 ... Shared memory, 106 ... Bus.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 円光 豊 神奈川県川崎市麻生区王禅時1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 新井 利明 神奈川県川崎市麻生区王禅時1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 高崎 繁夫 神奈川県横浜市戸塚区戸塚町5030番地株式 会社日立製作所ソフトウェア開発本部内 ─────────────────────────────────────────────────── --- Continuation of the front page (72) Inventor Yutaka Enmitsu 1099 Ozen, Aso-ku, Kawasaki City, Kanagawa Prefecture, Ltd. System Development Laboratory, Hitachi, Ltd. Hitachi, Ltd. Systems Development Laboratory, address 1099 (72) Inventor Shigeo Takasaki 5030 Totsuka-cho, Totsuka-ku, Yokohama, Kanagawa Prefecture Hitachi Software Development Division, Hitachi Ltd.

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】複数のプロセスに関し、実行優先度にした
がってプロセスをスケジュールする手段と、プロセス間
で共通にアクセスすることのできるメモリ領域の作成
と、プロセスが前記メモリ領域へのアクセス権を獲得す
る手段を有する計算機システムにおいて、前記メモリ領
域にアクセス可能なプロセス群の実行優先度、あるい
は、実行プロセッサを変更してスケジュールするようシ
ステムに要求することを特徴とする計算機システム。
1. A method for scheduling a process according to an execution priority for a plurality of processes, creation of a memory area that can be commonly accessed by the processes, and the process acquiring an access right to the memory area. A computer system comprising means for requesting the system to change the execution priority of a process group that can access the memory area or the execution processor to schedule.
【請求項2】請求項1において、同じ共通のメモリ領域
へアクセス可能で実行プロセッサが同一のプロセッサで
ある複数のプロセスのスケジュールに関し、システムが
前記プロセッサの一つでプロセス切替をするために次に
走行させるプロセスを選択する時に、今まで前記プロセ
ッサで走行していたプロセスがアクセス可能な共通のメ
モリ領域を持っているならば、実行プロセッサが前記プ
ロセッサで前記共通のメモリ領域へアクセス可能な他の
プロセスを優先して選択し、同じ共通のメモリ領域へア
クセス可能なプロセスを連続して走行させる計算機シス
テム。
2. The schedule of a plurality of processes according to claim 1, wherein the same common memory area is accessible and the execution processors are the same processor. When selecting a process to be run, if the process that has been running in the processor has a common memory area that can be accessed, the executing processor can access another common memory area in the processor. A computer system that prioritizes processes to be selected and continuously runs processes that can access the same common memory area.
【請求項3】前記共通のメモリ領域を作成する時に前記
共通のメモリ領域にアクセス可能な複数のプロセスのス
ケジュールに関し、請求項2に記載ののプロセススケジ
ュールをするようにシステムに対して要求する手段を有
する計算機システム。
3. A means for requesting a system to schedule a process according to claim 2, regarding a schedule of a plurality of processes that can access the common memory area when the common memory area is created. Computer system having.
【請求項4】ある共通のメモリ領域にアクセス可能なプ
ロセスの一つが、その実行中に前記共通のメモリ領域に
アクセス可能な複数のプロセスのスケジュールに関し、
請求項2に記載のプロセススケジュールの開始と終了を
システムに対して要求する手段を有する計算機システ
ム。
4. One of processes that can access a common memory area relates to a schedule of a plurality of processes that can access the common memory area during its execution,
A computer system having means for requesting the system to start and end the process schedule according to claim 2.
【請求項5】請求項1において、プロセッサが複数ある
計算機システムで、共通の前記メモリ領域へアクセス可
能で、前記実行プロセッサが異なるプロセッサである複
数のプロセスのスケジュールに関し、システムがあるプ
ロセッサで次に走行させるプロセスを選択する時に、選
択したプロセスがアクセス可能な共通のメモリ領域を持
っているならば、前記共通のメモリ領域にアクセス可能
で前記実行プロセッサが前記プロセッサとは異なるプロ
セッサに設定されているプロセスの実行優先度を下げる
計算機システム。
5. The computer system according to claim 1, wherein in a computer system having a plurality of processors, the common memory area can be accessed and the execution processors are different processors. When selecting a process to run, if the selected process has a common memory area that is accessible, the common memory area is accessible and the execution processor is set to a processor different from the processor. A computer system that lowers the process execution priority.
【請求項6】前記共通のメモリ領域を作成する時に前記
共通のメモリ領域にアクセス可能な複数のプロセスのス
ケジューリングに関し、請求項5に記載のプロセススケ
ジュールをするようにシステムに対して要求する手段を
有する計算機システム。
6. A means for requesting a system to schedule a process according to claim 5, which relates to scheduling of a plurality of processes accessible to the common memory area when the common memory area is created. Computer system having.
【請求項7】ある共通のメモリ領域にアクセス可能なプ
ロセスの一つが、その実行中に前記共通のメモリ領域に
アクセス可能な複数のプロセスのスケジュールに関し、
請求項5に記載のプロセススケジュールの開始と終了を
システムに対して要求する手段を有する計算機システ
ム。
7. One of processes that can access a common memory area relates to a schedule of a plurality of processes that can access the common memory area during its execution,
A computer system having means for requesting the system to start and end the process schedule according to claim 5.
【請求項8】請求項1において、プロセッサが複数ある
計算機システムで、共通のメモリ領域にアクセス可能な
複数のプロセスの実行プロセッサに関し、前記共通メモ
リ領域にアクセス可能な前記プロセスのそれぞれのある
一定期間中のCPU利用量と、前記計算機システム内の
各プロセッサのアイドル時間とにしたがって、一定時間
毎に前記共通メモリ領域にアクセス可能な前記プロセス
の実行プロセッサを再設定するように共用メモリを作成
する時にシステムに対して要求する手段を有する計算機
システム。
8. A computer system having a plurality of processors according to claim 1, wherein an execution processor of a plurality of processes that can access a common memory area, and a certain period of time of each of the processes that can access the common memory area. When creating a shared memory so as to reset the execution processor of the process that can access the common memory area at regular intervals according to the CPU usage amount in the computer and the idle time of each processor in the computer system A computer system having means for requesting the system.
JP31194095A 1995-11-30 1995-11-30 Computer system Pending JPH09152976A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31194095A JPH09152976A (en) 1995-11-30 1995-11-30 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31194095A JPH09152976A (en) 1995-11-30 1995-11-30 Computer system

Publications (1)

Publication Number Publication Date
JPH09152976A true JPH09152976A (en) 1997-06-10

Family

ID=18023269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31194095A Pending JPH09152976A (en) 1995-11-30 1995-11-30 Computer system

Country Status (1)

Country Link
JP (1) JPH09152976A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010093003A1 (en) * 2009-02-13 2010-08-19 日本電気株式会社 Calculation resource allocation device, calculation resource allocation method, and calculation resource allocation program
JP2013149108A (en) * 2012-01-19 2013-08-01 Canon Inc Information processing apparatus, control method therefor, and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010093003A1 (en) * 2009-02-13 2010-08-19 日本電気株式会社 Calculation resource allocation device, calculation resource allocation method, and calculation resource allocation program
JP5322038B2 (en) * 2009-02-13 2013-10-23 日本電気株式会社 Computing resource allocation device, computing resource allocation method, and computing resource allocation program
US8635405B2 (en) 2009-02-13 2014-01-21 Nec Corporation Computational resource assignment device, computational resource assignment method and computational resource assignment program
JP2013149108A (en) * 2012-01-19 2013-08-01 Canon Inc Information processing apparatus, control method therefor, and program

Similar Documents

Publication Publication Date Title
US6633897B1 (en) Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5745778A (en) Apparatus and method for improved CPU affinity in a multiprocessor system
US7143412B2 (en) Method and apparatus for optimizing performance in a multi-processing system
US5937187A (en) Method and apparatus for execution and preemption control of computer process entities
US9086925B2 (en) Methods of processing core selection for applications on manycore processors
JP2866241B2 (en) Computer system and scheduling method
US8996811B2 (en) Scheduler, multi-core processor system, and scheduling method
EP0425320A2 (en) Multiprocessor system and process synchronisation method therefor
EP0969381A2 (en) Method of efficient non-virtual main memory management
US8707315B2 (en) Method and system for implementing realtime spinlocks
WO2005048010A2 (en) Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads
CN116438518A (en) Processor architecture for micro-thread control by hardware accelerated kernel threads
Anderson et al. Using local-spin k-exclusion algorithms to improve wait-free object implementations
US20050066149A1 (en) Method and system for multithreaded processing using errands
KR100400165B1 (en) Processing system scheduling
US20080134187A1 (en) Hardware scheduled smp architectures
US8010963B2 (en) Method, apparatus and program storage device for providing light weight system calls to improve user mode performance
US6915516B1 (en) Apparatus and method for process dispatching between individual processors of a multi-processor system
JPH09152976A (en) Computer system
Hu et al. Real-time schedule algorithm with temporal and spatial isolation feature for mixed criticality system
Takada et al. Real-time scalability of nested spin locks
JP7054688B2 (en) Synchronous control system and synchronous control method
Piel et al. Load-balancing for a real-time system based on asymmetric multi-processing
Takada et al. Inter-and intra-processor synchronizations in multiprocessor real-time kernel