JPH05210568A - Memory manager for operating system of computer - Google Patents

Memory manager for operating system of computer

Info

Publication number
JPH05210568A
JPH05210568A JP25763392A JP25763392A JPH05210568A JP H05210568 A JPH05210568 A JP H05210568A JP 25763392 A JP25763392 A JP 25763392A JP 25763392 A JP25763392 A JP 25763392A JP H05210568 A JPH05210568 A JP H05210568A
Authority
JP
Japan
Prior art keywords
address
memory
domain
operating system
task
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.)
Withdrawn
Application number
JP25763392A
Other languages
Japanese (ja)
Inventor
V Welland Robert
ロバート・ヴィ・ウェランド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of JPH05210568A publication Critical patent/JPH05210568A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Abstract

PURPOSE: To obtain a memory manager for the operating system of a computer device in which the usage of plural address-oriented services for the task of the operating system is supported. CONSTITUTION: Only one address space is provided to an overall system, an unique address-oriented service is related with the set of an address which is not overlapped, the service is partially attained by deciding the set of the address within the address space whose management by the service is permitted. Thus, the unique service can be prevented from managing the same address in a way the address collides against each other. Moreover in detail, a memory manager includes plural domains 112-116 (indicating the address set which is not adjacent in the address space) combined with the address-oriented services, and plural environments.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、一般に、コンピュータ
システムのメモリアドレス管理及び制御の分野に関し、
特に、ドメインベースオペレーティングシステムを有す
る障害駆動、オブジェクト指向コンピュータシステムに
おけるアドレス指向動作の処理及び実行を最適化するメ
モリ管理装置に関する。
FIELD OF THE INVENTION This invention relates generally to the field of memory address management and control for computer systems,
In particular, it relates to a memory management device for optimizing the processing and execution of address driven operations in a fault driven, object oriented computer system having a domain based operating system.

【0002】[0002]

【従来の技術】オペレーティングシステムの最も基本的
なタスクは、アプリケーションプログラムにそれがラン
すべき抽象環境を与えることである。このタスクを実現
した場合に当然現れる結果は、アプリケーションプログ
ラムがオペレーティングシステムの適正環境という「概
念」により限定されることが多く、それは望ましくない
ものである。プログラムの設計がこの環境に従っていな
いと、オペレーティングシステムの用語でプログラムを
表現できるようになるまでプログラムを補整しなければ
ならず、その作業はユーザーにとって不都合であるのみ
ならず、プログラムの効率を低下させるおそれもある。
環境の制限に伴う問題はアプリケーションプログラムに
のみ限られない。オペレーティングシステム自体が特定
のアプリケーションでは不要な仮想環境を維持するため
に、かなり大きなオーバヘッドを招いてしまうことが多
い。もう1つの問題は、多くのオペレーションシステム
により複数なアドレススペースが設けられていることに
関連しており、通常は複数の独立したアドレススペース
があり、そのそれぞれは、コントロールの複数の筋道を
有する。プログラムを互いに隔離するために複数のアド
レススペースを使用できるが、多くの場合にアドレスス
ペースはプログラムを十分に隔離するので、プログラム
が協動するのは難しくなる。その結果、たとえば、共用
コードライブラリの実現は複数のアドレススペースを伴
うときに、伴わないときと比べてはるかに困難である。
The most basic task of an operating system is to give an application program an abstract environment in which it should run. The obvious consequence of accomplishing this task is often undesired, where the application program is often limited by the "concept" of the proper environment of the operating system. If the program design does not follow this environment, the program must be adjusted until it can be expressed in operating system terminology, which is not only inconvenient for the user but also reduces the efficiency of the program. There is a fear.
Problems with environmental restrictions are not limited to application programs. The operating system itself often introduces a significant amount of overhead in maintaining a virtual environment that is not needed by certain applications. Another problem is associated with the provision of multiple address spaces by many operating systems, typically multiple independent address spaces, each with multiple paths of control. Multiple address spaces can be used to isolate programs from each other, but in many cases the address spaces are sufficient to isolate the programs, making it difficult for the programs to work together. As a result, for example, implementing a shared code library is much more difficult with multiple address spaces than without.

【0003】また、従来のオペレーティングシステムは
メモリ管理の領域でも著しく大きな制限を受ける。これ
までの年月の中で、そのようなオペレーティングシステ
ムの最も一般的なメモリ管理機能を支援するのを助ける
ための特定のハードウェアが開発された。特に、メモリ
管理装置(MMU)は、メモリアクセス制御を実行する
のに加えて、現在ではオペレーティングシステムに代わ
って要求ページド仮想メモリの実現を最適化するために
ほぼ汎用の設計となっている。ところが、MMUは従来
からCPUの追加機能であると考えられており、他のシ
ステム設計(オペレーティングシステムなど)の基礎と
なる一体の装置としてではなく、仮想メモリのような特
定のアドレス指向サービスを実行するように指定して設
計されていた。従って、従来のMMUの実現形態は、M
MUがCPUの様々なアドレスに対するアクセスを制御
する方式をも制限するので、より上位レベルのシステム
サービスへのアクセスを確定する負担は全てオペレーテ
ィングシステムに課されることになる。さらに、オペレ
ーティングシステムは、一般に、そのようなサービスを
実現するために使用したより下位レベルの動作に対する
アクセスを許可しないので、それらの動作を利用して他
の追加サービスを実行するのは不可能である。たとえ何
らかのアクセスが許可されたとしても、そのアクセスは
厳しく制限される。たとえば、プログラミングに際し
て、適切な下位レベル動作に対するアクセスを得るだけ
のために、仮想メモリサービスではなくとも仮想メモリ
サービスのように見せるためにコードを書込むことが必
要になるかもしれない。
Also, conventional operating systems are significantly limited in the area of memory management. Over the years, specific hardware has been developed to help support the most common memory management functions of such operating systems. In particular, the memory management unit (MMU), in addition to performing memory access control, is now almost universally designed to optimize the implementation of requested paged virtual memory on behalf of the operating system. However, the MMU has traditionally been considered to be an additional function of the CPU, and does not perform as a unitary device that is the basis of other system designs (such as operating systems) but performs certain address-oriented services such as virtual memory. Was designed to be. Therefore, the conventional MMU implementation is M
Since the MU also limits the way in which the CPU controls access to various addresses, the burden of establishing access to higher level system services is entirely on the operating system. In addition, operating systems generally do not allow access to the lower level operations used to implement such services, making it impossible to utilize those operations to perform other additional services. is there. Even if some access is permitted, that access is severely restricted. For example, in programming, it may be necessary to write code to look like a virtual memory service, but not a virtual memory service, merely to gain access to the appropriate lower level operations.

【0004】先に述べた通り、上記のような設計上の制
限があるため、実行可能であるべきなのにもかかわら
ず、従来の方式を使用したのでは容易に実現できない並
行ガーベッジコレクションなどの追加タスクを実行する
目的でMMUを使用することは困難なのである。そのよ
うな所望の追加タスクをMMUが実行できるようにする
と思われるいくつかのアルゴリズムによる解決策が提案
されたが、それらの方法は、いずれも、CPUの開発や
プログラミングに当たって総合的に見てその魅力を減少
させてしまう問題点を少なくとも1つは抱えていた。た
とえば、Proceedings of the SI
GPLAN’88 Conferenceon Pro
gramming Language Design
andImplementation, ACM SI
GPLAN Notices第23(7)巻(1988
年7月刊)の11〜20ページに掲載されたAndre
w W.Appel, John R.Ellis及び
Kai Liの「Real−time Concurr
ent Collection on Stock M
ultiprocessors」は、従来のMMUを使
用して並行ガーベッジコレクションを実現するためのア
ルゴリズムを説明している。先に述べた通り、この型の
方式に関連する問題点は、CPUでランするオペレーテ
ィングシステムによって課される制限がアルゴリズムの
有効性を抑制してしまうことである。
As mentioned above, due to the above design restrictions, additional tasks such as concurrent garbage collection, which should be feasible but which cannot be easily realized by using the conventional method, should be performed. It is difficult to use MMU for the purpose of performing Although several algorithmic solutions have been proposed that would allow the MMU to perform such desired additional tasks, all of these methods have been comprehensively used in CPU development and programming. It had at least one problem that made it less attractive. For example, Proceedings of the SI
GPLAN'88 Conferenceon Pro
gamming Language Design
and Implementation, ACM SI
GPLAN Notes Volume 23 (7) (1988)
Andre published on pages 11 to 20 of July issue)
w W. Appel, John R. Ellis and Kai Li's "Real-time Concurr"
ent Collection on Stock M
"ultiprocessors" describes an algorithm for implementing concurrent garbage collection using conventional MMUs. As mentioned earlier, a problem associated with this type of scheme is that the restrictions imposed by the operating system running on the CPU limit the effectiveness of the algorithm.

【0005】ガーベッジコレクションを実現するもう1
つの方法は、ACM Symposium on Li
sp and Functional Program
ming(テキサス州オースティンにて、1984年8
月)の235〜246ページに掲載されたDavid
A.Moonの「Garbage Collectio
n in a Large Lisp System」
の中に記載されている。MoonはLispベースCP
Uでガーベッジコレクションを支援するために特殊なハ
ードウェアを利用することを提案した。ところが、この
実現方法はハードウェアのアプリケーションをガーベッ
ジコレクションのための単一のアルゴリズムによる解決
策に限定する。さらに、そのシステムでランし、ガーベ
ッジコレクションとは無関係の他の多くのアルゴリズム
はそのようなシステムから利益を受けることがないであ
ろう。
Another way to realize garbage collection
Two methods are ACM Symposium on Li
sp and Functional Program
ming (Austin, TX, August 1984)
Published on pages 235-246 of the month)
A. Moon's "Garbage Collection"
n in a Large Lisp System ”
It is described in. Moon is a Lisp-based CP
Proposed to utilize special hardware in U to support garbage collection. However, this implementation method limits the application of hardware to a single algorithmic solution for garbage collection. Moreover, many other algorithms running on that system and unrelated to garbage collection would not benefit from such a system.

