JPH05233561A - 共有資源管理方式 - Google Patents

共有資源管理方式

Info

Publication number
JPH05233561A
JPH05233561A JP3184592A JP3184592A JPH05233561A JP H05233561 A JPH05233561 A JP H05233561A JP 3184592 A JP3184592 A JP 3184592A JP 3184592 A JP3184592 A JP 3184592A JP H05233561 A JPH05233561 A JP H05233561A
Authority
JP
Japan
Prior art keywords
priority
processor
lock
shared resource
time
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
JP3184592A
Other languages
English (en)
Inventor
Tadashi Ogino
正 荻野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3184592A priority Critical patent/JPH05233561A/ja
Publication of JPH05233561A publication Critical patent/JPH05233561A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 マルチプロセッサシステムの性能を向上させ
る共有資源管理方式を得る。 【構成】 時刻分割を行い、各プロセッサにアクセス時
間を割り当てるアクセス時間割当て手段21を有する時
刻分割器1、プロセッサに共有資源に対するロックの優
先度を与える優先度制御手段21と、優先度制御手段2
1により与えられた優先度の高低を判断する優先度判断
手段22と、優先度判断手段22により優先度が低いと
判断されたプロセッサにロックを行わせずに、それまで
行っていた処理を続行させる処理続行手段23とを有す
るロック制御カウンタ2、プロセスを実行するプロセッ
サ31、32、33、34、メモリ4、そして、時刻分
割器1に時間を提供する時計5により構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、例えば、マルチプロ
セッサシステムで、共有資源を利用する際のプロセッサ
による競合を管理する方式に関するものである。
【0002】
【従来の技術】マルチプロセッサシステムにおいては、
複数のプロセッサが資源(例えば、データなど)を共有
する場合には、資源の利用に競合が起きないように管理
する方法が必要である。従来、共有資源の管理方式の一
手法として、ロックを用いる方法が採用されている。ロ
ックとは、資源の利用を独占する(排他する)という意
味を持つ。図6は、同時に実行中の2つのプロセッサで
ある、CPU0とCPU1が共有資源をアクセスするた
めに、ロックし合いながら処理を進めている様子を示し
ている。図6で、実行中のCPU0は、Aの時点でロッ
クを取りに行き、獲得し、共有資源にアクセスして、C
の時点でロックを開放(アンロック)する。CPU1
は、Bの時点で同じ共有資源に対してロックを取りに行
くが、CPU0が既に同じロックを取っているため、ロ
ックを獲得することができない。CPU1は、ロックを
獲得しようとした時刻Bから実際にロックを獲得するD
までの間、CPU0によるロックが開放されるのをただ
待っている。この、他のプロセッサによるロックが開放
されるのをただ待っている状態をスピンと呼ぶ。CPU
0がCの時点でロックを開放すると、CPU1はスピン
を終了し、初めてDの時点でロックを獲得することで、
共有資源に対してアクセスすることができる。
【0003】上記の従来の共有資源管理方式をフロー図
に表すと、図7のようになる。図7について説明する。
ロック開始により、プロセッサはロック獲得71に行
き、ロックを獲得できなければ72、スピンを行う73
という処理の流れである。
【0004】
【発明が解決しようとする課題】従来の共有資源管理方
式は、以上のように構成されているので、ロックを獲得
できずにスピンしているプロセッサは、その間に他の処
理を実行することができないという問題点があった。
【0005】この発明は、上記のような問題点を解消す
るためになされたもので、マルチプロセッサシステムの
性能を向上させる共有資源管理方式を得ることを目的と
する。
【0006】
【課題を解決するための手段】この発明に係る共有資源
管理方式は、プロセッサ毎にアクセス時間を割当てるア
クセス時間割り当て手段と、アクセス時間割り当て手段
により割り当てられる所定の時間に対応して、共有資源
をアクセスする場合の優先度を、プロセッサに与える優
先度制御手段と、優先度制御手段により与えられた優先
度に従い、プロセッサの優先度の高低を判断する優先度
判断手段と、優先度判断手段により優先度が低いと判断
されるプロセッサが、プロセスの実行中に共有資源をア
クセスする場合に、この共有資源のアクセスを中止し
て、以前に実行していたプロセスを実行する処理続行手
段とを備えたものである。
【0007】
【作用】この発明における共有資源管理方式は、アクセ
ス時間割り当て手段によりプロセッサ毎にアクセス時間
を割当て、アクセス時間割り当て手段により割り当てら
れる所定の時間に対応して、優先度制御手段により、共
有資源をアクセスする場合の優先度をプロセッサに与
え、優先度制御手段により与えられた優先度に従い、優
先度判断手段によりプロセッサの優先度の高低を判断
し、優先度判断手段により優先度が低いと判断されるプ
ロセッサが、プロセスの実行中に共有資源をアクセスす
る場合に、処理続行手段により、この共有資源のアクセ
スを中止して以前に実行していたプロセスを実行するこ
とにより、共有資源を利用するプロセッサの競合を避け
ることができる。
【0008】
【実施例】
実施例1.図1は、マルチプロセッサシステムで実行さ
れる本発明の構成図である。1は、時刻分割を行い、各
プロセッサにアクセス時間を割り当てるアクセス時間割
当て手段21を有する時刻分割器である。2は、ロック
の制御を行うロック制御カウンタである。このロック制
御カウンタ2は、プロセッサに共有資源に対するロック
の優先度を与える優先度制御手段21と、優先度制御手
段21により与えられた優先度の高低を判断する優先度
判断手段22と、優先度判断手段22により優先度が低
いと判断されたプロセッサにロックを行わせずに、それ
まで行っていた処理を続行させる処理続行手段23を有
する。31、32、33、34は、プロセスを実行する
プロセッサである。4は、メモリ、5は、時刻分割器1
に時間を提供する時計である。
【0009】図2は、図1のロック制御カウンタ2にお
けるロック制御の処理の流れを示した図である。図1を
絡めて説明する。まず、共有資源に対するロックが実行
中のプロセスで割込的に発生すると、そのプロセスを実
行しているプロセッサは、ロック制御カウンタ2に共有
資源をアクセスする旨を伝える。アクセス時間割当て手
段1と優先度制御手段21によって予めそのプロセッサ
に対して割り当てられた時間と優先度を、ロック制御カ
ウンタ2は参照する。そして、プロセッサが共有資源に
対するロックを行うとき、その時間におけるロックの優
先度が高いかどうか(優先期間かどうか)を、優先度判
断手段22により判断する6。この優先度判断手段22
による判断の結果により、優先度が一番高いプロセッサ
がロックを獲得する7。しかし、優先度が低い(優先期
間ではない)プロセッサはロックを獲得せず、処理続行
手段23により、以前に行っていた処理を続行する9。
【0010】これにより、図3に示すようにプロセッサ
は、優先度が高い時間(優先期間)にのみロックが可能
になる。図3は、共有資源をアクセスする場合に、ロッ
ク制御カウンタ2により時間毎に優先度がプロセッサ
(CPU)に与えられて(優先期間)、その優先期間内
に優先度の一番高いプロセッサがロックしている状態を
示したものである。優先期間において、優先CPUが0
のときにはCPU0がロックを行い、優先CPUが1の
ときにはCPU1がロックを行うという例である。この
ように、優先期間において、優先度が高いプロセッサが
ロックを獲得することにより、プロセッサの利用の競合
は生じなくなり、優先度の低いプロセッサがスピンする
ことが無くなる。
【0011】なお、アクセス割当て手段1により割り当
てられた時間に対して、優先期間内に優先度制御手段2
1で与えられた優先度が低いプロセッサでも、図4に示
すように、他のプロセッサがロックを獲得していなけれ
ば、共有資源のロックを獲得することは可能である。図
4は、プロセッサCPU1が、CPU0の優先期間にロ
ックしている例である。
【0012】実施例2.実施例1では、プロセッサ毎の
ロック獲得のタイミングは特に定めていないが、任意の
合図もしくは時間に従い、システム上の全てのプロセッ
サが一度にロックを獲得するような場合においても、本
発明は有効である。例えば、複数のプロセスを複数のプ
ロセッサで時分割で実行している場合、同一のタイミン
グで(例えば、1秒単位に)各プロセッサのプロセスを
変更する場合がある。この時、各プロセッサにおいて、
次に実行すべきプロセスが待ち行列の中にあるとすれ
ば、次の実行すべきプロセスをこの待ち行列の先頭か
ら、複数のプロセッサが同一のタイミング(すなわち1
秒毎に)で獲得しようとすることになる。この発明は、
単にデータファイルや装置に対してロックを獲得する場
合だけでなく、このように、待ち行列を共有資源の一つ
とみなして、次に実行すべきプロセスの獲得の場合にも
有効である。もし、プロセス変更のタイミングの時点で
優先度が低くいために、次に実行すべきプロセスが獲得
できないようなプロセッサは、処理続行手段がそのタイ
ミング以前に実行していたプロセスを続行することにな
り、優先度の低いプロセッサが次のプロセスを獲得する
ためにスピンすることが無くなる。
【0013】実施例3.実施例1では、ロックを獲得す
るのは優先度が一番高いプロセッサ1つとしたが、同じ
く高い優先度を持つ複数のプロセッサがロックを獲得で
きるものとしてもよい。
【0014】実施例4.実施例1において、ロックを獲
得できない(優先度が低い)プロセッサは、定常的に以
前行っていた処理を続行するとしたが、例えば、処理を
続行するのは、プロセッサ毎に予め決定できるものと
し、優先度が低いプロセッサでは、図5のように続行す
るかどうかを判断することで、以前の処理を続行する
か、再度ロックの獲得を行うかを選択できるものとして
もよい。図5について説明する。プロセスの実行中にロ
ックが割込的に発生すると、そのプロセッサの優先期間
であるかどうかを調べ6、優先度が低い場合にはそのプ
ロセッサにおいて、以前の処理を続行するべきであるか
どうかを調べる51。ここで、もし、ロックの獲得を行
わなければならないようなプロセスであれば(ロックを
獲得しないと次の処理に進めないようなプロセスであれ
ば)、ロックの獲得7を行う。なお、この時、ロックの
獲得ができない場合は、従来例と同様でスピンする6
3。この例で、優先度が低いときに以前の処理を続行す
るかどうかを決定する手段は、プロセス自体に続行の要
否が定義されるものでもよいし、または、プロセッサ毎
に予め続行の要否が決定されるものでもよい。あるい
は、ロック制御カウンタによりプロセッサに優先度を与
える優先度制御手段で、続行の要否をプロセッサに指示
するものでもよい。例えば、プロセス自体に続行の要否
が定義されるものの一例としては、ロック獲得が許され
ない場合は予めプログラミングにより、プロセス続行の
要否の通知をプロセッサから受けられるようにしてお
き、その場合はそのロック獲得がなくても実行できる処
理を先に実行できるように、コーディングしておく場合
が挙げられる。なお、この例でも実施例1と同様に、他
のプロセッサがロックを獲得していなければ、共有資源
に対するロックの獲得は、優先度が低くても可能であ
る。
【0015】実施例5.実施例1において、処理を続行
させる場合には、以前の処理を続行するとしたが、処理
を続行させるときには、以前の処理を継続してもよい
し、あるいは、処理の継続の時点で、他の任意の処理を
継続して行ってもよい。例えば、実施例2で述べたよう
に、時分割によりあるタイミングで強制的に他のプロセ
スに変更させられる場合は、そのタイミング以前の処理
を継続してもよいし、あるいは、予めプログラミング
で、どのプロセスに継続するかをコーディングしておく
ものでもよい。
【0016】実施例6.本発明において、共有資源と
は、参照、読み込み、書き込み等のアクセスが行われる
もの、例えばデータファイル、データレコードなどを指
すものである。あるいは、例えば、プリンタ装置、ディ
スク装置などを指すものである。
【0017】実施例7.実施例1では、優先度制御手段
によりプロセッサに優先度を与えているが、プロセッサ
上で実行されるプロセスに対して優先度を与えても本発
明では有効である。この点で、本発明のプロセッサは、
プロセスを含んだ概念を意味するものである。
【0018】
【発明の効果】以上のように、この発明によれば、プロ
セッサ毎にアクセス時間を割当てるアクセス時間割り当
て手段と、アクセス時間割り当て手段により割り当てら
れる所定の時間に対応して、共有資源をアクセスする場
合の優先度を、プロセッサに与える優先度制御手段と、
優先度制御手段により与えられた優先度に従い、プロセ
ッサの優先度の高低を判断する優先度判断手段と、優先
度判断手段により優先度が低いと判断されるプロセッサ
が、プロセスの実行中に共有資源をアクセスする場合
に、この共有資源のアクセスを中止して、以前に実行し
ていたプロセスを実行する処理続行手段とを備えたこと
により、共有資源を利用するプロセッサの競合を避ける
ことができるので、マルチプロセッサシステム上で効率
よく共有資源を利用でき、処理が高速になり、マルチプ
ロセッサシステムの性能を向上させる共有資源管理方式
を得ることが可能となる。
【図面の簡単な説明】
【図1】マルチプロセッサシステムで実行される本発明
の構成図である。
【図2】本発明における、制御カウンタで行われるのロ
ック制御の処理の流れを示す図である。
【図3】本発明において、優先期間内に、優先度の高い
プロセッサがロックをしている状態を示す図である。
【図4】本発明において、プロセッサCPU1が、CP
U2の優先期間にロックしている例を示す図である。
【図5】実施例4における共有資源管理方式の処理の流
れを示す図である。
【図6】従来例における、ロックの獲得を表す図であ
る。
【図7】従来の共有資源管理方式を示す図である。
【符号の説明】
1 時刻分割器 2 ロック制御カウンタ 4 メモリ 5 時計 6 優先期間か 7 ロック獲得 8 ロック処理へ 9 処理続行 21 優先度制御手段 22 優先度判断手段 23 処理続行手段 31 CPU1 32 CPU2 33 CPU3 34 CPU4 51 以前の処理を続行するか 62 ロック獲得できたか 63 スピンする 71 ロック獲得 72 ロック獲得できたか 73 スピンする

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プロセスを実行する複数プロセッサを有
    するマルチプロセッサシステム上で、参照、読み込み、
    書き込み等のアクセスが行われる共有資源を管理する共
    有資源管理方式において、以下の要素を有する共有資源
    管理方式 (a)プロセッサ毎にアクセス時間を割当てるアクセス
    時間割り当て手段、 (b)上記アクセス時間割り当て手段により割り当てら
    れる所定の時間に対応して、共有資源をアクセスする場
    合の優先度を、プロセッサに与える優先度制御手段、 (c)上記優先度制御手段により与えられた優先度に従
    い、プロセッサの優先度の高低を判断する優先度判断手
    段、 (d)上記優先度判断手段により優先度が低いと判断さ
    れるプロセッサが、プロセスの実行中に共有資源をアク
    セスする場合に、この共有資源のアクセスを中止して、
    以前に実行していたプロセスを実行する処理続行手段。
