JPH061466B2 - ロック排他制御方式 - Google Patents
ロック排他制御方式Info
- Publication number
- JPH061466B2 JPH061466B2 JP8900288A JP8900288A JPH061466B2 JP H061466 B2 JPH061466 B2 JP H061466B2 JP 8900288 A JP8900288 A JP 8900288A JP 8900288 A JP8900288 A JP 8900288A JP H061466 B2 JPH061466 B2 JP H061466B2
- Authority
- JP
- Japan
- Prior art keywords
- lock
- state
- secured
- task
- processor
- 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.)
- Expired - Lifetime
Links
Landscapes
- Multi Processors (AREA)
Description
〔産業上の利用分野〕 本発明は特にマルチプロセサ・コンピュータ・システム
におけるプロセサの並行処理速度向上を実現するに好適
なロック排他制御方法に関する。 〔従来の技術〕 コンピュータシステムでは複数の処理が並行して実施さ
れ、各処理はタスクと呼ばれる。マルチプロセサ・コン
ピュータ・システムでは各プロセサ毎に別々のタスクが
処理を同時に実行する処理形態となる。この時、タスク
間で共通に使用する主記憶上のテーブル,データ等を排
他使用し、一時的には1個のタスクのみが目的とするテ
ーブル,データの参照,更新できるようにする制御が必
要であり、プロセサ間での同期した排他制御(ロック制
御)を行うための命令(LOCK)が用意されている。 従来、この排他制御命令で制御されるロック状態と、ロ
ック確保者(タスク)の動作状態を関連管理していない
ため、「ロック確保済」「ロック未確保」の2状態のロ
ック状態管理となっていた。 なお、この種の技術は例えば、特開昭59-154563号公報
に示される。 〔発明が解決しようとする課題〕 上記従来技術では、あるタスクがロックを確保しようと
した時、目的のロックが他のタスクで確保済の場合の待
合せの仕方として次の2種を一般に採用している。 (1)リトライ・タイプ 目的のロックが解放されるまでその場で待合せる。 (ロック確保をくり返し試みる) (2)待合せタイプ 目的のロックが解放されるまで処理を中断しそのプロセ
サは他に処理すべき事象があればその実行に移る。中断
された処理はロックが解放された時点で再開される。 マルチプロセサ システムでの並行処理速度を向上させ
るためには、ロックの確保から解放までの処理ステップ
数が小さいことが望ましい。このため(1)のリトライ・
タイプによるロック確保待合せが望ましいが、ロック確
保実行中のタスクが外部割込などにより処理中断が起る
と、予想外にロック確保待ちが長時間かかる、或いはデ
ッドロックが発生するといった問題があり、ごく限られ
た範囲でのみ使用されている。 (2)の待合せ方法は、リトライ・タイプに特有の問題は
解消されるが、タスクの待合せ、再開始に必要なオーバ
ヘッドが余分に必要となり、ロック競合時の性能低下の
主因となっている。 本発明の目的はかかる問題を解決するために、ロック競
合(ロック確保待合せ)が発生した時、ロック確保済タ
スクの状態に応じて、リトライ・タイプと、待合せタイ
プの2方式を取捨選択し、効率的なプロセサ間のロック
排他制御方法を提供することにある。 〔課題を解決するための手段〕 上記目的は、ロック状態管理に次の3種を設けこの状態
を制御することにより達成される。 ロック未確保 ロック目的処理実行中 ロック目的処理中断 〔作用〕 あるタスクがロックを確保しようとしたとき、目的のロ
ックが未確保の状態にあれば、ロックを確保し、目的の
処理が実行できる。 ロックが他タスクにより確保済で「ロック目的処理実行
中」のときリトライタイプの待合せにより、他タスクが
ロックを解放するまで待合せる。「ロック目的処理中断
状態」にあるとき、待合せタイプを採用する。 〔実施例〕 以下、本発明の一実施例として、2台のプロセサ間での
本ロック制御方法の適用例を図面により詳細に説明す
る。 第1図は、プロセサ4,5間で共有される共有メモリ1
中にロック管理テーブル2と実行中のタスクの状態を管
理するタスク管理テーブル3が存在することを示してい
る。 ロック管理テーブル2には、そのロックが確保済か未確
保かの状態と、ロック確保済の時には、ロック確保タス
クの識別子が格納される。 タスク管理テーブル3には、当該タスクが処理実行中で
あるか、外部割込み等による処理中断中であるかの識別
子が格納される。 ロック管理テーブル2とタスク管理テーブル3の状態の
組合せによりロック状態管理は次の状態にあると認識す
ることができる。 「ロック未確保」:「ロック管理テーブル=未確保」
「ロック目的処理実行中」:「ロック管理テーブル=確
保済」かつ「ロック確保済タスク管理テーブル=処理実
行中」 「ロック目的処理中断」:「ロック管理テーブル=確保
済」かつ「ロック確保済タスク管理テーブル=処理中断
中」 次に、第2図はロック確保失敗時、リトライ・タイプの
ロック確保くり返し再試行により、ロックが確保できた
場合の制御の流れを説明したものである。 第3図は、プロセサ1にてタスクaがロックを確保し目
的処理実行中に、外部割込み等が発生し、プロセサ2で
のタスクbがリトライタイプのロック確保待ち方法を待
合せ方法のロック確保待ち方法に変えた場合の制御の流
れであり、以下、その動作例を図面に従って説明する。 310でタスクaはロックを確保する。このとき320
でプロセサ2(タスクb)より同一ロックを確保しよう
とするが、ロック状態が「目的処理実行中」であるた
め、リトライタイプによりロック確保をくり返し再試行
する。この再試行中、330にてプロセサ1にて外部割
込みが発生し、タスクaの処理は中断される。このため
ロックの状態は「ロック目的処理中断」となる。タスク
bはリトライタイプ ロック確保再試行中にも常時監視
しており、340の時点にて状態変遷を検知し、待合せ
タイプロック確保待ち方法に移る。 350のタイミングで外部割込処理が完了すると、タス
クaは処理を再開するとともに、ロック状態は「ロック
目的処理実行中」に戻る。事象の処理が終了した360
の時点でロックの状態は「未確保」となる。このとき、
タスクbはロック解放待合せの状態にあるため、プロセ
サ1または2のいずれかが空いた時点でタスクbの処理
が再開されロック確保の後、事象の処理が実行され
る。 〔発明の効果〕 本発明によれば、ロックを確保したタスクがロック目的
処理実行中に割込/処理中断の発生がなかった時には、
そのロック目的処理実行中にロックを競合確保しようと
した他プロセサはリトライ・タイプにより待合せること
により少ないオーバヘッドでのロック確保ができ、か
つ、まれに発生するロック目的処理実行中の外部割込等
による処理中断が発生した時にはロックを競合確保しよ
うとする他プロセサがロック状態の変化を検知して、待
合せタイプのロック確保に移行することが可能となり、
マルチ・プロセサ・システムにおける性能向上が実現で
きる効果がある。
におけるプロセサの並行処理速度向上を実現するに好適
なロック排他制御方法に関する。 〔従来の技術〕 コンピュータシステムでは複数の処理が並行して実施さ
れ、各処理はタスクと呼ばれる。マルチプロセサ・コン
ピュータ・システムでは各プロセサ毎に別々のタスクが
処理を同時に実行する処理形態となる。この時、タスク
間で共通に使用する主記憶上のテーブル,データ等を排
他使用し、一時的には1個のタスクのみが目的とするテ
ーブル,データの参照,更新できるようにする制御が必
要であり、プロセサ間での同期した排他制御(ロック制
御)を行うための命令(LOCK)が用意されている。 従来、この排他制御命令で制御されるロック状態と、ロ
ック確保者(タスク)の動作状態を関連管理していない
ため、「ロック確保済」「ロック未確保」の2状態のロ
ック状態管理となっていた。 なお、この種の技術は例えば、特開昭59-154563号公報
に示される。 〔発明が解決しようとする課題〕 上記従来技術では、あるタスクがロックを確保しようと
した時、目的のロックが他のタスクで確保済の場合の待
合せの仕方として次の2種を一般に採用している。 (1)リトライ・タイプ 目的のロックが解放されるまでその場で待合せる。 (ロック確保をくり返し試みる) (2)待合せタイプ 目的のロックが解放されるまで処理を中断しそのプロセ
サは他に処理すべき事象があればその実行に移る。中断
された処理はロックが解放された時点で再開される。 マルチプロセサ システムでの並行処理速度を向上させ
るためには、ロックの確保から解放までの処理ステップ
数が小さいことが望ましい。このため(1)のリトライ・
タイプによるロック確保待合せが望ましいが、ロック確
保実行中のタスクが外部割込などにより処理中断が起る
と、予想外にロック確保待ちが長時間かかる、或いはデ
ッドロックが発生するといった問題があり、ごく限られ
た範囲でのみ使用されている。 (2)の待合せ方法は、リトライ・タイプに特有の問題は
解消されるが、タスクの待合せ、再開始に必要なオーバ
ヘッドが余分に必要となり、ロック競合時の性能低下の
主因となっている。 本発明の目的はかかる問題を解決するために、ロック競
合(ロック確保待合せ)が発生した時、ロック確保済タ
スクの状態に応じて、リトライ・タイプと、待合せタイ
プの2方式を取捨選択し、効率的なプロセサ間のロック
排他制御方法を提供することにある。 〔課題を解決するための手段〕 上記目的は、ロック状態管理に次の3種を設けこの状態
を制御することにより達成される。 ロック未確保 ロック目的処理実行中 ロック目的処理中断 〔作用〕 あるタスクがロックを確保しようとしたとき、目的のロ
ックが未確保の状態にあれば、ロックを確保し、目的の
処理が実行できる。 ロックが他タスクにより確保済で「ロック目的処理実行
中」のときリトライタイプの待合せにより、他タスクが
ロックを解放するまで待合せる。「ロック目的処理中断
状態」にあるとき、待合せタイプを採用する。 〔実施例〕 以下、本発明の一実施例として、2台のプロセサ間での
本ロック制御方法の適用例を図面により詳細に説明す
る。 第1図は、プロセサ4,5間で共有される共有メモリ1
中にロック管理テーブル2と実行中のタスクの状態を管
理するタスク管理テーブル3が存在することを示してい
る。 ロック管理テーブル2には、そのロックが確保済か未確
保かの状態と、ロック確保済の時には、ロック確保タス
クの識別子が格納される。 タスク管理テーブル3には、当該タスクが処理実行中で
あるか、外部割込み等による処理中断中であるかの識別
子が格納される。 ロック管理テーブル2とタスク管理テーブル3の状態の
組合せによりロック状態管理は次の状態にあると認識す
ることができる。 「ロック未確保」:「ロック管理テーブル=未確保」
「ロック目的処理実行中」:「ロック管理テーブル=確
保済」かつ「ロック確保済タスク管理テーブル=処理実
行中」 「ロック目的処理中断」:「ロック管理テーブル=確保
済」かつ「ロック確保済タスク管理テーブル=処理中断
中」 次に、第2図はロック確保失敗時、リトライ・タイプの
ロック確保くり返し再試行により、ロックが確保できた
場合の制御の流れを説明したものである。 第3図は、プロセサ1にてタスクaがロックを確保し目
的処理実行中に、外部割込み等が発生し、プロセサ2で
のタスクbがリトライタイプのロック確保待ち方法を待
合せ方法のロック確保待ち方法に変えた場合の制御の流
れであり、以下、その動作例を図面に従って説明する。 310でタスクaはロックを確保する。このとき320
でプロセサ2(タスクb)より同一ロックを確保しよう
とするが、ロック状態が「目的処理実行中」であるた
め、リトライタイプによりロック確保をくり返し再試行
する。この再試行中、330にてプロセサ1にて外部割
込みが発生し、タスクaの処理は中断される。このため
ロックの状態は「ロック目的処理中断」となる。タスク
bはリトライタイプ ロック確保再試行中にも常時監視
しており、340の時点にて状態変遷を検知し、待合せ
タイプロック確保待ち方法に移る。 350のタイミングで外部割込処理が完了すると、タス
クaは処理を再開するとともに、ロック状態は「ロック
目的処理実行中」に戻る。事象の処理が終了した360
の時点でロックの状態は「未確保」となる。このとき、
タスクbはロック解放待合せの状態にあるため、プロセ
サ1または2のいずれかが空いた時点でタスクbの処理
が再開されロック確保の後、事象の処理が実行され
る。 〔発明の効果〕 本発明によれば、ロックを確保したタスクがロック目的
処理実行中に割込/処理中断の発生がなかった時には、
そのロック目的処理実行中にロックを競合確保しようと
した他プロセサはリトライ・タイプにより待合せること
により少ないオーバヘッドでのロック確保ができ、か
つ、まれに発生するロック目的処理実行中の外部割込等
による処理中断が発生した時にはロックを競合確保しよ
うとする他プロセサがロック状態の変化を検知して、待
合せタイプのロック確保に移行することが可能となり、
マルチ・プロセサ・システムにおける性能向上が実現で
きる効果がある。
第1図は各プロセサと共有メモリ,ロック監理テーブ
ル,タスク管理テーブルの関連を説明するための図,第
2図は、リトライタイプのロック確保待合せが成功した
場合の制御の流れを示す図,第3図はリトライタイプの
ロック確保待合せが失敗した場合の制御の流れを示す図
である。 1…共有メモリ、 2…ロック管理テーブル、 3…タスク管理テーブル、 4,5…プロセッサ。
ル,タスク管理テーブルの関連を説明するための図,第
2図は、リトライタイプのロック確保待合せが成功した
場合の制御の流れを示す図,第3図はリトライタイプの
ロック確保待合せが失敗した場合の制御の流れを示す図
である。 1…共有メモリ、 2…ロック管理テーブル、 3…タスク管理テーブル、 4,5…プロセッサ。
Claims (1)
- 【請求項1】複数台の演算処理装置(プロセサ)より構
成され、プロセサ間での共通資源(リソース)を排他制
御するためのロック制御命令機構を有するマルチプロセ
サ・コンピュータシステムにおいて、 ロック確保状態に、ロック未確保を示す第1の状態と、
ロック確保済かつロック目的処理実行中を示す第2の状
態と、ロック確保済かつロック目的処理中断を示す第3
の状態を設け、 第2の状態で処理中のプロセサに外部割込による処理中
断が発生すると、第3の状態に移行し、 あるプロセサで排他制御のためのロックを確保しようと
する際、 目的とするロックの状態が第2の状態にあれば、そのロ
ックが開放されるまでくり返し確保を試み、 ロックの状態が第3の状態にあるときは、ロックが開放
されるまで当該プロセサの使用を別処理目的に開放する ことを特徴とするロック排他制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8900288A JPH061466B2 (ja) | 1988-04-13 | 1988-04-13 | ロック排他制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8900288A JPH061466B2 (ja) | 1988-04-13 | 1988-04-13 | ロック排他制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01261771A JPH01261771A (ja) | 1989-10-18 |
JPH061466B2 true JPH061466B2 (ja) | 1994-01-05 |
Family
ID=13958605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8900288A Expired - Lifetime JPH061466B2 (ja) | 1988-04-13 | 1988-04-13 | ロック排他制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH061466B2 (ja) |
-
1988
- 1988-04-13 JP JP8900288A patent/JPH061466B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01261771A (ja) | 1989-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4663709A (en) | Control system for tightly-coupled multiprocessing units | |
JP2650965B2 (ja) | 計算機システムおよびそのタスクスケジュール方法 | |
JP2514299B2 (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
JPH0640324B2 (ja) | マルチプロセッサ・システムおよびそのプロセス同期方法 | |
JP4056465B2 (ja) | マルチスレッド・アプリケーションにおけるスレッド実行を管理するための方法及び装置 | |
JPS60128537A (ja) | 多重プログラミング・システム | |
JPH10283243A (ja) | データベース管理システム | |
US5367680A (en) | Rendering context manager for display adapters supporting multiple domains | |
JP2636722B2 (ja) | マルチタスク実行管理方式 | |
JPH061466B2 (ja) | ロック排他制御方式 | |
JPH05120039A (ja) | タスクスケジユーリング方式 | |
JPH05324569A (ja) | 割り込み制御方式 | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
JPH0644234B2 (ja) | タスク管理装置 | |
JPH09160790A (ja) | タスクスケジュール装置及びタスクスケジュール方法 | |
JPH11306038A (ja) | 並列演算処理装置およびその方法 | |
JPS6125249A (ja) | 排他制御方式 | |
JPS60181934A (ja) | タスク優先度制御方式 | |
JPH0981526A (ja) | マルチプロセッサシステム | |
JPH02244371A (ja) | マルチプロセツサシステムの排他制御方法 | |
JPS63265336A (ja) | 共有資源の優先割り当て制御方式 | |
JPH06214811A (ja) | スケジューリング方式 | |
JPH02113363A (ja) | マルチプロセッサシステムにおけるタイムスライス制御方式 | |
JPH03182945A (ja) | 主記憶内データ転送方式 | |
JP2000029850A (ja) | オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080105 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080105 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090105 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 15 Free format text: PAYMENT UNTIL: 20090105 |