JPS63138445A - 回復可能な仮想メモリ - Google Patents

回復可能な仮想メモリ

Info

Publication number
JPS63138445A
JPS63138445A JP62290471A JP29047187A JPS63138445A JP S63138445 A JPS63138445 A JP S63138445A JP 62290471 A JP62290471 A JP 62290471A JP 29047187 A JP29047187 A JP 29047187A JP S63138445 A JPS63138445 A JP S63138445A
Authority
JP
Japan
Prior art keywords
page
disk
memory
objects
pages
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
JP62290471A
Other languages
English (en)
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/932,813 external-priority patent/US5008786A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPS63138445A publication Critical patent/JPS63138445A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) この発明はデジタルコンピュータシステムに関し、特に
回復機能を有する仮想メモリに関する。
(従来の技術) 将来、最新式の記号計算装置のユーザが大規模な情報を
ベースとしたアプリケーションを発展させていくにつれ
、ユーザは多量で複雑な情報/データベースをサポート
する際の記憶管理の問題から生じる大きな問題に遭遇す
ることが予測される。
ここでワードの記憶は、仮想メモリ、ファイルシステム
及びデータベースを含む広い範囲で使われる。テキサス
・インスツルメント(TI)社のエキスプロア(EXR
LORER)及びシンボリック3670等最新の記号コ
ンピュータを含む現在のコンピュータが、二分法によっ
て、2つの完全に異なる構成・に沿って記憶を管理して
いるので、こうした問題は、この二分法に主に原因して
いる。これらの構成は、計算用記憶装置及び長期間用記
憶装置と呼ぶことができる。
記号/人工知能(AI)処理では、情報の表示がデータ
の構造と、プログラム内で正しく使われた場合に“見識
のある”挙動を導く解釈手順との組合せから成る。AI
システムの目標は、オブジェクト(Object)の認
識、問題の解答、及びロボット装置の操縦等の認知を含
むタスクとして記述できる。情報表示方式を定式化する
際に最も重要な考慮すべき点は、情報の究極的な使い方
である。
記号/AIプログラムにおける情報の実際の使用は次の
3段階を含む=(l)より多くの情報を得る段階、(2
)該当の問題に関連した情報ベースから事実を検索する
段階、(3)解答をサーチしながらそれらの事実につい
て判断する段階である。状態スペース表示、ロジック、
手順表示、意味ネット、プロダクションシステム、及び
フレーム等数多くの異なる情報表示方式が、情報表示の
業界及び学界によって開発されてきた。情報表示方式の
選択は、アプリケーション上の要求に強く依存する。
どの情報表示方式が使われようとも、ある充分に低いレ
ベルの表示では、ポインタで相互につな゛がれたメモリ
オブジェクトによって情報は表わされる。これらのオブ
ジェクトは、それらをつなぐポインタの相互接続グラフ
で定義された構造を有する。記号/AIアプリケーショ
ンで生成及び処理されるオブジェクトの構造は通常、極
めて豊富且つ複雑である。さらに、オブジェクト内の情
報とその構造は変更可能である。
記号計算では、情報ベースを表わすオブジェクトが計算
用記憶装置内で生成及び処理される。その名前が示す通
り、計算記憶装置ではコンピュータシステムのプロセッ
サによってオブジェクトが処理される。これらのオブジ
ェクトは数値ストリング、ベクトル、アレイ、レコード
、リンクされたリスト、命令、手順等とし得る。小及び
大どちらのオブジェクトも、通例名前によって識別され
る。オブジェクトの名前は、手続きパラメータとして通
過し、手続きの結果として復帰し、そして構成要素とし
て他の対象で記憶される便利なハンドラまたはポインタ
として機能する。プログラマ−は、リスプ(LISP)
やプロログ(Prolog)等のプログラミング言語を
用いてオブジェクトを生成及び処理する。
一般に計算用記憶装置は、メモリの階層から成り、ペー
ジングをサポートする遅い大型ディ−スフによりバンク
アップされた高速、小型の半導体主メモリである仮想メ
モリとして実施される。プロセッサがそれぞれのアドレ
ス(実または仮想)を指定することによって直接アドレ
スできるので、オブジェクトは非常に迅速に、しばしば
プロセッサの基本サイクル時間でアクセスされる。これ
らのオブジェクトに記憶された情報も、プロセッサのア
ーキテクチャによって定義されたフォーマットで記憶さ
れているため極めて効率的に処理及び操作され、従って
プロセッサのハードウェアまたはマイクロコードによっ
て直接解釈できる。
計算用記憶装置内に記憶される情報はしばしば非常に豊
富な構造を有する:すなわち、計算用記憶中のオブジェ
クトは該当アプリケーションの要求と一致するようにポ
インタの豊富且つ複雑な構造によって相互接続されてい
る。これらオブジェクトの構造は動的であることが多い
。しかし、計算用記憶装置内のオブジェクトは、それら
を生成したプログラムの寿命を越えて存在しない。プロ
グラムが終了するかまたはシステムの停止つまりクラッ
シュが生じると、それらのオブジェクトは存在しなくな
る。従って、かかるオブジェクトは短寿命または一時的
オブジェクトと呼ばれる2こうしたオブジェクトをそれ
らを生成したプログラムの寿命を越えて持続させるため
、すなわち長寿命つまり永続性とするためには、オブジ
ェクトが他の記憶構成すなわち長期間用記憶装置に移動
されねばならない。
その名前が意味するように、長期間用記憶装置は、情報
を長い期間保持するのに使われる。これは一般に、ディ
スク上に存在するファイルシステムで実施される。この
ディスクファイルシステム、は計算用記憶装置のディス
クと論理上具なるが、同じ物理的なディスク媒体を両方
で共用可能である。長期間用記憶装置内における記憶情
報の例は、ファイル、ディレクトリ、及びデータベース
である。長期間用記憶装置は、長期間の間信頼できる方
法で情報を保持する。計算用記憶装置内でそれを生成す
るプログラムの寿命を越えて情報を記憶するためには、
まず情報が長期間用記憶装置によって見込まれる表示に
マツピングされ、次いで長期間保持のためファイル入/
出力(I 10)動作またはデータベース動作を用いて
長期間用記憶装置に移される必要がある。
長期間用記憶装置によってサポートされるオブジェクト
の種類は非常に制約され(実質上ファイル、ディレクト
リ、リレーション等)、多くのアプリケーションのデー
タ構造要求と一致し得る。
長期間用記憶装置内における情報の表示は、非常に“フ
ラット”である。例えば、ファイルは^SC■文字等の
ビットまたはバイトの連続的な流れで構成できる。ファ
イルまたはりレーションは通常、手順オブジェクト及び
長期間用記憶装置内の他のオブジェクトに対するポイン
タどちらも保持できない、また、これらオブジェクト内
の情報は、その表示がプロセッサのアーキテクチャと互
換性でないため、プロセッサによって直接アクセスでき
ないし、処理することもできない。情報は、計算用記憶
装置によって見込まれる表示にマツピングされ、次いで
処理のためそこに移された後、初めて処理可能となる。
オブジェクトをファイルの集合へ/そこからマツピング
する際の翻訳オーバヘッドも、非常に大きい。
計算用記憶装置と長期間用記憶装置との間におけるオブ
ジェクトの翻訳及びマツピングにかかる時間的なオーバ
ヘッドの他、情報は本質上仮想メモリとファイルシステ
ムの中に2重化されるので、追加のスペース上のオーバ
ヘッドも存在する。通常仮想メモリとして実施される計
算用記憶装置がページングディスク記憶装置の存在をプ
ログラマ−から隠す一方、長期間用記憶装置がディスク
の存在をプログラマ−に対して明示するので、明ら、か
なバラドクスが存在する。つまり、計算用及び長期間用
再記憶装置間におけるアドレシング、ファンクション及
び保持特性における差がプロセッサアーキテクチャのレ
ベルより上の見えるところで、プログラマ−は一様でな
い記憶モデルと直面している。
フォートラン(FORTRAN)、パスカル(Pasc
al)、リスプ(LISP)及びプロログ(Prolo
g)等のプログラミング言語は、記憶構成における二分
性を強く反映している。これらの言語の仕様はほとんど
必ず、長期間用記憶装置のオブジェクト(ファイル)が
計算用オブジェクトと全面的に異なる特性を持つと仮定
している。この結果、これらのプログラミング言語は、
計算用記憶装置内の情報を処理できるようには、長期間
用記憶装置内の情報を処理できない。この二分法はシス
テム全体に及び、ユーザから隠せない。この点は、プロ
グラミング言語のオブジェクトに使われる名前とファイ
ル及びデータベースで使われる名前との相違に表われて
いる。
また二分法は、長期間用記憶装置内の情報を処理するた
めに発展してきた異なる一組の言語の中にも見られる。
これらの言語は、UNIXシェル言語及びIBM TS
Oコマンド言語等、特にファイルでのオペレーションを
実行するコマンド言語を含む。
永続的なオブジェクトに対して動作する他の種類の言語
には、スフウェア(Square) 、シークエル(S
equel)及びフェル(Quel)等各種のデータベ
ース言語がある。これらの言語はデータベースのオブジ
ェクトを定義でき、それらについての質問及び更新を実
行できる。一般に、かかる言語略よ、しばしば解釈され
、同じく解釈実行よりも翻訳実行の効率が高いもっと慣
染みのあるプログラミング言語と比較して、本質上制約
されており不可解である。
この結果、プログラマ−は非一様な記憶モデルに注意し
、所望なアドレシングメカニズム、ファンクション及び
保持特性に基いて情報を記憶媒体間で明示的に移動しな
ければならない。別の結果として、非一様な記憶モデル
は、プログラム間で、の可能なインタフェースの種類を
増すため、プログラミングの一般性及びモジュール性に
とって障害となる。コマンド言語、プログラミング言語
、デバッギング言語、及び編集言語等、モードに依存し
たプログラミング言語の混交は、システムとの迅速で効
率的な対話を困難にする。
一時的及び永続的オブジェクト間でのマツピングは、通
常、一部ではファイルシステムまたはデータベース管理
システム(DBMS)によってなされ、他の一部では各
プログラムに書込まれ含まれねばならない明示なユーザ
翻訳コードによってなされる。このタスクは、スペース
及び時間の両方のペナルティを課し、システムの性能を
劣化させる。
プログラマ−はしばしば、マツピングを理解する困難性
により、2つの異なる世界つまりプログラミング言語の
世界とDBMSの世界に対処する追加の負荷を管理する
困難性により、そのタスクに悩まされている。
大きなデータ集中プログラムでは通常極めて多量のコー
ドが存在し、全体の約30%がファイルまたはデータベ
ースと計算用記憶−直間での転送に関連したものと見積
もられている。一時的及び永続的オブジェクト間での翻
訳を行うコードによって多くのスペースと時間が浪費さ
れ、これは性能に悪影響を及ぼす。この点は、十分では
ない。
なぜならば、翻訳コードを開発し実行するのに必要な努
力と時間が膨大であると共に、アプリケーションプログ
ラムの品質及び信頼性がマツピングによって損われるこ
とがあるからである。また記憶の二分法は、オペレーテ
ィングシステムの設計とDBMSの設計における努力の
多くの重複化を生じる。
記憶の二分法によって生じるこうした問題は、記号/A
I計算でさらに著しく複雑化される。現在の記号マシン
でのプロセスは単一のアドレススペースを共有している
、すなわちプロセス毎のアドレススペースが存在しない
、さらに、アドレススペースは区分されていす、単一の
線形アドレススペースである。このようなモデルの計算
用記憶装置は、複数のプロセス間での容易で、効率的で
1、柔軟−性のあるオブジェクトの共有を可能とする。
どのオブジェクトも、(通常指されるオブジェクトの仮
想アドレスとして実行される)ポインタをそのオブジェ
クトに付属させるだけで、他の任意のオブジェクトを指
すことができる。ポインタで相互に接続されたオブジェ
クトの任意に複雑な構造が、生成され及び処理される。
こうしたオブジェクトの強力な構造化は、記号コンピュ
ータで使われる高度に集中された強力なソフトウェア開
発環境の発展にとって非常に重要である。
残念ながら、現在の記号コンピュータは、従来のコンピ
ュータと同じく、計算用及び長期間用記憶装置を区別し
ている。記号コンピュータでは、1つのオブジェクトを
ファイルシステムへ移動して永続的にすることはあまり
意味がない、つまり、あるオブジェクトから全ての外向
きポインタを辿って到達可能な全てのオブジェクトを単
一のエンティティとして永続的にする必要があり、また
そのエンティティを指す全ての内向きポインタが“正し
く扱われ”ねばならない、しかし、このようなエンティ
ティは非常に大きくなることがあり、それをファイルシ
ステム内に移動するのは複雑で高価な動作である0反対
に、ファイルシステムから計算用記憶装置への逆移動も
、同様に複雑で高価である。
特に記号/AI分野で実施されている最新の多くのプロ
グラミング方式は、手順とデータの間を区別していない
:っまり手順はそれ自体がアクティブなデータに過ぎな
い。扱われる情報の本体は成長し、よりアクティブにな
るので、豊富なポインタ構造で相互に接続された複雑な
オブジェクトから成るプログラム環境は、長期間持続す
ることが重要となる。長期間の保持のため、このような
豊富な環境を現在のファイルシステムまたはデータベー
スにマツピングして移動することは、スペース及び時間
の両方で大きな翻訳オーバヘッドを含む。
つまり、記号/AIアプリケーションにおける計算用及
び長期間用記憶装置でのオブジェクトの表示間には大き
な差が存在する。計算用オブジェクトの構造が豊富にな
るほど、2つの表示間の差は広がり、両者間の翻訳を実
行するのに必要な努力が大きくなる。今後登場する記号
/AIアプリケーションは、検索、間合せ、推論、理由
付け、演鐸及び計算がなされる多数のオブジェクトの構
造をいっそう高度化及び複雑化するであろう、予測され
るように、大きな情報集中アプリケーションのため、長
期間用オブジェクトを計算用オブジェクトへ及び逆にマ
ツピングするのに必要なオーバヘッドは甚大となろう。
情報ベースのアプリケーションを容易化するため多くの
研究者によって取られている現在の方法は、記号コンピ
ュータをデータベースマシンとつなぐことに基づいてい
る。この手法は、記憶二分法の問題に対処しなくてよく
、また手順及びデータの寿命や交換可能性の問題を処理
しなくてよいように、永続的メモリに基づいている。記
号/AIアプリケーションのデータモデル要求と、デー
タベースマシンによってサポートされる固定データモデ
ルとの間に不一致が存在する。従って、かかる手法はエ
キスパートデータベースシステムとしては不適切である
と思われる。これらの制限は、当該分野の他の研究者達
によって共有されている。
永続的メモリの手法は、根本的に異なる基礎に基づく。
永続的メモリに関する文献は、全てのプログラム及びデ
ータが1つの文脈で命名される単−L/ベル記憶をK1
1burn(キルバーン)が提案した1962年に遡る
* (T、K11burn、  ” ルベル記憶システ
ム”、IRE Trans、f!1ecLronic 
Comput、、vol、Ec−11,1lh2.19
62年4月)。
5olzer (ザルツアー)は、1つの文脈だけで全
てのオブジェクトを結合して解釈する直接アクセス記憶
アーキテクチャを提案した。  (J、11.Salg
er。
“オブジェクトの命名と結合”、R,Bayer他編、
オペレーティングシステム、上級コース、99頁、シュ
プリンガ出版社、ニューヨーク、NY、197Bに収録
)。
Traiger()レイガー)は、データベースの仮想
アドレススペース内へのマツピングを提案した。
、(1,L、Traigers “データベースシステ
ム用の仮想メモリ管理” 、ACM Operatin
g Systame Review、26〜48頁、1
982年10月、)フォートラン(FORTRAN)及
びコボル(COBOL)世界の簡単なデータモデル化要
求が、従来の仮想メモリ及びデータベースシステムより
も実行がはるかに難しいために、こうした提案の実用化
を阻んでいた。
HIT MULTICSシステムとIBMシステム13
8は、記憶の二分法を減じようと試みた。しかし、両方
共記号計算に対しては大きな欠点を有する。
つまりLSPマシンと異なり、各プロセスが独自のアド
レススペースを有する。全ての永続的情報がファイル中
に含まれる。一つのプロセスのアドレススペース内にマ
ツピングされたファイルは、異なるプロセスのアドレス
スペース内にマツピンフサれたファイルへのマシンポイ
ンタを保持できない、従って、異なるプロセス間での情
報の共有が、t、tspマシンの場合より難しい。さら
に、記号言語をサポートするのに不可欠な自動的な不要
データ収集が存在しない。
最近多くの研究者達は、ホストオペレーティングシステ
ムによって与えられるファイルシステムに加えて永続的
オブジェクトを実行することを提案している。永続的及
び一時的両方のオブジェクトが2つ別々の記憶編成中に
存在するが、永続的オブジェクトは数値、ベクトル、ア
レイ、レコード、リスト等任意の一般的な形を取れ、A
LGOLやLISP等普通のプログラミング言語で処理
できる。
しかし、ポインタがソフトウェアにより数マシンサイク
ルを経て脱勢照付けされねばならないので、永続的オブ
ジェクトへアクセスするには大きなオーバヘッドを要す
る。
2レベルのメモリ記憶装置を有するシステムは、まとめ
て“システムクラッシュ”として考慮し得る電源停止、
ハードウェアの故障、ソフトウェアのエラー等から容易
に回復できる。システムクラッシュ後、何らかのハード
ウェアの問題が修理され、ソフトウェアが長期間用記憶
装置から再ロードされる。クラッシュ時に仮想メモリ内
にあったデータ及び手順は全て放棄され、システムが再
スタートされ、ファイルまたはDBMS (データベー
ス管理システム)内に記憶されていた項目が有効と見な
される。
大きな一様なメモリを実行するシステムは、特にシステ
ムのクラッシュを起こし易い、永続的オブジェクトは仮
想メモリ内に記憶されているので、クラッシュによって
変質することがある。最も最近の永続的オブジェクトは
、ページングディスクに記憶されることもされないこと
もある。大きいオブジェクトの現在値は部分的にディス
ク上に、また部分的にRAM内に存在し得る。つまり、
ディスクに記憶されている値は当てにされず、クラソシ
ヱ後システムを再ロード及び再スタートするのに使えな
い。
(発明が解決しようとする問題点) 従って、クラッシュ後仮想メモリを回復したい場合、従
来のファイル及びDBMSは使えない。仮想メモリの状
態を保存するための、何らかの機構を工夫する必要があ
る。
本発明の目的は、ハードウェアの故障及びソフトウェア
のエラーから回復可能な仮想メモリを提供することにあ
る。更なる目的は、作業の損失を最小とするため早期の
有効状態に復元可能な仮想メモリを提供することにある
。別の目的は、復元可能な有効状態を保持するために、
仮想メモリを定期的にチェックする手段を提供すること
にある。
更に別の目的は、仮想メモリ用の回復可能な改良ページ
ング方式を提供することにある。
(問題点を解決するための手段) 電源停止、ハードウェアの故障またはソフトウェアのエ
ラーの発生時にシステムを回復するため、システムの状
態についてチェックポイントでの検査が定期的に行われ
る。チェックポイントはディスク上にマーク付けされ、
記憶されている。チェックポイント間になされた変更も
記憶及びマーク付けされるが、システムの故障時に放棄
される。
システム故障が起きると、システムはチェックポイント
における状態に復帰され、通常の方法での処理が再開す
る。最新のチェックポイント後に更新された仮想メモリ
ページが、兄第ページとしてディスク上に記憶される。
対応する仮想ページが参照されたとき、どの兄第ページ
がディスクがら続出されるかあるいはそこに書込まれる
かを決める効率的な状態インジケータ機構が設けられる
この状態インジケータ機構が、ディスク上のどのページ
がチェックポイント状態に含まれるか、またどのページ
がチェックポイント以後変更された情報を含んでいるか
を指示する。通常の動作では、最新版が使われるが、シ
ステムの故障が生じると、チェックポイント前に記憶さ
れた最新版だけが使われる。
本発明を特徴付ける新規な特徴は、特許請求の範囲によ
って限定される。本発明の上記及びその他の目的と利点
は以下明らかとなり、制限の意味でなく図示の目的上、
2つの好ましい実施例を図面に示す。
(実施例) 仮想メモリ用の本回復システムを、以下まず述べる単一
レベルの永続的メモリによる実施に関連して説明する。
当業者にとって、本回復可能な仮想メモリは、本仮想メ
モリシステムで使用される仮想メモリのように、他の仮
想メモリと共に使用可能なことが明らかであろう。
゛  メモリシステム 第1図は、別々の計算用及び長期間用記憶装置を有する
従来のコンビエータアーキテクを示す。
中央プロセッサlOが、計算用記憶袋ff12と長期間
用記憶装置14にアクセスする。長期間用記憶装置14
はファイル、データベース等を保持するもので、磁気テ
ープでバンクアンプされた・1つ以上のディスクとして
通常実施される。計算用記憶装置12は仮想メモリで、
通常高速の半導体RAMメモリ16とページディスク1
8として実施される。計算用記憶装置12は中央プロセ
ッサlOにとり、非常に大きいRAMとして見える。
実際には半導体メモリ16内にない仮想メモリのアドレ
スはページングディ久々18上に位置し、中央プロセッ
サ10により参照付けられたとき半導体メモリ16内に
ロードされる。
第2図は、本発明によるアーキテクチャを有するコンピ
ュータシステムを示す。中央プロセッサ(CPU)20
は、単一の一様なメモリ22にだけアクセスする。メモ
リ22は、ページングディスフ26でバックアップされ
た半導体RAM24を有する超大型の仮想メモリから成
るのが好ましい。この仮想メモリは、第1図の仮想メモ
リ12と非常によく似ている。CPU20は、テキサス
・インスツルメント社製のエキスプロア(EXPLOR
ER)記号プロセッサ等既存のシステムとし得る。仮想
メモリ22はCPU20にとって、線形のアドレススペ
ースを含む一様な、つまり単一レベルメモリとして見え
る。
一様なメモリの抽象化(abstraction)が、
本発明による永続的メモリを実施するのに必要な記憶シ
ステムのアーキテクチャを限定する。永続的メモリシス
テムは一様なメモリの抽象化に基づいており、ここでは
プロセッサがメモリを、ポインタで相互に接続されたメ
モリを成す一組の可変サイズブロックまたはオブジェク
トとして見る。メモリシステムは、大きな情報ベースの
アプリケーションをサポートするための非常に大きなア
ドレススペースを有する。永続的メモリシステムは、数
とサイズが非常に大きく成り得る“ファイル”を含む永
続的オブジェクトを記憶することが見込まれる。従って
、基礎をなすアドレススペースのサイズは、実際のシス
テムをサポートするのに充分な大きさとすべきである。
しかし、永続的メモリの概念はアドレススペースの実サ
イズに依存しない。
前記したように、記号コンピュータ内のプロセスは全て
、同じ単一の線形アドレススペースを共有している。こ
れは、ポインタで相関された豊富で複雑な構造のオブジ
ェクトを、生成及び処理可能とする。ポインタで相互に
接続されたメモリオブジェクトの構造が、グラフを形成
する。メモリオブジェクトを相互に接続するポインタは
、ターゲットオブジェクトの仮想アドレスとして実施さ
れる。
第3図に示すように、永続的ルート110と呼ばれ、永
続的なオブジェクトを限定する区別されたオブジェクト
が一様なメモリの抽象化内に存在する。
永続的ルート100は、固定の仮想アドレス及びディス
クロケーションに位置する区別されたオブジェクトであ
る。
オブジェクトは、全て、永続的ルート(root)の移
行閉包(transitive closure)内に
存在し、すなわちポインタに追従することによって永続
的ルートから到達可能であり、永続的である。永続的ル
ートは、システムの停止つまりクラフシェが起きても持
続する。一般に、永続的ルートは、他のテーブルまたは
永続的オブジェクト等の構造を指すテーブルへのポイン
タを含み得る。つまり、永続的ルートが全ての永続的オ
ブジェクトを固定する。
オブジェクトの永続属性は、そのオブジェクトを生成し
たプログラムが終了した後でも、該オブジェクトが不要
データとして集められるのを避けられるかどうかにだけ
依存する。この点は、該当オブジェクトを永続的ルート
の移行閉包内の一組のオブジェクトのメンバーとするこ
とによって容易に行える。記憶媒体の特性でなく永続的
ルートにだけ基づく永続性は、あるオブジェクトの永続
的属性をその種類または他のオブジェクトとの関係から
完全に分離するのを可能とする。数値、文字、リスト、
手順、環境等が、仮想メモリ内に存在する間永続的なオ
ブジェクトとなり得る。
このため、永続的オブジェクトとしての手順の呼出しは
、一時的オブジェクトとしてのその呼出しと同程度に容
易且つ効率的である。事実、マシンから見れば、一時的
及び永続的両オブジェクトは区別できない。ユーザから
見ると、一時的及び永続的両オブジェクトを別々に扱う
必要がない。
全てのユーザは、オブジェクトを永続的とするためには
、そのオブジェクトが永続的ルートの移行閉包内に入れ
られねばならないことを知っていればよい。
プロセッサは多数のルジスタ′″ (101〜108で
示す)を含む、プロセッサは、何れかのレジスタがその
メモリオブジェクトへのポインタを保持していれば、該
オブジェクトにアクセスできる、すなわちその個々のワ
ードを読み書きできる。この文脈でのワードレジスタは
、一般的な意味で使われる;つまりプロセッサ内のハー
ドウェアレジスタまたはスクラッチパッドメモリとし得
る。これらのレジスタが、メモリシステムの一時的ルー
トlO9を限定する。これらは、システムの停止つまり
クラッシュが起きるとそれ以上持続しない。一時的ルー
トの移行閉包内にあるが永続的ルートの移行閉包内にな
い全てのオブジェクトが、一時的と呼ばれる。残りのオ
ブジェクトは全て不要データで、不要データコレクタに
よって再生使用される。
第3図はメモリシステムの一つのスナップショット例を
示し、内部のオブジェクトを分類分けしている。オブジ
ェクト間及びCPUレジスタからオブジェクトへの矢印
が、ポインタを表わす、ポインタは常に、指されるオブ
ジェクトの始めを参照する。従って例えば、オブジェク
ト124を指す4つのポイントは全て同じ値を持ち、ブ
ロック124の始めを指している。永続的ルー)110
と一時的ルート109の各移行閉包を決めることによっ
て、オブジェクト126.129.130は一時的;オ
ブジェクト120.121.122.123.124.
125.127は永続的;及びオブジェクト12B、1
31は不要であることが分る。
各メモリオブジェクトは、連続的な仮想アドレス内に記
憶される1つ以上のメモリワードまたはセルから成る。
プロセッサ20は、何れかのレジスタがそのメモリオブ
ジェクトへのポインタを保持していれば、該オブジェク
トにアクセスできる。
すなわちその個々のワードを読み書きできる。例えば、
個々のセルにアクセスする一つの方法は次の通りである
。レジスタ101がメモリオブジェクト123へのポイ
ンタを含んでいれば、R[!AD(1,3)命令を実行
することによってメモリオブジェクト123の第3ワー
ドを読取れる。但し命令中の“1″はプロセッサのレジ
スタ101を示し、“3″はレジスタ101によって指
されているメモリオブジェクト(123)の第3ワード
を示す。レジスタ101の内容が“3”に加えられ、ワ
ードの仮想アドレスを読取れるようにする。
同じくプロセッサ20は、WRITE  (1,4)と
いうデータ命令を実行することによって、メモリオブジ
ェクト123の第4ワード内にデータを書込める。プロ
セッサ20は、論理アドレスを介してのみメモリオブジ
ェクトにアクセス可能である。
論理アドレスは対(i、j)からなる、但し、“i”は
プロセッサ内レジスタの識別番号、′j”はプロセッサ
内レジスタ“i″で指されているオブジェクトのj番目
のワードを示す。
一様なメモリの抽象化内におけるメモリオブジェクトの
概念が、数値、プール論理、文字、ストリング、LIS
P C0N5セル、アレイ、レコード、手順または環境
等、高レベルのプログラミング言語で使われるオブジェ
クトと対応している。これらの言語レベルのオブジェク
トは、ポインタで相互に接続された1つ以上のメモリオ
ブジェクトを用いて実用できる。アプリケーションレベ
ルのオブジェクトは、言語レベルのオブジェクトを組合
せて構成される。
オブジェクトの永続的特性は、オブジェクトが永続的ル
ー)110の移行閉包内にあるかどうかにだけ基づく、
オブジェクトの永続属性は、基本概念である。これは、
オブジェクトがそれを生成したプログラムの寿命を越え
て持続できるかどうかにだけ依存すべきである。オブジ
ェクトの種類や、オブジェクトが存在する記憶媒体の特
性に依存すべきでない0通常、数組の関連のない永続的
なオブジェクトグループが存在するので、永続的ルート
110は通例まず、永続的オブジェクトへのポインタだ
けを含むオブジェクトを指す。多くの記号/AI計算で
所望な制限のない共有を容易化するため、一時的または
永続的どちらのオブジェクトも他の任意のオブジェクト
を指せる。
永続的ルートにだけ依存してオブジェクトの永続性を達
成する本機構に対し、従来型及び記号型どららの現マシ
ンでも、オブジェクトは長期間用、記憶装置すなわちデ
ィスク記憶装置に記憶されたときだけ永続的になる。 
MULTIC5やLB?I−システム/38においてさ
え、一部の種類のオブジェクトだけすなわちファイルが
永続的になり得る一方、手順等信の種類のオブジェクト
はなり得ない。
永続的ルート110を用いれば、オブジェクトの永続属
性は、そのオブジェクトを生成したプログラムが終了し
た後でも、該オブジェクトが不要データとして集められ
るのを避けられるかどうかにだけ依存する。この点は、
該当オブジェクトを永続的ルート110の移行閉包内の
一組のオブジェクトのメンバーとすることによって容易
に行える。
オブジェクトの一時/永続属性は、必ずしも永続的な属
性でなくてもよい。オブジェクトは一時的オブジェクト
として生成された後、永続的ルート100の移行閉包内
に属することだけに基づいて永続的オブジェクトになれ
、次いで永続的ルート100の移行閉包から出ることに
よって一時的状態に戻れる等々可能である。
仮想アドレスとして実施される各ポインタは、メモリ内
のポインタとして標識付けされる。この標識付は機構は
、プロセッサがポインタを指定、作成または偽造できな
いことを保証するのに使われる。プロセッサは、論理メ
モリブロックへの参照によってのみメモリにアクセスで
きる。整数、浮動小数点数、ストリング、アレイ、リス
トまたは閉包等その種類を示す追加の標識付は情報を、
各オブジェクトに付属してもよい、この標識付は情報は
、特定の種類のオブジェクトで定義されてないまたは不
合法な演算を実行する試みが、゛適切な例外処理ルーチ
ンにトラップされるのを保証するのに使われる:例えば
、ストリングオブジェクトに整数を加算しようとする試
みは例外を引き起こす、各メモリへの参照は上下限につ
いてチェックできる。すなわち、論理アドレス(i、j
)の“j″は、プロセッサ内レジスタ“i”で指されて
いるオブジェクトのサイズを越えてはならない。
メモリシステムの性質は、不要データ収集されること、
及びいわゆる懸垂参照問題を生じないことを必要とする
。不要データ収集は、限定された量のメモリスペース内
での計算過程を可能とするのに不可欠である。不要にな
ったオブジェクトで占められているメモリスペースを再
生し、再使用しないと(すなわち不要でないオブジェク
トから不要オブジェクトへの未決ポインタが存在すると
)、システムは最終的にメモリが一杯になって詰込み停
止に至る。不要データ収集は自動的に実時間でなされる
のが好ましく、ユーザプロセスと同時に実行されるプロ
セスであるのが好ましい、しかし、この点は本発明にと
って必須でなく、不要データ収集は夜間等装置の不使用
時に行われてもよい。
懸垂参照問題は、明示削除されたオブジェクト用のメモ
リスペースが、そのオブジェクトへの未決ポインタが存
在しないことを立証しないで再生されたときに起きる。
削除オブジェクトで占められていたスペースがそのよう
な立証の前に再生されると、そのオブジェクトへの未決
ポインタが空のスペースつまり非割当メモリを指すこと
になるか、あるいはその後再生スペースが新しいオブジ
ェクトに割当てられると望ましくないオブジェクトを指
してしまう。いずれにせよ、システムの保全性が記され
る。
削除オブジェクトへの未決ポインタが存在しないことの
立証は、不要データコレクタ内に埋込まれる。削除オブ
ジェクトは、その削除時に墓石として特別にマーク付け
される。墓石ブロックへの未決ポインタは全て、不要デ
ータコレクタによって検出され、破壊される。墓石ブロ
ックへのポインタが残ってないと、そのスペースが自動
的に再生される。
メモリシステムの保全性という概念は、ポインタで相互
に接続されたメモリオブジェクトのグラフ構造の保全性
を指す、この概念に基づき、ポインタを偽造するのは不
可能で、オブジェクトの境・界外の情報はアクセスでき
ず、どの種類のオブジェクトについての未定義または非
合法の演算は適切な例外処理措置を生じ、また懸垂参照
問題は存在しないことによって、メモリシステムの保全
性が保たれる。このため、メモリオブジェクトのグラフ
は1つの無矛盾状態から別の無矛盾状態へのみ移行し、
構造上の保全性を保証する。
一様なメモリの抽象化は、プロセッサ内レジスタによっ
て指されるメモリオブジェクトのワードを、そのオブジ
ェクトが一時的または永続的どちらであるかに関係なく
同じ容易さ及び速度でアクセスできることから、一時的
及び永続的両オブジェクトを同じ容易さ、柔軟性及び効
率で処理可能にするという目標を達成する。従って、永
続的オブジェクトとしての手順の呼出しは、一時的オブ
ジェクトとしてのその呼出しと同程度に容易且つ効率的
である。事実、装置に関する限り、一時的及び永続的両
オブジェクトの処理に差はない、一様なメモリの抽象化
は、単一のプログラミング言語に基づき、一時的及び永
続的両オブジェクトに対し同じ一組の柔軟で強力な演算
を行うのを可能とする。新しい手順を、永続的または一
時的どちらのオブジェクトとしても呼出せる。従来のシ
ステムで上記を行えるものはない二つまり従来のシステ
ムにおける永続的オブジェクトへのアクセスは、一時的
オブジェクトへのアク妄スより著しく遅いか、またはは
るかに複雑である。
上述した一様で永続的なメモリと後述する回復可能な仮
想メモリとを含む、メモリシステム全体の各部分間の関
係を第9図に示す。システムを見る各種のレベルが、メ
モリ抽象化の階層として示しである。
最下レベルに実際の物理的メモリ、すなわち、主半導体
RAMメモリ及びベージングディスクが位置している。
抽象化の次レベルは、後述する回復可能な仮想メモリで
ある。その次のレベルは仮想メモリの不要データ収集を
示し、数種類の周知な方法の一つで行える。一様なメモ
リの抽象化は、回復可能な仮想メモリのトップで実施可
能な幾つかのうちの一つである。上述した永続的メモリ
は次層の抽象化として実施され、後述する弾性オブジェ
クトの概念は永続的メモリの上で実施される。
最後に、エキスパートデータベースシステム等のユーザ
アプリケーションが、階層のトップで実施される。
回′可「な 、へメモリ 次に、回復可能な仮想メモリを説明する。システムのク
ラッシュ時に永続的メモリシステムの内容を保存するた
め、仮想メモリ自体のレベルにおける回復機能が必要で
ある。従来型及び記号型どちらの現在の装置においても
、仮想メモリのレベルでの回復機能は必要とされていな
い、システムのクラッシュが起きると、計算用記憶装置
内の情報は失われると見なされるが、長期間用記憶装置
内の情報は、プロセッサによって直接アクセスできない
不揮発性のディスク記憶装置上に存在するので持続する
。アプリケーションまたはユーザは、クラッシュ以後の
持続のため、計算用記憶装置から長期間用記憶装置へ情
報を移すことが求められる。システムのクラッシュ後、
システムは長期間用記憶装置内にある情報を使って再ス
タートされる。このため、回復は現在の装置において重
要な問題でない、しかし、永続的メモリシステムでは計
算用及び長期間用再記憶装置間に区別がないので、上記
の利点は犠牲にされねばならない。
回復システムで対処される故障は、2つの大きいカテゴ
リーに分けられる:つまりシステムのクラッシュと媒体
の不良、システムのクラッシュは、電源停止、ソフトウ
ェアのエラーまたはハードウェアの故障によって起きる
。ソフトウェアのエラーは、アプリケーションまたはシ
ステムソフトウェア中のバグ、正しくないデータやコマ
ンド等によって生じ得る。ハードウェアの故障は、プロ
セッサ、主メモリ、またはI10装置とそのコントロー
ラでの一時的及び永久的故障に原因する。ディスク記憶
装置の不良に原因する媒体の不良は、以下に説明する理
由のためハードウェアの故障から意図的に除外されてき
た。
システムのクラッシュは、ハードウェア自己チェック回
路、電源停止検出器の割込、ソフトウェアエラー処理ル
ーチンがソフトウェアのエラーから回復不能なことによ
って、信号発生可能である。
ハードウェア自己チェック回路は一般に、メモリ及びバ
ス上のパリティエラー検出器、ディスク用のファイアコ
ード検出器、自己点検チェッカー、ウォッチドッグプロ
セッサ等を含む。システムクラッシュの待ち時間、すな
わちシステムクラッシュによるシステム状態の変質とク
ラッシュの実際の検出との間の時間は極めて短かいので
、後述するチェックポイントをその短時間中に取る可能
性は無視できるほど小さいと見なされる。
システムのクラッシュが起きると、一様なメモリ全体の
現状態は変質したと見なされ、それ以上の計算進行は不
可能になる。システムのクラッシュが検出されると、そ
の故障が永続的なハードウェアの故障によって生じたも
のかどうかを識別する診断ルーチンが実行される。永続
的なハードウェアの故障が検出されると、プロセッサボ
ードやメモリモジュール等の故障ハードウェアが、何ら
かの回復ステップを施す前に交換または補修される。永
久的なハードウェアの問題が検出されなければ、回復ス
キーマが後述するように、メモリシステム全体の状態を
ディスクに記憶されている最後のチェックポイント状態
へ復帰する。このチェックポイント状態から、正常の計
算が再開可能である。
ソフトウェアの不良に原因したシステムクラッシュの方
が、ハードウェアの故障に原因したものよりはるかに一
般的であると推定される。単一ユーザ装置におけるシス
テムクラッシュの平均率は毎月数回程度と見込まれ、数
分間の平均回復時間が許容可能である(但し永久的なハ
ードウェアの故障は含まない)。
ディスクでの記憶に影響を及ぼす媒体不良は、ディスク
ヘッドのクラッシュ、磁気媒体自体の劣化、またはディ
スク駆動ドライバ中のバグに原因する。媒体不良はシス
テムのクラッシュより、はるかに頻度が低いと推定され
る。媒体不良の平均率は1年に数回で、媒体故障後の平
均回復時間は数時間と見込まれる。
媒体不良をシステムのクラッシュと別々に扱うのは、媒
体の不良はディスク上の最後のチェックポイント状態も
変質させ、システムクラッシュ後の回復で使われるロー
ルバック法が機能しないという理由による。媒体の不良
に対処するには、ディスク上の最後のチェックポイント
状態をストリームテープ等別の媒体に記録する必要があ
る。媒体の不良発生後は、不良ディスクを新しいディス
クと交換し、それを記録した最後のチェックポイント状
態に基づき初期設定する必要がある。
上記したような、システムクラッシュから回復するため
の好ましい回復スキーマを次に説明する。
回復スキーマは、ユーザまたはアプリケーションプログ
ラムによって開始でき、マシン状態全体を効率的な方法
で定期的にチェックする新規な機構に基づく。チェック
ポイントスキーマは、最後数分以内に有効だったマシン
状態全体をディスク上に保つ。
好ましい実施例では、ページド仮想メモリを用いる。メ
モリはメモリオブジェクト120〜131のサイズに関
わりなく、例えば2000ワードという所定サイズのブ
ロック単位で、ページングディスクへ及びそこからペー
ジングされる。従って、小さいオブジェクトは単一ペー
ジ上に存在し、大きいオブジェクトは複数のページにわ
たることがある。
メモリアロケータの要請で新たな仮想ページが作成され
ると、それは正しく初期設定された主メモリ24内に入
れられ、同時にページングディス・り26上にも作成さ
れる。後述するように、仮想ページは兄第または単生児
の形でディスク上に作成される。好ましい兄第の形では
、2つの隣接するディスクブロックが仮想ページに割当
てられ、単生児の形では単一のディスクブロックが割当
てられる。将来ページが変更される見込みがなければ(
例えば命令を含むページ)、それはディスクのスペース
制約のため単生児の形で作成される。
データを含むと見込まれる場合には、兄第の形で作成さ
れる。
第4図に示すごとく、兄第の形で仮想ページ用に割当て
られた2つの隣接するディスクブロックは兄第と呼ばれ
る。兄第ページはXとX′で表わされ、単生児ページは
Sて表わされる。
第4図に示すごとく、ページヘッダーがディスク上のペ
ージデータと隣接している。ページング、ディスク26
から主メモリ24内ヘフエソチされるとき、ヘソグー情
報が主メモリ24内の他の所定のページに分散される。
ページがディスクに書込まれる際、そのヘソグー情報が
データと一緒に集合される。分散がページヘッダーをデ
ータから分離する行為を参照し、集合がヘングーとデー
タの再結合を参照する。この点は、ページのデータ部が
主メモリ内のページと対応し、ヘッダーが追加の情報で
あるためになされる。この動作を効率的に行うため、デ
ィスクコントローラは分散−集合機能を持つべきである
。分散−集合機能は性能上でだけ必要とされ、回復可能
な仮想メモリの正しい機能上必要なものではない。
ページがページングディスク26に書込まれると、その
ディスク書込動作の時間がページにスタンプされる。第
4図中、TS(x)が時間スタンプX、TS(x ’ 
)が時間スタンプX′を示す。TS(s)は時間スタン
プSを示す0時間スタンプを記録するのに好都合な場所
は、ページへラダーである。ヘッダーに書込まれた時間
スタンプは、システムのクラッシュ後も持続する。ペー
ジはディスクの書込速度より速く書込めないので、時間
スタンプの刻みはディスク書込動作の時間より適度に小
さくすればよい。10ミリ秒の刻みの場合、64ビツト
のタイマーは58億年用の一意的なタイムスタンプを発
生できる。従って、ページへラグ−における64ビツト
の時間スタンプフィールドで充分である。
ページが兄第の形で作成されるとき、その兄第は共にこ
れから書込まれることを意味する−1及び−2の時間ス
タンプを含んでディスク上に形成される。勿論、別の方
式も可能である。ページが単生児の形で作成されるとき
、−1の時間スタンプを含んでディスク上で初期設定さ
れる。ディスク上での初期作成後変更されたディスクブ
ロックは全て、それぞれ特有の時間スタンプを有する。
最後のチェックポイント動作の時間は、Tchkで示さ
れる。これは信頼できる方法で、既知のディスクロケー
ションに記憶される。Tchkの更新は、信頼できるも
のであることが保証されねばならない。Tchkの更新
で起きるエラーは、チェックポイントスキーマを破壊す
る恐れがある。値Tchkの保全を保証する一つの方法
は、2つの同一コピーを取ることである。Tchkが更
新されるべきとき、まず第1のコピーを変更した後、正
しい更新を保証するためチェックされる。この動作中の
システムクラッシュが第2のコピーに影響を及ぼすこと
があるので、Tchkの初期値が保存される。第1コピ
ーの更新後、第2のコピーが更新されチェックされる。
この動作中でのシステムクラッシュは、Tchkの正し
い新値が第1のコピー中にあるので、システムの保全に
影響を及ぼさない。つまり、どの時点でも一方がTch
kの正しい値であることが保証される。
チェックポイント状態は、平常の動作中にはアクセスで
きず、媒体の不良でない限り乱されないという意味で“
原始”的である。Tchkより小さいつまり早い時間ス
タンプを持つ単生児のページはチェックポイント状態に
属する一方、Tchkより大きい、つまり、遅い時間ス
タンプを持つ単生児のページはチェックポイント状態外
にある。兄第ページの鳩舎、TS(x) <  TS(
x ’ ) < Tchkすなわち両兄第共Tchkよ
り小さい時間スタンプを有すると、大きい方の時間スタ
ンプここてはX′を持つページがチェックポイント状態
に属し、他方ここてはXを持つ方のページは古い情報を
含む。一方のページがTchkより小さい時間スタンプ
を持ち、他方のページがそれより大きい時間スタンプを
持つと、小さい方の時間スタンプを持つページがチェッ
クポイント状態に属し、大きい方の時間スタンプを持つ
ページはチェックポイント状態外にある。時間スタンプ
が初期設定及び更新される方法により、兄第ページは同
時にTchkより大きい時間スタンプを持ち得ない。時
間スタンプは、最後のチェックポイント状態に属するペ
ージと属さないページとの間を区別するためのメカニズ
ムに過ぎない。
ページ不良の場合、失われたページが兄第の形であると
、アクセス時間を減少するため、両ページ共1回のディ
スクアクセスで読込まれる。これが可能なのは、両ペー
ジがディスク上で相互に隣接しているためである。2つ
の隣接するディスクページをフェッチするのにかかる時
間は、単一ページをフェッチするのにかかる時間よりわ
ずかに大きいだけと推定される。TI EXPLORE
RLISP装置の場合、第2のディスクページをフェッ
チするのにかかる平均の追加時間は、合計の約2%より
小さいと推定される。
またTS(x) <TS(x’) <Tchkすなわち
兄第ページが共にTchkより小さい時間スタンプを持
つと、大きい方の時間スタンプつまりX′を持つページ
が主メモリ内に保持され、他方つまりXを持つページは
放棄される。この状態はTS(x ’ ) <TS(x
)< Tchkの場合も同様である。保持された方のペ
ージがチェックポイント状態に属する一方、放棄された
方のページは無用な情報を含む。このページが後でディ
スクに書込まれるとき、それは放棄されたXを持つペー
ジのディスクスペース上に書込まれ、X′のディスクス
ペース上には書込不能である。さもないと、チェックポ
イント状態が破壊されてしまう、ディスクへ再び書込ん
だ後、時間スタンプの関係はTS(x ’ ) <Tc
hk<TS(x)となる。
この動作が第5図に示してあり、ここでは最新のチェッ
クポイントが4pmに取られ、時間スタンプ=3pmを
持つX′が主メモリ内に保持されるものとしである。そ
の後、変更されたページが5pmにディスクのXのディ
スクスペース上に書き戻される。
TS(x) <Tchk<TS(x ’ )すなわちT
chkが両兄第ページの時間スタンプ間にあると、大き
い方の時間スタンプつまりX′を持つページが主メモリ
内に保持され、他方つまりXを持つページが主メモリか
ら放棄される。この場合を第6図に示す。第5図と第6
図との相違は、ページの書き戻されるディスク上のスペ
ースにある。X′は最後のチェックポイント状態に属さ
ず書き換え可能な一方、Xはチェックポイント状態に属
し保存されねばならないので、第6図で保持されたペー
ジはそれ自身のディスクスペースつまりX′上に書き直
される。一方、第5図では前記の理由から、X′は他方
のページつまりXのディスクスペース上に書き直される
。ページが変換されディスクに書込まれても、時間スタ
ンプの関係は変らない。
単生児ページの場合、TS(s) < Tchkすなわ
ちその時間スタンプがTchkより小さいと、それは第
7図に示すように、変更時兄弟の形に変換されねばなら
ない。この変換が必要なのは、チェックポイント状態が
書き換えられてはならないからである。
変換後、時間スタンプの関係はTS(x) <Tchk
<TS(x’)となる、単生児が兄第に変換されるとき
、それがXにコピーされる一方、変更されたものがX′
に書き換えられる。他方、単生児ページの時間スタンプ
がTchkより大きいと、それはチェックポイント状態
に属さないので、兄第ページへの変換は必要でない。
つまり、ディスク上での各仮想ページが、その仮想ペー
ジが更新アクティブか更新非アクティブであるかにそれ
ぞれ応じ、2つの異なる形の何れかつまり兄第か単生児
の形で記憶される0名前が意味するように、最近更新さ
れた仮想ページが更新アクティブと呼ばれ、最近更新さ
れなかった仮想ページが更新非アクティブと呼ばれる。
ディスクスペースの要求を減じるため、システム内のし
きい値パラメータで定義される長期間兄第両ページが更
新非アクティブのままだと、兄第ページが単生児ページ
に変換して戻される。またTS(x) <TS(x ’
 ) < Tchk且つTchk −TS(x)  >
 (シきい値)だと、ディスクスペースマネージャが兄
