• 検索結果がありません。

分散オペレーティングシステムSolelcにおけるメモリ管理手法

N/A
N/A
Protected

Academic year: 2021

シェア "分散オペレーティングシステムSolelcにおけるメモリ管理手法"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)Vol. 42. No. 6. June 2001. 情報処理学会論文誌. 分散オペレーティングシステム Solelc におけるメモリ管理手法 芝. 公. 仁†. 大久保. 英 嗣††. 我々が開発している分散オペレーティングシステム Solelc では,ローカルエリアネットワークを介 して接続されたすべての計算機間で単一のアドレス空間が共有される.カーネルやプロセスは,この アドレス空間上で動作するため,位置透過に動作可能である.このようなアドレス空間の管理には, 従来の単一計算機でのメモリ管理手法や,分散共有メモリシステムで用いられている効率化手法をそ のまま適用することが困難である.Solelc では,物理メモリ管理とメモリの一貫性制御を組み合わせ ることによって,位置透過で効率的なメモリ管理を実現している.本論文では,Solelc のメモリ管理 手法とその性能評価について述べる.. Memory Management in Solelc Distributed Operating System Masahito Shiba† and Eiji Okubo†† In Solelc distributed operating system, single address space is shared among all computers connected via a local area network. A kernel and processes can work with location transparency since they work in this address space. It is difficult to use memory management techniques for conventional single computer or in distributed shared memory systems in order to manage this address space. In Solelc, efficient and location transparent memory management is realized by combining physical memory management and memory consistency control. In this paper, the memory management technique in Solelc and its performance evaluation are described.. 1. は じ め に. このアドレス空間上で動作するため,位置透過にメモ リを読み書きすることができる.また,カーネルは,. 現在,我々は,単一のカーネルによって複数の計. このアドレス空間を管理することによって,結果とし. 算機を 管理可能な 分散オペレ ーティング シ ステ ム. て,すべての計算機のメモリを管理することが可能と. Solelc 1)∼4) の開発を行っている.Solelc では,各計. なる.. 算機上で計算機資源を抽象化する機構が動作し,カー. Solelc のように,複数の計算機間でメモリを共有す. ネルが位置透過に資源管理を行うことを可能としてい. るシステムとして,分散共有メモリシステムがある.. る.カーネルが位置透過に動作できると,複数の計算. 一般に,分散共有メモリシステムでは,プロセス間で. 機に分散された資源を効率良く管理することが可能と. データを共有することを目的としており,データの特. なる.また,これによって,プロセスの位置透過性も. 性を知るプロセスに一貫性制御を行わせることによっ. 実現され,効率的な計算機資源の利用が実現される.. て,システムの効率化を図っている.これに対して,. 本論文では,このような,カーネルやプロセスの位置. Solelc では,プロセス間でのメモリの共有のみならず,. 透過性を実現するための中心的な機能であるメモリ管. アドレス空間の共有を行い,このアドレス空間上でプ. 理について述べる.Solelc では,各計算機の物理メモ. ロセスやカーネルを動作させる.したがって,多くの. リは,すべての計算機で共有される単一の仮想アドレ. オペレーティングシステムと同様に,Solelc において. ス空間として抽象化される.カーネルやプロセスは,. も,メモリ管理はシステムの性能に大きく影響するた め,その効率化は重要である.しかし ,Solelc では, データのみならず,カーネルやプロセスのコード も複. † 立命館大学大学院理工学研究科 Graduate School of Science and Engineering, Ritsumeikan University †† 立命館大学理工学部 Faculty of Science and Engineering, Ritsumeikan University. 数の計算機間で共有される.したがって,従来の分散 共有メモリシステムで用いられるような,弱い一貫 性制御を行うことによって効率化を図ることは困難で ある. 1460.

(2) Vol. 42. No. 6. 分散オペレーティングシステム Solelc におけるメモリ管理手法. 1461. 一方,従来のオペレーティングシステムでは,要求 時ページングや,書き込み時コピーなどの遅延評価に. Application. Process. Process. よるメモリ管理の効率化が行われている.また,プロ セス間でメモリを共有する機能や,プロセスの領域内. Process. Kernel Operating System. に I/O がマップされた物理メモリを割り付けるなどの 機能を実現している.これらの処理には,ページテー ブルの操作など ,物理メモリの管理が必要となる.し. Process. Abstraction Layer. Abstraction Layer. Abstraction Layer. Hardware. Hardware. Hardware. Network. かし,Solelc では,カーネル自身が共有メモリ上で動. 図 1 Solelc の全体構成 Fig. 1 Overall structure of Solelc.. 作するため,従来の手法をそのまま適用することがで きない.. Solelc では,物理メモリ管理とメモリの一貫性制御. 理する.カーネルは,抽象化層の機能を使用して動作. を組み合わせることによって,以下の機能を実現して. するため,位置透過に資源管理を行うことが可能であ. いる.. • 遅延評価によるメモリ管理の効率化 • プロセス間でのメモリの共有. る.カーネルが実現する機能は,従来のオペレーティ ングシステムのそれと同様のものである.すなわち, プロセスの実行環境を構築し,複数のプロセスに資源. • I/O がマップされた物理メモリの仮想アドレス空 間への割付け. を適切に分配する.また,ファイル操作などのサービ. 複数の計算機から共有されるアドレス空間の管理に. テムとの違いは,カーネルが位置透過に動作し複数の. おいても,物理メモリを考慮した一貫性制御を行うこ とによって,遅延評価を用いたメモリ管理の効率化を. スを実現し,これをプロセスに提供する.従来のシス 計算機を同時に管理するという点である. 抽象化層によって抽象化される計算機資源として,. 実現することができる.これによって,弱い一貫性制. メモリ,CPU,割込み,周辺デバイスの 4 つがあげら. 御を行うことなく,メモリ管理の効率化が実現される.. れる.メモリは,複数の計算機から共有される単一の. さらに,複数の計算機から共有されるアドレス空間に. 仮想アドレス空間として抽象化される.このアドレス. おいても,プロセス間でメモリを共有することや,資. 空間の管理手法については,次章以降で詳述する.. 源をメモリにマップするといったことが可能となる.. CPU は,スレッド として抽象化される.カーネル. これによって,カーネルやプロセスは,位置透過で効. は,スレッドを使用することによって,カーネルやプ. 率の良い資源操作を行うことが可能となる.. ロセスのコードを実行することができる.カーネルは,. 本論文では,このような機能を実現している Solelc. スレッドに割り付ける CPU を動的に変更することが. のメモリ管理手法について述べる.また,本手法の評. 可能であり,これによって容易にスレッド の移送を行. 価を行い,効率的なメモリ管理が実現されていること. うことができる.. を示す.以下,本論文では,2 章で Solelc の構成,3. 割込みは,イベントとして抽象化される.抽象化層. 章でメモリ管理の概要について述べ,4 章と 5 章でメ. は,ページフォルトやユーザスレッドが発行したシス. モリ資源の抽象化手法,6 章でメモリ管理方式につい. テムコールなど,各計算機で発生した事象をイベント. て述べる.また,7 章で本システムの性能評価,8 章. としてカーネルに通知する.このとき,抽象化層は,. で関連する研究について述べ,提案手法の有効性につ. イベントの種類とそれを取得するカーネルスレッドを. いて議論する.. 調べ,当該スレッドが動作する計算機にイベントを転. 2. Solelc の構成 Solelc では,図 1 に示すように,オペレーティング システムが抽象化層とカーネルの 2 つに階層化されて. 送する.そのため,カーネルは,任意の計算機上です べての計算機で発生したイベントを取得することがで きる. 周辺デバイスは,抽象化層内のデバイスド ライバに. いる.抽象化層は,各計算機で 1 つずつ動作し,計算. よって抽象化される.抽象化層は,カーネルからのデ. 機資源を抽象化するための機能を実現している.各抽. バイスド ライバへの要求を当該デバイスド ライバを持. 象化層は,他の計算機上の抽象化層と協調動作するこ. つ計算機に転送し,さらに当該デバイスド ライバの処. とによって,資源の位置を管理し,カーネルが位置透. 理結果をカーネルに返す.このように,抽象化層が,. 過に資源管理を行うための環境を構築する.カーネル. デバイスドライバの位置を管理し,要求や処理結果を. は,システム全体で 1 つであり,すべての計算機を管. 適切に転送するため,カーネルとデバイスド ライバは.

