JPH09190375A - 共有メモリ管理方法 - Google Patents

共有メモリ管理方法

Info

Publication number
JPH09190375A
JPH09190375A JP163396A JP163396A JPH09190375A JP H09190375 A JPH09190375 A JP H09190375A JP 163396 A JP163396 A JP 163396A JP 163396 A JP163396 A JP 163396A JP H09190375 A JPH09190375 A JP H09190375A
Authority
JP
Japan
Prior art keywords
memory
shared memory
application
page
shared
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
JP163396A
Other languages
English (en)
Inventor
Kazuhiro Anami
和弘 阿南
Katsuya Sato
勝也 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP163396A priority Critical patent/JPH09190375A/ja
Publication of JPH09190375A publication Critical patent/JPH09190375A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 本発明は、アプリケーションプログラムから
ほとんど意識せずに排他アクセス可能とし、アプリケー
ションプログラム作成の簡便性を向上させる。 【解決手段】 物理メモリが割り当てられていないメモ
リ空間にアプリケーションがアクセスした場合に例外を
発生しメモリ管理を行う仮想記憶機構を備えたマルチタ
スクのオペレーティングシステムにあって、共有メモリ
のメモリ空間をアプリケーションのメモリ空間に加え、
また、物理メモリは当該アプリケーションに対して非割
当とし、当該アプリケーションにアクセスされた時点で
例外を発生させ、さらに例外発生時に、共有メモリ内の
アクセス対象の領域が他のアプリケーションに占有され
ていなければ、当該領域に対応する物理メモリを当該ア
プリケーションに割当て、同時にその領域を占有中に設
定することにより、他のアプリケーションからのアクセ
スの排他を実施する共有メモリ管理方法。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクのオ
ペレーティングシステムを有する計算機の共有メモリ管
理方法に関する。
【0002】
【従来の技術】近年の計算機技術の発達により、大型計
算機のみならずパソコン、ワークステーションなどの小
型の計算機システムにおいても、マルチタスクのオペレ
ーティングシステム(OS)が採用されるようになって
いる。
【0003】このようなマルチタスクシステムにおいて
は、各処理単位(プロセス、タスクともいい、実質的に
はアプリケーションが対応する)は、それぞれ独自のメ
モリ空間を有し、これらの各メモリ空間が基本的には干
渉不可に構成されることにより、各処理単位のマルチタ
スク動作が保証されている。
【0004】しかし、上記各処理単位のメモリ空間が全
く干渉不可であれば、ある処理単位で計算された演算結
果等を他の処理単位に引き渡す等の動作もできないの
で、この様なシステムにおいては、各処理単位間の一種
の通信手段として共有メモリを設けるようにしている。
【0005】すなわち、共有メモリは複数の処理単位か
らアクセス可能に構成されており、ある処理単位から他
の処理単位への情報の引き渡しは、例えばこの共有メモ
リに情報を書き込み、簡易信号通知手段によりその書き
込み事実を当該他の処理単位へ通知することで行われ
る。
【0006】しかしながら、各処理単位が全く自由に共
有メモリに書き込み可能とすると、ある処理単位がある
共有メモリに書き込みを行っているところに、他の処理
単位が同共有メモリに同時に書き込みを行って必要な情
報伝達が出来なくなる場合がある。
【0007】そこで、従来の技術では、処理単位として
のアプリケーションプログラムが共有メモリを使用する
場合に必要であれば、セマフォ等によって他のアプリケ
ーションプログラムを排他するようにしている。
【0008】ここで、排他とは、ある共有メモリを占有
し、あるいは、当該共有メモリへの書き込みの禁止等を
行い、他の処理単位からの当該共有メモリへの干渉を廃
止させることである。
【0009】つまり、セマフォによる共有メモリ管理で
は、ある処理単位が共有メモリを用いる場合に、セマフ
ォを調べて共有メモリが使用中であるかを確認し、使用
を示すフラグが立っていれば、共有メモリが使用中であ
ると判断する。一方、セマフォにフラグが立っていなけ
ればフラグを立て当該共有メモリを使用する。
【0010】
【発明が解決しようとする課題】このようにセマフォ等
を使用する場合では、アプリケーションプログラムが共
有メモリを使用する場合、セマフォに対するアクセスの
部分をプログラム内に用意しなればならないので、プロ
グラマは常に共有メモリの使用を意識したプログラム作
成をしなければならない。
【0011】しかしながら、共有メモリの使用は、計算
機システムのシステムに関わる部分であり、アプリケー
ションプログラム本来の動作とは直接関係がない場合が
多い。
【0012】このような状況であるにも拘らず、排他が
必要であれば、セマフォ等によって排他を行うようにプ
ログラムを作成しなければならない。これは、簡便なア
プリケーションプログラムの作成を阻害し、一般性の高
いアプリケーションプログラムの作成を難くし、また、
プログラマの労力を大きくすることになる。
【0013】またセマフォを設けることによりシステム
全体の構成が複雑になる。本発明は、このような実情を
考慮してなされたもので、アプリケーションプログラム
からほとんど意識せずに排他アクセス可能とし、アプリ
ケーションプログラム作成の簡便性を向上させる共有メ
モリ管理方法を提供することを目的とする。
【0014】
【課題を解決するための手段】上記課題を解決するため
に、請求項1に対応する発明は、複数のアプリケーショ
ン間の情報を共有メモリを介して伝達し、また、物理メ
モリが割り当てられていないメモリ空間にアプリケーシ
ョンがアクセスした場合に例外を発生しメモリ管理を行
う仮想記憶機構を備えたマルチタスクのオペレーティン
グシステムを使用した共有メモリ管理方法において、共
有メモリのメモリ空間をアプリケーションのメモリ空間
に加える第1のステップと、第1のステップにおいて物
理メモリは当該アプリケーションに対して非割当とし、
当該アプリケーションにアクセスされた時点で例外を発
生させる第2のステップと、例外発生時に、共有メモリ
内のアクセス対象の領域が他のアプリケーションに占有
されていなければ、当該領域に対応する物理メモリを当
該アプリケーションに割当て、同時にその領域を占有中
に設定することにより、他のアプリケーションからのア
クセスの排他を実施する第3のステップとを備えた共有
メモリ管理方法である。
【0015】また、請求項2に対応する発明は、請求項
1に対応する発明において、占有した共有メモリ領域の
開放は、アプリケーションからの明示的な開放要求によ
り行う第4のステップを備えた共有メモリ管理方法であ
る。
【0016】さらに、請求項3に対応する発明は、請求
項1又は2に対応する発明において、第3のステップに
おいて、アクセスしたアプリケーションがアクセス対象
以外の他の共有メモリ領域をすでに占有している場合に
は、他の共有メモリ領域を開放する共有メモリ管理方法
である。
【0017】したがって、まず、請求項1に対応する発
明の共有メモリ管理方法においては、複数のアプリケー
ション間の情報を共有メモリを介して伝達し、また、物
理メモリが割り当てられていないメモリ空間にアプリケ
ーションがアクセスした場合に例外を発生しメモリ管理
を行う仮想記憶機構を備えたマルチタスクのオペレーテ
ィングシステムが使用されている。
【0018】このような例外は、多くの場合メモリ空間
の単位であるページの入れ替えを行うために発生する。
すなわち使用頻度の低いページは物理メモリから2次記
憶に保存され、この2次記憶に保存されたページにアク
セスがあった場合等にページ入れ替えを行う。
【0019】本発明では、この例外発生機構を用いて、
セマフォ等を用いることなく共有メモリの管理を行うも
のである。すなわちまず、第1のステップにおいて、共
有メモリのメモリ空間がアプリケーションのメモリ空間
に加えられる。
【0020】これにより、共有メモリは、アプリケーシ
ョンから見えるものとなり、ここにアクセス動作をかけ
ることが可能となる。次に、第2のステップにおいて、
当該アプリケーションに対して共有メモリの物理メモリ
が非割当とされる。
【0021】ここで、動作を確実にするために共有メモ
リ自体には物理メモリを割当てもよいが、アプリケーシ
ョンに対してはあえて物理メモリの割当関係情報を与え
ないことにより、当該アプリケーションが共有メモリに
アクセスした時点で例外が発生することになる。
【0022】そして、第3のステップにおいて、当該例
外発生時に、共有メモリ内のアクセス対象の領域が他の
アプリケーションに占有されていなければ、当該領域に
対応する物理メモリを当該アプリケーションに割当てる
ようにする。これによりアプリケーションから共有メモ
リへのアクセスが実現する。
【0023】また、物理メモリの割当と同時にその領域
が占有中に設定されることにより、他のアプリケーショ
ンからのアクセスの排他が実施される。このようにセマ
フォなどの特殊な機構を用いることなく、かつ、アプリ
ケーションからはほとんど共有メモリの確保排他等を意
識することなく、共有メモリを使用することが可能とな
る。
【0024】また、請求項2に対応する発明の共有メモ
リ管理方法においては、請求項1に対応する発明と同様
に作用する他、第4のステップにおいて、占有した共有
メモリ領域の開放は、アプリケーションからの明示的な
開放要求により行われる。
【0025】さらに、請求項3に対応する発明の共有メ
モリ管理方法においては、請求項1又は2に対応する発
明と同様に作用する他、第3のステップにおいて、アク
セスしたアプリケーションがアクセス対象以外の他の共
有メモリ領域をすでに占有している場合には、当該他の
共有メモリ領域が開放される。これにより、占有した共
有メモリ領域の自動解除が可能となる。
【0026】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。本実施の形態に使用される計算機システム
は、デマンドページングによってメモリ管理を行ってい
る。
【0027】また、そのオペレーティングシステムは、
マルチタスクのオペレーティングシステムであって、物
理メモリが割り当てられていないメモリ空間にアプリケ
ーションプログラム等がアクセスした場合に例外を発生
し、またそのメモリ管理を行うメモリ管理機能と、共有
メモリに対するアクセスの排他管理機能とを有して仮想
記憶機構を実現させている。
【0028】ここで、デマンドページングによる仮想記
憶機構とは、メモリ空間を例えば4Kバイトの固定長の
ページ単位で区切って管理し、計算機本体内の物理メモ
リ(主記憶装置)に全メモリ空間が収まらない場合は、
ハードディスクなどの外部記憶装置にページの一部を保
存して、アプリケーションプログラム等から見ればその
対応するメモリ空間と常にアクセスできるような状態と
する機構である。
【0029】つまり、アプリケーションプログラムはそ
れぞれが対応するメモリ空間を所有しており、ハードウ
ェアとしての物理メモリ,外部記憶装置等を意識せずに
メモリ空間にアクセスする。
【0030】一方、実際の情報は、各アプリケーション
プログラム等のメモリ空間に対応する多数のページとし
て物理メモリに収められており、物理メモリに入り切ら
ないページは外部記憶装置に保存されている。
【0031】この実際の物理状態は、オペレーティング
システムのメモリ管理機能が管理しており、オペレーテ
ィングシステムは、必要に応じて物理メモリと外部記憶
装置と間のページを入れ替え、また新たなページの発生
等を行う。
【0032】そして、オペレーティングシステムによっ
て、CPUが直接にアクセスできる物理メモリの内容が
ページ単位で調整されることにより、複数の処理単位の
動作が同時並行に進行するマルチタスク計算機システム
全体のスムーズな動作が担保されている。
【0033】さて、本発明の適用例である本実施の形態
では、このようなマルチタスクの計算機システムが用い
られており、以下、図1を用いて本実施の形態の主要構
成を説明する。
【0034】図1は本発明の実施の形態に係る共有メモ
リ管理方法を適用した計算機システムの主要部の一例を
示す構成図である。本実施の形態に係わる計算機システ
ムでは、図示しないCPU等その他の周辺機器及び図1
に示すメモリ部1,外部記憶装置2からなるハードウェ
ア部分と、オペレーティングシステム4及びアプリケー
ションプログラム5等からなるソフトウエア部分とによ
ってシステムが構成されている。
【0035】まず、メモリ部1には、物理メモリ11
と、メモリマネージメントユニット12(MMU)とが
設けられている。物理メモリ11には、ページ単位で各
アプリケーションプログラムのメモリ空間、共有メモ
リ、オペレーティングシステムのプログラムデータ等が
割り当てられている。
【0036】メモリマネージメントユニット12は、物
理メモリ11と直接アクセスし、また、ページ管理デー
タ26を参照しており、アプリケーションプログラム4
から少なくともそのアプリケーションプログラム4に対
して物理メモリ11を割り当てていないページにアクセ
ス指令が来ると、例外を発生して例外処理部23にペー
ジ入れ替えを要求する。
【0037】次に、外部記憶装置2は、物理メモリ1に
入り切らない各メモリ空間におけるページを保存する。
また、オペレーティングシステムには、プロセス管理デ
ータ21及びページ管理データ22からなるメモリ管理
データ20と、例外処理部23と、プロセス管理データ
処理部24と、共有メモリ排他処理部25と、ページ管
理データ処理部26とが設けられている。
【0038】メモリ管理データ20は、各アプリケーシ
ョン4の仮想メモリ空間と、物理メモリ11及び外部記
憶装置2からなる物理的なメモリ手段とをページ単位で
関連付けて管理するものである。
【0039】プロセス管理データ21は、各アプリケー
ション4等の処理単位(プロセス)のメモリ空間につい
ての情報を管理する。例えばあるアプリケーションプロ
グラムについて使用し得る全ページについての情報やそ
のアプリケーションが使用しているページについての情
報が管理されている。
【0040】また、アプリケーション等が用いる共有メ
モリもページ単位で与えられ、その生成・使用情報等も
管理している。すなわちプロセス管理データ21は、ア
プリケーションプログラム4がアクセスできる共有メモ
リのメモリ空間がアプリケーションのメモリ空間に付加
された場合にその情報をも保持する。
【0041】ページ管理データ22は、物理的なメモリ
手段,すなわち物理メモリ11及び外部記憶装置2に実
際に割り振られたページ情報を管理する。ページ管理デ
ータ22には、どのページが物理メモリ11に割り振ら
れ、どのページが外部記憶装置2に割り振られているか
についてのページ情報が記憶されている。
【0042】したがって、あるページが物理メモリ11
に割り振られていれば、システムは、物理メモリ1に対
し実際の書き込み読み出し動作を実行し得る。また、ペ
ージ管理データ22では、各ページと物理的なメモリ手
段との対応関係のみならず、どのページがどのアプリケ
ーションのメモリ空間に属するかの情報、すなわちペー
ジの割当と占有等についての情報をも管理している。
【0043】これは、基本的には、プロセス管理データ
21にてあるアプリケーションのメモリ空間にあるペー
ジが生成されていれば、ページ管理データ22において
は、そのページが当該アプリケーションプログラムの占
有するページとして物理メモリ11に割当られている
か、外部記憶装置2に保存されているかということであ
る。
【0044】ここで、占有とは、物理メモリ上のある領
域(ページ等)に対しあるアプリケーションプログラム
がアクセス可能状態となっており、他のアプリケーショ
ンプログラムを排他していることをいう。一方、割当と
は、あるページに物理メモリ11が割り振られ、かつ、
共有メモリ又はアプリケーションプログラム等に割り当
てられていることをいう。
【0045】つまり、各ページの占有・割当情報につい
ては、基本的には、割当られれば同時に占有となるよう
な情報がページ管理データ22に保存されているが、本
発明に係わる共有メモリの管理についてはこれらの占有
・割当情報の管理状態が上記場合と異なっている。
【0046】まず共有メモリの生成時には、共有メモリ
に少なくとも1つのページが割当られるが、共有メモリ
に対応するアプリケーションによる占有は行われない。
つまり、ページ管理データ22において、共有メモリに
は物理メモリ11が割当られるが、アプリケーションプ
ログラム4に対しては共有メモリについての物理メモリ
11が割り当てられない状況が生じている。なお、プロ
セス管理データ21では、当該共有メモリのメモリ空間
が使用要求により対応するアプリケーションのメモリ空
間に付加される。
【0047】またこのとき、アプリケーションプログラ
ム4が共有メモリのあるメモリ空間部分(ページ)を使
用すると、もし、そのページがまたに占有されているも
のでなければ、後述するように例外が発生して占有され
当該アプリケーションプログラムの使用に供される。こ
の場合、そのページがすでに占有されているものであれ
ば、当該アプリケーションプログラム4はそのページを
使用できず後述する所定の処理が行われる。
【0048】例外処理部23は、アプリケーションプロ
グラム4があるページの占有を確保するためにデマンド
ページングをするための機構である。アプリケーション
のメモリ空間におけるあるページは、必ずしも物理メモ
リ11の割当がなされているとは限らない。このような
ページに対してアプリケーションプログラム4がメモリ
部1にアクセスした場合、メモリマネージメントユニッ
ト12は例外を発生する。
【0049】例外処理部23は、メモリマネージメント
ユニット12からの例外を受信すると、ページ管理デー
タ処理部24を介してページ管理データ22を参照し、
必要なページを外部記憶装置2から取り出して物理メモ
リ11に格納して割当を行うと共に、不要なページを外
部記憶装置2に保存し、その割当を解消する。いわゆる
ページの入れ替えである。
【0050】また、この例外処理部23は、共有メモリ
の管理のための動作をも行う。つまり共有メモリが生成
使用状態設定された当初、共有メモリに対する物理メモ
リ11の割当はなされているが、それぞれのアプリケー
ションプログラム4に対するページの占有は行われてい
ない。つまりページ管理データ22においてアプリケー
ションプログラム4から見えている共有メモリのメモリ
空間(以下、共有メモリ空間と略する)と、実際に物理
的に割当られている共有メモリとの対応関係がついてい
ない。
【0051】したがって、アプリケーションプログラム
4がその共有メモリ空間にメモリマネージメントユニッ
ト12を介してアクセスした場合、メモリマネージメン
トユニット12は、対応する割当られたページを発見で
きずに例外を発生する。
【0052】この場合、例外処理部23は共有メモリ排
他処理部26にその旨を通知し、共有メモリ排他処理部
26は、ページ管理データ処理部24を介してページ監
視データの割当・占有情報を修正し、当該ページを上記
アプリケーションプログラム4に占有させる。
【0053】なお、説明上ページ管理データ22と例外
処理部23とをオペレーティングシステム3に含まれる
ものとして記述したが、実際には、これらは、ハードウ
ェアとソフトウエアにまたがって存在する機能部分であ
り、その一部分がメモリ部1にも存在している。
【0054】ページ管理データ処理部24は、ページ管
理データ22の書き込み読み出し等の各種処理を行うと
共に、ページ管理データ22における共有メモリに関す
るページ情報の処理を共有メモリ排他処理部26と協働
して行う。
【0055】プロセス管理データ処理部25は、プロセ
ス管理データ21の書き込み読み出し等の各種処理を行
うと共に、ページ管理データ22における共有メモリに
関するページ情報の処理を共有メモリ排他処理部26と
協働して行う。
【0056】また、アプリケーションプログラム4の立
ち上げ時には、そのメモリ空間を設定し、プロセス管理
データ21に必要なメモリ空間を確保すると共に、ペー
ジ管理データ処理部24を介して物理的なメモリ手段と
当該メモリ空間との対応づけをページ管理データ22に
おいて行う。
【0057】共有メモリ排他処理部26は、ページ管理
データ処理部24又はプロセス管理データ処理部25を
介してメモリ管理データ20にアクセスし、共有データ
の生成、占有、使用・占有解除等を行う。
【0058】まず、共有メモリ排他処理部26は、アプ
リケーションプログラム4からの生成要請に従って共有
メモリを生成する。このとき、共有メモリに対して、ペ
ージ管理データ22において割当が行われる。
【0059】さらに、共有メモリ排他処理部26は、ア
プリケーションプログラム4からの使用要請があれば共
有メモリのメモリ空間を当該アプリケーションプログラ
ム4のメモリ空間に追加する。このときも、共有メモリ
の占有は行われないが、アプリケーションプログラム4
には、共有メモリ空間付与により、共有メモリが使用可
能状態に見えるようになる。
【0060】また、例外処理部23からの共有メモリ空
間についての例外発生の通知があれば、共有メモリ空間
内の指定された領域(ページ)を対応するアプリケーシ
ョンプログラム4に占有させるようにページ管理データ
22を設定する。
【0061】このとき、そのアプリケーションプログラ
ム4がメモリ空間内の他の領域(ぺーじ)を占有してい
る場合には、そのページを開放する。これは、共有メモ
リに使用されるデータサイズとしては4Kバイト以下の
1ページで十分であり、かつ、当該ページを他のアプリ
ケーションプログラム4が使用できるようにするためで
ある。
【0062】さらに、共有メモリ排他処理部26は、以
下の1)〜4)のうち何れかの条件が成立したとき、共
有メモリの占有解除を行うようにプロセス管理データ2
1及びページ管理データ22の内容を変更する。
【0063】1)アプリケーションプログラム4からの
明示的解放要求。 2)一定時間経過 3)アプリケーションプログラム4の終了 4)アプリケーションプログラム4が共有メモリの別領
域(ページ)をアクセスした場合(上記説明と同じ) また、図1中では特に図示していないが、アプリケーシ
ョンプログラム4がメモリマネージメントユニット12
にアクセスする際に、アクセス対象の共有メモリの領域
(ページ)がすでに占有されていれば、共有メモリ排他
処理部26は、以下の処理何れかを行う。
【0064】1)アプリケーションプログラムにアクセ
ス対象の共有メモリは現在、他のプログラムによって占
有中である事を通知する。 2)アクセス対象の共有メモリが占有解除されるまで待
機させる。
【0065】なお、この処理内容の選択は、アプリケー
ションプログラム4からの明示的な要求により設定可能
とする。このように共有メモリ排他処理部26は、アプ
リケーションプログラム4からの直接要求、メモリマネ
ージメントユニットからの例外発生をトリガとして、共
有メモリの設定解除をメモリ管理データ20の内容を操
作することで実行し、またアプリケーションプログラム
4からの占有領域へのアクセスに対して上記所定の処理
を行う。
【0066】アプリケーションプログラム4は、その立
ち上げ時には、プロセス管理データ処理部25に要求
し、これにメモリ管理データ20内にメモリ空間の設定
をさせる。また、共有メモリ生成・使用要求時にも共有
メモリ排他処理部26に要求し、これに共有メモリを使
用可能状態に設定させる。
【0067】これらの設定がされたのち、アプリケーシ
ョンプログラム4は、メモリマネージメントユニット1
2に直接的にアクセスする。ただし、基本的にはオペレ
ーションシステム3,共有メモリ排他処理部26を介す
るアクセスであり、共有メモリ空間の占有領域へのアク
セスがあれば、共有メモリ排他処理部26による上記動
作がなされる。
【0068】次に、以上のように構成された本発明の実
施の形態に係る共有メモリ管理方法を適用した計算機シ
ステムの動作について説明する。まず、図2、3、4、
5を用いてアプリケーションプログラムからの要求・ア
クセスがあったときの共有メモリの管理に関する各動作
について説明する。
【0069】図2は本実施の形態のメモリ管理機構にお
けるアプリケーションプログラムからの共有メモリ生成
要求時の動作を示す流れ図である。同図において、アプ
リケーションプログラム4が共有メモリの生成を要求す
ると、共有メモリ用の物理メモリ11が割当られ、その
ページ情報がページ管理データ22に書き込まれると共
に(ST1)、当該ページ管理データ22には、その共
有メモリが非占有である旨が記憶される(ST2)。
【0070】図3は本実施の形態のメモリ管理機構にお
けるアプリケーションプログラムからの共有メモリ使用
要求時の動作を示す流れ図である。同図において、アプ
リケーションプログラム4が共有メモリの生成を要求す
ると、共有メモリ空間がアプリケーションのメモリ空間
に追加される旨がプロセス管理データ21に記述される
(ST11)。
【0071】なお、このとき、追加された共有メモリ空
間は、そのアプリケーションプログラム4に占有されな
い(ST12)。これによりアプリケーションプログラ
ム4から共有メモリ空間に対しアクセス動作が可能とな
る。
【0072】図4は本実施の形態のメモリ管理機構にお
けるアプリケーションプログラムからの共有メモリアク
セス時の動作を示す流れ図である。同図において、アプ
リケーションプログラム4が共有メモリに対してアクセ
スすると、まず、共有メモリ空間上のアクセス対象の領
域以外のページを占有しているか否かが判定される(S
T21)。
【0073】次に、占有されていれば、当該占有領域を
非占有状態(ST22)、すなわちアプリケーションの
メモリ空間上の共有メモリ領域を物理状態非割当の状態
とし(ST23)、ステップST24に進む。
【0074】一方、占有されていなければ、ステップS
T24に進む。ステップST24において、アクセス対
象領域が他のアプリケーションプログラム4で占有中か
否かが判定される。
【0075】占有中であれば(ST24)、占有解除待
ち処理が行われ(ST25)、ステップST26に進
む。一方、占有されていなければ(ST24)、ステッ
プST24に進む。
【0076】ステップST26において、アクセス対象
の共有メモリを占有中にし、物理メモリを当該アプリケ
ーションに割り当て済み状態とする(ST27)。これ
によりアプリケーションプログラム4はその共有メモリ
領域に実際にアクセスできるようになる。
【0077】図5は本実施の形態のメモリ管理機構にお
けるアプリケーションプログラムからの明示的な共有メ
モリ使用終了要求時の動作を示す流れ図である。同図に
おいて、アプリケーションプログラム4が共有メモリの
使用終了を要求すると、アプリケーションのメモリ空間
上で指定された共有メモリ領域を物理メモリ11非割当
状態とし(ST31)、対応する共有メモリ領域を非占
有とする(ST32)。
【0078】次に、本システムの具体的な動作につい
て、異なるアプリケーションプログラムであるプログラ
ムAとプログラムBが共有メモリのアクセスを行う場合
について図6,7を用いて説明する。
【0079】なお、アクセス対象の共有メモリが他のプ
ログラムによって占有中であれば占有解除されるまで待
つものとする。図6(a)は本実施の形態においてプロ
グラムAが共有メモリの生成と使用を要求、プログラム
Bが共有メモリの使用を要求した直後の状態を示す図で
ある。
【0080】このとき、共有メモリの物理メモリへの割
当はなされているが、各プログラムへの占有はなされ
ず、プログラムのメモリ空間に共有メモリ空間の付加が
されただけである。
【0081】ここで、プログラムAのメモリ空間は、プ
ログラムAのメモリ空間(物理メモリ割当済み)A1及
びプログラムAのメモリ空間(物理メモリ未割当て)A
2からなり、プログラムBのメモリ空間は、プログラム
Bのメモリ空間(物理メモリ割当済み)B1及びプログ
ラムBのメモリ空間(物理メモリ未割当て)B2からな
る。
【0082】また、共有メモリ空間は、共有メモリ空間
(非占有中)C1からなる。図6(b)は本実施の形態
においてプログラムBが共有メモリの占有解除待ちとな
った様子を示す図である。
【0083】つまり、同図では図6(a)の状態後、プ
ログラムAが共有メモリの領域P1をアクセスした後、
プログラムBが共有メモリの領域P1にアクセスした様
子を示している。ここで、共有メモリの領域P1は、共
有メモリ空間上では共有メモリ空間(占有中)C2とな
っており、プログラムAのメモリ空間上では、プログラ
ムAのメモリ空間(占有中共有メモリ)A3となってい
る。
【0084】このとき、プログラムBは領域P1が占有
解除されるまでブロックする。なお、ここで、共有メモ
リ上の各領域は、ページ単位で与えられる。図7(a)
は本実施の形態においてプログラムAが共有メモリの別
領域をアクセスした後の状態を示す図である。
【0085】同図に示すように図6(b)の状態後、プ
ログラムAが共有メモリの領域P2をアクセスすると、
領域P1は占有解除され、プログラムBが動作を再開し
て領域P2を占有する。
【0086】ここで、共有メモリの領域P1は、共有メ
モリ空間上では共有メモリ空間(占有中)C2となって
おり、プログラムBのメモリ空間上では、プログラムB
のメモリ空間(占有中共有メモリ)B3となっている。
さらに、共有メモリの領域P2は、共有メモリ空間上で
は共有メモリ空間(占有中)C2となっており、プログ
ラムBのメモリ空間上では、プログラムAのメモリ空間
(占有中共有メモリ)A3となっている。
【0087】図7(b)は本実施の形態においてプログ
ラムAの明示的解放要求、プログラムBから共有メモリ
の使用を終了要求があった場合の状態を示す図である。
同図に示すように図7(a)の状態後、プログラムAか
ら共有メモリの明示的解放要求があると、占有された共
有メモリが解放され、図6(a)と同じ状態に戻る。
【0088】一方、プログラムBから共有メモリの使用
を終了するという要求があった場合には、占有された共
有メモリが解放されるとともに、共有メモリ空間の付加
も解除される。
【0089】上述したように、本発明の実施の形態に係
る共有メモリ管理方法によれば、共有メモリを生成し、
使用可能状態にするときに、共有メモリに物理メモリを
割当つつも、アプリケーションに占有させずに共有メモ
リ空間のみを付加し、アプリケーションが実際にアクセ
スを行ったときに例外を発生させてそのアクセス領域を
当該アプリケーションに占有させるようにして他のアプ
リケーションに対する排他を実現するようにしたので、
アプリケーションプログラムからほとんど意識すること
なしに排他アクセスを実現することができる。
【0090】したがって、セマフォ等を用いることなく
排他を行うことができ、アプリケーションプログラム作
成上の労力が大幅に低減されるのみならず、簡便なかつ
一般性の高いアプリケーションプログラムの作成するこ
とが可能となる。
【0091】また、本実施の形態に係る共有メモリ管理
方法によれば、占有した共有メモリの開放をアプリケー
ションからの明示的な開放要求により行うようにしたの
で、より確実に排他アクセスを実現することができる。
【0092】さらに、本実施の形態に係る共有メモリ管
理方法によれば、アクセスしたアプリケーションがアク
セス対象以外の他の共有メモリ領域をすでに占有してい
る場合には、前記他の共有メモリ領域を開放するように
したので、自動的に占有解除を行うことができ、より一
層確実に排他アクセスを実現することができる。
【0093】なお、本実施の形態では、デマンドページ
ング方式の場合に沿って説明したが、本発明はこれに限
られるものでなく、デマンドページング方式の他、セグ
メント方式の仮想記憶機構をもつオペレーティングシス
テム等その他の計算機システムに対しても適用すること
ができる。
【0094】
【発明の効果】以上詳記したように本発明によれば、例
外処理を利用して排他を実現するようにしたので、アプ
リケーションプログラムからほとんど意識せずに排他ア
クセス可能とし、アプリケーションプログラム作成の簡
便性を向上させる共有メモリ管理方法を提供することが
できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る共有メモリ管理方法
を適用した計算機システムの主要部の一例を示す構成
図。
【図2】同実施の形態のメモリ管理機構におけるアプリ
ケーションプログラムからの共有メモリ生成要求時の動
作を示す流れ図。
【図3】同実施の形態のメモリ管理機構におけるアプリ
ケーションプログラムからの共有メモリ使用要求時の動
作を示す流れ図。
【図4】同実施の形態のメモリ管理機構におけるアプリ
ケーションプログラムからの共有メモリアクセス時の動
作を示す流れ図。
【図5】同実施の形態のメモリ管理機構におけるアプリ
ケーションプログラムからの明示的な共有メモリ使用終
了要求時の動作を示す流れ図。
【図6】同実施の形態の動作時の各メモリ空間の様子を
示す図。
【図7】同実施の形態の動作時の各メモリ空間の様子を
示す図。
【符号の説明】
1…メモリ部、2…外部記憶装置、3…オペレーティン
グシステム、4…アプリケーションプログラム、11…
物理メモリ、12…メモリマネージメントユニット、2
0…メモリ管理データ、21…プロセス管理データ、2
2…ページ管理データ、23…例外処理部、24…プロ
セス管理データ処理部、25…共有メモリ排他処理部、
26…ページ管理データ処理部、A1…プログラムAの
メモリ空間(物理メモリ割当済み)、A2…プログラム
Aのメモリ空間(物理メモリ未割当て)、A3…プログ
ラムAのメモリ空間(占有中共有メモリ)、B1…プロ
グラムBのメモリ空間(物理メモリ割当済み)、B2…
プログラムBのメモリ空間(物理メモリ未割当て)、B
3…プログラムBのメモリ空間(占有中共有メモリ)、
C1…共有メモリ空間(非占有中)、C2…共有メモリ
空間(占有中)。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のアプリケーション間の情報を共有
    メモリを介して伝達し、また、物理メモリが割り当てら
    れていないメモリ空間にアプリケーションがアクセスし
    た場合に例外を発生しメモリ管理を行う仮想記憶機構を
    備えたマルチタスクのオペレーティングシステムを使用
    した共有メモリ管理方法において、 前記共有メモリのメモリ空間を前記アプリケーションの
    メモリ空間に加える第1のステップと、 前記第1のステップにおいて物理メモリは当該アプリケ
    ーションに対して非割当とし、当該アプリケーションに
    アクセスされた時点で前記例外を発生させる第2のステ
    ップと、 前記例外発生時に、前記共有メモリ内のアクセス対象の
    領域が他のアプリケーションに占有されていなければ、
    当該領域に対応する物理メモリを当該アプリケーション
    に割当て、同時にその領域を占有中に設定することによ
    り、他のアプリケーションからのアクセスの排他を実施
    する第3のステップとを備えたことを特徴とする共有メ
    モリ管理方法。
  2. 【請求項2】 占有した共有メモリ領域の開放は、アプ
    リケーションからの明示的な開放要求により行う第4の
    ステップを備えた請求項1記載の共有メモリ管理方法。
  3. 【請求項3】 前記第3のステップにおいて、アクセス
    したアプリケーションがアクセス対象以外の他の共有メ
    モリ領域をすでに占有している場合には、前記他の共有
    メモリ領域を開放することを特徴とする請求項1又は2
    記載の共有メモリ管理方法。