第ページを単生児ページに変換して、そのスペースを再
生する、単生児ページSはオリジナルの内容と、最新で
ある方の兄第ページの時間スタンプを含む。
システムのクラッシェが生じると、ページテーブルが復
元される場合、それは変換されたページの古いディスク
ロケーションを指す。この古いロケーションは、ディス
クマネージャによって再割当されたため、関連のない情
報を含んでいることがある。従って、仮想メモリアドレ
ススペース外の前ページログ(FP−ログ)を保つ必要
がある。
兄第ページが単生児ページへ及び逆に変換される毎に、
エントリがFP−ログに書込まれる。このエントリが仮
想ページを識別し、古い(変換前)、と新しい(変換後
)ディスクアドレスを示す。チェックポイント状態のペ
ージテーブル部分における情報が正しくなくても、FP
−ログが変換されたページの正しいディスクロケーショ
ンを、システムのクラッシュ後再計算するのを可能とす
る。
FP−ログの処理は、更に第8図に関連して説明する。
兄第の一方または単生児ページが変更される毎に、兄第
ページが最後のチェックポイント後の時点でディスクに
書き戻される。これは最後のチェックポイント後だが可
能性のあるシステムクラッシュ前に書込まれるので、変
更した情報を含むことがあり得る。実際にシステムクラ
ッシュが生じると、クラッシュ後の回復中にその時間ス
タンプを−1に降格することによって、その兄第ページ
がマシン状態から消去されねばならない、その時間スタ
ンプが−1に降格されると、兄第ページは確実に無用と
され、クラッシュ後の回復後に再開される平常の動作中
にページインしたとき放棄される。時間スタンプが降格
されてないと、ページインしたとき兄第ページは主メモ
リ内に保持されたままで、ロールバッグプロセスでチェ
ックポイント状態を再生できなくなる。
クラッシュ後の回復中に時間スタンプが降格さればなら
ない兄第ページは、消去(Expunge)ログと呼ば
れるログを用いて突き止めることができる。
ページが最後のチェックポイント状態に属し且つ最後の
チェックポイント以後ページがディスクに書込まれてい
ないなら及びその場合にのみ、消去ログが最初にディス
クに書出されたページのトラックを保持する。これは、
TS(x) < TS(x ’ ) <Tchkまたは
TS(x’)<TS (x) < Tchkの場合に生
じる。仮想ページの識別とそのディスクアドレスが、デ
ィスクへの書込時間と共に、消去ログの終りに添付され
る。消去ログは、システムのクラッシュ後も持続しなけ
ればならないので、仮想メモリ外に維持されねばならな
い。この点は、例えば、異なるディスク上またはページ
ングディスクの離れた特別のセクター上に書込むことに
よって行える。
いずれにせよ、消去ログはCPUによりアドレス不能で
ある。
次のチェックポイント前にシステムクラッシュが生じる
と、クラッシュ後の回復プロセスの一部として、消去ロ
グが処理される。最後のチェックポイント以後ログ内に
記録された各ページがディスク上に突き止められ、高い
方の時間スタンプを持つ兄第ページの一方が、その時間
スタンプを−1へ降格することによって消去される。そ
の時間スタンプを−1に降格することで、その兄第ペー
ジは無用とされる。
消去ログの保守は、ディスクへのアクセスを必要とする
。この必要条件は一組の数ページにわたって償還できる
。−組内のページが書出される度にエントリを消去ログ
へ書込む代りに、その組内の多数のページを、それらが
ディスクから読出される途中でキニーに入れることもで
きる。組内の全ページ用のエントリを最初に構成して消
去ログ内に書込んだ後、全ページを実際に書出すことも
できる。あるいは、小型の不揮発性ランダムアクセスメ
モリを用いて、消去ログ内のエントリをバッファ処理し
てもよい。このバッファからディスクへの転送は、バッ
クグランド処理として行われる。
チェックポイントでの動作を完了するのに必要な時間を
減少させることが、非常に望ましい。チェックポイント
での動作の主な部分は、ダーティページをディスクに書
込むことによってそれらを一掃することである。ダーテ
ィページとは、最後のチェックポイント設定後に変更さ
れたページのことである。上記の時間は、チェックポイ
ントプロセスによる休止がユーザに気付かれない程度に
、減少されねばならない、このような休止は、対話中の
ユーザをいらいらさせ、グラフィックスやアニメーショ
ン等の時間が厳密なアプリケーションにとって致命的で
ある。
チェックポイントでの処理時間は、2つの方式で減少で
きる。第1は、連続するチェックポイント間で絶えずダ
ーティページを一掃し、チェックポイント時点で主メモ
リ内に存在するダーティページ部分が妥当に小さくなる
ようにすることである。これは、バックグランド処理を
絶えず動作させることによって行える。ダーティページ
を選択して一掃するための良い発見法は、“最近変更さ
れていないダーティページを選択すること”である。第
2は、以下説明するように、チェックポイント時点でユ
ーザに認知されない休止によってダーティページを一掃
することである。
チェックポイント処理は、アプリケーションがシステム
によって開始される。チェックポイント時点で、チェッ
クポイント処理に入る。これは、プロセッサ内の全レジ
スタつまり一時的ルートを、仮想メモリの一部であるス
ナップショットオブジェクト内にセーブする。スナップ
シッフトオブジェクトは固定で既知のディスクロケーシ
ョンに位置し、任意に永続的ルートの移行閉包の一部と
し得る。次いで、主メモリ内の全ダーティページがディ
スクに書込まれる。最後に、時間スタンプを用いた実行
のため、Tchkがディスク上で現時間に更新され、チ
ェックポイント処理を完了する。前記したように、Tc
hkは連続的に更新されねばならないか、あるいは古い
値が保持される。チェックポイントでの動作直後、全て
の兄第ページについてTS (x) とTS(X’)は
共にTchkより小さくなければならず、また全ての単
生児ページについてTS (s)はTchkより小さく
なければならない、別の実施例では、全ての兄第ページ
がSib −1またはSib −2何れかの状態でなけ
ればならない。あるいは、それまでの一時的オペジェク
トが全て、一時的ルートが永続的オブジェクトになるこ
とで永続的ルートの移行閉包の一員になり、永続的とさ
れる。
チェックポイント処理にかかる認知時間の更なる減少は
、主メモリ内のダーティページを一掃するのにコピー・
オン・書込(copy−on−押r i te)法を用
いることよって可能である。この方法を用いれば、主メ
モリ内の全ダーティページはコピー・オン・書込として
マーク付けされる;っまり以下述べるようにそれらを書
込もうとするどんな試みもトラップを生じる。このマー
ク付け(よ一般に、仮想メモリページのロケーショント
ラックを保持するデータ構造であるページテーブルにお
いてなさ、れる0次いで、プロセッサ内レジスタがスナ
ップシッットオブジェクトから復元され、平常の動作が
再開する。これら全ての動作は、プロセッサ内レジスタ
をディスク上のスナップショットオブジェクト内へ記憶
する1回だけのオブジェクト動作を含む。従って、これ
らの全動作は一般的なウィンチェスタディスクシステム
において100ミリ秒よりかなり早(完了され、ユーザ
認知の休止なく平常の動作を再開可能とする。
コピー・オン・書込の機構は、平常動作の再開前に、ダ
ーティページをディスクへ書き戻す際に時間が費されな
いので、平常動作の極めて迅速な再開を可能とする。平
常動作の再開後、コピー・オン・書込としてマーク付け
されたページを変更しようとするプロセッサによるどん
な試みもトラップを生じる。トラップハンドラーがまず
主メモリ内のページをコピーしてから新しいコピーが変
更されるが、オリジナルのコピーはチェックポイント状
態に属するので乱されない、それ以後の変更しようとす
る試みは、この新しいコピーに向けられる。コピー・オ
ン・書込としてマーク付された全てのページがそれらを
ディスクへ書込むことによって一掃されるまで、新たに
生成されたダーティページは一掃されない、コピー・オ
ン・書込のページが一掃されている間は、平常動作が進
行する。ダーティページの一掃は、ユーザ処理と同時に
実行されるシステムによって達成されるのが好ましい、
コピー・オン・書込としてマーク付けされた全ページが
一掃されたときにのみ、Tchk変数が現時間に更新さ
れ、チェックポイント動作の完了を信号発生する。チェ
ックポイント動作の終了時には、マシン状態全体がディ
スク上に記憶されていることに注意されたい。
第8図は、クラッシュ後回復時の作業を示す。
システムのクラッシュ後、永久的なハードウェアの故障
であるかを検出する診断が実行される。診断結果が永久
的なハードウェアの故障を指示しないか、あるいは指示
された故障の補修後、EP−ログが処理される。この処
理は、EP−ログ内の各エントリを読むこと、その中に
含まれた新しいディスクロケーションを用い、チェック
ポイント状態に記憶されたページテーブルを更新するこ
とを含む。次に、消去ログで指示された各ページがディ
スク上で突き止められ、高い方の時間スタンブを持つ兄
第ページが、前述のごとくその時間スタンプを−1に降
格することによって消去される。
Tchkより大きい時間スタンプを持つ単生児ページも
消去される。その後、プロセッサ内レジスタをスナップ
ショットオブジェクトから復元することによって、装置
の状態が最後のチェックポイントに対応した状態に復帰
される。
システムは再スタート前に、外部世界と調和されねばな
らない、復元されるチェックポイント状態の一部は、チ
ェックポイント時点に特有なシステムの構成とI10イ
ンタフェースに関連している。従って、その状態が現在
の時間と構成に一敗されねばならない0例えば、チェッ
クポイント状態がタイマー変数を含む場合、この変数は
現時間を反映するように調整されねばならない。この調
整後、チェックポイント状態から平常動作へ再開可能と
なる。
前述した媒体つまりディスク不良の問題ぽ、ディスク上
の最後のチェックポイント状態を、ストリームテープ等
何らか別の記憶媒体に記録することによって対処できる
。この処理は、チェックポイント記録処理と呼ばれる。
ディスク不良が生じたら、損傷ディスクを新しいディス
クに代え、記録しである状態を使って新しいディスクを
初期設定することができる。最後のチェックポイント状
態でのページ中、最後の記録状態に対してダーティなペ
ージだけを記録媒体にコピーすればよい。
最後の記録状態に対してダーティなページとは、ページ
ヘッダー内でフラグを持つページを指す。
このフラグはページテーブル内にも維持できる。
チェックポイント記録処理が進行中だと、その完了まで
、次のチェックポイントは設定されない。
チェックポイント記録処理は、それほど頻繁でない動作
で、多分夜間の動作としであるいはユーザが装置を使っ
ていないとき、1週間にほぼ数回生じる。
どの兄第ページを使うかをディスクから選択するための
別の実施例は同じように動作するが、ページへ7グーの
使用及び時間スタンプの発生と保守を用いる必要がない
、この機構の動作理論は、兄第ページx、x’とTch
kの各時間スタンプ間の関係を記述するのに4つの状態
だけが必要であるという事実を認識することである。両
兄第は、第5図に示すようにTchk前に書込まれれば
XがX′より古い(状態5b−1)かX′がXより古い
(状[5b−2):また第6図に示すように、Xがチェ
ックポイント前に書込まれ、X′がチェックポイント後
に書込まれることもあり(状態5ib−3);更に第6
図と逆に、X′がチェックポイント前、Xが後に書込ま
れることもある(状態Sib  4) 。
これら4つの状態を第1表に示す。
■ 状態名 3ビフ)コーF表示    摘  要ビット位
置  2 1 .0 Sib−I      X OO共にチェックポイント
前書込み、X′の方が最近 5ib−2X 01  共にチェックポイント前書込み
、Xの方が最近 5ib−3010Kチェックポイント前書込、X′チェ
ックポイン ト後書込 5ib−4011x’チェックポイント前書込、Xチェ
ックポイン ト後書込 Sing−1110sチェックポイント前書込 Sing−2111sチェックポイント後書込 前記の実施例で使われる時間スタンプの実際値は、兄第
の時間スタンプ及び最新のチェソクボイントとの比較を
目的としてのみ重要である。この別の実施例では、上記
のように時間スタンプ間の関係を4つの状態に簡単に抽
象化する。兄弟ページの4状態間を完全に区別するのに
、2ビツトだけ必要である。第1表は、単生児ページが
使われる場合に必要な2状態も示している。つまり、各
状態をコード化するには3ビツトを用いればよい。
これは主メモリ内の各ページに時間スタンプのサイズよ
りはるかに小さく、以下述べるような多くの利点をもた
らす。
標準的な仮想メモリ管理機構におけるのと同様、ページ
テーブルは、ページ不良が生じたときにディスク上のペ
ージを突き止めるのに使われる。ページテーブルは、仮
想のページアドレスをディスクアドレスと対応付けるデ
ータ構造で、一般に状態以外の情報を含む、このような
ページテーブルのデータ構造の単純化した形を第1O図
に示す。
ページ不良が生じると、一般にハツシングまたはその他
のサー、チ法によって仮想ページアドレスがページテー
ブル内で突き止められ、対応した物理的ディスクアドレ
スが検索される。好ましい実施例では、兄弟ページの状
態条件を記述するのに必要なビットが、ページテーブル
内の3状態ビツト中に含まれている。物理的ディスクア
ドレスの情報は常に兄弟の一方、例えばXを指し、他方
X′はXの物理的ディスクアドレスから計算可能なある
ディスク位置で突き止められる0例えば、兄第両ページ
は隣接するブロック内、異なるディスクヘッド用の同じ
トランク/ブロック内、または異なるディスクドライブ
の同じ位置に記憶できる。
別の方法として、兄弟ページをディスク上でランダムに
分散できるように、両方の物理的ディスクアドレスをペ
ージテーブル内に記憶することもできる。但しこの代替
法は、ページテーブルのサイズを増すという欠点を持つ
ページ不良が生じると、前記第1の実施例にお、けるよ
うに兄第両ページを読込んで一方を放棄する代りに、正
しいディスクページだけが読込まれる。状態ビットを調
べ、正しい兄弟ページを選ぶことによって、正しいディ
スクページアドレスが計算される。メモリに読込まれ、
ページアウト動作で書込まれる兄弟ページは、時間スタ
ンプ式の実施例で説明したのと同じものである。該当の
ページを選ぶ計算の方法だけが異なる。
ページがディスクに書込まれるとき、兄弟ページとTc
hkの相対的な書込時間は第5及び6図に示したように
変更されることがある。これは、ページアウト動作時に
状態ビットが変更される必要のあることを意味する。第
1表を参照すると、状態がSib −1の場合、兄弟ペ
ージは共に最後のチェックポイント前に書込まれ、X′
の方が最近である。従って、X′が主メモリ内にフェッ
チされる。
X′が変更されると、それが他方のXで占められている
ディスクスペースに書出され、状態が5ib−4に変る
。これで、チェックポイント状態の一部であるX′を保
存する。
ページが読込まれ状態が5ib−2のときも、同様の状
況が生じる。状態Sib −2でダーティページがディ
スクに書込まれると、ページの状態はSib −3に変
る。
ページが読込まれ状態が5tb−3かSib  4だと
、ダーティページがディスクに書出されたときページの
状態は変化しない。時間スタンプを用いる実施例で説明
したように、これらの状態変化はチェックポイント状態
の保存に対応していることが認識されよう。
第1表は、単生児ページ用に使われる状態(Sing 
 1とSing −2)も示している。多くの場合、シ
ステムは兄弟状態だけを用い、これはページテーブル中
に2つの状態ビットだけを必要とする。前記の実施例に
おけるように単生児ベージも使うなら、第3のビットが
加えられ、ページテーブル内に記憶されねばならない。
単生児ページでは2つの可能な状態が存在する;っまり
Sが最新のチェックポイントの前または後に書込まれる
これらは、第1表中の状態Sing −1及びSing
 −2にそれぞれ対応する。
状filsing−2のページが読込まれるべきことを
ページ不良が示した場合、そのページは簡単にメモリ内
へ読込可能である。コピーして、そのぺ一ジを兄第の形
に変換しなくともよい。ページが再び書出されるとき、
状態はSing −2に留まり、ページはその古いディ
スクロケーションに書込まれる。
状[Sing−1のページがページインされるときは、
そのページを兄第の形に変換する必要がある。
何故なら、この単生児ページはチェックポイント状態の
一部で、保存されねばならないからである。
変換動作は第7図に示したのと同じである。その例では
第1表に示すごとく、状態はSing −1からStb
 −4に変る。
チェックポイントの設定時、Tchkはディスクに書込
まれている全てのページより最近となる。このため、一
部のページの状態はチェックポイント動作の一部として
変更される必要がある。チェックポイント処理が完了す
ると、全てのページがSib  l5Sib−2または
Sing −1の状態となる。
つまり、状6stb−3だった兄第はSib −1に変
り、状gsib−4だった兄第は5lb−2に変る。
最初に5ib−1,5ib−2またはSing −1だ
った°ページの状態は変化しない。
長期間ヘーシカ状* 5ib−1*タハ5ib−2ニあ
ると、早い方の兄第ページはその分古くなった情報を含
んでいる。このようなページは、時間スタンプを用いた
実施例に関連して述べた理由から、単生児の形に変換可
能である。兄第のうちより最近の方の内容が単生児ベー
ジSにコピーされ、状態Sing −1となる。
単生児の形への変換が生ずべき時点を決めるのには、“
X″でマーク付けしたビットが使える。
バックグランド処理とし得る手順が、所定の頻度でペー
ジテーブル内の全エントリを続けて走査する。この頻度
は非常に低いのが好ましく、システム設計に従い所望に
応じて設定できる。このバックグランド処理が、状態5
ib−1または5ib−2にある全てのページについて
1x″つまり“アイ・ドルビット”を検査する。アイド
ルビットが“0”だと、それが“1゛に変えられ、走査
が続行する。
アイドルビットが“1”だと、ページテーブルに対する
前の走査以後そのページは更新されていないので、その
ページが単生児の形への変換候補である。単生児ページ
が兄第の形に変換されると、チェックポイントでの処理
の結果、状態5ib−3または5ib−4のページが対
応した状Li5ib −,1または5ib−2に変わる
。アイドルビットはゼロに設定される。変更されない方
のページが単生児の形へ変換される前に兄第の形に留ま
っている時間の長さは、走査プロセスの走査速度の全面
的に依存する。
上記の第2実施例は第1実施例と比べ、幾つかの利点を
有する。ページヘッダーが不要となるように、各ディス
クページ毎に時間スタンプを維持する必要がない。ペー
ジヘッダーがないので、ディスクコントローラが前述し
たような分散−集合動作を実行できなくてもよい。2つ
を読込んでから一方を放棄するのに比べ、兄第のうち一
方だけが読込まれるので、両兄第がディスク上で物理的
に隣接する必要がない。それらは離れていてもよく、兄
第の一方のロケーションが他方のロケーションから計算
できればよい。あるいは、ページテーブルを幾分拡大し
、ページテーブルに両兄第を含めることもできる。簡単
なケースではわずか2つ、また単生児ページが使われる
場合には3つの余分なビットだけをページテーブル中に
必要とするだけで、こうした数ビットは多くのシステム
で普通得られるため、第2実施例は既存の仮想メモリシ
ステムにおいて実行可能である。
−aに、ディスクの使用を最適化するため、兄第及び単
生児の形のページはディスク上の異なるロケーションに
記憶される。仮想メモリアドレススペース内のページテ
ーブルが、割当てられた各仮想ページのディスクロケー
ションを示す、ページテーブルは永続的オブジェクトで
、他の全てのオブジェクトと同様にチェックポイント処
理される。兄第ページが単生児ページに変換されるか、
または逆に変換されると、ページテーブルが更新されて
そのページ用の新しいディスクロケーションを指し、古
いロケーションは割当解除されその後また使用される。
ページテーブル中の状態ビットを用いた実施例の場合に
は、消去ログを使う必要がない。状態5ib−3,5i
b−4及び5ib−2でチェックポイント後に書込まれ
たページが変質の可能性があり、無視されるべきである
。ページテーブルをチェックポイント状態に復帰するだ
けで、第1表に定義されたような正しい状態に復元する
。時間スタンプまたは状態の変化は必要ない。
(発明の効果) ページテーブル内の状態インジケータを用いた仮想メモ
リは、システムのクラッシェから回復可能とし得る、こ
れは、分散−集合機能等、追加の負担をディスクコント
ローラに課さずに行える。
この結果、はぼ既存のままの仮想メモリシステムで、比
較的容易に永続的メモリが実施可能となる。
かかるシステムは時間スタンプを用いたものと比べ次の
ような幾つかの利点を有する:時間スタンプまたはペー
ジヘッダーが不要(ディスク及び主メモリ上での使用メ
モリが少くてすむ)、消去ログが不要、及び全体の実施
が比較的簡単である。
以上好ましい実施例を詳述したが、各種の代替、追加及
び変更が当業者にとっては明らかであろう。
これらの変形は、特許請求の範囲の記載によって限定さ
れた発明の精神及び範囲から逸脱することなく成し得る
以上の記載に関連して、以下の各項を開示する。
1、 バックアップ記憶装置内にページの少なくとも第
1及び第2のコピーを有する回復可能な仮想メモリにお
いて: (a)ディスクページのロケーションを仮想メモリのア
ドレスと対応付けるページテーブルで、該ページテーブ
ルが、どのディスクページロケーションがもっとも最近
書込まれたかを示すと共に、チェックポイントでの処理
後に書込まれた全てのディスクページロケーションを指
示する状態インジケータを有する;及び (bl前記仮想メモリをチェックポイントで生じていた
状態に復元するチェックポイント手段で、該チェックポ
イント手段が前記ページテーブル状態インジケータの状
態に基づいてバックアップ記憶装置内のページを選択す
る;を備えた回復可能な仮想メモリ。
2、前記状態インジケータが、どのコピーがより最近書
込まれたか、及びもっとも最近のチェックポイント後に
コピーが書込まれたかどうかを示し、前記チェックポイ
ント手段が、平常使用のためにより最近のページを選択
し、またシステム故障からの回復に用いるために最も最
近のチェックポイントより前に書き込まれたより最近の
ページを選択する第1項の回復可能な仮想メモリ。
3、 回復可能な仮想メモリを有するコンピュータシス
テムにおいて: ta)ランダムアクセスメモリとバックアップ記憶装置
を有する仮想メモリ; (b)前記バックアップ記憶装置内に記憶された複数の
ページで、該各ページが仮想メモリのページと対応する
; (C1選択時点で前記仮想メモリの現在状態のチェック
ポイント処理を行う手段;及び (d)前記各仮想メモリのページに付属し、前記バック
アップ記憶装置内に記憶された前記ページの内どれが最
も最近のチェックポイントを含むかを示す状態インジケ
ータ;を備えたコンピュータシステム。
4、前記コンピュータシステムがシステムの故障後置も
最近のチェックポイント状態にリセットされる第3項の
コンピュータシステム。
5、前記バンクアップ記憶装置がページングディスクで
ある第3項のコンピュータシステム。
6、前記仮想メモリのページとバッファ・ノブ記憶装置
のページとの間の対応関係を示すページテーブルを更に
備え、前記状態インジケータがページテーブル内に位置
する第3項のコンピュータシステム。
7、 前記状態インジケータが複数のnビットからなり
、27個の状態が状態インジケータによって定義可能で
ある第6項のコンピュータシステム。
8、前記複数のディスクページが同じ仮想ページに対応
した付属の兄弟ページを有し、該兄弟ページの各々も付
属の状態インジケータを有する第3項のコンピュータシ
ステム。
9、前記兄第ページがそれぞれの付属したディスクペー
ジと単一の状態インジケータを共有する第8項のコンピ
ュータシステム。
10、ディスクページと付属した兄第ページの一方だけ
がチェックポイント状態を定義するのに使われる第8項
のコンピュータシステム。
11、バックアップ記憶装置に記憶された複数のページ
を有する回復可能な仮想メモリで、システムの故障から
回復するための方法において=(al前記バックアップ
記憶装置内にページが書込まれるときに、状態インジケ
ータを各仮想ページと対応させるステップ; (b)前記仮想メモリの周期的なチェックポイント処理
を行うステップ; (C)前記周期的なチェックポイント処理が行われたと
き、各仮想ページの現在板を現存状態でセーブするステ
ップ;及び (d)システム故障が生じたら、最も最近のチェックポ
イント処理後に前記バックアップ記憶装置内に書込まれ
たことを状態インジケータが指示する全ての仮想ページ
を放棄することによって仮想メモリのチェックポイント
状態を復元するステップ;を含む方法。
12、前記ステップ11(b)が: (a)全レジスタの状態を前記バックアップ記憶装置上
の既知ロケーションに記憶するステップ;及び 山)前記仮想ページ用の状態インジケータを既知ロケー
ションに記憶するステップ:を含む第11項の方法。
13、前記ステップIHC)が、チェックポイント状態
の一部であることを示すように前記ページテーブル用の
状態インジケータを変更するステップを含む第11項の
方法。
14、前記ステップ11(c)が: (a)付属の兄第ページを持たない仮想ページについて
、該仮想ページが更新されるときに、付属の兄第ページ
を作成してそれらをページング記憶装置に書込むステッ
プで、前記兄第ページが仮想ページの更新版を含み、仮
想ページが変更されない;及び 山)付属の兄第ページを既に有する仮想ページについて
、最後のチェックポイント処理前に最近記憶された兄第
ページまたは仮想ページを変更しないまま残し、残りの
方の兄第ページまたは仮想ページ内に仮想ページの変更
版を記憶するステップ;を含む第11項の方法。
゛15.コンピュータシステム用の回復可能な仮想メモ
リで、仮想メモリの状態を捕らえる周期的なチェックポ
イント処理を行う。システムの故障が起きると、システ
ムはチェックポイント状態にロールバンクされ、再スタ
ート可能である。どの仮想ページがチェックポイント状
態に含まれているかを追跡する機構が、チェックポイン
ト状態がセーブされた後に変更されたページを放棄する
。チェックポイント状態にセーブされているページだけ
が、復元プロセスで使われる。
【図面の簡単な説明】
第1図は従来のコンピュータシステムアーキテクチャの
ブロック図;第2図は永続的メモリを実施したコンピュ
ータシステムアーキテクチャのブロック図;第3図は一
様な永続的メモリを示すブロック図:第4図は第1の好
ましい実施例に基づくページングディスクに記憶される
兄弟関係の仮想ページを表す図:第5図は第1の好まし
い実施例に基づいて兄弟関係のページがいかに更新され
るかを示す図;第6図は第1の好ましい実施例に基づい
て他の兄第ページがいかに更新されるかを示す図;第7
図は第1の好ましい実施例に基づいて単生児ページをい
かに更新されるかを示す図;第8図はシステムのクラッ
シュからの回復プロセスを示す図;第9図は抽象化の階
層を示す図;及び第1O図は第2の好ましい実施例に基
づくページテーブルである。 2〇−中央プロセッサ、 22・−仮想メモリ、 24−・ランダムアクセスメモリ、 26−  バックアップ記憶装置(ページングディスク
)、 x、x’−−−ページ。

Claims (1)

  1. 【特許請求の範囲】 バックアップ記憶装置内にページの少なくとも第1及び
    第2のコピーを有する回復可能な仮想メモリにおいて: (a)ディスクページのロケーションを仮想メモリのア
    ドレスと対応付けるページテーブルで、該ページテーブ
    ルが、どのディスクページロケーションがもっとも最近
    書込まれたかを示すと共に、チェックポイントでの処理
    後に書込まれた全てのディスクページロケーションを指
    示する状態インジケータを有する;及び (b)前記仮想メモリをチェックポイントで生じていた
    状態に復元するチェックポイント手段で、該チェックポ
    イント手段が前記ページテーブル状態インジケータの状
    態に基づいてバックアップ記憶装置内のページを選択す
    る;を備えた回復可能な仮想メモリ。
JP62290471A 1986-11-19 1987-11-17 回復可能な仮想メモリ Pending JPS63138445A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/932,813 US5008786A (en) 1985-09-11 1986-11-19 Recoverable virtual memory having persistant objects
US932813 2001-08-17

Publications (1)

Publication Number Publication Date
JPS63138445A true JPS63138445A (ja) 1988-06-10

Family

ID=25462982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62290471A Pending JPS63138445A (ja) 1986-11-19 1987-11-17 回復可能な仮想メモリ

Country Status (1)

Country Link
JP (1) JPS63138445A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5275938A (en) * 1975-12-18 1977-06-25 Ibm Memory hierarchy system
JPS62245347A (ja) * 1986-04-18 1987-10-26 Hitachi Ltd データベースシステムおよびその処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5275938A (en) * 1975-12-18 1977-06-25 Ibm Memory hierarchy system
JPS62245347A (ja) * 1986-04-18 1987-10-26 Hitachi Ltd データベースシステムおよびその処理方法

Similar Documents

Publication Publication Date Title
US5008786A (en) Recoverable virtual memory having persistant objects
US4853842A (en) Computer memory system having persistent objects
EP0415346B1 (en) Method and system for dynamic volume tracking in an installable file system
Prabhakaran et al. Transactional Flash.
US5418940A (en) Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment
US6738863B2 (en) Method for rebuilding meta-data in a data storage system and a data storage system
US8380689B2 (en) Systems and methods for providing nonlinear journaling
US6947956B2 (en) Method and apparatus for selective caching of transactions in a computer system
US7363540B2 (en) Transaction-safe FAT file system improvements
JP2679779B2 (ja) トランザクション処理方法及び装置
JP2531783B2 (ja) 共用ファイル環境をサポ―トする方法
US8667029B2 (en) Optimized startup verification of file system integrity
US7533138B1 (en) Practical lock-free doubly-linked list
EP0416445A2 (en) High performance file system
Graefe A survey of B-tree logging and recovery techniques
JPH0560617B2 (ja)
JPH0644010A (ja) タイムゼロ・バックアップ・コピー・プロセスにおける副ファイル状態のポーリングのための方法およびシステム
US7472138B2 (en) System and method for handing input/output errors during recovery of journaling files in a data processing system
Wilson et al. Demonic memory for process histories
US9411692B2 (en) Applying write elision
US5675767A (en) Method for verification and restoration of directories in CPU system managed store
Shaull Retro: a methodology for retrospection everywhere
Hosking et al. Update logging for persistent programming languages: A comparative performance evaluation
Svobodova Management of object histories in the SWALLOW repository
JPS63138445A (ja) 回復可能な仮想メモリ