JPH0578857B2 - - Google Patents
Info
- Publication number
- JPH0578857B2 JPH0578857B2 JP62002015A JP201587A JPH0578857B2 JP H0578857 B2 JPH0578857 B2 JP H0578857B2 JP 62002015 A JP62002015 A JP 62002015A JP 201587 A JP201587 A JP 201587A JP H0578857 B2 JPH0578857 B2 JP H0578857B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- virtual
- file
- segment
- unix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の詳細な説明】
(産業上の利用分野)
この発明は総括的に、UNIX型のオペレーテイ
ング・システムを用いるマルチタスキング仮想記
憶データ処理システムに関するものであり、詳細
にいえば、システムの一次記憶装置および二次記
憶装置の間のデータのページングのため、簡単な
ロード命令および記憶命令を用いた、改善された
入出操作のための装置に関するものである。
ング・システムを用いるマルチタスキング仮想記
憶データ処理システムに関するものであり、詳細
にいえば、システムの一次記憶装置および二次記
憶装置の間のデータのページングのため、簡単な
ロード命令および記憶命令を用いた、改善された
入出操作のための装置に関するものである。
(関連出願)
オクイイン他(0′Quin、et al)の名義で本願
と同時出願され、本願と同一譲受人に譲渡された
米国特許願シリアル番号819459は、仮想記憶にペ
ージ処理をもたらすシステム事象を論理的に直列
化し、仮想ページおよびページ・フレームの現在
の状態を記憶する、システムのデータ構造の完全
性を維持する方法を開示したものである。
と同時出願され、本願と同一譲受人に譲渡された
米国特許願シリアル番号819459は、仮想記憶にペ
ージ処理をもたらすシステム事象を論理的に直列
化し、仮想ページおよびページ・フレームの現在
の状態を記憶する、システムのデータ構造の完全
性を維持する方法を開示したものである。
デユバル他(Duvall et al)の名義で本願と同
時出願され、本願と同一譲受人に譲渡された米国
特許願シリアル番号819455は、UNIX型のオペレ
ーテイング・システムを有する、仮想計算機を作
成することができる仮想記憶データ処理システム
において「書込み時コピー」セグメントを共有す
る方法を開示したものである。
時出願され、本願と同一譲受人に譲渡された米国
特許願シリアル番号819455は、UNIX型のオペレ
ーテイング・システムを有する、仮想計算機を作
成することができる仮想記憶データ処理システム
において「書込み時コピー」セグメントを共有す
る方法を開示したものである。
デユバル他(Duvall et al)の名義で本願と同
時出願され、本願と同一譲受人に譲渡された米国
特許願シリアル番号819456は、この出願で説明す
るシステムにしたがつて作成されたマツプ化フア
イルを記憶するために用いられる、セグメントの
拡張機能を作成する方法を開示したものである。
時出願され、本願と同一譲受人に譲渡された米国
特許願シリアル番号819456は、この出願で説明す
るシステムにしたがつて作成されたマツプ化フア
イルを記憶するために用いられる、セグメントの
拡張機能を作成する方法を開示したものである。
(従来技術)
従来技術は、UNIX型のオペレーテイング・シ
ステムを稼動することのできる、多数のデータ処
理システムを開示している。米国特許第4536837
号、第4470115号、第4104718号および第4047244
号は、UNIXに基づいたデータ処理システムを記
載した代表的な特許である。
ステムを稼動することのできる、多数のデータ処
理システムを開示している。米国特許第4536837
号、第4470115号、第4104718号および第4047244
号は、UNIXに基づいたデータ処理システムを記
載した代表的な特許である。
さらに、UNIXオペレーテイング・システムの
アーキテクチヤおよび操作、ならびに基本的な
UNIXシステムの各種バージヨン、リリース、お
よび類似した派生物を、さまざまなレベルで記述
した多数の刊行物および取扱い説明書がある。こ
のような刊行物の代表的なサンプルを以下に示
す。
アーキテクチヤおよび操作、ならびに基本的な
UNIXシステムの各種バージヨン、リリース、お
よび類似した派生物を、さまざまなレベルで記述
した多数の刊行物および取扱い説明書がある。こ
のような刊行物の代表的なサンプルを以下に示
す。
1 「UNIXフアイル・システムについて」ジエ
ームズ・ジヨイス、1983年10月、pp.170−182、
バイト・パブリケーシヨンズ・インク (“A Tour Through the UNIX System、”
James Joyce、October 1983、pp170−182、
Byte Publications、Inc.) 2 「適用業務環境としてのUNIX」マーク・ク
リーガ他、1983年10月、pp.209−214、バイ
ト・パブリケーシヨンズ・インク (“UNIX as an Application Environment、”
Mark Krieger、et al、October 1983、pp209
−214、Byte Ptblications、Inc.) 3 「UNIXシステム・コール」ブライアン・
W・カーニガン他、1984年、pp.203−231、
UNIXプログラミング・エンバイロメント (“UNIX System Call、”Brian W.
Kernighan、et al、1984、pp203−231、The
UNIX Programming Environment 4 「UNIXのタイム・シエアリング:その歴
史」D・M・リツチ、1977年1月、pp1947−
1969、ベル・システム・テクニカル・ジヤーナ
ル、1978年7−8月 (“UNIX Time−Sharing:A
Retrospective、”D.M.Ritchie、January1977、
pp1947−1969、The Bell System Technical
Journal、July−August、1978 5 「マルチプロセツサ・システムを管理する道
を開くUNIXの変形物」ポール・ジヤクソン、
1983年7月、pp118−124、エレクトロニクス (“UNIX Variant Opens a Path to
Managing Multiprocessor Systems、”Paul
Jacson、July1983、pp118−124、Electronics 6 「UNIXオペレーテイング・システムにネツ
トワーク・サポートを与えるUNIXバークリイ
版4.2」ビル・ジヨイ、1983年7月、pp114−
118、エレクトロニクス (“UNIX−Berkley4.2Gives UNIX
Operating System Network Support、“Bill
Joy、July1983、pp114−118、Electronics 7 「UNIX自習書、第1部」デビツド・フイー
ドラ、1983年8月、pp186−219、バイト・パ
ブリケーシヨンズ・インク (“UNIX Tutorial、Part1、”David Fielder、
August、1983、pp186−219、Byte
Publications、Inc.) 8 「UNIX自習書、第2部」デビツド・フイー
ドラ、1983年9月、pp257−278、バイト・パ
ブリケーシヨンズ・インク (“UNIX Tutorial、Part2、”David Fielder、
September、1983、pp257−278、Byte
Publications、Inc.) UNIXのフアイル UNIXオペレーテイング・システムが情報を記
憶するために使用する基本的な構造は、フアイル
である。フアイルは典型的な場合、長さが8ビツ
トのバイトが連続したものであつて、文字と同等
なものである。UNIXはフアイルの各々に独自の
識別番号を指定することによつて、フアイルを内
部で追跡する。これらの番号はiノード番号と呼
ばれるものであつて、UNIXオペレーテイング・
システムのカーネル自体の内部だけで使用される
ものである。UNIXはiノード番号を使用して、
フアイルを参照するが、これによつてユーザがユ
ーザの指定した名前で、各フアイルを識別するこ
とを可能とするものである。フアイル名は1ない
し14文字を含む任意の列である。
ームズ・ジヨイス、1983年10月、pp.170−182、
バイト・パブリケーシヨンズ・インク (“A Tour Through the UNIX System、”
James Joyce、October 1983、pp170−182、
Byte Publications、Inc.) 2 「適用業務環境としてのUNIX」マーク・ク
リーガ他、1983年10月、pp.209−214、バイ
ト・パブリケーシヨンズ・インク (“UNIX as an Application Environment、”
Mark Krieger、et al、October 1983、pp209
−214、Byte Ptblications、Inc.) 3 「UNIXシステム・コール」ブライアン・
W・カーニガン他、1984年、pp.203−231、
UNIXプログラミング・エンバイロメント (“UNIX System Call、”Brian W.
Kernighan、et al、1984、pp203−231、The
UNIX Programming Environment 4 「UNIXのタイム・シエアリング:その歴
史」D・M・リツチ、1977年1月、pp1947−
1969、ベル・システム・テクニカル・ジヤーナ
ル、1978年7−8月 (“UNIX Time−Sharing:A
Retrospective、”D.M.Ritchie、January1977、
pp1947−1969、The Bell System Technical
Journal、July−August、1978 5 「マルチプロセツサ・システムを管理する道
を開くUNIXの変形物」ポール・ジヤクソン、
1983年7月、pp118−124、エレクトロニクス (“UNIX Variant Opens a Path to
Managing Multiprocessor Systems、”Paul
Jacson、July1983、pp118−124、Electronics 6 「UNIXオペレーテイング・システムにネツ
トワーク・サポートを与えるUNIXバークリイ
版4.2」ビル・ジヨイ、1983年7月、pp114−
118、エレクトロニクス (“UNIX−Berkley4.2Gives UNIX
Operating System Network Support、“Bill
Joy、July1983、pp114−118、Electronics 7 「UNIX自習書、第1部」デビツド・フイー
ドラ、1983年8月、pp186−219、バイト・パ
ブリケーシヨンズ・インク (“UNIX Tutorial、Part1、”David Fielder、
August、1983、pp186−219、Byte
Publications、Inc.) 8 「UNIX自習書、第2部」デビツド・フイー
ドラ、1983年9月、pp257−278、バイト・パ
ブリケーシヨンズ・インク (“UNIX Tutorial、Part2、”David Fielder、
September、1983、pp257−278、Byte
Publications、Inc.) UNIXのフアイル UNIXオペレーテイング・システムが情報を記
憶するために使用する基本的な構造は、フアイル
である。フアイルは典型的な場合、長さが8ビツ
トのバイトが連続したものであつて、文字と同等
なものである。UNIXはフアイルの各々に独自の
識別番号を指定することによつて、フアイルを内
部で追跡する。これらの番号はiノード番号と呼
ばれるものであつて、UNIXオペレーテイング・
システムのカーネル自体の内部だけで使用される
ものである。UNIXはiノード番号を使用して、
フアイルを参照するが、これによつてユーザがユ
ーザの指定した名前で、各フアイルを識別するこ
とを可能とするものである。フアイル名は1ない
し14文字を含む任意の列である。
UNIXのフアイル・システムには次の3種類の
フアイルがある。(1)実行可能なプログラム、テキ
スト、あるいは入力として使用されたり、あるい
は何らかの操作による出力として生成される他の
型式のデータである、通常フアイル。(2)フアイル
のリストを含んでいるデイレクトリ・フアイル。
(3)入出力装置をアクセスする標準的な方法を与え
る特殊フアイル。
フアイルがある。(1)実行可能なプログラム、テキ
スト、あるいは入力として使用されたり、あるい
は何らかの操作による出力として生成される他の
型式のデータである、通常フアイル。(2)フアイル
のリストを含んでいるデイレクトリ・フアイル。
(3)入出力装置をアクセスする標準的な方法を与え
る特殊フアイル。
UNIXのデイレクトリ
UNIXはユーザに、フアイルの編成方法を与え
る。フアイルをデイレクトリ内でグループ化する
ことができる。内部的に、デイレクトリは通常フ
アイルおよび他のデイレクトリの名前、およびこ
れらの対応するiノード番号を含んでいるフアイ
ルである。フアイルの名前を与えると、UNIXは
フアイルのデイレクトリを探し、フアイルに対応
したiノード番号を得る。このiノード番号によ
つて、UNIXは他の内部テーブルを検討し、フア
イルが記憶されている場所を決定し、このフアイ
ルをユーザがアクセスできるようにすることがで
きる。UNIXのデイレクトリ自体は名前を持つて
おり、そのそれぞれも14個の文字を含むことがで
きる。
る。フアイルをデイレクトリ内でグループ化する
ことができる。内部的に、デイレクトリは通常フ
アイルおよび他のデイレクトリの名前、およびこ
れらの対応するiノード番号を含んでいるフアイ
ルである。フアイルの名前を与えると、UNIXは
フアイルのデイレクトリを探し、フアイルに対応
したiノード番号を得る。このiノード番号によ
つて、UNIXは他の内部テーブルを検討し、フア
イルが記憶されている場所を決定し、このフアイ
ルをユーザがアクセスできるようにすることがで
きる。UNIXのデイレクトリ自体は名前を持つて
おり、そのそれぞれも14個の文字を含むことがで
きる。
UNIXの階層フアイル・システム
デイレクトリがユーザにフアイルをグループ化
する手段を与えるのとまつたく同じように、
UNIXは階層フアイル・システムにデイレクトリ
をグループ化することをサポートする。階層の一
番上に、デイイレクトリが置かれる。デイレクト
リは個々のフアイルの名前を含むことができ、ま
た他のデイレクトリの名前を含むこともできる。
これらの他のデイレクトリはさらに、個々のフア
イルの名前や、さらに他のデイレクトリを含むこ
とができる。フアイルの階層は、この結果であ
る。UNIXのフアイルの階層は、根を上にした上
下逆の木に類似している。デイレクトリが木の葉
に対応する個々のフアイルへのパスに最終的に達
するまで、さまざまなデイレクトリが枝分れして
いく。UNIXのフアイル・システムは、「樹構造」
といわれるものであつて、ルート・デイレクトリ
と呼ばれる単一のデイレクトリが、階層の一番上
にある。パスをルート・デイレクトリからデイレ
クトリの階層を下へたどることによつて到達でき
るすべてのフアイルが、フアイル・システムを構
成する。
する手段を与えるのとまつたく同じように、
UNIXは階層フアイル・システムにデイレクトリ
をグループ化することをサポートする。階層の一
番上に、デイイレクトリが置かれる。デイレクト
リは個々のフアイルの名前を含むことができ、ま
た他のデイレクトリの名前を含むこともできる。
これらの他のデイレクトリはさらに、個々のフア
イルの名前や、さらに他のデイレクトリを含むこ
とができる。フアイルの階層は、この結果であ
る。UNIXのフアイルの階層は、根を上にした上
下逆の木に類似している。デイレクトリが木の葉
に対応する個々のフアイルへのパスに最終的に達
するまで、さまざまなデイレクトリが枝分れして
いく。UNIXのフアイル・システムは、「樹構造」
といわれるものであつて、ルート・デイレクトリ
と呼ばれる単一のデイレクトリが、階層の一番上
にある。パスをルート・デイレクトリからデイレ
クトリの階層を下へたどることによつて到達でき
るすべてのフアイルが、フアイル・システムを構
成する。
UNIXフアイル・システムの編成
UNIXは、これが管理するフアイルに関する多
量の情報を維持する。各フアイルに関して、フア
イル・システムはフアイルの大きさ、位置、所有
権、セキユリテイ、型式、作成時間、変更時間、
およびアクセス時間を記憶している。フアイルを
作成し、使用するたびに、この情報はすべて、フ
アイル・システムによつて自動的に維持される。
UNIXフアイル・システムは、デイスク・フアイ
ルなどの大容量記憶装置に常駐する。これらのデ
イスク・フアイルは固定型の媒体、あるいは脱着
型の媒体を使用することができ、これらの媒体は
剛性のものであつても、可撓性のものであつても
かまわない。UNIXはデイスクを一連のブロツク
として編成し、これらのブロツクがフアイル・シ
ステムを構成する。これらのブロツクの長さは、
通常512バイトまたは2048バイトのいずれかであ
る。フアイルの内容はひとつまたはそれ以上のブ
ロツクに記憶され、ブロツクはデイスク上の広い
範囲に分散していることが可能である。
量の情報を維持する。各フアイルに関して、フア
イル・システムはフアイルの大きさ、位置、所有
権、セキユリテイ、型式、作成時間、変更時間、
およびアクセス時間を記憶している。フアイルを
作成し、使用するたびに、この情報はすべて、フ
アイル・システムによつて自動的に維持される。
UNIXフアイル・システムは、デイスク・フアイ
ルなどの大容量記憶装置に常駐する。これらのデ
イスク・フアイルは固定型の媒体、あるいは脱着
型の媒体を使用することができ、これらの媒体は
剛性のものであつても、可撓性のものであつても
かまわない。UNIXはデイスクを一連のブロツク
として編成し、これらのブロツクがフアイル・シ
ステムを構成する。これらのブロツクの長さは、
通常512バイトまたは2048バイトのいずれかであ
る。フアイルの内容はひとつまたはそれ以上のブ
ロツクに記憶され、ブロツクはデイスク上の広い
範囲に分散していることが可能である。
通常フアイルはiノード構造によつてアドレス
される。各iノードはi−リストに含まれている
インデツクスによつてアドレスされる。i−リス
トはフアイル・システムの大きさに基づいて生成
されるものであり、一般に、フアイル・システム
が大きければ、フアイルが大きいことを意味する
のであるから、i−リストは大きくなる。各iノ
ードは4バイトのデイスク・アドレス要素を13個
含んでいる。直接iノードは最大10個のブロツ
ク・アドレスを含むことができる。フアイルがこ
れよりも大きいと、11番目のブロツクは第1レベ
ルの間接ブロツクをポイントする。アドレス12お
よよび13が、それぞれ第2レベルおよび第3レベ
ルの間接ブロツクに使用され、間接iノードに新
しいアドレス・スロツトが必要になるたびに、最
初のデータ・ブロツクの前の間接アドレツシン
グ・チエインが、1レベル増加する。
される。各iノードはi−リストに含まれている
インデツクスによつてアドレスされる。i−リス
トはフアイル・システムの大きさに基づいて生成
されるものであり、一般に、フアイル・システム
が大きければ、フアイルが大きいことを意味する
のであるから、i−リストは大きくなる。各iノ
ードは4バイトのデイスク・アドレス要素を13個
含んでいる。直接iノードは最大10個のブロツ
ク・アドレスを含むことができる。フアイルがこ
れよりも大きいと、11番目のブロツクは第1レベ
ルの間接ブロツクをポイントする。アドレス12お
よよび13が、それぞれ第2レベルおよび第3レベ
ルの間接ブロツクに使用され、間接iノードに新
しいアドレス・スロツトが必要になるたびに、最
初のデータ・ブロツクの前の間接アドレツシン
グ・チエインが、1レベル増加する。
読取/書込システム・コールによるUNIXフアイ
ル・システムのアクセス すべての入出力は、フアイルを読んだり、書い
たりすることによつて行われるが、これはすべて
の周辺装置、端末さえもが、フアイル・システム
内のフアイルだからである。最も一般的な場合、
フアイルの読み書きを行う前に、フアイルをオー
プンすることによつて、ユーザが何を行おうとし
ているかを、システムに対して知らせなければな
らない。フアイルへの書込みを行うには、フアイ
ルを生成することが必要なこともある。フアイル
をオープンするか、生成すると(openまたは
createシステム・コールによつて)、システムは
これを行う権限のチエツクを行い、権限がある場
合には、フアイル記述子という負でない整数を返
す。入出力をこのフアイルに対して行う場合に
は、名前の代わりにフアイル記述子を使用して、
フアイルを識別する。このオープン・フアイル記
述子はフアイルを、フアイルをオープンしたユー
ザの「プロセス」空間に保持されているフアイ
ル・テーブル項目と関連付ける。UNIXの用語に
おいては、「プロセス」という語は実行されるプ
ログラムと同じ意味で使用される。フアイル・テ
ーブル項目は、フアイルに対するiノード・ポイ
ンタおよびフアイルに対するフアイル・ポインタ
を含む、オープン・フアイルに関する情報を含ん
でおり、この情報はフアイルへの読み書きを行う
現在位置を定義する。オープン・フアイルに関す
るすべての情報は、システムによつて維持され
る。
ル・システムのアクセス すべての入出力は、フアイルを読んだり、書い
たりすることによつて行われるが、これはすべて
の周辺装置、端末さえもが、フアイル・システム
内のフアイルだからである。最も一般的な場合、
フアイルの読み書きを行う前に、フアイルをオー
プンすることによつて、ユーザが何を行おうとし
ているかを、システムに対して知らせなければな
らない。フアイルへの書込みを行うには、フアイ
ルを生成することが必要なこともある。フアイル
をオープンするか、生成すると(openまたは
createシステム・コールによつて)、システムは
これを行う権限のチエツクを行い、権限がある場
合には、フアイル記述子という負でない整数を返
す。入出力をこのフアイルに対して行う場合に
は、名前の代わりにフアイル記述子を使用して、
フアイルを識別する。このオープン・フアイル記
述子はフアイルを、フアイルをオープンしたユー
ザの「プロセス」空間に保持されているフアイ
ル・テーブル項目と関連付ける。UNIXの用語に
おいては、「プロセス」という語は実行されるプ
ログラムと同じ意味で使用される。フアイル・テ
ーブル項目は、フアイルに対するiノード・ポイ
ンタおよびフアイルに対するフアイル・ポインタ
を含む、オープン・フアイルに関する情報を含ん
でおり、この情報はフアイルへの読み書きを行う
現在位置を定義する。オープン・フアイルに関す
るすべての情報は、システムによつて維持され
る。
従来のUNIXにおいては、入力および出力は2
つのシステム・コール、readおよびwriteによつ
て行われ、これらのシステム・コールは同じ名前
の機能を有するプログラムからアクセスされる。
両システム・コールに対する最初の引数はフアイ
ル記述子である。第2の引数はバツフアに対する
ポインタであつて、データ源またはデータの宛先
として機能する。第3の引数は転送されるバイト
の数である。各readまたはwriteシステム・コー
ルは、転送されるバイト数を計数する。読取り時
に、返されるバイト数は要求された数より少なく
なるが、これは残つている読み取らなければない
ない数が、要求された数よりも少ないからであ
る。ゼロという戻値はフアイルの終りを意味し、
−1という戻値は何らかのエラーを示す。書込み
時に、戻される値は実際に書き込まれたバイト数
である。この値が書き込まれると考えられる数と
等しくなければ、エラーが発生している。
つのシステム・コール、readおよびwriteによつ
て行われ、これらのシステム・コールは同じ名前
の機能を有するプログラムからアクセスされる。
両システム・コールに対する最初の引数はフアイ
ル記述子である。第2の引数はバツフアに対する
ポインタであつて、データ源またはデータの宛先
として機能する。第3の引数は転送されるバイト
の数である。各readまたはwriteシステム・コー
ルは、転送されるバイト数を計数する。読取り時
に、返されるバイト数は要求された数より少なく
なるが、これは残つている読み取らなければない
ない数が、要求された数よりも少ないからであ
る。ゼロという戻値はフアイルの終りを意味し、
−1という戻値は何らかのエラーを示す。書込み
時に、戻される値は実際に書き込まれたバイト数
である。この値が書き込まれると考えられる数と
等しくなければ、エラーが発生している。
readおよびwriteというシステム・コールのパ
ラメータは、フアイルにアクセスしている適用業
務プログラムによつて操作される。したがつて、
適用業務は標準システム・メモリ階層に特有な、
多層記憶特性に敏感で、かつこの特性を利用でき
るものでなければならない。適用業務の観点から
考えた場合、システムのメモリ構成要素を単一レ
ベルの階層と見ることができれば、有利である。
これを適切に行えれば、適用業務は入出力管理オ
ーバーヘツドのほとんどを省くことができよう。
ラメータは、フアイルにアクセスしている適用業
務プログラムによつて操作される。したがつて、
適用業務は標準システム・メモリ階層に特有な、
多層記憶特性に敏感で、かつこの特性を利用でき
るものでなければならない。適用業務の観点から
考えた場合、システムのメモリ構成要素を単一レ
ベルの階層と見ることができれば、有利である。
これを適切に行えれば、適用業務は入出力管理オ
ーバーヘツドのほとんどを省くことができよう。
従来技術は多数のマルチタスク仮想メモリ・デ
ータ処理システムを開示しているが、これらのシ
ステムのシステム・アーキテクチヤはシステムで
同時に稼動する適用業務の各々に、異なる「仮想
計算機」または端末を確立することに基づくもの
である。このようなシステムにおいて、オペレー
テイング・システムは、仮想資源管理プログラム
によつて確立される仮想計算機で実行される。仮
想資源管理プログラム(VRM)は、プログラム
またはプロセスのグループであつて、システムの
処理装置又はマイクロプロセツサ、およびシステ
ムのメモリ管理装置を拡張して、仮想計算機環境
にあるオペレーテイング・システムの高レベルの
ポートを与えるものである。
ータ処理システムを開示しているが、これらのシ
ステムのシステム・アーキテクチヤはシステムで
同時に稼動する適用業務の各々に、異なる「仮想
計算機」または端末を確立することに基づくもの
である。このようなシステムにおいて、オペレー
テイング・システムは、仮想資源管理プログラム
によつて確立される仮想計算機で実行される。仮
想資源管理プログラム(VRM)は、プログラム
またはプロセスのグループであつて、システムの
処理装置又はマイクロプロセツサ、およびシステ
ムのメモリ管理装置を拡張して、仮想計算機環境
にあるオペレーテイング・システムの高レベルの
ポートを与えるものである。
プログラムおよびオペレーテイング・システム
と、仮想資源管理プログラムとの間のソフトウエ
ア・インタフエースが確立され、仮想計算機イン
タフエース(VMI)と呼ばれる。したがつて、
仮想計算機は極めて高レベルの物理機械類似のイ
ンタフエースを有するものである。
と、仮想資源管理プログラムとの間のソフトウエ
ア・インタフエースが確立され、仮想計算機イン
タフエース(VMI)と呼ばれる。したがつて、
仮想計算機は極めて高レベルの物理機械類似のイ
ンタフエースを有するものである。
マルチタスク仮想計算機環境で作動する従来技
術のシステムのほとんどにおいて、仮想資源管理
プログラムは仮想記憶をこの仮想計算機に転送す
ることによつて、仮想記憶を仮想計算機に与え
る。仮想記憶のアドレス空間を管理する各種の構
成が、これらの仮想記憶システムで使用されてい
る。「ページ化セグメンテーシヨン」という公知
の手法のひとつにおいては、仮想記憶の全アドレ
ス範囲が同じ大きさのセグメントに分割される。
仮想アドレスはしたがつて、2つの部分、すなわ
ちセグメント識別子とオフセツトで構成される。
たとえば、仮想アドレス空間は2(40)のアドレ
ス位置からなり、40ビツトの仮想アドレスが必要
となる。12ビツトのセグメント識別子と28ビツト
のオフセツトを、仮想アドレスの書式に使用した
場合、212すなわち4096の独立したセグメントが
与えられ、各セグメントは228すなわち256×109
の独立したアドレス位置を有する。各アドレス位
置が1ページのデータを記憶でき、かつ1ページ
のデータが248(2K)バイトを保持できると仮定
した場合、仮想記憶の容量は1テラバイト(243)
となる。
術のシステムのほとんどにおいて、仮想資源管理
プログラムは仮想記憶をこの仮想計算機に転送す
ることによつて、仮想記憶を仮想計算機に与え
る。仮想記憶のアドレス空間を管理する各種の構
成が、これらの仮想記憶システムで使用されてい
る。「ページ化セグメンテーシヨン」という公知
の手法のひとつにおいては、仮想記憶の全アドレ
ス範囲が同じ大きさのセグメントに分割される。
仮想アドレスはしたがつて、2つの部分、すなわ
ちセグメント識別子とオフセツトで構成される。
たとえば、仮想アドレス空間は2(40)のアドレ
ス位置からなり、40ビツトの仮想アドレスが必要
となる。12ビツトのセグメント識別子と28ビツト
のオフセツトを、仮想アドレスの書式に使用した
場合、212すなわち4096の独立したセグメントが
与えられ、各セグメントは228すなわち256×109
の独立したアドレス位置を有する。各アドレス位
置が1ページのデータを記憶でき、かつ1ページ
のデータが248(2K)バイトを保持できると仮定
した場合、仮想記憶の容量は1テラバイト(243)
となる。
これらの従来技術のシステムはシステムの処理
装置のアーキテクチヤに応じて、仮想アドレスを
発生するのに異なる構成も用いている。32ビツト
の有効実記憶を有する処理装置が用いている手法
のひとつは、所定数nの高次アドレス・ビツトを
用いて、2ないし2nのセグメント識別子レジスタ
からひとつを選択することである。セグメント識
別子レジスタの各々は、必要な長さを有するセグ
メント識別子を記憶することができる。40ビツト
の仮想アドレスの上記の例において、セグメン
ト・レジスタは12ビツトのセグメント識別子を記
憶するための12のスステージを有することにな
る。この12ビツトのセグメント識別子は処理装置
の残りの28ビツトの有効実アドレスと連結され、
この有効実アドレスは40ビツトの仮想アドレスの
オフセツト部分を与える。
装置のアーキテクチヤに応じて、仮想アドレスを
発生するのに異なる構成も用いている。32ビツト
の有効実記憶を有する処理装置が用いている手法
のひとつは、所定数nの高次アドレス・ビツトを
用いて、2ないし2nのセグメント識別子レジスタ
からひとつを選択することである。セグメント識
別子レジスタの各々は、必要な長さを有するセグ
メント識別子を記憶することができる。40ビツト
の仮想アドレスの上記の例において、セグメン
ト・レジスタは12ビツトのセグメント識別子を記
憶するための12のスステージを有することにな
る。この12ビツトのセグメント識別子は処理装置
の残りの28ビツトの有効実アドレスと連結され、
この有効実アドレスは40ビツトの仮想アドレスの
オフセツト部分を与える。
VRMによつて作成された仮想計算機は一般
に、多数のメモリ・セグメントを定義し、これら
によつて仮想計算機は任意の時点で作動する。セ
グメントのひとつにあるデータにアクセスするた
め、仮想計算機はアドレス指定手法の上記の例を
使用して、セグメント識別子を16のセグメント・
レジスタのひとつにロードする。仮想計算機が他
の仮想計算機へのアクセスを認めていない限り、
仮想計算機が選択したセグメントは通常、専用の
ものである。セグメントへのアクセスは、仮想計
算機のオペレーテイングシステムが制御すること
ができる。
に、多数のメモリ・セグメントを定義し、これら
によつて仮想計算機は任意の時点で作動する。セ
グメントのひとつにあるデータにアクセスするた
め、仮想計算機はアドレス指定手法の上記の例を
使用して、セグメント識別子を16のセグメント・
レジスタのひとつにロードする。仮想計算機が他
の仮想計算機へのアクセスを認めていない限り、
仮想計算機が選択したセグメントは通常、専用の
ものである。セグメントへのアクセスは、仮想計
算機のオペレーテイングシステムが制御すること
ができる。
仮想記憶システムは一般に、ページ不在メカニ
ズムを用いており、このメカニズムはシステム・
メモリとデイスク・フアイルとの間のデータのペ
ージングを制御する機能を果たす。これらの記憶
装置を一次および二次記憶装置、またはフロント
およびバツク記憶装置と呼ぶことが、しばしばあ
る。ページング機能はある程度まで、適用業務プ
ログラムによつて行われる入出力操作と類似して
いる。それ故、単純なページング・システムの中
には、適用業務プログラムおよびオペレーテイン
グ・システムによつて制御されているフアイル入
出力操作と、ページング操作の間で衝突を起こす
ものがある。たとえば、フアイル装置ドライバが
デイスク・データをメモリ・バツフアに読み込
み、次いで独立して作動するページング・システ
ムが新たにバツフアされたデータをデイスクに再
度書き込む。フアイル入出力サブシステムとペー
ジング入出力サブシステムとの間の作動に調整が
行われていない場合、ローダがプログラムをバツ
ク記憶装置のライブラリ・セクシヨンから、フロ
ント記憶装置に読み込み、同時にページング入出
力機能がページ・アウト操作中に、プログラムを
異なるデイスク・アドレスに戻すという、重複の
可能性が、プログラムのローデイング時に存在す
ることになる。
ズムを用いており、このメカニズムはシステム・
メモリとデイスク・フアイルとの間のデータのペ
ージングを制御する機能を果たす。これらの記憶
装置を一次および二次記憶装置、またはフロント
およびバツク記憶装置と呼ぶことが、しばしばあ
る。ページング機能はある程度まで、適用業務プ
ログラムによつて行われる入出力操作と類似して
いる。それ故、単純なページング・システムの中
には、適用業務プログラムおよびオペレーテイン
グ・システムによつて制御されているフアイル入
出力操作と、ページング操作の間で衝突を起こす
ものがある。たとえば、フアイル装置ドライバが
デイスク・データをメモリ・バツフアに読み込
み、次いで独立して作動するページング・システ
ムが新たにバツフアされたデータをデイスクに再
度書き込む。フアイル入出力サブシステムとペー
ジング入出力サブシステムとの間の作動に調整が
行われていない場合、ローダがプログラムをバツ
ク記憶装置のライブラリ・セクシヨンから、フロ
ント記憶装置に読み込み、同時にページング入出
力機能がページ・アウト操作中に、プログラムを
異なるデイスク・アドレスに戻すという、重複の
可能性が、プログラムのローデイング時に存在す
ることになる。
(発明が解決しようとする問題点)
したがつて、重要なのは、データ処理システム
が2つの同様な機能の間の調整度を反映すること
であつて、この調整を行うために、従来技術にお
いて各種の構成が開示されている。しかしなが
ら、必要な調整はシステムの性能に影響をおよぼ
すことになり、極めて大きな仮想記憶を有するマ
ルチタスク、マルチユーザ仮想記憶のUNIXタイ
プの環境で、従来技術の調整手法を実施しようと
した場合、これらの手法を管理することが極めて
困難になる。
が2つの同様な機能の間の調整度を反映すること
であつて、この調整を行うために、従来技術にお
いて各種の構成が開示されている。しかしなが
ら、必要な調整はシステムの性能に影響をおよぼ
すことになり、極めて大きな仮想記憶を有するマ
ルチタスク、マルチユーザ仮想記憶のUNIXタイ
プの環境で、従来技術の調整手法を実施しようと
した場合、これらの手法を管理することが極めて
困難になる。
(問題点を解決するための手段)
この発明によれば、仮想計算機を確立する仮想
資源管理プログラムの一部であるメモリ管理装置
のページ不在メカニズムに、すべてのフアイル入
出力操作を割り当てることのできる仮想計算機環
境が確立される。ページ不在メカニズムが用いる
公知のデータ構造と同様に、UNIX構造化フアイ
ルに対するUNIXのreadおよびwriteシステム・
コールは、維持される。仮想記憶のアドレスと実
アドレスの間の一致、およびデイスク・フアイル
上のデータの実アドレス位置を記録するための、
外部ページ・テーブルなどの構造が、システム・
メモリ内のページの仮想アドレスを、システム・
メモリの実アドレスと相関させる転置ページ・テ
ーブルと同様に維持される。
資源管理プログラムの一部であるメモリ管理装置
のページ不在メカニズムに、すべてのフアイル入
出力操作を割り当てることのできる仮想計算機環
境が確立される。ページ不在メカニズムが用いる
公知のデータ構造と同様に、UNIX構造化フアイ
ルに対するUNIXのreadおよびwriteシステム・
コールは、維持される。仮想記憶のアドレスと実
アドレスの間の一致、およびデイスク・フアイル
上のデータの実アドレス位置を記録するための、
外部ページ・テーブルなどの構造が、システム・
メモリ内のページの仮想アドレスを、システム・
メモリの実アドレスと相関させる転置ページ・テ
ーブルと同様に維持される。
通常、適用業務プログラムを作動させた結果と
して作成される仮想記憶のセグメント内のデータ
はプログラムの実行後も継続するものではない。
して作成される仮想記憶のセグメント内のデータ
はプログラムの実行後も継続するものではない。
この発明においては、仮想記憶管理プログラム
によつて、セグメントに含まれているデータが仮
想計算機のフアイル・システムのフアイルと関連
付けられ、それ故プログラムの実行後、データが
存在できるようになる。仮想ページへのフアイ
ル・データのこの関連付けは、以下においてマツ
プ化フアイルまたはフアイルのマツピングと呼ば
れるものによつて達成される。
によつて、セグメントに含まれているデータが仮
想計算機のフアイル・システムのフアイルと関連
付けられ、それ故プログラムの実行後、データが
存在できるようになる。仮想ページへのフアイ
ル・データのこの関連付けは、以下においてマツ
プ化フアイルまたはフアイルのマツピングと呼ば
れるものによつて達成される。
個々のフアイルのマツピングなどの、サブセツ
ト用の1レベル記憶環境を作成する能力を、仮想
計算機に可能とするため、マツプ・ページ範囲サ
ービスが確立される。留意しておかなければなら
ないのは、UNIXオペレーテイング・システムな
どのほとんどのオペレーテイング・システムが一
般に、従来の入出力システム・コールによつて、
デイスク・フアイルにアクセスする能力を、適用
業務プログラムに与えるということである。一
方、適用業務プログラムは一般に、デイスク駆動
機構などの二次記憶フアイルにアクセスする、オ
ペレーテイング・システムとは独立な能力を有し
ていない。一方、適用業務プログラムはマイクロ
プロセツサと密接な作動を行つて、いわゆるロー
ド命令および記憶命令によつてシステム・メモリ
をアドレスするように、設計されている。
ト用の1レベル記憶環境を作成する能力を、仮想
計算機に可能とするため、マツプ・ページ範囲サ
ービスが確立される。留意しておかなければなら
ないのは、UNIXオペレーテイング・システムな
どのほとんどのオペレーテイング・システムが一
般に、従来の入出力システム・コールによつて、
デイスク・フアイルにアクセスする能力を、適用
業務プログラムに与えるということである。一
方、適用業務プログラムは一般に、デイスク駆動
機構などの二次記憶フアイルにアクセスする、オ
ペレーテイング・システムとは独立な能力を有し
ていない。一方、適用業務プログラムはマイクロ
プロセツサと密接な作動を行つて、いわゆるロー
ド命令および記憶命令によつてシステム・メモリ
をアドレスするように、設計されている。
マツプ・ページ範囲サービスを設け、個々のフ
アイルのマツピングなどの、サブセツト用の「1
レベル記憶」環境を作成する能力を仮想計算機に
可能とする。仮想計算機で実行されるオペレーテ
イング・システムも、仮想資源管理プログラムも
フアイルをマツプする機能を有していないため、
このサービスが必要となる。仮想計算機は仮想記
憶管理プログラムのテーブルにアクセスできず、
かつ仮想記憶管理プログラムは仮想計算機のフア
イル・システム構造と無関係になるように設計さ
れている。マツプ・ページ範囲サービスは仮想計
算機に、フアイルなどの論理エンテイテイーと、
デイスク上のその位置との関係をVMMに伝える
能力を与える。
アイルのマツピングなどの、サブセツト用の「1
レベル記憶」環境を作成する能力を仮想計算機に
可能とする。仮想計算機で実行されるオペレーテ
イング・システムも、仮想資源管理プログラムも
フアイルをマツプする機能を有していないため、
このサービスが必要となる。仮想計算機は仮想記
憶管理プログラムのテーブルにアクセスできず、
かつ仮想記憶管理プログラムは仮想計算機のフア
イル・システム構造と無関係になるように設計さ
れている。マツプ・ページ範囲サービスは仮想計
算機に、フアイルなどの論理エンテイテイーと、
デイスク上のその位置との関係をVMMに伝える
能力を与える。
この方法はさらに、フアイルのデイスク・ブロ
ツクを異なるメモリ・セグメントに選択的にマツ
プする、UNIXオペレーテイング・システムに対
する拡張機能を与えることを含んでいる。マツピ
ング処理は、所定のフアイルに対する磁気デイス
ク装置に割り振られているブロツクの範囲(1ブ
ロツクは2Kに等しい1ページを含んでいる)を
動的に定義する。マツプは仮想計算機に割り当て
られた空間の実記憶に記憶される。
ツクを異なるメモリ・セグメントに選択的にマツ
プする、UNIXオペレーテイング・システムに対
する拡張機能を与えることを含んでいる。マツピ
ング処理は、所定のフアイルに対する磁気デイス
ク装置に割り振られているブロツクの範囲(1ブ
ロツクは2Kに等しい1ページを含んでいる)を
動的に定義する。マツプは仮想計算機に割り当て
られた空間の実記憶に記憶される。
このマツピングが行われると、仮想計算機で作
動するプログラムがアクセス時のデータの物理位
置に関係なく、機械レベルのデータ・アクセス操
作を実行できるようになる。参照時にデータが活
動メモリにない場合、ページ不在が惹起される。
不在のアドレス位置を参照することによつて、下
位のページング・システムはページ不在を解決
し、かつデータが実際に二次記憶装置に割り振ら
れている場合には、このアドレス位置が、このセ
グメント・アドレスに対するページ・マツピング
によつて定義される二次記憶装置の物理的位置に
対応する。セグメント範囲内の各仮想アドレスが
二次記憶装置に有する物理データ位置は、多くて
もひとつである。逆に、二次装置の各物理データ
位置を、2048個の独立したセグメント・アドレス
で参照することもできる。ページとデータのブロ
ツクの関係の論理的および物理的な範囲が、上記
の関係を定義する。この場合、アドレスの指定は
バイト・レベルで分離して見るが、しかし常に実
際の二次装置の位置の最初の2Kの境界まで、切
捨られるものと見ることができる。
動するプログラムがアクセス時のデータの物理位
置に関係なく、機械レベルのデータ・アクセス操
作を実行できるようになる。参照時にデータが活
動メモリにない場合、ページ不在が惹起される。
不在のアドレス位置を参照することによつて、下
位のページング・システムはページ不在を解決
し、かつデータが実際に二次記憶装置に割り振ら
れている場合には、このアドレス位置が、このセ
グメント・アドレスに対するページ・マツピング
によつて定義される二次記憶装置の物理的位置に
対応する。セグメント範囲内の各仮想アドレスが
二次記憶装置に有する物理データ位置は、多くて
もひとつである。逆に、二次装置の各物理データ
位置を、2048個の独立したセグメント・アドレス
で参照することもできる。ページとデータのブロ
ツクの関係の論理的および物理的な範囲が、上記
の関係を定義する。この場合、アドレスの指定は
バイト・レベルで分離して見るが、しかし常に実
際の二次装置の位置の最初の2Kの境界まで、切
捨られるものと見ることができる。
オペレーテイング・システムの「カーネル」を
拡張することによつて、マツプされたページ範囲
サポートが「マツプ化実行可能プログラム」の形
で実現される。プログラムをロードすると、カー
ネルはプログラムのデイスク・ブロツクを、個別
の仮想記憶テキストとデータ・セグメントにマツ
プする。UNIXの用語において、「テキスト」は
固定されたプログラムの一部であり、一方テーブ
ルや定数などの可変データは、「データ」と呼ば
れる。カーネルがプログラムをロードするために
行う物理的入出力は、極く僅かである。プログラ
ムにおいて、フアイルの初めがカーネルによつて
読み取られる。他のデイスク入出力はすべて、プ
ログラムが実行されると、デマンド・ページ化さ
れる。このことは、マツプ・ページ範囲のサポー
トがなければ、全部をメモリに読み込み、おそら
くはページング監視プログラムによつてページ・
アウトしなければならない、大きなプログラムに
対する性能を、大幅に改善する。
拡張することによつて、マツプされたページ範囲
サポートが「マツプ化実行可能プログラム」の形
で実現される。プログラムをロードすると、カー
ネルはプログラムのデイスク・ブロツクを、個別
の仮想記憶テキストとデータ・セグメントにマツ
プする。UNIXの用語において、「テキスト」は
固定されたプログラムの一部であり、一方テーブ
ルや定数などの可変データは、「データ」と呼ば
れる。カーネルがプログラムをロードするために
行う物理的入出力は、極く僅かである。プログラ
ムにおいて、フアイルの初めがカーネルによつて
読み取られる。他のデイスク入出力はすべて、プ
ログラムが実行されると、デマンド・ページ化さ
れる。このことは、マツプ・ページ範囲のサポー
トがなければ、全部をメモリに読み込み、おそら
くはページング監視プログラムによつてページ・
アウトしなければならない、大きなプログラムに
対する性能を、大幅に改善する。
このマツプ・フアイル・サポートは、マツプ・
ページ範囲機能に対するシステム・コール・イン
タフエースからなつている。従来技術のUNIXの
システム・コール“shmat”を変更して、この方
法にしたがつてshmatシステム・コールに指定す
ることのできるフラグ・ビツトを含むようにし
た。SHM MAPフラグを指定した場合、指定さ
れたオープン・フアイル記述子と関連するデー
タ・フアイルが、呼出しプロセスのアドレス空間
にマツプされる。フアイルのマツピングが成功す
ると、マツプ・フアイルのセグメント開始アドレ
スが戻される。マツプされるデータ・フアイル
は、二次記憶装置に常駐する正規フアイルでなけ
ればならない。オプシヨンのフラグを“shmat”
システム・コールによつて与えて、フアイルのマ
ツプ方法を指定することもできる。フアイルをマ
ツプする別な方法は一般に、基本的なUNIXシス
テムで利用できる方法、すなわち読取り専用、書
込み専用、書込み時コピー(SHM COPY)に
対応している。
ページ範囲機能に対するシステム・コール・イン
タフエースからなつている。従来技術のUNIXの
システム・コール“shmat”を変更して、この方
法にしたがつてshmatシステム・コールに指定す
ることのできるフラグ・ビツトを含むようにし
た。SHM MAPフラグを指定した場合、指定さ
れたオープン・フアイル記述子と関連するデー
タ・フアイルが、呼出しプロセスのアドレス空間
にマツプされる。フアイルのマツピングが成功す
ると、マツプ・フアイルのセグメント開始アドレ
スが戻される。マツプされるデータ・フアイル
は、二次記憶装置に常駐する正規フアイルでなけ
ればならない。オプシヨンのフラグを“shmat”
システム・コールによつて与えて、フアイルのマ
ツプ方法を指定することもできる。フアイルをマ
ツプする別な方法は一般に、基本的なUNIXシス
テムで利用できる方法、すなわち読取り専用、書
込み専用、書込み時コピー(SHM COPY)に
対応している。
同じフアイルを読取り専用または書込み専用に
マツプするすべてのプロセスは、同じ仮想記憶セ
グメントをマツプする。フアイルをマツプする最
後のプロセスが、このセグメントをクローズする
まで、このセグメントはマツプされたままであ
る。同じフアイルを書込み時コピーにマツプする
すべてのプロセスは、同じ書込み時コピー・セグ
メントにマツプする。書込み時コピー・セグメン
トに対する変更は、「fsync」という特別なコマン
ドを発行して、ユーザが変更を要求するまで、フ
アイル・システムに常駐するフアイルの内容に影
響を与えない。プロセスがフアイルに対して書込
み時コピー・マツピングを要求し、しかも書込み
時コピー・セグメントが存在しない場合、このセ
グメントが作成され、このセグメントは最後のプ
ロセスがこのセグメントに接続されるまで、共有
状態に維持され、最後のプロセスがクローズ・シ
ステム・コールによつて、このセグメントとの接
続から外されると、その時点でセグメントは破壊
される。同じフアイルに対する書込み時にコピ
ー・マツピングの次の要求によつて、新しいセグ
メントがこのフアイルに対して作成される。
マツプするすべてのプロセスは、同じ仮想記憶セ
グメントをマツプする。フアイルをマツプする最
後のプロセスが、このセグメントをクローズする
まで、このセグメントはマツプされたままであ
る。同じフアイルを書込み時コピーにマツプする
すべてのプロセスは、同じ書込み時コピー・セグ
メントにマツプする。書込み時コピー・セグメン
トに対する変更は、「fsync」という特別なコマン
ドを発行して、ユーザが変更を要求するまで、フ
アイル・システムに常駐するフアイルの内容に影
響を与えない。プロセスがフアイルに対して書込
み時コピー・マツピングを要求し、しかも書込み
時コピー・セグメントが存在しない場合、このセ
グメントが作成され、このセグメントは最後のプ
ロセスがこのセグメントに接続されるまで、共有
状態に維持され、最後のプロセスがクローズ・シ
ステム・コールによつて、このセグメントとの接
続から外されると、その時点でセグメントは破壊
される。同じフアイルに対する書込み時にコピ
ー・マツピングの次の要求によつて、新しいセグ
メントがこのフアイルに対して作成される。
フアイル記述子を使用して、対応するフアイル
を一回だけマツプすることができる。多重フアイ
ル記述子(多重「オープン」システム・コールに
よつてもたらされる)を使用して、フアイルを多
重マツプすることができるが、しかし一人または
それ以上のユーザが一度に、フアイルを読取−書
込および書込み時コピーの両方にマツプすること
はできない。
を一回だけマツプすることができる。多重フアイ
ル記述子(多重「オープン」システム・コールに
よつてもたらされる)を使用して、フアイルを多
重マツプすることができるが、しかし一人または
それ以上のユーザが一度に、フアイルを読取−書
込および書込み時コピーの両方にマツプすること
はできない。
フアイルがセグメントにマツプされると、上述
のように、ロード命令および記憶命令によつてセ
グメントをアクセスすることによつて、フアイル
が直接参照される。仮想記憶ページング・システ
ムは自動的に、物理的入出力を引き受ける。しか
しながら、フアイルの終りを超える参照によつ
て、フアイルはページ・サイズ、すなわち2K単
位で拡張される。マツプ化フアイルの参照に対す
る一般的なシステムのフローを、以下で説明す
る。以下の説明において、適用業務は現在メモリ
に存在しないフアイル内のデータ領域を参照しよ
うとしている。この参照によつてメモリ不在が発
生し、適用業務を操作しているプロセスは待ち状
態に置かれる。仮想資源管理プログラムは新しい
データのために、ページを割り振る。仮想資源管
理プログラムは次いで、マツプ・フアイル・サー
ビス機能によつてフアイルに対してそれ以前に作
成されているフアイル・マツプから、データがデ
イスク上の、どの物理アドレスに常駐しているの
かを決定する。開始入出力操作がデイスクに対し
て開始され、デイスク・アダプタがフアイルから
の2Kバイトのデータ・ブロツクによつて、メモ
リ位置の用意を整え、割込が仮想計算機、すなわ
ちUNIXのカーネルに対して行われる。UNIXの
カーネルは文脈スイツチであり、オペレーテイン
グ・システムが制御を得ることを可能とする。プ
ロセスはタスク指名可能となり、次いでオペレー
テイング・システムのカーネルは制御を、仮想資
源管理プログラムに戻し、仮想資源管理プログラ
ムはその後プロセスに再度タスク指名を行う。
のように、ロード命令および記憶命令によつてセ
グメントをアクセスすることによつて、フアイル
が直接参照される。仮想記憶ページング・システ
ムは自動的に、物理的入出力を引き受ける。しか
しながら、フアイルの終りを超える参照によつ
て、フアイルはページ・サイズ、すなわち2K単
位で拡張される。マツプ化フアイルの参照に対す
る一般的なシステムのフローを、以下で説明す
る。以下の説明において、適用業務は現在メモリ
に存在しないフアイル内のデータ領域を参照しよ
うとしている。この参照によつてメモリ不在が発
生し、適用業務を操作しているプロセスは待ち状
態に置かれる。仮想資源管理プログラムは新しい
データのために、ページを割り振る。仮想資源管
理プログラムは次いで、マツプ・フアイル・サー
ビス機能によつてフアイルに対してそれ以前に作
成されているフアイル・マツプから、データがデ
イスク上の、どの物理アドレスに常駐しているの
かを決定する。開始入出力操作がデイスクに対し
て開始され、デイスク・アダプタがフアイルから
の2Kバイトのデータ・ブロツクによつて、メモ
リ位置の用意を整え、割込が仮想計算機、すなわ
ちUNIXのカーネルに対して行われる。UNIXの
カーネルは文脈スイツチであり、オペレーテイン
グ・システムが制御を得ることを可能とする。プ
ロセスはタスク指名可能となり、次いでオペレー
テイング・システムのカーネルは制御を、仮想資
源管理プログラムに戻し、仮想資源管理プログラ
ムはその後プロセスに再度タスク指名を行う。
フアイルをマツピングするシステム・コールの
他に、マツプ化フアイル機能によつて、他の
UNIX型のフアンクシヨン・コールをマツプ化フ
アイル・セグメントと共に使用することが、可能
となる。
他に、マツプ化フアイル機能によつて、他の
UNIX型のフアンクシヨン・コールをマツプ化フ
アイル・セグメントと共に使用することが、可能
となる。
したがつて、この発明の目的は、UNIX型のオ
ペレーテイング・システムを用いる仮想計算機仮
想記憶型のデータ処理システムにおけるフアイル
入出力操作を制御する、改善されたシステムを与
えることである。
ペレーテイング・システムを用いる仮想計算機仮
想記憶型のデータ処理システムにおけるフアイル
入出力操作を制御する、改善されたシステムを与
えることである。
この発明の他の目的は、記憶サブシステムが
別々な前部および後部型の記憶装置からなつてい
るとしても、仮想記憶を有する仮想計算機上で作
動する適用業務プログラムが、メモリを単一レベ
ルの記憶機構としてアドレスすることを可能とす
る、改善されたシステムを与えることである。
別々な前部および後部型の記憶装置からなつてい
るとしても、仮想記憶を有する仮想計算機上で作
動する適用業務プログラムが、メモリを単一レベ
ルの記憶機構としてアドレスすることを可能とす
る、改善されたシステムを与えることである。
この発明のさらに他の目的は、仮想計算機で作
動する適用業務プログラムが発生するロード命令
および記憶命令が、システム・メモリをアドレス
したときに生じるページ不在を、メモリ管理プロ
グラムのページ不在メカニズムを用いて、解決す
る、仮想計算機仮想記憶のUNIXをベースとした
データ処理システムで使用される立証済みのシス
テムを与えることである。
動する適用業務プログラムが発生するロード命令
および記憶命令が、システム・メモリをアドレス
したときに生じるページ不在を、メモリ管理プロ
グラムのページ不在メカニズムを用いて、解決す
る、仮想計算機仮想記憶のUNIXをベースとした
データ処理システムで使用される立証済みのシス
テムを与えることである。
上記以外の目的および利点は、図面と関連した
下記の説明から明らかとなろう。
下記の説明から明らかとなろう。
(実施例)
システムの概要。第1図は、この発明のシステ
ムが用いられる仮想記憶システムの略図である。
第1図に示すように、システムはハードウエア部
分10およびソフトウエアまたはプログラミング
部分11で構成されている。図示のように、ハー
ドウエア部分10は処理装置機能12、メモリ管
理機能13、システム・メモリ機能またはRAM
14、システム・バス15、入出力チヤネル制御
装置(IOCC)16、および入出力バス21で構
成されている。ハードウエア部分はさらに、
IOCC16を介して入出力バス21に接続された
一群の入出力装置を含んであり、これらの入出力
装置群は磁気デイスク装置機能17、表示機能1
8、コプロセツサ機能19、およびキーボードや
マウス型の装置を表すブロツク20を含んでい
る。
ムが用いられる仮想記憶システムの略図である。
第1図に示すように、システムはハードウエア部
分10およびソフトウエアまたはプログラミング
部分11で構成されている。図示のように、ハー
ドウエア部分10は処理装置機能12、メモリ管
理機能13、システム・メモリ機能またはRAM
14、システム・バス15、入出力チヤネル制御
装置(IOCC)16、および入出力バス21で構
成されている。ハードウエア部分はさらに、
IOCC16を介して入出力バス21に接続された
一群の入出力装置を含んであり、これらの入出力
装置群は磁気デイスク装置機能17、表示機能1
8、コプロセツサ機能19、およびキーボードや
マウス型の装置を表すブロツク20を含んでい
る。
システムのソフトウエア部分はシステムで作動
させられる適用業務プログラム22、一群の適用
業務開発プログラム、つまり新しい適用業務の開
発を援助するツール23、たとえばUNIXシステ
ムVのカーネルを拡張したものであつてもかまわ
ないオペレーテイング・システムのカーネル2
4、仮想資源管理プログラム25を含んでいる。
仮想資源管理プログラムによつて、それぞれが異
なるオペレーテイング・システム上で作動する
が、システムの資源を共有する、多数の仮想計算
機を作成することが可能となる。したがつて、シ
ステムはマルチタスク、マルチユーザ環境で作動
可能であり、これが大型の仮想記憶型の記憶シス
テムを必要とする主な理由のひとつである。
させられる適用業務プログラム22、一群の適用
業務開発プログラム、つまり新しい適用業務の開
発を援助するツール23、たとえばUNIXシステ
ムVのカーネルを拡張したものであつてもかまわ
ないオペレーテイング・システムのカーネル2
4、仮想資源管理プログラム25を含んでいる。
仮想資源管理プログラムによつて、それぞれが異
なるオペレーテイング・システム上で作動する
が、システムの資源を共有する、多数の仮想計算
機を作成することが可能となる。したがつて、シ
ステムはマルチタスク、マルチユーザ環境で作動
可能であり、これが大型の仮想記憶型の記憶シス
テムを必要とする主な理由のひとつである。
第2図は、システムの他の構成要素に対する仮
想資源管理プログラム25の関係を示したもので
ある。第2図に示すように、仮想計算機は22a
−22cなどの、ひとつまたはそれ以上の適用業
務プログラム、および少なくともひとつのオペレ
ーテイング・システム30を含んでいる。仮想計
算機インタフエース31が、仮想計算機とVRM
25の間に設定されている。ハードウエア・イン
タフエース32もVTR25とハードウエア部分
10の間に設定されている。VRM25は仮想記
憶をサポートしている。説明のため、第1図に示
すハードウエアのメモリ機能が、システム・メモ
リ14に対する16メガバイトの容量に等しい、シ
ステム・メモリ14用の24ビツトのアドレス空間
と、1テラバイトのメモリに等しい、仮想記憶用
の40ビツトのアドレス空間とを含んでいるもの
と、想定する。ページ化セグメンテーシヨン手法
がメモリ管理装置13に対して実施されているの
で、仮想アドレスの総空間は4096のメモリ・セグ
メントに分割され、各メモリ・セグメントは256
メガバイトを占めている。
想資源管理プログラム25の関係を示したもので
ある。第2図に示すように、仮想計算機は22a
−22cなどの、ひとつまたはそれ以上の適用業
務プログラム、および少なくともひとつのオペレ
ーテイング・システム30を含んでいる。仮想計
算機インタフエース31が、仮想計算機とVRM
25の間に設定されている。ハードウエア・イン
タフエース32もVTR25とハードウエア部分
10の間に設定されている。VRM25は仮想記
憶をサポートしている。説明のため、第1図に示
すハードウエアのメモリ機能が、システム・メモ
リ14に対する16メガバイトの容量に等しい、シ
ステム・メモリ14用の24ビツトのアドレス空間
と、1テラバイトのメモリに等しい、仮想記憶用
の40ビツトのアドレス空間とを含んでいるもの
と、想定する。ページ化セグメンテーシヨン手法
がメモリ管理装置13に対して実施されているの
で、仮想アドレスの総空間は4096のメモリ・セグ
メントに分割され、各メモリ・セグメントは256
メガバイトを占めている。
第3図は、仮想記憶のモデルを示すものであ
る。処理装置12は、たとえば適用業務プログラ
ムによつて指定される32ビツトの有効アドレスを
与える。32ビツトのアドレスの内高次の4ビツト
は、メモリ管理装置(MMU)13に配置されて
いる16個のセグメント・レジスタから1個を選択
する機能を果たす。各セグメント・レジスタは、
特別な制御型式のビツトと共に、12ビツトのセグ
メントID部分を含んでいる。12ビツトのセグメ
ントIDは、初期有効アドレスの残りの28ビツト
と連結され、システムに40ビツトの仮想アドレス
を与える。40ビツトの仮想アドレスは次いで、24
ビツトの実アドレスに変換され、この実アドレス
を使用して、システム・メモリ14をアドレスす
る。
る。処理装置12は、たとえば適用業務プログラ
ムによつて指定される32ビツトの有効アドレスを
与える。32ビツトのアドレスの内高次の4ビツト
は、メモリ管理装置(MMU)13に配置されて
いる16個のセグメント・レジスタから1個を選択
する機能を果たす。各セグメント・レジスタは、
特別な制御型式のビツトと共に、12ビツトのセグ
メントID部分を含んでいる。12ビツトのセグメ
ントIDは、初期有効アドレスの残りの28ビツト
と連結され、システムに40ビツトの仮想アドレス
を与える。40ビツトの仮想アドレスは次いで、24
ビツトの実アドレスに変換され、この実アドレス
を使用して、システム・メモリ14をアドレスす
る。
MMU13は変換索引バツフア(TLB)を利
用して、最も近い時点で使用された仮想アドレス
の変換を含める。ハードウエアを使用して、新し
い仮想アドレスが変換のためにTLBに提示され
た場合に、主記憶ページ・テーブルからTLB項
目を自動的に更新する。
用して、最も近い時点で使用された仮想アドレス
の変換を含める。ハードウエアを使用して、新し
い仮想アドレスが変換のためにTLBに提示され
た場合に、主記憶ページ・テーブルからTLB項
目を自動的に更新する。
第4図は、TLB再ロード機能の概念を示すも
のである。
のである。
第4図に示すように、逆ページ・テーブル
(IPT)で40ビツトの仮想アドレスを索引するこ
とによつて、これらのアドレスをTLBにロード
する。テーブルが「逆転」されるのは、このテー
ブルが仮想ページあたり1項目ではなく、各実メ
モリ・ページに対して1項目を含んでいるからで
ある。それ故、サポートされているプロセスまた
は仮想セグメントの数に関係なく、IPTに実メモ
リの固定部分が必要となる。アドレスを変換する
ため、ハツシユ機能を仮想ページ数(40ビツトの
仮想アドレスの高次部−ページ・オフセツトを除
いた)に適用し、ハツシユ・アンカ・テーブル
(HAT)に対する索引を得る。各HAT項目は同
じハツシユ値を有するIPT項目の連鎖をポイント
する。ハツシユ連鎖の線形探索によつて、IPT項
目と、それ故、当初の40ビツトの仮想アドレスに
対応する実ページ数が得られる。このような項目
が見つからなかつた場合、仮想ページがシステム
にマツプされず、ページ不在割込が生じる。
(IPT)で40ビツトの仮想アドレスを索引するこ
とによつて、これらのアドレスをTLBにロード
する。テーブルが「逆転」されるのは、このテー
ブルが仮想ページあたり1項目ではなく、各実メ
モリ・ページに対して1項目を含んでいるからで
ある。それ故、サポートされているプロセスまた
は仮想セグメントの数に関係なく、IPTに実メモ
リの固定部分が必要となる。アドレスを変換する
ため、ハツシユ機能を仮想ページ数(40ビツトの
仮想アドレスの高次部−ページ・オフセツトを除
いた)に適用し、ハツシユ・アンカ・テーブル
(HAT)に対する索引を得る。各HAT項目は同
じハツシユ値を有するIPT項目の連鎖をポイント
する。ハツシユ連鎖の線形探索によつて、IPT項
目と、それ故、当初の40ビツトの仮想アドレスに
対応する実ページ数が得られる。このような項目
が見つからなかつた場合、仮想ページがシステム
にマツプされず、ページ不在割込が生じる。
ページ不在ハンドラ(PFH)の機能は、実記
憶を参照された仮想ページに割り当て、要求され
たデータを実記憶に変換するために必要な入出力
を行うことである。それ故、システムは要求時ペ
ージング型のシステムである。
憶を参照された仮想ページに割り当て、要求され
たデータを実記憶に変換するために必要な入出力
を行うことである。それ故、システムは要求時ペ
ージング型のシステムである。
実記憶が一杯になつた場合、PFHもデータの
どのページをページ・アウトするかの選択を行わ
なければならない。選択はクロツク・ページ置換
アルゴリズムなどの適当なアルゴリズムによつて
行われる。クロツク・ページ置換アルゴリズム
は、ページが最後に使用された、または参照され
た時期に基づいて、ページを置換するものであ
る。ページは磁気デイスク装置に転送される。
どのページをページ・アウトするかの選択を行わ
なければならない。選択はクロツク・ページ置換
アルゴリズムなどの適当なアルゴリズムによつて
行われる。クロツク・ページ置換アルゴリズム
は、ページが最後に使用された、または参照され
た時期に基づいて、ページを置換するものであ
る。ページは磁気デイスク装置に転送される。
仮想記憶管理データ構造。仮想記憶管理データ
構造の特性を、一部第5図を参照して以下で説明
する。
構造の特性を、一部第5図を参照して以下で説明
する。
セグメント・テーブル。セグメント・テーブル
(SIDTABLE)は活動セグメントを記述する情
報を含んである。このテーブルは次のような特性
を有している。このテーブルは実記憶に固定さ
れ、その大きさは予め定められている。テーブル
はメモリ内でワード順になつていなかればなら
ず、かつセグメント・テーブルをページング・サ
ブシステムのクリチカル・セクシヨンで変更しな
ければならない。
(SIDTABLE)は活動セグメントを記述する情
報を含んである。このテーブルは次のような特性
を有している。このテーブルは実記憶に固定さ
れ、その大きさは予め定められている。テーブル
はメモリ内でワード順になつていなかればなら
ず、かつセグメント・テーブルをページング・サ
ブシステムのクリチカル・セクシヨンで変更しな
ければならない。
外部ページ・テーブル。外部ページ・テーブル
(XPT)はページをデイスクにマツプする方法を
記述したものである。仮想記憶の定義された各ペ
ージにXPT項目がひとつある。セグメントが作
成されると、セグメントに対するXPT項目が連
続項目として割り振られる。1メガバイト未満
の、小さなセグメントに対するXPT項目は、
XPTのページ境界を横切らない。1メガバイト
以上の、大きなセグメントに対するXPT項目は、
XPTページの開始部分に揃えられる。XPT項目
は、65536バイト(64K)の仮想記憶をマツプす
る32項目単位で、割り振られる。各項目には4バ
イト必要である。このテーブルは次のような特性
を有している。メモリに固定しなければならない
のは、XPTルート項目だけである。この項目の
大きさは予め定められており、ワード順でなけれ
ばならない。仮想ページ番号がXPTテーブルに
対する索引となつている。XPTを変更するのは、
ページング・サブシステムのクリチカル・セクシ
ヨンにおいてだけでなければならない。
(XPT)はページをデイスクにマツプする方法を
記述したものである。仮想記憶の定義された各ペ
ージにXPT項目がひとつある。セグメントが作
成されると、セグメントに対するXPT項目が連
続項目として割り振られる。1メガバイト未満
の、小さなセグメントに対するXPT項目は、
XPTのページ境界を横切らない。1メガバイト
以上の、大きなセグメントに対するXPT項目は、
XPTページの開始部分に揃えられる。XPT項目
は、65536バイト(64K)の仮想記憶をマツプす
る32項目単位で、割り振られる。各項目には4バ
イト必要である。このテーブルは次のような特性
を有している。メモリに固定しなければならない
のは、XPTルート項目だけである。この項目の
大きさは予め定められており、ワード順でなけれ
ばならない。仮想ページ番号がXPTテーブルに
対する索引となつている。XPTを変更するのは、
ページング・サブシステムのクリチカル・セクシ
ヨンにおいてだけでなければならない。
逆ページ・テーブル。逆ページ・テーブル
(IPT)は、上記したように、仮想アドレスと実
アドレスの間の関係を記述したものである。IPT
は2つのアレイで構成されている。第1のアレイ
は主として、メモリ管理装置によつて定義され、
変換機能を制御する情報を含んでいる。第2のア
レイはページング・サブシステムのページ状態情
報を含んでおり、ページ不在処理を制御するため
に使用される。このアレイは次のような特性を有
している。このアレイは固定されており、その大
きさは初期プログラム・ローデイング(IPL)時
にセツトされる実記憶の大きさによつて決定され
る。このアレイは実記憶の大きさにしたがつて、
揃えられる。実ページ番号がIPに対する索引に
なつている。上述の構造と同様に、このアレイの
変更は、ページング・サブシステムのクリチカ
ル・セクシヨンで行わなければならない。各実ペ
ージ・フレームはIPTに項目を有している。すべ
てのページは3つのリストのひとつにある。
(IPT)は、上記したように、仮想アドレスと実
アドレスの間の関係を記述したものである。IPT
は2つのアレイで構成されている。第1のアレイ
は主として、メモリ管理装置によつて定義され、
変換機能を制御する情報を含んでいる。第2のア
レイはページング・サブシステムのページ状態情
報を含んでおり、ページ不在処理を制御するため
に使用される。このアレイは次のような特性を有
している。このアレイは固定されており、その大
きさは初期プログラム・ローデイング(IPL)時
にセツトされる実記憶の大きさによつて決定され
る。このアレイは実記憶の大きさにしたがつて、
揃えられる。実ページ番号がIPに対する索引に
なつている。上述の構造と同様に、このアレイの
変更は、ページング・サブシステムのクリチカ
ル・セクシヨンで行わなければならない。各実ペ
ージ・フレームはIPTに項目を有している。すべ
てのページは3つのリストのひとつにある。
各有効セグメントには、主リストがひとつあ
る。このリストは二重に連係され、セグメント制
御ブロツクに固定される。このリストは有効仮想
アドレスによつてセグメントに割り当てられたす
べてのページ・フレームを連系する。このリスト
に対して、有効な変換索引バツフア(TLB)項
目が存在することもある。
る。このリストは二重に連係され、セグメント制
御ブロツクに固定される。このリストは有効仮想
アドレスによつてセグメントに割り当てられたす
べてのページ・フレームを連系する。このリスト
に対して、有効な変換索引バツフア(TLB)項
目が存在することもある。
再割り当てできるページ・フレームを連系す
る、システム全体に渡る自由リストがひとつあ
る。この二重に連係された循環リストは、ページ
1に対してIPTに固定されている。このリストの
ページは有効なTLB項目を有しておらず、これ
らのページに対するアクセスは常にページ不在を
もたらす。ページが主リストおよび自由リストの
両方にあつてもかまわない。これが行われるの
で、ページを自由リスナの探索を行わずに、解放
することも可能である。未命名(未ハツシユ)の
ページは、リストの最初の部分に置かれ、命名済
み(ハツシユ済み)のページは最後の部分に置か
れる。
る、システム全体に渡る自由リストがひとつあ
る。この二重に連係された循環リストは、ページ
1に対してIPTに固定されている。このリストの
ページは有効なTLB項目を有しておらず、これ
らのページに対するアクセスは常にページ不在を
もたらす。ページが主リストおよび自由リストの
両方にあつてもかまわない。これが行われるの
で、ページを自由リスナの探索を行わずに、解放
することも可能である。未命名(未ハツシユ)の
ページは、リストの最初の部分に置かれ、命名済
み(ハツシユ済み)のページは最後の部分に置か
れる。
現在デイスクから読み取られているか、あるい
はデイスクに書き込まれている、すべてのページ
を連係するシステム全体に渡る入出力リストがひ
とつある。この二重に連係された循環リストは、
ページ2に対してIPTに固定されている。このリ
ストのページは有効なTLB項目を有しておらず、
これらのページに対するアクセスもページ不在を
もたらす。先入先出し法でないデイスク・スケジ
ユーリングが行われていなくとも、入出力をブロ
ツクごとに先入先出し法で、確実に処理するた
め、ページ入出力リストはひとつだけでなければ
ならない。
はデイスクに書き込まれている、すべてのページ
を連係するシステム全体に渡る入出力リストがひ
とつある。この二重に連係された循環リストは、
ページ2に対してIPTに固定されている。このリ
ストのページは有効なTLB項目を有しておらず、
これらのページに対するアクセスもページ不在を
もたらす。先入先出し法でないデイスク・スケジ
ユーリングが行われていなくとも、入出力をブロ
ツクごとに先入先出し法で、確実に処理するた
め、ページ入出力リストはひとつだけでなければ
ならない。
通知制御ブロツク。通知制御ブロツク(NCB)
は仮想計算機に、非同期ページング要求が完了し
たことを通知するのに必要な情報を含んでいる。
非同期要求はパージ・ページ範囲サービス・コー
ル(SVC)、あるいは非同期肯定応答が認められ
た場合のページ不在のいずれかである。NCBは
システム制御ブロツク領域内の自己記述制御ブロ
ツクである。NCBの記述子フイールドを使用し
て、NCBをシステム制御ブロツク領域内の他の
型式の制御ブロツクと区別することができる。こ
れが必要なのは、NCBがプロセス制御ブロツク
(PCB)と同じ待ち行列に入れられるからであ
る。NCBは固定されており、必要に応じ、シス
テム制御ブロツク領域に割り振られる。上記の構
造と同様に、NCBの変更はページング・サブシ
ステムのクリチカル・セクシヨンで行わなければ
ならない。NCBが割り振られるのは、ページ不
在ハンドラがプロセスに代わつて機能を果たして
おり、したがつて、システム制御ブロツクが不十
分なことによるシステムの異常終了を引き起こさ
ない場合だけである。
は仮想計算機に、非同期ページング要求が完了し
たことを通知するのに必要な情報を含んでいる。
非同期要求はパージ・ページ範囲サービス・コー
ル(SVC)、あるいは非同期肯定応答が認められ
た場合のページ不在のいずれかである。NCBは
システム制御ブロツク領域内の自己記述制御ブロ
ツクである。NCBの記述子フイールドを使用し
て、NCBをシステム制御ブロツク領域内の他の
型式の制御ブロツクと区別することができる。こ
れが必要なのは、NCBがプロセス制御ブロツク
(PCB)と同じ待ち行列に入れられるからであ
る。NCBは固定されており、必要に応じ、シス
テム制御ブロツク領域に割り振られる。上記の構
造と同様に、NCBの変更はページング・サブシ
ステムのクリチカル・セクシヨンで行わなければ
ならない。NCBが割り振られるのは、ページ不
在ハンドラがプロセスに代わつて機能を果たして
おり、したがつて、システム制御ブロツクが不十
分なことによるシステムの異常終了を引き起こさ
ない場合だけである。
ページ不在待ちリスト。仮想資源管理プログラ
ムは内部プロセスまたは仮想計算機プロセスのい
ずれかを、3つの循環待ちリストのひとつに置く
ことができる。
ムは内部プロセスまたは仮想計算機プロセスのい
ずれかを、3つの循環待ちリストのひとつに置く
ことができる。
システム内の各フレームに対して、ページ入出
力待ちリストがひとつある。ページの入出力待ち
リストはページのIPT項目に固定されており、か
つページへの入出力が完了するのを同期的に待つ
ているプロセスのプロセス制御ブロツク(PCB)
と、入出力完了通知を非同期的に待つているプロ
セスのNCBを連係する。プロセスが入出力が行
われているページを再利用するか、あるいはペー
ジ不在の結果として、プロセスが入出力にページ
を開始した場合に、プロセスがページの入出力待
ちリストに置かれる。
力待ちリストがひとつある。ページの入出力待ち
リストはページのIPT項目に固定されており、か
つページへの入出力が完了するのを同期的に待つ
ているプロセスのプロセス制御ブロツク(PCB)
と、入出力完了通知を非同期的に待つているプロ
セスのNCBを連係する。プロセスが入出力が行
われているページを再利用するか、あるいはペー
ジ不在の結果として、プロセスが入出力にページ
を開始した場合に、プロセスがページの入出力待
ちリストに置かれる。
大域システム自由ページ・フレーム待ちリスト
がひとつある。このリストはPCBまたはNCBを、
自由ページ・フレームを待つているプロセスに連
係する。このリストは先入先出し法で処理され
る。プロセスが自由ページ・フレームを必要とし
ており、しかもこれがない場合に、プロセスがこ
のリストに置かれる。プロセスのPCBは同期待
ちのためのリストの待ち行列に入れられ、NCB
は非同期待ちのためのリストの待ち行列に入れら
れる。最後に、大域システム・ページ入出力待ち
リストがひとつある。このリストはPCBまたは
NCBを、特定のページ入出力レベル以下のすべ
てのページ・アウト入出力を待つているプロセス
に連係する。このリストはページ入出力レベルに
よつて、分類される。仮想記憶管理プログラム・
サービス・コールの幾つかによつて、プロセスを
このリストに置き、デイスクの内容が確実にメモ
リの内容と合致するようにする。同期要求に対し
て、PCBがリストの待ち行列に入れられるか、
あるいは非同期要求に対して、NCBがリストの
待ち行列に入れられる。デイスク・スケジユーリ
ングが先入先出し法でない場合、ページ入出力レ
ベルによつて、プロセスが必要以上に長い間待つ
ことになることがあることに、留意されたい。
がひとつある。このリストはPCBまたはNCBを、
自由ページ・フレームを待つているプロセスに連
係する。このリストは先入先出し法で処理され
る。プロセスが自由ページ・フレームを必要とし
ており、しかもこれがない場合に、プロセスがこ
のリストに置かれる。プロセスのPCBは同期待
ちのためのリストの待ち行列に入れられ、NCB
は非同期待ちのためのリストの待ち行列に入れら
れる。最後に、大域システム・ページ入出力待ち
リストがひとつある。このリストはPCBまたは
NCBを、特定のページ入出力レベル以下のすべ
てのページ・アウト入出力を待つているプロセス
に連係する。このリストはページ入出力レベルに
よつて、分類される。仮想記憶管理プログラム・
サービス・コールの幾つかによつて、プロセスを
このリストに置き、デイスクの内容が確実にメモ
リの内容と合致するようにする。同期要求に対し
て、PCBがリストの待ち行列に入れられるか、
あるいは非同期要求に対して、NCBがリストの
待ち行列に入れられる。デイスク・スケジユーリ
ングが先入先出し法でない場合、ページ入出力レ
ベルによつて、プロセスが必要以上に長い間待つ
ことになることがあることに、留意されたい。
ページング・ミニデイスク・テーブル。ページ
ング・ミニデイスク・テーブルは仮想記憶管理プ
ログラムのスロツト番号を、ミニデイスク入出力
装置番号(IODN)および論理ブロツク番号に変
換することを制御する。このテーブルの項目数
が、仮想記憶管理プログラムがページング操作を
行うことのできるミニデイスクの最大数を定義す
る。このアレイは次のような特性を有している。
このアレイは固定されており、その大きさは予め
定められており、かつワード順になつている。ペ
ージング空間のミニデイスク項目は、システムの
初期設定時に割り振られるものであり、かつテー
ブルの最初の項目でなければならない。マツプさ
れたページ範囲サービス・コールが項目を、マツ
プされたミニデイスクに割り振る。デイスク・ア
ドレスの最上位ビツトが、このテーブルに対する
索引となる。上記のデータ構造と同様に、これを
変更できるのは、仮想記憶管理プログラムのクリ
チカル・セクシヨンにおいてだけである。
ング・ミニデイスク・テーブルは仮想記憶管理プ
ログラムのスロツト番号を、ミニデイスク入出力
装置番号(IODN)および論理ブロツク番号に変
換することを制御する。このテーブルの項目数
が、仮想記憶管理プログラムがページング操作を
行うことのできるミニデイスクの最大数を定義す
る。このアレイは次のような特性を有している。
このアレイは固定されており、その大きさは予め
定められており、かつワード順になつている。ペ
ージング空間のミニデイスク項目は、システムの
初期設定時に割り振られるものであり、かつテー
ブルの最初の項目でなければならない。マツプさ
れたページ範囲サービス・コールが項目を、マツ
プされたミニデイスクに割り振る。デイスク・ア
ドレスの最上位ビツトが、このテーブルに対する
索引となる。上記のデータ構造と同様に、これを
変更できるのは、仮想記憶管理プログラムのクリ
チカル・セクシヨンにおいてだけである。
デイスク割振りビツト・マツプ。仮想記憶管理
プログラムは各ページング空間のミニデイスクに
対して、ビツト・マツプを管理する。各ビツトは
ページが割り振られているか、自由であるかを示
す。システムの初期設定時にミニデイスクをオー
プンすると、バツド・スロツトが割振り済みとマ
ークされる。このアレイは次のような特性を有し
ている。このアレイはページ可能ではなく、ペー
ジング空間がページ・アウト時に割り振られ、デ
イスク・アドレスの最下位ビツトが、このアレイ
に対する索引となり、かつ上記の構造と同様に、
このアレイを変更できるのは、仮想記憶管理プロ
グラムのクリチカル・セクシヨンにおいてだけで
ある。
プログラムは各ページング空間のミニデイスクに
対して、ビツト・マツプを管理する。各ビツトは
ページが割り振られているか、自由であるかを示
す。システムの初期設定時にミニデイスクをオー
プンすると、バツド・スロツトが割振り済みとマ
ークされる。このアレイは次のような特性を有し
ている。このアレイはページ可能ではなく、ペー
ジング空間がページ・アウト時に割り振られ、デ
イスク・アドレスの最下位ビツトが、このアレイ
に対する索引となり、かつ上記の構造と同様に、
このアレイを変更できるのは、仮想記憶管理プロ
グラムのクリチカル・セクシヨンにおいてだけで
ある。
ページング装置拡張機構。仮想記憶管理プログ
ラムがサポートしている各ページ空間に対して、
ページング装置拡張機構(PDX)がひとつある。
PDXはページング・ミニデイスク・テーブルの
ページング空間項目に対する拡張機構である。仮
想記憶管理プログラムがページング空間を管理
し、PDXはこの管理の際に管理プログラムを導
くために使用される。PDXの属性は次のとおり
である。PDXは固定されており、システムの初
期設定時にシステム制御ブロツクから割り振られ
る。PDXはリストに連係され、大域ポインタに
よつて固定され、上記の構造と同様に、PDXを
変更できるのは、仮想記憶管理プログラムのクリ
チカル・セクシヨンにおいてだけである。PDX
の割振りは動的ではない。システムの初期設定に
よつてすべてのPDXが割り振られ、初期設定さ
れる。
ラムがサポートしている各ページ空間に対して、
ページング装置拡張機構(PDX)がひとつある。
PDXはページング・ミニデイスク・テーブルの
ページング空間項目に対する拡張機構である。仮
想記憶管理プログラムがページング空間を管理
し、PDXはこの管理の際に管理プログラムを導
くために使用される。PDXの属性は次のとおり
である。PDXは固定されており、システムの初
期設定時にシステム制御ブロツクから割り振られ
る。PDXはリストに連係され、大域ポインタに
よつて固定され、上記の構造と同様に、PDXを
変更できるのは、仮想記憶管理プログラムのクリ
チカル・セクシヨンにおいてだけである。PDX
の割振りは動的ではない。システムの初期設定に
よつてすべてのPDXが割り振られ、初期設定さ
れる。
ページ不在処理。同期ページ不在処理が典型的
なページ不在処理の型式である。この操作時に、
ページ不在を解決するに必要な入出力が完了する
まで、不在処理は待ち状態に置かれる。各入出力
要求の完了時に、仮想記憶管理プログラムは処理
を再開する。タスクの再指名時に、プロセスはペ
ージ不在を生じて、不在状態を解決するために付
加的な入出力をスケジユールするか、あるいはペ
ージ不在を生じないで、ページ不在が解決されて
いるかのいずれかとなる。仮想計算機が「ページ
不在クリア」という機械通信割込を受信するの
で、仮想計算機が不在タスクを作動可能タスク・
リストに戻すことができる。これによつて、仮想
計算機における実行に関して、ページ不在の非同
期的な処理が可能となる。仮想計算機はページ不
在通知を割込禁止とすることによつて、同期ペー
ジ不在処理を行うことができる。留意しなければ
ならないのは、ページ不在クリア割込を、仮想計
算機によつて直接割込禁止とすることができない
ことである。ページ不在によつて発生する割込を
もたらした不在状態に対する入出力が完了する
と、ページ不在クリア割込が常に与えられる。ペ
ージ不在クリア割込を、ページ不在によつて発生
した割込を割込禁止とすることによつて、間接的
に割込禁止とすることができる。
なページ不在処理の型式である。この操作時に、
ページ不在を解決するに必要な入出力が完了する
まで、不在処理は待ち状態に置かれる。各入出力
要求の完了時に、仮想記憶管理プログラムは処理
を再開する。タスクの再指名時に、プロセスはペ
ージ不在を生じて、不在状態を解決するために付
加的な入出力をスケジユールするか、あるいはペ
ージ不在を生じないで、ページ不在が解決されて
いるかのいずれかとなる。仮想計算機が「ページ
不在クリア」という機械通信割込を受信するの
で、仮想計算機が不在タスクを作動可能タスク・
リストに戻すことができる。これによつて、仮想
計算機における実行に関して、ページ不在の非同
期的な処理が可能となる。仮想計算機はページ不
在通知を割込禁止とすることによつて、同期ペー
ジ不在処理を行うことができる。留意しなければ
ならないのは、ページ不在クリア割込を、仮想計
算機によつて直接割込禁止とすることができない
ことである。ページ不在によつて発生する割込を
もたらした不在状態に対する入出力が完了する
と、ページ不在クリア割込が常に与えられる。ペ
ージ不在クリア割込を、ページ不在によつて発生
した割込を割込禁止とすることによつて、間接的
に割込禁止とすることができる。
同期ページ不在処理。同期不在に対して、不在
を発生したプロセスのプロセス制御ブロツク
(PCB)はページの入出力待ちリストに置かれる
か、あるいは入出力が必要な場合には、自由ペー
ジ・フレームに置かれるかのいずれかとなる。こ
のプロセスは仮想記憶管理プログラムがページに
対する入出力を開始したか、あるいは既に進行中
のページに対する入出力を開始した場合に、ペー
ジ入出力待ちリストに置かれる。入出力を行うの
に利用できる自由ページがない場合、プロセスは
自由ページ・フレーム・リストに置かれる。
を発生したプロセスのプロセス制御ブロツク
(PCB)はページの入出力待ちリストに置かれる
か、あるいは入出力が必要な場合には、自由ペー
ジ・フレームに置かれるかのいずれかとなる。こ
のプロセスは仮想記憶管理プログラムがページに
対する入出力を開始したか、あるいは既に進行中
のページに対する入出力を開始した場合に、ペー
ジ入出力待ちリストに置かれる。入出力を行うの
に利用できる自由ページがない場合、プロセスは
自由ページ・フレーム・リストに置かれる。
非同期ページ不在処理。非同期ページ不在が発
生した場合、不在を生じた仮想計算機には不在と
なつたセグメント識別子が通知され、仮想アドレ
スは最も近いページ境界まで切り下げられる。特
に留意しなければならないのは、通知が与えられ
るのが、仮想計算機が不在を生じたアドレスに対
してではなく、そのページに対してであることで
ある。たとえば、仮想計算機がアドレスX′806′、
X′856′、X′87E′で不在を生じた場合、この仮想計
算機はX′800′について、3つのページ不在発生通
知を受け取り、X′800′についてひとつのページ不
在クリア通知を受け取る。通知制御ブロツク
(NCB)が割り振られ、入出力が要求されると、
ページの入出力待ちリストに連鎖される。このチ
エインはPCBが連鎖されたチエインと同じもの
である。PCBおよびNCBをタイプし、これらが
別のものであることを、通知できる。PCBは同
期ページ不在に連鎖され、NCBは非同期ページ
不在に連鎖される。
生した場合、不在を生じた仮想計算機には不在と
なつたセグメント識別子が通知され、仮想アドレ
スは最も近いページ境界まで切り下げられる。特
に留意しなければならないのは、通知が与えられ
るのが、仮想計算機が不在を生じたアドレスに対
してではなく、そのページに対してであることで
ある。たとえば、仮想計算機がアドレスX′806′、
X′856′、X′87E′で不在を生じた場合、この仮想計
算機はX′800′について、3つのページ不在発生通
知を受け取り、X′800′についてひとつのページ不
在クリア通知を受け取る。通知制御ブロツク
(NCB)が割り振られ、入出力が要求されると、
ページの入出力待ちリストに連鎖される。このチ
エインはPCBが連鎖されたチエインと同じもの
である。PCBおよびNCBをタイプし、これらが
別のものであることを、通知できる。PCBは同
期ページ不在に連鎖され、NCBは非同期ページ
不在に連鎖される。
外部ページ・テーブルにおけるページ不在(当
初の不在以外の)のため、通知が与えられた場
合、通知制御ブロツクはXPTがページ・インさ
れたIPTとの連鎖から外されるが、当初のページ
不在のアドレスは通知制御ブロツクにある。
初の不在以外の)のため、通知が与えられた場
合、通知制御ブロツクはXPTがページ・インさ
れたIPTとの連鎖から外されるが、当初のページ
不在のアドレスは通知制御ブロツクにある。
自由フレーム待ちリストは特別な場合である。
仮想計算機には通知が与えられ、そのNCBは
PCBと共に、自由フレーム待ちリストに先入先
出しで連鎖される。このNCBが自由フレーム待
ちリストの先頭にある場合に、フレームを解放さ
せる最初のページ・アウトが、通知を与える。
仮想計算機には通知が与えられ、そのNCBは
PCBと共に、自由フレーム待ちリストに先入先
出しで連鎖される。このNCBが自由フレーム待
ちリストの先頭にある場合に、フレームを解放さ
せる最初のページ・アウトが、通知を与える。
ページ不在発生通知。非同期不在が発生し、入
出力が要求された場合に、ページ不在ハンドラが
ページ不在発生割込を発生させる。この機能を実
行するには、VRM待ち行列要素は必要ない。ペ
ージ不在ハンドラは実際には、仮想計算機の
PSBと実行レベルをスワツプする。これを可能
とする前提は、機械通信上のページ不在またはプ
ログラムチエツク・レベルが、通知なしに同期的
に処理されることである。このことは仮想計算機
がページ不在発生割込を常に受け入れることがで
きるため、割込を待ち行列に入れる必要がないこ
とを意味する。
出力が要求された場合に、ページ不在ハンドラが
ページ不在発生割込を発生させる。この機能を実
行するには、VRM待ち行列要素は必要ない。ペ
ージ不在ハンドラは実際には、仮想計算機の
PSBと実行レベルをスワツプする。これを可能
とする前提は、機械通信上のページ不在またはプ
ログラムチエツク・レベルが、通知なしに同期的
に処理されることである。このことは仮想計算機
がページ不在発生割込を常に受け入れることがで
きるため、割込を待ち行列に入れる必要がないこ
とを意味する。
ページ不在クリア通知。ページ不在に対する入
出力が完了すると、仮想記憶管理プログラムが終
結処理のために、呼び出される。ページ不在完了
割込はVRM待ち行列管理機能によつて、仮想計
算機に対して待ち行列に入れられる。このことは
待ち行列要素が必要であることを意味する。通知
制御ブロツクがこの機能のために使用される。
出力が完了すると、仮想記憶管理プログラムが終
結処理のために、呼び出される。ページ不在完了
割込はVRM待ち行列管理機能によつて、仮想計
算機に対して待ち行列に入れられる。このことは
待ち行列要素が必要であることを意味する。通知
制御ブロツクがこの機能のために使用される。
非同期ページ不在シナリオ。ページ不在はこれ
が生成した入出力が完了すると、完了したものと
みなされる。仮想計算機は合計n個のページ不在
発生割込を受け取り、かつn回の入出力を満たす
ことが必要なページ不在に対して、n個のページ
完了割込を受け取る。例(n=3の場合)。仮想
計算機が存在していずが、メモリ上にないページ
で、ページ不在を発生し、メモリにこれをペー
ジ・インする自由フレームがなく、かつ仮想記憶
管理プログラムが当初のページに対して、XPT
でページ不在を発生したものと想定する。以下の
リストはイベントの順序を表したものである(こ
のシナリオが典型的なものでないことに、留意さ
れたい)。
が生成した入出力が完了すると、完了したものと
みなされる。仮想計算機は合計n個のページ不在
発生割込を受け取り、かつn回の入出力を満たす
ことが必要なページ不在に対して、n個のページ
完了割込を受け取る。例(n=3の場合)。仮想
計算機が存在していずが、メモリ上にないページ
で、ページ不在を発生し、メモリにこれをペー
ジ・インする自由フレームがなく、かつ仮想記憶
管理プログラムが当初のページに対して、XPT
でページ不在を発生したものと想定する。以下の
リストはイベントの順序を表したものである(こ
のシナリオが典型的なものでないことに、留意さ
れたい)。
1 VMがページ不在を発生する
2 VMMがページ・アウト要求を待ち行列に入
れ、自由ページ・フレーム・リストを構築する 3 VMMが仮想計算機に、当初のページ不在を
通知する 4 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 5 ページ・アウト入出力が完する 6 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 7 VMにタスク指名がされる 8 VMがページ不在を再度同じアドレスに発生
する 9 VMMがXPTにページ不在を発生する 10 VMMがXPTに対して、ページ・イン要求
を待ち行列に入れる 11 VMMが仮想計算機に、当初のページ不在を
通知する 12 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 13 XPTページ・イン入出力が完了する 14 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 15 VMにタスク指名される 16 VMがページ不在を再度同じアドレスに発生
する 17 VMMがページ不在に対して、ページ・イン
要求を待ち行列に入れる 18 VMMが仮想計算機に、ページ不在を通知す
る 19 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 20 ページ・イン入出力が完了する 21 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 22 VMにタスク指名がされる パージ・ページ範囲通知。システムには入出力
完了通知を、仮想記憶管理プログラムから受け取
る他の方法がある。これはパージ・ページSVC
の非同期強制書込みオプシヨンにある。パージに
対する入出力の完了時に、機械通信割込がひと
つ、仮想計算機に提示される。ページ不在完了割
込と同様に、仮想計算機がページ不在通知を割込
可能にするかどうかに関係なく、これは仮想計算
機に与えられる。
れ、自由ページ・フレーム・リストを構築する 3 VMMが仮想計算機に、当初のページ不在を
通知する 4 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 5 ページ・アウト入出力が完する 6 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 7 VMにタスク指名がされる 8 VMがページ不在を再度同じアドレスに発生
する 9 VMMがXPTにページ不在を発生する 10 VMMがXPTに対して、ページ・イン要求
を待ち行列に入れる 11 VMMが仮想計算機に、当初のページ不在を
通知する 12 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 13 XPTページ・イン入出力が完了する 14 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 15 VMにタスク指名される 16 VMがページ不在を再度同じアドレスに発生
する 17 VMMがページ不在に対して、ページ・イン
要求を待ち行列に入れる 18 VMMが仮想計算機に、ページ不在を通知す
る 19 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 20 ページ・イン入出力が完了する 21 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 22 VMにタスク指名がされる パージ・ページ範囲通知。システムには入出力
完了通知を、仮想記憶管理プログラムから受け取
る他の方法がある。これはパージ・ページSVC
の非同期強制書込みオプシヨンにある。パージに
対する入出力の完了時に、機械通信割込がひと
つ、仮想計算機に提示される。ページ不在完了割
込と同様に、仮想計算機がページ不在通知を割込
可能にするかどうかに関係なく、これは仮想計算
機に与えられる。
これはPCBと共にNCBを、ページ入出力待ち
リストに連鎖するように作動する。NCBにおい
て、パージ入出力を完了したものとみなせるよう
になる前に、達成しなければならないページ入出
力レベルがマークされる。このページ入出力レベ
ルが達成されると、仮想計算機に通知が行われ
る。
リストに連鎖するように作動する。NCBにおい
て、パージ入出力を完了したものとみなせるよう
になる前に、達成しなければならないページ入出
力レベルがマークされる。このページ入出力レベ
ルが達成されると、仮想計算機に通知が行われ
る。
ページ不在ハンドラ。ページ不在ハンドラの主
要機能、すなわち同期および非同期ページ不在を
処理する方法については、「ページ不在処理」で
検討した。以下の説明において、「不在発生源に
通知」などのステートメントが出された場合、こ
れは不在発生源が非同期的に不在を発生したので
あれば、これが通知され、これ以外の場合には、
上述の規則にしたがつて、作動不能となることを
意味する。ページ不在ハンドラがページ不在を解
決するために行うプロセスを、以下で説明する。
要機能、すなわち同期および非同期ページ不在を
処理する方法については、「ページ不在処理」で
検討した。以下の説明において、「不在発生源に
通知」などのステートメントが出された場合、こ
れは不在発生源が非同期的に不在を発生したので
あれば、これが通知され、これ以外の場合には、
上述の規則にしたがつて、作動不能となることを
意味する。ページ不在ハンドラがページ不在を解
決するために行うプロセスを、以下で説明する。
ページ不在ハンドラはすべての割込装置の下に
ある下位の割込レベルにおいて、プログラム・チ
エツク・ハンドラの拡張機能として作動する。こ
のハンドラはバツク・トラツク状態で作動し、そ
れ故、仮想記憶管理プログラムのデータ構造上で
ページ不在を発生することが可能となる。
ある下位の割込レベルにおいて、プログラム・チ
エツク・ハンドラの拡張機能として作動する。こ
のハンドラはバツク・トラツク状態で作動し、そ
れ故、仮想記憶管理プログラムのデータ構造上で
ページ不在を発生することが可能となる。
ページ不在ハンドラを入力すると、このハンド
ラは直ちに、仮想アドレスなどの、不在に関する
情報を与える。これを行う理由は、ページ不在ハ
ンドラがハンドラ自体の内部でページ不在を発生
し、この不在が入出力を行わなければならない場
合、ページ不在ハンドラがどのアドレスを仮想計
算機に与えて、非同期通知を行わなければならな
いかを、知つていなければならないからである。
このことはページ不在のためページ不在ハンドラ
が取り消された場所と、ハンドラ自体のページ不
在を処理するためハンドラが再度呼び出された場
所との間のウインドに、ページ不在が認められな
いということを意味する。
ラは直ちに、仮想アドレスなどの、不在に関する
情報を与える。これを行う理由は、ページ不在ハ
ンドラがハンドラ自体の内部でページ不在を発生
し、この不在が入出力を行わなければならない場
合、ページ不在ハンドラがどのアドレスを仮想計
算機に与えて、非同期通知を行わなければならな
いかを、知つていなければならないからである。
このことはページ不在のためページ不在ハンドラ
が取り消された場所と、ハンドラ自体のページ不
在を処理するためハンドラが再度呼び出された場
所との間のウインドに、ページ不在が認められな
いということを意味する。
ページ不在ハンドラを割り込ませることのでき
る重要な工程が数種類ある。
る重要な工程が数種類ある。
−ページ再利用
ページを再利用できる場合、ページ不在ハン
ドラが実行される。ページ・インまたはペー
ジ・アウト入出力がこのページに対して実行さ
れている場合、不在発生源がこのページの入出
力待ちリストに連鎖される。入出力の完了時
に、プロセスがフレームで待ちになつているか
どうかを調べるためのテストが行われ、待ち状
態がある場合には、その旨が通知される。ペー
ジが自由リスト上にある場合には、ページ・フ
レームがアクセス可能になつたのち、ページ不
在ハンドラに再度タスク指名が行われる。不在
発生源に通知が行われたり、あるいは待ちにさ
れることはない。
ドラが実行される。ページ・インまたはペー
ジ・アウト入出力がこのページに対して実行さ
れている場合、不在発生源がこのページの入出
力待ちリストに連鎖される。入出力の完了時
に、プロセスがフレームで待ちになつているか
どうかを調べるためのテストが行われ、待ち状
態がある場合には、その旨が通知される。ペー
ジが自由リスト上にある場合には、ページ・フ
レームがアクセス可能になつたのち、ページ不
在ハンドラに再度タスク指名が行われる。不在
発生源に通知が行われたり、あるいは待ちにさ
れることはない。
−自由ページ・リストの構築
自由リストが下方論理限界よりも低いことが
判明した場合、ページ・アウトを開始し、リス
トを上方論理限界まで上げる。これらの論理限
界はシステム調整パラメータである。自由リス
トを満たそうとしたのちも、このリストがまだ
空の場合には、不在発生源に当初の不在が通知
される セカンド・チヤンス付きクロツクは、置換さ
れるページを選択するために使用される手法で
ある。
判明した場合、ページ・アウトを開始し、リス
トを上方論理限界まで上げる。これらの論理限
界はシステム調整パラメータである。自由リス
トを満たそうとしたのちも、このリストがまだ
空の場合には、不在発生源に当初の不在が通知
される セカンド・チヤンス付きクロツクは、置換さ
れるページを選択するために使用される手法で
ある。
−不在の処理
ページ不在ハンドラは仮想記憶管理プログラ
ムの構造のほとんどと関連付けられている。し
かし、最も重要なのは、ページ不在ハンドラが
ページ不在を生じたページについてXPTを検
査し、ハンドラがこの時点で、ページ不在を生
じることもあることである。ハンドラはページ
ング空間デイスク・スロツトをこのページに割
り振る。
ムの構造のほとんどと関連付けられている。し
かし、最も重要なのは、ページ不在ハンドラが
ページ不在を生じたページについてXPTを検
査し、ハンドラがこの時点で、ページ不在を生
じることもあることである。ハンドラはページ
ング空間デイスク・スロツトをこのページに割
り振る。
ページ不在終了。このプロシージヤは仮想記
憶管理プログラムに対するすべての入出力完了
割込を処理する。ハード・フアイル装置ドライ
バが仮想記憶管理プログラムの要求を待ち行列
から外した場合に、このプロシージヤは待ち行
列管理プログラムによつて、実行されるようス
ケジユールされる。予め空にされた仮想記憶管
理プログラムのクリチカル・セクシヨンが完了
するまで、このルーチンの実行が遅らされるこ
とに留意されたい。「ページ不在処理」に記載
した規則にしたがつて、ページ不在クリア通知
が、このプロシージヤによつて与えられる。こ
のプロシージヤはページ不在を生じることがで
きず、したがつてXPTその他のページ可能な
データ構造に対する参照は認められない。仮想
記憶管理プログラムに対して行える入出力に
は、次の2つの型式がある。
憶管理プログラムに対するすべての入出力完了
割込を処理する。ハード・フアイル装置ドライ
バが仮想記憶管理プログラムの要求を待ち行列
から外した場合に、このプロシージヤは待ち行
列管理プログラムによつて、実行されるようス
ケジユールされる。予め空にされた仮想記憶管
理プログラムのクリチカル・セクシヨンが完了
するまで、このルーチンの実行が遅らされるこ
とに留意されたい。「ページ不在処理」に記載
した規則にしたがつて、ページ不在クリア通知
が、このプロシージヤによつて与えられる。こ
のプロシージヤはページ不在を生じることがで
きず、したがつてXPTその他のページ可能な
データ構造に対する参照は認められない。仮想
記憶管理プログラムに対して行える入出力に
は、次の2つの型式がある。
−ページ・イン
−ページ・アウト
フレームで待ちになつているすべてのプロセ
スは、作動可能となり、通知される。また、ペ
ージ入出力レベルも更新される。これは完了し
たすべての入出力のカウントである。更新され
たページ入出力レベル以下のページ入出力レベ
ルで待ちとなつているすべてのプロセスは、最
も古い入出力操作が完了すると、作動可能とな
り、通知される。解放されていないページに対
するすべてのページ・インの完了および再使用
されたページ・アウトの完了に対して、IPTタ
グ・ワードの妥当性を検査することによつて、
フレームはアクセス可能とされる。それ以外の
場合には、フレームは自由リストに置かれる。
スは、作動可能となり、通知される。また、ペ
ージ入出力レベルも更新される。これは完了し
たすべての入出力のカウントである。更新され
たページ入出力レベル以下のページ入出力レベ
ルで待ちとなつているすべてのプロセスは、最
も古い入出力操作が完了すると、作動可能とな
り、通知される。解放されていないページに対
するすべてのページ・インの完了および再使用
されたページ・アウトの完了に対して、IPTタ
グ・ワードの妥当性を検査することによつて、
フレームはアクセス可能とされる。それ以外の
場合には、フレームは自由リストに置かれる。
自由システム制御ブロツクの数が上方論理限
界よりも少なく、かつ自由フレームが存在して
いる場合に、このプロシージヤはシステム制御
ブロツク領域を満そうとする。自由システム制
御ブロツク領域で待ちになつているすべてのプ
ロセスは次いで、作動可能とされる。このプロ
シージヤは自由フレームを待つているプロセス
の起動も行う。自由フレームは自由フレームの
待ち時間が最も長いプロセスに割り当てられ
る。次いで、このプロセスは通知され/作動可
能とされる。
界よりも少なく、かつ自由フレームが存在して
いる場合に、このプロシージヤはシステム制御
ブロツク領域を満そうとする。自由システム制
御ブロツク領域で待ちになつているすべてのプ
ロセスは次いで、作動可能とされる。このプロ
シージヤは自由フレームを待つているプロセス
の起動も行う。自由フレームは自由フレームの
待ち時間が最も長いプロセスに割り当てられ
る。次いで、このプロセスは通知され/作動可
能とされる。
ページング空間。仮想記憶管理プログラムはひ
とつまたはそれ以上のページング空間に対して、
ページングをサポートする。現在、サポートされ
ているページング装置はハードフアイルだけであ
るが、この分野の設計は将来の拡張に備えて、比
較的融弾性のあるものとなつている。すべてのペ
ージング空間を512バイトのブロツクで書式化す
る必要がある。
とつまたはそれ以上のページング空間に対して、
ページングをサポートする。現在、サポートされ
ているページング装置はハードフアイルだけであ
るが、この分野の設計は将来の拡張に備えて、比
較的融弾性のあるものとなつている。すべてのペ
ージング空間を512バイトのブロツクで書式化す
る必要がある。
ページング空間の初期設定。システムの初期設
定時に、すべてのページング空間が仮想記憶管理
プログラムにわかつていなければならない。ユー
ザがミニデイスク管理プログラムを使用してペー
ジング空間を作成した場合、仮想記憶管理プログ
ラムがこの空間にページする前に、システムを再
初期プログラム・ロードまたは再初期設定しなけ
ればならない。これを行う理由は、仮想記憶管理
プログラムのページング空間のデータ構造が構築
されるのが、システムの初期設定時だけだからで
ある。すべてのページング空間、ならびにデイス
ク割振りビツト・マツプは、ミニデイスク管理プ
ログラム初期設定時にセツト・アツプする。ミニ
デイスク管理プログラムはすべてのミニデイスク
に照会を行い、ページング空間ミニデイスクが発
見された場合には、ページング空間をVMMに効
果的に「定義」するルーチンを呼び出す。定義ペ
ージング空間ルーチンを呼び出す前に、ミニデイ
スク管理プログラムはページング・ミニデイスク
をオープンする(これはオープンされたままとな
る)。定義ページング空間ルーチンは次のように
作動する。
定時に、すべてのページング空間が仮想記憶管理
プログラムにわかつていなければならない。ユー
ザがミニデイスク管理プログラムを使用してペー
ジング空間を作成した場合、仮想記憶管理プログ
ラムがこの空間にページする前に、システムを再
初期プログラム・ロードまたは再初期設定しなけ
ればならない。これを行う理由は、仮想記憶管理
プログラムのページング空間のデータ構造が構築
されるのが、システムの初期設定時だけだからで
ある。すべてのページング空間、ならびにデイス
ク割振りビツト・マツプは、ミニデイスク管理プ
ログラム初期設定時にセツト・アツプする。ミニ
デイスク管理プログラムはすべてのミニデイスク
に照会を行い、ページング空間ミニデイスクが発
見された場合には、ページング空間をVMMに効
果的に「定義」するルーチンを呼び出す。定義ペ
ージング空間ルーチンを呼び出す前に、ミニデイ
スク管理プログラムはページング・ミニデイスク
をオープンする(これはオープンされたままとな
る)。定義ページング空間ルーチンは次のように
作動する。
1 PDXをページング空間に割り振る
2 PDXを初期化する
3 ページング・ミニデイスク・テーブルを初期
化する 4 新しいPDXをすべての既存のPDXの連係さ
れたリストに挿入する 5 各PDXをそのページング・ミニデイスク・
テーブル項目にポイントさせ、かつ逆を行わせ
る 6 このページング空間に対するデイスク割振り
ビツト・マツプ(一時デイスク・マツプ)をセ
ツト・アツプする デイスク割振りビツト・マツプがひとつあり、
これはすべてのページング空間に区分されてい
る。複数のビツト・マツプではなく、ひとつ設け
る理由は、ページ空間をひとつのビツト・マツプ
にパツクすることによつて、ビツト・マツプに対
する参照の局所性が改善されるからである。ビツ
ト・マツプに対するXPTは、ビツト・マツプが
当初すべて論理的にゼロになるように、セツトさ
れる。ページ空間が64Kの倍数でない場合、シス
テム初期設定はサイズを、次の64Kの境界まで切
り上げ、境界間のブロツク(ビツト)を割振り済
みとマークする。これにはシステム初期設定がこ
の時点で、最初の参照ページ不在を取り入れる能
力を必要とする。
化する 4 新しいPDXをすべての既存のPDXの連係さ
れたリストに挿入する 5 各PDXをそのページング・ミニデイスク・
テーブル項目にポイントさせ、かつ逆を行わせ
る 6 このページング空間に対するデイスク割振り
ビツト・マツプ(一時デイスク・マツプ)をセ
ツト・アツプする デイスク割振りビツト・マツプがひとつあり、
これはすべてのページング空間に区分されてい
る。複数のビツト・マツプではなく、ひとつ設け
る理由は、ページ空間をひとつのビツト・マツプ
にパツクすることによつて、ビツト・マツプに対
する参照の局所性が改善されるからである。ビツ
ト・マツプに対するXPTは、ビツト・マツプが
当初すべて論理的にゼロになるように、セツトさ
れる。ページ空間が64Kの倍数でない場合、シス
テム初期設定はサイズを、次の64Kの境界まで切
り上げ、境界間のブロツク(ビツト)を割振り済
みとマークする。これにはシステム初期設定がこ
の時点で、最初の参照ページ不在を取り入れる能
力を必要とする。
ページ空間の定義後、ミニデイスク管理プログ
ラムはページング空間の不良ブロツクをチエツク
する。不良ページング空間が発見された場合、ミ
ニデイスク管理プログラムはルーチンを呼び出し
て、仮想記憶管理プログラムの一時デイスク・マ
ツプに割り振られているとおりに、不良ページン
グ空間をマツプする。ミニデイスク管理プログラ
ムはその後、このページング空間上で、不良ブロ
ツクの再配置を行う。
ラムはページング空間の不良ブロツクをチエツク
する。不良ページング空間が発見された場合、ミ
ニデイスク管理プログラムはルーチンを呼び出し
て、仮想記憶管理プログラムの一時デイスク・マ
ツプに割り振られているとおりに、不良ページン
グ空間をマツプする。ミニデイスク管理プログラ
ムはその後、このページング空間上で、不良ブロ
ツクの再配置を行う。
ページング空間管理。ページング・デイスク・
ブロツクはページング空間に、循環式に一度にひ
とつずつ割り振られる。ポインタは各ページング
空間に割り振られた最後の位置に維持される。こ
の特定のページング空間における次の割振りの際
に、空のスロツトの探索が、最後に割り振られた
スロツトで始まり、ページング空間で増分状に行
われる(最後で、ラツプして)。このように割振
りを行うことの背景にあるアイデアは、ページ・
アウトの類似性およびページ・アヘツドを改善す
ることである。ページング空間を通る循環ポイン
タは、このページ空間で「最も古い」点、換言す
れば、最も古い時点で書き出された点をポイント
するものとみなすことができる。このデイスク・
スロツトが自由になつている(これが古い時点で
割り振られたものであるから)、と十分考えられ
る。すべてのデイスク・スロツトがページ・アウ
ト時に割り振られるので、パージ・ページの大き
な範囲が与えられた場合、多くのスロツトが一度
に割り振られる。これはスロツトを緊密に割り振
るものである。このことはパージを行つて、特定
のプロセスの実行ページ・セツト、または仮想計
算機のエンテイテイをページ・アウトするものと
想定している。このプロセスが再度活動した場
合、その実行ページ・セツトはデイスク上で密着
し、アームの運動を最小とし、ページ・アヘツド
効率を最大とする。
ブロツクはページング空間に、循環式に一度にひ
とつずつ割り振られる。ポインタは各ページング
空間に割り振られた最後の位置に維持される。こ
の特定のページング空間における次の割振りの際
に、空のスロツトの探索が、最後に割り振られた
スロツトで始まり、ページング空間で増分状に行
われる(最後で、ラツプして)。このように割振
りを行うことの背景にあるアイデアは、ページ・
アウトの類似性およびページ・アヘツドを改善す
ることである。ページング空間を通る循環ポイン
タは、このページ空間で「最も古い」点、換言す
れば、最も古い時点で書き出された点をポイント
するものとみなすことができる。このデイスク・
スロツトが自由になつている(これが古い時点で
割り振られたものであるから)、と十分考えられ
る。すべてのデイスク・スロツトがページ・アウ
ト時に割り振られるので、パージ・ページの大き
な範囲が与えられた場合、多くのスロツトが一度
に割り振られる。これはスロツトを緊密に割り振
るものである。このことはパージを行つて、特定
のプロセスの実行ページ・セツト、または仮想計
算機のエンテイテイをページ・アウトするものと
想定している。このプロセスが再度活動した場
合、その実行ページ・セツトはデイスク上で密着
し、アームの運動を最小とし、ページ・アヘツド
効率を最大とする。
2つ以上のページング空間が存在する場合、こ
れらの空間の各々は、上記したような挙動をす
る。仮想記憶管理プログラムのデイスク割振り
は、どのページング・ミニデイスクにブロツクを
割り振るかを決定する。デイスク・スケジユーラ
はデイスクのアームがどこにあるかを追跡する
(概略位置を)。仮想記憶管理プログラムは最後に
割振りを行つた点が、デイスク・アームのある場
所に最も近いページング空間に割振りを試みるこ
とによつて、これを利用する(すべてのデイスク
に対して)。
れらの空間の各々は、上記したような挙動をす
る。仮想記憶管理プログラムのデイスク割振り
は、どのページング・ミニデイスクにブロツクを
割り振るかを決定する。デイスク・スケジユーラ
はデイスクのアームがどこにあるかを追跡する
(概略位置を)。仮想記憶管理プログラムは最後に
割振りを行つた点が、デイスク・アームのある場
所に最も近いページング空間に割振りを試みるこ
とによつて、これを利用する(すべてのデイスク
に対して)。
仮想記憶管理プログラムSVC。仮想記憶管理
プログラムSVCはすべて、仮想計算機の拡張機
能として実行される。これらのSVCはパージさ
れたページのページ・アウトなどの明示入出力、
またはコード、スタツク、またはデータにおける
ページ不在などの暗黙入出力をもたらす。同期
SVCに対するすべての入出力は、入出力が完了
するまで、仮想計算機を同期ページ不在待ち状態
にする。入出力が完了するまで、仮想計算機を同
期ページ不在待ち状態にするのは、非同期SVC
に対する暗黙入出力だけである。明示入出力が開
始され、仮想計算機には完了したことが通知され
る。
プログラムSVCはすべて、仮想計算機の拡張機
能として実行される。これらのSVCはパージさ
れたページのページ・アウトなどの明示入出力、
またはコード、スタツク、またはデータにおける
ページ不在などの暗黙入出力をもたらす。同期
SVCに対するすべての入出力は、入出力が完了
するまで、仮想計算機を同期ページ不在待ち状態
にする。入出力が完了するまで、仮想計算機を同
期ページ不在待ち状態にするのは、非同期SVC
に対する暗黙入出力だけである。明示入出力が開
始され、仮想計算機には完了したことが通知され
る。
特殊プログラム・チエツク・エラー処理。仮想
計算機内でコードを実行している間に発生したプ
ログラム・チエツク・エラーは、プログラム・チ
エツク仮想割込を介して仮想計算機に報告され
る。VRM内で実行している間に発生したプログ
ラム・チエツク・エラーは、異常システム終了を
もたらす。VRMのSVCはVRM内で実行され、
仮想計算機機能を果たす。したがつて、プログラ
ム・チエツク・ハンドラは低メモリの値を調べ
て、VRMのSVCコード内で発生したエラーが、
SVCを指定する古いIARを有するプログラム・
チエツク仮想割込として仮想計算機に報告しなけ
ればならないものかどうか、あるいはエラーが異
常システム終了かどうかを決定する。
計算機内でコードを実行している間に発生したプ
ログラム・チエツク・エラーは、プログラム・チ
エツク仮想割込を介して仮想計算機に報告され
る。VRM内で実行している間に発生したプログ
ラム・チエツク・エラーは、異常システム終了を
もたらす。VRMのSVCはVRM内で実行され、
仮想計算機機能を果たす。したがつて、プログラ
ム・チエツク・ハンドラは低メモリの値を調べ
て、VRMのSVCコード内で発生したエラーが、
SVCを指定する古いIARを有するプログラム・
チエツク仮想割込として仮想計算機に報告しなけ
ればならないものかどうか、あるいはエラーが異
常システム終了かどうかを決定する。
選択されたVMMのSVCはこの機能を使用し
て、パラメータ・リストをアクセスしたときに、
エラー状態をチエツクせずに、経路長さを保管す
る。プログラム・チエツク・ハンドラはこれらに
対するエラー回復を行う。
て、パラメータ・リストをアクセスしたときに、
エラー状態をチエツクせずに、経路長さを保管す
る。プログラム・チエツク・ハンドラはこれらに
対するエラー回復を行う。
仮想記憶管理プログラム・サービス。すべての
仮想記憶管理プログラム・サービスは発呼音に関
して、同期的に実行される。これらのサービスの
うち幾つかはページ不在を生じ、この場合、発呼
者のプロセスは解決すべきページ不在に対して待
ちにされる。
仮想記憶管理プログラム・サービスは発呼音に関
して、同期的に実行される。これらのサービスの
うち幾つかはページ不在を生じ、この場合、発呼
者のプロセスは解決すべきページ不在に対して待
ちにされる。
非同期ページ不在と同期ページ不在。VRMは
仮想計算機に対する非同期および同期両方のペー
ジ不在処理をサポートする。同期ページ不在処理
の場合、ページ不在が解決するまで、仮想計算機
全体は待ちにされる。非同期ページ不在処理の場
合、仮想計算機によつて、他のタスク指名が可能
になる。ページ不在が解決するまで、待ちにされ
るのは、不在処理タスクだけである。このため、
同期ページ不在処理をもたらすあらゆる操作は、
実行できる並行タスクの数を減らす傾向があり、
一方非同期ページ不在処理をもたらすあるゆる操
作は、実行できる並行タスクの数を最大とする傾
向がある。
仮想計算機に対する非同期および同期両方のペー
ジ不在処理をサポートする。同期ページ不在処理
の場合、ページ不在が解決するまで、仮想計算機
全体は待ちにされる。非同期ページ不在処理の場
合、仮想計算機によつて、他のタスク指名が可能
になる。ページ不在が解決するまで、待ちにされ
るのは、不在処理タスクだけである。このため、
同期ページ不在処理をもたらすあらゆる操作は、
実行できる並行タスクの数を減らす傾向があり、
一方非同期ページ不在処理をもたらすあるゆる操
作は、実行できる並行タスクの数を最大とする傾
向がある。
第6図は、2つの付加的なデータ構造を示すも
のであつて、これらはこの発明の方法を組み込ん
だマツプ・ページ範囲サービスと独自に関連付け
られる。第1のデータ構造はフアイルをマツプし
た場合に、動的に作成されるマツプ・ノード70
と、上述の外部ページ・テーブル(XPT)の一
般フオーマツトと類似したマツプ化フアイル・ペ
ージ構造71である。
のであつて、これらはこの発明の方法を組み込ん
だマツプ・ページ範囲サービスと独自に関連付け
られる。第1のデータ構造はフアイルをマツプし
た場合に、動的に作成されるマツプ・ノード70
と、上述の外部ページ・テーブル(XPT)の一
般フオーマツトと類似したマツプ化フアイル・ペ
ージ構造71である。
第6図に示すマツプ・ノード70は72−75
で示す4つのフイールドを含んでいる。フイール
ド72はセグメントIDを示しており、マツプさ
れたフアイルを記憶するのに使用されるセグメン
ト識別子を記憶する機能を果たす。フイールド7
3はマツプ・カウント・フイールドであつて、こ
れは書込み時コピー型のマツピング以外のフアイ
ルをマツプすることを、同時に要求したユーザの
数を管理する機能を果たす。マツプ・ノード70
のフイールド74はCWセグメントID、すなわち
書込み時コピー・セグメントIDを示すものであ
つて、書込み時コピー・セグメントのみに使用さ
れる独自のセグメントIDを識別する。フイール
ド75は書込み時コピー・マツプ・カウント・フ
イールドであつて、この書込み時にコピー・セグ
メントを共有しているユーザの数を管理する機能
を果たす。
で示す4つのフイールドを含んでいる。フイール
ド72はセグメントIDを示しており、マツプさ
れたフアイルを記憶するのに使用されるセグメン
ト識別子を記憶する機能を果たす。フイールド7
3はマツプ・カウント・フイールドであつて、こ
れは書込み時コピー型のマツピング以外のフアイ
ルをマツプすることを、同時に要求したユーザの
数を管理する機能を果たす。マツプ・ノード70
のフイールド74はCWセグメントID、すなわち
書込み時コピー・セグメントIDを示すものであ
つて、書込み時コピー・セグメントのみに使用さ
れる独自のセグメントIDを識別する。フイール
ド75は書込み時コピー・マツプ・カウント・フ
イールドであつて、この書込み時にコピー・セグ
メントを共有しているユーザの数を管理する機能
を果たす。
データ構造80は2人以上のユーザが共有して
いるセグメントIDセグメントを記憶するために
使用される、セグメント・テーブルの特別なセク
シヨンである。
いるセグメントIDセグメントを記憶するために
使用される、セグメント・テーブルの特別なセク
シヨンである。
マツプ化フアイル・ページ構造71はXPTと
類似しており、マツプされるフアイルの各ページ
に対する項目を含んでいる。第6図に示す項目
は、保護フイールド81、ページ状態フイールド
82およびデイスク・アドレス・フイールド83
を含んでいる。マツプ化フアイル・ページ構造
は、第6図に略図で示すXPTプール86から割
り振られる。
類似しており、マツプされるフアイルの各ページ
に対する項目を含んでいる。第6図に示す項目
は、保護フイールド81、ページ状態フイールド
82およびデイスク・アドレス・フイールド83
を含んでいる。マツプ化フアイル・ページ構造
は、第6図に略図で示すXPTプール86から割
り振られる。
破線のブロツク・ラベル90は仮想記憶を表し
ている。セグメント・レジスタによつてアドレス
可能なメモリのセグメントは、参照番号91で示
されている。セグメントのページは、参照番号9
1で示されている。
ている。セグメント・レジスタによつてアドレス
可能なメモリのセグメントは、参照番号91で示
されている。セグメントのページは、参照番号9
1で示されている。
ブロツク95はシステムで作動するプロセスを
表す。ブロツク96は作動しているプロセスと関
連するセグメントに対する、セグメント識別子の
リストを表す。システム上でプロセスnの順番に
なつたときに、これらのIDは適切なセグメン
ト・レジスタからロードされる。32ビツトの有効
アドレスは、この明細書で前述したように、12ビ
ツトのセグメント識別子および28ビツトのオフセ
ツトからなる40ビツトの仮想アドレスに変換され
る。12ビツトのセグメントIDが16ビツトのセグ
メント・レジスタのひとつによつて与えられ、こ
のレジスタ32ビツトの有効アドレスの高次4ビツ
トによつて選択される。
表す。ブロツク96は作動しているプロセスと関
連するセグメントに対する、セグメント識別子の
リストを表す。システム上でプロセスnの順番に
なつたときに、これらのIDは適切なセグメン
ト・レジスタからロードされる。32ビツトの有効
アドレスは、この明細書で前述したように、12ビ
ツトのセグメント識別子および28ビツトのオフセ
ツトからなる40ビツトの仮想アドレスに変換され
る。12ビツトのセグメントIDが16ビツトのセグ
メント・レジスタのひとつによつて与えられ、こ
のレジスタ32ビツトの有効アドレスの高次4ビツ
トによつて選択される。
VRMはページ不在ハンドラを含んでおり、こ
のハンドラは第6図において、それぞれブロツク
97および98で表されている2つの独立した機
能を含んでいる。ブロツク97はシステム・メモ
リをアドレスする機能を果たし、かつ要求された
ページが主メモリに存在しない場合に、ブロツク
98にページ不在割込を与える機能を果たす。マ
ツプ化フアイル・ページ構造が、上述のように、
フイールド83にデイスク・アドレス含んでいる
のであるから、ブロツク98はマツプ化フアイ
ル・ページ構造にアクセスすることによつて、ペ
ージ不在を解決する機能を果たす。
のハンドラは第6図において、それぞれブロツク
97および98で表されている2つの独立した機
能を含んでいる。ブロツク97はシステム・メモ
リをアドレスする機能を果たし、かつ要求された
ページが主メモリに存在しない場合に、ブロツク
98にページ不在割込を与える機能を果たす。マ
ツプ化フアイル・ページ構造が、上述のように、
フイールド83にデイスク・アドレス含んでいる
のであるから、ブロツク98はマツプ化フアイ
ル・ページ構造にアクセスすることによつて、ペ
ージ不在を解決する機能を果たす。
第7a図はフロー・チヤートであつて、適用業
務プロセスnが各種のUNIX型のシステム・コー
ルを行う場合に、システムに含まれる主な工程を
示すものである。ブロツク101はオープン・フ
アイル操作を行う。フアイルを読取/書取フアイ
ル、読取専用フアイル、または書込み専用フアイ
ルとしてオープンすることができる。ブロツク1
02はiノードを、UNIXフアイル管理システム
が管理しているデイレクトリ参照103から、主
メモリへ読み込む機能を果たす。
務プロセスnが各種のUNIX型のシステム・コー
ルを行う場合に、システムに含まれる主な工程を
示すものである。ブロツク101はオープン・フ
アイル操作を行う。フアイルを読取/書取フアイ
ル、読取専用フアイル、または書込み専用フアイ
ルとしてオープンすることができる。ブロツク1
02はiノードを、UNIXフアイル管理システム
が管理しているデイレクトリ参照103から、主
メモリへ読み込む機能を果たす。
フアイルがオープンされていると仮定すると、
次のシステム・コールがブロツク104に対する
SHMAT(2)読取専用コールである。ブロツク1
05はセグメント・テーブルへの参照によつて、
フアイルが現在マツプされているかどうかを決定
する。セグメントが現在マツプされていない場
合、テストをブロツク106で行い、セグメント
が作成されたかどうかを調べる。セグメントが作
成されていない場合、ブロツク107がセグメン
トを作成する。ブロツク108は参照されたカウ
ントを、セグメント・カウント・フイールドで増
加させる機能を果たす。ブロツク109はセグメ
ントIDを獲得する機能を果たし、一方ブロツク
110はセグメント・レジスタをロードする。ブ
ロツク111による決定で、セグメントが現在マ
ツプされている場合、読取りシステム・コールに
対するアドレス指定操作は完了する。フアイルが
現在マツプされていない場合、マツプ・ページ範
囲サービス・コールが開始され、フアイルの外部
ページ・テーブルによつて示されるように、シス
テム内で活動しているページの範囲をマツプす
る。ブロツク112は第6図に示すマツプ・ノー
ド70およびマツプ化フアイル・ページ構造71
を作成する機能を果たす。
次のシステム・コールがブロツク104に対する
SHMAT(2)読取専用コールである。ブロツク1
05はセグメント・テーブルへの参照によつて、
フアイルが現在マツプされているかどうかを決定
する。セグメントが現在マツプされていない場
合、テストをブロツク106で行い、セグメント
が作成されたかどうかを調べる。セグメントが作
成されていない場合、ブロツク107がセグメン
トを作成する。ブロツク108は参照されたカウ
ントを、セグメント・カウント・フイールドで増
加させる機能を果たす。ブロツク109はセグメ
ントIDを獲得する機能を果たし、一方ブロツク
110はセグメント・レジスタをロードする。ブ
ロツク111による決定で、セグメントが現在マ
ツプされている場合、読取りシステム・コールに
対するアドレス指定操作は完了する。フアイルが
現在マツプされていない場合、マツプ・ページ範
囲サービス・コールが開始され、フアイルの外部
ページ・テーブルによつて示されるように、シス
テム内で活動しているページの範囲をマツプす
る。ブロツク112は第6図に示すマツプ・ノー
ド70およびマツプ化フアイル・ページ構造71
を作成する機能を果たす。
ブロツク120で表されている実際の読取り操
作は、ブロツク121に示すようにフアイルがマ
ツプされているかどうかを調べるため、チエツク
を行う。フアイルがマツプされていない場合、ブ
ロツク122は標準的な読取り操作を行う。書込
み操作に関する同様な操作が、ブロツク123に
よつて行われる。
作は、ブロツク121に示すようにフアイルがマ
ツプされているかどうかを調べるため、チエツク
を行う。フアイルがマツプされていない場合、ブ
ロツク122は標準的な読取り操作を行う。書込
み操作に関する同様な操作が、ブロツク123に
よつて行われる。
フアイルがマツプされている場合、読取り操作
または書込み操作のいずれかに対して、ブロツク
124はUNIXシステム・コール・パラメータの
フアイル・オフセツトおよび長さのパラメータ
を、セグメントおよびオフセツトのパラメータに
変換する。システム・コールが書込み時にコピー
操作または読み書き操作に対するものである場合
には、ブロツク125は入出力操作用の共有セグ
メント・テーブルからセグメント・レジスタID
を獲得する。ブロツク126はテストを行つて、
書込み操作が含まれているかどうかを調べ、また
含まれている場合には、ブロツク127のデイス
ク・フアイルに新しいブロツクを割り振る。書込
み操作が含まれていない場合には、ブロツク12
7はバイパスされ、ブロツク128がデイスクと
主メモリとの間のコピーを行う。ブロツク129
は次いで、プロセスを再度指名する。
または書込み操作のいずれかに対して、ブロツク
124はUNIXシステム・コール・パラメータの
フアイル・オフセツトおよび長さのパラメータ
を、セグメントおよびオフセツトのパラメータに
変換する。システム・コールが書込み時にコピー
操作または読み書き操作に対するものである場合
には、ブロツク125は入出力操作用の共有セグ
メント・テーブルからセグメント・レジスタID
を獲得する。ブロツク126はテストを行つて、
書込み操作が含まれているかどうかを調べ、また
含まれている場合には、ブロツク127のデイス
ク・フアイルに新しいブロツクを割り振る。書込
み操作が含まれていない場合には、ブロツク12
7はバイパスされ、ブロツク128がデイスクと
主メモリとの間のコピーを行う。ブロツク129
は次いで、プロセスを再度指名する。
第7b図は、ブロツク130で示すように、
SHMAT読取/書取システム・コールを行うプ
ロセスAを示すものである。ブロツク131はフ
アイルが、読取/書取操作に対して現在マツプさ
れているかどうかを調べる。マツプされていない
場合、ブロツク132はテストを行つて、セグメ
ントが存在しているかどうかを調べる。セグメン
トが存在していない場合、ブロツク133はマツ
プされたフアイルに対してメモリ・フアイルを作
成し、一方ブロツク134および135はマツプ
されたフアイルに対してセグメントIDの付いた
セグメント・レジスタを獲得し、ロードする。ブ
ロツク136はテストを行つて、フアイルがマツ
プされているかどうかを調べ、マツプされている
場合、機能は完了する。フアイルが現在読み書き
にマツプされていない場合、マツプ・ページ範囲
サービス・ブロツク137はページ・マツピング
を行つて、第6図のデータ構造70および71を
作成する。
SHMAT読取/書取システム・コールを行うプ
ロセスAを示すものである。ブロツク131はフ
アイルが、読取/書取操作に対して現在マツプさ
れているかどうかを調べる。マツプされていない
場合、ブロツク132はテストを行つて、セグメ
ントが存在しているかどうかを調べる。セグメン
トが存在していない場合、ブロツク133はマツ
プされたフアイルに対してメモリ・フアイルを作
成し、一方ブロツク134および135はマツプ
されたフアイルに対してセグメントIDの付いた
セグメント・レジスタを獲得し、ロードする。ブ
ロツク136はテストを行つて、フアイルがマツ
プされているかどうかを調べ、マツプされている
場合、機能は完了する。フアイルが現在読み書き
にマツプされていない場合、マツプ・ページ範囲
サービス・ブロツク137はページ・マツピング
を行つて、第6図のデータ構造70および71を
作成する。
マツプ・ページ範囲サービス・ブロツク112
または137によつて行われる主要工程を、第7
c図に示す。セグメントを作成したのち、フアイ
ルをセグメントにマツプしなければならない。こ
れが動的な操作なのは、一次記憶割振りが仮想割
振りであつて、セグメントの割り当てが一時的な
ものだからである。第7c図に示すように、フア
イルに割り振られる各ページのブロツク・アドレ
スに対して、iノード構造181が読み取られ
る。隣接して割り振られたブロツクの各グループ
は合計され、カウントはマツプ・ページ範囲構造
のスタート・ブロツク番号2の項目に隣接するブ
ロツクに記録される。隣接しないブロツクはマツ
プ・ページ範囲構造の独立した項目に反映され
る。フアイル全体のiノード構造を走査した場
合、マツプ・ページ範囲SVCが発行され、適切
なセグメントに対する外部ページ・テーブル・ス
ロツト項目が、フアイルの各ページに対するブロ
ツク・アドレスによつて更新される。
または137によつて行われる主要工程を、第7
c図に示す。セグメントを作成したのち、フアイ
ルをセグメントにマツプしなければならない。こ
れが動的な操作なのは、一次記憶割振りが仮想割
振りであつて、セグメントの割り当てが一時的な
ものだからである。第7c図に示すように、フア
イルに割り振られる各ページのブロツク・アドレ
スに対して、iノード構造181が読み取られ
る。隣接して割り振られたブロツクの各グループ
は合計され、カウントはマツプ・ページ範囲構造
のスタート・ブロツク番号2の項目に隣接するブ
ロツクに記録される。隣接しないブロツクはマツ
プ・ページ範囲構造の独立した項目に反映され
る。フアイル全体のiノード構造を走査した場
合、マツプ・ページ範囲SVCが発行され、適切
なセグメントに対する外部ページ・テーブル・ス
ロツト項目が、フアイルの各ページに対するブロ
ツク・アドレスによつて更新される。
(発明の効果)
この発明によれば、仮想計算機を確立する仮想
資源管理プログラムの一部であるメモリ管理装置
のページ不在ハンドラに、すべてのフアイル入出
力操作を割り当てることのできる仮想計算機環境
を確立することができるので、適用業務プログラ
ムやオペーレーテイング・システムで制御される
フアイル入出力操作と、ページ不在ハンドラが制
御するページング操作との間で衝突を生ずること
が回避される。
資源管理プログラムの一部であるメモリ管理装置
のページ不在ハンドラに、すべてのフアイル入出
力操作を割り当てることのできる仮想計算機環境
を確立することができるので、適用業務プログラ
ムやオペーレーテイング・システムで制御される
フアイル入出力操作と、ページ不在ハンドラが制
御するページング操作との間で衝突を生ずること
が回避される。
第1図は、この発明を用いると有利である仮想
記憶システムの略図である。第2図は、データ処
理システムおよび仮想記憶計算機に対する、第1
図に示す仮想資源管理プログラムの相互関係を示
す図面である。第3図は、第1図に示すシステム
用の仮想記憶モデルの図面である。第4図は、第
1図に示すシステムのアドレス変換機能の概念を
示す図面である。第5図は、第1図のシステムで
用いられるデータ構造の幾つかの相互関係を示す
図面である。第6図は、仮想資源管理プログラ
ム、仮想記憶、および実記憶に対する多数のデー
タの相互関係を示す図面である。第7aないし第
7c図は、この発明にしたがつて各種のUNIXの
システム・コールに応じたフアイルのマツピング
およびアクセスに含まれる各種の工程を示す、フ
ローチヤートである。 10……ハードウエア部分、11……ソフトウ
エアまたはプログラミング部分、12……処理装
置機能、13……メモリ管理機能(MMU)、1
4……システム・メモリ機能またはRAM、15
……システム・バス、16……入出力チヤネル制
御装置(IOCC)、17……磁気デイスク装置、1
8……表示機能、19……コプロセツサ機能、2
0……ブロツク、21……入出力バス、22……
適用業務プログラム、23……適用業務開発プロ
グラム、24……オペレーテイング・システムの
カーネル、25……仮想資源管理プログラム、3
0……オペレーテイング・システム、31……仮
想計算機インタフエース、32……ハードウエ
ア・インタフエース、70……マツプ・ノード、
71……マツプ化フアイル・ページ構造、72−
75……フイールド、80……セグメント・テー
ブル、81……保護フイールド、82……ページ
状態フイールド、83……デイスク・アドレス・
フイールド、86……XPTプール、90……仮
想記憶、91……メモリ・セグメント、92……
セグメント、95……プロセス、101,102
……ブロツク、103……デイレクトリ参照、1
04−112……ブロツク、120−136……
ブロツク、181……iノード構造。
記憶システムの略図である。第2図は、データ処
理システムおよび仮想記憶計算機に対する、第1
図に示す仮想資源管理プログラムの相互関係を示
す図面である。第3図は、第1図に示すシステム
用の仮想記憶モデルの図面である。第4図は、第
1図に示すシステムのアドレス変換機能の概念を
示す図面である。第5図は、第1図のシステムで
用いられるデータ構造の幾つかの相互関係を示す
図面である。第6図は、仮想資源管理プログラ
ム、仮想記憶、および実記憶に対する多数のデー
タの相互関係を示す図面である。第7aないし第
7c図は、この発明にしたがつて各種のUNIXの
システム・コールに応じたフアイルのマツピング
およびアクセスに含まれる各種の工程を示す、フ
ローチヤートである。 10……ハードウエア部分、11……ソフトウ
エアまたはプログラミング部分、12……処理装
置機能、13……メモリ管理機能(MMU)、1
4……システム・メモリ機能またはRAM、15
……システム・バス、16……入出力チヤネル制
御装置(IOCC)、17……磁気デイスク装置、1
8……表示機能、19……コプロセツサ機能、2
0……ブロツク、21……入出力バス、22……
適用業務プログラム、23……適用業務開発プロ
グラム、24……オペレーテイング・システムの
カーネル、25……仮想資源管理プログラム、3
0……オペレーテイング・システム、31……仮
想計算機インタフエース、32……ハードウエ
ア・インタフエース、70……マツプ・ノード、
71……マツプ化フアイル・ページ構造、72−
75……フイールド、80……セグメント・テー
ブル、81……保護フイールド、82……ページ
状態フイールド、83……デイスク・アドレス・
フイールド、86……XPTプール、90……仮
想記憶、91……メモリ・セグメント、92……
セグメント、95……プロセス、101,102
……ブロツク、103……デイレクトリ参照、1
04−112……ブロツク、120−136……
ブロツク、181……iノード構造。
Claims (1)
- 【特許請求の範囲】 1 ページ・セグメント型の仮想記憶と、デイス
ク・フアイルに記憶されている情報に入出力操作
を行うためのUNIX型のシステム・コールを含ん
でいる少なくともひとつのUNIX型のオペレーテ
イング・システムを作動させることのできる仮想
計算機を確立する仮想資源管理手段(VRM)
と、を有する仮想記憶仮想計算機型データ処理シ
ステムの入出力制御方法であつて、前記VRMが
仮想計算機により実行されている適用業務プログ
ラムによつて、仮想ページのひとつに対する前記
データ処理システムのメイン・メモリをアクセス
した場合に発生するページ不在を解決するととも
に、前記デイスク・フアイルに対する前記システ
ム・コールに応じて全ての入出力デイスク操作も
行うページ不在ハンドラ手段を有するメモリ管理
手段を有し、さらに前記方法は、 (1) 仮想記憶アドレス及びデイスク・フアイル・
アドレスを有するデータの各仮想ページへの入
力を有する第1のデータ構造を作成し、ここで
その情報は実際に記憶され、各前記入力は少な
くともひとつのデイスク・フアイル・アドレス
とページ番号フイールドを有しており、 (2) 前記第1のデータ構造が記憶された所のセグ
メント・アドレスを識別するためのセグメント
IDフイールドを含む第2のデータ構造を作成
し、 (3) 前記第2のデータ構造へのポインタをUNIX
型フアイルのinodeデータ構造に記憶し、動的
に生成された前記ポインタと前記データ構造は
UNIX型オペレーテイング・システムのカーネ
ルの1部分であるマツプ・ページ範囲サービ
ス・ルーチンになることを特徴とする前記方
法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US819458 | 1986-01-16 | ||
| US06/819,458 US4742447A (en) | 1986-01-16 | 1986-01-16 | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62165251A JPS62165251A (ja) | 1987-07-21 |
| JPH0578857B2 true JPH0578857B2 (ja) | 1993-10-29 |
Family
ID=25228218
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62002015A Granted JPS62165251A (ja) | 1986-01-16 | 1987-01-09 | 仮想記憶仮想計算機型データ処理システムの入出力制御方法 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4742447A (ja) |
| EP (1) | EP0229691A3 (ja) |
| JP (1) | JPS62165251A (ja) |
| KR (1) | KR920005853B1 (ja) |
| CN (1) | CN1016829B (ja) |
| BR (1) | BR8606308A (ja) |
| CA (1) | CA1266531A (ja) |
Families Citing this family (128)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4763244A (en) * | 1986-01-15 | 1988-08-09 | Motorola, Inc. | Paged memory management unit capable of selectively supporting multiple address spaces |
| FR2606566B1 (fr) * | 1986-09-22 | 1993-04-30 | Nec Corp | Procede d'initialisation pour un controleur de canal |
| US5475836A (en) * | 1987-04-01 | 1995-12-12 | Lotus Development Corporation | Interface for providing access to external data sources/sinks |
| US4942541A (en) * | 1988-01-22 | 1990-07-17 | Oms, Inc. | Patchification system |
| US5155822A (en) * | 1987-08-13 | 1992-10-13 | Digital Equipment Corporation | High performance graphics workstation |
| US5109515A (en) * | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
| US4862349A (en) * | 1987-10-19 | 1989-08-29 | International Business Machines Corporation | Method for extracting and/or replacing control system information in a computer operating system |
| US4903194A (en) * | 1987-11-12 | 1990-02-20 | International Business Machines Corporation | Storage addressing error detection circuitry |
| US5239643A (en) * | 1987-11-30 | 1993-08-24 | International Business Machines Corporation | Method for reducing disk I/O accesses in a multi-processor clustered type data processing system |
| EP0323013B1 (en) * | 1987-11-30 | 1995-08-30 | International Business Machines Corporation | Method of operating a multiprocessor system employing a shared virtual memory |
| US5761413A (en) * | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
| US4918653A (en) * | 1988-01-28 | 1990-04-17 | International Business Machines Corporation | Trusted path mechanism for an operating system |
| JPH077354B2 (ja) * | 1988-03-19 | 1995-01-30 | 株式会社日立製作所 | データ入出力方式 |
| US4949254A (en) * | 1988-09-29 | 1990-08-14 | Ibm Corp. | Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network |
| JP3226525B2 (ja) * | 1988-10-07 | 2001-11-05 | 株式会社日立製作所 | 主記憶管理方法 |
| US5095420A (en) * | 1988-11-21 | 1992-03-10 | International Business Machines | Method and system for performing virtual address range mapping in a virtual storage data processing system |
| US5222217A (en) * | 1989-01-18 | 1993-06-22 | International Business Machines Corporation | System and method for implementing operating system message queues with recoverable shared virtual storage |
| JPH02195453A (ja) * | 1989-01-25 | 1990-08-02 | Toshiba Corp | ファイルアクセス制御方式 |
| JPH0373037A (ja) * | 1989-05-26 | 1991-03-28 | Hitachi Ltd | データベース障害回復方法 |
| US5125086A (en) * | 1989-06-29 | 1992-06-23 | Digital Equipment Corporation | Virtual memory paging apparatus with variable size in-page clusters |
| US5101485B1 (en) * | 1989-06-29 | 1996-12-10 | Frank L Perazzoli Jr | Virtual memory page table paging apparatus and method |
| US5129083A (en) * | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Conditional object creating system having different object pointers for accessing a set of data structure objects |
| US5339449A (en) * | 1989-06-30 | 1994-08-16 | Digital Equipment Corporation | System and method for reducing storage channels in disk systems |
| US5182805A (en) * | 1989-07-14 | 1993-01-26 | Ncr Corporation | Method and system for determining copy-on-write condition |
| EP0416767A3 (en) * | 1989-09-08 | 1992-04-29 | Digital Equipment Corporation | Position independent code location system |
| JPH04211844A (ja) * | 1990-01-19 | 1992-08-03 | Texas Instr Inc <Ti> | ファイルシステムディフラグメント化装置及び方法 |
| US5367652A (en) * | 1990-02-02 | 1994-11-22 | Golden Jeffrey A | Disc drive translation and defect management apparatus and method |
| US5218695A (en) * | 1990-02-05 | 1993-06-08 | Epoch Systems, Inc. | File server system having high-speed write execution |
| US6507909B1 (en) | 1990-02-13 | 2003-01-14 | Compaq Information Technologies Group, L.P. | Method for executing trusted-path commands |
| EP0459912B1 (en) * | 1990-05-30 | 1996-09-11 | Fujitsu Limited | An issue processing system for a right to use a resource |
| US5179666A (en) * | 1990-06-07 | 1993-01-12 | Unisys Corporation | Block oriented peripheral device interface |
| US5276896A (en) * | 1990-06-11 | 1994-01-04 | Unisys Corporation | Apparatus for implementing data communications between terminal devices and user programs |
| US5363121A (en) * | 1990-06-29 | 1994-11-08 | International Business Machines Corporation | Multiple protocol communication interface for distributed transaction processing |
| US5269009A (en) * | 1990-09-04 | 1993-12-07 | International Business Machines Corporation | Processor system with improved memory transfer means |
| US5175679A (en) * | 1990-09-28 | 1992-12-29 | Xerox Corporation | Control for electronic image processing systems |
| US5379391A (en) * | 1991-03-01 | 1995-01-03 | Storage Technology Corporation | Method and apparatus to access data records in a cache memory by multiple virtual addresses |
| JP2945498B2 (ja) * | 1991-04-12 | 1999-09-06 | 富士通株式会社 | システム間通信方式 |
| US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
| US5283888A (en) * | 1991-08-27 | 1994-02-01 | International Business Machines Corporation | Voice processing interface unit employing virtual screen communications for accessing a plurality of primed applications |
| CA2078310A1 (en) * | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital processor with distributed memory system |
| CA2078312A1 (en) * | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital data processor with improved paging |
| JP2870254B2 (ja) * | 1991-10-02 | 1999-03-17 | 日本電気株式会社 | 仮想計算機の入出力割り込み処理方式 |
| CA2285096C (en) * | 1991-11-12 | 2000-05-09 | Ibm Canada Limited-Ibm Canada Limitee | Logical mapping of data objects using data spaces |
| JPH0619785A (ja) * | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
| US5386561A (en) * | 1992-03-31 | 1995-01-31 | International Business Machines Corporation | Method of integrated system load control through dynamic time-slicing in a virtual storage environment |
| US5276878A (en) * | 1992-10-07 | 1994-01-04 | International Business Machines Corporation | Method and system for task memory management in a multi-tasking data processing system |
| JP3098344B2 (ja) * | 1992-12-18 | 2000-10-16 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
| JP2974526B2 (ja) * | 1992-12-18 | 1999-11-10 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
| US5963962A (en) * | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
| EP1003103B1 (en) * | 1993-06-03 | 2008-10-01 | Network Appliance, Inc. | Write anywhere file-system layout method and apparatus |
| EP1197836A3 (en) * | 1993-06-03 | 2009-06-17 | Network Appliance, Inc. | A method for allocating files in a file system integrated with a raid disk sub-system |
| US6138126A (en) * | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
| US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
| US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
| EP1031928B1 (en) * | 1993-06-04 | 2005-05-18 | Network Appliance, Inc. | A method for providing parity in a raid sub-system using non-volatile memory |
| US5564011A (en) * | 1993-10-05 | 1996-10-08 | International Business Machines Corporation | System and method for maintaining file data access in case of dynamic critical sector failure |
| US5606685A (en) * | 1993-12-29 | 1997-02-25 | Unisys Corporation | Computer workstation having demand-paged virtual memory and enhanced prefaulting |
| EP0667573A1 (en) * | 1994-02-14 | 1995-08-16 | International Business Machines Corporation | Incorporation of services written in one operating system environment into another operating system environment |
| US5483649A (en) * | 1994-07-01 | 1996-01-09 | Ybm Technologies, Inc. | Personal computer security system |
| US5842226A (en) * | 1994-09-09 | 1998-11-24 | International Business Machines Corporation | Virtual memory management for a microkernel system with multiple operating systems |
| US5657470A (en) * | 1994-11-09 | 1997-08-12 | Ybm Technologies, Inc. | Personal computer hard disk protection system |
| US5778443A (en) * | 1994-12-14 | 1998-07-07 | International Business Machines Corp. | Method and apparatus for conserving power and system resources in a computer system employing a virtual memory |
| US5544349A (en) * | 1995-01-23 | 1996-08-06 | International Business Machines Corporation | Method and system for improving the performance of memory in constrained virtual memory environments by reducing paging activity |
| US5721876A (en) * | 1995-03-30 | 1998-02-24 | Bull Hn Information Systems Inc. | Sockets application program mechanism for proprietary based application programs running in an emulation environment |
| US5640591A (en) * | 1995-05-15 | 1997-06-17 | Nvidia Corporation | Method and apparatus for naming input/output devices in a computer system |
| US5812820A (en) * | 1995-09-29 | 1998-09-22 | Pacific Commware, Inc. | Virtual UART |
| US5950221A (en) * | 1997-02-06 | 1999-09-07 | Microsoft Corporation | Variably-sized kernel memory stacks |
| US6148387A (en) * | 1997-10-09 | 2000-11-14 | Phoenix Technologies, Ltd. | System and method for securely utilizing basic input and output system (BIOS) services |
| US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
| US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
| US6681238B1 (en) * | 1998-03-24 | 2004-01-20 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
| US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
| US6457008B1 (en) * | 1998-08-28 | 2002-09-24 | Oracle Corporation | Pluggable resource scheduling policies |
| US7516453B1 (en) * | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
| US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
| US6895418B1 (en) * | 1999-04-28 | 2005-05-17 | Emc Corporation | Versatile indirection in an extent based file system |
| US6874027B1 (en) | 2000-04-07 | 2005-03-29 | Network Appliance, Inc. | Low-overhead threads in a high-concurrency system |
| US6715016B1 (en) * | 2000-06-01 | 2004-03-30 | Hitachi, Ltd. | Multiple operating system control method |
| US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
| US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
| US6957237B1 (en) | 2000-06-02 | 2005-10-18 | Sun Microsystems, Inc. | Database store for a virtual heap |
| US6854115B1 (en) * | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
| US6718404B2 (en) * | 2000-06-02 | 2004-04-06 | Hewlett-Packard Development Company, L.P. | Data migration using parallel, distributed table driven I/O mapping |
| US6505285B1 (en) * | 2000-06-26 | 2003-01-07 | Ncr Corporation | Scratch segment subsystem for a parallel processing database system |
| US8014993B1 (en) * | 2000-08-15 | 2011-09-06 | Cypress Semiconductor Corporation | Transportable volume, local environment repository |
| US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
| US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
| US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
| US7574346B2 (en) * | 2000-10-30 | 2009-08-11 | Microsoft Corporation | Kernel emulator for non-native program modules |
| US7178137B1 (en) | 2001-04-05 | 2007-02-13 | Network Appliance, Inc. | Automatic verification of scheduling domain consistency |
| US7694302B1 (en) | 2001-04-05 | 2010-04-06 | Network Appliance, Inc. | Symmetric multiprocessor synchronization using migrating scheduling domains |
| US7251814B2 (en) * | 2001-08-24 | 2007-07-31 | International Business Machines Corporation | Yield on multithreaded processors |
| US7428485B2 (en) * | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
| US7107584B2 (en) * | 2001-10-23 | 2006-09-12 | Microsoft Corporation | Data alignment between native and non-native shared data structures |
| US7099866B1 (en) * | 2001-11-16 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Method of generating and presenting kernel data |
| US7747700B2 (en) * | 2002-11-22 | 2010-06-29 | Sony Corporation | System and method for referencing AV data accumulated in AV server |
| US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
| US7000051B2 (en) * | 2003-03-31 | 2006-02-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
| US7281075B2 (en) * | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
| US7603442B2 (en) * | 2003-06-20 | 2009-10-13 | Microsoft Corporation | Method and system for maintaining service dependency relationships in a computer system |
| US7406694B2 (en) * | 2003-06-20 | 2008-07-29 | Microsoft Corporation | Method and system for tracking kernel resource usage |
| US7373640B1 (en) | 2003-07-31 | 2008-05-13 | Network Appliance, Inc. | Technique for dynamically restricting thread concurrency without rewriting thread code |
| US7783779B1 (en) * | 2003-09-19 | 2010-08-24 | Vmware, Inc | Storage multipath management in a virtual computer system |
| US7793287B2 (en) * | 2003-10-01 | 2010-09-07 | Hewlett-Packard Development Company, L.P. | Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor |
| US8171480B2 (en) * | 2004-01-27 | 2012-05-01 | Network Appliance, Inc. | Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor |
| US7475093B2 (en) * | 2004-10-15 | 2009-01-06 | Microsoft Corporation | Memory cache management in XML/relational data mapping |
| US7707365B2 (en) * | 2005-01-13 | 2010-04-27 | Via Technologies, Inc. | Memory address monitoring device and memory address monitoring method |
| US7502957B2 (en) * | 2005-09-09 | 2009-03-10 | International Business Machines Corporation | Method and system to execute recovery in non-homogeneous multi processor environments |
| US7996585B2 (en) * | 2005-09-09 | 2011-08-09 | International Business Machines Corporation | Method and system for state tracking and recovery in multiprocessing computing systems |
| US7457985B2 (en) * | 2005-09-09 | 2008-11-25 | International Business Machines Corporation | Method to detect errors in computer systems by using state tracking |
| US20070083867A1 (en) * | 2005-09-09 | 2007-04-12 | International Business Machines Corporation | Method and system to recover from control block hangs in a heterogenous multiprocessor environment |
| US8347293B2 (en) * | 2005-10-20 | 2013-01-01 | Network Appliance, Inc. | Mutual exclusion domains to perform file system processes on stripes |
| KR100755701B1 (ko) | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 내장형 시스템을 위한 요구 페이징 장치 및 방법 |
| US8495350B2 (en) * | 2006-08-23 | 2013-07-23 | Kam Fu Chan | Running operating system on dynamic virtual memory |
| JP2008077144A (ja) * | 2006-09-19 | 2008-04-03 | Ricoh Co Ltd | 仮想化システム、メモリ管理方法及び制御プログラム |
| US20080104590A1 (en) * | 2006-11-01 | 2008-05-01 | Mccrory Dave Dennis | Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks |
| US8171205B2 (en) * | 2008-05-05 | 2012-05-01 | Intel Corporation | Wrap-around sequence numbers for recovering from power-fall in non-volatile memory |
| US20100217952A1 (en) * | 2009-02-26 | 2010-08-26 | Iyer Rahul N | Remapping of Data Addresses for a Large Capacity Victim Cache |
| US8627331B1 (en) | 2010-04-30 | 2014-01-07 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
| JP6385468B2 (ja) * | 2014-03-07 | 2018-09-05 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ファイルアクセス方法及び関係するデバイス |
| EP3190520B1 (en) | 2014-09-01 | 2019-08-07 | Huawei Technologies Co. Ltd. | File access method and apparatus, and storage system |
| EP3173931B1 (en) * | 2014-09-01 | 2018-08-29 | Huawei Technologies Co., Ltd. | File access method, device and storage system |
| CN105830022B (zh) * | 2014-11-28 | 2019-03-08 | 华为技术有限公司 | 访问文件的方法和装置 |
| CN104461853A (zh) * | 2015-01-07 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种k-ux操作系统资源管理记录及报告的方法和装置 |
| US10437735B2 (en) * | 2017-12-13 | 2019-10-08 | Red Hat, Inc. | Process isolation for out of process page fault handling |
| DE102018205204A1 (de) * | 2018-04-06 | 2019-10-10 | Robert Bosch Gmbh | Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät eines Fahrzeugs ausführbaren Anwendung, Verfahren zum Kalibrieren eines Steuergeräts, Steuergerät und Auswerteeinrichtung |
| CN108427546B (zh) * | 2018-05-03 | 2022-03-08 | 深圳Tcl新技术有限公司 | 显示装置的全屏幕适配方法、显示装置及存储介质 |
| CN116107919B (zh) * | 2023-01-18 | 2025-08-01 | 浙江大学 | 一种针对跨架构的多地址空间虚拟化内存域隔离方法 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5353231A (en) * | 1976-10-26 | 1978-05-15 | Toshiba Corp | Input/output processing system at virtual memory |
| US4528624A (en) * | 1981-03-25 | 1985-07-09 | International Business Machines Corporation | Method and apparatus for allocating memory space based upon free space in diverse memory devices |
| US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
| US4533996A (en) * | 1982-02-23 | 1985-08-06 | International Business Machines Corporation | Peripheral systems accommodation of guest operating systems |
| JPS5856058A (ja) * | 1981-09-29 | 1983-04-02 | Fujitsu Ltd | 仮想計算機システムcp常駐ボリユ−ムのdasd共用管理方式 |
| US4481583A (en) * | 1981-10-30 | 1984-11-06 | At&T Bell Laboratories | Method for distributing resources in a time-shared system |
| US4636946A (en) * | 1982-02-24 | 1987-01-13 | International Business Machines Corporation | Method and apparatus for grouping asynchronous recording operations |
| US4519032A (en) * | 1982-06-09 | 1985-05-21 | At&T Bell Laboratories | Memory management arrangement for microprocessor systems |
| US4571674A (en) * | 1982-09-27 | 1986-02-18 | International Business Machines Corporation | Peripheral storage system having multiple data transfer rates |
| US4577274A (en) * | 1983-07-11 | 1986-03-18 | At&T Bell Laboratories | Demand paging scheme for a multi-ATB shared memory processing system |
| US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
| US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
| US4660130A (en) * | 1984-07-24 | 1987-04-21 | Texas Instruments Incorporated | Method for managing virtual memory to separate active and stable memory blocks |
-
1986
- 1986-01-16 US US06/819,458 patent/US4742447A/en not_active Expired - Fee Related
- 1986-11-18 CA CA000523243A patent/CA1266531A/en not_active Expired - Lifetime
- 1986-11-29 KR KR1019860010148A patent/KR920005853B1/ko not_active Expired
- 1986-11-29 CN CN86108127A patent/CN1016829B/zh not_active Expired
- 1986-12-19 BR BR8606308A patent/BR8606308A/pt not_active IP Right Cessation
-
1987
- 1987-01-08 EP EP87300112A patent/EP0229691A3/en not_active Withdrawn
- 1987-01-09 JP JP62002015A patent/JPS62165251A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| CN86108127A (zh) | 1987-07-29 |
| JPS62165251A (ja) | 1987-07-21 |
| EP0229691A3 (en) | 1990-06-13 |
| CA1266531A (en) | 1990-03-06 |
| CN1016829B (zh) | 1992-05-27 |
| KR870007462A (ko) | 1987-08-19 |
| EP0229691A2 (en) | 1987-07-22 |
| BR8606308A (pt) | 1987-10-06 |
| US4742447A (en) | 1988-05-03 |
| KR920005853B1 (ko) | 1992-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0578857B2 (ja) | ||
| US4761737A (en) | Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system | |
| US4742450A (en) | Method to share copy on write segment for mapped files | |
| US4730249A (en) | Method to operate on large segments of data in a virtual memory data processing system | |
| USRE36462E (en) | Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections | |
| US5539899A (en) | System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage | |
| US4718008A (en) | Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections | |
| US7409487B1 (en) | Virtualization system for computers that use address space indentifiers | |
| US5842226A (en) | Virtual memory management for a microkernel system with multiple operating systems | |
| US6460126B1 (en) | Computer resource management system | |
| JP4366012B2 (ja) | 仮想記憶システムにおいてアプリケーションプログラムによってコードまたはデータをグループに分類して、物理メモリの割り振りの制御を行うアプリケーション・プログラミング・インターフェイス | |
| US5899994A (en) | Flexible translation storage buffers for virtual address translation | |
| US6493816B1 (en) | Method and apparatus for encapsulating address translation for shared persistent virtual storage | |
| US5088026A (en) | Method for managing a data cache using virtual external storage addresses as arguments | |
| US5835961A (en) | System for non-current page table structure access | |
| JPH076115A (ja) | データ処理システムのソフトウェアユーザによるハードウェアデータ移動機能の制御方法、プロセッサ間の操作の同期化方法、及び複数の装置制御ブロックの付与方法 | |
| US5873120A (en) | Variable split virtual address space allocation with multi-system compatibility | |
| CA1160351A (en) | Virtual memory terminal | |
| Weinberger | Database Systems: Making UNIX* Operating Systems Safe for Databases | |
| KR930003439B1 (ko) | 가상 메모리 관리를 위한 메모리 구조 및 시스템 | |
| Shirriff | An Implementation of Memory Sharing and File Mapping | |
| JPH02244239A (ja) | 計算機システム | |
| Mapp | Technical Report iZy | |
| JPH0736781A (ja) | キャッシュ管理方法 |