【0006】[0006]

【課題を解決するための手段】本発明の好適な実施例
は、複数のアドレス指向サービスをオペレーティングシ
ステムのタスクが利用できるようにすることをサポート
する構成を提供するコンピュータのオペレーティングシ
ステム用のメモリマネージャを含む。その構成は、シス
テム全体へ1つだけアドレス空間を提供し、重なり合わ
ないアドレスのセットに独立のアドレス指向サービスを
関連させ、サービスが管理することを許されるそのアド
レス空間内でアドレスのセットを定めることにより部分
的に達成され、それにより、独立のサービスが同じアド
レスを衝突するようなやり方で管理しようとすることを
阻止する。更に詳しくいえば、メモリマネージャはアド
レス指向サービスにおのおの組み合わされる複数のドメ
イン(アドレス空間のおそらく隣接しないアドレスセッ
トをおのおの表わす)と、複数の環境とを含む。各環境
は、そのドメインにより提供されるアドレス指向サービ
スを利用するように、ドメインに対するタスクのアクセ
スを制御する能力を有する。それらのドメインは重なり
合わないから、アドレスは1つのドメインに組み合わせ
ることができるだけである。
SUMMARY OF THE INVENTION A preferred embodiment of the present invention is a memory manager for a computer operating system that provides a configuration that supports making multiple address-oriented services available to operating system tasks. including. The configuration provides only one address space for the entire system, associates independent address-oriented services with non-overlapping sets of addresses, and defines the set of addresses within that address space that the service is allowed to manage. This is partly achieved, thereby preventing independent services from trying to manage the same address in a conflicting manner. More specifically, the memory manager includes a plurality of domains (each representing a possibly non-contiguous set of addresses in the address space) associated with an address-oriented service, and a plurality of environments. Each environment has the ability to control the access of tasks to the domain to utilize the address-oriented services provided by that domain. Addresses can only be combined into one domain, as their domains do not overlap.

【0007】[0007]

【実施例】【Example】

1.0 本発明の全般概要 本発明は、特定の型のオペレーティングシステムをラン
させるCPUと関連して使用するためのメモリ管理装置
に関する。本発明のメモリ管理装置を説明するに当たっ
て正しい基礎知識を与えるために、ここで、そのオペレ
ーティングシステムについて余すところなく説明する。
この特定のオペレーティングシステムが他の型のオペレ
ーティングシステムと明確に異なる点は、以下に欠ける
ところなく説明する新規なメモリ管理アーキテクチャを
採用していることである。障害駆動、オブジェクト指向
コンピュータシステムにおけるアドレス指向動作の処理
と性能を簡略化し且つ最適化するのを助ける新規な要素
に特に注意を向けるのであるが、それらの要素はメモリ
管理装置を介してオペレーティングシステムに組み込ま
れ、「ドメイン」及び「環境」と呼ばれる。コンピュー
タシステム内部のアドレス指向動作の処理と性能をさら
に洗練させ且つ最適化するために、本発明のメモリ管理
装置にも同じ要素が組み込まれている。
1.0 General Overview of the Invention The present invention relates to a memory management device for use in connection with a CPU running a particular type of operating system. In order to provide the correct basic knowledge in describing the memory management device of the present invention, its operating system is now described in full.
The distinction between this particular operating system and other types of operating systems is that it employs a novel memory management architecture, which is described in full below. Particular attention will be paid to novel elements that help to simplify and optimize the processing and performance of fault-driven, address-oriented operations in object-oriented computer systems, which elements are exposed to the operating system via a memory manager. Incorporated and referred to as "domain" and "environment". The same elements are also incorporated into the memory management device of the present invention to further refine and optimize the processing and performance of address-oriented operations within a computer system.

【0008】簡単にいえば、ドメインはシステムアドレ
ススペースを可能な限り不連続である複数のアドレスセ
ットに区分することにより作成される。個々のアドレス
が唯一つのドメインに位置して、各アドレスセットは重
なり合わない。各ドメインは、そのドメインのアドレス
スペースを管理して、それにより、CPUによるメモリ
アクセス動作の実行に影響を及ぼすために使用されるプ
ロトコル又はコントロールのセットによっても定義され
る。先に述べた通り、ドメインと環境については後にさ
らに詳細に説明するが、その前に、ドメインと環境を利
用する周囲雰囲気の背景を明らかにすることが必要であ
ろう。
Briefly, a domain is created by partitioning the system address space into address sets that are as discontinuous as possible. The individual addresses are located in only one domain, and the address sets do not overlap. Each domain is also defined by a set of protocols or controls used to manage the address space of that domain, thereby affecting the performance of memory access operations by the CPU. As mentioned earlier, the domain and environment will be explained in more detail later, but before that, it may be necessary to clarify the background of the surrounding atmosphere that uses the domain and environment.

【0009】1.1 オペレーティングシステムの全般
機能 コンピュータシステムのオペレーティングシステムは、
CPUでランするプログラムの個別実行を具現化する複
数のタスクを管理する。各プログラムは、何らかの指定
の順序で実行すべき動作、すなわち、タスクのセット及
びそれらの動作の実行中に利用すべきデータのセットと
して定義される。オペレーティングシステムは、タスク
がそのプログラムの実行中に利用しうるサービスのセッ
トをさらに提供する。特定の1つのサービスを利用する
タスクは、そのサービスのクライアントタスクと呼ばれ
る。オペレーティングシステムが提供するサービスは、
何らかのクライアントタスクがサービスを要求したとき
に起動されるタスクとして実現できる。特定の1つのサ
ービスを提供する負担を課されるタスクは、そのサービ
スのマネージャタスクと呼ばれる。
1.1 Overall operating system
Functional computer system operating system
It manages multiple tasks that embody individual executions of programs running on the CPU. Each program is defined as an operation to be executed in some specified order, ie a set of tasks and a set of data to be utilized during the execution of those operations. The operating system also provides a set of services that a task can utilize during the execution of its program. A task that uses a particular service is called a client task for that service. The services provided by the operating system are
It can be realized as a task that is started when some client task requests a service. The task of being charged to provide a particular service is called the manager task for that service.

【0010】オペレーティングシステムには数多くの異
なる種類があり、その多くは特定のCPUにおける動作
に合わせて特定して設計されている。そのようなシステ
ムには差異があるにもかかわらず、メモリマネージャ、
タスクマネージャ、プロセス間同期及び入出力マネージ
ャを含む共通の特徴がいくつかある。それらの特徴は当
該技術ではそれぞれ良く知られているが、おそらくはこ
こに挙げた名で知られていないので、それぞれをここで
簡単に説明する。メモリマネージャはアプリケーション
プログラムと、オペレーティングシステムとによるメモ
リアドレスの利用を制御する。タスクマネージャはタス
クを作成し、破壊すると共に、メモリにおけるオペレー
ティングシステムによるタスクの個別実行を管理するよ
うに動作する。プロセス間同期は、タスク間の情報交換
を管理する方式を表わす。入出力マネージャは、コンピ
ュータシステムの拡張を規定する入出力装置と通信し、
その動作を制御する。詳細にいえば、入出力マネージャ
は、オペレーティングシステムが使用するための二次記
憶装置(ディスク記憶装置)の概念を支援する。本発明
は、オペレーティングシステムのメモリマネージャの改
良と関連して使用するためのメモリ管理装置に関する。
There are many different types of operating systems, many of which are specifically designed for operation on a particular CPU. Despite the differences in such systems, memory managers,
There are some common features, including task managers, interprocess synchronization and I / O managers. Each of these features is well known in the art, but probably not under the names listed here, so each is briefly described here. The memory manager controls the use of memory addresses by the application program and the operating system. The task manager operates to create and destroy tasks as well as manage the individual execution of tasks by the operating system in memory. Inter-process synchronization represents a method of managing information exchange between tasks. The I / O manager communicates with the I / O devices that define the expansion of the computer system,
Control its operation. In particular, the I / O manager supports the concept of secondary storage (disk storage) for use by the operating system. The present invention relates to a memory management device for use in connection with an improved operating system memory manager.

【0011】1.2 メモリ管理装置(MMU)の全般
動作 典型的なコンピュータシステムでは、中央処理装置(C
PU)はメモリから命令を取り出し、その命令の中に符
号化されている動作を実行する。1つの動作が1つ又は
2つ以上のアドレス動作から構成されることもあり、そ
こで、CPUはプロセッサアドレスと、所望のメモリ動
作の型を指示するアクセス型とを発生する。通常、アク
セス型は読取り、書込み又は命令取り出しのいずれかの
動作である。読取り動作は、メモリシステムに、アドレ
スが指定する記憶場所からデータを読取り且つそのよう
にして検索したデータをCPUへ転送することを命令す
る。書込み動作は、(アドレス及びアクセス型に加え
て)書込むべきデータを指定アドレスに供給する。命令
取り出し動作は、通常、読取り動作と同じように機能
し、この場合には、検索したデータを命令として使用す
ることを指示するためにアクセス型のみを使用する。
尚、全てのCPU構成が読取り動作と命令取り出し動作
とを区別するとは限らないことに注意すべきである。と
ころが、規約上、あらゆる動作は少なくとも1つのアド
レス動作を実行し、その動作は命令の取り出しそれ自体
である。
1.2 General Memory Management Unit (MMU)
Operation In a typical computer system, a central processing unit (C
PU) retrieves an instruction from memory and performs the operation encoded in the instruction. An operation may consist of one or more address operations, where the CPU generates a processor address and an access type that dictates the type of memory operation desired. Access type is usually either a read, write or instruction fetch operation. The read operation instructs the memory system to read data from the memory location specified by the address and transfer the data so retrieved to the CPU. The write operation supplies the data to be written (in addition to the address and access type) to the specified address. The instruction fetch operation typically functions like a read operation, in which case only the access type is used to indicate that the retrieved data should be used as an instruction.
It should be noted that not all CPU configurations distinguish between read and instruction fetch operations. However, by convention every operation performs at least one address operation, which is the instruction fetch itself.