JP163396A 1996-01-09 1996-01-09 共有メモリ管理方法 Pending JPH09190375A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP163396A JPH09190375A (ja) 1996-01-09 1996-01-09 共有メモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP163396A JPH09190375A (ja) 1996-01-09 1996-01-09 共有メモリ管理方法

Publications (1)

Publication Number Publication Date
JPH09190375A true JPH09190375A (ja) 1997-07-22

Family

ID=11506941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP163396A Pending JPH09190375A (ja) 1996-01-09 1996-01-09 共有メモリ管理方法

Country Status (1)

Country Link
JP (1) JPH09190375A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100822389B1 (ko) * 2000-03-02 2008-04-16 가부시끼가이샤 히다치 세이사꾸쇼 정보처리장치
JP2008529114A (ja) * 2005-01-24 2008-07-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 単一プロセッサまたはマルチプロセッサ・コンピュータ・システムにおけるマルチタスク・アプリケーションのロギングおよび再生を最適化する方法
JP4492778B2 (ja) * 2001-08-30 2010-06-30 豊和工業株式会社 モニタリングシステムにおける通信システム
JP2016062536A (ja) * 2014-09-22 2016-04-25 富士ゼロックス株式会社 情報処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100822389B1 (ko) * 2000-03-02 2008-04-16 가부시끼가이샤 히다치 세이사꾸쇼 정보처리장치
JP4492778B2 (ja) * 2001-08-30 2010-06-30 豊和工業株式会社 モニタリングシステムにおける通信システム
JP2008529114A (ja) * 2005-01-24 2008-07-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 単一プロセッサまたはマルチプロセッサ・コンピュータ・システムにおけるマルチタスク・アプリケーションのロギングおよび再生を最適化する方法
JP2016062536A (ja) * 2014-09-22 2016-04-25 富士ゼロックス株式会社 情報処理装置

