Page 37 - DCAP507_SYSTEM_SOFTWARE
P. 37

Unit 2: Evolution of Operating System




          higher-level abstractions. The high cost of general-purpose virtual memory primitives reduces  Notes
          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 file 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.
          An exokernel employs three techniques to export resources securely:

              by using secure bindings, applications can securely bind to machine resources and handle
               events,
              by using visible resource revocation, applications participate in a resource  revocation
               protocol,
              by using  an abort protocol, an exokernel can break secure bindings of  uncooperative
               applications by force.

          The advantages of exokernel systems among others are:
              exokernels  can be made efficient due to the limited number of simple primitives  they
               must provide,

              low-level secure multiplexing of hardware resources can be provided with low overhead,
              traditional abstractions, such as VM and IPC, can be implemented efficiently at application
               level, where they can be easily extended, specialized, or replaced,

              applications can create special-purpose implementations of abstractions, tailored to their
               functionality and performance needs.
          Finally, many of the hardware resources in microkernel systems, such as the network, screen,
          and  disk, are encapsulated in heavyweight servers  that cannot  be bypassed or tailored  to
          application-specific needs. These heavyweight servers can be viewed as fixed kernel subsystems
          that run in user-space.

          2.2.4 Client-server Model

          A trend in modern operating systems is to take this idea of moving code up into higher layers
          even further, and remove as much as possible from the operating system, leaving a minimal
          kernel. The usual approach is to implement most of the operating system functions in user
          processes. To request a service, such as reading a block of a file, a user process (presently known
          as the client process) sends the request to a server process, which then does the work and sends
          back the answer.


                                           LOVELY PROFESSIONAL UNIVERSITY                                   31
   32   33   34   35   36   37   38   39   40   41   42