【0012】従来の多くのコンピュータシステムでは、
MMUによりアドレス動作を管理する。通常、MMUは
仮想アドレス指定を処理し、CPUによる物理メモリア
クセスを制御する。場合によっては、MMUはアドレス
スペースの分離と保護を実行するためにメモリの様々な
部分に対するアクセスを制御する負担をさらに負う。M
MUはCPUが提供したプロセッサアドレス(以下アド
レス又は仮想アドレスという)を、コンピュータシステ
ムの一次メモリであるランダムアクセスメモリ(RA
M)の記憶場所に対応する(メモリ)アドレスに変換す
る。それらの仮想アドレスは、従来は、ルックアップテ
ーブル(「ページテーブル」と呼ばれる)を使用するこ
とによって物理アドレスに変換されていたが、このテー
ブルは非常に大きなものになる場合が多い。RAMに記
憶されている変換テーブルを参照することによるアドレ
ス変換は処理に際してほとんど許容しえないほどのオー
バヘッドを課することがあるので、一般には、近い時点
で利用したアドレス変換を高速キャッシュするのが普通
である。そのようなキャッシュは一般に変換索引バッフ
ァ(TLB)と呼ばれている。TLBは最も近い時点で
使用した仮想アドレスのセットを記憶することにより、
1回の機械サイクルで複数のアドレス変換を実行するこ
とを可能にする。
In many conventional computer systems,
Address operations are managed by the MMU. Typically, the MMU handles virtual addressing and controls physical memory access by the CPU. In some cases, the MMU further bears the burden of controlling access to various parts of memory to implement address space isolation and protection. M
The MU uses a processor address (hereinafter, referred to as an address or virtual address) provided by the CPU as a random access memory (RA) which is a primary memory of a computer system.
Convert to the (memory) address corresponding to the memory location of M). These virtual addresses have traditionally been translated into physical addresses by using a look-up table (called a "page table"), but this table is often very large. Since the address conversion by referring to the conversion table stored in the RAM may impose an almost unacceptable overhead in processing, it is generally preferable to cache the address conversion used at a near time at a high speed. It is normal. Such caches are commonly referred to as translation lookaside buffers (TLBs). TLB remembers the set of virtual addresses used most recently,
Allows multiple address translations to be performed in a single machine cycle.

【0013】要求された仮想アドレスがTLBにおける
物理アドレスへの変換を有していない場合には、その変
換をRAMのページテーブルから検索しなければなら
ず、そこで、その変換をTLBに記憶する。主メモリか
らの変換の検索は、適切なTLBエントリが存在してい
ないことを検出したときに始まる。ページテーブルに適
切な変換情報が見あたらなければ、MMUは「変換障
害」を生成する。ページテーブルに適切な変換情報が見
出されれば、それをTLBにロードし、メモリアクセス
動作は継続する。
If the requested virtual address does not have a translation to a physical address in the TLB, the translation must be retrieved from the RAM page table, where it is stored in the TLB. A search for translations from main memory begins when it detects that the proper TLB entry does not exist. If no suitable translation information is found in the page table, the MMU will generate a "translation failure". If the appropriate translation information is found in the page table, it is loaded in the TLB and the memory access operation continues.

【0014】通常のMMUの構成によれば、TLBは仮
想アドレスごとのアクセス許可をさらに含む。従って、
テーブルエントリが有効である場合、変換エントリのア
クセス許可をCPUアクセス型に照らして検査するので
ある。アクセス型が許可されれば、TLBが提供した物
理アドレスによってメモリアクセスを実行する(以下に
説明するように、他に障害は起こっていないと仮定す
る)。アクセス型が許可されないならば、「許可障害」
を生成し、CPUへ伝送する。
According to a typical MMU configuration, the TLB further includes access permissions for each virtual address. Therefore,
If the table entry is valid, the access permission of the translation entry is checked against the CPU access type. If the access type is granted, a memory access is performed with the physical address provided by the TLB (assuming no other failures have occurred, as described below). If the access type is not allowed, "permission failure"
Is generated and transmitted to the CPU.

【0015】変換障害のような障害を生成する目的は、
1つの命令の実行中に発生した例外条件をCPUに通知
することである。MMUからCPUへ障害が伝送される
と、その結果、現在進行中である動作は取消となり、C
PUは障害処理ルーチンを(多くの場合にベクトルテー
ブルを介して)実行する。動作が取り消されると、通
常、CPUはその障害を起こさせた動作を実行すること
を試みる以前の状態に戻る。障害処理ルーチンは障害の
原因を確定し、その原因に作用する。障害が回復不可能
な障害でない限り、その後、CPUは取り消しの時点か
ら始めて動作の実行を続ける。コンピュータシステムの
中には、数多くの障害が単一のCPU障害に組み合わさ
れるものもある。従って、発生した特定の障害は障害状
態レジスタにより検査される。また、いくつかの障害が
他の障害をマスク(すなわち、禁止)するように、障害
を順位付けしても良い。障害ディスパッチ装置は様々な
障害の源を収集し、障害状態レジスタを維持し、単一の
障害をCPUに印加する。
The purpose of creating a fault, such as a conversion fault, is to
It is to notify the CPU of an exceptional condition that occurs during the execution of one instruction. When a fault is transmitted from the MMU to the CPU, the action currently in progress is canceled and C
The PU executes a fault handling routine (often via a vector table). When the operation is canceled, the CPU typically returns to the state it was in before attempting to perform the failed operation. The fault handling routine determines the cause of the fault and acts on that cause. Unless the fault is a non-recoverable fault, then the CPU continues to execute the operation starting at the point of cancellation. In some computer systems, many faults are combined into a single CPU fault. Therefore, the particular fault that occurred is checked by the fault status register. Also, the faults may be ranked so that some faults mask (ie prohibit) other faults. The fault dispatcher collects various fault sources, maintains a fault status register, and applies a single fault to the CPU.

【0016】2.0 本発明と関連して使用されるオペ
レーティングシステムにおけるメモリアドレス管理 ここで説明するオペレーティングシステムは、メモリア
クセスを制御するためにユーザー(システム設計者)が
所望の機能を構築できるようにする融通性に富んだ汎用
フレームワークを構成する。オペレーティングシステム
は数多くの協動するタスクを含んでいるが、少なくとも
本発明に関して最も重大なタスクのいくつかを挙げる
と、ガーベッジコレクションヒープ、持続オブジェクト
蓄積及び仮想メモリなどのアドレス指向サービスという
ことになる。これらのサービスはそのクライアントに先
に「ドメイン」と呼んだ特別のメモリ領域として提示さ
れ、それらのドメインは特定の方式と行動し、オペレー
ティングシステムのオーバヘッドを相対的に少なく保持
することにより、ユーザーがハードウェアのコストと引
き換えにより自由に機能を利用できるようにする。オペ
レーティングシステムのこの種のメモリアドレス管理
は、アドレス指向サービスのユーザが利用するための特
殊なMMUを必要としないのでアドレス指向サービスの
実行にとくに寄与する。オペレーティングシステムの基
礎となるメモリアドレス管理のこの概念を以下に説明す
る。
2.0 Operations used in connection with the present invention
Memory Address Management in Rating Systems The operating system described herein constitutes a versatile general framework that allows users (system designers) to build desired functionality to control memory access. The operating system includes a number of cooperating tasks, but at least some of the most significant tasks for the present invention are address-oriented services such as garbage collection heap, persistent object storage and virtual memory. These services are presented to their clients as special memory areas, previously referred to as "domains," which act in a particular way and keep the operating system overhead relatively low to allow users to Free the functions at the cost of hardware. This type of memory address management of the operating system is particularly useful for the performance of address oriented services as it does not require a special MMU for users of address oriented services to utilize. This concept of memory address management underlying the operating system is described below.