Similar Documents

Publication Publication Date Title
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US5274789A (en) Multiprocessor system having distributed shared resources and dynamic and selective global data replication
US5404478A (en) Method of managing a virtual storage for a multi-processor system
US6732138B1 (en) Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process
WO2015169145A1 (zh) 内存管理方法和设备
US20050132249A1 (en) Apparatus method and system for fault tolerant virtual memory management
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
EP0450917A2 (en) Distributed computer systems
US20130145086A1 (en) Processor-bus-connected flash storage module
EP0431467A1 (en) Multiprocessor system having distributed shared resources and dynamic global data replication
JPS62165250A (ja) 仮想記憶方法
US5933848A (en) System for managing the caching of data of a mass storage within a portion of a system memory
GB2265734A (en) Free memory cell management system
US6757786B2 (en) Data consistency memory management system and method and associated multiprocessor network
JPH09311839A (ja) データ共用方式
JPWO2010097925A1 (ja) 情報処理装置
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
CN112100093B (zh) 保持多处理器共享内存数据一致性的方法和多处理器系统
JPH0926910A (ja) 情報処理装置及びその方法及び情報処理システム及びその制御方法
JP2829115B2 (ja) ファイル共用方法
JP3814521B2 (ja) データ処理方法および装置
JPH09190375A (ja) 共有メモリ管理方法
JPH1063525A (ja) 情報処理装置、情報処理システム及びその制御方法
EP0216170A2 (en) Storage management method and system in a multiprocessor environment
JPH09319653A (ja) 情報処理装置、情報処理システム及びその制御方法