JPH08506676A - デマンドページド仮想メモリを有するコンピュータワークステーション - Google Patents
デマンドページド仮想メモリを有するコンピュータワークステーションInfo
- Publication number
- JPH08506676A JPH08506676A JP6518370A JP51837094A JPH08506676A JP H08506676 A JPH08506676 A JP H08506676A JP 6518370 A JP6518370 A JP 6518370A JP 51837094 A JP51837094 A JP 51837094A JP H08506676 A JPH08506676 A JP H08506676A
- Authority
- JP
- Japan
- Prior art keywords
- page
- application
- pages
- workstation
- running
- 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
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
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/12—Replacement control
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
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)
Abstract
(57)【要約】
複数のワークステーション(WS♯1−WS♯N)を含むCTOS(登録商標)ネットワーク(図1)は、大きな仮想メモリがCTOSワークステーション(図2)上の複数の同時に動作するアプリケーション(図2のA1、A2、A3)の各々に能率的に設けられることを可能にする態様で、透過的にネットワークを介する仮想デマンドページングを提供する。ワークステーション上で動作する各アプリケーションに対しては、割当ページ(図4のPgl−PgN)、および周知のクロックアルゴリズムに基づいて動作する局部クロック(図4)が設けられる。局部的方式および大域的方式の独自の組合せがページ置換えに使用されその結果利用可能なメモリページを大幅に能率よく管理できる。
Description
【発明の詳細な説明】名称
デマンドページド仮想メモリを有するコンピュータワークステーション
この発明は、一般的にコンピュータワークステーション中にデマンドページド
仮想メモリを提供するための改良された方法および装置に関する。
現代のワークステーションは、典型的には複数のアプリケーションを一度に実
行することができる。各アプリケーションは通常、そのアプリケーションを実行
するためにそれ自身のメモリを要する。実行中のアプリケーションがワークステ
ーションの利用可能なメモリのすべてを使い果たすと、アプリケーションは大抵
終了するようにされ、そのため十分なメモリが利用可能になったときにアプリケ
ーションが再実行されることが必要になることがある。複数のアプリケーション
を実行するワークステーションにおいておこり得るさらなる問題として、新しい
アプリケーションがワークステーションで開始され利用可能なメモリが不十分で
あるとき、新しいアプリケーションが実行することを可能にするために、実行中
のアプリケーションが強制的に終了させられかつスワップアウトされることがあ
る、ということがある。そのような状況では、ワークステーションは、ユーザが
同時に実行しようと意図するすべてのアプリケーションを実行するに十分なメモ
リを提供することが重要になる。結果として、ワークステーションには通常、ワ
ークステーションのメモリが利用超過になることなく、ユーザが同時に実行する
ことを望むすべてのアプリケーションを実行するに十分な全メモリが提供されな
ければならない。
コンピュータワークステーションに利用可能なメモリを増やす1つの既知の方
法は、ワークステーションがワークステーションの主メモリにおいて現在利用可
能でないメモリを使用することを可能にする仮想メモリ構成を提供することであ
る。たとえば、ワークステーションの主メモリが予め規定された数のページを記
憶することができ、それらのうちの1つまたはそれ以上が、たとえばワークステ
ーションに取付けられたディスクドライブ上に含まれるページとスワップされ得
る、ページング構成を使用することが既知である。ワークステーション上で実行
するアプリケーションがワークステーションの主メモリ中に「存在しない」ペー
ジを要求すると、ページフォールトとして一般に知られている状況が起こる。ワ
ークステーションのオペレーティングシステムは、「存在しない」ページをディ
スクからワークステーションの主メモリのフリーページ(すなわち、現在使用さ
れていないページ)中に読取ることによって、このページフォールトを解決する
。ワークステーションがフリーページを有していなければ、「存在しない」ペー
ジはワークステーションのメモリ中のページと置換わるようにされる。置換えら
れる特定のワークステーションページ
は、必要とされそうにないページを置換えのために選ぼうとするアルゴリズムに
基づいて決定される。この目的のための1つの既知のアルゴリズムは、最も長く
使用されていないページに基づいてワークステーションの主メモリ中のページを
置換える「リーストリーセントリーユーズド」(“least recently used ”)
(LRU)である。このアルゴリズムは典型的には、使用に基づいてページをリ
ンクするスタックを提供することによって実現される。
そのような(LRU)アルゴリズムの大きな欠点は、実現のためにかなりの処
理オーバヘッドを要することである。さらに、「リーストリーセントリーユーズ
ド」アプローチは、実行中のアプリケーションからページが不適当な時間に置換
えられることを引き起こし得るので、このLRUアルゴリズムはワークステーシ
ョンが複数のアプリケーションを実行しているときにはうまく動作しない。
別の既知のタイプのページ置換えアルゴリズムは一般的に「クロック」アルゴ
リズムと呼ばれ、このアルゴリズムではメモリページは(時計の周りと同様に)
単一の循環リスト状に配置される。クロックポインタ(または針)は、最後に置
換えられたページを指し、かつアルゴリズムが次の置換えページを見つけるため
に起動されると時計回りに移動する。ページが置換えのテストを受けるとき、対
応のページテーブルエントリ中のアクセスビットがテストされリセットされる。
ページが最後のテスト以後参照されたこ
とがあれば、そのページは現在のワーキングセットの一部であると考えられ、ポ
インタは次のページに進む。ページがアクセスされておらず、「ダーティ」でな
ければ(すなわちそのバックアップ記憶に書戻される必要がなければ)、それは
置換えに適している。このクロックアルゴリズムはLRUアルゴリズムほどオー
バヘッドを要しないが、複数のアプリケーションを同時に実行するワークステー
ションに対しては依然としてうまく動作しない。
発明の概要
この発明の目的は、広くは、複数のアプリケーションを実行することができる
ワークステーション中にメモリを提供するための改良された方法および装置を提
供することである。
前掲の目的に従ったこの発明のより特定的な目的は、複数のアプリケーション
を実行するワークステーションにデマンドページド仮想メモリを提供することで
ある。
前掲の目的の1つまたはそれ以上に従ったこの発明の別の目的は、複数のワー
クステーションを含むネットワークにおいて接続されたワークステーションにデ
マンドページド仮想メモリを提供することである。
前掲の目的の1つまたはそれ以上に従ったこの発明のさらなる目的は、複数の
ワークステーションを含むCTOSネットワーク中にデマンドページド仮想メモ
リを提供することである。
前掲の目的を達成する本願発明の特定の好ましい実施例を、ネックワーキング
能力がオペレーティングシステム中に組込まれたワークステーションのCTOS
ネットワークに適用されたものとして説明する。このタイプのオペレーティング
システムは、ユニシスコーポレーション、ペンシルベニア、ブルーべル(Unysis
Corporation,Blue Bell,Pennsylvania)から現在入手可能であり、登録商標
CTOS(登録商標)と称する。CTOSのハードウェア、ソフトウェア、およ
びプログラミングの詳細はユニシスコーポレーションから入手可能である。さら
に、CTOSの基本的な説明は、E.I.ミラー(E.I.MIller)らによる、1
991年、ニュージャージー、エングルウッドクリフ、プレンティスホール(Pr
entice Hall,Englewood Cliffs,New Jersey)の Exploring CTOS に見受けられ
る。この本の内容はここに援用する。
述べられた好ましい実施例において、仮想デマンドページド仮想メモリがCT
OSオペレーティングシステム中のワークステーションに透過的に設けられる。
ワークステーション上で実行する各アプリケーションには割当られたページおよ
び局部クロックが与えられる。能率的な非常に大きな仮想メモリを使用するデマ
ンドページングが、ワークステーション上で動作する複数のアプリケーションの
各々に境い目なく設けられることを可能にするような形で、局部的方式および大
域的方式の独自の組合せがページ置換え
に使用される。さらに、ワークステーションに存在しないページは、サーバにあ
るディスクドライブからネットワークを介して透過的に得られる。これは、所望
であればディスクを持たないCTOSワークステーションの使用を容易にする。
この発明の特定的性質、ならびにその他の目的、特徴、利点、および使用は、
添付図面と関連した好ましい実施例の以下の説明から明らかになるであろう。
図面の簡単な説明
図1は、複数のワークステーションを含むCTOSクラスタのブロック図であ
る。
図2は、この発明に従ったCTOSワークステーションのデマンドページド仮
想メモリを有するCTOSワークステーションの好ましい実施例を示すブロック
および概略図である。
図3は、図2におけるCTOSワークステーション上で動作する各アプリケー
ションによって使用される典型的なページテーブルを示す図である。
図4は、図2においてCTOSワークステーション上で動作する各アプリケー
ションに設けられた局部クロックの構成を示す図である。
図5は、図4に示された局部クロックの動作を示すフロー図である。
図6は、アプリケーションが「存在しない」メモリペー
ジを要求した結果としてのページフォールトの発生を示すフロー図である。
図7は、ページフォールトの発生に応答して起こる動作を示すフロー図である
。
図8は、ページフォールトを引き起こしたアプリケーションがその割当ページ
の最大数に達したときにページフォールトがどのように扱われるかを示すフロー
図である。
図9は、ページフォールトを引き起こすアプリケーションがそのページ最大値
に達していないがそのワークステーションが割当可能なページの最大数を使い果
たしてしまったときにページフォールトがどのように扱われるかを示すフロー図
である。
好ましい実施例の説明
図の全てにおいて、同じ参照番号および文字は同じ要素に対応する。
はじめに、図1を参照して、N個のデスクトップワークステーションWS#1
…WS♯Nのネットワークを含むCTOSクラスタが示されており、ワークステ
ーションの1つ(たとえば、WS#1)がサーバワークステーションとして指定
されているものとする。CTOSはこれらのワークステーション上でIntel
(登録商標)の80X86マイクロプロセッサファミリを使用して動作する。C
TOSは、ユーザには透過的である組込みネットワーキング能力を有するモジュ
ール型メッセージベースのオペレーティ
ングシステムである。
図1に示されるCTOSクラスタは、RS−422/485接続を用いた簡単
なバストポロジーBによって実現される。代替的には、CTOSクラスタは、米
国特許第4,918,688号において説明されたようなツイストペア(電話配
線)を使用して実現され得る。
CTOSは非常に小さなカーネル、すなわち基本的演算の一群を有する。CT
OSシステム環境のほとんどはシステムサービスと呼ばれるモジュールからなる
。これらのシステムサービスは、資源(ファイルシステム、通信、など)を管理
し、かつアプリケーションプログラム処理によって、および他のシステムサービ
ス処理によって要求されるサービスを提供する。
CTOSを実行するシステムは複数のプロセスすなわち実行のスレッドを有す
る。プロセスとは、独立した実行のスレッドであって、そのスレッドに必要なハ
ードウェアおよびソフトウェアのコンテキストを伴う。メッセージは交換部を介
して1つのプロセスから別のプロセスに渡される。交換部は、プロセスがメッセ
ージを受信するのを待ったり、メッセージが処理されるのを待つために置かれた
りする郵便箱に似ている。各々のプロセスにはそれが生じるとき交換部を割当て
られる。CTOSは、最もよく使用されるCTOSメッセージである特別なタイ
プのメッセージ、すなわちサービスの要求を使用する。これらの要求は、所望の
システムサービスを特定する要求コードを有する要求ブロックヘッダを含む特別
な定様式メッセージであって、サービスによって必要とされる他の情報すなわち
応答をどこに送るべきか、要求を誰が送っているのかなどの情報もまた伴う。C
TOSカーネルの助けによって、要求はネットワークを介してユーザまたはアプ
リケーションプログラムに対して透過的に移動してどのような特別なサービスを
も探しあてる。
CTOSワークステーション上で動作するアプリケーションは複数のプロセス
を含み得る。たとえば、電子メールアプリケーションは典型的には少なくとも2
つのプロセスを有し得る。一方のプロセスはユーザがメールメッセージを編集す
るのを可能にし、他方の処理は到着メールを監視する。これらの電子メールプロ
セスは互いにワークステーションマイクロプロセッサの使用をめぐって競合し、
さらに(ワードプロセッサアプリケーションおよびコンパイラアプリケーション
などの)他の実行中のアプリケーションからのプロセスとも競合する。CTOS
ワークステーションは典型的には一つのマイクロプロセッサ(たとえば、804
86Intel(登録商標)プロセッサ)しか含まないので、複数のアプリケー
ションが同時にワークステーション上で動作することを可能にするためにプロセ
ススケジューリングが必要である。これはCTOSカーネルスケジューラによっ
て行なわれる。CTOS内の各プロセス(実
行のスレッド)は優先順位を割当てられ、かつその優先順位に基づいてマイクロ
プロセッサによって実行をスケジュールされる。プロセススケジューリングはイ
ベントによって駆動される。プロセスの実行の間に入力/出力イベントなどのイ
ベントが起こるときはいつでも、実行中のプロセスは優先順位のより高いプロセ
スの犠牲となって、プロセッサの制御を失う。このタイプのスケジューリングは
イベント駆動の優先順位付スケジューリングと呼ばれる。
CTOSにおいて、オペレーティングシステムに通常関連する機能は、資源を
管理しかつアプリケーションプログラムプロセスおよび他のシステムサービスプ
ロセスによって要求されるサービスを提供するシステムサービスによって行なわ
れる。それらは前述のメッセージを使用してそれらのアプリケーションプログラ
ムクライエントと通信する。
CTOSシステムサービスの例として、ディスクファイルのオープンまたはクロ
ーズまたはキーボード入力の受け入れが含まれる。それらの標準メッセージベー
スのインタフェースのために、システムサービスは所望にしたがってダイナミッ
クにロードされたり、置換えられたり、または取除かれたりし得る。CTOSオ
ペレーティングシステム中にシステムサービスを提供する態様はCTOSに精通
している当業者には周知である。
CTOSの組込みネットワーキングによって可能になる特定の利点は、システ
ムサービスがネットワークを介して
そのサービスを要求するプロセスに対して透過的に動作し得ることである。たと
えば、1つのワークステーション上のアプリケーションプロセスは、システムサ
ービスがどこに存在するのかという知識がなくともあるジョブを行なわせる要求
メッセージをシステムサービスに送り出すことができる。サービスがローカルワ
ークステーション上に存在しなければ、要求メッセージはネットワークを介して
サービスが存在するワークステーションに自動的に送られる。応答メッセージは
同様にして戻ってくる。
先行技術のCTOSシステムでは、ワークステーション上で動作している各ア
プリケーションは、ワークステーションメモリの特定の割当てられたパーティシ
ョン中に存在する。加えて、ワークステーションメモリの特定の部分がアプリケ
ーションの実行中に使用するために各アプリケーションに割当てられる。仮想デ
マンドページングが、80386Intel(登録商標)(およびそれより後の
)マイクロプロセッサを使用するCTOSシステム上に設けられ得ることは一般
的に認められてきたが、全体の処理能力が十分強化されるとは考えられていなか
ったので、そうしたものは提供されなかった。この発明によって提供される特定
の仮想デマンドページングは他のタイプのオペレーティングシステムにも適用可
能であるが、CTOSシステム中に使用されるとき特に有利である。なぜならそ
れは複数のアプリケーションを実行しているワークステーションに
おけるCTOSの処理能力をかなり向上させるからである。
この発明に従ったCTOSワークステーションに仮想デマンドページングを提
供するための好ましい態様がこれから説明される。好ましくは、このページング
能力はシステムサービスとしてCTOSに与えられ、ワークステーションにて動
作するすべてのアプリケーションによって使用される。この発明に従った仮想デ
マンドページングを実現するためにそのようなCTOSシステムサービスがどの
ように設計され得るがはここに与えられる説明から明らかになるであろう。この
目的のために、利用可能なメモリは全てたとえば4KB(4000バイト)ペー
ジに分割されていると考えることができる。
図2は、主メモリMおよび局部ディスクDを有するCTOSワークステーショ
ンWS上で動作する、3つのアプリケーションA1、A2およびA3、ならびに
それらの関連のページを概略的に示す。たとえば、A1はワードプロセッサアプ
リケーションプログラムであって、A2は(プログラマによってプログラム開発
に使用されるような)コンパイラアプリケーションプログラムであって、A3は
メッセージを送受信するためのメールプログラムであり得る。
各アプリケーション(A1、A2、A3)にはそれぞれのページテーブル(P
1、P2、P3)およびそれぞれの局部クロック(C1、C2、C3)が与えら
れている。各アプリケーションには典型的にはそれが実行の間に使用し
得る最大数の割当て可能なメモリページが与えられる。たとえば、ワードプロセ
ッサアプリケーションプログラムA1には最大100の割当ページが与えられ、
コンパイラアプリケーションプログラムA2には最大70の割当ページが与えら
れ、メールアプリケーションプログラムA3には最大50の割当ページが与えら
れる。メモリMが全部で120の割当可能なページを有するものとすると、アプ
リケーションがその最大数のページを割当てられているかどうかにかかわらず、
いかなるときもすべての実行中のアプリケーションに割当てられるページの合計
は120ページを超えることはできない。図2におけるワークステーションWS
はまた、ページ割当を把握するためのフリーページリストFPL、ダーティなペ
ージをクリーンにするためのクリーニングキューCQ、および相対的なアプリケ
ーションアクティビティを示すためのアクティビティキューAQを示すことに注
目されたい。これらはさらに以下で説明される。
図3は、各アプリケーションによって使用され得る典型的なページテーブル(
P1、P2、P3)を示す。示されているように、ページテーブル中の各エント
リは、割当てられたメモリページを特定するページ特定データpi、ページがそ
のアプリケーションによって最後のテスト以来参照されたかどうかを示すアクセ
スビットai、およびページがディスクドライブなどのそのソース位置に書戻さ
れな
ければならない書込データを含むかどうかを示す「ダーティ」ページビットdi
を含む。各ページテーブルエントリはまたoiによって示される他の情報も含み
得る。
CTOSはアプリケーションが開始するときに、最大数の割当可能なページを
アプリケーションに割当てる。CTOSはまたその時に置換えが要求されるとき
アプリケーションのどのページが置換えられるべきかを決定するのに使用するた
めに、アプリケーションのための局部クロックを生成する。そのような局部クロ
ックの基本的な構成が図4に概略的に示されており、メモリページpg1、pg
2、…pgNがアプリケーションに割当てられたページを示し、かつ時計の周り
のように循環リストに配置される。割当メモリページの数がそのアプリケーショ
ンの最大割当て可能なページを超えることは許されない。クロックポインタ(ま
たは針)cpは最後に置換えられたページを指し、置換え可能なページを探すよ
うに局部クロックが起動されると時計回りに進む。
置換え可能なページのための局部クロックサーチの間の動作が図5にフロー図
によって示されている。クロックポインタcpが次のページに進むと(ステップ
500)、対応のページテーブルエントリのアクセスビットaiがセットされて
いるか否かがテストされ(ステップ502)、そのページが最後のテスト以来そ
のアプリケーションによって参照されたかどうかを判断する。このアクセスビッ
トai
がセットされている場合(ステップ502)、そのページはそのアプリケーシ
ョンの現在アクティブであるワーキングページの1ページであると考えられ、そ
のため置換えには適格でない。そのような場合、このアクセスビットaiはリセ
ットされ(ステップ504)、フロー図はそのサーチを続けるためにステップ5
00に戻る。
一方、次のページのアクセスビットaiがステップ502においてセットされ
ていない場合、ダーティページビットdiがセットされているか否かが調べられ
る(ステップ506)。ビットdiがセットされておらず、ページがクリーンで
ある(すなわち、それはディスクなどのそのソース位置に書戻される必要はない
)ことが示されている場合、ページは置換えに適格であると指定される(ステッ
プ506)。しかしながら、ステップ506において、ビットdiがセットされ
、ページはダーティであると示されている場合、そのページはクリーニングキュ
ーCQ(図2)上に置かれ、フローはサーチを続けるためにステップ500に復
帰する。CQにおけるあるページが他に先行してクリーンにされるように、クリ
ーニングキューCQにおけるページには優先順位が与えられ得る。ページがクリ
ーンにされた後、そのそれぞれのアプリケーションのページテーブルにおけるそ
のビットdiはリセットされ、ページが現在クリーンであることを示す。
次に説明されるのは、図4および5に関連して上述され
たように、実行中のアプリケーションに局部クロックを使用するこの発明に従っ
た、大域的および局部的ページ割当方式の組合せの好ましい実施例である。この
目的のために、前述したように、最大120の割当可能なページを有するCTO
Sワークステーションが、それぞれ割当ページ最大100、50、および30を
有するワードプロセッサアプリケーションA1、コンパイラアプリケーションA
2、およびメールアプリケーションA3を同時に実行していると仮定する。これ
らのアプリケーションの3つすべてがワークステーション上で動作しているとき
、アプリケーションの1つはフォアグラウンド(フォアグラウンドアプリケーシ
ョンとは、キーボード、および通常ディスプレイスクリーンの少なくとも一部分
を制御するアプリケーションをいう)において動作し、他の2つのアプリケーシ
ョンはバックグラウンドで動作していることが理解されるだろう。たとえば、ワ
ードプロセッサアプリケーションは、ユーザがキーボードおよびディスプレイを
制御することを可能にするフォアグラウンドで動作し、それによって他のアプリ
ケーションが実行していないかのようにワードプロセシング動作を行なうことが
できる。コンパイラおよびメールアプリケーションはそのときバックグラウンド
で動作しているだろう。たとえば、コンパイラアプリケーションは、ユーザによ
って以前に開発された専用プログラムをコンパイルし、一方メールアプリケーシ
ョンはメールメッセージを受
取るのを待っていることができる。メールメッセージが到着すると、スクリーン
上でマーカを点滅させることによってユーザにこのメッセージの受信を知らせる
ことができる。そうすればユーザは、適切なキーボード入力をすることによって
、メールアプリケーションプログラムに切換え、メッセージを読取ることができ
る。その場合メールアプリケーションがフォアグラウンドにあり、一方ワードプ
ロセッサアプリケーションはコンパイラアプリケーションとともにバックグラウ
ンドで動作していることになる。
図6のフロー図に示されているように、実行中のアプリケーションの1つがメ
モリアクセスを要求するときはいつでも、ページテーブルが照合され(ステップ
600)、アクセスされるべき情報を含むページがアプリケーションの割当てら
れたページの1つに存在するかどうかを判断する。ページが存在しているとわか
れば(ステップ602)、ページはアプリケーションによってアクセスされる(
ステップ604)。そうでなければ、ページフォールトが起こり、ページフォー
ルトがどのように処理されるかを示す図7のフロー図に動作が進むことが引き起
こされる。
図7に示されているように、ページフォールトの発生は仮想デマンドページン
グサービスを引き起こし(ステップ700)、仮想デマンドページングサービス
はフォールトを引き起こしたアプリケーションの実行を中断する(ステップ70
2)。この後ページングサービスがアプリケーシ
ョンまたはワークステーションいずれかのページ最大値に達したかどうかをチェ
ックし判断する(ステップ704)。もし達していなければ、ページングサービ
スは、フリー(割当てられていない)ワークステーションメモリページ(図2の
フリーページリストFPLにおいて示されている)が、フォールトが生じたアプ
リケーションに割当てられるようにし、その後に続いて、要求されたページがこ
の新しく割当てられたページ中に読込まれ(ステップ706)、アプリケーショ
ンがその後再開する(ステップ708)。CTOSシステムが使用されているの
で、このページはワークステーションの局部ディスクから、またはネットワーク
を介してサーバワークステーションから、透過的に得られるという効果を奏する
。
一方、図8におけるステップ704において、アプリケーションまたはワーク
ステーションいずれかのページ最大値に達したことがわかると、ページ置換えが
要求され、ページ最大値がアプリケーション(図8)に対してのものであるかワ
ークステーション(図9)に対してのものであるかに依存して、図8または図9
に示されたようにページ置換えが行なわれる。図8に示されたアプリケーション
ページ最大値に達した状況をまず考える。
図8に示されているように、アプリケーションがその割当ページ最大値に達し
た状況に対するページ置換えは、アプリケーションの局部クロックにおける置換
え可能なペー
ジのサーチから始まる(ステップ800)。このサーチは図4および5に関連し
て前述されたように達成される。置換え可能なページがアプリケーションの局部
クロックにあることがわかると(ステップ802)、アプリケーションによって
要求された「存在しない」ページが(たとえば局部またはサーバディスクから)
得られ、かつ指定された置換え可能なページの中に読込まれ(ステップ804)
、それに続いてアプリケーションが再開される(ステップ806)。
一方、図7のステップ802において、アプリケーションの局部クロックの周
りを1周した後置換え可能なページがないことがわかると、局部クロックの2周
目が開始される(ステップ808)。第1周目の間には各ページアクセスビット
aiがリセットされたので、第2周目の置換え可能なページのサーチは最初に生
じるクリーンなページ(すなわちdiがセットされていないページ)の発見に基
づく。クリーンなページが発見されると、それは置換え可能なページとして指定
される(ステップ810)。フロー図はその後、前述されたステップ804およ
び806に進み、「存在しない」ページが読込まれ、見つけられた置換え可能な
ページに置換えられ、アプリケーションが再開する。
図8に示されているように、ステップ810によって、アプリケーションの局
部クロックの第2周目の間にクリーンなページが見つけられなかったことが示さ
れると、フロ
ーはその後ステップ812に進み、クリーニングキューCQ(図2)内にアプリ
ケーションがクリーンにされるのを待ち得るページがあるかどうかが判断される
。もしそうであれば、ページがクリーンにされるまでアプリケーションは待機す
る(ステップ814)。クリーンにされたページはその後置換え可能であるとし
て指定され、フローはその後前述のようにステップ804および806に進み、
要求された「存在しない」ページが読込まれ、この指定された置換え可能なペー
ジに置換えられ、さらにアプリケーションが再開される。しかしながら、ステッ
プ812によって、アプリケーションが待ち得るクリーンにされるページがない
ことが示されると、エラー表示が与えられる。
図9は、(たとえアプリケーションの割当てられたぺージ最大値に達していな
いとしても)ワークステーションがその最大数の割当可能なページを使い果たし
てしまったためにページフォールトが満たされない、第2のタイプの置換え状況
に対してページ置換えがどのように処理されるかを示す。前の例では、ワークス
テーションは最大120の割当可能なページを有し、一方でワードプロセッサア
プリケーションA1には最大100の割当ページが与えられており、コンパイラ
アプリケーションA2には最大50の割当ページが与えられており、さらにメー
ルアプリケーションA3には最大30の割当ページが与えられていると仮定され
たことが思い出されるであろう。たとえば、アプリケ
ーションA1、A2、およびA3にそれぞれ80ページ、30ページ、および1
0ページが既に割当てられており、さらにワードプロセッサアプリケーションA
1が「存在しない」ページを要求するためにページフォールトが生じるとすると
、ワークステーションのページ最大値120ぺージ(80+30+10)に既に
達してしまっているのでワークステーションはこのページフォールトを満たすこ
とができない。これは図9が関連しているページ置換え状況のタイプである。
基本的には、図9のフローでは、ページを別のアプリケーションから奪おうと
試みられる。この目的のために、ワークステーションアクティビティキューAQ
(図2)が第1にチェックされ(ステップ900)、ワークステーション上で動
作している他のアプリケーションのうちどれが最もアクティブでないかが決定さ
れる。説明されている好ましい実施例では、このアクティビティキューAQは、
どのアプリケーションに最も長い期間ページフォールトが生じていないかに基づ
いて、実行中のアプリケーションを順番に並べるように設計される。たとえば、
ワードプロセッサアプリケーションA1に最も近い時点でページフォールトが生
じ、メールアプリケーションA3に最も長い期間ページフォールトが生じていな
いとすれば、A3が最もアクティブでないアプリケーションであり、その後A2
が続き、最後にA1が続く。そのような場合、図9のステップ90
0は、A3を最もアクティブでないアプリケーションとして選択し、それからペ
ージを奪おうとする。
図9のステップ902は、ステップ900において選択された最もアクティブ
でないアプリケーションがフォアグラウンド(すなわち現在ユーザによって使用
されている)状態であるかどうかをチェックし、もしそうであるならば、ページ
を奪うために、次にアクティブであるアプリケーションを選ぶ(ステップ904
)。フォアグラウンドアプリケーションを使用しない理由は、フォアグラウンド
アプリケーションはそれがフォアグラウンドで使用されるためにそのページへの
アクセスをいつ要求するとも限らないからであって、そのためそのページの1つ
が奪われるようにされるべきではない。
そのようにしてページが奪われるべきアプリケーションを特定した(ステップ
900、902、904)後、図9のフローは選ばれたアプリケーションの局部
クロックに進み(ステップ906)、置換え可能なページのサーチを行なうが、
そのサーチは図4、5、7に関連して前述されたものと同じ態様で達成される。
このサーチはさまざまな点で修正されてもよい。たとえば、図9のステップ90
6の目的のためには、局部クロックページ置換えサーチは局部クロックの1周の
みに限定されてもよい。
置換え可能なページが見つかると(ステップ908)、フローはステップ91
0に進み、ステップ906において
見つけられた置換え可能なページが奪われ、かつページフォールトが生じたアプ
リケーションに割当てられる。要求された「存在しない」ページはその後この新
しく割当てられたページ中に読込まれ、ページフォールトが生じたアプリケーシ
ョンはその後再開される(ステップ912)。
ステップ908において置換え可能なページが見つからなければ、別のアプリ
ケーションからページを奪う試みが行なわれる(ステップ914)。これは好ま
しくは、フォアグラウンドアプリケーションではない、その次にアクティブでな
いアプリケーションから始まり、置換え可能なページが見つかるまで他のアプリ
ケーションへと続けて(ステップ906において行なわれた態様と同じ態様で)
他のアプリケーションの局部クロックをサーチすることによって達成される。フ
ローはその後910に戻り、その奪う動作を完了する。置換え可能なページがま
だ見つからなければ(ステップ916)、図7に関連して前述されたたように、
ページフォールトが生じたアプリケーションの局部クロックにおいて置換え可能
なページを見つける試みが行なわれる(ステップ918)。これも置換え可能な
ページを見つけるに至らなければ(ステップ920)、エラー表示が与えられる
。代替的には、前述したように、他のアプリケーションに対してもう一度サーチ
が行なわれ得る。なぜなら以前に置換え可能でなかったページも置換え可能にな
ることがあるからである。そのような繰り返しサーチは、
フォールトが生じたアプリケーションの局部クロックをサーチする前に行なわれ
てもよい。
CTOSシステムにおいて大域的および局部的仮想デマンドページングが組合
せられた上述の説明は単なる例であることが理解されるべきである。というのも
構成、配置、および用途における多くの変更および変形がこの発明の範囲内で可
能であるからである。たとえば、この発明はCTOS以外のオペレーティングシ
ステムに適用可能である。また、かなり異なった実現化例およびアルゴリズムが
この発明の真の範囲および精神を離れることなく与えられ得る。したがって、こ
の発明は添付請求の範囲の範囲内にあるすべての可能な変更および変形を含むと
考えられ得る。
【手続補正書】特許法第184条の8
【提出日】1994年9月12日
【補正内容】
得る最大数の割当て可能なメモリページが与えられる。たとえば、ワードプロセ
ッサアプリケーションプログラムA1には最大100の割当ページが与えられ、
コンパイラアプリケーションプログラムA2には最大70の割当ページが与えら
れ、メールアプリケーションプログラムA3には最大50の割当ページが与えら
れる。メモリMが全部で120の割当可能なページを有するものとすると、アプ
リケーションがその最大数のページを割当てられているかどうかにかかわらず、
いかなるときもすべての実行中のアプリケーションに割当てられるページの合計
は120ページを超えることはできない。図2におけるワークステーションWS
はまた、ページ割当を把握するためのフリーページリストFPL、ダーティなペ
ージをクリーンにするためのページクリーニングキューPCQ、および相対的な
アプリケーションアクティビティを示すためのアクティビティキューAQを示す
ことに注目されたい。これらはさらに以下で説明される。
図3は、各アプリケーションによって使用され得る典型的なページテーブル(
P1、P2、P3)を示す。示されているように、ページテーブル中の各エント
リは、割当てられたメモリページを特定するページ特定データpi、ページがそ
のアプリケーションによって最後のテスト以来参照されたかどうかを示すアクセ
スビットai、およびページがディスクドライブなどのそのソース位置に書戻さ
れな
ければならない書込データを含むかどうかを示す「ダーティ」ページビットdi
を含む。各ページテーブルエントリはまたoiによって示される他の情報も含み
得る。
CTOSはアプリケーションが開始するときに、最大数の割当可能なページを
アプリケーションに割当てる。CTOSはまたその時に置換えが要求されるとき
アプリケーションのどのページが置換えられるべきかを決定するのに使用するた
めに、アプリケーションのための局部クロック(図2のC1,C2,C3)を生
成する。そのような局部クロックの基本的な構成が図4に概略的に示されており
、メモリページ、つまりアプリケーションに割当てられたpg1、pg2、…p
gNと示されたページが、時計の周りのように循環リストに配置される。割当メ
モリページの数がそのアプリケーションの最大割当て可能なページを超えること
は許されない。クロックポインタ(または針)cpは最後に置換えられたページ
を指し、置換え可能なページを探すように局部クロックが起動されると時計回り
に進む。
置換え可能なページのための局部クロックサーチの間の動作が図5にフロー図
によって示されている。クロックポインタcpが次のページに進むと(ステップ
500)、対応のページテーブルエントリのアクセスビットaiがセットされて
いるか否かかテストされ(ステップ502)、そのページが最後のテスト以来そ
のアプリケーションによって参照されたかどうかを判断する。このアクセスビッ
トai
がセットされている場合(ステップ502)、そのぺージはそのアプリケーシ
ョンの現在アクティブであるワーキングページの1ページであると考えられ、そ
のため置換えには適格でない。そのような場合、このアクセスビットaiはリセ
ットされ(ステップ504)、フロー図はそのサーチを続けるためにステップ5
00に戻る。
一方、次のページのアクセスビットaiがステップ502においてセットされ
ていない場合、ダーティページビットdiがセットされているか否かが調べられ
る(ステップ506)。ビットdiがセットされておらず、ページがクリーンで
ある(すなわち、それはディスクなどのそのソース位置に書戻される必要はない
)ことが示されている場合、ページは置換えに適格であると指定される(ステッ
プ508)。しかしながら、ステップ506において、ビットdiがセットされ
、ページはダーティであると示されている場合、そのページはページクリーニン
グキューPCQ(図2)上に置かれ(ステップ510)、フローはサーチを続け
るためにステップ500に復帰する。PCQにおけるあるページが他に先行して
クリーンにされるように、ページクリーニングキューPCQにおけるページには
優先順位が与えられ得る。ページがクリーンにされた後、そのそれぞれのアプリ
ケーションのページテーブルにおけるそのビットdiはリセットされ、ページが
現在クリーンであることを示す。
次に説明されるのは、図4および5に関連して上述され
たように、各々の実行中のアプリケーションに局部クロックを使用するこの発明
に従った、大域的および局部的ページ割当方式の組合せの好ましい実施例である
。この目的のために、前述したように、最大120の割当可能なページを有する
CTOSワークステーションが、それぞれ割当ページ最大100、50、および
30を有するワードプロセッサアプリケーションA1、コンパイラアプリケーシ
ョンA2、およびメールアプリケーションA3を同時に実行していると仮定する
。これらのアプリケーションの3つすべてがワークステーション上で動作してい
るとき、アプリケーションの1つはフォアグラウンド(フォアグラウンドアプリ
ケーションとは、キーボード、および通常ディスプレイスクリーンの少なくとも
一部分を制御するアプリケーションをいう)において動作し、他の2つのアプリ
ケーションはバックグラウンドで動作していることが理解されるだろう。たとえ
ば、ワードプロセッサアプリケーションA1は、ユーザがキーボードおよびディ
スプレイを制御することを可能にするフォアグラウンドで動作し、それによって
他のアプリケーションが実行していないかのようにワードプロセシング動作を行
なうことができる。コンパイラおよびメールアプリケーションはそのときバック
グラウンドで動作しているだろう。たとえば、コンパイラアプリケーションは、
ユーザによって以前に開発された専用プログラム
をコンパイルし、一方メールアプリケーションはメールメッセージを受
ョンまたはワークステーションいずれかのページ最大値に達したかどうかをチェ
ックし判断する(ステップ704)。もし達していなければ、ページングサービ
スは、フリー(割当てられていない)ワークステーションメモリページ(図2の
フリーページリストFPLにおいて示されている)が、フォールトが生じたアプ
リケーションに割当てられるようにし、その後に続いて、要求されたページがこ
の新しく割当てられたページ中に読込まれ(ステップ706)、さらにアプリケ
ーションがその後再開する(ステップ708)。CTOSシステムが使用されて
いるので、このページはワークステーションの局部ディスクから、またはネット
ワークを介してサーバワークステーションから、透過的に得られるという効果を
奏する。
一方、図8におけるステップ704において、アプリケーションまたはワーク
ステーションいずれかのページ最大値に達したことがわかると、ページ置換えが
要求され、ページ最大値がアプリケーション(図8)に対してのものであるかワ
ークステーション(図9)に対してのものであるかに依存して、図8または図9
に示されたようにページ置換えが行なわれる。図8に示されたアプリケーション
ページ最大値に達した状況をまず考える。
図8に示されているように、アプリケーションがその割当ページ最大値に達し
た状況に対するページ置換えは、アプリケーションの局部クロックにおける置換
え可能なペー
ーはその後ステップ812に進み、ページクリーニングキューPCQ(図2)内
にアプリケーションがクリーンにされるのを待ち得るページがあるかどうかが判
断される。もしそうであれば、ページがクリーンにされるまでアプリケーション
は待機する(ステップ814)。クリーンにされたページはその後置換え可能で
あるとして指定され、フローはその後前述のようにステップ804および806
に進み、要求された「存在しない」ページが読込まれ、この指定された置換え可
能なページに置換えられ、さらにアプリケーションが再開される。しかしながら
、ステップ812によって、アプリケーションが待ち得るクリーンにされるペー
ジがないことが示されると、エラー表示が与えられる。
図9は、(たとえアプリケーションの割当てられたページ最大値に達していな
いとしても)ワークステーションがその最大数の割当可能なページを使い果たし
てしまったためにページフォールトが満たされない、第2のタイプの置換え状況
に対してページ置換えがどのように処理されるかを示す。前の例では、ワークス
テーションは最大120の割当可能なページを有し、一方でワードプロセッサア
プリケーションA1には最大100の割当ページが与えられており、コンパイラ
アプリケーションA2には最大50の割当ページが与えられており、さらにメー
ルアプリケーションA3には最大30の割当ページが与えられていると仮定され
たことが思い出されるであろう。たとえば、アプリケ
0は、A3を最もアクティブでないアプリケーションとして選択し、それからペ
ージを奪おうとする。
図9のステップ902は、ステップ900において選択された最もアクティブ
でないアプリケーションがフォアグラウンド(すなわち現在ユーザによって使用
されている)状態であるかどうかをチェックし、もしそうであるならば、ページ
を奪うために、次にアクティブであるアプリケーションを選ぶ(ステップ904
)。フォアグラウンドアプリケーションを使用しない理由は、フォアグラウンド
アプリケーションはそれがフォアグラウンドで使用されるためにそのページへの
アクセスをいつ要求するとも限らないからであって、そのためそのページの1つ
が奪われるようにされるべきではない。
そのようにしてページが奪われるべきアプリケーションを特定した(ステップ
900、902、904)後、図9のフローは選ばれたアプリケーションの局部
クロックに進み(ステップ906)、置換え可能なページのサーチを行なうが、
そのサーチは図4、5、8に関連して前述されたものと同じ態様で達成される。
このサーチはさまざまな点で修正されてもよい。たとえば、図9のステップ90
6の目的のためには、局部クロックページ置換えサーチは局部クロックの1周の
みに限定されてもよい。
置換え可能なページが見つかると(ステップ908)、フローはステップ91
0に進み、ステップ906において
見つけられた置換え可能なページが奪われ、かつページフォールトが生じたアプ
リケーションに割当てられる。要求された「存在しない」ページはその後この新
しく割当てられたページ中に読込まれ、ページフォールトが生じたアプリケーシ
ョンはその後再開される(ステップ912)。
ステップ908において置換え可能なページが見つからなければ、別のアプリ
ケーションからページを奪う試みが行なわれる(ステップ914)。これは好ま
しくは、フォアグラウンドアプリケーションではない、その次にアクティブでな
いアプリケーションから始まり、置換え可能なページが見つかるまで他のアプリ
ケーションへと続けて(ステップ906において行なわれた態様と同じ態様で)
他のアプリケーションの局部クロックをサーチすることによって達成される。フ
ローはその後910に戻り、その奪う動作を完了する。置換え可能なページがま
だ見つからなければ(ステップ916)、図8に関連して前述されたたように、
ページフォールトが生じたアプリケーションの局部クロックにおいて置換え可能
なページを見つける試みが行なわれる(ステップ918)。これも置換え可能な
ページを見つけるに至らなければ(ステップ920)、エラー表示が与えられる
。代替的には、前述したように、他のアプリケーションに対してもう一度サーチ
が行なわれ得る。なぜなら以前に置換え可能でなかったページも置換え可能にな
ることがあるからである。そのような繰り返しサーチは、
【手続補正書】特許法第184条の8
【提出日】1995年1月23日
【補正内容】
請求の範囲
1.相互に接続された複数のワークステーションを含み、あるワークステーシ
ョンが複数のアプリケーションを同時に実行することができるネットワークにお
いて、
物理メモリを前記ネットワークに設けるステップと、
前記物理メモリを複数のページに分割するステップと、
アプリケーションが動作しているときアプリケーションによって使用可能なペ
ージの状態を示すための局部ページテーブルを各アプリケーションに対して設け
るステップと、
アプリケーションがその局部ページテーブルに現在存在していないページへの
アクセスを要求するときページフォールトを生成するステップと、
ページフォールトを満たすために置換えが要求されるとき置換え可能なページ
を特定するステップとを含み、前記特定するステップは、まずページフォールト
が生じたアプリケーションの局部ページテーブルをサーチし、もし置換え可能な
ページが見つからなければ、その後置換え可能なページを見つけるために別の実
行中のアプリケーションの局部ページテーブルをサーチすることによって行なわ
れ、選ぶべき他の実行中のアプリケーションが複数あるとき前記別の実行中のア
プリケーションの選択は、どれが最もアクティブでないかに基づいて決定され、
さらに、
前記別のアプリケーションから得られたときの特定された置換え可能なページ
を、ページフォールトが生じたアプ
リケーションの局部ページテーブルに割当てるステップと、
アクセスされた存在していないページを、特定された置換え可能なページ中に
読込むステップとを含む、方法。
2.最もアクティブでないアプリケーションは、実行中のアプリケーションの
ページフォールト動作に基づいて決定される、請求項1に記載の方法。
3.最もアクティブでないアプリケーションは、ページフォールトが最も長い
期間で起こっていないアプリケーションに基づいて決定される、請求項1に記載
の方法。
4.各局部テーブルはクロックアルゴリズムに基づく置換え方式を有する、請
求項1に記載の方法。
5.前記別のアプリケーションの選択はまた、アプリケーションがバックグラ
ウンドで実行しているかフォアグラウンドで実行しているかにも依存している、
請求項1に記載の方法。
6.前記特定するステップは、前記別のアプリケーションのサーチによっても
置換え可能なページを見つけることができなければさらに実行中のアプリケーシ
ョンの局部ページテーブルをサーチするステップを含む、請求項1に記載の方法
。
7.前記ネットワークはCTOSネットワークであって、前記ワークステーシ
ョンはCTOSワークステーションである、請求項1に記載の方法。
8.相互に接続された複数のワークステーションを含み、
ワークステーション間のネットワーキングがオペレーティングシステム中に組込
まれているネットワークにおいて、
前記ネットワークに設けられた物理メモリを含み、前記物理メモリは複数のペ
ージに分割され、さらに、
複数のアプリケーションを同時に実行するための少なくともの1つのワークス
テーションを含み、前記ワークステーションは前記実行中のアプリケーションに
割当可能な複数のページを含むメモリを有し、
アプリケーションが実行中であるときアプリケーションによって使用可能なペ
ージの状態を示すための局部ページテーブルを各アプリケーションに対して設け
、さらに、
アプリケーションがその現在割当てられたページ中に存在しないページへのア
クセスを要求するとき、ページフォールトを生成する手段と、
ページフォールトに応答して、ページフォールトが生じたアプリケーションの
局部ページテーブルを最初にサーチし、置換え可能なページが見つからなければ
、その後置換え可能なページを見つけるために別の実行中のアプリケーションの
局部ページテーブルをサーチすることによって、要求された時に置換え可能なペ
ージを特定するための手段とを含み、選択すべき他の実行中のアプリケーション
が複数あるとき前記別の実行中のアプリケーションの選択はどれが最もアクティ
ブでないかに基づいて決定され、さらに、
前記別のアプリケーションから得られたときの特定され
た置換え可能なページを、ページフォールトが生じたアプリケーションの局部ペ
ージテーブルに割当てるための手段と、
アクセスされた存在しないページを、特定された置換え可能なページ中に読込
むための手段とを含む、組合せ。
9.最もアクティブでないアプリケーションは実行中のアプリケーションのフ
ォールト動作に基づいて決定される、請求項8に記載の発明。
10.最もアクティブでないアプリケーションは、最も長い期間ページフォー
ルトが生じていないアプリケーションに基づいて決定される、請求項8に記載の
発明。
11.前記存在しないページは、ネットワークを介して別のワークステーショ
ンから得られる、請求項8に記載の発明。
12.各局部テーブルはクロックアルゴリズムに基づいた置換え方式を有する
、請求項8に記載の発明。
13.前記別のアプリケーションの選択はまた、アプリケーションがフォアグ
ラウンドで実行しているかバックグラウンドで実行しているかにも依存している
、請求項8に記載の発明。
14.最もアクティブでないアプリケーションは、実行中のアプリケーション
のページフォールト動作に基づいている、請求項8に記載の発明。
15.前記ネットワークはCTOSネットワークであっ
て、前記ワークステーションはCTOSワークステーションである、請求項8に
記載の発明。
Claims (1)
- 【特許請求の範囲】 1.複数のCTOSワークステーションを含み、あるワークステーションが複 数のアプリケーションを同時に実行することができるCTOSネットワークにお いて、 物理メモリを前記ネットワークに設けるステップと、 前記物理メモリを複数のページに分割するステップと、 アプリケーションがその局部ページテーブルに現在存在していないページへの アクセスを要求するときページフォールトを生成するステップと、 ページフォールトを満たすために置換えが要求されるとき置換え可能なページ を特定するステップとを含み、前記特定するステップは、まずページフォールト が生じたアプリケーションから、またはワークステーション上で実行中の別のア プリケーションから、置換え可能なページを特定することを選択的に可能にする 局部的方式および大域的方式を組合せたものに基づいて行われ、さらに、 前記別のアプリケーションから選択されたときの特定された置換え可能なペー ジを、ページフォールトが生じたアプリケーションに割当てるステップと、 アクセスされた存在していないページを、特定された置換え可能なページ中に 読込むステップとを含む、方法。 2.優先順位を基本にして、局部的置換え方式はクロックアルゴリズムに基づ き、大域的置換え方式は、置換可能なページを別のアプリケーションから奪うこ とに基づく、 請求項1に記載の方法。 3.前記優先順位は前記ワークステーション上で実行するアプリケーションの 相対アクティビティに依存する、請求項2に記載の方法。 4.前記優先順位もまた、アプリケーションがバックグラウンドで動作してい るか、フォアグラウンドで動作しているかに依存する、請求項3に記載の方法。 5.前記置換えは、前記ページフォールトを満たすように要求されるとき実行 中のアプリケーションのどちらが置換え可能なページのためにサーチされるべき かを選択することを含み、選択されたアプリケーションにおける置換え可能なペ ージは、クロックアルゴリズムにしたがって選択される、請求項1に記載の方法 。 6.前記置換えは、前に選択されたアプリケーションが置換えられ得るページ を有さないとき置換え可能なページをサーチすべく別のアプリケーションを選択 する、請求項5に記載の方法。 7.複数のCTOSワークステーションを含み、ワークステーション間のネッ トワーキングがCTOSオペレーティングシステム中に組込まれているCTOS ネットワークにおいて、 前記ネットワークに設けられた物理メモリを含み、前記物理メモリは複数のペ ージに分割され、さらに、 複数のアプリケーションを同時に実行するための少なく ともの1つのワークステーションを含み、前記ワークステーションは前記実行中 のアプリケーションに割当可能な複数のページを含むメモリを有し、 アプリケーションがその現在割当てられたページ中に存在しないページへのア クセスを要求するとき、ページフォールトを生成する手段と、 ページフォールトに応答して、ページフォールトが生じたアプリケーションか ら、またはワークステーション上で実行中の別のアプリケーションから、置換え 可能なページを特定することを選択的に可能にする局部的および大域的置換え方 式を組合せたものに基づいて要求された時に置換え可能なページを特定するため の手段とを含み、さらに、 前記別のアプリケーションから選択されたときの特定された置換え可能なペー ジを、ページフォールトが生じたアプリケーションに割当てるための手段と、 アクセスされた存在しないページを、特定された置換え可能なページ中に読込 むための手段とを含む、組合せ。 8.前記存在しないページは、ネットワークを介して別のワークステーション から得られる、請求項7に記載の発明。 9.優先順位を基本にして、局部的置換え方式は、クロックアルゴリズムに基 づき、大域的置換え方式は、置換え可能なページを別のアプリケーションから奪 うことに基づく、請求項7に記載の発明。 10.前記優先順位は、前記ワークステーション上で実行するアプリケーショ ンの相対アクティビティに依存する、請求項7に記載の発明。 11.前記優先順位もまた、アプリケーションフォアグラウンドで実行してい るかバックグラウンドで実行しているかに依存する、請求項10に記載の発明。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US1706893A | 1993-02-12 | 1993-02-12 | |
| US08/017,068 | 1993-02-12 | ||
| PCT/US1994/001550 WO1994018625A1 (en) | 1993-02-12 | 1994-02-10 | Computer workstation having demand-paged virtual memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08506676A true JPH08506676A (ja) | 1996-07-16 |
Family
ID=21780542
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6518370A Pending JPH08506676A (ja) | 1993-02-12 | 1994-02-10 | デマンドページド仮想メモリを有するコンピュータワークステーション |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP0683909A1 (ja) |
| JP (1) | JPH08506676A (ja) |
| KR (1) | KR960701404A (ja) |
| WO (1) | WO1994018625A1 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2795196B1 (fr) * | 1999-06-21 | 2001-08-10 | Bull Sa | Processus de liberation de pages physiques pour mecanisme d'adressage virtuel |
| KR100755701B1 (ko) | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 내장형 시스템을 위한 요구 페이징 장치 및 방법 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2191917A (en) * | 1986-06-16 | 1987-12-23 | Ibm | A multiple window display system |
| NL8701330A (nl) * | 1987-06-09 | 1989-01-02 | Oce Nederland Bv | Kantoorautomatoseringssysteem. |
-
1994
- 1994-02-10 EP EP94908774A patent/EP0683909A1/en not_active Withdrawn
- 1994-02-10 KR KR1019950703339A patent/KR960701404A/ko not_active Withdrawn
- 1994-02-10 WO PCT/US1994/001550 patent/WO1994018625A1/en not_active Ceased
- 1994-02-10 JP JP6518370A patent/JPH08506676A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP0683909A1 (en) | 1995-11-29 |
| WO1994018625A1 (en) | 1994-08-18 |
| KR960701404A (ko) | 1996-02-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5606685A (en) | Computer workstation having demand-paged virtual memory and enhanced prefaulting | |
| US6948172B1 (en) | Preemptive multi-tasking with cooperative groups of tasks | |
| US7047337B2 (en) | Concurrent access of shared resources utilizing tracking of request reception and completion order | |
| CN1278235C (zh) | 用于向一处理器让与资源的系统 | |
| JP3696960B2 (ja) | 並列演算処理システム及び並列演算処理方法 | |
| EP0798639B1 (en) | Process assignment in a multiprocessor system | |
| US7840965B2 (en) | Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer | |
| US7386619B1 (en) | System and method for allocating communications to processors in a multiprocessor system | |
| US8271989B2 (en) | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages | |
| JP3940404B2 (ja) | マルチスレッド・コンピュータにおけるコンピュータ・データの割振り解除方法、装置、およびプログラム | |
| US7953951B2 (en) | Systems and methods for time division multiplex multithreading | |
| US7853928B2 (en) | Creating a physical trace from a virtual trace | |
| US7613897B2 (en) | Allocating entitled processor cycles for preempted virtual processors | |
| US6925421B2 (en) | Method, system, and computer program product for estimating the number of consumers that place a load on an individual resource in a pool of physically distributed resources | |
| JP2011044165A (ja) | システムにおける要求のスケジューリング | |
| JPH08506676A (ja) | デマンドページド仮想メモリを有するコンピュータワークステーション | |
| US8024738B2 (en) | Method and system for distributing unused processor cycles within a dispatch window | |
| JPH0991257A (ja) | Cpu管理方式 | |
| US6823440B2 (en) | Method and apparatus for isolating frames in a data processing system | |
| JP2000215153A (ja) | Dmaデ―タ転送制御方法及び入出力処理装置 | |
| JPH11161506A (ja) | 情報処理装置のディスパッチ方法、情報処理装置及びその記録媒体 | |
| JPS63233451A (ja) | 主記憶ペ−ジリプレ−ス方式 | |
| Whitcroft | TimWilkinson NickWilliams PeterOsmon Systems Architecture Research Centre City University London England {trs| andy| tim| njw| p. osmon}@ cs. city. ac. uk |