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