(3) 1462. June 2001. 情報処理学会論文誌. 互いの位置を意識することなく動作可能である.した. 異なる.以下,本章では,このようなアドレス空間を. がって,カーネルは,任意の計算機上からすべての計. 管理する,抽象化層とカーネルによるメモリ管理の概. 算機のデバイスを操作することが可能である.. 要について述べる.. 3.1 抽 象 化 層 抽象化層は,共有領域を実現するために,計算機間. 3. メモリ管理の概要 Solelc では,各計算機で動作する抽象化層とカーネ. でのメモリの一貫性制御を行う.すなわち,共有領域. ルが協調動作することによってメモリ管理が行われる.. の各ページに実際にそのページを使用する計算機の物. すなわち,抽象化層は,各計算機が持つ物理メモリを,. 理メモリを割り付ける.さらに,複数の計算機から同. すべての計算機から共有される単一の仮想アドレス空. 一のページが使用される場合,ページの内容を計算機. 間として抽象化する.さらに,カーネルは,このアド. 間で適切に送受信し,任意の計算機からのメモリの読. レス空間を管理することによって,結果としてすべて. み書きを可能とする.抽象化層が実現するメモリモデ. の計算機のメモリを管理する.. ルは,順序一貫性5) である.そのため,共有領域上で. Solelc におけるアドレス空間の構成を図 2 に示す. 図に示すように,アドレス空間は,共有領域と非共有 領域の 2 つから構成される.カーネルとプロセスが配. を意識することなく動作可能である.. 置される共有領域では,すべての計算機が同一のメモ. よって,カーネルがメモリ管理を行う際に必要とする. リ内容と保護属性を持つ.したがって,見かけ上,す. 機能を提供する.これらのインタフェースは,すべて. べての計算機上に同一のカーネルとプロセスが存在し. 位置透過に使用可能である.したがって,カーネルス. ているといえる.そのため,スレッドは,任意の計算. レッドは,自身が動作する計算機上の抽象化層に処理. 機上でコードやデータにアクセス可能であり,位置透. を要求することによって,各計算機の物理メモリの状. 過に動作することができる.この特徴を利用すると,. 態を意識することなく,すべての計算機のメモリを管. 動作するカーネルやプロセスは,メモリの一貫性制御 また,抽象化層は,表 1 に示すインタフェースに. レジスタ情報など スレッドを管理する最小限のデータ. 理することができる.また,カーネルがこれらのイン. のみの移送によって,スレッド の移送を行うことがで. タフェースを用いてメモリ管理を行うことによって,. きる.一方,非共有領域は,抽象化層のコードやデー. 抽象化層内で効率化のための処理を行うことが可能と. タが配置される領域であり,その内容は計算機ごとに. なり,結果としてメモリ管理の効率化が実現される.. 3.2 カ ー ネ ル 共有領域は,カーネルのコードやデータが配置され. Process. るカーネル領域とプロセスが配置されるユーザ領域か user. shared. ら構成される.これらの領域は,カーネルによって管 理される.すなわち,カーネルは,ユーザ領域内にプ. Process. Kernel. ロセスのための領域を確保し,その領域にプロセスの kernel. コード やデータを配置する.また,これらの領域の保 護属性を設定し,プロセスの不正な動作から他のプロ. non-shared Abstraction Layer 図 2 アドレス空間の構成 Fig. 2 Structure of address space.. セスやカーネルを保護する. カーネルがプロセスに提供する主なメモリ操作のた めのシステムコールを表 2 に示す.カーネルは,抽 象化層が提供するメモリ管理ための機能を用いてこれ. 表 1 メモリ管理インタフェース Table 1 Interfaces for memory management.. Name attach(addr, size) detach(addr, size) copy(dst, src, size) map(vaddr, host, paddr, size) protect(addr, size, prot) share(map, addr, size). Description 仮想アドレス addr から size バイトの領域を使用可能とする 仮想アドレス addr から size バイトの領域を使用不可とする 仮想アドレス src の内容を仮想アドレス dst へ size バイトコピーする 計算機識別子が host である計算機の物理アドレス paddr から size バイトのメモリを 仮想アドレス vaddr に割り付ける 仮想アドレス addr から size バイトの領域の保護属性を prot とする 仮想アドレス addr から size バイトの領域を仮想アドレス map に共有する.