【0017】2.1 タスク,環境及びドメイン 本発明のオペレーティングシステムのメモリマネージャ
は、複数のアドレス指向サービスの動作を支援するフレ
ームワークを構成するように設計されている。このフレ
ームワークは、一部では、システム全体について単一の
アドレススペースを提供することにより、また、1つの
タスクがアクセスして良いサービスを規定するが、互い
に重なり合わないアドレスのセットを個別のサービスと
関連付けることにより、また、そのアドレススペースの
中に1つのサービスが管理することを許可されるアドレ
スのセットを規定することにより実現されるもので、こ
のため、個別のサービスが同一のアドレスを互いに矛盾
するように管理しようとする事態は阻止される。さらに
詳細にいえば、システムのアドレススペースを、先に説
明したように可能な限り隣接しない複数のアドレスセッ
トを表わすドメインのセットに区分するということにな
る。それらのドメインは重なり合わないので、1つのア
ドレスを単一のドメインと関連させることしかできな
い。メモリマネージャは、アドレススペース、従って、
1つ又は複数のドメインの関連サービスに対するタスク
のアクセスを制御する環境(ここで定義するような)を
さらに利用する。そこで、図1a、図1b及び図1cを
参照すると、オペレーティングシステムがサービスのセ
ットを提供する機能は、タスク(図1b及び図1cのタ
スク16から26の中のタスク0 など)が1つの環境
(環境28及び32の中の環境0 など)を介してアクセ
スする特定のドメイン(図1aのドメイン10から14
の中のドメイン1 など)と1つのサービスと関連付ける
ことにより、メモリマネージャを介して実行される。
2.1 Tasks, Environments and Domains The memory manager of the operating system of the present invention is designed to constitute a framework that supports the operation of multiple address oriented services. The framework, in part, provides a single address space for the entire system and also defines the services that one task may access, but sets a set of addresses that do not overlap each other to separate services. By associating with, and by defining, within that address space, the set of addresses that one service is allowed to manage, so that individual services can share the same address with each other. The situation of trying to manage inconsistently is prevented. More specifically, it means partitioning the address space of the system into sets of domains, which represent multiple sets of addresses that are as non-contiguous as possible, as explained above. Only one address can be associated with a single domain because those domains do not overlap. The memory manager uses the address space, and
It further utilizes an environment (as defined herein) that controls the access of tasks to related services in one or more domains. Thus, referring to FIGS. 1a, 1b and 1c, the ability of the operating system to provide a set of services includes a single task environment (such as task 0 in tasks 16 through 26 of FIGS. 1b and 1c). A particular domain (domains 10 to 14 in FIG. 1a) accessed via environment 0 and the like in environments 28 and 32.
It is executed via the memory manager by associating with one service (eg, domain 1 in.

【0018】ドメインについては以下にさらに説明する
が、ここでは、それらのドメインがそれぞれ1つの関連
するタスクを有することにも注目すべきである。そのタ
スクはマネージャと呼ばれ、その特定のドメインと関連
するサービスを提供する負担を負う、また、ドメイン
は、仮想/物理変換及びアクセス許可を含めたメモリア
クセス動作の実行に影響を及ぼすコントロールのセット
とも関連する。
Although the domains are described further below, it should also be noted here that they each have one associated task. That task is called the manager and is responsible for providing services associated with that particular domain, and the domain is a set of controls that influence the performance of memory access operations, including virtual / physical translation and access permissions. Also related.

【0019】そこで、図2及び図3を参照すると、コン
ピュータシステムにおける環境とドメインの機能をさら
に十分に理解することができる。図2のブロック線図
は、図1に示したタスク、環境及びドメインの機能上の
特徴をさらに示している。ステップ34では、1つのタ
スクについて適正な環境を確定しようとする試みがなさ
れる。そのような環境を確定できるものと仮定すれば
(その点については以下でさらに詳細に論じる)、次の
ステップで、環境はそのタスクがその環境の一部である
ドメインの中にあるか否かを尋ねることになる。そのタ
スクがその環境の中の1つのドメインに存在しているな
らば、ステップ38で、そのタスクの動作の実行を許可
する。そうでない場合には、ステップ40で、そのタス
クの動作を禁止する。
Therefore, referring to FIGS. 2 and 3, it is possible to more fully understand the environment and domain functions in a computer system. The block diagram of FIG. 2 further illustrates the functional features of the tasks, environments and domains shown in FIG. At step 34, an attempt is made to establish the proper environment for a task. Assuming that such an environment can be determined (which will be discussed in more detail below), the next step is whether the environment is in a domain whose task is part of that environment. Will be asked. If the task resides in one domain in the environment, step 38 permits the task's operation to be performed. If not, the operation of the task is prohibited in step 40.

【0020】図3a及び図3bは、本発明並びに図1及
び図2に従って1つのドメインのアドレススペースに対
するタスクのアクセスを制御するためにどこで特定の1
つの環境を利用できるかという2つの例を示す。図3a
の場合、2つのタスク42及び44は、本発明のオペレ
ーティングシステムでランしていると考えられるプログ
ラミング言語Cにより具現化される数多くのタスクを表
わす。それらのタスクは、以下にさらに詳細に説明する
ように、スタックドメイン48や仮想メモリドメイン5
0などの様々なドメインのアドレススペースに対するそ
れらのタスクのアクセスを制御するCランタイム環境4
6の一部を成すであろう。図3bにおいては、2つのタ
スク52及び54は、本発明のオペレーティングシステ
ムでランすると考えられるLispなどの動的言語プロ
グラム言語により具現化される数多くのタスクを表わ
す。図3aに示した状況と同じように、それらのタスク
は、以下にさらに詳細に説明する追加アドレス指定サー
ビスであるガーベッジコレクションヒープドメイン58
や持続オブジェクト蓄積ドメイン60などの様々なドメ
インのアドレススペースに対するそれらのタスクのアク
セスを制御する動的言語ランタイム環境56の一部を成
すであろう。
FIGS. 3a and 3b show a specific one for controlling the access of a task to the address space of one domain according to the invention and FIGS.
Here are two examples of how two environments can be used. Figure 3a
, Two tasks 42 and 44 represent a number of tasks embodied in the programming language C that are considered to be running in the operating system of the present invention. These tasks are performed by the stack domain 48 and the virtual memory domain 5 as described in more detail below.
C run-time environment that controls access of those tasks to address spaces of various domains such as 0
Will form part of six. In FIG. 3b, two tasks 52 and 54 represent a number of tasks embodied by a dynamic language programming language such as Lisp, which is believed to run in the operating system of the present invention. Similar to the situation shown in FIG. 3a, those tasks are the additional addressing service Garbage Collection Heap Domain 58, which is described in more detail below.
And the persistent object storage domain 60, and will form part of the dynamic language runtime environment 56 that controls access of those tasks to the address spaces of various domains.

【0021】2.2 アドレス管理ツール 本発明に関していえば、アドレス管理ツールには制約
と、マッピングという主要な2つの種類がある。以下に
それらのツールについて説明するが、その説明は、ドメ
インを利用する周囲雰囲気がどのようなものであるか、
また、先に概要を述べたいくつかのアドレス指向サービ
スがこの周囲雰囲気の中でどのように動作するかを定義
する上で助けとなるはずである。ただし、それらのツー
ルを説明するのに先立って、少なくとも障害駆動コンピ
ュータシステムについて、本発明のオペレーティングシ
ステムに関し、障害を説明することも必要である。障害
とは、1つの命令の実行により生成される事象である。
適切な条件に適合すれば、この実行プロセスは停止し、
障害を信号で報知する。その信号は、通常、障害の型
と、命令のオペランドとに確定される通りに、1つのド
メインのマネージャに供給される。状況に応じて、障害
を処理した後に命令を再開しても良い。
2.2 Address Management Tool With respect to the present invention, there are two main types of address management tools: constraints and mapping. We'll discuss those tools below, but we'll talk about what the atmosphere is like using the domain.
It should also help define how some of the address-oriented services outlined above work in this ambient atmosphere. However, prior to describing those tools, it is also necessary to describe the failure, at least with respect to the failure-driven computer system, with respect to the operating system of the present invention. A failure is an event generated by the execution of one instruction.
If the appropriate conditions are met, this running process will stop,
Signal a fault. The signal is typically provided to the manager of one domain, as determined by the type of fault and the operand of the instruction. Depending on the situation, the instruction may be restarted after the fault is handled.

【0022】2.2.1 制約 制約は許可しうるアドレス動作に制限を加える。制約は
大域制約と、アクセス制御障壁と、制御流れ障壁とを含
む。以下にさらに詳細に説明するように、大域制約は1
つ又は複数のドメイン規則子と、アドレス動作のアクセ
ス型に関する情報とを受け入れる。そこで、大域制約
は、アクセス違反の検出時に、障害を送り出す。障壁は
読取りアクセスの制限、又は書込みアクセスの制限、又
はアドレスの流れの制限、もしくはドメイン間の制御の
流れの制限である。障壁の侵害は障害を信号により報知
させ、その結果、何らかのアクションが実行されること
になる。さらに詳細にいえば、障壁には3つの種類があ
る。(i) 読取り障壁はタスクが記憶場所からデータを
読取るのを制限する。(ii)書込み障壁はタスクが1つ
のドメインに位置しているアドレスを別のドメインに書
込むのを制限する。(iii)制御流れ障壁はドメイン間
のプログラムカウンタ運動を制限する。書込み障壁と制
御流れ障壁はドメイン間の関係を調整するので、クロス
ドメイン制限と呼ばれる。書込み障壁は、書込むべきデ
ータがアドレスである場合にのみ適用される。書込み障
壁を実現するために、システムはポインタデータと非ポ
インタデータとを明確に区別することができなければな
らない。これは、ガーベッジコレクタなどのアドレス指
向サービスに共通する必要条件である。
2.2.1 Constraints Constraints place restrictions on the address operations that can be allowed. The constraints include global constraints, access control barriers, and control flow barriers. As explained in more detail below, the global constraint is 1
It accepts one or more domain rulers and information about the access type of address operation. Therefore, the global constraint issues a fault when an access violation is detected. Barriers are read access restrictions, write access restrictions, address flow restrictions, or control flow restrictions between domains. Violation of the barrier will signal a failure, resulting in some action being taken. More specifically, there are three types of barriers. (I) Read barriers limit tasks from reading data from memory locations. (Ii) Write barriers restrict tasks from writing addresses located in one domain to another domain. (Iii) Control flow barriers limit program counter movement between domains. Write barriers and control flow barriers are called cross-domain restrictions because they regulate the relationships between domains. The write barrier applies only if the data to be written is an address. To implement the write barrier, the system must be able to clearly distinguish pointer data from non-pointer data. This is a common requirement for address-oriented services such as garbage collectors.

【0023】2.2.2 マッピング 命令の実行中、アドレスについて様々な変換が実行され
る。マッピングはそれらの変換を規定する。マッピング
は、以下にさらに詳細に説明するように、ドメイン分類
子と関連して動作する。変換が制約を現示すると、その
制約をアドレス動作の型と比較する。変換が欠落してい
れば、変換障壁を生成する。最も重要なマッピングは、
仮想アドレスから物理アドレスに変換するために使用さ
れる仮想アドレスから物理アドレスへのマッピングと、
あるアドレスに許可されたアクセスの型を確定するため
に使用される仮想アドレスから許可へのマッピングであ
る。
2.2.2 During the execution of mapping instructions, various translations of addresses are performed. Mappings define those transformations. The mapping operates in conjunction with a domain classifier, as described in further detail below. When the translation reveals a constraint, the constraint is compared with the type of address operation. If the conversion is missing, create a conversion barrier. The most important mapping is
A virtual-to-physical address mapping used to translate virtual to physical addresses, and
A virtual address-to-grant mapping used to determine the type of access granted to an address.

【0024】2.3 アドレス指向サービス 本発明を使用することにより、数多くの異なる種類のア
ドレス指向サービスを実現できるであろう。それらのサ
ービスのいくつかについては、なお、考えなければなら
ない。それらのサービスの多くは当該技術ではほぼ知ら
れているが、従来の文献には混乱を招くような用語又は
互いに矛盾する用語で説明されている場合が多い。従っ
て、本発明に関してそれらのサービスの意味を明確にす
るために、次に、本発明のアドレス管理のモデルとして
提示されるいくつかのアドレス指向サービスを説明す
る。
2.3 Address Oriented Services Many different types of address oriented services could be realized using the present invention. We still have to think about some of those services. Although many of these services are well known in the art, they are often described in conventional literature in terms that are confusing or inconsistent with each other. Therefore, in order to clarify the meaning of those services with respect to the present invention, some address-oriented services presented as a model of the address management of the present invention will be described next.

【0025】2.3.1 仮想メモリ 仮想メモリサービスにより、オペレーティングシステム
が実行中であるプログラムは、コンピュータシステムで
実際に物理RAMを利用可能である場合より多くのメモ
リをRAMとして有効に使用することができる。仮想メ
モリは、実際には、ハードディスクドライブなどの大容
量記憶装置のメモリの一部である。従って、仮想メモリ
はRAMに関して仮想であるにすぎない。ところが、仮
想メモリサービスのクライアントはこの仮想メモリをそ
れが全く物理的に利用可能なRAMであるかのように使
用する。仮想アドレススペースは、RAMのデータの一
部を大容量記憶装置へ「スワップアウト」することによ
り作成される。従来、この仮想メモリは複数のページと
して編成されていた。各ページは、RAMの特定の記憶
場所とそれぞれ相関している規定の数のバイトから構成
される。仮想メモリサービスは、クライアントが既にデ
ィスクへスワップアウトされていた仮想メモリのページ
をアクセスしようとする試みを中断し、それらのページ
をRAMへスワップバックし(且つ可能であれば、余地
が残されていない場合にはいくつかのページをRAMか
らスワップアウトし)、次にクライアントを進行させる
ことにより動作する。
2.3.1 Virtual Memory The virtual memory service allows programs running on the operating system to effectively use more memory as RAM than if physical RAM was actually available on the computer system. You can Virtual memory is actually part of the memory of a mass storage device such as a hard disk drive. Therefore, virtual memory is only virtual with respect to RAM. However, clients of the virtual memory service use this virtual memory as if it were totally physically available RAM. The virtual address space is created by "swapping out" some of the data in RAM to mass storage. Traditionally, this virtual memory has been organized as pages. Each page consists of a defined number of bytes that are each associated with a particular memory location in RAM. The virtual memory service interrupts attempts by clients to access pages of virtual memory that have already been swapped out to disk and swaps those pages back into RAM (and leaves room, if possible). If not, swap some pages out of RAM) and then run the client.

