JP2551563B2 - 不変メモリ装置 - Google Patents

不変メモリ装置

Info

Publication number
JP2551563B2
JP2551563B2 JP61211837A JP21183786A JP2551563B2 JP 2551563 B2 JP2551563 B2 JP 2551563B2 JP 61211837 A JP61211837 A JP 61211837A JP 21183786 A JP21183786 A JP 21183786A JP 2551563 B2 JP2551563 B2 JP 2551563B2
Authority
JP
Japan
Prior art keywords
memory
objects
disk
virtual
immutable
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 - Fee Related
Application number
JP61211837A
Other languages
English (en)
Other versions
JPS62123537A (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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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
Priority claimed from US06/774,828 external-priority patent/US4814971A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPS62123537A publication Critical patent/JPS62123537A/ja
Application granted granted Critical
Publication of JP2551563B2 publication Critical patent/JP2551563B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 この発明はデイジタル・コンピュータ装置、特に回復
能力を持つ仮想メモリに関するものである。
将来、現技術水準の記号計算機械のユーザが大規模
な、知識ベースのアプリケーシヨンを開発するにつれ
て、彼らは大きく複雑な知識/データ・ベースを支援す
る際に記憶マネージメントの問題から生じる大きな問題
にぶつかると思われる。語記憶は仮想メモ、フアイル・
システムズおよびデータベースを包含するように広い意
味で使用される。問題は主として、テキサス・インスツ
ルメンツのイクススプローラ(EXPLORER)およびシンボ
リツクス3670のような現技術水準の記号コンピュータを
含む今日のコンピユータが2つの全く異なる組織に沿つ
て記憶を管理する二分法に帰する。これらの組織は計算
記憶装置および長期記憶装置と呼ぶことができる。
記号/人工知能(AI)処理においては知識の表現は、
プログラムで正しく使用された場合は「物知り」な行動
に通じるデータ構造および解釈手順の組合せである。AI
システムの目標は対象物の知識、質問に対する応答、お
よびロボツト装置の操作といつたような認識タスクにつ
いて説明することができる。知識表現法を公式化する際
に最も重要な考慮は、知識の究極的な使用である。記号
/AIプログラムにおける知識の実際の使用は、(1)よ
り多くの知識を入手すること、(2)手元の問題に関す
る知識ベースから事実を検索すること、および(3)解
決を追求してこれらの事実を推論すること、の3段階を
意味する。状態−スペース表現、論理手順表現、セマン
テイツク・ネツト、プロダクシヨン・システム、および
フレームのような多くの異なる知識表現法が知識表現集
団によつて開発されている。知識表現法の選択は、アプ
リケーシヨン要求に大きく左右される。
どんな知識表現法が使用されても、ある十分に低いレ
ベルの表現では、知識はポインタによつて相互接続され
たメモリ対象物によつて表わされる。これらの対象物
は、対象物を接続するポインタの相互接続グラフによつ
て定められる構造を示す。記号/AIアプリケーシヨンに
より作られかつ操作される対象物の構造は通常極めて高
価で複雑である。さらに、対象物の情報および対象物の
構造はいずれも、急速な変化を受けることがある。
記号計算においては、知識ベースを表わす対象物は計
算記憶装置内で作られかつ操作される。その名の示す通
り、計算記憶装置はコンピユータ装置のプロセツサによ
つて操作すべき対象物を含む。これらの対象物は数字、
ストリング、ベクトル、アレイ、レコード、連結リス
ト、命令、手順などであることができる。これらの対象
物は大小いずれも、名前によつて通常識別されている。
対象物の名前は手順パラメータとして進められ、手順結
果として戻され、そして他の対象物に構成要素として記
憶される便利なハンドルすなわちポインタとして働く。
対象物の名前は普通、その仮想アドレスとして実現され
る。プログラマはLISPおよびプロログ(Prolog)のよう
なプログラミング言語を用いることによつて対象物を作
りかつ操作する。
普通、計算記憶装置はメモリの階層、すなわちページ
ングを支援する低速、大形のデイスクによつて支持され
る高速、小形の半導半主メモリから成る仮想メモリとし
て表現される。計算記憶装置にある対象物は、プロセツ
サがしばしば基本のプロセツサ・サイクル時間に一致す
る速度で、そのアドレス(現実または仮想の)を定める
ことによつてそれらを直接呼び出し得るので、極めて高
速で呼び出される。これらの対象物に記憶される情報
も、それがプロセツサ・アーキテクチヤにより定められ
た形式で記憶されるので極めて有効に処理・操作され、
したがつてプロセツサ・ハードウエアまたはマイクロコ
ードによつて直接解釈することができる。
しばしば、計算記憶装置に記憶される情は極めて高価
な構造を有し、すなわち計算記憶装置内の対象物は高価
で複雑な構造のポインタによつて手元のアプリケーシヨ
ンの要求に合致するように相互接続されている。これら
の対象物の構造はしはしば動的である。しかし、計算記
憶装置にある対象物は、それらを作るプログラムの寿命
時間を越えるものはない。プログラムが終わつたり装置
が停止したり、破壊が起こるとき、これらの対象物は存
在しなくなる。したがつて、それらは短命すなわち過渡
対象物と呼ばれる。これらの対象物をそれらを作つたプ
ログラムの寿命時間を越えて延命させるには、すなわち
それらを長命すなわち不変にするには、それらを他の記
憶組織、すなわち長期記憶装置に移さなければならな
い。
その名の示す通り、長期記憶装置は情報を長期間保持
するのに用いられる。それは普通、デイスク内在フアイ
ル装置で実現される。デイスク・フアイル装置は計算記
憶装置のページング・デイスクと論理的に異なるが、い
ずれも物理デイスク媒体を使用する。長期記憶装置に記
憶される情報の例は、フアイル、デイレクトリ、ライブ
ラリ、およびデータベースである。長期記憶装置は情報
を長期間確実な形で保持する。情報を計算記憶装置に作
るプログラムの寿命時間を越えその情報を記憶するため
には、情報はまず長期間記憶装置によつて予想される表
現に移し換え、次にそれをフアイル入/出力(I/O)操
作またはデータバース操作を用いて長期保持用に転送す
る必要がある。
長期記憶装置によつて支持される対象物の形式は極め
て制限的(本質的にはフアイル、デイレクトリ、比較式
など)であり、多くのアプリケーシヨンのデータ構造要
求と合致することがある。長期記憶装置にある情報の表
現は全く「フラツト」である。例えば、フアイルはASCI
I文字のような、ビツトまたはバイトの順次ストリーム
から成ることがある。フアイルまたは比較式は通常、長
期記憶装置内で手順対象物も他の対象物に対するポイン
タも保持することができない。これらの対象物にある情
報がプロセツサによつて直接アドレスされたり、直接処
理されたりすることができないのは、その表現がプロセ
ツサ・アーキテクチヤと両立しないからである。情報
は、それが計算記憶装置によつて予想される表現に移し
換えられて次にそれを処理用に転送されてから、はじめ
て処理することが可能である。これらの対象物とフアイ
ル収集との間の移し換えに要する変換費も莫大である。
計算記憶装置と長期記憶装置との間の対象物の変換に
要すると時間費用に加えて、情報を仮想メモリとフアイ
ル装置において基本的に複式化する追加の空間費用も存
在する。仮想メモリとして通常実現される計算記憶装置
はページング・デイスク記憶装置の存在を隠し、他方で
は、長期記憶装置はデイスクの存在をプログラマーに明
かにするという外見的な逆説がある。かくてプラグラマ
ーは、計算記憶装置と長期記憶装置との間でアドレス指
定、機能、および保持の諸特性の差がプロセツサ・アー
キテクチヤのレベルを越えて見られる。
FORTRAN、パスカル、LISP、およびプロログのような
プログラミング言語は記憶組織の二分法を強く反映して
いる。これらの言語の明細書はほとんど常に、計算記憶
対象物と全く異なる特性を持つ長期記憶対象物(フアイ
ル)を想定する。その結果、これらのプログラミング言
語は計算記憶装置で情報を処理し得るようには、長期記
憶装置で情報を直接処理し得ない。この二分法は全装置
を通じて進行し、ユーザから隠されることはできない。
それはプログラミング言語の対象物に用いた名とフアイ
ルおよびデータバスに用いた名との差を明らかにする。
二分法は、長期記憶装置にある情報を処理するために
発生した異なる組の言語をも明らかにする。これらの言
語には、なかんずく、フアイルのオペレーシヨンを実行
する責任があるUNIXシエル言語およびIBM TSO指令言語
のような各種のいわゆる指令言語が含まれている。不変
対象物で作動する他の種類の言語は、スクエア(squar
e)、シークエル(Sequel)、およびクエル(Quel)の
ようないろいろなデータベース言語である。これらの言
語はデータベース対象物を定め、かつ質問を行つてそれ
らを更新する。普通、かかる言語はしばしば解釈され
て、解釈実行中に編集実行の効率をも享受する一段とな
じみ深いプログラミング言語に比べて本質的に制限的か
つ秘密的である。
その結果、プログラマーは一様でない記憶モデルに気
づくとともに、アドレス機構、機能および保持の所望特
性に基づいて、情報を記憶媒体の中で明白に移動させな
ければならない。もう1つの結果は、一様でない記憶モ
デルは、プログラム中のインターフエースの潜在形式を
増加するので、プログラミングの一般性およびモジユー
ル性に対する障害である。指令言語、プログラミング言
語、デバギツング言語、および編集言語などのようなモ
ード依存のプログラミング言語の混合は、装置との高速
かつ有効な相互作用を困難にする。
過渡および不変対象物間の移換は、フアイル装置また
はデータ・ベス管理装置(DBMS)によつて一部、各プロ
グラムに書かれかつ含まれるべき明確なユーザ翻訳コー
ドによつて一部行われるのが普通である。このタスクは
空間と時間の両不利益を課すとともに、装置の性能を低
下させる。プログラマーはしばしば、2つの異質の世界
すなわちプログラミング言語の世界とDBMSの世界をコピ
ーする追加の負担を変換したり管理することの理解困難
によつて、彼のタスクから関心をそらされる。
大きなデータ集中プログラムでは、通常おびただしい
量のコードがあり、これはフアイルまたはデータベース
と計算記憶装置との間のデータ転送に関して、全体の30
%にも当るほど高いと推定されている。過渡および不変
対象物の世界の間で変換を行うコードによつて多大の空
間と時間が浪費され、これは性能悪化の衝撃を持つ。こ
れが不満足であるのは、変換コードを開発・実行するに
要する努力と時間が莫大であり、またアプリケーシヨン
・プログラムの品質および信頼性が変換によつてそこな
われるかもしれないからである。記憶装置の二分法は、
オペレーテイング・システム設計およびDBMS設計におい
て何倍もの努力を要求する。
記憶装置二分法によつて作られたこれらの問題は、記
号/AI計算についてさらに著しく複雑化される。原行の
記号機械による工程は単一アドレス空間を占め、すなわ
ち終始工程アドレス空間は存在しない。さらに、アドレ
ス空間はセグメントにされず、単一の直線アドレス空間
である。計算記憶装置のかかるモデルは多重工程におけ
る対象物の容易、有効かつ柔軟なシエリングを可能にす
る。どんな対象物でも、任意な他の対象物に対するポイ
ンタを保持するだけでその対象物を指すことができる
(通常、指されている対象物の仮想アドレスとして実現
される)。ポインタによつて相互接続される対象物の複
合構造は自由に作られかつ操作される。対象物のかかる
強力な構造は、これらの記号コンピユータで利用し得る
高集積および強力ソフトウエア開発にとつて極めて重要
である。
残念ながら、現行の記号コンピユータは今日の在来形
コンピユータと同様、計算記憶装置と長期記憶装置とを
明確に区別している。記号コンピユータにおいて、1つ
の対象物をフアイル装置に移すことによつてそれを不変
にすることはあまり有意義ではなく、すべての出て行く
ポインタを辿ることによつて対象物から到達可能なすべ
ての対象物は単体として不変にされる必要があり、また
対象物を指すすべての入つて来るポインタは「正しく注
意」しなければならない。しかしかかる単体は極めて大
形で、それをフアイル装置に移すことは複雑かつ高価な
操作となる。したがつて、フアイル装置から計算記憶装
置への逆移動は同じく複雑かつ高価となる。
多くの現行プログラミング法、特に記号/AI集団で実
施されているようなものは、手とデータとを区別せず、
すなわち手順は即データであり、これはそれ自体活性で
ある。処理される情報のボデーが成長して一段と活性に
なるにつれて、高価なポインタ構造物と相互接続される
複合対象物から成るプログラム環境は長期間生き残るこ
とが重要となる。かかる高価な環境を長期保存のために
今日のフアイル装置またはデータベースに移換すること
は、空間と時間の両面で多大の交換費を伴う。
かくて、記号/AIアプリケーシヨンの計算および長期
記憶装置における対象物の表現には多大の差がある。計
算記憶装置の対象物の構造が高価であるほど、差は大き
くかつこれら2つの表現間で変換を行うに要する努力は
大きくなる。記号およびAIアプリケーシヨンを実現する
には、多数の対象物について検索、質問、推論、論証、
演繹、および計算が実行されるますます複雑な複合構造
物を使用するものと思われる。予想される通り、大きな
知識集中のアプリケーシヨンでは、長期の対象物を計算
の対象物に移し換える費用は莫大である。
知識ベースのアプリケーシヨンを容易にする多くの研
究者によつて取られる現行の方法は、記号コンピユータ
をデータベース機械に接続することに基づいている。こ
の方法は不変メモリに基づいていないので、それは記憶
装置の二分法の利益を得られず、手順およびデータの寿
命時間や互換性の利益も取り扱わない。記号/AIアプリ
ケーシヨンとデータベース機械によつて支援されるリギ
ツト・データ・モデルとのデータ・モデル要求には不一
致があると思われる。したがつて、かかる方法は専門デ
ータベース方式には不適当と思われる。これらの制限は
同じ分野の他の研究者によつて分担される。
不変メモリ法は根本的に異なる基礎に基づく。不変メ
モリに関する書物はキルバーン(Kilburn)が単レベル
記憶装置を提案した1962年にさかのぼり、それによると
すべてのプログラムおよびデータは1つの文脈で命名さ
れている(1926年4月発行の、IREトランザクシヨン・
エレクトロニツク・コンピユータの第EC−11巻、第2号
に記載されたキルバーン手記による「1レベル記憶装
置」。)サルツアー(Saltzer)は直接呼出記憶装置ア
ーキテクチヤを提案したが、それによるとすべての対象
物を捕えて解釈するのにただ1つの文脈で事が足りる。
(1978年、ニユーヨークのスプリンガー・バーラグ発行
の、オペレーテイング・システムズ、アドバンスド・コ
ース第99頁に記載されたR.ベイヤーらの編集したJ.H.サ
ルツアー手記の「対象物の命名と捕捉」。) トレーガー(Traiger)はデータベースの仮想アドレ
ス空間への移換を提案した。(1982年10発行の、ACMオ
ペレーテイング・システムズ・リビユー、第26〜48頁記
載のI.L.トレーガ手記の「データベース・システムの仮
想メモリ・マネージメント」。)FORTRANおよびCOBOLの
世界の簡単なデータ・モデル作りの要求がこれらの提案
の生産化に水をさしたと思われるが、その理由はそれら
が在来の仮想メモリおよびデータベース・システムより
も実現がはるかに困難だからである。
MIT MULTICSおよびIBMシステム/38は記憶装置二分法
を整理しようとした。しかし両者は記号計算に大きな欠
点を持つており、ILSP機械と違つて各工程は自らのアド
レス空間を持つている。すべての不変情報フアイル内に
ある。工程のアドレス空間に移されたフアイルは、異な
る工程のアドレス空間に移されたフアイルに対する機械
ポインタを保持することができない。かくて、異なる工
程の中での情報の分担はLISP機械よりも困難である。さ
らに、記号言語を支援するのに必要な自動不要情報整理
の機能がない。
最近、多くの研究者はホスト・オペレーテイング・シ
ステムによつて供給されるフアイル・システムの頂上部
に不変対象物を実現することを提案している。不変およ
び過渡対象物は依然として2つの別な記憶組織に存在す
るが、不変対象物は数字、ベクトル、アレイ、レコー
ド、またはリストのようなどんな一般形でもよく、ALGO
LやLISPのような共通プログラミング言語によつて操作
することができる。しかし、不変対象物を呼び出すに
は、それらのポインタを数度の機械サイクルにわたつて
ソフトウエアによりデリフアレンス(dereference)さ
れなければならないので、多大の費用がかかる。
2レベル・メモリ記憶装置を持つシステムは、電力故
障は、ハードウエア故障、ソフトウエアの誤りなど、1
群の「装置破壊」と考えられるものから容易に回復する
ことができる。装置破壊後、どんなハードウエア問題で
も修理され、ソフトウエアは長期記憶装置から再ロード
される。破壊の時点で仮想メモリに存在したすべてのデ
ータおよび手順は廃棄され、装置は再始動され、フアイ
ルまたはDBMSに記憶されている項目は妥当と考えられ
る。
大形の一様メモリを実現する装置は、特に装置破壊を
受けやすい。不変対象物は仮想メモリに記憶されるの
で、破壊によつて悪化されることがある。特定の不変対
象物の最新型はページング・デイスクに記憶されたり、
されなかつたりする。大形の対象物の現行値は一部デイ
スク上にあり、さらに一部はRAM内にある。かくて、デ
イスクに記憶される値は当てにすることはできず、また
破壊後に装置を再ロードして再始動するのに使用するこ
とはできない。
かくて、破壊後に仮想メモリを回復したい場合は、先
行技術のフアイルおよびDBMS装置は使用することができ
ない。仮想メモリの状態を保存するある機構を工夫する
ことが必要である。
多くのアプリケーシヨンにおいて、最新の作業だけの
損失が有害ではなく、わずかな努力の重複で事足りる。
しかし多くの他のアプリケーシヨンでは、作業の損失は
許容されないことがある。かかるアプリケーシヨンの例
としては、バンキング・システム、オフイス・オートメ
ーシヨン・システム、航空路座席予約システム、データ
ベース・システムなどがある。例えば、銀行の顧客が10
0ドル預金した通知を受けると、銀行コンピユータ装置
は次の装置破壊がある場合でも、銀行残高が100ドルの
増加を表わすことを確認しなければならない。かかるア
プリケーシヨンでは、対象物は極めて高い確率で装置破
壊から生き残らなければならない。かかる対象物を弾性
対象物と呼ぶことがある。
MITにおけるリスコフ(Liskov)教授のグループは弾
性、原子データ形の具体化に没頭していた。分布した計
算環境における協力と故障のある中でのデータの一致
は、リスコフの作業における主関心事である。それらの
計算のモデルは、多数の組込み原子対象物を供給すると
ともにユーザ規定の原子対象物の実現を支援する同グル
ープが開発中の新しい言語アーガス(Argus)に基づい
ている。
アーガスでは、アプリケーシヨンはガーデイアンと呼
ばれる1個以上のモジユールから実現される。各ガーデ
イアンはあるデータ対象物とこれらの対象物を操作する
ある工程とかる成る。各ガーデイアンは分布された装置
内の単一物理ノードにあるが、ノードはいくつかのガー
デイアンを支援することができる。ガーデイアンは、所
在のそれぞれのノードの破壊および他のハードウエア故
障から高い確率で生き残り、したがつて弾性である。ガ
ーデイアンのノードが破壊するとき、ガーデイアン内の
すべての工程は失われるが、ガーデイアンの安定状態と
いわれるガーデイアンの対象物の部分集合は生き残る。
破壊後、ガーデイアンはその安定状態を無傷のまま回復
し、次にそれはその対象物の残りを回復する特殊回復工
程を実行する。弾性は、ガーデイアンの安定対象物を安
定記憶装置に定期的にコピーすることによつて得られ
る。かくて、ガーデイアンの各安定対象物は、安定記憶
に補助コピーを保有する。新しい補助コピーは、委託さ
れたトランザクシヨンによつて変正されるすべての他の
安定対象物用の安定記憶装置に書き込まれる必要があ
る。
アーガスによつて操作される弾性対象物は、それらが
1つの安定記憶装置ではなく不変メモリで具体化される
ならば、より大きな空間高率で具体化されかつより高速
で呼び出される。より大きな空間効率が達成されるの
は、すべての対象物が1つの仮想アドレス空間にありか
つ対象物の別な補助コピーが存在しないからである。よ
り大きな速度効率が達成されるのは、トランザクシヨン
委託のときにすべての安定対象物をデイアスに記憶する
追加のデイスクI/Oオペレーシヨンが存在しないからで
ある。やり直しログを外部やり直しログに書き出すだけ
で事が足りる。
フアイルおよびデータベース装置は弾性対象物の頂上
部のアプリケーシヨンとして構成される。不変メモリは
複合対象物の形式および構造を支援することができるの
で、弾性対象物も同じ利益を享受する。したがつて、フ
アイルや比較式は自由構造を含むことができる。記号計
算に全く共通する循環構造を含む対象物の複合構造は支
援される。
弾性対象物の頂上部にフアイルおよびデータベースを
作る本発明の方法は大きな柔軟性と象徴的な力を備え、
かつそれは在来のフアイル装置やデータベースの最上部
に弾性対象物を具体化する現行の方法と対照的である。
現行の方法は極めて硬直的であり、それは自由な形の対
象物も複合構造物も支援することができない。その上、
本発明の方法は在来のデータベス方式よりも容易かつ有
効と思われ、すなわちフアイル・バツフアや明確なI/O
オペレーシヨンは不要である。破壊前にトランザクシヨ
ンが委託されると、上述の通り、そのやり直し情報は既
に外部やり直しログに書き込まれた、元通り情報は廃棄
される。したがつて、外部元通りログを維持する必要は
ない。
したがつて、本発明の1つの目的は、記号計算に適し
た記憶モデルを提供することである。本発明の1つの目
的は、一様なメモリの抽象化をユーザに提供する改良さ
れたメモリ装置アーキテクチヤを提供することである。
本発明のもう1つの目的は、かかるメモリのすべてが一
様にアドレス可能であり、かつ別のやり方でユーザによ
つて処理されなければならないその別々な部分が存在し
ないようにすることである。本発明のもう1つの目的
は、かかるメモリが選択された対象物を長期間保持し得
るようにすることである。本発明のもう1つの目的は、
かかるメモリが既存の対象から明確に削除された対象物
まで実際に引用できるようにすることである。本発明の
もう1つの目的は、メモリのアドレス空間に置かれてい
ない別のフアイルやデータベースの存在を必要としない
ことである。
本発明のもう1つの目的は、ハードウエアの故障およ
びソフトウエアの誤りから回復することができる仮想メ
モリを提供することである。本発明のもう1つの目的
は、作業の損失を最小にするためにより早期の、妥当状
態まで回復することができる仮想メモリを提供すること
である。本発明のもう1つの目的は、回復することがで
きる妥当状態を保存する仮想メモリの規則正しいチエツ
クポイントを取る装置を提供することである。本発明の
もう1つの目的は、記号計算に適した一様なメモリ装置
を具体化するのに用いられることができる回復可能な仮
想メモリを提供することである。
本発明のもう1つの目的は、最後のチエツクポイント
状態に続く装置破壊から生き残ることができるメモリ対
象物を支援する仮想メモリ装置を提供することである。
本発明のもう1つの目的は、1つの仮想アドレス空間に
おいてすべてのメモリ対象物を引用する一なメモリ装置
で作動するかかる仮想メモリ装置を提供することであ
る。本発明のもう1つの目的は、最後のチエツクポイン
トが取られてから、ただし装置破壊の前に完成されたト
ランザクシヨンを作り直すことができる装置を提供する
ことである。
したがつて、上記および他の目的を達成するために、
本発明による不変メモリは極めて大きな仮想アドレス空
間に基づいている。すべてのメモリ対象物はこの空間に
置かれている。1つの特殊対象物、すなわち不変ルート
は、どの対象物がそれらを作るプログラムの寿命時間を
越えて保持されるべきかを示す。削除された対象物は墓
石として標示されるが、これらの対象物に対する引用が
目立たないことが確認されるまでは完全に削除されな
い。それはデータ集中の数字やビシネス向きのアプリケ
ーシヨンについても役立つことがある。
電力故障、ハードウエア故障またはソフトウエアの誤
りがあつた場合に装置を回復させるために、チエツクポ
イントは装置の状態について定期的に取られる。これら
のチエツクポイントは標示されてデイスク上に記憶され
る。チエツクポイントと次のチエツクポイントとの間に
作られる変化も記憶され、標示されるが、装置故障の場
合には廃棄される。装置故障があるとき、装置はチエツ
クポイント状態に戻され、処理が正常な方法で再開され
る。
弾性でなければならない対象物の変化が作られるとき
は、元通りおよびやり直しログはかかる変化を反映す
る。装置破壊の場合は、メモリ装置はチエツクポイント
状態まで回復される。最後のチエツクポイントが取られ
から、しかも破壊前に完了されたトランザクシヨンは、
元通りログによつて作り直される。破壊の時点で完了さ
れなかつたが、チエツクポイントの状態で表わされたト
ランザクシヨンの作用は元通にされる。
この回復方式は、すべてのメモリ対象物が空間内に置
かれている一様メモリと共に使用するのに特に適してい
る。特殊な対象物である不変ルートは、どの対象物がそ
れらを作るプログラムの寿命時間を越えて保持されるべ
きかを示す。削除された対象物は墓石として標示される
が、これらの対象物に対する引用が目立たないことが確
認されるまでは完全には削除されない。かわるメモリ装
置は記号コンピユータに用いるのに特に適している。
本発明を特徴づける新しい面は特許請求の範囲によつ
て定められている。本発明の上記および他の目的ならび
に利点は以下において明らかになると思うが、説明の目
的で、だが制限のない、好適な実施態様が図面に示され
ている。
仮想メモリ用の本回復装置は、まず説明する単レベル
不変メモリの実施について説明される。当業者にとつて
明らかな通り、本回復可能仮想メモリは、フアイルまた
はDBMSをも利用するような他の仮想メモリと共に使用す
ることができる。
第1図は別の計算および長期記憶装置を持つ先行技術
のコンピユータ・アーキテクチヤを示す。中央プロセツ
サ10は計算記憶装置12および長期記憶装置14を備えてい
る。長期記憶装置14はフアイル、データベースなどの保
持用であり、磁気テープによつて補助される1個以上の
デイスクとして通常実現されている。計算記憶装置12は
仮想メモリであり、高速半導体RAMメモリ16およびペー
ジング・デイスク18として通常実現されている。計算記
憶装置12は極めて大形のRAMを中央プロセツサに与え
る。実際には半導体メモリ16ではない仮想メモリのアド
レスは、ページング・デイスク18の上に置かれ、それら
が中央プロセツサ10によつて参照されるときに半導体メ
モリ16にロードされる。
第2図は本発明によるアーキテクチヤを持つコンピユ
ータ装置を示す。中央プロセツサ20(CPU)は1個の不
変メモリ22のみを備えている。メモリ22は、ページング
・デイスク26によつて補助される半導体RAM24を持つ極
めて大形の仮想メモリから成ることが望ましい。CPU20
は、テキサス・インスツルメンツ社のイクスプロータ
(EXPLORER)記号プロセツサのような既存の装置である
ことができる。仮想メモリ22はCPU20に対して、直線ア
ドレス空間を持つ不変、すなわち単レベルのメモリ装置
を与える。
不変メモリの抽象化は、本発明による不変メモリを実
現するのに必要な記憶装置アーキテクチヤを形成する。
不変メモリ装置は、プロセツサがポインタによつて相互
接続されるメモリの1組の可変サイズ・ブロツク、すな
わち対象としてメモリを見る、不変メモリの抽象化に基
づく。メモリ装置は大きな知識ベースの応用を支援する
極めて大きなアドレス空間を持つ。不変メモリ装置は、
数量およびサイズが極めて大きいことがある「フアイ
ル」を含む不変対象物を記憶するものと思われる。した
がつて、下にあるアドレス空間のサイズは実際の装置を
支援するだけ大きくなければならない。しかし不変メモ
リの概念はアドレス空間の実際のサイズに左右されな
い。
前述の通り、記号コンピユータ内のあらゆる工程は同
じ単一の、直線アドレス空間を共有する。これは、ポイ
ンタにより相関される対象物の高価で複雑な構造を作ら
せかつ操作させることになる。ポインタによつて相互接
続されるメモリ対象物の構造はグラフを形成する。ポイ
ンタで相互接続されるメモリ対象物は目標対象物の仮想
アドレスとして実現される。
第3図に示される通り、不変対象物を定義する不変ル
ート110と呼ばれる不変メモリ抽象化において対象物が
区別される。
不変ルート110は、固定仮想アドレスおよびデイスク
位置に置かれる区別された対象物である。不変ルートの
過渡閉止にあり、すなわち後続のポインタにより不変ル
ートから達し得る、すべての対象物は不変である。不変
ルートは装置の停止や破壊を救う。普通、不変ルートは
不変対象物などの他の表や構造物を指す表に対するポイ
ンタを含むことがある。かくて、不変ルートはすべての
不変対象物を固定させる。
対象物の不変属性は、その対象物がそれを作つたプロ
グラムが終つた後でも不要情報として収集されないこと
によつてのみ認められる。これは、その対象物を不変ル
ートの過渡閉止にある対象物の組の一部材とすることに
よつて容易に配列することができる。記憶媒体の特性で
はなく不変ルートにのみ基づく不変性は、対象物の不変
属性をその形式や他の対象物との関係から完全に切り離
すことができる。数量、特性、一覧表、手順、環境など
は、それらが仮想メモリにある間は不変対象物であるこ
とができる。
したがつて、不変対象物としての手順の呼出しは、過
渡対象物としてのその呼出しと同様に容易かつ有効であ
る。実際には機械の見地から、過渡および不変の対象物
は区別できない。ユーザの見地からは、過渡および不変
対象物を別々に処理する必要はない。すべてのユーザは
対象物を不変にすることを知る必要があり、それは不変
ルートの過渡閉止にあるべきである。
プロセツサは多くの「レジスタ」(101〜108が図示さ
れている)を含む。プロセツサはメモリ対象物を呼び出
し、すなわちそのレジスタのどれでもが対象物に対する
ポインタを保持するならば、その個別語を読み書きする
ことができる。本明細書における語レジスタは一般的な
意味で使用され、すなわちそれはプロセツサ内のハード
ウエア・レジスタすなわちスクラツチ・パツド・メモリ
であることができる。これらのレジスタはメモリ装置の
過渡ルート109を形成する。それらは装置の停止や破壊
を救わない。過渡ルートの過渡閉止内にあるが、不変ル
ートの過渡閉止内にない対象物はすべて、過渡状態と呼
ばれる。残りの対象物はすべて不要情報であり、不要情
報整理器によつて回復要求される。
第3図はメモリ装置のスナツプ写真例を示し、その中
の対象物を分類している。対象物間の矢印およびCPUレ
ジスタから対象物までの矢印はポインタを表わす。ポイ
ンアは常に指された対象物の始めを示す。かくて、例え
ば対象物124を指す4個のポインタはすべて同じ値を示
し、ブロツク124の始めを指す。不変ルート110および過
渡ルート109の過渡閉止を求めることによつて、対象物1
26、129および130が過渡体であり、対象物120、121、12
2、123、124、125および127が不変体であり、対象物128
と131が不要情報であることが分かる。
各メモリ対象物は1個以上のメモリ語、すなわちセル
から成り、これらは連続仮想アドレスに記憶される。プ
ロセツサ20は、そのレジスタのどれでもが対象物のポイ
ンタを保有するならば、メモリ対象物を呼び出すことが
でき、すなわちその個々の語を読み書きすることができ
る。例えば個個のセルを呼び出す1つの方法は次の通り
である。レジスタ101がメモリ対象物123のポインタを含
むならば、プロセツサ20はリード(1,3)の命令を実行
することによつてメモリ対象物123の第3語を読み出す
ことができるが、ただし「1」はプロセツサ・レジスタ
101を示し、「3」はレジスタ101によつて指されたメモ
リ対象物123の第3語を示す。レジスタ101の内容は
「3」に追加されて、読み出すべき語の仮想アドレスを
作る。同様に、プロセツサ20はライト(1,4)のデータ
命令を実行することによつてメモリ対象物123の第4語
のデータを書き込むことができる。プロセツサ20は論理
アドレスによつてのみメモリ対象物を呼び出すことがで
き、論理アドレスは1対(i,j)から成るが、ただし
「i」はプロセツサ・レジスタの識別番号であり、
「j」はプロセツサ・レジスタ「i」によつて指される
対象物の第j語を示す。
不変メモリ抽象化におけるメモリ対象物の表示法は、
数字、ブール、文字、ストリング、LISPCONSセル、アレ
イ、レコード、手順、または環境のようなハイ・レベル
のプログラミング言語で使用される対象物に相当する。
これらの言語レベルの対象物は、ポインタにより相互接
続される1個以上のメモリ対象物を用いて実現すること
ができる。アプリケーシヨン・レベルの対象物は、言語
レベルの対象物を組み合わせることによつて作られる。
対象物の不変特性は、対象物が不変ルート110の過渡
閉止内にあるか否かにもつぱら基づく。対象物の不変属
性は基本表示法である。それは、対象物がそれを作るプ
ログラムの寿命時間を越えて生き残ることができるかど
うかにのみ依存すべきでるある。それは、対象物の形や
対象物が安住する記憶媒物の特性に左右されるべきでは
ない。不変である対象物の非関連群は通常数組存在する
ので、不変ルート110は通常、不変対象物に対して少し
も余計なポインタを含まない対象体をまず指す。過渡ま
たは不変の、どんな対象物でも、多くの記号/AI計算に
所望される無制限の共有を容易にするために任意な他の
対象物を指さすことができる。
不変ルートにのみ基づく対象物の不変性を達成するこ
の機構と対照的に、今日の機械では、在来式でも記号法
でも、対象物はそれが長期記憶装置、すなわちデイスク
記憶装置に記憶されるときのみ不変となる。マルチツク
ス(MULTICS)またはIBM−システム/38でさえ、ある形
の対象物、すなわちフアイルのみが不変となることがで
きるが、手順のような他の形の対象物は不変となること
ができない。
不変ルート110によつて、対象物の不変属性はその対
象物がそれを作つたプログラムの終了後も不要情報とし
て整理されないかどうかにもつぱら左右される。これは
その対象物を不変ルート110の過渡閉止内で対象物の組
の一部材にすることによつて容易に配列することができ
る。
対象物の過渡/不変属性は、必ずしも永久属性ではな
い。対象物は過渡対象物として作られ、次にそれは不変
ルート110の過渡閉止にあることに基づいてのみ不変対
象物となることができ、さらに不変ルート110の過渡閉
止から出ることによつて過渡状態に戻ることができ、以
下同様である。
仮想アドレスとして実行される各ポインタは、メモリ
内でポインタとしてタグ表示される。このタグ表示機構
は、プロセツサがポインタを明示したり、組み立てた
り、作り上げることができないことを保証するのに用い
られる。プロセツサは論理メモリ・ブロツクに関しての
みメモリを呼び出すようにされる。整数、浮動小数点番
号、ストリング、アレイ、一覧表、または終了のような
その形式を示すために、各対象物と組み合わされる追加
のタグ情報が存在することがある。このタグ表示情報
は、特定の対象物の形により定義されなかつたり違法で
ある操作を実行する試みを適当な例外処理ルーチンにト
ラツプさせること、例えばストリング対象物に整数を加
える試みが例外を招くこと、を保証するのに用いられ
る。各メモリ基準ははね返りを検査され、すなわち論理
アドレス(i,j)の「j」はプロセツサ・レジスタ
「i」によつて指される対象物のサイズを越えてはなら
ない。
メモリ装置の性質は、それが不要情報整理されていわ
ゆるぶら下がり基準問題がないことを要求する。不要情
報整理はメモリ空間の有限量において計算を進めること
ができるのに不可欠である。不要情報とすることが立証
されている対象物によつて占められるメモリ空間の回復
要求および再使用のない(すなわち非不要情報から対象
物への目立つたポインタがない)本装置は、メモリを使
い果すと結局休止するようになる。不要情報整理はリア
ル・タイムで自動的に行われることが望ましく、ユーザ
のプロセスと同時にプロセスが実行されることが望まし
い。これは本発明には不要であるが、不要情報整理は真
夜中のような機械の使用されない時間に行うことができ
る。
ぶら下がり基準問題は、明確に削除された対象物のメ
モリ空間がその対象物に対する目立つたポインタがない
ことを立証せずに回復要求される場合に生じる。削除さ
れた対象物によつて占められる空間がかかる立証前に回
復要求される場合は、対象物に対する目立つたポインタ
はからの空間すなわち割り当てられないメモリを指した
り、回復要求された空間があとで新しい対象物に割り当
てられた場合にある不要な対象物を指さすことがある。
削除された対象物に対する目立つたポインタが存在し
ないことの立証は、不要情報整理器内に埋め込まれる。
削除された対象物は、それが削除されるときに墓石とし
て特別に標示される。墓石ブロツクに対する目立つたポ
インタのすべては、不要情報整理器によつて削除され、
次に破壊される。墓石ブロツクのポインタが残つていな
いければ、その空間は自動的に回復要求される。
メモリ装置の完全性の表示法は、ポインタにより相互
接続されるメモリ対象物のグラフに構造の完全性に帰す
る。この表示法により、メモリ装置の完全性が保たれる
のは、それがポインタを作り得ないから、対象物の制限
外の情報は呼び出されず、どんな対象物の形でも不足ま
たは違法な操作は適当な例外処理作用を生じさせ、ぶら
下がり基準問題は存在しない。したがつて、メモリ対象
物のグラフは1つの一致した状態から他の状態への変移
のみを受け、その構造の完全性が保証される。
不変メモリの抽象化が、過渡および不変の両対象物を
等しく容易に、柔軟に、かつ効率的に操作し得るという
その目標を達成するのは、プロセツサ・レジスタによつ
て指されるメモリ対象物の語が等しく容易にかつ高速で
呼び出され、対象物が過渡であろうと不変であると無関
係だからである。したがつて、不変対象物としての手順
の呼出しは、過渡対称物としてのその呼出しと同様に容
易かつ有効である。実際に、機械に関する限り、過渡お
よび不変対象物を処理するのに区別はない。不変メモリ
の抽象化は、単一プログラミング言語からの過渡および
不変対象物の同じ組の柔軟かつ強力な操作を可能にす
る。新しい手順が不変対象物や過渡対象物として要求さ
れることがある。先行技術の装置はどれもこれを行うこ
とはできない。これらの装置では、不変対象物の呼出し
は過渡対象物の呼出しに比べて著しく遅かつたり複雑さ
が多い。
特定の好適実施例の説明は次の通りである。この実施
例は記号コンピユータと共に使用するのに特に適してい
る。この実施例では、40ビツト・アドレスが使用され、
ほぼ1トリリオン(1012)語の記憶が得られる。語のサ
イズは48ビツトである。
第I表はブロツクの構成、およびブロツク内の語、す
なわちセルを示す。第I表に示される通り、語の最下位
ビツトはビツト0であり、最上位ビツトはビツト47であ
る。
ブロツクの第1セルは見出しセルであり、第I表にお
いてラベルHで表わされている。見出しセルは、インデ
ツクス=0を用いて、すなわち論理アドレス(reg.,0)
で呼び出されるが、ただしreg.は上述のCPUレジスタで
ある。特定の実施例では、あるブロツクは記憶空間を保
存するために見出しを持たないことがある。これは例え
ば1語整数の場合である。
見出しセルでは、ビツト<47:44>はメモリ・タグを
含む。第II表に示される通り、いろいろなメモリ・タグ
が指定される。メモリ・タグ<0100>は、これが見出し
セルであることを示す。ビツト<43:40>は、例えばブ
ロツクをアレイまたはLISP CONSセルとし識別するよう
な、ブロツク・レベル特性を示すブロツク・タグを含
む。ビツト<39:34>は追加のブロツク・レベル特性を
示すのに用いられ、拡大ブロツク・タグとして働く。ビ
ツト<33:28>は不要情報整理機構がその整理に関する
所要情報をすべて保持するのに用いられる。ビツト<2
7:0>はこの特定ブロツクのブロツク・サイズを示す。
説明された見出し構造では、ブロツクは見出しセルを含
み228語の最大長さを有することがある。
対象物の見出しセルの仮想アドレスは、対象物のポイ
ンタを形成する。CPUレジスタ保持されようと、他の対
象物の保持されようと、すべてのポインタは見出しセル
の仮想アドレスを指さなければならない。上述の通り、
対象物内のセルの残りは見出しセルからのインデツクス
作用によつて呼び出される。
第I表において、ブロツクのセルはU1、U2、−−−U
n-1でラベルされている。値「n」は、見出しセルを含
むブロツク内のセルの数である。各セルはビツト<47:4
4>のメモリ・タグ、ビツト<43:40>のCPUタグ、およ
びビツト<39:0>の「データ」を持つ。データ・フイー
ドは数字や文字、命令、または他の対象物に対するポイ
ンタといつたようなデータを含むことがある。セルのデ
ータ部分における値の解釈は、メモリ・タグ部分の値に
よつて決定される。
セル内のデータが実際に、数字と文字のようなデータ
として通常考えられるものであるならば、CPUタグはセ
ル内のデータの形式を表示する。代表的なデータ形式は
整数、文字、ブーリン、および実数である。CPUタグ
は、処理の間にセルの妥当相他を決定するCPU20によつ
て使用される。CPUタグ値「0000」は、そのセルが状態
値を含むことを示す。状態値の性質はデータ・フイール
ドにおいて示される。セルが初期設定されるとき、CPU
タグは「0000」となるように初期設定され、ビツト<3
9:0>はすべてゼロにセツトされて「初期設定」の状態
値を表わす。
いろいろなメモリ・タグの意味は第II表に示されてい
る。メモリ・タグ「0000」は、データ・フイールドが実
際にCPUタグにより定められる形式のデータを含むこと
を表わす。ビツト47が1であれば、データ・フイールド
はポインタを含む。「0010」は命令を示し、「0100」は
上述のような見出しを示す。
好適な実施態様では、リアル・タイムのコピー式不要
情報整理器が使用される。かかる不要情報整理器を支援
するために、不要情報整理促進を示すメモリ・タグ
(「0101」)が使用される。コピー式不要情報整理アル
ゴリズムは、データのブロツクをメモリ内の1つ場所か
ら他の場所に移す。他の対象物は不要情報整理された対
象物の原位置を指すので、見出しのメモリ・タグは不要
情報整理促進を表わすように変更され、促進アドレスは
旧対象物位置に置かれる。不要情報整理促進状態を持つ
ブロツク内のセルに参照がなされるとき、メモリ管理装
置は自動的に間接参照を実行する。この促進参照は、不
要情報整理装置が原ブロツク位置に対するすべてのポイ
ンタを見つけて再割当てを完了するまで残る。
不要情報整理器は、不変ルートおよび過渡ルートの両
方の過渡閉止をトレースすることが可能でなければなら
ない。これには標準の不要情報調整アルゴリズムをほん
の少し換える必要があり、これは過渡ルートの過渡閉止
をトレースしなければならない。
ブロツクが割当てを解除されると、見出しセルのブロ
ツク・タグは状態(「0000」)値に割り当てられ、見出
しセルのビツト<39:0>は「墓石」値にセツトされる。
見出しが墓石として標示され、空間の残りは回復要求さ
れる。墓石値は例えばビツト<39:0>がすべて1である
ことができる。これは、ブロツクが明確に割当てを解除
されたが、不要情報整理工程がそれを指す全ポインタの
位置をまだ定めていにことを表わす。不要情報整理工程
がこれらのポインタ位置を定めると、それらは破壊され
る。墓石ブロツクを呼び出す試みは、適当な誤り処理ル
ーチンに対するトラツプを発生させる。
この墓石機構は、上述のぶり下がり参照問題を解決す
る。ブロツクの割当てが解除されると、割当てを解除さ
れたブロツクに対するすべてのポインタが除去されたこ
とを装置が保証されるまでその見出しを墓石状態に保つ
ことは、もはや存在しない対象物に対するポインタが割
当てを解除されたブロツクにより以前占められた仮想メ
モリ空間に後で書き込まれるかもしれない誤りの情報や
からの空間を指さないことを保証する。割当てを解除さ
れたブロツクを呼び出す試みは、上述の墓石機構を用い
て正確に起こる誤りのメツセージを生じる。これはメモ
リの完全性を保証するのに役立つ。
上述の一様・不変メモリ、および以下に説明する回復
可能な仮想メモリを含む全メモリ装置の部品間の関係は
第9図に示されている。装置を見るいろいろなレベルは
メモリ抽象化の階層として示されている。
最低レベルは実際の物理メモリ、すなわち主半導体RA
Mメモリとページング・デイスクである。抽象化の次の
レベルは以下に説明されるような回復可能な仮想メモリ
である。次のレベルはいくつかの既知の方法に内の1つ
によつて行うことができる仮想メモリの不要情報整理を
示す。一様メモリの抽象化は、回復可能な仮想メモリの
上部で実行されるいくつかの内の1つである。上述の不
変メモリは抽象化の次の層として実行され、以下に説明
されたような弾力性対象物の概念は不変メモリで実行さ
れる。最後に、専門データベース・システムのようなユ
ーザ・アプリケーシヨンは階層の最上部で実行される。
回復可能な仮想メモリをこれから説明する。装置破壊
の場合に不変メモリ装置の内容を保存するために、仮想
メモリ自体のレベルでの回復能力が要求される。今日の
機械では、在来形でも記号形でも、仮想メモリのレベル
での回復能力は要求されない。装置の破壊がある場合
は、計算記憶装置内の情報は失われると思われるが、長
期記憶装置内の情報はプロセツサにより直接呼び出され
ない持久デイスク記憶装置にあるので保存される。アプ
リケーシヨンまたはユーザは、破壊から救うために情報
を計算記憶装置から長期記憶装置に転送したいと考え
る。装置の破壊後、装置は長期記憶装置内にある情報を
用いて再始動される。したがつて、今日の機械では回復
は主要な関心事ではない。かかるぜいたくは、計算およ
び長期記憶装置に区別が存在しないので、不変メモリ装
置では犠牲にされなければならない。
回復システムにより取り扱われると思われる故障は2
大カテゴリ、すなわち装置破壊と媒体不良に分類するこ
とができる。装置破壊は電力故障、ソフトウエアの誤り
またはハードウエア故障に起因することがある。ソフト
ウエアの誤りはアプリケーシヨンやシステム・ソフトウ
エアのバツグ、不正のデータや指令などから生じること
がある。ハードウエア故障はプロセツサ、主メモリ、ま
たはI/Oデバイスおよびそれらの制御器の断続および永
久故障などである。デイスク記憶装置の故障である媒体
不良は、下記の理由でハードウエア故障から故意に除外
されている。
装置破壊はハードウエア自己検査回路、電力故障検知
割込み、またはソフトウエアの誤りから回復するソフト
ウエア誤り処理ルーチンの無能力によつて合図される。
ハードウエア自己検査回路は普通、メモリおよびバスの
パリテイ・エラー検出器、デイスク用のフアイヤ・コー
ド検出器、自己検査器、ウオツチドツグ・プロセツサな
どを含む。装置破壊検出の潜伏時間、すなわち装置破壊
による装置状態の乱れと実際の破壊検出との間の時間の
ずれは極めて小さいので、このわずかな時間のずれにお
いて以下に説明するようなチエツクポイントを取る確率
は無視できるほど少ないと思われる。この想定およびそ
の実行は回復装置を働かせるのに必要であり、さもなけ
れば装置が既に乱れた状態に達しているときチエツクポ
イントが取られることは大いにあり得ることである。
装置破壊が起こると、一様メモリ全体の現状は乱れる
と思われ、それ以上の計算進行は不可能である。装置破
壊が検出されると、診断ルーチンが実行されるが、この
試みは故障が永久ハードウエア故障によつて生じたかど
うかを識別するものである。永久ハードウエア故障が検
出されると、プロセツサ・ボードやメモリ・モジユール
のような故障ハードウエアは、どんな回復段階でも進め
る前に、交換または修理される。永久ハードウエア問題
が検出されなければ、回復方式は全メモリ装置の状態を
以下に説明される通りデイスクに記憶される最終チエツ
クポイント状態に戻す。チエツクポイント状態から、正
常な計算が再開される。
ソフトウエア故障から生じる装置破壊はハードウエア
故障から生じるものよりもはるかに一般的であると思わ
れる。単一ユーザ機械における装置破壊の平均率は毎月
2〜3件程度と思われ、数分間の平均回復時間が受け入
れられる(永久ハードウエア故障はないものと想定)。
デイスク記憶装置に影響を及ぼす媒体故障は、デイス
ク・ヘツドの破壊、磁気媒体自体の劣化、またはデイス
ク・ドライバ・ソフトウエアのバツグから生じることが
ある。媒体故障は装置破壊よりはるかに頻度が少ないと
思われる。平均媒体故障率は年間2〜3件であり、媒体
故障後の平均回復時間は2〜3時間と思われる。
媒体故障が装置破壊と別に処理される理由は、媒体故
障もデイスク上の最終チエツクポイント状態を乱し、装
置破壊後の回復に用いられる戻し方法が取られないから
である。媒体故障を処理するために、デイウク上の最終
チエツクポイント状態は流れテープのような別の媒体に
保存される必要がある。媒体故障後、不良デイスクは新
品と交換する必要があり、これはそのとき最終保存チエ
ツクポイント状態から初期設定される。
上述のような装置破壊から回復する好適な回復方式を
これから説明する。回復方式は、ユーザまたはアプリケ
ーシヨン・プログラムによつて開始されると思われる、
全機械状態の初期チエツクポイントを有効な形にとる新
しい機械に基づく。チエツクポイント方式は全機械をデ
イスク上で数分以内に妥当に保つ。
好適な実施態様はページ式仮想メモリを利用する。メ
モリは、メモリ対象物120−131のサイズにかかわらず、
例えば2K語を、所定の場所のブロツク内にあるページン
グ・デイスクからページ替えされる。かくて、数個の小
形対象物は単一ページに置かれ、大形対象物は多数ペー
ジにわたることがある。
新しい仮想ページがメモリ割当て器の要求で具体化さ
れるとき、それは正しく初期設定された主メモリ24の中
に置かれ、また同時にページング・デイスク26で具体化
される。以下に説明される通り、仮想ページはシブリン
グの形またはシングルトンの形でデイスク上に具体化さ
れる。シブリングの形では、2個の隣接デイスク・ブロ
ツクは仮想ページに割り当てられるが、シングルトンの
形では、単一デイスク・ブロツクが割り当てられる。ペ
ージが以後変更されないものと思われる場合(例えば、
命令を含むページ)、それはデイスク空間を節約するシ
ングルトンの形で具体化される。データを含むものと思
われる場合は、それはシブリングの形で具体化される。
第4図に示される通り、シブリングの形で仮想ページ
を割り当てられた2個の隣接デイスク・ブロツクはシブ
リングと呼ばれる。シブリング・ページはxおよびx′
で表わされる。シングルトン・ページはsで表わされ
る。
第4図に示される通り、ページ見出しはデイスク上の
ページ・データに隣に合う。ページがページング・デイ
スク26から主メモリ24にフエツチされるにつれて、見出
し情報は主メモリ24のある他の所定ページに散乱され
る。ページがデイスクに書き込まれるときは、その見出
し情報はデータとに収集される。この操作を効果的に行
うため、デイスク制御器は散乱・収集能力を備えなけれ
ばならない。散乱・収集能力は実行の場合にのみ必要で
あり、回復可能な仮想メモリの正しい機能性について不
要である。
ページがページング・デイスク26に書き込まれるとき
は、それはデイスク書込み操作の時間をスタンプされ
る。第4図において、TS(x)は(x)の時間スタンプ
を示し、TS(x′)は(x′)の時間スタンプを示す。
TS(s)は(s)の時間スタンプを記録する便利な場所
はページ見出しである。見出しに書き込まれた時間スタ
ンプは装置の破壊を救う。時間スタンプは、装置と破壊
がある場合でも確実に作動するタイマから得られる。時
間スタンプの粒状はデイスク書込み操作の時間より少し
小さくするだけでよく、その理由はページをデイスク書
込み速度より速く書き込むことができないからである。
10ミリ秒の粒状で、64ビツト・タイマは58億年の間独自
の時間スタンプを作ることができる。そのために、ペー
ジ見出しにある64ビツトの時間スタンプ・フイールドは
適当以上である。
ページがシブリングの形で具体化されるとき、そのシ
ブリングはいずれもまだ書き込まれていないことを示す
−1および−2の時間スタンプを持つデイスクに具体化
される。もちろん別の方法も可能である。ページがシン
グルトンの形で具体化されるときは、それは−1の時間
スタンプを持つデイスクに初期設定される。デイスク上
の初期具体化以来変更されたすべてのデイスク・ブロツ
クは独自の時間スタンプを持つ。
最後のチエツクポイント操作の時間Tchkで表わされ
る。それは既知のデイスク位置に確実な形で気後され
る、Tchkの更新は確実に行うべきであり、Tchkの更新に
どんな誤りでもあると、おそらくチエツクポイント方式
が破壊されよう。値Tchkの完全性を保証する1つの方法
は、2つの同一コピーを保持することである。Tchkを更
新すべきとき、第1コピーが変更され、次に更新が適当
であることを保証するために検視される。この操作中の
装置破壊は第2コピーに影響を及ぼさないので、Tchkの
原値は保存される。第1コピーが更新されてから、第2
コピーが更新され検査される。この操作中の装置破線
は、Tchkの正しい新値が第1コピーにあるので、装置の
完全性に影響を及ぼさない。かくて、Tchkの正しい値が
いつでも保証される。
チエツクポイント状態は、それが正常な操作の間に呼
び出されず、媒体破壊がない限り乱れないという意味
で、「プリステイン」である。Tchkより小さい、すなわ
ちより早期の時間スタンプを持つシングルトン・ページ
はチエツクポイント状態に属し、他方では、Tchkより大
きい、すなわちより後期の時間スタンプを持つシングル
トン・ページはチエツクポイント状態外にある。チエツ
クポイント状態は、それが正常操作の間に呼び出され
ず、媒体破壊のない限り乱れないという意味で「プリス
テイン」である。シブリング・ページでは、もしTS
(x)<TS(x′)<Tchkならば、すなわちもし両シブ
リングがTchkより小さい時間スタンプを持つならば、大
きな時間スタンプ(x′)を持つシブリングはチエツク
ポイント状態に属し、他のシブリング(x)は旧式の情
報を含む。もし1つのシブリングがTchkより小さな時間
スタンプを有し、かつ他のシブリングがより大きな時間
スタンプを有するならば、小さな時間スタンプを持つシ
ブリングはチエツクポイント状態に属し、大きな時間ス
タンプを持つシブリングはチエツクポイント状態外にあ
る。時間スタンプが初期設定されかつ更新される方法に
より、両シブリングはTchkより大きな時間スタンプを持
つことはできない。時間スタンプは最終チエツクポイン
ト状態に属するページと属さないページとを区別する唯
一の機構である。
ページ不良の場合、もし欠落ページがシブリングの形
であれば、シブリング・ページは呼出し時間を減少させ
るため1回のデイスク呼出しで読み出される。これが可
能であるので、それらがデイスク上で相互に隣り合つて
置かれるからである。2つの隣接デイスク・ページをフ
エツチする時間は1つのページをフエツチする時間より
もほんの少し大きいと思われる。テキサス・インスツル
メンツのイクスプローラLISP機械では、第2デスク・ペ
ージをフエツチする平均追加時間は合計の約2%未満と
思われる。
TS(x)<TS(x′)<Tchkならば、すなわち両シブ
リングがTchkより小さい時間スタンプを持つならば、大
きな時間スタンプ(x′)を持つシブリングは主メモリ
に保たれ、他のシブリング(x)は廃棄される。この状
況はTS(x′)<TS(x)<Tchkの場合に似ている。保
持されたシブリングはチエツクポイント状態に属する一
方、廃棄されたシブリングは不要情報を含む。このペー
ジがデイスクに後で書き込まれるとき、それは廃棄され
たシブリングxのデイスク空間に書き込まれ、x′のデ
イスク空間には書き込まれず、さもなければチエツクポ
イント状態が破壊される。デイスクに対する再度の書込
み後、時間スタンプの関係はTS(x′)<Tchk<TS
(x)となる。この操作は第5図に示され、最新のチエ
ツクポイントは4p.m.で取られ、時間スタンプ=3pmの
x′は主メモリに保たれている。この変形されたシブリ
ングはxのディスク空間にわたり5p.m.でデイスクに書
き戻される。
TS(x)<Tchk<TS(x′)ならば、すなわちTchkが
2つのシブリングの時間スタンプの間にあれば、大きな
時間スタンプ(x′)を持つシブリングは主メモリに保
持され、他のシブリング(x)は主メモリから廃棄され
る。このケースは第6図に示されている。第5図と第6
図の相違は、ページが書き戻されるデイスク上の空間に
ある。ページが第6図においてそれ自身のデイスク空
間、すなわちx′に書き込まれるのは、x′が最後のチ
エツクポイント状態の部分ではなく、書込みが可能であ
る一方、xはチエツクポイント状態に属して保存されな
ければならないからである。他方では、第5図におい
て、x′は他のシブリングのデイスク空間すなわちxに
上述の理由で書き込まれる。ページが変形されてデイス
クに書き込まれるとき、時間スタンプの関係は不変であ
る。
シングルトン・ページの場合、TS(s)<Tchkなら
ば、すなわちその時間スタンプがTchkよりも小さけれ
ば、それは変形されるとき、第7図に示される通り、シ
ブリングの形に変換されなければならない。この変換が
必要なのは、チエツクポイント状態が書き過ぎされては
ならないからである。変換後、時間スタンプの関係はTS
(x)<Tchk<TS(x′)となる。シングルトンがシブ
リングに変換された、それは例えばxにコピーされる
が、その変形された型はx′に書き込まれる。他方で
は、シングルトン・ページの時間スタンプがTchkより大
きければ、そのシブリングへの変換が不要であるのは、
それがチエツクポイント状態の一部でないからである。
かくて、デイスクの各仮想ページは、その仮想ページ
がそれぞれ更新活性であるか更新不活性であるかによつ
て、2つの異なる形、すなわちシブリングかシングルト
ンといずれかの形で記憶される。これらの名が示すよう
に、最近更新された仮想ページは更新活性と呼ばれ、最
近更新されなかつたものは更新不活性と呼ばれる。所要
のデイスク空間を減少させるために、両シブリングが装
置の限界パラメータにより定められる長期間のあいだ両
シブリングが更新不活性に保たれるとき、シブリング・
ページはシングルトンの形に逆変換される。もしTS
(x)<TS(x′)<TchkおよびTchk−TS(x′)>
(限界値)ならば、デイスク空間管理装置はそれらをシ
ングルトンの形に変換することによつてその空間の回復
を要求する。シングルトンsはもつと新しいシブリング
の原内容および時間スタンプを含む。
一般に、シブリングおよびシングルトンの形のページ
は、デイスクの使用を最適にするためにデイスク上の異
なる場所に記憶される。仮想メモリのアドレス空間内に
あるページ表は、各割当て仮想ページのデイスク位置を
示す。ページ表は不変対象物であり、すべての他の対象
物と同様チエツクポイントされる。シブリングがシング
ルトンに変換されるとき、またはその逆のとき、ページ
表はそのページの新しいデイスク位置を指すまで更新さ
れ、旧位置は割当てを解除されて後で使用できるように
される。
装置破壊が存在するならば、ページ表が回復されると
き、それは変換されたページの旧デイスク位置を指すと
思われる。この旧位置はデイスク管理装置によつて割り
当て直されるので無関係な情報を含むことになる。かく
て、フオワード・ページ・ログ(FP−ログ)を仮想メモ
リのアドレス空間の外側に保つことが必要である。
シブリングがシングルトンに、またはその逆に変換さ
れるとき、FP−ログに記述項が書き込まれる。この記述
項は仮想ページを表わすとともに、旧(変換前)および
新(変換後)のデイスク・アドレスを示す。FP−ログ
は、チエツクポイント状態のページ表部分の情報が不正
確である場合でも、装置破壊後に再計算されるように変
換されたページの正しいデイスク位置を可能にする。FP
−ログの処理は第8図に関して詳しく説明する。
シブリングまたはシングルトンが変形されるときは必
ず、シブリングは最後のチエツクポイント後に一度にデ
イスクに書き戻される。それは最後のチエツクポイント
後にしかも可能性のある装置破壊の前に書き込まれるの
で、それは間違いの多い情報を含むことがある。実際に
装置破壊が存在するならば、そのシブリングは破壊後の
回復の間にその時間スタンプを−1まで格下することに
よつて、機械状態から削除されなければならない。その
時間スタンプが−1まで格下げされると、シブリングは
効果的に不用にされ、もし正常な作動中のページ・イン
が破壊後の回復後に再開されたならば廃棄されるであろ
う。時間スタンプが格下げされなかつた場合は、シブリ
ングはページ・インされるならば主メモリに保持され、
また戻り工程はチエツクポイント状態を作り直さないで
あろう。
破壊後の回復中に格下げされなければならない時間ス
タンプを持つシブリングは、削除ログと呼ばれるログを
用いて位置ぎめすることができる。削除ログは、ページ
が最後のチエツクポイントの部分でありかつページが最
後のチエツクポイント以来まだデイスクに書き込まれて
いない場合およびその場合にかぎり、はじめてデイスク
に書き出されるページの記録をつけておく。これが生じ
るのは、TS(x)<TS(x′)<TchkまたはTS(x′)
<TS(x)<Tchkの場合である。仮想ページidおよびそ
のデイスク・アドレスは、デイスクに対するその書込み
の時間と共に、削除ログの終りに付記される。削除ログ
は装置破壊を救わなければならないので、仮想メモリの
外側に保持される必要がある。これは、例えばそれを別
のデイスクに書き込んだり、ページング・デイスクのセ
クタの脇に特別にセツトすることによつて行うことがで
きる。どんな場合でも、削除ログはCPUによつてアドレ
スされない。
次のチエツクポイントの前に装置破壊が起こると、破
壊後の回復の部分として、削除ログが処理され、すなわ
ち最後のチエツクポイント以来ログに記録された各ペー
ジはデイスク上で位置ぎめされて、より高い時間スタン
プを持つシブリングはその時間スタンプを−1まで格下
げすることによつて削除される。その時間スタンプを−
1まで格下げすることによつて、シブリングは不用にさ
れる。
削除ログの維持はデイスク呼出しを要求する。この要
求は1組数ページにわてつて償却される。その組の1ペ
ージが書き出される度に削除ログに記述項を書き込む代
わりに、その組の多数ページはそれらがデイスクに対し
て消滅しかかつているときに行列を作つて待つことがで
きる。その組の全ページに関する記述項がまず作られ
て、削除ログに書き込まれ、次にすべてのページが実際
に書き出される。別法として、小形持久ランダム・アク
セス・メモリを用いて、削除ログへの記述項をバツフア
することができる。背景工程は、そのときデイスクに対
するこのバツフアを空にする責任がある。
チエツクポイント操作を完成する所要時間を短縮させ
ることが強く望まれる。チエツクポイント操作の大部分
は、主メモリ内の最終チエツクポイント以来の汚れた修
正ページをデイスクに書き込むことによつて清掃するこ
とである。この時間は、チエツクポイント工程に帰せら
れるユーザ知覚の休止がないように短縮されなければな
らない。かかる休止は、ユーザの相互作用を無効にする
とともに、グラフイツクスおよびアニメーシヨンのよう
なタイム・クリテイカルな応用を混乱させるであろう。
チエツクポイントの時間は2つの方法によつて短縮す
ることができる。第1の方法は、チエツクポイント時間
で主メモリにある汚れたページの一部が連続チエツクポ
イント間で汚れたページを絶えず清掃することによつて
正当に小さいことを確認することである。これは絶えず
操作する背景工程によつて行うことができる。清掃のた
めに汚れたページを選択する良好なヒユーリステイツク
は、「最近修正されなかつた汚れた頁を選ぶ」ことであ
る。第2の方法は、以下に説明される通り、ユーザ知覚
による休止のないチエツクポイント時間に汚えれたペー
ジを清掃することである。
チエツクポイント工程は応用または装置によつて開始
することができる。チエツクポイント時間で、チエツク
ポイント工程は引き継ぐ。それは仮想メモリの部分であ
るスナツプシヨツト対象物に入るすべてのプロセツサ・
レジスタ、過渡ルートを救う。スナツプシヨツト対象物
は固定の既知デイスク位置にあり、また不変ルートの過
渡閉止内にある。主にメモリ内のすべての汚れたページ
は次にデイスクに書き込まれる。最後にTchkは、チエツ
クポイント工程を完成するように現在の時間までデイス
クで更新される。前述の通り、Tchkは良好に更新される
か、旧値を保持しなければならない。チエツクポイント
操作の直後に、TS(x)およびTS(x′)はいずれもす
べてのシブリング・ページについてTchkより小でなけれ
ばならず、またTS(s)はすべてのシングルトン・ペー
ジについてTchkより小でなければない。また、前に過渡
状態であつたすべての対象物は、いま不変対象物となる
過渡ルートによつて不変ルートの過渡閉止の部材を持つ
ので、不変となる。
チエツクポイントをとるのに用いられる知覚時間のも
う1つの短縮は、主メモリの汚れたページを清掃するコ
ピー・オン・ライト法を利用することによつて行われ
る、この方法を用いて、主メモリにあるすべての汚れた
ページはコピー・オン・ライトとして標示され、すなわ
ちそれらに書き込むどんな試みでも下記のようなトラツ
プを生じさせる。この標示は一般はページ標で行われ、
仮想メモリ内のデータ構造は仮想メモリ・ページの位置
を記録しておく。次にプロセツサ・レジスタはスナツプ
シヨツト対象物から回復され、正常な作動を再開する。
これらの操作はすべて、デイスク上のスナツプシヨツト
対象物にプロセツサ・レジスタを記憶する唯一のデイス
ク操作を伴う。したがつて、これらのすべての操作は標
準のウインチエスタ・デイスク装置で100ミリ秒以内に
十分完成することができ、どんなユーザ知覚の休止もな
しに正常操作の再開を可能にする。
コピー・オン・ライト機構は、正常操作の再開前に汚
れたページをデイスクに書き戻す時間が費やされないの
で、正常操作の極めて迅速な再開を可能にする。正常操
作の再開後、コピー・オン・ライトとして標示されるペ
ージを修正するプロセツサによるどんな試みでもトラツ
プを引き起こす。トラツプ処理器はまず主メモリ内のペ
ージのコピーを作り、この新しいコピーは修正されるが
旧コピーはチエツクポイント状態に属するので乱されな
い。それ以上の修正の試みはどれも、この新しいコピー
に向けられている。コピー・オン・ライトとして標示さ
れるすべてのページがそれらをデイスクに書き込むこと
によつて清掃されるまでは、新しく作られた汚れたペー
ジは清掃されない。コピー・オン・ライトのページが清
掃されている間、正常な操作が続行される。汚れたペー
ジの清掃は、ユーザ工程と同時にシステム・ルーチンを
実行することによつて達成されることが望ましい。コピ
ー・オン・ライトとして標示されたすべてのページが清
掃されるときのみ、Tchk変数は現時点まで更新され、チ
エツクポイント操作の完了が告げられる。チエツクポイ
ント操作が終ると、全機械状態はデイスクに記憶され
る。
第8図は破壊後の回復の間の活動を示す。装置破壊
後、どんな永久ハードウエア故障でも検出する診断が行
われる。診断作業が永久ハードウエア故障を示さなかつ
たり、どんな示された故障でも修理されたら、FPログが
処理される。これはFPログにある各記述項を読出すこと
を意味し、またチエツクポイント状態で記憶されたよう
なページ表を更新するためにそこに含まれる新しいデイ
スク位置を使用することを意味する。次に、削除ログに
よつて示された各ページはデイスク上に位置ぎめされ、
より高い時間スタンプを持つシブリングはその時間スタ
ンプを上述の通り−1まで格下げすることによつて削除
される。Tchkよりも大きな時間スタンプを持つシングル
トンも削除される。次に機械の状態は、スナツプシヨツ
ト対象物からプロセツサ・レジスタを回復することによ
つて最終チエツクポイントに対応する状態に戻される。
装置は再開始の前に外部世界と調和されなければなら
ない。回復したチエツクポイント状態の部分は、チエツ
クポイント時間に特有なI/Oインターフエースおよびシ
ステム構造に関連される。この状態はいま、現在の時間
および構造と調和されなければならない。例えば、チエ
ツクポイント状態がタイマ変数を含むならば、この変数
は現在の時間を表わすように調節されなければならな
い。この点で、チエツクポイントからの正常操作を再開
することができる。
前述の通り、媒体またはデイスク故障の問題は、デイ
スクの最終チエツクポイント状態を流れテープのように
ある他の記憶媒体に保存することによつてアドレス可能
となる。この工程はチエツクポイント保存工程と呼ばれ
る。デイスク故障が生じると、新しいデイスクが損傷し
たデイスクに代えられ、また保存された状態は新しいデ
イスクの初期設定に用いることができる。最後の保存状
態に関して汚れている最後のチエツクポイント状態のペ
ージのみ、保存媒体にコピーする必要がある。最後の保
存状態に関して汚れているページは、ページ見出しのフ
ラグと同じものを示す。このフラグもページ表の中で維
持することができる。進行中のチエツクポイント保存工
程が少しでもあつて完成されるまでは、次のチエツクポ
インを取ることはできない。チエツクポイント保存工程
は比較的頻度の少ない操作であり、おそらく夜通し操作
としてまたユーザが機械に付き切りで作業しないとき
に、せいぜい週2〜3度しか起こらないと思われる。
上述の回復可能なメモリ装置はチエツクポイント状態
まで装置を回復させるが、委託トランザクシヨンは委託
状態まで回復されることを保証されなければならない。
トラザクシヨンが破壊前にしかも最後のチエツクポイン
トが取られた後で委託されたならば、チエツクポイント
状態を回復することはトランザクシヨンを完全な状態ま
で回復しないであろう。電子バンキング・オペレーシヨ
ンのようなトランザクシヨンでは、最終チエツクポイン
ト後ではなく装置破壊前に完成され認められたすべての
トランザクシヨンはそつくりそのまま回復されることが
必要である。〔この特性を示さなければならない対象物
は弾力性対象物と呼ばれる。〕 不変メモリ装置は、ログを元通りにしてやり直すトラ
ンザクシヨン・マネージメント・パツケージの助けによ
つて弾力性対象物を支援することができる。元通りにし
てやり直すログ情報は、機械状態を応用と一致させるよ
うに機械状態を最終チエツクポイントを越えて進めるの
に用いられる、基本の不変メモリ装置は複雑な対象物の
形式および構造を支援することができるので、弾力性対
象物も同じ利益を享受する。応用に対しても最も自然な
弾力性対象物の形式を選ぶことによつて、応用が在来機
械によつて供給される形式(フアイルおよび関係のよう
な)のみを用いるように制限されるとき得られるよりも
大きな同時性(すなわちより高い性能)を得ることがし
ばしば可能である。
トランザクシヨンは1個以上の対象物に関する一連の
実行である。定義によりトランザクシヨンは1つの(応
用特有の)一致状態を他の一致状態に変えることであ
る。トランザクシヨンを含むすべての実行は一致のある
基準およびトランザクシヨン委託に基づいて良好に完了
したり、トランザクシヨンは立ち消えにされて初期の一
致状態を不変に保つように実行されない。かくて、トラ
ンザクシヨンが立ち消えになるのは、一致のある基準が
失われたり、装置内にデツドロツクがあるからであり、
トランザクシヨンによつて保持されるリソースはデツド
ロツクを破るように自にされる必要があり、または装置
破壊が存在する。
「全部または皆無」特性に加えて、一致制御は一致ト
ランザクシヨンに関してトランザクシヨンを分割不能に
する必要がある。一致性制御プロトコールは、異なるト
ランザクシヨンに属する要求がインターリーブされる1
組のトランザクシヨンの同時実行が、これらのトランザ
クシヨンがある直列に実行されたかのように、同じ結果
を作ることを保証しなければならない。かかるトランザ
クシヨンの予定計画は直列化と呼ばれている。エスワラ
ンによつて示された通り(1976年11月発行のCACMの第19
巻、第11巻、第624〜633頁に記載された「データベース
・システム内の一致性および予測ロツクの概念」)、同
時トランザクシヨンのどんな組でも、各トランザクシヨ
ンが2段階ロツキング・プロトロールを伴う場合は、一
致の結果を作るであろう。第1段階では、トランザクシ
ヨンは対象物にロツクを累積し、第2段階ではトランザ
クシヨンは累積ロツクを解放する。いつたんトランザク
シヨンがそのロツクのどれでもを解除すると、それは同
じまたは他の対象前に少しでもより多くのロツクを要求
することができない。
弾力性対象物を支援するトランザクシヨン・マネージ
メント・パツケージは、2種類のログ対象物、すなわち
元通りにしてやり直すログに基づく。弾力性対象物の現
行実施例では、これらのログ対象物は不変対象物であ
る。在来のデータベース・トランザクシヨン・マネージ
・パツケージでは、元通りにしてやり直すログは自らの
データベースと共に、計算記憶装置に対して外部にあ
る。我々の方式は回復可能な仮想メモリの頂上のすぐ上
で弾性対象物を実行するので、在来のデータベースに比
べて一段と効率の良い弾性性対象物の実行が期待され
る。例えば下記に説明される通り、トランザクシヨンが
委託されると、やり直しログのみが仮想メモリの外側に
書き込まれることを要求される。元通りにするログは必
ず仮想メモリの一部を残す。
弾力性を要求する代表的なトランザクシヨンはボブの
銀行勘定からビルの銀行勘定に100ドルを移転すること
である。このトランザクシヨンが委託され、すなわち良
好に完了されるのは、ボブが彼の勘定に最低100ドル所
有する場合にかぎり、さもなければそれは立ち消えとな
るであろう。このトランザクシヨンが弾性を要求するの
は、ボブおよびビルの勘定がトランザクシヨン委託後の
装置破壊の場合でも新しい残高をいずれも正確に表わさ
なければならないからである。トランザクシヨンが装置
破壊前に一部分だけ完了される場合も、チエツクポイン
ト状態に表わされるどんな変化でも元通りにされなけれ
ばならない。
トランザクシヨンはトランザクシヨン・マネジヤによ
つて管理される。トランザクシヨン・マネジヤはトラン
ザクシヨンを、トランザクシヨン開始、対象物読出し、
対象物書込み、対象物ロツク、対象物アンロツク、トラ
ンザクシヨン中止、トランザクシヨン委託、およびトラ
ンザクシヨン終了のような基本的実行順序に変換する。
第10図は上述の簡単なバンキング・トランザクシヨン
の流れ図を示す。元通りにしてやり直すログは、トラン
ザクシヨンの進行中保持される。委託されたトランザク
シヨンに関するやり直しログは、仮想メモリのアドレス
空間の側にある。
トランザクシヨンはステツプ200で開始される。トラ
ンザクシヨン開始の記述項が、時間スタンプおよびトラ
ンザクシヨン識別子と共にやり直しおよび元通りログに
入れられる。
ボブの勘定およびビルの勘定を表わす対象物のロツキ
ングは、ステツプ202および204に示される通り、ロツク
・マネジヤからの要求された対象物のあらゆるロツクを
要求することによつて行われる。これは2段階のロツキ
ング・プロトコールの第1段階である。ロツクが得らな
い場合は、トランザクシヨンは終りとなる。この場合、
すべてのロツクは解除されて、トランザクシヨンに対応
する元通りにしてやり直すログは削除される。得られた
各ロツクについてやり直しおよび元通りログに記入が行
われる。ロツク入手およびそのログへの記入は切り離せ
ないオペレーシヨンであり、それは他のどんなオペレー
シヨンでも開始する前に装置によつて完了されなけれな
らない。回復を簡単にするため、ロツク取得オペレーシ
ヨンが進められている間は、チエツクポイントは取られ
ない。
すべての必要なロツクが得られると、トランザクシヨ
ンによつて要求されるオペレーシヨンが開始される。第
10図に示される通り、ボブの勘定は、それにトランザク
シヨンを完了するだけの金があることを確認するために
チエツクされる(ステツプ206)。その通りになつてい
れば、基金の転送が行われる(ステツプ208、210)。す
べての書込み操作では、元通りおよびやり直しログに記
入が行われるので、必要ならば更新が元通りにされてや
り直される。書込み操作および対応するログ記入の更新
は分離できない実行であり、どんな他の実行でも開始す
る前に装置によつて完了されなければならなず、またこ
の分離できな操作が破壊回復を簡単にするために行われ
る間チエツクポイントは取られてはならない。元通りに
するログを実施する1つの可能な方法は、仮想メモリの
アドレス空間に全面的に占められる対象物であり、進行
中にいらいろなトムンザクシヨンは時間の増加により分
類された形に保たれる新しい元通りの記入を簡単に加え
る。トランザクシヨンが進むにつれて、それはユーザの
指令によりまたはある一致性チエツクの失敗により中止
されることがある。トランザクシヨンが中止される場合
は、元通りにするログが処理されて対象物の変化を元通
りにし、それらを元の状態に戻し、すべてのロツクを解
除し、それまでに挿入されたログの記入を廃棄して出
る、トランザクシヨンが委託される場合は、トランザク
シヨンはステツプ212に進む。
ボブの基金が転送を行うのに不足する場合は、トラン
ザクシヨンはステツプ214に移り、トランザクシヨンを
中止する。元通りログはそのときすべてのロツクを解除
し(ステツプ216および218)、ログの記入を廃棄し、ト
ランザクシヨンを終らせるのに用いられる。
トランザクシヨン委託のステツプ212は、時間スタン
プおよびトランザクシヨン識別子を含むログ内のトラン
ザクシヨン委託の書込みを意味する。やり直しログの記
入はそのとき下記プロトコールを用いる仮想メモリの外
側に保たれる外部ログに対して書き込まれる:外部ログ
への実際の書込みは「書込み意図」を書き、次に外部ロ
グに実際に記入を書き、さらに続いて「書込み完了」を
書くことによつて進められる。これらの新しく挿入され
る記入は外部ログに挿入され、この場合すべての記入は
増加する時間順に分類される。この時点で、仮想メモリ
内の暫定やり直しログは廃棄される。
トランザクシヨンが委託されてから、顧客は通告を受
け、ロツクは解除される(ステツプ216、218、220)。
暫定ログは廃棄することができる。
第11図には回復工程が示されている。装置破壊後、FP
ログおよび削除ログは第8図に関して説明された通り処
理される。スナツプシヨツト対象物はそのとき前述のよ
うに回復される。この点で、機械状態はチエツクポイン
トが取られた時と全く同じである。これは、仮想メモリ
が最後のチエツクポイントの間に進行していたトランザ
クシヨン完了の記録を持たず、またチエツクポイント後
に開始および完了されたトランザクシヨンのどんな記録
も持たないことを意味する。
チエツクポイントで捕えられた元通りログが次に処理
されて、チエツクポイトで完了しなかつたトランザクシ
ヨンのどんな操作をも元通りにする。やり直しログが次
に処理される。やり直しログは、破壊前に完了し委託さ
れたすべての弾性トランザクシヨンを再構成するのに必
要なすべての情報を含む。いつたんこれらのトランザク
シヨンがすべて回復されると、装置は前述の通り調和さ
れて正常な処理が再開される。
この方法は在来のデータベース方式よりも容易かつ効
果的であり、フアイル・バツフアや明確なI/O操作は不
要である。破壊前にトランザクシヨンが委託されると、
そのやり直し情報は既に外部やり直しログに書き込ま
れ、元通り情報は廃棄される。したがつて外部元通りロ
グを維持する必要はない。
本発明は、仮想メモリのアドレス空間に直接アドレス
できないフアイルを使用しない一様メモリ抽象化の使用
を可能にする。これによつてすべての対象物は同じ方法
で操作することができ、長期メモリと計算メモリとの間
の変換間接費を必要としない。装置破壊は回復すること
ができる。
好適な実施態様を詳しく説明したが、言うまでもな
く、当業者にとつてはいろいろな置換、追加および変形
が明らかになると思う。これらの変化は特許請求の範囲
によつて定められる本発明の主旨および範囲から逸脱せ
ずに行われる。
以上の説明に関連してさらに以下の項を開示する。
(1) コンピユータ装置用の不変メモリ装置であつ
て、 複数個の一連番号を持つメモリ場所を有する線形アド
レス空間と、 割り当てられた複数個のメモリ・ブロツクにおいて、
各ブロツクは少なくとも1つのメモリ場所から成り、各
ブロツクはポインタによつてアドレス可能な1つの組み
合わされた場所を有し、また各ブロツクは他のメモリ・
ブロツクに対するポインタを含むことができる、前記複
数個のメモリ・ブロツクと、 不変ルートにおいて、前記不変ルートは前記割り当て
られたメモリ・ブロツクの1つに対するポインタを含む
ことがあり、また前記不変ルートの過渡閉止にあるすべ
ての割当てメモリ・ブロツクはコンピユータ装置による
回復要求を受けない前記不変ルートとを含み、 コンピユータ装置は組み合わされたアドレス可能場所
を指すポインタによつてのみ前記割当てメモリ・ブロツ
クを呼び出すことができ、また前記メモリ・ブロツクの
1つと組み合わされるアドレス可能な場所からオフセツ
トを計算することによつてのみ選択されたメモリ場所を
呼び出すことができる、 ことを特徴とする前記不変メモリ装置。
(2) 前記線形アドレス空間は複数個の一連番号を持
つ仮想メモリ場所を有する仮想アドレス空間を含む、こ
とを特徴とする第1項記載の不変メモリ。
(3) 前記仮想アドレス空間は、 選択された仮想メモリ場所に対応する番号を付けられ
た物理メモリ場所を持つ半導体メモリと、 仮想メモリ場所と組み合わされた分類情報を持つペー
ジング・デイスクとを含む、 ことを特徴とする第2項記載の不変メモリ。
(4) 前記割り当てられたブロツクはそれらが割当て
を解除されるとき墓石として識別され、また墓石ブロツ
クは割当てを解除されたブロツクに対するすべてのポイ
ンタが変更されたり削除されてからはじめて再使用を許
される、ことを特徴とする第1項記載の不変メモリ。
(5) 不要情報整理工程の結果としてコピーされるブ
ロツクは、新しいコピーを指す順アドレスを含むように
標示される、ことを特徴とする第4項記載の不変メモ
リ。
(6) 中央処理装置と、 複数個の一連番号を持つメモリ場所を有する仮想メモ
リと、 複数個のメモリ・ブロツクであり、前記ブロツクは少
なくとも1つのメモリ場所から成り、前記ブロツクはお
のおのポインタによつてアドレス可能な1つの組み合わ
された場所を有し、前記ブロツクは他のブロツクに対す
るポインタを含むことができ、また前記ブロツクはそれ
らが割当てを解除されるとき墓石として標示されること
ができ、かかる標示ブロツクはかかるブロツクに対する
すべてのポインタが変更されたり解除されてはじめて再
使用を許される、前記複数個のメモリ・ブロツクとを含
む、 ことを特徴とする不変メモリを持つコンピユータ装置。
(7) メモリ内のどこかでコピーされるブロツクが新
しいコピーに対する順アドレスを含むように標示され
る、ことを特徴とする第6項記載の不変メモリ。
(8) 中央処理装置と、 複数個の一連番号を持つメモリ場所を有する仮想メモ
リと、 複数個のメモリ対象物であり、前記対象物はおのおの
ポインタによつてアドレス可能な1つの組み合わされた
場所を有し、前記対象物はそれらが割当てを解除される
とき墓石として標示されることができ、かかる標示され
た対象物はかかる対象物に対するすべてのポインタが変
更されたり削除されてはじめて再使用を許される、前記
複数のメモリ対象物と、 不変ルートであり、前記不変ルートは前記割り当てら
れたメモリ対象物の1つに対するポインタを含み、前記
不変ルートの過渡閉止内にある前記対象物のすべてはコ
ンピユータ装置による回復要求から保護される、前記不
変ルートとを含み、 コンピユータ装置は組み合わされたアドレス可能場所
を指すポインタによつてのみ前記メモリ対象物を呼び出
すことができ、かつ前記アドレス可能場所の1つからオ
フセツトを計算することによつてのみ選択されたメモリ
場所を呼び出すことができる、 ことを特徴とする不変メモリを持つコンピユータ装置。
(9) さらに、アドレス可能場所からの計算されたオ
フセツトがかかるアドレス可能場所と組み合わされる所
定の値を越えることができない、ことを特徴とする第8
項記載のコンピユータ装置。
(10) 不変属性が対象物に適用される唯一の理由はか
かる対象物が不要情報を整理されることができないから
である、ことを特徴とする第8項記載のコンピユータ装
置。
(11) 前記対象物は前記不変ルートの過渡閉止内にあ
ると否とにかかわらずCPUによつて同様に操作される、
ことを特徴とする第8項記載のコンピユータ装置。
(12) ランダム・アクセス・メモリおよびページング
・デイスクを持つ仮想メモリと、 ページング・デイスクに記憶される複数個の仮想ペー
ジであり、前記各仮想ページはそれと組み合わされる時
間スタンプを持つ前記複数個の仮想ページと、 ページング・デイスクに記憶されたチエツクポイント
時間であり、前記チエツクポイント時間より少ない時間
スタンプと組み合わされた前記仮想ページのすべてがチ
エツクポイント状態を定める前記チエツクポイント時間
とを含む、 ことを特徴とする回復可能な仮想メモリを持つコンピユ
ータ装置。
(13) コンピユータ装置は装置故障後にチエツクポイ
ント状態にリセツトされる、ことを特徴とする第1項記
載のコンピユータ装置。
(14) チエツクポイント状態を形成しない仮想ページ
はコンピユータ装置が装置故障後にリセツトされるとき
廃棄される、ことを特徴とする第2項記載のコンピユー
タ装置。
(15) 前記各仮想ページと組み合わされる時間スタン
プは対応する仮想ページのデイスク見出し内に記憶され
る、ことを特徴とする第1項記載のコンピユータ装置。
(16) 複数個の前記仮想ページは組み合わされたシブ
リング・ページを有し、組み合わされた各シブリング・
ページも組み合わされた時間スタンプを有する、ことを
特徴とする第1項記載のコンピユータ装置。
(17) 前記各仮想ページとその組み合わされたシブリ
ング・ページとの間のチエツクポイント時間より少ない
最大時間スタンプを持つページのみがチエツクポイント
状態を形成するのに用いられる、ことを特徴とする第5
項記載のコンピユータ装置。
(18) 複数個の前記仮想ページはシングルトンの形で
ある、ことを特徴とする第1項記載のコンピユータ装
置。
(19) 前記仮想ページの第1部分集合は組み合わされ
たシブリング・ページを有し、各シブリング・ページは
組み合わされた時間スタンプを有し、また前記仮想ペー
ジの第2部分集合は組みわされたシブリング・ページを
持たない、ことを特徴とする第1項記載のコンピユータ
装置。
(20) 前記仮想ページのどれがチエツクポイント状態
以来デイスクに書き込まれたかの記録をさらに含む、こ
とを特徴とする第8項記載のコンピユータ装置。
(21) 前記記録は前記仮想メモリのアドレス空間内に
アドレスを持たない、ことを特徴とする第9項記載のコ
ンピユータ装置。
(22) 前記仮想ページのどれが、チエツクポイント状
態以来、第1部分集合から第2部分集合へ、かつ第2部
分集合から第1部分集合へ移動したかの記録をさらに含
む、ことを特徴とする第8項記載のコンピユータ装置。
(23) 前記記録は前記仮想メモリのアドレス空間内に
アドレスを持たない、ことを特徴とする第11項記載のコ
ンピユータ装置。
(24) ランダム・アクセス・メモリおよびページング
・デイスクを持つ仮想メモリと、 ページング・デイスク上に記憶された複数個の仮想ペ
ージにおいて、前記各仮想ページはそのデイスク見出し
内に記憶された時間スタンプを有し、かつ時間スタンプ
は前記仮想ページがページング・デイスク上に記憶され
た時間を表わし、前記仮想ページの部分集合はページン
グ・デイスク上に記憶された組み合わされたシブリング
・ページを有し、組み合わされた各仮想ページもそのデ
イスク見出し内に記憶された時間スタンプを有する、前
記複数個の仮想ページと、 ページング・デイスク上に記憶されるチエツクポイン
ト時間において、シブリング部分集合に含まれずかつチ
エツクポイント時間より少ない時間スタンプを持つ前記
仮想ページはチエツクポイント状態を形成し、またチエ
ツクポイント時間より少ない最大時間スタンプを持つ仮
想ページおよび組み合わされたシブリング・ページの各
対の頁もチエツクポイント状態を形成する、前記チエツ
クポイント時間と、 前記チエツクポイント時間以来前記ページング・デイ
スク上に記憶された前記仮想およびシブリング・ページ
のすべての記録を持つ削除ログと、 前記仮想ページのどれがシブリング部分集合内からそ
の部分集合外に移動したか、また前記仮想ページのどれ
がシブリング部分集合内に移動してきたかの記録を持つ
第2ログとを含む、 ことを特徴とする回復可能な仮想メモリを持つコンピユ
ータ装置。
(25) ページング・デイスク上に記憶された複数個の
仮想ページを持つ仮想メモリにおいて装置故障から回復
する方法であつて、 a)当該ページがページング・デイスク上に記憶されて
いるとき時間スタンプを各仮想ページと組み合わせる段
階と、 b)仮想メモリの定期チエツクポイントを取る段階と、 c)定期チエツクポイントが取られるとき存在する各仮
想ページの更新型を省く段階と、 d)装置故障が起こるとき、最近のチエツクポイントが
取られた後でページング・デイスク上に記憶されたこと
を示す時間スタンプを持つすべての仮想ページを廃棄す
ることによつて仮想メモリのチエツクポイント状態を回
復する段階とを含む、ことを特徴とする前記方法。
(26) 段階(b)は、 e)ページング・デイスク上の既知の場所でページング
・デイスク上に任意なレジスタの状態を記憶する段階
と、 f)既知の場所でページング・デイスク上に現在の時間
を表わす値を記憶する段階とを含む、 ことを特徴とする第25項記載の方法。
(27) 段階(c)は、 g)組み合わされるシブリング・ページを持たない仮想
ページについて、かかる仮想ページが更新されるときペ
ージング・デイスク上に組み合わされるシブリング・ペ
ージを作つてこれを記憶する段階において、シブリング
・ページは仮想ページの更新型を含みかつ仮想ページは
変更されない前記段階と、 h)組み合わされるシブリング・ページを既に持つ仮想
ページについて、最近のチエツクポイントが取られる前
に最も新しく記憶された仮想ページまたは組み合わされ
たシブリング・ページを不変のままにする段階、および
残りの仮想ページまたはシブリング・ページに仮想ペー
ジの更新型を記憶する段階とを含む、 ことを特徴とする第25項記載の方法。
(28) i)最近のチエツクポイントが取られて以来更
新されたすべての仮想ページの実体を削除ログに記録す
る段階をさらに含む、 ことを特徴とする第25項記載の方法。
(29) 段階(d)は、 j)削除ログに記述項を持つすべての仮想ページの最新
型を廃棄する段階を含む、 ことを特徴とする第28項記載の方法。
(30) 装置故障から仮想メモリを回復する方法であつ
て、 a)チエツクポイントが取られた後でページング・デイ
スクの上に記憶されたすべての仮想メモリ・ページを廃
棄する段階と、 b)チエツクポイントが取られる前にページング・デイ
スク上に記憶されたすべての仮想メモリ・ページの最新
型を保持する段階と、 c)チエツクポイントが取られた時点ですべてのレジス
タをそれぞれの値に回復する段階とを含む、 ことを特徴とする前記方法。
(31) ページング・デイスクを持つ仮想メモリと、ペ
ージング・デイスク上に記憶された複数のメモリ対象物
と、 メモリ対象のトランザクシヨンを元通りにするだけの
情報を記録する仮想メモリに記憶された元通りログと、 前記仮想メモリの外側に記憶され、かつチエツクポイ
ントが前記仮想メモリで取られた後で委託されたメモリ
対象物に関するトランザクシヨンを作り直すだけの情報
を含むやり直しログとを含む、ことを特徴とするコンピ
ユータ回復可能メモリ装置。
(32) 装置破壊後に仮想メモリ空間にメモリ対象物を
回復する方法であつて、 a)メモリをそのチエツクポイント状態ま回復するだけ
の情報が保存される、仮想メモリのチエツクポイントを
取る段階と、 b)メモリ対象物のトランザクシヨンが委託されるまで
かかるトランザクシヨンを元通りログに記録する段階に
おいて、かかるトランザクシヨンを元通りにするだけの
情報は元通りログに記憶される前記記録段階と、 c)メモリ対象物のトランザクシヨンがやり直しログに
記憶されてから仮想メモリ空間の外側に置かれるやり直
しログにかかるトランザクシヨンを記録する段階と、 d)装置破壊後、チエツクポイント状態まで仮想メモリ
を回復させ、チエツクポイント状態と装置破壊との間で
委託されたどんなトランザクシヨンでも元通りにする元
通りログを処理する段階とを含む、 ことを特徴とする前記方法。
【図面の簡単な説明】 第1図は先行技術のコンピユータ・メモリ装置アーキテ
クチヤのブロツク図、第2図は本発明によるコンピユー
タ・メモリ・アーキテクチヤのブロツク図、第3図は本
発明による一様な不変メモリのブロツク図、第4図はペ
ージング・デイスクに記憶されたシブリング仮想ページ
を表わす図、第5図はあるシブリング・ページを更新す
る方法を示す図、第6図は他のシブリング・ページを更
新する方法を示す図、第7図はシングルトン・ページを
更新する方法を示す図、第8図は装置破壊から回復する
工程を示す図、第9図はメモリ抽象化の階層を示す図、
第10図は簡単な弾性トランザクシヨンを示す流れ図、第
11図は装置破壊後に弾性対象物を回復する工程を示す図
である。 符号の説明: 10,20……中央プロセツサ; 16,24……RAM; 18,26……ページング・デイスク; 12,14,22……メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ギリツシユ シー.パサツク アメリカ合衆国テキサス州ダラス,ナン バー 2006,ウオルトナツト ストリー ト 9999 (56)参考文献 情報処理、Vol,24,No.4, 1983年4月,P418−422「15,シーケン シャルガーベジコレクション」

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータ装置用の不変メモリ装置であ
    って、 複数個の一連番号を持つメモリ場所を有する線形アドレ
    ス空間と、 前記線形アドレス空間内に配置され割り当てられた複数
    個のメモリ・ブロックにおいて、各ブロックはポインタ
    によってアドレス可能な1つの連合した場所を有し、ま
    た各ブロックは他のメモリ・ブロックに対するポインタ
    を含むことができる、前記複数個のメモリ・ブロック
    と、 前記線形アドレス空間内に位置する不変ルートにおい
    て、前記不変ルートは前記割り当てられたメモリ・ブロ
    ックの1つに対するポインタを含むことがあり、また前
    記不変ルートの過渡閉止にあるすべての割当てメモリ・
    ブロックは関連するプログラムが終了した後にもコンピ
    ュータ装置による回復要求(reclamation)の対象とな
    らない前記不変ルートを含み、 コンピュータ装置は1つ以上の過渡ルートを持ち、それ
    ぞれの過渡ルートは前記割り当てられたメモリ・ブロッ
    クの1つに対するポインタを含むことができ、また前記
    過渡ルートの1つの過渡閉止にあるすべての割当てメモ
    リ・ブロックは、関係するプログラムが終了した後にコ
    ンピュータ装置による回復要求の対象となり、それによ
    って続いて実行されるプログラムからアドレス可能とは
    ならず、 コンピュータ装置は前記過渡ルート又は前記不変ルート
    のどちらかから関連するアドレス可能場所を指すポイン
    タによってのみ前記割当てメモリ・ブロックを呼び出す
    ことができ、また前記メモリ・ブロックの1つと関連す
    るアドレス可能な場所からオフセットを計算することに
    よってのみ選択されたメモリ場所を呼び出すことができ
    る、 ことを特徴とする前記不変メモリ装置。
