JP2872042B2 - 共有メモリアクセス方式 - Google Patents

共有メモリアクセス方式

Info

Publication number
JP2872042B2
JP2872042B2 JP6117786A JP11778694A JP2872042B2 JP 2872042 B2 JP2872042 B2 JP 2872042B2 JP 6117786 A JP6117786 A JP 6117786A JP 11778694 A JP11778694 A JP 11778694A JP 2872042 B2 JP2872042 B2 JP 2872042B2
Authority
JP
Japan
Prior art keywords
shared memory
exclusive control
value
access
control counter
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
Application number
JP6117786A
Other languages
English (en)
Other versions
JPH07325750A (ja
Inventor
宏 三木
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.)
NIPPON DENKI JOHO SAABISU KK
Original Assignee
NIPPON DENKI JOHO SAABISU KK
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 NIPPON DENKI JOHO SAABISU KK filed Critical NIPPON DENKI JOHO SAABISU KK
Priority to JP6117786A priority Critical patent/JP2872042B2/ja
Publication of JPH07325750A publication Critical patent/JPH07325750A/ja
Application granted granted Critical
Publication of JP2872042B2 publication Critical patent/JP2872042B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、共有メモリを複数のプ
ロセスで共有する場合の共有メモリアクセス方式に関す
る。
【0002】
【従来の技術】従来の共有メモリのアクセス方式は、シ
ステムにおける単一の信号を利用しアクセス権を得るセ
マフォ管理方式やメモリアクセス専用のプロセスを用意
した専用サーバ方式である。
【0003】セマフォを利用した方式は、たとえば[パ
ソコン用語辞典:技術評論社]で示される従来のトーク
ン・パッシング技術の応用である。
【0004】各プロセス2iは、共有メモリをアクセス
する場合、セマフォ信号を獲得し共有メモリのアクセス
権を得た後アクセスを行う。ここではセマフォ信号は共
有メモリをアクセスするプロセス群で1つ存在し、この
セマフォ信号は親タスクが全プロセス群の起動時にセマ
フォキューに登録する。
【0005】このセマフォは共有メモリのアクセス権の
信号として扱われる。
【0006】各プロセスは共有メモリのアクセスを行う
場合セマフォ信号獲得命令でセマフォ信号の獲得を行い
共有メモリのアクセス権を得る。
【0007】セマフォ信号を獲得したプロセスはシステ
ム内で唯一共有メモリをアクセスできる状態であり参
照、更新の処理が可能となる、この時他のプロセスが共
有メモリのアクセスのためにセマフォ信号獲得命令を発
行してもセマフォ信号は存在しないため処理できない。
【0008】セマフォ信号を獲得し共有メモリアクセス
を終えたプロセスは共有メモリのアクセス権解放のため
セマフォをセマフォキューに登録する。
【0009】セマフォが登録された時点で次の共有メモ
リアクセス要求待ちのプロセスがセマフォ信号を獲得し
処理が実行される。
【0010】このようにしてセマフォ信号をアクセスの
トリガとして共有メモリのアクセスを制御する。
【0011】上述したセマフォ信号の処理は一般プログ
ラムでは記述不可能な特殊な命令が必要でありプログラ
ム構造も複雑になるという特徴がある。
【0012】一方、共有メモリアクセス用の専用プロセ
スを用いる方法は、共有メモリのアクセスを専用のプロ
セッサで管理し、各要求プロセスは要求依頼を発行した
後処理完了を待ち、メモリアクセス専用プロセッサは受
信要求をシーケンシャルに行い結果を要求元に返す方法
である。
【0013】この時、共有メモリアクセス用の専用プロ
セスに対しプロセス間通信の機能が必要となる。
【0014】
【発明が解決しようとする課題】上述した従来の共有メ
モリアクセス方式は、特種な命令と複雑な処理によって
実現されるセマフォ方式は、セマフォの扱いが一般プロ
グラムには解放されないため、セマフォ信号を獲得した
プロセスが異常終了した場合等では各プロセスを制御す
るセマフォ信号がなくなるため、全ての共有メモリアク
セス要求中のプロセスが停止状態になるという問題があ
り、システム運用性が低下するという欠点がある。
【0015】また、専用プロセスが共有メモリのサーバ
機能を行う場合、プロセス間の通信機能が必要になりプ
ログラムがさらに複雑化、拡大化するとともに、プロセ
ス間通信の方式による共有メモリアクセス要求時の負荷
により処理遅延が発生しレスポンスの劣化するという欠
点がある。さらに通信メッセージを受信し処理を行う専
用プロセスが異常終了するとセマフォ信号方式と同様に
処理要求が滞留しシステムが停止する問題もある。
【0016】本発明は、上記のような課題を解消するた
めになされたもので、プログラムで簡単に共有メモリの
アクセスを実現する手段を得ることを目的とする。
【0017】
【課題を解決するための手段】第1の発明は、複数のプ
ロセスが1つの共有メモリにアクセスする場合の共有メ
モリアクセス方式において、前記共有メモリは前記共有
メモリのアクセス権の有無を示す排他制御フラグと前記
共有メモリのアクセス権を得るための制御カウンタであ
る排他制御カウンタとデータ部を含んで構成され、前記
プロセスは前記共有メモリ内の排他制御フラグがオフ状
態であって前記排他制御カウンタの値に1つの機械語命
令によって値1を加えた後前記排他制御カウンタの値が
1の場合のみ前記共有メモリの前記データ部の入出力処
理を行う共有メモリ排他制御手段を備えることを特徴と
する。
【0018】また、第2の発明は、前記プロセスは、前
記共有メモリ内の前記排他制御フラグがオフ状態の場合
は前記排他制御フラグをオン状態とし前記排他制御カウ
ンタの値に前記機械語命令によって値1を加えた後前記
排他制御カウンタの値が1の場合のみ前記共有メモリの
前記データ部の入出力処理を行い前記入出力処理終了後
に前記排他制御フラグをオフ状態としさらに前記排他制
御カウンタをクリアし、前記排他制御フラグがオン状態
の場合は一定の時間の経過後に再度前記排他制御フラグ
を判定し、前記排他制御カウンタの値が前記値1でない
場合は前記排他制御フラグをオフ状態にした後前記排他
制御カウンタの値が予め定めた上限値よりも小さい場合
前記一定の時間の経過後に再度前記排他制御フラグを
判定し前記排他制御カウンタの値が前記上限値よりも大
きい場合は前記排他制御カウンタをクリアした後前記一
定の時間の経過後に再度前記排他制御フラグを判定する
共有メモリ排他制御手段を備えることを特徴とする。
【0019】
【0020】
【0021】
【実施例】次に、本発明について図面を参照して説明す
る。
【0022】図1は本発明の共有メモリアクセス方式の
一実施例を示すブロック図、図2は本発明の動作フロー
チャートである。
【0023】図1において、共有メモリ1と、共有メモ
リ1をアクセスする各プロセス2iはバスなどで接続さ
れており(図では省略)、共有メモリ1は排他制御フラ
グ11と排他制御カウンタ12およびデータ13を含ん
で構成されている。
【0024】排他制御フラグ11は共有メモリのアクセ
ス権の有無を示し、排他制御カウンタ12は共有メモリ
のアクセス権を得るための制御カウンタである。
【0025】共有メモリ1をアクセスするプロセス2i
の内部には、共有メモリ1の共有アクセスを実現するた
めの共有メモリ排他制御手段3が存在し、共有メモリ1
内のデータ13の処理を行う。
【0026】共有メモリ排他制御手段3は、共有メモリ
利用権獲得手段31と共有メモリ入出力制御手段32と
からなる。
【0027】共有メモリ利用権獲得手段31は、共有メ
モリ内の排他制御フラグ11と排他制御カウンタ12の
制御により共有メモリのアクセス権を獲得する。
【0028】共有メモリ入出力制御手段32は、共有メ
モリ利用権獲得手段31が共有メモリのアクセス権を得
た後、共有メモリのデータ部の参照、更新を行う。
【0029】次に、共有メモリ1をアクセスする場合の
共有メモリ利用権獲得手段31と共有メモリ入出力制御
手段32の制御を図2を参照して説明する。
【0030】共有メモリ利用権獲得手段31は、ステッ
プ1で共有メモリ1内の排他制御フラグ11がオフであ
るかチェックする。
【0031】オンの場合は、他プロセスが共有メモリを
使用中であるためステップ2のタイマ監視手段で待ち合
わせを行い排他制御フラグ11がオフになるまでステッ
プ1のチェックを繰り返す。
【0032】ステップ1で排他制御フラグ11がオフの
場合、ステップ3で排他制御フラグ11をオンにする。
【0033】これは、共有メモリのアクセスを開始する
意味を持つ。但し同時に他プロセスが実行される即ち競
合すると双方で共有メモリアクセス開始状態になる。こ
のため、排他制御カウンタ12でプロセス間の排他制御
を行う。
【0034】排他制御カウンタ12は初期値0とし、各
プロセスで1の加算処理を行う、この後各プロセスが排
他制御カウンタ12の内容を確認し値1を取得したプロ
セスがアクセス権を得ることになる。
【0035】ステップ4で共有メモリ1内の排他制御カ
ウンタ12に1つの実行命令で1を加算する。ここで、
1つの実行命令とは、OSで管理される機械語の1命令
を意味する。即ち1命令で数値項目のメモリに対し1を
加算する機械語を用いる。この命令により他プロセスの
割り込みなしでメモリの状態を更新することが可能とな
る。従って、2つのプロセスが同時に実行してもメモリ
の値は最終的に2となる。
【0036】メモリ内容をレジスタにロードし加算を行
った後メモリに戻すやり方では、3命令が必要となり、
最初のレジスタロード命令実行後の割込みが発生し他プ
ロセスが同一処理を行った場合、互いにメモリ内容の値
0をレジスタにロードし加算処理(1になる)を行った
後メモリにストアされるためメモリの内容は最終的に1
となり上記の値と異なる。このため1命令で加算を完了
する機械語が必要である。一般的に最適化を考慮された
コンパイラーを使用することにより上記処理は容易に実
現できる。
【0037】この直後ステップ5で排他制御カウンタ1
2の内容をチェックし値が1であるかを確認する。
【0038】排他制御カウンタの値が1の場合は、加算
を実行したプロセスが利用権を獲得した事を意味し、2
以上である場合は2番手以降であった事を意味する。
【0039】排他制御カウンタの値が1でない場合はス
テップ6で排他制御フラグ11をオフにする。
【0040】これは、利用権を得なかったプロセスが一
旦アクセス権を放棄する処理である。しかし排他制御フ
ラグ11は共有メモリに1つしか存在しないため同時に
利用権を得たプロセスの利用権も解放されることにな
る。
【0041】利用権を得られなかったプロセスはステッ
プ2のタイマ監視手段で待ち合わせを行い、ステップ1
の排他制御フラグ11のチェックを行う。
【0042】この時、利用権を得たプロセスが共有メモ
リのアクセス中である場合においても上記処理内容で排
他制御フラグ11がオフの状態の可能性がある。しかし
排他制御カウンタ12は初期化されていないため利用権
を得たプロセスが共有メモリのアクセス処理が終了する
までステップ4の処理で排他制御カウンタ12の加算処
理が行われても値が1となることはなくアクセス権を得
ることはできない。
【0043】但し、ステップ5の処理においてタイミン
グにより共有メモリのアクセス要求を行った全てのプロ
セスが1以外の値を得る場合がある。この場合排他制御
カウンタ12の値は初期化されるタイミングがなくなる
ためステップ7の排他制御カウンタ12の内容の上限値
チェックを行ない無限ループをさける。
【0044】排他制御カウンタ12のクリア(初期化)
は利用権を得たプロセスが処理完了時に行っており、ス
テップ5の排他制御カウンタ12のチェックにおいて、
全てのプロセスの加算処理完了後に全てのプロセスが排
他制御カウンタ12のチェックを行った場合の値は1以
外である。この時全てのプロセスが利用権を得なかった
状態が発生する。このままステップ2のタイマ監視で待
ち合わせを続けても永久に排他制御カウンタ12は1と
ならないため無限ループが発生する。このため排他制御
カウンタ12の上限値チェックを行いステップ8で排他
制御カウンタ12の初期化を行う。
【0045】上限値チェックによる排他制御カウンタ1
2のクリア処理は、他プロセスが共有メモリのアクセス
状態にある場合も発生するため上限値の設定は各プロセ
スの共有メモリアクセスに必要な最大時間を考慮する必
要がある。
【0046】排他制御カウンタ12が1であった場合
は、共有メモリ1の使用権が得られ、共有メモリ入出力
制御手段32は、共有メモリ1内のデータ13のアクセ
スが可能となり、ステップ9で共有メモリのアクセスを
行う。
【0047】ステップ9で共有メモリアクセス後は、ス
テップ10にて排他制御フラグ11をオフにし排他制御
カウンタ12を0クリアし処理を完了する。
【0048】
【発明の効果】以上説明したように、本発明の共通メモ
リアクセス方式は、セマフォやプロセス間通信などの特
殊命令を必要とせず、ソフトウェアロジックにて共有メ
モリのアクセス競合を制御しているため、共通メモリア
クセス処理遅延を改善するとともに、1つのプロセスの
異常によりシステム全体が停止するようなことがなく、
システムの運用性が向上するという効果がある。
【図面の簡単な説明】
【図1】本発明の共有メモリアクセス方式の一実施例を
示すブロック図である。
【図2】本実施例の共有メモリ排他制御手段における処
理の流れを示すフローチャートである。
【符号の説明】
1 共有メモリ 3 共有メモリ排他制御手段 11 排他制御フラグ 12 排他制御カウンタ 13 データ 21…2n プロセス 31 共有メモリ利用権獲得手段 32 共有メモリ入出力制御手段

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロセスが1つの共有メモリにアク
    セスする場合の共有メモリアクセス方式において、前記
    共有メモリは前記共有メモリのアクセス権の有無を示す
    排他制御フラグと前記共有メモリのアクセス権を得るた
    めの制御カウンタである排他制御カウンタとデータ部を
    含んで構成され、前記プロセスは前記共有メモリ内の排
    他制御フラグがオフ状態であって前記排他制御カウンタ
    の値に1つの機械語命令によって値1を加えた後前記排
    他制御カウンタの値が1の場合のみ前記共有メモリの前
    記データ部の入出力処理を行う共有メモリ排他制御手段
    を備えることを特徴とする共有メモリアクセス制御方
    式。
  2. 【請求項2】前記プロセスは、前記共有メモリ内の前記
    排他制御フラグがオフ状態の場合は前記排他制御フラグ
    をオン状態とし前記排他制御カウンタの値に前記機械語
    命令によって値1を加えた後前記排他制御カウンタの値
    が1の場合のみ前記共有メモリの前記データ部の入出力
    処理を行い前記入出力処理終了後に前記排他制御フラグ
    をオフ状態としさらに前記排他制御カウンタをクリア
    し、前記排他制御フラグがオン状態の場合は一定の時間
    の経過後に再度前記排他制御フラグを判定し、前記排他
    制御カウンタの値が前記値1でない場合は前記排他制御
    フラグをオフ状態にした後前記排他制御カウンタの値が
    予め定めた上限値よりも小さい場合は前記一定の時間の
    経過後に再度前記排他制御フラグを判定し前記排他制御
    カウンタの値が前記上限値よりも大きい場合は前記排他
    制御カウンタをクリアした後前記一定の時間の経過後に
    再度前記排他制御フラグを判定する共有メモリ排他制御
    手段を備えることを特徴とする請求項1記載の共有メモ
    リアクセス制御方式。