【0026】物理メモリのページにマッピングされた仮
想メモリのページは「有効」ページと呼ばれ、関連する
物理メモリをもたず、割り付けされないか又はディスク
へスワップアウトされる仮想メモリのページは「無効」
ページと呼ばれる。クライアントが無効ページをアクセ
スしようとすると、通常、その仮想メモリサービスはM
MUにより通知され、MMUは「変換障害」と呼ばれる
障害を発行する。変換障害の通知に際して、仮想メモリ
サービスは物理RAMをページにマッピングし、RAM
のページを記憶装置から読取った適切なデータで充填
し、クライアントがそれらのページを自由にアクセスで
きるようにページを解放する。物理RAMが不足してき
たときには、仮想メモリはいくつかの有効ページを取り
出して、それらをスワップアウトすることにより、再
び、クライアントがそれらのページをアクセスするのを
阻止しなければならない。
A page of virtual memory that is mapped to a page of physical memory is called a "valid" page, and a page of virtual memory that has no associated physical memory and is not allocated or swapped out to disk is an "invalid" page. "
Called a page. When a client tries to access an invalid page, its virtual memory service is usually M
Notified by the MU, the MMU issues a fault called a "translation fault". Upon notification of a conversion failure, the virtual memory service maps physical RAM to pages
The pages with the appropriate data read from storage and free the pages so the client can access them freely. When physical RAM is exhausted, virtual memory must fetch some valid pages and swap them out to prevent clients from accessing those pages again.

【0027】本発明に関していえば、単純なページ形仮
想メモリサービスはそのドメインについてのアドレスマ
ッピングを操作することによって動作する。このサービ
スは利用可能な物理メモリをそのドメインの有効な(ス
ワップインされた)仮想メモリにマッピングし、スワッ
プアウトされた仮想ページはマッピングしない。スワッ
プインされてから変更のなかったページは、スワップア
ウトされるときに、ディスクに書込まれる必要がないの
で、そのような単純な実現形態は必要な以上のディスク
書き込みを実行する。クライアントに新たにスワップイ
ンしたページに対する読取り専用許可を与えることによ
り、クライアントがそれに書込みするときにサービスを
通知することができる。そこで、そのページを「ダーテ
ィ」であるとマーキングし、読取り・書込み許可を割り
当てることができる。ダーティなページのみをディスク
に書込むだけで良い。従って、さらに複雑な仮想メモリ
サービスはそのドメインの許可マッピング並びにアドレ
スマッピングを操作することになる。
With respect to the present invention, a simple paged virtual memory service operates by manipulating the address mapping for its domain. This service maps the available physical memory to valid (swapped-in) virtual memory for that domain, not swapped-out virtual pages. Such simple implementations perform more disk writes than necessary because pages that have been swapped in and unchanged have not to be written to disk when swapped out. By giving the client read-only permission for the newly swapped in page, the service can be advertised when the client writes to it. The page can then be marked as "dirty" and assigned read / write permission. You only need to write dirty pages to disk. Thus, a more complex virtual memory service will manipulate the permission mappings as well as the address mappings for that domain.

【0028】2.3.2 ガーベッジコレクタ ガーベッジコレクタサービスに関していえば、ガーベッ
ジは「正当な」言語動作によりもはやアクセス不可能で
ある記憶装置である。ガーベッジコレクタサービスはガ
ーベッジを見出し、その記憶装置をオペレーティングシ
ステムにより使用するために利用できるようにする。多
くのガーベッジコレクタサービスは、ガーベッジではな
い全ての記憶装置オブジェクトを見出し、残りを排除す
ることによりこれを実行する。それらの「非ガーベッ
ジ」オブジェクトは、大域変数と、全てのタスクのプロ
セッサ状態とを含むと考えられるルートオブジェクトの
セットから始めて、システムの記憶装置オブジェクトに
含まれている全てのポインタを再帰的にたどることによ
り見出される。ガーベッジコレクタサービスにはいくつ
かの異なる種類があり、次にその3つを説明する。
2.3.2 Garbage Collector With respect to the garbage collector service, garbage is storage that is no longer accessible due to "legitimate" linguistic behavior. The garbage collector service finds garbage and makes its storage available for use by the operating system. Many garbage collector services do this by finding all storage objects that are not garbage and eliminating the rest. These "non-garbage" objects recursively follow all pointers contained in the system's storage objects, starting with a set of root objects that are considered to contain global variables and the processor state of all tasks. To be found. There are several different types of garbage collector services, three of which are described next.

【0029】2.3.2.1 停止−複写ガーベッジコ
レクタ 停止−複写ガーベッジコレクタサービスによれば、メモ
リを「フロムスペース」と、「トウ−スペース」と呼ば
れる2つの領域に分割する。通常の実行中、オブジェク
トはトウ−スペースに存在しており、フロムスペースは
使用されない。トウ−スペースを使用しつくすと(又は
ほとんど使用しつくすと)、処理は停止する。そこで、
スペースのアイデンティティを交換(フリップ)し、そ
のためい、フロムスペースはトウ−スペースになり、ト
ウ−スペースはフロムスペースになる。次に、ルートオ
ブジェクトをトウ−スペースに複写し、そのトウ−スペ
ースのオブジェクトを走査して、フロムスペースに対す
るポインタを求める。そのようなポインタが見出される
と、フロムスペースで参照されたオブジェクトをトウ−
スペースの終わりに複写し、そこで、それを最終的に走
査し、走査中のオブジェクトのポインタを更新して、参
照されたオブジェクトの新たな記憶場所を参照する。複
写した各オブジェクトの代わりに前向きポインタを残す
ので、そのオブジェクトに対する後の参照を更新するこ
とができる。上記のプロセスは到達しうるあらゆるオブ
ジェクトの全てをトウ−スペースに複写し、コピーの記
憶場所を参照するためにオブジェクトの全てのポインタ
を更新するという効果をもつ。到達しうるオブジェクト
の全てが複写され終わったとき、フロムスペースに残っ
ているオブジェクトは、いずれも、ガーベッジであると
考えられ、そこで、フロムスペースを再生し、処理を再
開し、ガーベッジコレクタサービスを繰り返す。
2.3.2.1 Stop-Copy Garbageco
According to the rector stop-copy garbage collector service, memory is divided into two areas called "from space" and "toe space". During normal execution, the object is in toespace and no fromspace is used. When the tow space is exhausted (or almost exhausted), the process stops. Therefore,
Flip the identities of the spaces, which is why Fromspace becomes To-Space and To-Space becomes Fromspace. Next, the root object is copied to the toe space and the objects in the toe space are scanned to find a pointer to the from space. When such a pointer is found, the referenced object in fromspace is downloaded.
Copy at the end of the space, where it is finally scanned and the pointer of the object being scanned is updated to refer to the new storage location of the referenced object. A forward pointer is left in place of each duplicated object so that later references to that object can be updated. The above process has the effect of copying all of the reachable objects into to-space and updating all pointers of the objects to reference the storage location of the copy. When all reachable objects have been copied, any remaining objects in the fromspace are considered to be garbage, so the fromspace is reclaimed, processing is resumed, and the garbage collector service is repeated. ..

【0030】2.3.2.2 並行コレクタ 並行ガーベッジコレクタサービスは、(a)ガーベッジ
コレクションが起こっている間にクライアントはランを
停止する必要がないこと;及び(b)クライアントはフ
ロムスペースにあるアドレスを知ることを許可されず、
従って、ガーベッジコレクションが不完全であるか否か
を告げることができないという必要条件を強いることを
除いて、停止−複写ガーベッジコレクタサービスに似て
いる。クライアントがフロムスペースのアドレスを知る
(読取る)能力に課される制限は読取り障壁であり、こ
れはそのドメインのアドレスから許可へのマッピングを
操作することにより実現される。フリップ後、フロムス
ペースにアドレスを含んでいる可能性のある全てのメモ
リは、クライアントの読取りアクセスをターンオフする
ことにより、クライアントのアクセスから保護される。
その後、複写プロセスが始まる。トウ−スペースのペー
ジを走査し終わったとき、そのページの全てのポインタ
はトウ−スペースポインタに変換されている。すなわ
ち、クライアントはフロムスペースのアドレスを見ずに
メモリのそのページをアクセスできるので、そのページ
に対する保護を取り除くことができる。そのため、クラ
イアントが保護ページをアクセスしようとすると、アク
セスは中断され、コレクタが信号により報知される。コ
レクタは直ちに走査へ進み、そのページを変換して、そ
の保護を取り除き、クライアントが動作を進行できるよ
うにする。
2.3.2.2 Concurrent Collector The concurrent garbage collector service (a) does not require the client to stop running while garbage collection is occurring; and (b) the client is in fromspace. Not allowed to know the address,
Therefore, it is similar to the stop-copy garbage collector service, except that it imposes the requirement that it cannot tell if garbage collection is incomplete. A limitation placed on the ability of a client to know (read) an address in Fromspace is a read barrier, which is accomplished by manipulating the domain's address-to-authorization mapping. After the flip, all memory that may contain addresses in from space is protected from client access by turning off client read access.
Then the copying process begins. When the page in tow-space has been scanned, all pointers on that page have been converted to to-space pointers. That is, the client can access that page of memory without looking at the address of the from-space, thus removing the protection for that page. So when a client tries to access a protected page, the access is interrupted and the collector is signaled. The collector immediately proceeds to scan and translates the page, removing its protection and allowing the client to proceed.

【0031】2.3.2.3 世代−回収コレクタ 多くのオブジェクトは割り付けの直後にガーベッジにな
るので、古いオブジェクトは新しいオブジェクトと比べ
てガーベッジになる確率が低い。世代−回収コレクタは
その労力をより新しいオブジェクトに集中することによ
りこの現象を利用する。メモリを世代と呼ばれる複数の
領域に分割するのであるが、それらの領域は年代順に配
列しており、個別に回収(ガーベッジコレクション)可
能である。オブジェクトはより新しい世代で作成され
る。あるオブジェクトが数回の回収を経て生き残ると、
そのオブジェクトは次の順位の世代へ移動する。古い世
代は新しい世代と比べて、回収される頻度が少ない。世
代を個別に回収するためには、コレクタは1つの世代の
中で他の世代から参照されるオブジェクトがどれである
かを確定することができなければならない。これは、そ
れらのオブジェクト自体の世代ではそれらのオブジェク
トを参照することが起こらないとしても、それらのオブ
ジェクトを集めてはならないからである。これを実行す
るために、コレクタは古い世代から新しい世代を指示す
るポインタを追跡すること、言いかえれば、「ホーム」
世代を離れるアドレスを検出することが必要である。こ
れはアドレス流れ障壁を構成することにより実行される
のであるが、その場合、各世代に1つのドメインを割り
当てて、1つのドメインのアドレスを別のドメインの記
憶場所に書込もうとする動作を妨げることになる。ま
た、オブジェクトがより新しいオブジェクトを参照する
ことはまれであるので、古い世代から新しい世代への参
照を記録することのみが可能であり、それはほとんどオ
ーバヘッドを伴わずに実行できる。新しいオブジェクト
からより新しいオブジェクトへの参照は記憶されること
がないので、1つの世代を回収するときには、それより
新しい全ての世代を同時に回収することが必要であり、
それには多くの追加労力を要さない。
2.3.2.3 Generation-Recovery Collector Since many objects are garbage immediately after allocation, old objects are less likely to be garbage compared to new objects. The generation-recovery collector takes advantage of this phenomenon by focusing its efforts on newer objects. The memory is divided into a plurality of areas called generations, and these areas are arranged in chronological order and can be individually collected (garbage collection). Objects are created in a newer generation. When an object survives several collections,
The object moves to the next generation. Older generations are collected less frequently than newer generations. In order to retrieve generations individually, the collector must be able to determine which objects in one generation are referenced by other generations. This is because they should not be aggregated, even if references to them do not occur in the generation of those objects themselves. To do this, the collector keeps track of pointers pointing from the old generation to the new generation, in other words, "home".
It is necessary to detect addresses that leave generations. This is done by constructing an address flow barrier, in which case one domain is assigned to each generation and an attempt is made to write the address of one domain to a memory location of another domain. It will interfere. Also, since objects rarely refer to newer objects, it is only possible to record references from the old generation to the new generation, which can be done with little overhead. Since a reference from a new object to a newer object is never remembered, when retrieving one generation it is necessary to retire all newer generations at the same time,
It does not require much additional effort.

【0032】2.3.3 持続オブジェクト蓄積 本発明に関していえば、持続オブジェクト蓄積は大容量
記憶装置に保持されているオブジェクトの集合体を意味
する。それらのオブジェクトのアドレスはメモリのアド
レスと同じフォーマットであるとは限らず(たとえば、
蓄積アドレスは64ビットの長さであるのに対し、メモ
リアドレスは32ビットのみであることも起こる)、そ
れらのオブジェクトがこの変更フォーマットにポインタ
を含んでいることもあるが、クライアントはそれらのオ
ブジェクトを、依然として、オブジェクトが単純に有用
フォーマットでメモリに存在しているかのように、メモ
リアドレスのフォーマットのポインタによってアクセス
する。その蓄積が開放されると、蓄積のルートオブジェ
クトをメモリへ読取り、メモリフォーマットに変換す
る。仮想アドレススペースをレートオブジェクトにより
参照されるオブジェクトに割り付けるが、それに物理メ
モリをマッピングしないので、クライアントがこのスペ
ースに対して読取り又は書込みを実行しようとするたび
に、そのサービスを通知することになる。通知に際し
て、サービスは適切なオブジェクトをメモリへ読取っ
て、それを変換することにより、先の場合と同様にその
オブジェクトにより参照されるオブジェクトに対してス
ペースを割り付け、このプロセスを繰り返してゆく。
2.3.3 Persistent Object Storage For the purposes of the present invention, persistent object storage refers to the collection of objects held in mass storage. The addresses of those objects are not necessarily in the same format as the addresses in memory (for example,
The stored address is 64 bits long, while the memory address may only be 32 bits.) These objects may contain pointers in this modified format, but the client may Is still accessed by a pointer in the format of the memory address as if the object simply existed in memory in a useful format. When the store is released, the store's root object is read into memory and converted to memory format. It allocates the virtual address space to the object referenced by the rate object, but does not map physical memory to it, so that whenever a client attempts to read or write to this space, it will advertise its service. Upon notification, the service reads the appropriate object into memory and translates it to allocate space for the object referenced by that object, as before, and repeats this process.

【0033】上述の種類の蓄積は上記の全てのサービス
の機能を含む。たとえば、要求に応じて持続オブジェク
トを変換することにより、クライアントが持続アドレス
を見るのを阻止する。このように、そのサービスは、ク
ライアントがフロムスペースのアドレスを見るのを阻止
する並行ガーベッジコレクタに類似している。蓄積はそ
のドメインの許可マッピングを操作して、未変換ページ
に対する読取り及び書込みを妨げる。蓄積は、メモリに
存在している蓄積の部分に物理メモリを動的に割り当て
るという点で、仮想メモリサービスにも類似している。
蓄積はそのドメインのアドレスマッピングを操作して、
必要とされるところで物理メモリを割り当てる。また、
世代−回収ガーベッジコレクタと同じように、蓄積はク
ロスドメインアドレス動作を検出しなければならない。
詳細にいえば、蓄積は持続オブジェクトから一時オブジ
ェクトへのポインタに関して知る必要があるので、それ
らの一時オブジェクトを持続オブジェクトにすることが
でき、それはアドレス流れ障壁である。
Storage of the type described above includes the functionality of all the services described above. Preventing clients from seeing persistent addresses, for example, by converting persistent objects on demand. Thus, the service is similar to a concurrent garbage collector that blocks clients from seeing the address in fromspace. Accumulation manipulates the domain's permission mapping to prevent reads and writes to untranslated pages. Storage is also similar to virtual memory services in that it dynamically allocates physical memory to the portion of storage that is resident in memory.
Accumulation manipulates the address mapping for that domain,
Allocate physical memory where needed. Also,
Like the generation-recovery garbage collector, the store must detect cross-domain address operations.
In particular, accumulations need to know about pointers from persistent objects to temporary objects, so they can be made persistent objects, which is an address flow barrier.

【0034】3.0 オペレーティングシステムのメモ
リマネージャの形式モデル そこで、図4及び図5を参照すると、本発明のオペレー
ティングシステムのメモリマネージャの動作を表わすブ
ロック線図が示されている。図4及び図5は概略図であ
り、それを本発明がハードウェアで実現されることを示
唆するものと解釈することもできるであろうが、図4及
び図5のブロックはソフトウェアで実現される本発明の
構造素子を表わそうとしている。当然のことながら、図
示した流れに類似する概略流れに従うとするならば、本
発明をハードウェア又はハードウェアとソフトウェアの
組み合わせによって実現できるであろう。しかしなが
ら、オペレーティングシステムは通常はソフトウェアで
実現されるので、そのようなオペレーティングシステム
のメモリマネージャも同様にソフトウェアで実現するの
が好ましい。ただし、実現の方法としていずれを採用す
るかにかかわらず、図4及び図5はオペレーティングシ
ステムのメモリマネージャの中で使用するようなドメイ
ンと環境の概念を十分に例示する働きをしている。
3.0 operating system notes
Formal Model of Remanager Referring now to FIGS. 4 and 5, there is shown a block diagram illustrating the operation of the memory manager of the operating system of the present invention. 4 and 5 are schematic diagrams and could be interpreted as suggesting that the present invention is implemented in hardware, the blocks in FIGS. 4 and 5 are implemented in software. It is intended to represent a structural element of the invention according to the invention. Of course, the present invention could be implemented by hardware or a combination of hardware and software, if following a general flow similar to that shown. However, since operating systems are typically implemented in software, it is preferred that memory managers for such operating systems be implemented in software as well. However, regardless of which implementation method is employed, FIGS. 4 and 5 serve to fully illustrate the concept of domains and environments as used within the memory manager of an operating system.

【0035】そこで、図4を参照すると、タスク100
の実行中、タスクがランしている環境102の指定、タ
ーゲットアドレス104、アクセス型106及び必要に
応じてメモリ動作と関連するデータ108という情報信
号をオペレーティングシステムに供給するメモリ動作を
実行する。その後、その情報はオペレーティングシステ
ムのメモリマネージャによりメモリ動作の実行を制御す
るために使用される。ドメイン分類子110はターゲッ
トアドレス104を受信し、そのターゲットアドレス1
04が存在しているドメインを確定する。たとえば、ド
メイン0 112のように多数のドメインがあって良く、
ドメイン1 114からドメインn 116はオペレーティ
ングシステムのドメインを構成する。ターゲットアドレ
ス104が存在しているドメインをドメイン分類子11
0が確定できない場合には、ドメイン分類子110はド
メイン障害信号118を発生し、タスク100に関する
障害ディスパッチ120へ送信する。障害ディスパッチ
120については以下にさらに説明する。ターゲットア
ドレス104に関してドメインを見出せる場合には、ド
メイン分類子110によりドメイン規則子信号122を
発生し、それを環境制御装置124と、ドメインセレク
タ126とに伝送する。
Thus, referring to FIG. 4, task 100
During the execution of the task, a memory operation is performed which supplies the operating system with information signals: specification of the environment 102 in which the task is running, target address 104, access type 106 and optionally data 108 associated with the memory operation. The information is then used by the operating system's memory manager to control the execution of memory operations. The domain classifier 110 receives the target address 104 and outputs the target address 1
Establishes the domain in which 04 exists. There can be many domains, for example domain 0 112,
Domain 1 114 through Domain n 116 make up the operating system domain. The domain in which the target address 104 exists is the domain classifier 11
If 0 cannot be determined, the domain classifier 110 generates a domain fault signal 118 and sends it to the fault dispatch 120 for task 100. Fault dispatch 120 is described further below. If the domain can be found for the target address 104, the domain classifier 110 generates a domain ruler signal 122 and transmits it to the environmental controller 124 and the domain selector 126.

【0036】環境制御装置124はタスク100から環
境規則子102を受け取り、ドメイン規則子122と共
に、ドメイン規則子122が指示するドメインがタスク
の環境の一部であるか否かを判定する。ドメインがタス
クの環境の一部でない場合、ドメインアクセス侵害信号
128を発生し、障害ディスパッチ120へ送信する。
そうでなければ、権限付与信号130を発生し、ドメイ
ンセレクタ126へ送信する。そのようにして権限を付
与された後、ドメインセレクタ126はドメイン規則子
122を使用して、ドメイン分類子110により指定さ
れたドメインを複数のイネーブル線132の中の1つを
介してイネーブルする。
The environment controller 124 receives the environment ruler 102 from the task 100 and, together with the domain ruler 122, determines whether the domain pointed to by the domain ruler 122 is part of the task environment. If the domain is not part of the task's environment, a domain access violation signal 128 is generated and sent to the fault dispatch 120.
Otherwise, the authorization signal 130 is generated and sent to the domain selector 126. After being so authorized, domain selector 126 uses domain ruler 122 to enable the domain specified by domain classifier 110 via one of a plurality of enable lines 132.

【0037】ドメイン112から116のそれぞれは実
行中のタスク100から環境規則子102と、ターゲッ
ト仮想アドレス104と、アドレス型106とを受け取
る。各ドメインは別個のイネーブル線132を有し、ド
メイン規則子122により指示されたドメインにのみ、
実際に、イネーブル線132を介してイネーブル信号が
供給される。イネーブル後、ドメイン112などのドメ
インは所望のメモリ動作を実行すべきか否かを判定す
る。メモリ動作を実行すべき場合、ドメインは、メモリ
動作イネーブル信号136と共に、ターゲットアドレス
104に対応する物理アドレス134を発生する。OR
ゲート137を通過した後、イネーブル信号136はメ
モリ138へ伝送される。メモリ138はタスク100
のアクセス型106をさらに受け取る。さらに、アクセ
ス型106に応じて、データ108をタスク100から
メモリ138に受信するか、又はメモリ138からタス
ク100へ出力する。ドメイン112がメモリ動作を実
行すべきでないと判定すると、ドメイン112はアクセ
ス侵害信号140を発生し、この信号はORゲート14
2を通過した後に障害ディスパッチ120へ伝送され
る。障害ディスパッチ120はドメイン障害118、ド
メインアクセス侵害128又はアクセス侵害140のい
ずれかを受け取ると、タスク100へ障害信号144を
発行して、タスク100の実行を停止する。
Each of the domains 112-116 receives an environment ruler 102, a target virtual address 104, and an address type 106 from the running task 100. Each domain has a separate enable line 132 and only for the domain indicated by the domain ruler 122,
In fact, the enable signal is supplied via the enable line 132. After enabling, a domain, such as domain 112, determines whether it should perform the desired memory operation. If a memory operation is to be performed, the domain will generate a physical address 134 corresponding to the target address 104 along with the memory operation enable signal 136. OR
After passing through the gate 137, the enable signal 136 is transmitted to the memory 138. Memory 138 is task 100
Further access type 106 of Further, the data 108 is received from the task 100 to the memory 138 or output from the memory 138 to the task 100 depending on the access type 106. If domain 112 determines that it should not perform the memory operation, domain 112 generates an access violation signal 140, which is OR gate 14
It is transmitted to the fault dispatch 120 after passing 2. Upon receiving either a domain fault 118, a domain access violation 128 or an access violation 140, the fault dispatch 120 issues a fault signal 144 to the task 100 to stop the task 100 from executing.

【0038】また、本発明によれば、各ドメインは1つ
のメモリ動作の実行を制御するための総合的な所定の規
則のセットに対応することに注意すべきである。ドメイ
ンが別のドメインからの異なるアドレス指向サービスを
実行するという範囲の中では、そのサービスを規定する
規則は他のサービスの間の規則とは異なる。そのような
種類の規則はドメイン依存規則である。ドメインが仮想
/物理アドレス変換のように他のドメインと同一の機能
を実行するという意味では、メモリ動作の実行を制御す
る規則は各ドメインについて同一である。それらの規則
はドメイン独立規則である。次に図5を参照して、ドメ
インの特定の動作と、上記の規則の特定の実現形態とを
さらに説明する。先に指示した通り、図4を参照する
と、ドメイン112のようなドメインは環境規則子10
2と、ターゲット仮想アドレス104と、アクセス型1
06と、イネーブル132とを受け取る。本発明に従っ
てこの情報を処理した後、ドメイン112がそのような
動作を実行するためにイネーブルされているならば、ド
メインは物理アドレス134及びイネーブル136を実
行される要求されたメモリ動作を可能にするメモリ13
8へ伝送するか、又は要求されたメモリ動作を禁止する
ためアクセス侵害140を障害ディスパッチ120へ伝
送する。ドメイン112がイネーブルされている場合、
アドレスマップ145はターゲットアドレス104を物
理アドレス134に変換するか、もしくはアドレス変換
障害146を生成する。アドレス変換障害146はター
ゲットアドレス104に対応する物理アドレスが見出さ
れない場合に生成される。アドレス変換障害146が生
成されれば、それはドメイン障害制御装置148へ送信
される。
It should also be noted that, according to the present invention, each domain corresponds to an overall predetermined set of rules for controlling the execution of one memory operation. To the extent that a domain performs different address-oriented services from another domain, the rules that define that service are different from the rules between other services. Such kind of rules are domain-dependent rules. The rules controlling the execution of memory operations are the same for each domain in the sense that a domain performs the same function as other domains, such as virtual / physical address translation. Those rules are domain independent rules. 5, the specific operation of the domain and the specific implementation of the above rules will be further described. As indicated above, referring to FIG. 4, a domain such as domain 112 may be
2, target virtual address 104, access type 1
06 and enable 132 are received. After processing this information in accordance with the present invention, the domain enables the requested memory operation to be performed at physical address 134 and enable 136 if domain 112 is enabled to perform such operation. Memory 13
8 or an access violation 140 to the fault dispatch 120 to prohibit the requested memory operation. If domain 112 is enabled,
The address map 145 translates the target address 104 into a physical address 134 or creates an address translation fault 146. Address translation fault 146 is generated when the physical address corresponding to target address 104 is not found. If the address translation fault 146 is generated, it is sent to the domain fault controller 148.