(4) Vol. 42. No. 6. 分散オペレーティングシステム Solelc におけるメモリ管理手法. 表 2 メモリ操作のためのシステムコール Table 2 System calls for memory operation. プロセス セグ メント 資源のマップ 保護属性 共有メモリ. fork, execve brk, sbrk mmap, munmap, mremap, msync mprotect shmget, shmat, shmdt, shmctl. PM. VM. AS. 1463. AS. PM. RW RO. RO RW. RO. RO. Machine A. Process. VM. text. Machine B RO: read only. RW: read/write. data. 図 4 メモリ管理データ Fig. 4 Relationship among memory control data.. mmap. 行するなどの処理を行う.カーネルは,位置透過にイ ベントを取得することができるため,ページフォルト. stack. への対応も位置透過に行うことが可能である.. 4. メモリ管理データ 図 3 プロセスの構造 Fig. 3 Structure of a process.. 抽象化層は,以下の 3 つのデータを用いてメモリ管 理を行い,共有領域を実現する.. らのシステムコールを実現する.たとえば,fork シス. • AS · · · アドレス空間の管理. テムコールを受けたカーネルは,attach を用いて子プ ロセスのための領域を確保し ,copy を用いて確保し. • VM · · · ページ単位での仮想メモリの管理 • PM · · · ページ単位での物理メモリの管理. た領域に親プロセスの内容をコピーし新たなプロセス. これらのデータは,非共有領域に配置され,各計算. を生成する.カーネルが構築するプロセスの内部構造. 機の抽象化層によって管理される.各計算機が 1 つず. を図 3 に示す.各プロセスは,text 領域,data 領域,. つ持つ AS は,VM へのポインタを持つテーブルであ. mmap 領域,stack 領域を持つ.text 領域には,当該 プロセスのコードが配置され,1 つ以上のスレッドに. り,本テーブルを用いることによって,仮想アドレス からそのページの情報を持つ VM を取得することが. よって実行される.data 領域は,データが配置される. できる.VM は,割り付けられているアドレスや,対. 領域であり,動的に拡張可能である.また,mmap 領. 応する PM へのポインタを持つデータである.抽象. 域は,mmap システムコールによるファイルやデバイ. 化層は,これらのデータを用いて一貫性制御のための. スなどの資源の割付けに使用される領域である.stack. 情報を管理し,アドレス空間の共有を実現する.. 領域は,当該プロセスを実行するスレッドのスタック. 図 4 は,AS,VM,PM の関連を表している.図 4. に使用される.stack 領域も,data 領域と同様に動的. に示すように,複数の VM が 1 つの PM を共有する. に拡張可能である.. ことが可能である.PM の共有は,物理メモリの共有. スレッドがページフォルトを発生させた場合,これ. であり,PM を共有するすべての VM が管理するペー. は当該スレッドが動作する計算機の抽象化層によって. ジにおいて,同一の物理メモリが割り付けられる.こ. 取得され,抽象化層が持つページフォルトハンド ラに. のような物理メモリの共有は,抽象化層が書き込み時. よってページフォルトの原因が調べられる.ページフォ. コピーを行った結果である.PM を共有するページで. ルトの原因がメモリの一貫性制御によるものであれば,. は,共有する物理メモリが読み出し専用で割り付けら. 抽象化層は,他の計算機からページを取得するなどの. れる.このようなページに書き込みが行われた場合,. 処理を行い,メモリアクセスを可能としたのち当該ス. 抽象化層は,新たに PM を生成し,当該ページへの物. レッド の実行を再開させる.また,ページフォルトの. 理メモリの割付けと実際のメモリコピーを行う.この. 原因が不正なアドレ スへのアクセスなど 一貫性制御. ように,物理メモリの共有による仮想的なコピーと実. によって解決できない場合,抽象化層は,このページ. 際のコピーをすべて抽象化層が行うため,カーネルや. フォルトをイベントとしてカーネルに通知する.イベ. プロセスはこれを意識することなく動作可能である.. ントを取得したカーネルは,スレッドにシグナルを発. また,複数の AS のエントリが 1 つの VM を共有す.

(5) 1464. June 2001. 情報処理学会論文誌. ることも可能である.共有される VM が PM を持つ. share. local. 場合,PM の共有も行われる.したがって,VM を共 有するページに物理メモリが割り付けられている場合,. not available. その物理メモリの共有も行われる.このような VM の 共有は,プロセス間での共有メモリの実現に利用され る.メモリの一貫性制御は VM が持つデータに基づ. われる.たとえば,ページに割り付ける物理メモリを 他の計算機のものに変更する場合,VM を共有するす. UNUSED. UNUSED. UNUSED. UNUSED. NONE. NONE. NONE. MASTER_RW. INVALID. INVALID. REPLICA. INVALID. MASTER_RO. FIXED. FIXED_RW. FIXED. available. いて行われ,ページの状態変更や物理メモリの割付け は,VM を共有するすべてのページに対して同様に行. UNUSED UNUSED. 図 5 共有されるアドレス空間と各計算機のアドレス空間 Fig. 5 Page state of the shared address space and local address spaces.. べてのページに対して同様の処理が行われる.すなわ ち,新たに割り付けられる物理メモリを持つ計算機上 でも,VM および PM の共有が行われる.したがっ. FIXED_RW. detach. detach map. て,異なる計算機上で動作するスレッド 間でも,共有. detach. メモリを使用することが可能である.. 5. ページの状態. UNUSED. NONE. attach detach. share. 抽象化層は,共有領域の各ページの所有者と状態を. VM によって管理し,計算機間のメモリの一貫性制御 を行う.ページの所有者とは,当該ページを管理する. FIXED. read/ write write. MASTER_RW. INVALID. write read. read write. write. 計算機の識別子である.ページの所有者は一貫性制御 によって動的に変更され,ページの所有者となった計. MASTER_RO. 算機では当該ページの複製の管理が行われる.各々の. REPLICA. 図 6 ページの状態遷移 Fig. 6 State transition of a page.. 計算機では,各ページについて所有者あるいはそれを 知る計算機の識別子を保持しており,ページの内容を 必要とする場合,所有者に要求を送ることによって,. させる.ただし,図中の点線は,他の計算機で行われ. ページの内容を取得することができる.. たメモリアクセスによって,ページの状態が変更され. ページの状態には以下に示す 8 つがある.. ることを表す.. • UNUSED · · · 使用されていないページである.. 共有領域の各ページの初期状態は UNUSED であ. • NONE · · · どの計算機の物理メモリも割り付けら れていない. • MASTER RW · · · ページの内容を持ち,他の計. り,この状態のページは VM や PM を持たず,物理 メモリは割り付けられていない.したがって,カーネ ルやプロセスは UNUSED 状態のページを使用するこ. 算機は複製を持たない. • MASTER RO · · · ページの内容を持ち,他の計. とができない.. 算機が複製を持つ. • REPLICA · · · MASTER RO 状態のページの複 製である.. の物理 メモリも割り付けられていない状態である.. • INVALID · · · 無効なページである. • FIXED RW · · · 物理メモリが割り付けられてい る移送できないページである.. NONE は,使用可能な状態であるが,どの計算機 NONE 状態のページに対してアクセスがあった場合, ページフォルトが発生し,抽象化層が持つページフォル トハンドラが実行される.このとき,ハンドラは,PM を作成し当該ページにゼロクリアされた物理メモリを 割り付ける.また,ページの状態を MASTER RW と. • FIXED · · · 物理メモリが割り付けられていない 移送できないページである.. し ,ページ状態の変更をすべての計算機に通知する.. 各計算機ごとに設定されるページの状態と,共有さ れるアドレス空間の対応を図 5 に示す.抽象化層は,. VALID に変更し,所有者をページフォルトが発生し た計算機とする.これらの処理は,すべて抽象化層に. カーネルからの要求や,スレッドが行うメモリアクセ. よって行われるため,カーネルやプロセスからは透過. スに応じて,ページの状態を図 6 に示すように遷移. 的である.. この通知を受けた計算機は,当該ページの状態を IN-.