JP6117786A 1994-05-31 1994-05-31 共有メモリアクセス方式 Expired - Lifetime JP2872042B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6117786A JP2872042B2 (ja) 1994-05-31 1994-05-31 共有メモリアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6117786A JP2872042B2 (ja) 1994-05-31 1994-05-31 共有メモリアクセス方式

Publications (2)

Publication Number Publication Date
JPH07325750A JPH07325750A (ja) 1995-12-12
JP2872042B2 true JP2872042B2 (ja) 1999-03-17

Family

ID=14720282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6117786A Expired - Lifetime JP2872042B2 (ja) 1994-05-31 1994-05-31 共有メモリアクセス方式

Country Status (1)

Country Link
JP (1) JP2872042B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535575A (ja) * 1991-07-29 1993-02-12 Nec Corp フアイル転送システムの管理フアイル更新方式

Also Published As

Publication number Publication date
JPH07325750A (ja) 1995-12-12

Similar Documents

Publication Publication Date Title
US5696989A (en) Microcomputer equipped with DMA controller allowed to continue to perform data transfer operations even after completion of a current data transfer operation
JPS5841538B2 (ja) マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
US5371857A (en) Input/output interruption control system for a virtual machine
JPH02156334A (ja) 情報処理装置
US7103528B2 (en) Emulated atomic instruction sequences in a multiprocessor system
JP2872042B2 (ja) 共有メモリアクセス方式
JP3006676B2 (ja) マルチプロセッサ
US7877533B2 (en) Bus system, bus slave and bus control method
JP2871171B2 (ja) マイクロコンピュータ
JP3139310B2 (ja) ディジタル信号処理装置
JPH02284253A (ja) データ転送装置
JP2591211B2 (ja) 高速割込み処理装置
JPS6252900B2 (ja)
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法
US20030225817A1 (en) Concurrent execution of kernel work and non-kernel work in operating systems with single-threaded kernel
JPH09218859A (ja) マルチプロセッサ制御システム
JP3127737B2 (ja) ディジタル信号処理装置
JP2523167B2 (ja) コマンドチェイン制御装置
JPH03182945A (ja) 主記憶内データ転送方式
JPH04127260A (ja) マルチプロセッサシステムの排他制御回路
JPH0752393B2 (ja) データ処理装置
JPH03257634A (ja) プログラム並列実行方法とその装置
JPH076143A (ja) タスク起動要求伝達装置
JPS61166631A (ja) マイクロプログラム制御処理方法
JPH0530950U (ja) 情報処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981124