1 / 37

SPIN Operating System

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

yeo-sexton
Download Presentation

SPIN Operating System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPIN Operating System hamanaka 2001/06/20

  2. 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

  3. 構成 • 背景 • 用途 • 目標 & アプローチ • SPINの構成 • extension code • The Core Systems • 性能評価

  4. 背景 • application のOSへの要求の多様化 cf. multimedia, database, network • 既存のOSのインターフェースでは十分に対応しきれない ⇒ application specific なインターフェース   (サービス)を動的に作成できるインフラがあると嬉しい

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

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

  7. アプローチ • 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

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

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

  10. 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 で実現

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

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

  13. protection domain domain1 domain2 • codeから参照される(可能な)名前の集合 • symbolic table のようなもの • 名前: program symbols • domain 外の名前にはアクセス不可 • can be intersecting or disjoint (capability による参照される) obj inter2 inter1 inter1 ext2 ext2 ext1 obj inter1 inter2 kernel

  14. inter1 protection domainの操作 domain1 domain2 • Create: object file から作成 • CreateFromModule:   現在のmoduleから作成 • Resolve: domain中の名前と実体を関連付け • Combine: domain の union 作成 • (別紙参照) obj inter2 inter1 inter1 ext2 ext2 ext1 obj inter1 inter2 kernel

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

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

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

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

  19. Guard • handler に関連付けられるpredicate • filter の役割 • handler の実行前に評価 • true: handler を実行 • false: handler を無視 • 一つのhandlerに対して複数登録可 • 引数の型はeventと同じ: 返り値は boolean • guard 内で副作用不可

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

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

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

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

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

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

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

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

  28. 性能評価 • 環境: DEC Alpha 133MHz XAP 3000/400 workstations, 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 connected to FORE ASX-200 switch.

  29. 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 mundane data structures • sal : low level interface of device drivers and MMU.

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

  31. Networking • (別紙参照) • Latency and Bandwidth • Protocol forwarding

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

  33. Extension size • (別紙参照) • 機能が複雑になるにつれsizeも増大

  34. まとめ • SPIN operating systemは • 機能拡張のための効率的な機構 および 拡張可能な機能の core set を提供 • extensible かつ safe かつ good performance を達成

  35. Reference(1/2) • “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 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.

  36. Reference(2/2) • “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. • “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.

  37. 自分の研究との絡み

More Related