Upload
wso2
View
56
Download
0
Tags:
Embed Size (px)
Citation preview
04/15/2023 1
M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, H´ector M. Brice˜no, Russell Hunt, David Mazi`eres, Thomas Pinckney, Robert Grimm, John Jannotti, and Kenneth Mackenzie,
“Application Performance and Flexibility on Exokernel Systems,”M.I.T. Laboratory for Computer Science, Cambridge, MA 02139, U.S.A
PRESENTED BY: SUNETH EKANAYAKE (158213P)
KUGATHASAN ABIMARAN (158201D)
04/15/2023 2
Outline• Introduction• Exokernel architecture• Disk system - XN• Overview of Xok/ ExOS • Performance of unaltered and specialized applications • Global performance of the exokernel systems• Conclusion
04/15/2023 3
OS - Kernel• Mandatory part of the OS• Common to all applications• Responsible for• Security• Management of resources• Enabling a uniform execution environment
Source : http://en.wikipedia.org/wiki/Kernel_(operating_system)
04/15/2023 4
Operating System Kernel Variants• Monolithic kernels• Microkernels• Hybrid (or Modular) kernels• Nanokernels• Exokernels
04/15/2023 5
Why Exokernel Approach ?• In traditional operating systems, systems resources are
managed only by• privileged software• kernel
• Untrusted applications are restricted to • interfaces and implementations of privileged software.
04/15/2023 6
Exokernel Architecture
• Anybody can manage resources. • Exokernels separate protection
from management.• Implemented applications are
called library operating systems (libOSes)• Kernel only ensures that
requested resource is free, and application is allowed to access it. Source : http://en.wikipedia.org/wiki/Exokernel
04/15/2023 7
Have you noticed?• Kernel -> Human Skeleton • Exokernel -> Exoskeleton • Hardware -> Muscle System• LibOS -> Motor System• Programs -> Mind Generated Instructions
04/15/2023 8
You will get to know …• Significant performance improvements for applications ? • Performance of traditional applications (unaltered UNIX
applications) ? • Global performance ? • Integrity of the system ?
04/15/2023 9
Exokernel Principles• Separate protection and management• Expose allocation• Expose names• Expose revocation• Expose information
04/15/2023 10
Exokernel Architecture• Gives more control to applications through libOSes, such as• User level networking • Application controlled virtual memory• File systems
• Traditional operating systems provides only high level abstractions. • Files
• Exokernels allow low level abstractions.• Files• Metadata, Disk blocks, Buffer cache pages
04/15/2023 11
Exokernel Architecture cont’d…• Multiplexing the CPU• Allows a process to save or restore its own registers
• Multiplexing Main Memory• Guards memory accesses between competing
• Multiplexing the Stable Storage• Provides libOSes with access to stable storage at disk block level
04/15/2023 12
Multiplexing Stable Storage• Safely multiplex disks among multiple library file systems
(libFSes).• Allow multiple libFSes to safely share files at raw disk block and
metadata level.• Facilitate cache sharing among libFSes• Address problems of cache coherence, security, and
concurrency.
04/15/2023 13
Overview of XN• Employs UDFs (untrusted deterministic functions). • UDFs allow kernel to safely and efficiently handle any metadata
layout.• Challenge : Efficiently determining access rights to a given disk
block.• CFFS: A library file system (collocating fast file system)• A UNIX like library file system based on XN
04/15/2023 14
Overview of Xok• Multiplex physical resources• CPU multiplexed using round-robin schedules• Application prevented direct access of page tables in x86• Allows efficient Virtual Memory abstraction in application level• Wakeup Prediction, a Boolean expression injected into kernel• Application won’t be scheduled if prediction doesn’t hold• Predicates are efficient, simple but powerful
04/15/2023 15
Overview of ExOS 1.0• Simple and Flexible• Any ExOS functionality can be replaced by application code• Still in research, not production ready• Runs most shells, file utilities and networking applications• Paging, Process swapping, progress groups, windowing are
missed
04/15/2023 16
Performance• Untrusted LibOS support UNIX apps with same performance• Some unaltered UNIX apps runs faster because C-FFS• Kernel programmers can do any optimizations • Tests were carried out by running I/O intensive benchmarks• Even bulk of operations are in application level, Xok perform
comparably well• 19 seconds faster than FreeBSD and OpenBSD
04/15/2023 17
Base System Performance
• Xok/ExOS total running time 41 sec• OpenBSD/C-FFS 51 sec• Pax, cp, diff considerable fast• Cost of low level multiplexing
is negligible
04/15/2023 18
Global Performance• Decentralized resource management provides better
performance for individual apps• ExOS is weak running multiple apps concurrently• Selfish apps consumes large resources and utilizing I/O heavily• Not extensively studied, total running time was used in the
measurements• FreeBSD > OpenBSD > Exokernel in Global Performance
04/15/2023 20
Experience• Exposing kernel data structure makes powerful extensible
mechanism• No well defined system API, apps have to recompile if kernel
changes• Libraries are simpler than kernel• Edit, Compile, Debug is faster than Edit, Compile, Reboot,
Debug
04/15/2023 21
Costs of Xok/ExOS• Exokernel interface design isn’t simple, gone through multiple
cycle• Have to allow unprivileged apps to manage resources• Have to protected resources• Valuable Information loss
04/15/2023 22
Advantages and Lessons• Ability to manage their own resources while kernel
maintaining protection. • Ability to enforce a global policy for protection that a
traditional OS can. • Can perform scheduling-related functions previously
performed only by the kernel. • Libraries are simpler to develop than kernels. • Faster development than trusted operating system.• User level page tables are complex
04/15/2023 23
Conclusion• Improved OS performance and flexibility by providing
applications with the capability to manage their own resources. • Unmodified UNIX programs and aggressive applications
optimized using a libOS, performed well on Xok.• Rapid OS development• Competitive performance on un modified UNIX apps even
under heavy multitasking