JP3184592A 1992-02-19 1992-02-19 共有資源管理方式 Pending JPH05233561A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3184592A JPH05233561A (ja) 1992-02-19 1992-02-19 共有資源管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3184592A JPH05233561A (ja) 1992-02-19 1992-02-19 共有資源管理方式

Publications (1)

Publication Number Publication Date
JPH05233561A true JPH05233561A (ja) 1993-09-10

Family

ID=12342394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3184592A Pending JPH05233561A (ja) 1992-02-19 1992-02-19 共有資源管理方式

Country Status (1)

Country Link
JP (1) JPH05233561A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010678B2 (en) * 1999-12-30 2006-03-07 Intel Corporation Bootstrap processor election mechanism on multiple cluster bus systems
WO2010013443A1 (ja) * 2008-07-31 2010-02-04 パナソニック株式会社 リソース排他制御システム、装置、方法およびプログラム
JP2016192012A (ja) * 2015-03-31 2016-11-10 京セラドキュメントソリューションズ株式会社 電子機器および情報処理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010678B2 (en) * 1999-12-30 2006-03-07 Intel Corporation Bootstrap processor election mechanism on multiple cluster bus systems
WO2010013443A1 (ja) * 2008-07-31 2010-02-04 パナソニック株式会社 リソース排他制御システム、装置、方法およびプログラム
JP2010039582A (ja) * 2008-07-31 2010-02-18 Panasonic Corp リソース排他制御システム、装置、方法およびプログラム
CN102112968A (zh) * 2008-07-31 2011-06-29 松下电器产业株式会社 资源排他控制系统、装置、方法以及程序
US8447899B2 (en) 2008-07-31 2013-05-21 Panasonic Corporation System, device, method and program for exclusively controlling resources
JP2016192012A (ja) * 2015-03-31 2016-11-10 京セラドキュメントソリューションズ株式会社 電子機器および情報処理プログラム