(6) Vol. 42. No. 6. 分散オペレーティングシステム Solelc におけるメモリ管理手法. ページの所有者は,各計算機で行われるメモリの読 み書きによって計算機間を移動する.また,これにと もなって,ページの状態は,MASTER RW,MAS-. TER RO,REPLICA,INVALID の状態を遷移する. MASTER RW と MASTER RO は,ページを所有し ている状態であり,当該ページに割り付けられた物理. 1465. 6. メモリ管理方式 本章では,表 1 の機能を用いたカーネルのメモリ管 理と,その処理方式について述べる.. 6.1 メモリの有効化 カーネルは,新たなプロセスを生成する場合など ,. メモリには,そのページの内容が保持されている.こ. 新たな領域を使用するとき,まず,attach を用いて抽. れらの 2 つの状態の違いは,MASTER RW 状態の. 象化層に使用する領域を通知する.この要求を受けた. ページは読み書き可能で物理メモリが割り付けられ,. 抽象化層は,これをすべての計算機に通知し,各計算. MASTER RO 状態のページは読み出し 専用で物理. 機の当該領域を使用可能とする.すなわち,すべての. メモリが割り付けられることである.さらに,MASTER RO 状態のページは複製を持ち,複製であること. 計算機で当該領域のページの状態を UNUSED から. を表す REPLICA 状態のページにも,読み出し専用で 物理メモリが割り付けられる.すなわち,REPLICA 状態はページの内容を持つが,所有者ではなく,他の. モリの割付けを行わない.これは,attach 要求時にた だちに物理メモリを割り付けると,実際には使用され. 計算機が当該ページの所有者であることを表す.また,. があるためである.また,ページに対する最初のアク. INVALID は,物理メモリが割り付けられておらず,. セスが,割り付けた物理メモリを持つ計算機とは異な. ページの内容を持たない状態である.共有領域内の有. る計算機で行われた場合,一貫性制御のためにページ. 効なページは,次の 2 つのうちのいずれかである.. • 1 台の計算機で MASTER RW 状態で,他のすべ ての計算機では INVALID 状態である.. NONE に変更する.したがって,このときには物理メ. ないページにも物理メモリを割り付けてしまう可能性. 内容の送受信が行われる.このとき,ページの内容は ゼロクリアされたものであり有用なデータを持ってお らず,このような通信は行われるべきではない.Solelc. • 1 台の計算機で MASTER RO 状態で,他の計算. では,このような問題を解決するために,attach 要求. 機では REPLICA 状態あるいは INVALID 状態. 時には状態の変更のみを行い,実際にアクセスがあっ. である. 抽象化層は,各計算機で行われるメモリの読み書き に応じて,これら 2 つの間を遷移させる.すなわち,. たときに,それを行った計算機の物理メモリを割り付 ける. カーネルは,attach を用いることによって,プロセ. 抽象化層は,複製を持つページに対して書き込みが. スの stack 領域を拡張することができる.各プロセス. 行われるとき,当該ページの複製を無効化することに. の領域のうち使用されていないページの状態は UN-. よって,共有領域に順序一貫性のメモリモデルを実現. USED であるが,カーネルは,このような領域へのア. する.. クセスを以下のように取得し,stack 領域の拡張を行. FIXED RW と FIXED は,所有者の変更や複製の 作成が行われない状態である.これは,VRAM などの. . う( 図 7 ) ( 1 ) ユーザスレッドが UNUSED の領域に push を. I/O がマップされたメモリを共有領域に割り付けると きなど ,特定の計算機の物理メモリを割り付ける必要. 行おうとするとページフォルトが発生する.. (2). イベントとしてカーネルに通知する.. がある場合に使用される.このとき,ページの状態は, 物理メモリが割り付けられた計算機では FIXED RW 状態,他のすべての計算機では FIXED 状態となる.. ページフォルトを取得した抽象化層は,これを. (3). イベントを取得したカーネルは,ページフォル トを発生させたスレッド が属するプ ロセスの. FIXED 状態のページにアクセスがあった場合,物理 メモリが割り付けられていないため,ページフォルト. Process. Process. が発生する.このページフォルトを取得した抽象化層 は,ページの状態を変更するのではなく,アクセスを. Kernel. 行ったスレッドを FIXED RW 状態のページを持つ計 算機に移送する.Solelc では,スレッド の移送は透過. (3) attach (2) event. Abstraction Layer. (4) change of page state. 的に行われるため,カーネルやプロセスは,特定の計. (1) page fault. 算機の物理メモリが割り付けられたページに対しても. 図 7 stack 領域の拡張 Fig. 7 Extension of a stack area.. 位置透過にアクセスすることが可能である..

