SPIN Operating System

37
SPIN Operating System hamanaka 2001/06/20

description

SPIN Operating System. hamanaka 2001/06/20. SPIN Research Project. SPIN は University of Washington で開発 様々な団体や企業が参画(資金提供など) DEC, ARPA, Intel, IBM, etc. 現在行われている research project Security for extensible systems Transaction Support Dynamic Compilation Unix Emulation - PowerPoint PPT Presentation

Transcript of SPIN Operating System

SPIN Operating System

hamanaka2001/06/20

SPIN Research Project SPIN は University of Washington で開発 様々な団体や企業が参画(資金提供など)

DEC, ARPA, Intel, IBM, etc. 現在行われている research project

Security for extensible systems Transaction Support Dynamic Compilation Unix Emulation Application-Controlled Caching Safe Programmable and Integrated Network Environment

構成 背景 用途 目標 & アプローチ SPIN の構成

extension code The Core Systems

性能評価

背景 application の OS への要求の多様化

cf. multimedia, database, network

既存の OS のインターフェースでは十分に対応しきれない

⇒ application specific なインターフェース   (サービス)を動的に作成できるインフラがあると嬉しい

用途 Application-specific …

inter-process communication virtual memory user-level scheduling network protocol file systems and buffer cache

management etc.

SPIN の目標 extensible, safe, efficient な OS の構築

user code を動的に kernel 内に install かつ

flexibility, safety, efficiency は保つ

アプローチ language と runtime service の利点を利用

low-cost, fine-grained, protected access SPIN のよってたつ technique

co-location enforced modularity logical protection domain dynamic call binding

Modula-3 で実装 object-oriented, type-safe language

SPIN の構成 extension services

dynamic linker など 機能拡張のための  枠組み

core system services memory access など

 最も基本的なサービス

kernel

dynamic linkerverifie

r

extension servicecore system serviceextension code

application の形態1. すべて user space2. すべて kernel space3. user space と kernel space

1. 2. 3.

core system serviceextension code

application

The Extension Services system code と user code を安全に結びつ

ける ソフトウェアインフラを提供 次の2つのモデル

Protection Model efficient, fine grained access control of resources

Extension Model extension definable at Procedure Call granularity

language-level service, static type checking, dynamic linking で実現

< Protection Model> extension code ごと

の access control 機構 language level で実現

virtual memory system ではない

用語(概念) capability protection domain

kernel

core system serviceextension code

capability resource への pointer

ここで resource は a system object an interface a collection of interface

language level の pointer で実装

user-level への受け渡し可 externalized reference

(別紙参照)

kernel

core system serviceextension code

1

2

application

capability

externalized capability

protection domain code から参照される(可能

な)名前の集合 symbolic table のようなも

の 名前: program symbols domain 外の名前にはアクセ

ス不可 can be intersecting or disjoint

( capability による参照される)

kernel

obj inter1

inter2

ext2ext1

objinter1ext2

inter2inter1

domain1 domain2

protection domain の操作 Create:        

object file から作成 CreateFromModule:   

現在の module から作成 Resolve:        d

omain 中の名前と実体を関連付け

Combine:       domain の union 作成

(別紙参照)

kernel

obj inter1

inter2

ext2ext1

objinter1ext2

inter2inter1

domain1 domain2

inter1

export and import of domain in-kernel nameserver へ登録

明示的に domain を export authorizer も登録可

Module 間の直接渡し domain は capability で参照

< Extensional Model> System 提供のサービス変更機構 概要

event & handler による拡張の定義 dispatcher で event に対し handler を登録 条件実行のために guard を利用 access control のために authority 利用

(別紙参照)

Event 本来は System からのメッセージ SPIN では

event は procedure signature で定義 event raise は procedure call に相当 ⇒ procedure call の粒度でサービスを提供

Handler event raise に応じて実行される proced

ure 拡張サービスの実体

event と同じ型 event に対して dispatcher で登録 一つの event に対して複数登録可 intrinsic handler: event と同名の handler

で必ず実行される

Guard handler に関連付けられる predicate filter の役割

handler の実行前に評価 true: handler を実行 false: handler を無視

一つの handler に対して複数登録可 引数の型は event と同じ: 返り値は boolean guard 内で副作用不可

Authority intrinsic handler を定義する module event に対する access control を行う

dispatcher による authorizer の登録 handler の install, 実行 を制御 handler へ 新たな guard の不可

Dispatcher handler 実行のコア部分 runtime code generation で最適化

handler 一つかつ synchronous: event raise == procedure call handler の inline 化など

その他 handler 実行の ordering 可

決定機構をもつ First, Last, Next, After で明示的に指定

複数 handler の場合の返り値 result handler が決定

その他 handler の実行は次の2パターン

asynchronous synchronous with time limitation

後者は “ EPHEMERAL” の annotation を付加 handler が多すぎる場合

メモリ使用量膨大 対応は future work

The Core Services 以上は拡張 code を扱う枠組みの話

いくつかの core service を用意 memory management thread management

これらを利用して application 特化の機能を実現

memory management 3つのコンポーネントに分解

physical storage naming translation (別紙参照)

これらを用いて様々な実装可 UNIX address space semantics を実装

thread management SPIN では “ strand” を実装

(別紙参照)

これを用いて Thread Package 作成可 DEC   OSF/1 kernel thread Mach C-Threads Modula-3 thread

性能評価 次の4つの点に注目

System size Microbenchmarks Netwoking End-to-end performance

性能評価 環境 : DEC Alpha 133MHz XAP 3000/400 workstation

s, each machine 64 MBs of memory, 512KB unified external cache, HP C2247-300 1GB disk-drive, 10Mb/sec Lance Ethernet interface, FORE TCA-100 155Mb/sec ATM adapter card co

nnected to FORE ASX-200 switch.

System size (別紙参照)

sys : extensibility machinery, domains, naming, linking, dispatching

core : virtual memory and scheduling rt : DEC SRC Modula-3 runtime lib : subset of Modula-3 library and mundan

e data structures sal : low level interface of device drivers and

MMU.

Microbenchmarks (別紙参照)

Protected communication Thread management Virtual memory

SPIN の優位性 kernel extension ( Translation.ProtectionFault )の

利用 一連の interaction が application に高速に反映

Networking (別紙参照)

Latency and Bandwidth Protocol forwarding

End-to-end performance (別紙参照) Video Streaming Server-Client

Server: 3つの拡張 Client: 1つの拡張

Extension size (別紙参照)

機能が複雑になるにつれ size も増大

まとめ SPIN operating system は

機能拡張のための効率的な機構 および 拡張可能な機能の core set を提供

extensible かつ safe かつ good performance を達成

Reference(1/2) “Extensibility, Safety and Performance in the SPIN Oper

ating System”, Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, David Becker, Marc Fiuczynski, Craig Chambers, Susan Eggers, in Proceedings of the 15th ACM Symposium on Operating System Principles (SOSP-15), Copper Mountain, CO. pp. 267--284.

“Dynamic Binding for an Extensible System”, Przemyslaw Pardyak, Brian Bershad, in Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation (OSDI), Seattle, WA, pp. 201-212, October 1996.

Reference(2/2) “Safe Dynamic Linking in an Extensible Operating Syst

em” , Emin Gun Sirer, Marc Fiuczynski, Przemyslaw Pardyak, Brian Bershad, Appeared in the Workshop on Compiler Support for System Software, February 1996.

“SPIN - An Extensible Microkernel for Application-specific Operating System Services”, Brian Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan McNamee, Przemyslaw Pardyak, Stefan Savage, Emin Gun Sirer, University of Washington, Technical Report TR-94-03-03.

自分の研究との絡み