Similar Documents

Publication Publication Date Title
JP2866241B2 (ja) コンピュータシステムおよびスケジューリング方法
KR100612803B1 (ko) 멀티프로세서 컴퓨터 상에서의 자바 스레드 동기화의유연성 있는 가속
US7174552B2 (en) Method of accessing a resource by a process based on a semaphore of another process
US8473969B2 (en) Method and system for speeding up mutual exclusion
US5050072A (en) Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system
US5448732A (en) Multiprocessor system and process synchronization method therefor
US5392433A (en) Method and apparatus for intraprocess locking of a shared resource in a computer system
US5367678A (en) Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
EP0661633B1 (en) Method and system for managing ownership of a released synchronization mechanism
US20070124546A1 (en) Automatic yielding on lock contention for a multi-threaded processor
CN108549574B (zh) 线程调度管理方法、装置、计算机设备和存储介质
JP2000235502A (ja) 共有メモリのブロック割当方法、コンピュータ読取可能な記録媒体、メモリ割当方法及びメモリ割当調整システム
US8707315B2 (en) Method and system for implementing realtime spinlocks
US7103631B1 (en) Symmetric multi-processor system
KR19980086609A (ko) 동시적인 프로세서 요구에 의한 데이터 자원의 액세싱을 직렬화하기 위한 컴퓨터 시스템내에서의 블로킹 심볼 제어
US4855899A (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
US20080184258A1 (en) Data processing system
US6701429B1 (en) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
US7099974B2 (en) Method, apparatus, and system for reducing resource contention in multiprocessor systems
US11301304B2 (en) Method and apparatus for managing kernel services in multi-core system
JPH05233561A (ja) 共有資源管理方式
US8689230B2 (en) Determination of running status of logical processor
CN116244073A (zh) 混合关键分区实时操作系统的资源感知型任务分配方法
US11194615B2 (en) Dynamic pause exiting
US20050050257A1 (en) Nested locks to avoid mutex parking