(7) 1466. 情報処理学会論文誌. stack 領域を拡張し,その領域の attach を要求 する.. (4). June 2001. 6.4 資源の割付け map は,特定の計算機の特定の物理メモリを共有. attach の要求を受けた抽象化層は,これを他の. 領域に割り付けるために使用される.たとえば,プロ. 計算機に通知し,すべての計算機で,指定され. セスが,mmap システムコールによって,VRAM な. た領域のページの状態を NONE に遷移させる.. ど の I/O がマップされたメモリを自身の領域内に割. このように,イベントやカーネルの要求は,抽象化. り付けることを要求した場合,カーネルは map を使. 層によって適切に転送されるため,カーネルは位置透. 用して,当該プロセスの mmap 領域に指定されたメ. 過に処理を行うことができる.また,ユーザスレッド. モリを割り付ける.. は,stack 領域の拡張処理を意識することなく動作可 能である.. カーネルから map の要求を受けた抽象化層は,こ の要求をすべての計算機に通知し ,各計算機で map. 6.2 メモリの無効化 detach は,attach によって使用可能となった領域. のための処理が行われる.具体的には,カーネルに. を使用不可にする機能である.detach の要求を受け た抽象化層は,この要求をすべての計算機に通知し , 各計算機の当該領域のページを UNUSED 状態に遷移. リを共有領域に割り付け,その領域のページの状態を FIXED RW とする.また,他の計算機では,当該領 域のページの状態を FIXED とし,ページの所有者を. 指定された物理メモリを持つ計算機では,当該メモ. させる.このとき,割り付けられている物理ページは. FIXED RW 状態のページを持つ計算機とする.この. 解放され,また,VM や PM のデータも解放される.. ように,map によってメモリの割付けが行われた領域. カーネルは,プロセスを破棄する場合などに,detach. では,ページの状態が FIXED RW あるいは FIXED. を用いて不要になった領域を解放する.このような領. となるため,一貫性制御によるページの移動が行われ. 域を再び attach した場合,以前の内容は失われてい. なくなる.FIXED 状態のページにアクセスしたスレッ. る.execve システムコールの処理など ,ページの内. ドは,FIXED RW 状態のページを所有する計算機に. 容を完全に変更するような場合,detach を用いて一. 移送されるため,カーネルやプロセスは,特定の計算. 度ページの内容を破棄することによって,不要な一貫. 機の物理メモリが割り付けられたページに対しても位. 性制御が行われることを防ぐことができる.また,抽. 置透過にアクセス可能である.このように,Solelc で. 象化層は,attach によって確保されたページのみの一. は,スレッドを移送することによって,ページの所有. 貫性制御を行えばよいため,一貫性制御のための管理. 者を変更できないページに対しても,位置透過なメモ. データを必要最小限保持すればよい.. リアクセスを可能としている.. 6.3 メモリコピー カーネルは,copy を用いることによって,効率的. 6.5 保護属性の設定 protect は,メモリの読み出しや書き込みを許可す. なメモリコピーを行うことができる.カーネルが自身. るあるいは許可しないといったメモリの保護属性を設. でメモリコピーを行った場合,カーネルスレッドがコ. 定するための機能である.たとえば,mprotect シス. ピー元からの読み出しとコピー先への書き込みを行う. テムコールによってメモリの保護属性の変更を要求さ. ため,一貫性制御のためのページ内容の送受信が行わ. れた場合,カーネルは protect によって指定された領. れる可能性がある.copy は,このようなページ内容の. 域の保護属性を変更する.protect の要求を受けた抽. 送受信をともなわないメモリコピーを実現する.すな. 象化層が,これを他の計算機に通知し,すべての計算. わち,コピー元のページを持つ計算機からコピー先の. 機でページの保護属性を設定するため,カーネルは任. ページを持つ計算機へ,コピーする領域のみの送受信. 意の計算機上ですべての計算機の保護属性を設定する. を行うことによってメモリコピーを行う.また,ペー. ことができる.. ジ単位のコピーが可能であれば書き込み時コピーを行. メモリの保護属性には,カーネルが protect によっ. う.すなわち,コピー元ページを所有する計算機で,. て指定するもののほかに,VM の状態によって決めら. コピー元ページとコピー先ページの PM を共有し,同. れるものや,遅延コピーなど抽象化層のメモリ管理に. 一の物理メモリを共有する.この場合,単一計算機上. よって決められるものがある.実際にページテーブル. での書き込み時コピーの利点に加え,一貫性制御のた. に設定される保護属性は,これら 3 つの保護属性から. めの計算機間でのページ内容の送受信が行われないと. 算出されたものとなる.カーネルが決定した保護属性. いった利点がある.. はすべての計算機で同一のものとなるが,抽象化層に よって決定される保護属性は計算機ごとに異なる.抽.

(8) Vol. 42. No. 6. 分散オペレーティングシステム Solelc におけるメモリ管理手法. 象化層が決定した保護属性に対する違反があった場合,. Machine A. Machine B. 1467 Machine C. これに対応する処理は抽象化層によって行われる.一 方,カーネルが protect によって決定した保護属性に message. 対する違反があった場合,これはイベントとしてカー. copy. ネルに通知され,カーネルによって処理される.. 6.6 メモリの共有. read buffer. 従来のシステムでは,shmat システムコールによっ (a) copy by kernel. て行われるメモリの共有は,同一の物理メモリを複数 のプロセスのメモリ領域に割り付けることによって実. Machine A. Machine B. Machine C. 現される.しかし,Solelc では,プロセス間でのメモ message. リの共有には,複数の計算機間でのメモリの共有が必. copy. 要になるため,単純に物理メモリを共有するだけでは メモリを共有することはできない.抽象化層が提供す. read buffer. るメモリ共有のための機能である share では,物理メ モリを共有するだけではなく,VM の共有が行われる.. (b) copy by abstraction layers. カーネルが行った share の要求は,すべての計算機. 図 8 パイプにおけるメモリコピー Fig. 8 Memory copy for pipe.. に通知され,各計算機で,指定された領域での VM の共有が行われる.共有された VM が PM を持つ場 合,PM やそれに対応した物理メモリも共有される.. た場合,カーネルは,送信プロセスの領域から受信プ. また,計算機間の一貫性制御は VM に基づいて行わ. ロセスの領域へメッセージをコピーする.このとき,メ. れ,計算機間でページの移動が行われる場合,移動先. モリコピーを行うカーネルスレッド の動作する計算機. でも PM や物理メモリの共有が行われる.このよう. が,コピー元やコピー先のページを持っていないこと. に,VM の共有によって,複数の計算機から共有され. も多い.このような場合に,カーネル自身がメッセー. るアドレス空間上でも,プロセス間でのメモリの共有. ジを読み出してプロセス内の受信バッファにコピーす. が可能となる.. . るときの処理の流れは以下のようになる( 図 8 (a) ). 7. 評. 価. 現在,Solelc は,i386 アーキテクチャの PC/AT 互. (1). 計算機 B のカーネルスレッドがメッセージを読 み出そうとすると,ページフォルトが発生する.. (2). 計算機 B の抽象化層は,計算機 A からメッセー. 換機上で動作している.Solelc 上で動作するプロセス. ジを含むページを取得する.このとき,当該ペー. は,Linux が提供しているものと同様のシステムコー. ジの状態は,計算機 A で MASTER RO,計算 機 B で REPLICA となる.. ルを使用することができる.すなわち,従来の単一の 計算機を管理するカーネルが提供するものと同様のイ. (3). ンタフェースによって,複数の計算機に分散された資. (4). カーネルスレッドがメッセージを受信バッファ に書き込もうとすると,ページフォルトが発生. 源を使用することが可能である.. する.. 本章では,プロセス間での通信に用いられるパイプ とプロセスの生成を例にあげ,抽象化層が提供する機. カーネルスレッドが メッセージを読み出す.. (5). 計算機 B の抽象化層は,計算機 C から受信バッ. 能を用いることによって,メモリ管理の効率化が実現. ファを含むページを取得する.このとき,当該. されていることを示す.また,Linux との比較を行う. ページの状態は,計算機 B で MASTER RW, 計算機 C で INVALID となる.. ことによって,十分に実用的な性能で位置透過性が実 現されていることも示す.なお,本章における性能評 価には,Pentium 200 MHz を搭載した PC/AT 互換. (6). カーネルスレッドがメッセージを受信バッファ に書き込む.. 機を 100 Mbps のイーサネットで接続した環境を用い. この場合,ページ内容の送受信が,計算機 A から計. ている.. 算機 B へと,計算機 C から計算機 B への合計 2 回行. 7.1 パ. イ プ. カーネルにおける処理では,メモリコピーが頻繁に 行われる.たとえば,パイプに対して write が行われ. われている.これに加えて,受信スレッドがメッセー ジの内容を読み出すときにもページ内容の送受信が行 われる..

(9) 1468. June 2001. 情報処理学会論文誌. を返す処理を考える.これらの 2 つのユーザスレッド. time(ms). 1.2. (a) kernel (b) abstraction layers. とパイプに対する処理を行うカーネルスレッドが各々. 1. 異なる計算機上で動作する場合,メッセージの送信か. 0.8. ら応答メッセージの受信までの処理時間は 0.66 ms で ある.これは,3 つのスレッドがそれぞれ異なる計算. 0.6. 機上で動作し,3 台の計算機間で通信が行われるため,. 0.4. 最も処理時間が長くなる場合である.. UNIX では,異なる計算機上で動作するプ ロセス. 0.2. 間での通信にはソケットが用いられる.Linux 上の 2. 0 128. 256. 384 read size(byte). 512. 640. 図 9 メモリコピーの処理時間 Fig. 9 Execution time of memory copy.. つのプロセスがソケットを用いて通信を行った場合,. sendto() によるメッセージの送信から recvfrom() に よる受信までに要する時間は 0.38 ms である.このよ うなソケットを用いた通信では,通信相手の位置を意. 抽象化層が提供する copy を用いてメモリコピーを. 識する必要がある.UNIX 上でもミドルウェアによっ. 行うことによって,このようなオーバヘッドを軽減す. て位置透過なメッセージ通信を実現可能であるが,こ. ることができる.この場合の処理の流れを以下に示す . ( 図 8 (b) ). (1). (2). 計算機 B のカーネルスレッドが,コピー元とコ. るスレッドとパイプを実現するカーネルスレッドは位. ピー先のアドレスとサイズを指定して copy を. 置透過に動作可能である.したがって,スレッド の動. 抽象化層に要求する.. 作する計算機が動的に変更された場合でも,それを意. 要求を受けた計算機 B の抽象化層は,コピー. 識する必要がないといった利点がある.. 元のページを持つ計算機 A にこの要求を通知. (4). 7.2 プロセス生成処理. 持つ計算機 C にコピーするデータを送信する.. Solelc におけるメモリ管理の効率化は,扱うメモリ 量が小さい場合だけでなく,大きい場合にも有効であ る.大きなサイズのメモリを扱うものとして,fork シ. 計算機 C の抽象化層は,受け取ったデータを受. ステムコールによるプロセスの生成があげられる.計. する.. (3). の場合,ミドルウェアを用いることによるオーバヘッ ドが問題となる.一方,Solelc では,パイプを使用す. 計算機 A の抽象化層は,コピー先のページを. 信バッファに書き込む.. ( 5 ) コピーの完了がカーネルに通知される. この場合,メモリの一貫性制御によるページ内容の送. 算機 A で動作するユーザスレッドが,fork によって 子プロセスの生成を要求し,これを計算機 B 上のカー ネルスレッドが処理するときの,ページ状態の変化を. 受信が行われないため,copy を用いない場合のメモ. 図 10 に示す.fork の処理において,効率化を行わな. リコピーと比較して,通信回数と通信量が削減される.. い場合の子プ ロセスの生成手順は以下のようになる. 3 台の計算機が動作する環境における図 8 (a) およ び図 8 (b) のメモリコピーの処理時間を図 9 に示す.. . ( 図 10 (a) ). (1). 抽象化層に要求する.. するメッセージのサイズが小さくても,一貫性制御の ためにページ単位( 4096 バイト )でのデータの送受. 計算機 B のカーネルスレッドは,子プロセスを 配置する領域を決定し ,この領域の attach を. カーネルが自身でコピーを行った場合,実際にコピー. (2). 計算機 B の抽象化層は,指定された領域に物理. 信が 2 回行われるため,処理時間が長くなっている.. メモリを割り付け,当該ページの状態を MAS-. 一方,抽象化層がメモリコピーを行った場合,一貫性. TER RW とする.また,他の計算機に当該領 域のページの状態を変更するよう要求する.. 制御のためのページ内容の送受信が行われないため, 処理時間が短くなっている.このとき,計算機間で送. (3). ジの状態を INVALID とする.. 受信されるデータはコピーすべきメッセージのみであ り,したがって,コピーするサイズが小さいほど効率 化の効果が大きいといえる.. 要求を受け取った各計算機の抽象化層は,ペー. (4). カーネルが,親プロセスの内容を子プロセスの 領域にコピーする.. さらに,パイプを用いたメッセージ送受信の評価と. ( 4 ) では,カーネルスレッドが親プロセスの領域から. して,一方のスレッドが 256 バイトのメッセージを送. 読み出しを行おうとすると,計算機 A から計算機 B へ. り,これを受けた他方のスレッドが同様のメッセージ. ページ内容の送受信が行われ,ページの複製が計算機.

(10) Vol. 42. No. 6. 分散オペレーティングシステム Solelc におけるメモリ管理手法. 1469. 120. Machine A. Machine B. MASTER_RW. INVALID. parent. UNUSED. UNUSED. child. (a) normal (b) with lazy evaluation. 100. attach. time(ms). 80. attach. 40. MASTER_RW. INVALID. MASTER_RW. INVALID. INVALID. MASTER_RW. NONE. NONE. copy. MASTER_RO. REPLICA. 60. 20 0 200. MASTER_RW. (a) normal. MASTER_RW. INVALID. 計算機 A の抽象化層は,コピー元とコピー先 の領域で物理ページを共有することによって, 仮想的にコピーを行う.また,コピーが完了し. (b) with lazy evaluation. 図 10 プロセスの生成 Fig. 10 Creation of a process.. 600. する.. INVALID. (7) INVALID. 400 500 process size(Kbyte). 図 11 fork の処理時間 Fig. 11 Execution time of fork.. copy. MASTER_RW. 300. たことを計算機 B に通知する.. (8). 計算機 B の抽象化層は,コピーの完了をカー ネルに通知する.. B に作成される.したがって,親プロセスの各ページ は,計算機 A では MASTER RO 状態,計算機 B で. この場合,カーネルスレッドが親プロセスの内容を直. は REPLICA 状態に遷移する.その後カーネルスレッ. の領域のページを取得する必要がない.したがって,. ドが行うメモリコピーによって,子プロセスが ( 2 ) で. このとき行われる通信では,コピー要求やページの状. 確保されたメモリに生成される.すなわち,子プロセ. 態変更の要求のみが送受信され,ページの内容が送受. スは,カーネルスレッドが動作する計算機 B で新た. 信されることはない.また,計算機 A では,親プロ. に確保された物理メモリ上に生成される. プロセス生成時に,attach による要求時ページング や,copy による書き込み時コピーを用いた場合の処 . 理手順を以下に示す( 図 10 (b) ). (1). (2). (3). (4) (5). セスと子プロセスとの間で物理メモリが共有されるた め,物理メモリを消費することなく子プロセスを生成 することができる. 以上に述べた 2 つのプロセス生成方式における,メ. 計算機 B のカーネルスレッドは,子プロセスを. モリの確保およびコピーの処理時間を図 11 に示す.. 配置する領域を決定し ,この領域の attach を. 効率化を行うことによって,大幅に処理時間を短縮で. 抽象化層に要求する.. きていることが分かる.たとえば,プロセスのサイズ. カーネルからの要求は,計算機 B の抽象化層. が 208K バイトと最も小さい場合,効率化によって,. によって他の計算機にも通知され,すべての計. これを行わない場合の 12%程度の時間で処理すること. 算機で当該領域のページ状態が NONE に変更. ができる.また,効率化によって,プロセスのサイズ. される.. が増加したときの処理時間の増加量も減少している.. カーネルは,copy によって,親プロセスの内. これは,メモリの確保やコピーの処理が効率化された. 容を子プロセスの領域へコピーすることを抽象. 結果,1 つのページを処理する時間が短くなったため. 化層に要求する.. である.このように,Solelc では,複数の計算機間で. 計算機 B の抽象化層は,計算機 A にメモリコ. 共有されるアドレス空間においても,要求時ページン. ピーを要求する.. グや書き込み時コピーを行うことが可能であり,これ. 計算機 A の抽象化層は,他の計算機にコピー. によって,効率の良いメモリ管理を実現している.. 先の領域を INVALID にするよう要求する.. (6). 接読み出すことがないため,計算機 B は親プロセス. 各計算機上の抽象化層は,指定された領域の ページの状態を NONE から INVALID に変更. 多くの場合,新たに生成された子プロセスは,ex-. ecve システムコールを発行し,親プロセスとは異なる プログラムを実行する.このとき,fork によって生成.

(11) 1470. 情報処理学会論文誌. June 2001. されたプロセスの内容は,新たなプログラムのものに. た,メモリ管理方式がシステムの性能に与える影響に. 置き換えられる.したがって,fork 時にコピーされた. 関する研究も行われている7) .これらで検討された手. 内容の多くは,実際には使用されない.したがって,. 法は,多くのシステムで用いられており,非常に有効. (b) のように,書き込み時コピーを用いて,親プロセ スと子プロセスとで物理メモリを共有し,変更された. であるといえる.Solelc では,さらに,これらの手法. ページのみ実際のコピーを行うことによって,通信量. 適用している.これによって,分散環境においても効. や割り付ける物理メモリを削減することができる.. 率良くメモリ管理を行うことが可能となる.また,メ. を複数の計算機間で共有されるアドレス空間の管理に. このような,execve を含めた一連のプロセス生成. モリ管理に関しては,64 ビットアドレ ス空間に関す. 処理の評価として,2 台の計算機が動作する環境での. る検討も行われている8) .Solelc のような,複数の計. プロセス生成処理を考える.Solelc では,スレッドは. 算機間で共有されるアドレス空間に,各計算機の物理. 位置透過に動作可能である.したがって,fork によっ. メモリを割り付ける手法は,64 ビットアドレ ス空間. て生成された子プロセスのスレッドは,fork を要求し. の有効な利用方法の 1 つであると考えられる.. たスレッドとは異なる計算機上で動作することもでき. 分散環境でのメモリ管理として,分散共有メモリに. る.この子プロセスが,execve によって,起動後ただ. 関する研究がある.これらの研究では,様々な一貫性. ちに正常終了するようなプログラムを実行した場合,. 制御方式9)∼12) に関する検討が行われている.また,. fork の要求から子プロセスの終了の通知を受け取るま. これらの分散共有メモリの手法を,オペレーティング. での時間は 58 ms である.. システムが行うメモリ管理に適用する研究も行われて. 同様の処理を Linux 上で行うために,受信したメッ. いる13) .これらの多くは弱い一貫性を実現するもの. セージをプログラム名と解釈し ,これを実行した後,. であり,共有されるデータの特徴を知るプロセスが一. 実行結果を送信元に通知するプログラムを作成した.. 貫性制御に関わることによって処理の効率化を図って. このプログラムにメッセージを送り,リモートの計算. いる.これによって,分散並列処理を行うプロセスの. 機上でプロセスを実行し,その処理結果を取得するの. 効率的な動作を実現している.一方,Solelc で実現さ. に要する時間は 5 ms である.Solelc の場合に比べ処. れるメモリモデルは順序一貫性であり,共有領域上で. 理時間が短いのは,各プロセスが互いの位置をあらか. 動作するカーネルやプロセスは,一貫性制御を意識す. じめ知っており,位置管理のオーバヘッドをともなわ. ることなくコード やデータを共有することができる.. ないためである.また,リモートの計算機が実行する. また,Solelc では,抽象化層が効率的なメモリ管理を. プログラムを持っていることも,処理時間が短い理由. 行うための機能を実現し,これをカーネルに提供する. である.リモートの計算機が指定されたプログラムを. ことによって,遅延評価やページ内容の送受信回数の. 持っていない場合,これを他の計算機から取得する必. 削減を実現している.これによって,一貫性を弱いも. 要がある.しかし,Linux 上では,起動後ただちに終. のにすることなく,カーネルが効率的なメモリ管理を. 了するプログラムを取得するのみでも 25 ms の時間を. 行うことを可能としている.そのため,特定のアプリ. 要する.さらに,指定されたプログラムをどの計算機. ケーションに限らず,すべてのプロセスがメモリ資源. が持っているかを探すことや,取得したデータからプ. を効率良く使用することができる.. ログラムの実行環境を構築するなどの処理も必要とな. 近年,CORBA 14) に代表されるように,様々な分. る.一方,Solelc では,システムが持つプログラムは,. 散システムの検討が行われている.これらのシステム. 任意の計算機上で使用することができる.したがって,. では,リモートオブジェクトの操作や,スレッド の移. Solelc では,プロセス生成時においても資源の位置を. 送を実現している.Solelc では,すべての計算機でア. 意識する必要がない.このように,位置透過な資源の. ドレス空間を共有し,位置透過なメモリアクセスを実. 使用が実現されると,システムが持つすべての資源を. 現しているため,スレッドは任意の計算機上で,コー. 効率良く利用することが可能となる.. ドを実行しデータにアクセスすることができる.その. 8. 関 連 研 究. ため,レジスタ情報などのスレッドを管理する最小限. メモリ管理の効率化は,システムの性能に大きく影. ることができる.さらに,Solelc では,共有されるア. の情報のみの移送によって,スレッド の移送を実現す. 響するため,多くのシステムで行われている.たとえ. ドレス空間内に I/O がマップされた物理メモリを割り. ば,Mach 6) では物理メモリの割付けを工夫し遅延評. 付けることができ,このような特定の計算機の資源に. 価などを行うことによって,効率化を図っている.ま. 対するアクセスも位置透過に行うことが可能である..

(12) Vol. 42. No. 6. 分散オペレーティングシステム Solelc におけるメモリ管理手法. 9. お わ り に 本論文では,分散オペレーティングシステム Solelc におけるメモリ管理手法について述べた.本メモリ管 理手法では,従来の単一計算機でのメモリ管理に用い られている手法を,複数の計算機間で共有されるアド レス空間の管理に適用している.これによって,分散 環境においても,メモリ資源を効率的に利用すること や,アドレス空間内に割り付けた特定の計算機の資源 を位置透過に操作することが可能となる.今後は,本 メモリ管理手法を用いたファイル管理の効率化などの 検討を行う予定である.. 参. 考 文. 献. 1) 芝 公仁,大久保英嗣:位置透過な資源管理の ための計算機資源の抽象化手法,情報処理学会研 究報告,Vol.2000, No.21, pp.67–72 (2000). 2) 芝 公仁,大久保英嗣:分散オペレーティング システム Solelc の構成,情報処理学会研究報告, Vol.2000, No.43, pp.237–244 (2000). 3) 水口孝夫,芝 公仁,大久保英嗣:分散オペレー ティングシステム Solelc におけるファイルシス テムの構築,情報処理学会研究報告,Vol.2000, No.43, pp.245–252 (2000). 4) 永宗宏一,芝 公仁,大久保英嗣:分散オペレー ティングシステム Solelc における負荷分散機構, 情報処理学会研究報告,Vol.2000, No.75, pp.39– 46 (2000). 5) Lamport, L.: How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs, IEEE Trans. Comput., Vol.C28, No.9, pp.690–691 (1979). 6) Accetta, M., Baron, R., Golub, D., Rashid, R., Tevanian, A. and Young, M.: Mach: A New Kernel Foundation for UNIX Development, Proc. Summer 1986 USENIX Technical Conference and Exhibition (1986). 7) Chen, J.B. and Bershad, B.N.: The impact of operating system structure on memory system performance, 14th ACM Symposium on Operating Systems Principles, Ashville, NC, USA, December 5–8, 1993, Operating Systems Review, Vol.27(5), No.5, pp.120–133, ACM Press (1993). 8) Bartoli, A., Mullender, S.J. and van der Valk, M.: Wide-Address Spaces—Exploring the Design Space, ACM Operating Systems Review, Vol.27, No.1, pp.11–17 (1993). 9) Gharachorloo, K., Lenoski, D., Laudon, J., Gibbons, P., Gupta, A. and Hennessy, J.: Memory Consistency and Event Ordering. 1471. in Scalable Shared-Memory Multiprocessors, Proc. 17th Annual International Symposium on Computer Architecture, Vol.18, No.2, pp.15–26 (1990). 10) Keleher, P., Cox, A.L. and Zwaenepoel, W.: Lazy Release Consistency for Software Distributed Shared Memory, Proc. 19th Annual Int’l Symp. on Computer Architecture (ISCA’92 ), pp.13–21 (1992). 11) Bershad, B.N., Zekauskas, M.J. and Sawdon, W.A.: The Midway Distributed Shared Memory System, Technical Report CS-93-119, Carnegie Mellon University, School of Computer Science (1993). 12) Iftode, L., Singh, J.P. and Li, K.: Scope Consistency: A Bridge between Release Consistency and Entry Consistency, Proc. 8th ACM Annual Symp. on Parallel Algorithms and Architectures (SPAA’96 ), pp.277–287 (1996). 13) 古川 陽,柴山悦哉:大域アドレ ス空間に基づ く分散 OS におけるオブジェクト移送の実現,情 報処理学会研究報告,Vol.94, No.64, pp.169–176 (1994). 14) CORBA Website: http://www.corba.org/. (平成 12 年 12 月 15 日受付) (平成 13 年 4 月 6 日採録) 芝. 公仁( 学生会員). 昭和 49 年生.平成 11 年立命館大 学大学院理工学研究科博士課程前期 課程修了.現在,同大学院理工学研 究科博士課程後期課程に在学中.オ ペレーティングシステム,分散シス テム,実時間システム等に興味を持つ. 大久保英嗣( 正会員) 昭和 26 年生.昭和 52 年北海道 大学大学院工学研究科情報工学専攻 修士課程修了.同年(株)日立製作 所ソフトウエア工場入所.主として. FORTRAN コンパイラの開発に従 事.昭和 54 年京都大学工学部情報工学科助手.昭和. 60 年同講師.昭和 62 年同助教授.平成 3 年立命館大 学理工学部情報学科教授となり,現在に至る.工学博 士.オペレーティングシステム,データベースシステ ム,分散システム,実時間システム等の研究に従事. 電子情報通信学会,日本ソフトウェア科学会,システ ム制御情報学会,ACM,IEEE-CS 各会員..

(13)

表 1 メモリ管理インタフェース Table 1 Interfaces for memory management.
表 2 メモリ操作のためのシステムコール Table 2 System calls for memory operation.
図 8 パイプにおけるメモリコピー Fig. 8 Memory copy for pipe.
図 11 fork の処理時間 Fig. 11 Execution time of fork.

参照

関連したドキュメント

VMWare Horizon HTMLAccess はこのままログインす ればご利用いただけます。VMWare Horizon Client はク

「Silicon Labs Dual CP210x USB to UART Bridge : Standard COM Port (COM**)」. ※(COM**) の部分の

第一の場合については︑同院はいわゆる留保付き合憲の手法を使い︑適用領域を限定した︒それに従うと︑将来に

一部エリアで目安値を 超えるが、仮設の遮へ い体を適宜移動して使 用するなどで、燃料取 り出しに向けた作業は

 大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも

 大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも

当該 領域から抽出さ れ、又は得ら れる鉱物その他の 天然の物質( から までに 規定するもの

製品の配送までをコンピューターを使って総合的に管理する経営手法)の観点から