JPH0383154A - 多重処理コンピュータ・システム及び方法 - Google Patents

多重処理コンピュータ・システム及び方法

Info

Publication number
JPH0383154A
JPH0383154A JP1211539A JP21153989A JPH0383154A JP H0383154 A JPH0383154 A JP H0383154A JP 1211539 A JP1211539 A JP 1211539A JP 21153989 A JP21153989 A JP 21153989A JP H0383154 A JPH0383154 A JP H0383154A
Authority
JP
Japan
Prior art keywords
local
global
read
count
resource
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.)
Granted
Application number
JP1211539A
Other languages
English (en)
Other versions
JPH0675252B2 (ja
Inventor
Gregory Peter Loten
グレゴリイ・ピイーター・ロートン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0383154A publication Critical patent/JPH0383154A/ja
Publication of JPH0675252B2 publication Critical patent/JPH0675252B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A、産業上の利用分野 B、従来技術 C0発明が解決しようとする問題点 り0問題点を解決するための手段 E、実施例 El 本発明が具体化されるコンピュータ・システム及
びソフトウェア(第1及び第2図)E2 要求、終了論
理の一部の流れ図(第3A乃至第3E図) E3 多重処理コンピュータ・システムの動作の流れ図
(第4A図乃至第4C図) E4 従来の、第4C図に対応する処理(第4D図) F1発明の効果 A、産業上の利用分野 本発明は、複数の処理の各々が、少なくとも1つのシス
テム・リソースにアクセスする多重処理コンピュータ・
システムに関する。
B、従来技術 複数の処理が、メモリ・ユニットもしくはレジスタもし
くはシステム・ハードウェアの特定の部分であるシステ
ム・リソースにアクセスする多重処理コンピュータ・シ
ステムでは、アクセスの競合及びリソースの完全性を解
決しなければならないという問題がある。たとえば、リ
ソースがメモリ・ユニットであり、1つの処理がメモリ
の内容を変更中の時は、他の処理は最初の処理が終る迄
は、リソースにアクセスできない。
多重タスク・オペレーティング・システムの下で動作し
ている従来技術のコンピュータ・システムでは、任意の
時期にリソースに多重読取りアクセスを行うか、排他的
書込みアクセスを行うことは知られている。このような
動作は、リソースへの読取りアクセス許可の大局的な数
をカウントするための大局リソース・カウント及び局所
リソース・カウント(即ち、夫々すべての処理について
の、そのリソースへの読取りアクセス許可の総数)、並
びに各処理のそのリソースへのアクセスの読取りアクセ
ス許可の局所的な数を使用することによって達成されて
いる0個々の処理のための局所リソース・カウントが大
局リソース・カウントの外に必要なのは、各処理にスレ
ッドと呼ばれる複数の“部分処理”を含むことがあり、
その各々がリソースに独立したアクセスを必要とするた
めである。リソースへの書込み動作は、そのリソースへ
のすべての読取りアクセス・カウントがOになった時に
だけ許可される。読取りアクセス・カウントへの順次ア
クセスは、良く知られているようにセマフォ(sema
phores)を使用することによって保証され、この
ようにして、カウントに関して起り得る競合と完全性の
問題が避けられている。
上述のシステムの複雑な問題は、打ち切り命令に応答し
て、多重タスク・オペレーテング・システムによって、
処理が早めに中止される場合に生ずる。処理が早めに打
ち切られるということは。
打ち切りの時点でその処理のためのある読取りアクセス
が保留されていて、従って上述のカウントが、システム
の完全性を保つためにリセットされなければならないこ
とを意味する。処理の中止は、代表的な場合、処理が中
止される度に、オペレーティング・システムによって呼
び出される出口処理論理によって制御されている。
従って、複数の処理が少なくとも1つのシステム・リソ
ースをアクセスできる、次のものより成る多重処理コン
ピュータ・システムが知られている。
(イ)その処理がリソースにアクセスするための許可カ
ウントを保持するための、各処理ごとの局所カウント装
置。
(Ill)リソースにアクセスするすべての処理のため
の許可カウントを保持するための大域カウント装置、 (ハ)処理がリソースの使用を要求し、もしくは放棄す
る度に、適切な局所カウント装置及び大域カウント装置
をこの順番に更新するための更新論理装置。
(ニ)大域カウント装置をリセットするための処理を中
止する出口論理装置。
処理の中止を処理するための、これ迄に知られている機
構は局所要求カウントと大域要求カウントの更新間で、
処理が異常に中止した場合に、潜在的な弱さを有する。
それはこれ等の動作が別個の機械命令によって遂行され
るからであるが、この結果カウントの一貫性が保持され
なくなる。Ii点は、処理が中止した時に、出口論理に
適切な処置を行わせるため、この処理がこの損傷を受け
やすい期間中にあるかどうかを判断することにある。
C1発明が解決しようとする問題点 本発明の目的は、上述のタイプに属し、異常な処理中止
を効果的に処理できる多重処理システムを与えることに
ある。
D6問題点を解決するための手段 本発明の第1の態様に従えば、上述のタイプの多重処理
コンピュータ・システムはさらに次のことによって特徴
付けられる。
(イ)更新論理装置はさらに、適切な局所カウント装置
もしくは大域カウント装置が更新される前に、予想され
る局所カウント値及び大域カウント値を夫々第1及び第
2のメモリ装置に記憶するための論理装置を有する。
0)出口論理装置はさらに、第1のメモリ装置の内容を
適切な局所カウント装置の内容と比較し、第2のメモリ
装置の内容を適切な大域カウント装置の内容と比較し、
比較の結果に依存して、処理が局所カウント装置と大域
カウント装置の更新間で中止されたかどうかを判断する
論理装置を有する。
セマフォを与えて、大域カウント装置は一時に1つの処
理だけによってアクセスされることを保証することが望
ましい。
以下説明する本発明の実施例では1局所及び大域カウン
ト装置がリソースを読取るための許可カウントを保持し
ている。この実施例では、第1のメモリ装置に記憶され
る局所カウントの予想値は現在の局所のカウントに、意
図されている局所カウント・インクレメントを加えたも
のであり、第2のメモリ装置に記憶される大域カウント
の予想値は現在の大域カウントに、意図されている大域
カウント・インクレメントを加えたものである。
ここで“インクレメント”は正数もしくは負数であるこ
とに注意されたい。
上述の実施例では、更新論理装置は大域カウント装置の
前に局所カウント装置を更新し、処理が中断した時に、
第1のメモリ装置の内容が局所カウント装置の内容と同
じであるかどうか、第2のメモリ装置の内容が大域カウ
ントの内容と異なるかどうかを、出口論理装置がテスト
して、もし両方の条件を満足すると、局所カウント装置
の内容が第2のメモリ装置の内容と、大域カウント装置
の内容の差だけデクレメントされる。たとえば第2のメ
モリ装置の内容が大域カウント装置の内容よりも1だけ
小さい時は、局所カウント装置の内容は−1だけデクレ
メントされる(即ちlだけ増加される)、ここでデクレ
メントは第1のメモリ装置から大域カウント装置の減算
の計算結果に依存して任意の数を加算もしくは減算する
ことを意味することに注意されたい。
以下説明する実施例では、更新論理装置は大域カウント
の予想値の前に局所カウントの予想値を記憶するが、代
替実施例として、更新論理装置は、局所カウント装置の
前に大域カウント装置を更新できる。この場合には、出
口論理装置は第2のメモリ装置の内容が大域カウント装
置の内容と同じであるかどうか、第1のメモリ装置の内
容が局所カウント装置の内容と異なるかどうかをテスト
し。
もし前条件を満足すると、大域カウント装置の内容が、
第1のメモリ装置の内容と1局所カウント装置の内容間
の数値差だけデクレメントされる。
更新論理装置で1局所及び大域カウント装置を更新する
のと同じ時間的順序で、夫々第1及び第2のメモリ装置
の予想値を記憶する時は、制御が簡単になる。このよう
にすると、予想カウント及び実際のカウントを比較する
だけで1局所カウントと大域カウントの更新間に中止が
発生したかどうかを判断するに十分である。しかしなが
ら、もしこのテストだけを、中止点の判断に使用したい
場合には、更新論理装置は、値が汚染されないことを保
証する手段として、第1及び第2のメモリ装置の内容を
無効値にセットしなければならない。
しかしながら、更新論理装置はさらに、局所及び大域カ
ウント装置を更新するためのセクションを含む論理のセ
クションをブラケティングする(−括する)論理装置を
有し、出口論理装置はさらに、処理が論理のブラケット
されたセクションの実行中に中止したかどうかをテスト
する論理を有することが好ましい、もし、予想値をセッ
トする時間的順序が、カウント値を更新する順序と同じ
でない時は、このブラケテイングは、セットされる第1
及び第2のメモリ装置のうち第2のメモリ装置をセット
し1局所及び大域カウント装置を更新するという、3つ
のセット動作だけをブラケットすればよい。
ブラケテイング論理の一つの形は、第1及び第2のメモ
リ装置の少なくとも1つの内容を、その中に上記予想値
が記憶される前に無効値にセットし、局所及び大域カウ
ント装置が更新された後に。
第1及び第2のメモリ装置の上記少なくとも1つの内容
を無効値にリセットする。この論理のブラケットされた
セクションをテストするための論理装置は、従って上記
第1及び第2のテスト装置の少なくとも1つの内容が有
効値を有するかどうかをテストする。
しかしながら、以下に説明する実施例では、予想値を記
憶した後に、第3のメモリ装置の内容をリソースのため
の一意的な識別子の値にセットし。
局所及び大域変数の更新の後に、第3のメモリ装置を無
効値にリセットするブラケテイング論理装置が使用され
る。ブラケットされた論理セクションをテストするため
の論理装置は、第3のメモリ装置の内容が有効な識別子
の値に対応するかどうかをテストする。この技術は中止
が生じた時点の表示を与えるだけでなく、中止されつつ
ある処理によって現在アクセスされているリソースの識
別子を明らかにするという利点を有する。このように第
3のメモリ装置を使用すると、第1及び第2のメモリ装
置を最初及びその後に無効値にセットする必要はなくな
るが、このようなセットを行う論理装置も与えることが
できる。
本発明の第2の態様に従うと、多重処理コンピュータ・
システム中でリソースの完全性を保持する方法が与えら
れる。この方法では単一の処理によってアクセス可能な
虚苦慮変数及び複数の処理によってアクセス可能であり
、局所変数に依存する大域変数が順次に更新されて、処
理は局所及び大域変数の更新間で中止できる。この方法
は次の段階より戒る。
(a)局所変数の子想値を第1のメモリ装置に、大域変
数の子想値を第2のメモリ装置に記憶する。
(b)上記局所変数及び上記大域変数をこの順番に更新
する。
(c)もし上記処理が中止されると、第1のメモリ装置
の内容と局所変数の内容とを比較し、第2のメモリ装置
の内容と大域変数の内容とを比較することによって、上
記局所及び大域変数を更新する間に処理が中止されたか
どうかを判断し、必要ならば、変数の値を修正するため
の回復処置を行う。
E、実施例 El 本発明が具体化されるコンピュータ・システム及
びソフトウェア 第1図は1本発明が具体化されるパーソナル・コンピュ
ータ・システムの代表的なハードウェアの組織を示した
ブロック図である。このコンピュータ・システムは、シ
ステム・バス2に接続されたマイクロプロセッサ1を有
する。システム・バスはデータ、アドレス及び制御線よ
り成る。ユーザ入力袋N(たとえば、キーボード及びマ
ウス)3、表示装置4、媒体(たとえば、ディスク・ド
ライブ)5.ランダム・アクセス・メモリ6、読取り専
用メモリ7及び他の出力装置(たとえば、プリンタもし
くはモデム)8が夫々のアダプタ9乃至14を介して、
バス2に接続されている。
第2図は、現存の多重タスク・オペレーティング・シス
テム(以下ベース・オペレーティング・システム20と
参照する)、拡張オペレーティング・システム2工及び
アプリケーション・プログラム22.23.24の形の
複数の処理間の論理関係を示す概酩的ブロック図である
。これ等の処理の各々が複数のリソース(図示せず)に
アクセスする。
ベース・オペレーティング・システム20は第1図に示
されたパーソナル・コンピュータのハードウェア上で実
行され、拡張オペレーティング・システム21を支援し
、システム21がアプリケーション22.23.24を
支援している0本発明の好ましい実施例では、ベース・
オペレーティング・システム20.拡張オペレーティン
グ・システム21及びアプリケーション22.23.2
4は、すべて媒体5からソフトウェアの形で与えられ、
使用するために、ランダム・アクセス・メモリ6中に記
憶さえる。しかしながら、このことは本発明にとって絶
対的なことではなく、論理の少なくとも一部は以下説明
するように1通信リンクを介してダウン・ロードされる
か、ROM中に記憶されるか、もしくはハード・ワイア
ード専用論理の形で与えられる。第2図で、実線は階層
中のコール(呼び出し)・ダウンを示し、破線は階層を
上に向って通過する制御情報を示している。
拡張オペレーティング・システム21は、ベース・オペ
レーティング・システムと組合されて、新しい増強オペ
レーティング・システムを構成することができる。換言
すると、ベース・オペレーティング・システムと拡張オ
ペレーティング・システム21間に示される論理的分離
は、ここでは存在しない、しかしながら1代替的に、拡
張オペレーティング・システム21を従来技術のベース
・オペレーティング・システム20上で実行される多重
タスキング・アプリケーションとして与えて、それ自体
で複数のユーザ・アプリケーション22゜23.24を
支援できる。
ベース・オペレーティング・システム20は、セマフォ
支援及び機能を有する多重タスキング環境を与え、拡張
オペレーティング・システム21を介して、処理22.
23.24に、これらが中止中であることを知らせるこ
とができる。この環境は又、処理及びスレッドを、夫々
所有者の主題及び実行として定義できる。処理は、部分
処理とも考えることのできる多くのスレッドを持つこと
ができるが、スレッドは唯一つの処理にしか所属できな
い、処理及びスレッドは、この技術分野で良く知られて
いる用語である。
E2 要求、終了論理の一部の流れ図 第3A図乃至第3E図は1本発明の機能を与えるために
、拡張オペレーティング・システム21中に与えられる
論理の一部を示す。本発明の理解にとって重要なシステ
ムの論理の部分だけが、これ等の図に示されている。拡
張オペレーティング・システムは、オブジェクトをベー
スとする環境。
ウィントーイング機能、等の他の機能を与えることもで
きる。しかしながら、これ等は本発明に関係ないので、
ここでは説明されない。
処理によるシステム・リソースへのアクセスを管理する
ために、本発明に従う多重処理コンピュータ・システム
はこの分野で知られているリソース・アクセス制限を使
用する。即ち、任意の一時期には、リソースには多重読
取りアクセスもしくは単一の、排他的書込みのいずれか
があるだけである。これによって、スレッドがリソース
を変更している時は、変更が終了する迄すべての他のア
クセスは禁止される。この結果、リソースにアクセスし
ているスレッドは、そのアクセス期間中はそれ自身のな
した変更以外にリソース中の何物も変更されなかったこ
とを推定することができる。
この制限は第2の利点を有する。リソースは1つの原子
的命令では変更できない多くの項目より成る。しかしな
がら、これ等の項目は、1つの項目の値が他の項目の意
味ある値を制限するものとして解釈されてよいであろう
。従って、第1の項目の変更と他の項目の変更間には成
る期間があり、この期間、リソースは意味を持たず、こ
の期間中はリソースを変更しているもの以外は、どのス
レッドもリソースを読取ることを許可すべきではない。
代表的な場合、この制限はリソース当りの読取りアクセ
スの現在数を大域的に(即ちすべての処理について)及
び局所的に(即ち各処理のカウントについて)トラック
し、且そのリソースに関連する読取りカウントへのアク
セスを直列化するためのセマフォを使用することによっ
て具体化されている。リソースへの書込み動作は、その
リソースのすべての読取りカウントがOである時にだけ
許可される。
要するに、4つの機能、即ち読取りアクセスの獲得、読
取りアクセスの終了、書込みアクセスの獲得、及び読取
りアクセスの終了を与える必要がある。これ等の機能に
ついては、以下詳細に説明されるが、夫々以下読取り開
始、読取り終了、書込み開始及び書込み終了と呼ぶこと
にする。これ等の機能の各々は、従来はシステム・オペ
レーティング・システムによって動作しているアプリケ
ーション・プログラムによって与えられていた。
読取り開始は、処理にリソースへの読取りアクセスを多
重タスク・オペレーティング・システムに要求する機能
であり、読取り終了は、読取り動作が完了した時に、処
理にリソースを放棄させる機能である。書込み開始及び
書込み終了は、同じく処理に、リソースへの書込みアク
セスをオペレーティング・システムに要求させ、書込み
動作が完了した時にリソースを放棄する機能である。処
理による読取りもしくは書込み要求が許可されると、こ
の処理は、以下説明するように、許可が放棄される迄読
取りもしくは書込み許可を保持していると呼ばれる。リ
ソースのセマフォは読取り開始機能の終りと読取り終了
機能の開始間ではパ待て(保持)″状態にはなく、他の
読取りアクセスもリソースにアクセスできるが、書込み
開始動作と書込み終了動作間は′″待て″状態にあって
、書込み期間中の排他的アクセスが保証される。各リソ
ースのための、セマフォと大域読取りカウントの両方は
、そのリソースにアクセスできる任意のスレッドに利用
可能でなくてはならない、従ってこれ等はリソース自体
の一部として保持されている。しかしながら、局所読取
りカウントは、これが属する処理以外の処理によってア
クセスする必要はない。従って、局所読取りカウントは
処理の一部として保持される。
読取りカウントのトラッキングは、打ち切り命令に応答
して、多重タスク・オペレーティング・システムによっ
て処理が早めに中止されることがあると云う事実によっ
て複雑になる。処理の早めの打ち切りとは、その処理に
対する読取り要求もしくは現存の読取り許可が、打ち切
り時に保留されており、その結果、上述のカウントはリ
セットして、システムの完全性を保持しなければならな
いことを意味している。この状況に対処するために、従
来このアプリケーションにとっては、処理が中止する度
に、オペレーションによって呼び出すことのできる出口
処理論理と呼ばれるものを与えることが必要であった。
中止した時に、処理がリソースを使用するという要求を
出していない時には、セマフォ及びアクセス・カウント
に関する特定の処置は必要でない。
処理があるアクセス要求を行っていて、この要求がまだ
処理されていない時には、ある回復動作を遂行しなけれ
ばならない。この回復動作が、すべてのアクセス要求を
元に戻しくundo) 、リソースを他の処理が使用す
るのに適した状態に残す(この状態は、他の処理が使用
を禁止され5メモリを占有していない、削除された状態
を考えることができる)ことを伝統的に行ってきたアプ
リケーションの処理の出口処理論理である。
処理中止の通知は、従来はオペレーティング・システム
を呼び出し、出口リストへの追加を要求する処理によっ
て達成されていた。処理がこの要求を行う時は、処理が
まさに中止されようとしている時に実行されるルーチン
のアドレスを与える。
出口リストは処理が中止する時に実行されなげればなら
ないルーチンへの入口点のリストであり、オペレーティ
ング・システムによって1処理当り1リストが保持され
ている。このルーチンは処理のスレッドの任意の1つに
よって実行でき、実行時間がかなり短いものでなければ
ならない、このルーチンを実行するスレッドは出口リス
ト・プロセッサと呼ばれる。換言すれば、従来技術では
、出口リスト・プロセッサは、オペレーティング・シス
テムを使用する各処理によって与えられていた。
出口リスト・プロセッサは、どのリソースに対してどの
ようなアクセス許可が保持されているかを識別できなけ
ればならず、読取りアクセスの場合は、どれだけの数が
保持されているかを識別できなくてはならない、ある処
理の有するいくつかのスレッドは、同じリソースに対し
て読取りアクセス許可を保有することができる。関連す
るリソースの識別は、処理ごとに、書込み許可が保持さ
れている各リソースの識別子を記録することによって達
成される。読取り許可の場合には、識別子だけでなく、
リソース当りに保持されている許可数が記録されなけれ
ばならない。これはさらに2つのリスト、1つは処理が
書込みアクセスを有するリソースの識別子のためのもの
(即ち、書込みリスト)、他は読取りアクセスが許可さ
れているリソースの識別子のためのもの(即ち、読取り
リスト)を保持することによって行われる。読取りリス
ト上の各識別子に関連して、この特定の処理によって、
このリソースに対して現在保持されている読取り許可の
数のカウントが存在する。これ等の追加のリストは、従
ってその処理によってのみアクセスできるメモリ中に保
持される。
同じ処理のすべてのスレッドは、同じデータをアクセス
できるが、これ等は単なるスタックを有する等の意味で
各々独立している。このことは。
読取り及び書込みリストが処理のすべてのスレッドによ
って検索できることができることを意味し、従って、リ
ストへの直列化アクセスの手段が使用されなければなら
ないことを意味している。この直列化を達成する1つの
良く知られた方法は、オペレーティング・システムがス
レッドのための所N tiクリティカル・セクション”
を指定し、最初のスレッドがクリティカル・セクション
を出る迄、処理のすべての他のスレッドが実行できない
ようにするものである。追加のセマフォを使用すること
によって、代替方法も使用できる。ここではベース・オ
ペレーティング・システムがクリティカル・セクション
を指定し、その限界は、クリティカル・セクション入口
及びクリティカル・セクション出口と呼ばれる。オペレ
ーティング・システムの機能によって決定される。
処理の中止に関連して、呼び出された出口リスト・プロ
セッサによって与えられる基本的な機能は、 (a)書込みリスト中で識別された各リソースのセマフ
ォを解放する。
(b)中止された読取りリスト中で識別される各リソー
スの入城読取りカウンタを、このリソースに関連する局
所読取りカウントだけデクレメントして、読取りリスト
の項目によって保持された任意のセマフォを解放するこ
とである。
従来技術で採用された、すべての予防策にもかかわらず
、処理の中止を処理する一般的な機構は、処理が局所読
取りカウントの更新と入城読取りカウントの更新間で異
常に中止すると、傷を受けやすいことが認識される。こ
れ等の更新動作は、従来のシステムでは、別個の機械命
令によって遂行されているが、この結果処理の中止がこ
れ等の更新間で生ずることが考えられる。困難な点は、
処理がこの間で中止したかどうかを検出し、もしそうな
らば、出口処理論理によってどのような回復処置を取る
べきかを判断することである。
たとえば、読取り開始機能中に、スレッドは処理の読取
りリスト中の局所読取りカウントを修正してリソースの
入城読取りカウントをインクレメントする間に、中止で
きる。この場合、出口リスト・プロセッサが、この処理
が入城読取りカウントをインクレメントした値よりも1
だけ多くデクレメントするので、システムの完全性ガ失
われる。
読取り終了機能を遂行する時も、この処理がリソ−スの
大域カウントを、インクレメントした値よりも1だけ少
なくデクリメントする点を除き、類似の問題が生ずる。
出口リスト・プロセッサにとっての難点は、読取りリス
ト中に保持された読取りカウントが正しい値でなく、こ
の部分リソースの大域読取りカウントがデクリメントさ
れる場合にこの場合を識別して正しい値を決定すること
である。この問題は、従来は認識されておらず、認識さ
れていたとしても、無視されていた。従来技術でどのよ
うにして誤りが発生するかの例を、第4D図に関して後
に説明する。
本発明に従って、多重処理システムに組込まれた、この
問題への解決法を、第3A図、第3B図、第3C図、第
3D図及び第3E図を参照して説明する。
この問題への解決法は、処理の読取りリスト中の局所読
取りカウントとリソースの大域読取りカウントの予想値
を、読取り開始及び読取り終了機能の遂行中の変更の直
前に記録して、出口リスト・プロセッサに実際の値が意
図されている値と一致するかどうかをテストさせる段階
より成る。局所及び大域カウントのこれ等の予想値は夫
々のレジスタ中に記録される。レジスタは別個のハード
ウェア・レジスタでよい、しかしながら、大域カウント
のためにはM個のレジスタが、局所カウントのために必
要であるから(M個のリソース及びN個の処理が存在す
るものと仮定される)、レジスタは普通、処理及び拡張
オペレーティング・システムにアクセス可能なメモリ中
に構成できる。この技術は、この介在期間には変数は変
更できず、リソースがセマフォによってロックされてい
るので、変数は正しいと仮定している。実勲値と意図値
の比較によって、差がある時は1割込み動作がインクレ
メントもしくはデクリメント動作であるかどうか、局所
読取りカウントが多過ぎるか、少な過ぎるかどうかを識
別する。出口リスト・プロセッサは従って中止された処
理によって大域カウントが何回インクレメントされたか
、従って何回デクリメントされるかを正確に判断できる
以下の説明で、所定のリソースのすべての処理の請取り
許可の読取りカウントは用語“大域読取1.3カウント
” (第3図では11 G 97ε省略されている)処
理の読取りリスト中に保持され、所与のリソースに対し
この処理によって保持されている読取り許可の数を示す
カウントは用語゛′局所読取りカウント” (第3図で
はrr L IJと省略されている)と呼ばれる。゛′
−時局所′” (第3図”TL”)及び″−時大域″(
第3図”TG”)は新しい読取りカウント値の計算中に
だけ意味を有する。この検定の例では、変数“クリティ
カルID”(第3図”CHD”)が、どのリソースが変
更されつつあるかを識別するのに使用される。′リソー
ス識別子n (第3図“RID”)はそのリソースの一
意的識別子である。以下の説明では、ただ1つの局所読
取りカウントについて言及されるが、各処理には、その
処理によってアクセスされる各リソース毎に1つの局所
読取りカウントが関連していることに注意されたい、同
じく、唯一つの大域読み取りカウントについて説明され
るが、各リソース毎に1つ当て存在する。これ等のカウ
ントは。
大域カウントがすべての処理によってアクセスされ、局
所カランhが適切な処理によってアクセスできるように
、拡張オペレーティングによってメモリに保持される。
以下、第3A、第3B、第30、第3D図を参照して、
夫々読取り開始、読取り終了、書込み開始及び書込み終
了呼び出しの論理について説明する。以下に示す段階の
番yは図面に論理機能ボックスを識別する参照番号に対
応している0次の論理機能の各々は通常、拡散オペレー
ティングの部分をなし、アプリケーション処理からの呼
び出しに応答して実行可能である。コードの部分をなし
ている。
読取り開始機能を遂行する際に含まれるフェイズを以下
第3A図に関連して説明する。
(1)クリティカル・セクションに導入せよ一段階0 これはオペレーティング・システムへの呼び出しであり
、完了すると、同じ処理からの他のスレッドをロック・
アウトする。
(2)出口リスト・ルーチンに加えよ一段i31.32 段階31のテストは、出口リスト・ルーチンが段階32
で出口リストに一度だけ加えられるようになされる。
(3)リソース識別子を読取りアクセス・リストに加え
る一段階33.34 段階33のテストは、リソース識別子が段階34中で、
−度だけ加えられるようになされる。
(4)セマフォを求めよ一段階35.36もし、段階3
6中で、リソースのセマフォをアクセスする試みに失敗
したことがわかると1段階37中で局所読取りカウント
LがOでなければ(即ち、この処理によるリソースの読
取り動作が残っている)、段1lW38でリソース識別
子が読取りリストから除去され、そうでない時は、リソ
ース識別子はリスト中に保持され、次に段階39でクリ
ティカル・セクションが終了し、段階40で読取りアク
セスを要求する試みが不成功であったことを示して、読
取り開始論理によって制御が戻される。
(5)もし段136でリソースのセマフォをアクセスす
る試みに成功すると、次の動作が行われる。
段FIJ41ニー時局所:=局所読取りカウント+段階
42ニー時大域:=大域読取りカウント+段PI!43
:クリティカルID:=リソースID段階44:局所読
取りカウント:=局所読取りカウント+X 段階45:大域読取りカウント:=大域読取りカウント
+X 段階46:クリテイカルID:=無効 段階47:−時局所:=無効 段階48ニ一時局所:=無効 段階49:リソースセマフォを解放せよ段階50:クリ
ティカル・セクションを出よ段階51:読取りアクセス
を要求した試みが成功したことを示して、制御を戻せ 段FI!41及び段階42で、局所読取りカウントと大
域読取りカウントの予想値が夫々−時メモリ位置、−時
局所及び−時大域に記憶される。′X”のインクレメン
トが段階41.42(段#44及び45)に示されてい
る。画面では II X #は“1”であるものとして
示されているが、遂行される読取り動作の数に依存する
他の数でもよい。
段階43中で、リソースの識別子が変数クリティカルI
D中に記憶される。段階44及び45で、局所読取りカ
ウントが先ず更新され、次に大域読取りカウトが更新さ
れる。段階46.47及び48で、クリティカルID、
−時局所及び−時大域値はリセットされる(註:ここで
は示されていないが、−時局所及び−時大域は既に説明
したように、段階41の直前にOにリセットできる)。
クリティカルIDの場合は、このリセット値はたとえば
、Oでよいが、−時大域及び−時局所の場合には、−1
でよい0段階49で、リソースのセマフォが解放される
1段階50で、クリティカル・セクションを出て、処理
の他のスレッドに解放される0段階51で、制御は読取
りアクセス要求の試みが成功したこと(即ち問題にして
いるリソースのための読取り許可が処理の読取りリスト
上に置かれたこと)を示す表示とともに、元の点に戻さ
れる6 読取り開始機能が成功裡に終了すると、セマフォが解放
されているので、他の処理が読取りカウンタにアクセス
できる。このように、読取り開始機能を開始した処理は
、これが読取り終了機能を開始するか、中止される迄読
取りができる。
読取り終了m能を遂行するための段階を、以下直ちに第
3B図を参照して説明する。
(1)クリティカル・セクションに導入せよ一段階2 これはオペレーション・システムへの呼び出しであり、
完了すると同じ処理からの他のスレッドがロック・アウ
トされる。
(2)セマフォを−求めよ一段階53.54もし、段階
53中のリソースセマフォをアクセスする試みが成功し
ないと(段階54)、段階55でクリティカル・セクシ
ョンが終了し1段階56で、読取り許可を放棄する試み
が失敗したことを示して読取り終Y論理によって制御が
戻される。
(3)もし段階54で、リソースのセマフォをアクセス
する試みに成功すると1次の動作が行われる。
段階57 ニー時局所:=局所読取りカウント−λ 段階58: −時大域:=大域読取りカウント−段階5
9:クリティカルID:=リソースID段階60:局所
読取りカウント:=局所読取りカウント−X 段階61:大域読取りカウント:=大域読取りカウント
−X 段階62;クリティカルID:=無効 段階63ニー時局所;=無効 段階64ニ一時大域:=無効 段階65:リソースセマフォを解放せよ段階57及び5
8で、局所読取カウント及び大域読取りカウント予想値
が、夫々−時メモリ位置、即ち一時局所及び−時大域に
記憶される。この場合も、値rt X IIは図では1
であるが、他の値でもよい。段階59で、リソースの識
別子が変数のクリティカルID中に記憶される8段階6
0で、局所読取りカウントが先ず更新され、次に段階6
1で大域カウントが更新される。段階62.63及び6
4で、クリティカルID、−時局所及び−時大域が、読
取り開始機能の場合と同じように無効値にリセットされ
る(註:ここには示されていないが、−時局所及び−時
大域は既に説明したとおり、段階57の直前にOにリセ
ットできる)0段Pa65で、リソースのセマフォが解
放される。
(4)処理の読取りリストからリソース識別子を除去せ
よ一段FII66.67 リソース識別子は、そのリソースに読取り許可がないこ
とを意味して局所読取りカウントが0ならば(段階66
)、段階67で処理の読取りリストから除去できる。
(5)クリティカル・セクションを出て、戻れ一段階6
8.69 段階68で5クリテイカル・セクションを出て。
処理の他のスレッドに解放される。段階S1で。
制御は、読取り許可の放棄の試みが成功したことを示す
表示とともに、元の点に戻される。
書込み開始機能を遂行する際に含まれるフェイズを以下
第3C図を参照して説明する。
(1)クリティカル・セクションに導入せよ一段階0 これは、オペレーティング・システムに対する呼び出し
であり、完了すると同じ処理の他のスレッドがロック・
アウトされる。
(2)出口リスト・ルーチンを出口リストに加えよ一段
階71.72 段階71のテストは、出口リスト・ルーチンがi度だけ
段階72で出口リストに加えられるように行われる。
(3) M込みアクセス・リストにリソース識別子を加
えよ一段階73.76 もし1段階73で、リスト識別子がすでに書込みリスト
上に存在することが確認されると、任意の一時期には、
唯一っの書込みの要求が可能であるために、現在の要求
には応じられない。この場合は段階74でクリティカル
・セクションを出て、段階75で制御は、書込み要求が
失敗したという表示とともに戻される0段階73で、リ
ソース識別子が書込みリスト上に存在しないことが判る
と、段階76でリソース識別子がこのリストに加えられ
る。
(4)セマフォを求めよ一段階77.78段階77で、
リソースセマフォをアクセスする試みに失敗すると、リ
ソース識別子が段階79で書込みリストから除去され、
クリティカル・セクションが段階74で中止され、段階
75で書込み要求が失敗したことの表示とともに書込み
開始論理によって制御が戻される。
(5)段階78で、リソースのセマフォへのアクセスの
試みに成功すると、段階80で大域読取りカウントが0
であるかどうかのテストが行われる。
大域読取りカウントがOでない時は、少なくとも1つの
読取り許可が保留中であるので、そのリソースへの書込
みはできない、従って段階80’で、リソースセマフォ
が解放され、段階79でリソース識別子が書込みリスト
から除去され1段階74でクリティカル・セクションが
中止され、段階75で書込み開始論理によって、書込み
要求が失敗したという表示とともに制御が戻される。
段階80で、大域読取りカウントが0であることがわか
ると、このリソース1こ対して保留中の読取り許可がな
いので、書込みが許可される。従って段階81でクリテ
ィカル・セクションを出て、段階82で書込み要求が成
功したことの表示とともに、制御が戻される。
書込み開始機能が成功裡に段階82で終了しても、セマ
フォは解放されていない二とに注意されたい。この結果
、他の処理は読取りカウンタにアクセスできない、従っ
て書込み開始機能を開始した処理は、これが書込み終了
機能を開始するか、もしくは中止する迄は、そのリソー
スに排他的にアクセスできない、書込み終了機能を遂行
する際(1)クリティカル・セクションに導入せよ一段
階3 これはオペレーティング・システムへの呼び出しであり
、完了すると同一処理からの他のスレッドをロック・ア
ウトする。
〈2)リソースのセマフォを解放せよ一段階84(3)
書込みリストからリソース識別子を除去せよ一段階85 (4)クリティカル・セクションを出て、戻れ一段階8
6.87 段階86において、クリティカル・セクションを出て処
理のスレッドに解放される。段N86で。
制御が元の点に戻される。
次に出口リスト論理について、第3E図を参照して説明
する0本発明の好ましい実施例では、この論理は拡張オ
ペレーティング・システムの一部をなすコードの形で与
えられ、アプリケーション処理からの呼び出しに応答し
て実行される。
(1)段階88で、クリティカルIDがリソース識別子
の値と異なる値、即ち無効値を有するかどうかのテスト
がなされる。クリティカルIDの値が無効な時は、関連
する処理はコードの傷を受けやすい領域では中止されて
いない、コードの傷を受やすい領域とは、クリティカル
IDが関連するリソースの値にセットされた、第3A図
及び第3B図に関して説明された論理中の位置間のこと
である6従って、出口リスト・プロセッサは、局所及び
大域読取りカウントが正確であるから5段N89に示さ
れた通常の出口リスト処理が遂行できる。
(2)段階88で、クリティカルIDが有効なIDであ
ることがわかると、カウントが正確でなくなるような、
局所読取りカウントと大域読取りカウントの更新の間で
処理の中止が生じたかどうかを示すテストが段階91で
行われる。もし“−時大域〈〉大域読取りカウントで、
−時局所=局所読取りカウント”ならば、この時期に中
止が生じたこと判断される。
(3)段階91のテスト結果がNo(N)ならば、中止
は局所及び大域カウントの更新間で生ぜず、従って局所
及び大域カウントが正確であると判断される。従って出
口リスト・プロセッサは段階89に示された通常の出口
リスト処理を行い、段階90で戻りがなされる。
(4)段階91のテストがYES (Y)ならば、局所
読取りカウントの値は一時大域と大域読取りカウントの
間の差だけデクレメントされる。第3E図でこの動作は
、さらに段階92で″−一時大域大域読取りカウント″
′であるがどうかを判断することによって行われる。も
し″−一時大域大域読取りカウント”ならば、段階94
で局所読取りカウントは局所読取りカウント−1にされ
る。そうでない時は局所読取りカウントは段階93で局
所読取り+1に等しくされる。第3E図では第3A及び
第3B図に関して説明された値Xは+1にされている。
(5)段階93もしくは段N94に続いて、段階89で
通常の出口リスト処理が行われ、段階9oで制御が戻さ
れる1通常の出口リスト処理は、書込みリスト中の各リ
ストについて、セマフォを解放し、読取りリスト中の各
リソースについて、(1)中止中の処理について、大域
読取りカウントを局所読取りカウント分デクレメントし
、(i)中止中の処理によって依然保持されている任意
のセ”7フオを解放する。
@3E図を参照して上述された論理によって。
出Dリストプロセッサは、クリティカルIDの値をチエ
ツクすることによって、読取りカウントの誤った値を識
別できる。もし読取りカウントの値が無効でなければ、
変数は処理が中止を知らされた時に変更された大域読取
りカウントを有していたリソースの識別子を保持してい
る。このような場合は、スレッドは読取り開始及び読取
り終了段階の各3つの6段階の1つに達する。興味ある
場合は、局所読取りカウントは更新されたが、大域読取
りカウントが更新されていない時、即ち一時局所=局所
読取りカウントで一時大域〈〉大域読取りカウントの時
である。従って一時大域〉大域読取りカウントの時は、
スレッドはカウンタをインクレメントし、−時大域く大
域読取りカウントの時は、スレッドは読取りカウンタを
デクリメントした6従って局所カウンタはこれを大域読
取りカウントからデクリメントする前に調整できる。
モし処理が中止されたことを示す他の手段があれば、ク
リティカルIDを使用する必要はない。
時局所と一時大域値のセットがカウント自体の更新と同
じ順序で行われる限り1段階91に示したテストするに
十分である6クリテイカルIDを使用する時は、−時局
所及び大域値がカウント自体と同し順序で更新されたか
どうかは問題でない。
段階89では2その時に処理が実際にセマフォを保持し
ていない処理のためのセマフォの解放動作は行われない
ことを仮定している。
E3 多重処理コンピュータ・システムの動作の流れ図 第4A図乃至第4C図は、ベース・オペレーティング2
0.拡張オペレーティング・システム21及び3つのア
プリケーション22.23.24間で行われる本発明に
従う多重処理コンピュータ・システムの動作の流れ図で
ある。この例では、唯一つのリソースに関して説明がな
される、同じく各アプリケーション処理について、単一
の大域読取りカウント及び単一の局所読取りカウントに
ついて言及される。実際には、各リソースに大域読取り
カウントが、及び各リソースに対し、各処理毎に1局所
読取りカウントが関連している。
(a)最初の動作は、アプリケーションエが拡張オペレ
ーティング・システムを呼び出して、リソースを作成す
ることにある。拡張オペレーティング・システムはベー
ス・オペレーティング・システムを呼び出して、リソー
スの一部を割当てさせる。
割当てが終ると、制御は拡張オペレーティング・システ
ムを介してアプリケーション1に戻される。
(b)アプリケーション1が他のアプリケーションに、
リソースの存在を知らせる。
(c)アプリケーション2が拡張オペレーティング・シ
ステムを呼び出して、読取りが要求を開始する。
拡張オペレーティング・システムは第3A図に示した論
理を呼び込んで、段階51を成功裡に完了し、ここで大
域読取りカウントは1に、アプリケーション2のための
局所読取りカウントは1にされる。
(d)アプリケーション3が拡張オペレーティング・シ
ステムを呼び出して、読取り要求を開始する。
拡張オペレーティング・システムが第3A図に示した論
理を呼び込んで、段階51を成功裡に完了し、ここで大
域読取りカウントは2に、アプリケーション3の局所読
取りカウントは1になる。アプリケーション2の局所読
取りカウントは1に留まっている(これはアプリケーシ
ョン3からはアクセスできない)。
(e)アプリケーション2の読取り動作が正常に終了し
、第3B図に示した読取り終了論理が呼び出されて、読
取り動作を完結する。第3B図に示した論理が段階69
で成功裡に完了し、大域読取りカウントを1に、アプリ
ケーション2のための局所読取りカウントを0に戻す。
(f)アプリケーション3の読取り動作が正常に終了し
、第3B図に示した読取り終了論理が読取り動作を完結
する。第3B図に示した論理が段階69で成功裡に完了
し、大域読取りカウントを0に、アプリケーション3の
局所読取りカウントをOに戻す。
第4B図は、アプリケーション2が読取り中オペレーテ
ィング・システムによって、第4A図の段階(d)及び
(e)の間で中止された点を除き、総括的には第4A図
と同じ事象のシーケンスを示す6(a)乃至(d)第4
B図のこれ等の段階は、第4A図の段階(a)乃至(d
)に対応する。
(e)アプリケーション2の読取り動作を完了する前に
、ベース・オペレーティング・システムがアプリケーシ
ョン2を中止し、出口リスト論理が呼び出され、処理が
中止される。出口リスト論理が呼び出された段階では、
アプリケーション2の局所読取りカウントは1にあり、
大域読取りカウントは依然2にある。
出口リスト論理の段階88で、処理はコードのブラケッ
トされたセクションの外側にあるので、クリティカル1
0は無効ID値を有する。従って、通常の出口リスト処
理が出口リスト論理の段階89で遂行され、この結果、
大域読取りカウント(現在値2)はアプリケーション2
の局所読取りカウント分(現在値1)だけデクリメント
され、値1にされる0次にアプリケーション2の局所読
取りカウントはOにセットできるが、処理が中止する時
のこの段階は重要ではない。
(f)第4B図のこの段階は、第4A図の段階(f)に
対応する。
第4A図に示したシーケンスの場合と同じように、段階
(f)の終了時には、リソースのための大域読取りカウ
ントはOであるが、このことはリソースが他の処理によ
って、読取り及び書込み動作の両方についてアクセスが
可能なことを意味している。
第4C図は、第4A図及び第4B図に示されたシーケン
スと総括的には似ている事象の第3のシーケンスである
。しかしながら、第4C図のシーケンスと、第4A及び
第4B図のシーケンスでは重要な差がある。具体的に説
明すると、第4C図のシーケンスでは、アプリケーショ
ン2は読取り終了論理の実行中の局所及び大域読取りカ
ウントの更新間で中止されている。
(a)乃至(d)第40図中のこれ等の段階は、第4A
図の段階(a)乃至(d)に対応している。
(e)アプリケーション2の読取り動作が完了すると、
第3B図中に示した読取り終了論理が示される。第3B
図に示された読取り終了論理が呼び出されて、読取り動
作を完結する。しかしながら、第3B図に示した読取り
終了論理中の段階60乃至61の実行の間で、ベース・
オペレーティング・システムがアプリケーション2を中
止させ、出口リスト論理が呼び出され、処理が中止され
ている。
出口リスト論理が呼び出された段階では、局所読取りカ
ウントはOにあり、大域読取りカウントは依然2にある
出口リスト論理の段N88で、クリティカルよりは有効
なIDであることがわかり、このことは処理がブラケッ
トされたセクションで中止されたことを意味している6
段階91で、式“−時大域く〉大域読取り及び−時局所
=局所読取りカウント″が戊立つかどうかが判断される
1段階92で一時大域が大域読取りカウントよりも小さ
いことがわかると1局所読取りカウントは段階94で1
だけデクリメントされる(即ち、局所読取りカウント:
=局所読取りカウント−1)、これ等の動作は局所読取
りカウントの値を修正し、従ってその後通常の出口リス
ト処理が、出口リスト論理の段階89で遂行され、この
結果、大域読取りカウント(現在12)が修正されたア
プリケーション2の局所読取りカウント(現在値2)だ
けデイクレメントされ、1の値が残される。
(f)第4C図のこの段階は、第4A図に対応している
第4A図及び第4B図に示したシーケンスの場合と同様
にして、リソースの大域読取りカウントは段階(f)の
終りにOになる。このことは、他の処理が読取りもしく
は書込み動作の両方について。
リソースをアクセスできることを意味している。
本発明に従って、コンピュータ・システムに他の論理を
付加することなく、システムは異常な中止状態から回復
できる。
異常な中止状態から回復できる。
E4 従来の第4C図に対応する処理 第4D図には、従来処理されていた、総括的に第4C図
に対応する事象のシーケンスを示している。第4C図と
の比較を容易にするために、第4D図でも同じ形式が採
用されている。
(a)最初の動作で、アプリケーション1がベース・オ
ペレーティング・システムを呼び出しで、リソースが作
成される。
(b)次にアプリケーション1が他のアプリケーション
にリソースの存在を知らせる。
(e)アプリケーション2がリソースの読取りアクセス
の要求のための読取り開始論理を呼び込む。
この読取り開始論理は、段階41.42.43.46.
47及び48が存在しないことを除いて第3A図に示し
た読取り開始論理に総括的に対応している。読取り開始
論理が成功裡に完了して、大域読取りカウントが1に、
局所読取りアプリケーション2のための局所読取りカラ
ン1〜が1にされる。
(d)アプリケーション3が読取り開始論理を呼び出し
て、リソースへの読取りアクセスを要求する。
この読取り開始論理は、繰返しになるが、段階41.4
2.43.46.47及び48が存在しないことを除い
て、第3A図に示された読取り開始論理に対応している
。この読取り開始論理が成功裡に完了し、大域読取りカ
ウントは2に、アプリケーション3のための局所読取り
カウントは1にされる。アプリケーション2のための局
所読取りカウントは1のままである(このカウントはア
プリケーション3によってはアクセスできない)。
(e)アプリケーション2の読取り動作が完了すると、
読取り終了論理が呼び出されて、読取り動作を完結する
。ここでの読取り終了論理は、第3B図の段階57.5
8.59.62.63及び64が存在しないことを除い
て第3B図の論理に対応している。しかしながら5局所
読取りカウント及び大域読取りカウントの間(第3B図
の段階60及び61に対応する)で、オペレーティング
・システムはアプリケーション2を中止し、出口リスト
論理が呼び込まれ、処理が中止する。出口リスト論理が
呼び込まれた段階では、局所読取りカウントはOであり
、大域読取り論理は依然2である。
この出[コリスト論理は、第3E図に示された段階89
及び90だけから成るものと仮定している。
従って出口リスト論理の段階89で、通常の出口リスト
処理だけが行われ、この結果大域読取りカウント(現在
値2)がアプリケーション2の局所読取りカウント(現
在値O)分だけデクレメントされ、2の値が残される。
次にアプリケーション2の局所読取りカウントがOにリ
セットされる。
(f)アプリケーション3の読取り動作が完了すると、
読取り終了論理が呼び出されて読取り動作が終了する。
この読取り終了論理も、第3B図の段階57.58.5
9.62.63及び64が存在しないことを除いて、第
3B図のこの論理に対応している。読取り終了論理は、
アプリケーション2のための局所読取りカウントを1だ
けデクレメントしてOにし、大域読取りカウントを2か
ら1だけデクレメントして、1のカウントを残して終了
する。
従って、従来技術は、読取り終了論理を出る際に、1と
いう大域読取りカウントが残され、これがリソースに留
まって、リソースへの書込みを防げる1本発明を使用し
ない場合は、処理がリソースの読取りを終了しない前に
大域読取りカラン1〜が0にセットされる可能性がある
。このことは、この段階で書込みアクセスが不正に許容
され、この結果リソースが破壊されることを意味してい
る。
以上、本発明の特定の実施例について説明されたが、こ
れには追加もしくは修正が可能なことが明らかであろう
、たとえば、本発明は多重処理コンピュータ・システム
において、単一の処理によってアクセス可能な局所変数
、及び複数の処理によってアクセス可能であり、局所変
数に依存する大域変数がこの順番に変更され、処理が局
所及び大域変数の更新が行われる場合に1局所及び大域
変数の予想値を1局所変数及び大域変数自体が更新され
る前に夫々第1及び第2のメモリ中に記憶してリソース
の完全性を保持するのに使用できる。
従って処理が中止されても、処理が上記局所変数及び大
域変数の更新間で処理が中止されたかどうかの判断が、
第1のメモリ装置の内容と局所変数の内容を比較し、且
第2のメモリ装置の内容と。
大域変数の内容を比較して行われ、必要があれば、これ
等の値を修正するための、回復処置が行われる。
F1発明の効果 本発明に従えば、異常な処理中止を効果的に処理できる
。多重処理オペレーティング・システムが与えられる。
【図面の簡単な説明】
第1図は、本発明が組込まれる。コンピュータ・システ
ムのハードウェアの概略図である。 第2図は、本発明に従う多重処理システムの論理構造の
態様を示した概略ブロック図である。 第3A図乃至第3E図は、本発明の特定の実施例の論理
の一部を示した流れ図である。 第4A図乃至第4C図は、第2図の多重処理コンピュー
タ・システム中の情報の流れを示した図である。 第4D図は、従来の多重処理コンピュータ・システム中
の可能な情報の流れを示した図である。 1・・・・マイクロプロセッサ、2・・・・バス、3・
・・・入力装置、4・・・・表示装置、5・・・・媒体
、6・・・・メモリ、7・・・・ROM、8・・・・他
の出力装置、9.10.11.12.13.14・・・
・アダプタ、20・・・・ベース・オペレーティング・
システム。

Claims (2)

    【特許請求の範囲】
  1. (1)複数の処理の各々が、少なくとも1つのシステム
    ・リソースにアクセスでき、 (イ)各処理のための上記リソースへのアクセスの許可
    のカウントを保持する各処理毎の局所カウント装置と、 (ロ)すべての処理のための上記リソースへのアクセス
    の許可を保持する大域カウント装置と、(ハ)リソース
    の使用を処理が要求するかもしくは放棄する度に、適切
    な局所カウント装置及び大域カウント装置をこの順番に
    更新する更新論理手段と、 (ニ)上記大域カウント装置をリセットするための装置
    を含む、処理を中止するための出口論理手段とを有する
    多重処理コンピュータ・システムであって、 (ホ)上記更新論理手段はさらに、適切な局所カウント
    装置もしくは大域カウント装置の両方が更新される前に
    、夫々第1及び第2のメモリ装置中に予想局所カウント
    値及び大域カウント値を記憶するための論理手段を有し
    、 (ヘ)上記出口論理装置はさらに、第1のメモリ装置の
    内容を適切な局所カウント装置の内容と比較し、第2の
    メモリ装置の内容を大域カウント装置の内容と比較し、
    比較の結果に依存して、局所カウント装置と大域カウン
    ト装置の更新間で処理が中止されたかどうかを判断する
    ための論理手段を有することを特徴とする、 多重処理コンピュータ・システム。
  2. (2)単一の処理によってアクセス可能な局所変数及び
    複数の処理によってアクセス可能であり、局所変数に依
    存する大域変数がこの順番に更新され、処理が局所変数
    と大域変数の更新間で中止される可能のある多重処理コ
    ンピュータ・システム中のリソースの完全性を保持する
    方法であって、(イ)第1のメモリ装置中に局所変数の
    予想値を、第2のメモリ装置中に大域変数の予想値を記
    憶し、(ロ)局所変数及び大域変数をこの順番に更新し
    、(ハ)上記処理が中止された時に、該処理が局所及び
    大域変域の更新間で中止されたかどうかを、第1のメモ
    リ装置の内容と局所変数の内容とを比較し、第2のメモ
    リ装置の内容と大域変数の内容とを比較することによっ
    て決定し、もし必要ならば、回復処置を行って、変数の
    値を修正する段階を有する、 多重処理コンピュータ・システム中のリソースの完全性
    を保持する方法。
JP1211539A 1988-10-28 1989-08-18 多重処理コンピュータ・システム及び方法 Expired - Lifetime JPH0675252B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP88310187.5 1988-10-28
EP88310187A EP0365728B1 (en) 1988-10-28 1988-10-28 Resource access for a multiprocessing computer system

Publications (2)

Publication Number Publication Date
JPH0383154A true JPH0383154A (ja) 1991-04-09
JPH0675252B2 JPH0675252B2 (ja) 1994-09-21

Family

ID=8200266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1211539A Expired - Lifetime JPH0675252B2 (ja) 1988-10-28 1989-08-18 多重処理コンピュータ・システム及び方法

Country Status (4)

Country Link
US (1) US5138713A (ja)
EP (1) EP0365728B1 (ja)
JP (1) JPH0675252B2 (ja)
DE (1) DE3886756T2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0318935A (ja) * 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
GB9123264D0 (en) * 1991-11-01 1991-12-18 Int Computers Ltd Semaphone arrangement for a data processing system
EP0559222A2 (en) * 1992-03-06 1993-09-08 Microsoft Corporation Improved method for loading programs
US5375229A (en) * 1992-04-13 1994-12-20 Motorola, Inc. System and method for adding a control function to a semiconductor equipment system
US5394545A (en) * 1992-08-07 1995-02-28 International Business Machines Corporation System for determination and display of memory used, dedicated, and shared by a process at a particular time
JP2963298B2 (ja) * 1993-03-26 1999-10-18 富士通株式会社 二重化共有メモリにおける排他制御命令のリカバリ方法および計算機システム
US5586318A (en) * 1993-12-23 1996-12-17 Microsoft Corporation Method and system for managing ownership of a released synchronization mechanism
US6519623B1 (en) * 1996-10-31 2003-02-11 International Business Machines Corporation Generic semaphore for concurrent access by multiple operating systems
FI106988B (fi) * 1997-05-16 2001-05-15 Nokia Networks Oy Palveluriippumattomien rakenneosien toteutus
DE19728971C2 (de) * 1997-07-07 2003-10-09 Bosch Gmbh Robert Datenverarbeitungsvorrichtung und -verfahren
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
JP2002520686A (ja) * 1998-07-03 2002-07-09 シーメンス アクチエンゲゼルシヤフト 全体プロセスに対する制御を設計するための方法および装置
US6366946B1 (en) * 1998-12-16 2002-04-02 Microsoft Corporation Critical code processing management
GB0002174D0 (en) 2000-01-31 2000-03-22 Sgs Thomson Microelectronics Design flow checker
US6430659B1 (en) * 2000-09-22 2002-08-06 International Business Machines Corporation Method and means for increasing performance of multiprocessor computer systems by reducing accesses to global memory locations through the use of quanta
DE10056046A1 (de) * 2000-11-11 2002-05-23 Bosch Gmbh Robert Verfahren zur Realisierung einer Intertask-Kommunikation in einem Multitasking-Betriebssystem
US6966062B2 (en) * 2001-04-20 2005-11-15 International Business Machines Corporation Method and apparatus for allocating use of an access device between host and guest operating systems
US10834109B2 (en) 2014-12-23 2020-11-10 Mcafee, Llc Determining a reputation for a process
CN109783230A (zh) * 2018-12-17 2019-05-21 平安普惠企业管理有限公司 基于信号量的流量控制方法、装置、计算机设备和存储介质
US11048549B2 (en) * 2019-04-04 2021-06-29 Google Llc Transferral of process state and/or components in computing environments

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS605024B2 (ja) * 1979-09-04 1985-02-07 ファナック株式会社 情報処理方式
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4860228A (en) * 1987-02-24 1989-08-22 Motorola, Inc. Non-volatile memory incremental counting system
US4922456A (en) * 1988-04-29 1990-05-01 Scientific-Atlanta, Inc. Method of reducing wearout in a non-volatile memory with double buffer

Also Published As

Publication number Publication date
EP0365728B1 (en) 1993-12-29
DE3886756D1 (de) 1994-02-10
EP0365728A1 (en) 1990-05-02
DE3886756T2 (de) 1994-06-23
US5138713A (en) 1992-08-11
JPH0675252B2 (ja) 1994-09-21

Similar Documents

Publication Publication Date Title
JPH0383154A (ja) 多重処理コンピュータ・システム及び方法
US8468526B2 (en) Concurrent thread execution using user-level asynchronous signaling
US7188344B1 (en) Architecture for a read/write thread lock
US5446862A (en) System and method for granting or preventing atomic or nonatomic memory access requests to shared memory regions
US4584644A (en) Method of controlling use of resources in a data processing system by at least two processes
US5742785A (en) Posting multiple reservations with a conditional store atomic operations in a multiprocessing environment
JP3054775B2 (ja) コンピュータシステム、および多重プロセッサシステム最小単位動作の実行方法
US20020138483A1 (en) Selective pessimistic locking for a concurrently updateable database
JPH0296849A (ja) Tpキューイングシステムにおける正確に1回のセマンティクス
US5893157A (en) Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
JPH01188965A (ja) データ処理方法
JPH0324696B2 (ja)
US5136714A (en) Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US7689788B2 (en) System and method for executing transactions
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US6728846B2 (en) Method and data processing system for performing atomic multiple word writes
US5522029A (en) Fault tolerant rendezvous and semaphore for multiple parallel processors
JP2005063435A (ja) ソフトウェアフォールトを封じ込める方法およびシステム
US5615374A (en) Lock control method for resource
US20090307442A1 (en) Memory Access Control
JP3598282B2 (ja) コンピュータ、その制御方法及びその制御方法を記録した記録媒体
KR100470555B1 (ko) 컴퓨터 자원의 로크방법 및 장치
EP0297895B1 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPS62173535A (ja) 共有資源のアクセス制御方式
JPH06332789A (ja) 並列処理装置及び共有データのロック方法