Page 45 - DCAP403_Operating System
P. 45

Operating System




                    Notes          most commonly to improve a program’s performance. It also allows programmers to choose
                                   what level of abstraction they want, high, or low.
                                   Exokernels can be seen as an application of the end-to-end principle to operating systems, in that
                                   they do not force an application program to layer its abstractions on top of other abstractions that
                                   were designed with different requirements in mind.

                                          Example: In the MIT Exokernel project, the Cheetah web server stores preformatted
                                   Internet Protocol packets on the disk, the kernel provides safe access to the disk by preventing
                                   unauthorized reading and writing, but how the disk is abstracted is up to the application or the
                                   libraries the application uses.

                                   Operating systems define the interface between applications and physical resources.

                                   Unfortunately, this interface can significantly limit the performance and implementation
                                   freedom of applications. Traditionally, operating systems hide information about machine
                                   resources behind high-level abstractions such as processes, files, address spaces and interprocess


                                   communication. These abstractions define a virtual machine on which applications execute; their
                                   implementation cannot be replaced or modified by untrusted applications.

                                   Hardcoding the implementations of these abstractions is inappropriate for three main reasons:
                                   1.   It denies applications the advantages of domain-specifi c optimizations,
                                   2.   It discourages changes to the implementations of existing abstractions, and

                                   3.  It restricts the flexibility of application builders, since new abstractions can only be added
                                       by awkward emulation on top of existing ones (if they can be added at all).
                                   These problems can be solved through application level resource management in which traditional
                                   operating system abstractions, such as Virtual Memory (VM) and Interprocess Communication
                                   (IPC), are implemented entirely at application level by untrusted software. In this architecture, a
                                   minimal kernel-called an exokernel-securely multiplexes available hardware resources. Library
                                   operating systems, working above the exokernel interface, implement higher-level abstractions.
                                   Application writers select libraries or implement their own. New implementations of library
                                   operating systems are incorporated by simply relinking application executables. Applications
                                   can benefit greatly from having more control over how machine resources are used to implement

                                   higher-level abstractions. The high cost of general-purpose virtual memory primitives reduces
                                   the performance of persistent stores, garbage collectors, and distributed shared memory systems.

                                   Application-level control over file caching can reduce application-running time considerably.

                                   Application-specific virtual memory policies can increase application performance. The

                                   inappropriate  file-system implementation decisions can have a dramatic impact on the
                                   performance of databases. The exceptions can be made an order of magnitude faster by deferring
                                   signal handling to applications.
                                   To provide applications control over machine resources, an exokernel defines a low-level

                                   interface. The exokernel architecture is founded on and motivated by a single, simple, and old
                                   observation that the lower the level of a primitive, the more efficiently it can be implemented,

                                   and the more latitude it grants to implementors of higher-level abstractions.
                                   To provide an interface that is as low-level as possible (ideally, just the hardware interface), an
                                   exokernel designer has a single overriding goal of separating protection from management. For
                                   instance, an exokernel should protect framebuffers without understanding windowing systems
                                   and disks without understanding fi le systems.
                                   One approach is to give each application its own virtual machine. Virtual machines can have severe
                                   performance penalties. Therefore, an exokernel uses a different approach - it exports hardware
                                   resources rather than emulating them, which allows an efficient and simple implementation.





          38                               LOVELY PROFESSIONAL UNIVERSITY
   40   41   42   43   44   45   46   47   48   49   50