【0039】許可マップ150はターゲット仮想アドレ
ス104と、環境規則子102とを受け取り、重なった
とき許可にマッピングする。その許可はアクセス許可信
号152として発生される。ターゲット仮想アドレス1
04と環境規則子102の重なりに許可が存在していな
い場合、許可変換障害信号154を発生する。許可マッ
ピングが好結果をもたらしたならば、アクセス制御装置
155はアクセス型106及びイネーブル132と共に
許可152を受け取る。次にアクセス制御装置155
は、アクセス型106がドメイン112により許可され
ない場合には、アクセス拒否信号156を発生する。
The permission map 150 receives the target virtual address 104 and the environmental rule 102 and maps them to permissions when they overlap. The grant is generated as access grant signal 152. Target virtual address 1
If no permission exists in the overlap between 04 and the environmental ruler 102, a permission conversion failure signal 154 is generated. If the permission mapping is successful, the access controller 155 receives the permission 152 along with the access type 106 and the enable 132. Next, the access control device 155
Generates access denial signal 156 if access type 106 is not allowed by domain 112.

【0040】アクセス拒否信号156はドメインの障害
制御装置148へ伝送される。障害制御装置148は様
々な種類の障害条件を監視し、それらの障害条件のいず
れかが存在していれば、禁止信号160をマネージャタ
スク162へ伝送する。発生した障害の種類を指定する
禁止信号160を受信すると、ドメイン112のマネー
ジャタスク162は、それがメモリ動作を実行できるよ
うにすると思われるマップ変更信号164を経てアドレ
スマップ145及び/又は許可マップ150に対する変
更を実行できるであろうと判定しない限り、通常はアク
セス侵害140を生成する。マネージャタスク162が
禁止信号160を受信しない場合には、イネーブル信号
136をメモリ138へ発行することを経て、タスク1
00により指定されるメモリ動作を実行して良い。
The access denial signal 156 is transmitted to the domain fault controller 148. Fault controller 148 monitors various types of fault conditions and transmits inhibit signal 160 to manager task 162 if any of these fault conditions are present. Upon receipt of the inhibit signal 160 specifying the type of fault that has occurred, the manager task 162 of domain 112 will receive the address map 145 and / or permission map 150 via the map change signal 164 that will enable it to perform memory operations. An access violation 140 is typically generated unless it is determined that the changes to When the manager task 162 does not receive the prohibition signal 160, the task 1 is issued after the enable signal 136 is issued to the memory 138.
The memory operation specified by 00 may be performed.

【0041】本発明を図1から図5を参照しながら、特
定のMMUの実施例に重点を置いて説明したが、それら
の図は単に例示を目的としており、本発明を限定するも
のと解釈されてはならないことを理解すべきである。本
発明の要素、プロセス及びプロセスのステップの配列に
ついて、以上開示した本発明の趣旨から逸脱せずに当業
者により数多くの変更及び変形を実施しうると考えられ
る。
Although the present invention has been described with particular reference to FIGS. 1-5, focusing on particular MMU embodiments, the drawings are for illustration purposes only and are intended to be limiting of the present invention. It should be understood that it should not be done. It is contemplated that many modifications and variations of the elements, processes and arrangements of process steps of the present invention can be made by those skilled in the art without departing from the spirit of the invention disclosed above.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の好ましい実施例のメモリ管理装置と関
連して使用するためのオペレーティングシステムに従っ
たドメインと環境との関係とを示すブロック線図。
FIG. 1 is a block diagram showing the relationship between domains and environments according to an operating system for use in connection with the memory management device of the preferred embodiment of the present invention.

【図2】図1に示すシステムの素子に従ったオペレーテ
ィングシステムの動作を示すフローチャート。
2 is a flow chart illustrating operation of an operating system according to elements of the system shown in FIG.

【図3】タスクのドメインのアドレススペースに対する
アクセスを制御するためにオペレーティングシステムに
より特定の環境を利用することができる2つの例を示す
ブロック線図。
FIG. 3 is a block diagram illustrating two examples in which a particular environment can be utilized by an operating system to control access to a task's domain address space.

【図4】オペレーティングシステムのメモリマネージャ
の構造アーキテクチャを示すブロック線図。
FIG. 4 is a block diagram showing the structural architecture of a memory manager of an operating system.

【図5】図4のドメイン0 をさらに詳細に示すブロック
線図。
5 is a block diagram showing domain 0 of FIG. 4 in more detail.

【符号の説明】[Explanation of symbols]

100 タスク 110 ドメイン分類子 112〜116 ドメイン 120 障害ディスパッチ装置 124 環境制御装置 126 ドメインセレクタ 138 メモリ 202 CPU 206 メモリ 220 変換索引バッファ(TLB) 230 変換テーブルルックアップ論理 236 障害ディスパッチ装置 238 マルチプレクサA 242 制御レジスタ 246 マルチプレクサB 250 マネージャ制御レジスタ 254 許可制御論理 100 tasks 110 domain classifier 112-116 domain 120 fault dispatch device 124 environment controller 126 domain selector 138 memory 202 CPU 206 memory 220 translation lookaside buffer (TLB) 230 translation table lookup logic 236 fault dispatch device 238 multiplexer A 242 control register 246 multiplexer B 250 manager control register 254 admission control logic

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 オペレーティングシステムのタスクへア
ドレス指向サービスを利用できるようにするためのコン
ピュータのオペレーティングシステム用のメモリマネー
ジャであって、そのコンピュータはプロセッサとメモリ
を有し、各前記タスクはプロセッサにより実行されるよ
うに作用する一連のオペレーションを含み、各前記メモ
リオペレーションはプロセッサアドレスを指定し、プロ
セッサはプロセッサアドレスをメモリアドレスへ変換
し、かつ前記メモリオペレーションを実行するためのメ
モリマネージメント装置を有するメモリマネージャにお
いて、 アドレス指向サービスの拡張可能なセットを前記タスク
へ供給する手段と、 前記拡張可能なセットの前記アドレス指向サービスのど
れをタスクのために利用可能であるかを調整する手段
と、を備えることを特徴とするメモリマネージャ。
1. A memory manager for an operating system of a computer for making address-oriented services available to tasks of the operating system, the computer having a processor and memory, each said task being executed by the processor. A memory manager including a series of operations operative to each perform, each memory operation specifying a processor address, the processor converting the processor address to a memory address, and having a memory management device for performing the memory operation. Means for providing an extensible set of address-oriented services to the task, and coordinating which of the address-oriented services of the extensible set are available for the task Memory manager, characterized in that it comprises a stage, a.
【請求項2】 オペレーティングシステムのタスクへ複
数のアドレス指向サービスを利用できるようにするため
のコンピュータのオペレーティングシステム用のメモリ
マネージャにおいて、 アドレス指向サービスにおのおの対応する複数のドメイ
ンと、 前記タスクのうちどれが前記ドメインをアクセスするこ
とを許されるかを制御する手段をおのおの有する1つま
たは複数の環境と、を備えることを特徴とするメモリマ
ネージャ。
2. A memory manager for a computer operating system for enabling a plurality of address-oriented services to be used for an operating-system task, a plurality of domains each corresponding to an address-oriented service, and one of the tasks. One or more environments, each having means for controlling whether the user is allowed to access the domain.
JP25763392A 1991-09-30 1992-09-02 Memory manager for operating system of computer Withdrawn JPH05210568A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76998791A 1991-09-30 1991-09-30
US769,987 1991-09-30

Publications (1)

Publication Number Publication Date
JPH05210568A true JPH05210568A (en) 1993-08-20

Family

ID=25087126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25763392A Withdrawn JPH05210568A (en) 1991-09-30 1992-09-02 Memory manager for operating system of computer

Country Status (2)

Country Link
JP (1) JPH05210568A (en)
GB (1) GB2260005B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7090894A (en) * 1993-12-17 1995-07-03 Taligent, Inc. Object-oriented memory allocation framework

Also Published As

Publication number Publication date
GB2260005A (en) 1993-03-31
GB9206631D0 (en) 1992-05-06
GB2260005B (en) 1995-02-15

Similar Documents

Publication Publication Date Title
JPH05233458A (en) Memory managing unit for computer system
JPH05233425A (en) Memory management unit
US4742450A (en) Method to share copy on write segment for mapped files
KR100880685B1 (en) Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
KR100384852B1 (en) Processor reset generated via memory access interrupt
US6061773A (en) Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US5852738A (en) Method and apparatus for dynamically controlling address space allocation
US6125430A (en) Virtual memory allocation in a virtual address space having an inaccessible gap
KR0170565B1 (en) Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US8719548B2 (en) Method and system for efficient emulation of multiprocessor address translation on a multiprocessor
JP5255348B2 (en) Memory allocation for crash dump
US20060026183A1 (en) Method and system provide concurrent access to a software object
US5873127A (en) Universal PTE backlinks for page table accesses
US5835961A (en) System for non-current page table structure access
US7761486B2 (en) Memory management system that supports both address-referenced objects and identifier-referenced objects
US6473845B1 (en) System and method for dynamically updating memory address mappings
Cranor et al. The UVM virtual memory system
JP3882321B2 (en) Computer with operating system module program
EP1971922B1 (en) Memory architecture and access method
US7644114B2 (en) System and method for managing memory
JPH05210568A (en) Memory manager for operating system of computer
US20050015568A1 (en) Method and system of writing data in a multiple processor computer system
Smith et al. A model for address-oriented software and hardware
JPH0564817B2 (en)
Moore et al. Memory Structure

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991102