JP61211837A 1985-09-11 1986-09-10 不変メモリ装置 Expired - Fee Related JP2551563B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US77482685A 1985-09-11 1985-09-11
US06/774,828 US4814971A (en) 1985-09-11 1985-09-11 Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US774827 1985-09-11
US774828 1985-09-11
US774826 1985-09-11

Publications (2)

Publication Number Publication Date
JPS62123537A JPS62123537A (ja) 1987-06-04
JP2551563B2 true JP2551563B2 (ja) 1996-11-06

Family

ID=27118961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61211837A Expired - Fee Related JP2551563B2 (ja) 1985-09-11 1986-09-10 不変メモリ装置

Country Status (1)

Country Link
JP (1) JP2551563B2 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理、Vol,24,No.4,1983年4月,P418−422「15,シーケンシャルガーベジコレクション」

Also Published As

Publication number Publication date
JPS62123537A (ja) 1987-06-04

Similar Documents

Publication Publication Date Title
US4814971A (en) Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
Bowen et al. Processor-and memory-based checkpoint and rollback recovery
JP2531783B2 (ja) 共用ファイル環境をサポ―トする方法
Thatte Persistent memory: A storage architecture for object-oriented database systems
JP2679779B2 (ja) トランザクション処理方法及び装置
US8380689B2 (en) Systems and methods for providing nonlinear journaling
US4853842A (en) Computer memory system having persistent objects
US5455946A (en) Method and means for archiving modifiable pages in a log based transaction management system
US6173292B1 (en) Data recovery in a transactional database using write-ahead logging and file caching
JPH0560617B2 (ja)
Cohen et al. Fine-grain checkpointing with in-cache-line logging
JP5160006B2 (ja) 論理フラッシュメモリ装置を用いて原子的更新を実行する方法および装置
Graefe A survey of B-tree logging and recovery techniques
US8769350B1 (en) Multi-writer in-memory non-copying database (MIND) system and method
CN105320567B (zh) 用于有效资源回收的延迟损毁
Kolodner et al. Atomic incremental garbage collection and recovery for a large stable heap
KR101583716B1 (ko) 비트 로깅을 이용한 데이터 복구 방법 및 그 장치
JP2551563B2 (ja) 不変メモリ装置
Hosking et al. Update logging for persistent programming languages: A comparative performance evaluation
Fujimoto et al. The roll back chip: Hardware support for distributed simulation using Time Warp
Song et al. No-log recovery mechanism using stable memory for real-time main memory database systems
Jalili et al. Using directed graphs to describe entity dependency in stable distributed persistent stores
Shu et al. Shadowing-based crash recovery schemes for real-time database systems
Molesky et al. Recovery protocols for shared memory database systems
Thatte Persistent memory: a storage system for object-oriented databases

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees