SPIN Operating System hamanaka 20010620 SPIN Research Project

  • Slides: 37
Download presentation
SPIN Operating System hamanaka 2001/06/20

SPIN Operating System hamanaka 2001/06/20

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

SPIN Research Project n n SPIN は University of Washington で開発 様々な団体や企業が参画(資金提供など) n n DEC, ARPA, Intel, IBM, etc. 現在行われている research project n n n Security for extensible systems Transaction Support Dynamic Compilation Unix Emulation Application-Controlled Caching Safe Programmable and Integrated Network Environment

用途 n Application-specific … n n n inter-process communication virtual memory user-level scheduling network

用途 n Application-specific … n n n inter-process communication virtual memory user-level scheduling network protocol file systems and buffer cache management etc.

SPINの目標 n extensible, safe, efficient なOSの構築 n n user codeを動的にkernel内に install かつ flexibility, safety,

SPINの目標 n extensible, safe, efficient なOSの構築 n n user codeを動的にkernel内に install かつ flexibility, safety, efficiency は保つ

アプローチ n language と runtime service の利点を利用 n n SPIN のよってたつ technique n n

アプローチ n language と runtime service の利点を利用 n n SPIN のよってたつ technique n n n low-cost, fine-grained, protected access co-location enforced modularity logical protection domain dynamic call binding Modula-3 で実装 n object-oriented, type-safe language

SPINの構成 n extension services n n dynamic linker など  機能拡張のための   枠組み extension service core

SPINの構成 n extension services n n dynamic linker など  機能拡張のための   枠組み extension service core system service extension code core system services n memory accessなど  最も基本的なサービス dynamic linker verifier kernel

application の形態 1. すべて user space 2. すべて kernel space 3. user space と

application の形態 1. すべて user space 2. すべて kernel space 3. user space と kernel space 1. 2. core system service extension code application 3.

The Extension Services n n system code と user code を安全に結びつける ソフトウェアインフラを提供 次の2つのモデル n

The Extension Services n n system code と user code を安全に結びつける ソフトウェアインフラを提供 次の2つのモデル n Protection Model n n efficient, fine grained access control of resources Extension Model n extension definable at Procedure Call granularity language-level service, static type checking, dynamic linking で実現

<Protection Model> n n extension code ごとの access control機構 language level で実現 n n

<Protection Model> n n extension code ごとの access control機構 language level で実現 n n core system service extension code virtual memory system ではない 用語(概念) n n capability protection domain kernel

capability n resource への pointer n ここで resource は n n n extension code

capability n resource への pointer n ここで resource は n n n extension code application a system object an interface a collection of interface language level の pointer で実装 user-level への受け渡し可 n core system service externalized reference capability externalized capability 1 2 (別紙参照) kernel

protection domain n n codeから参照される(可能な) 名前の集合 symbolic table のようなもの n n n 名前: program

protection domain n n codeから参照される(可能な) 名前の集合 symbolic table のようなもの n n n 名前: program symbols domain 外の名前にはアクセス 不可 can be intersecting or disjoint (capability による参照される) domain 1 domain 2 obj inter 1 ext 2 ext 1 obj inter 1 inter 2 kernel

protection domainの操作 n n n Create:         object file から作成 Create. From. Module:   

protection domainの操作 n n n Create:         object file から作成 Create. From. Module:    現在のmoduleから作成 Resolve:        domain中の名前と実体 を関連付け Combine:       domain の union 作成 domain 1 domain 2 obj inter 1 ext 2 inter 1 ext 2 ext 1 obj inter 1 inter 2 (別紙参照) kernel

export and import of domain n in-kernel nameserver へ登録 n n n 明示的に domain

export and import of domain n in-kernel nameserver へ登録 n n n 明示的に domain を export authorizer も登録可 Module間の直接渡し n domain は capability で参照

<Extensional Model> n n System提供のサービス変更機構 概要 n event & handlerによる拡張の定義 dispatcher で event に対し

<Extensional Model> n n System提供のサービス変更機構 概要 n event & handlerによる拡張の定義 dispatcher で event に対し handlerを登録 条件実行のために guardを利用 access control のために authority利用 n (別紙参照) n n n

Event n n 本来はSystemからのメッセージ SPIN では event は procedure signature で定義 n event raise

Event n n 本来はSystemからのメッセージ SPIN では event は procedure signature で定義 n event raise は procedure call に相当 ⇒ procedure call の粒度でサービスを提供 n

Handler n n event raiseに応じて実行されるprocedure 拡張サービスの実体 n n event と同じ型 event に対して dispatcher で登録

Handler n n event raiseに応じて実行されるprocedure 拡張サービスの実体 n n event と同じ型 event に対して dispatcher で登録 一つのeventに対して複数登録可 intrinsic handler: event と同名の handlerで 必ず実行される

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

Authority n n intrinsic handler を定義する module event に対する access control を行う n dispatcher による authorizer の登録 n n handler の install, 実行 を制御 handler へ 新たな guard の不可

Dispatcher n n handler 実行のコア部分 runtime code generation で最適化 n n handler一つかつsynchronous: event raise

Dispatcher n n handler 実行のコア部分 runtime code generation で最適化 n n handler一つかつsynchronous: event raise == procedure call handler の inline化など

その他 n handler 実行のordering可 n n n 決定機構をもつ First, Last, Next, After で明示的に指定 複数

その他 n handler 実行のordering可 n n n 決定機構をもつ First, Last, Next, After で明示的に指定 複数 handler の場合の返り値 n result handler が決定

その他 n handler の実行は次の2パターン n asynchronous with time limitation n 後者は “EPHEMERAL” のannotationを付加 n

その他 n handler の実行は次の2パターン n asynchronous with time limitation n 後者は “EPHEMERAL” のannotationを付加 n n handlerが多すぎる場合 n n メモリ使用量膨大 対応は future work

The Core Services n 以上は拡張codeを扱う枠組みの話 n いくつかの core serviceを用意 n n memory management thread

The Core Services n 以上は拡張codeを扱う枠組みの話 n いくつかの core serviceを用意 n n memory management thread management これらを利用してapplication特化の機能を実現

memory management n 3つのコンポーネントに分解 physical storage n naming n translation  (別紙参照) n n これらを用いて様々な実装可

memory management n 3つのコンポーネントに分解 physical storage n naming n translation  (別紙参照) n n これらを用いて様々な実装可 n UNIX address space semantics を実装

thread management n SPINでは “strand” を実装 (別紙参照) n これを用いて Thread Package 作成可 n n

thread management n SPINでは “strand” を実装 (別紙参照) n これを用いて Thread Package 作成可 n n n DEC OSF/1 kernel thread Mach C-Threads Modula-3 thread

性能評価 n 次の4つの点に注目 n n System size Microbenchmarks Netwoking End-to-end performance

性能評価 n 次の4つの点に注目 n n System size Microbenchmarks Netwoking End-to-end performance

性能評価 n 環境: DEC Alpha 133 MHz XAP 3000/400 workstations, each machine 64 MBs

性能評価 n 環境: DEC Alpha 133 MHz XAP 3000/400 workstations, each machine 64 MBs of memory, 512 KB unified external cache, HP C 2247 -300 1 GB disk-drive, 10 Mb/sec Lance Ethernet interface, FORE TCA-100 155 Mb/sec ATM adapter card connected to FORE ASX-200 switch.

System size n (別紙参照) n n n sys : extensibility machinery, domains, naming, linking,

System size n (別紙参照) n n n 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 mundane data structures sal : low level interface of device drivers and MMU.

Microbenchmarks n (別紙参照) n n n Protected communication Thread management Virtual memory n SPINの優位性

Microbenchmarks n (別紙参照) n n n Protected communication Thread management Virtual memory n SPINの優位性 n n kernel extension(Translation. Protection. Fault)の利用 一連のinteractionがapplicationに高速に反映

Networking n (別紙参照) n n Latency and Bandwidth Protocol forwarding

Networking n (別紙参照) n n Latency and Bandwidth Protocol forwarding

End-to-end performance n n (別紙参照) Video Streaming Server-Client n n Server: 3つの拡張 Client: 1つの拡張

End-to-end performance n n (別紙参照) Video Streaming Server-Client n n Server: 3つの拡張 Client: 1つの拡張

Reference(1/2) n “Extensibility, Safety and Performance in the SPIN Operating System”, Brian Bershad, Stefan

Reference(1/2) n “Extensibility, Safety and Performance in the SPIN Operating System”, Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, David Becker, Marc Fiuczynski, Craig Chambers, Susan Eggers, in Proceedings of the 15 th ACM Symposium on Operating System Principles (SOSP-15), Copper Mountain, CO. pp. 267 --284. n “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) n “Safe Dynamic Linking in an Extensible Operating System” , Emin Gun Sirer,

Reference(2/2) n “Safe Dynamic Linking in an Extensible Operating System” , Emin Gun Sirer, Marc Fiuczynski, Przemyslaw Pardyak, Brian Bershad, Appeared in the Workshop on Compiler Support for System Software, February 1996. n “SPIN - An Extensible Microkernel for Applicationspecific Operating System Services”, Brian Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan Mc. Namee, Przemyslaw Pardyak, Stefan Savage, Emin Gun Sirer, University of Washington, Technical Report TR-94 -03 -03.