170 likes | 417 Views
Application Performance on Exokernel Systems. B4. グェン トアン ドゥク. 出典. Dawson R. Engler, et al.: Application Performance and Flexibility on Exokernel Systems (SOSP 97). 内容. Exokernel overview( 前回の復習) Exokernel performance 実験環境 実験結果 & 考察. 1. Exorkernel overview ( 復習). 管理機能と保護機能を分離する
E N D
Application Performance on Exokernel Systems B4. グェン トアン ドゥク
出典 • Dawson R. Engler, et al.: Application Performance and Flexibility on Exokernel Systems (SOSP 97)
内容 • Exokernel overview(前回の復習) • Exokernel performance • 実験環境 • 実験結果 & 考察
1. Exorkernel overview(復習) • 管理機能と保護機能を分離する • 何でもapplicationに見せる(CPU, TLB, interrupt…) • Application(LibOS)がvirtual memory, file system, network…を実装 • 重要なtechniques: secure binding, code downloading, UDF(unstrusted deterministic function), DPF(dynamic packet filtering)
2. Exorkernel performance • 2.1. 実験環境 • 2.2. 実験結果 & 考察
2.1. 実験環境 • Hardware: Intel Pentium Pro 200MHz, 256KB on-chip L2 cache, 64 MB RAM, Quantum Atlas XP32150 disk driver • Software: Xok/ExOS, FreeBSD 2.2.2, Open BSD 2.1 • File system: C-FFS, FreeBSD FS, …
2.2. 実験結果 & 考察 • I/O intensive benchmark: programs in installing software package
I/O intensive benchmark result Xok/Exos Optimized C-FFS I/O intensive benchmark result
C-FFS file system • Xok/ExOS はC-FFS file systemを使う. • C-FFS(co-locating fast file system)はXokのlow-level in-kernel stable storage system(XN) • XNはUDFのowns関数を使って保護機能を実現 • XNはcache registryを持つ. Cache registryには、mappingだけがある。Disk-blockの内容はapplicationのmemoryにある • Applicationがcaching policyを決める. XNはregistryの中のphysical pageを削除しない
XNの保護機能 • UDFで保護機能を実現 • UDFのコストが小さい • Protection tends to be off of the critical path • XN operations tend to be embedded in heavy-weight disk operations • For example, most block operations on cached blocks can simply interact with the buffer cache registry, rather than using to UDFs. Even if neither of these two conditions held, UDFs would not add significant overhead: most UDFs tend to be fairly simple, and if they were directly executed rather than interpreted, cost a few tens of instructions • While an exokernel can impose extra protection checks, it also makes some operations cheaper: using a library operating system means that many operations that formerly required system calls now can be performed with function calls. Thus, for some uses an exokernel is intrinsically faster than a more traditional system
I/O intensive benchmarkの性能 • I/O intensive benchmarkでは、Xok/ExOSが2,3倍FreeBSDより高速. それは、C-FFSの最適化の効果である。 • UDFでkernelがすぐ権限をチェックできる • Cacheの内容がapplicationのmemory領域にある
Global Performance(1) • Application poolを用意する。Pseudo-random generator を使って、applicationをpickして走らせる • 実行するapplicationの総数(N), 並行に実行できる最大のapplication数(M)を決める • その条件の下で、かかる時間を計る
Global performance(2) • Mixed I/O intensive with CPU intensive application pool: pax –w, grep, cksum(compute checksum), solve Travelling salesman problem(tsp), solve Lapace equation using SOR, wc, gcc, gzip, gunzip, …
Mixed pool result Mixed pool result(time in log scale), N/M: applicationの総数, 最大並行数. Max: maximum run time of an application in the pool, Total: total time to execute pool ExokernelとFreeBSDは同じぐらい
Specialized application pool • C-FFS performance を利用するapplications(pax, cp, diff 2 identical 5MB file)と普通のapplicationのmixed • 実験方法はMixed I/O, CPU intensive poolと同じ
Specialized pool result Time in log scale
Global performance が良くなる理由 • Local optimization can mean there are more resources for the entire system • Exokernel gives application writers machinery to orchestrate inter-application resource management, allowing them to perform domain-specific global optimizations no possible on current centralized systems • Exokernel can unify the many space-partitioned caches in current systems(e.g., the buffer cache, network buffers…) • Since applications can know when resources are scarce, they can make better use of resources when layering abstraction (e.g., web serverthat caches documents in virtual memory could stop caching documents when its cache does not fit in main memory