Chapter
26 Extensible
systems
Objectives
To examine alternative OS structures beyond
monolithic kernels and to introduce the kinds of problem tackled by current OS
research
Points to emphasise
- A common theme for Scout,
SPIN, Nemesis and Exokernel designs was the desire to support multi-media
applications. These can
require substantial processing resources, soft-real-time scheduling and
sometimes support for developing new network protocols. Such concerns led to mechanisms for
tailoring the system to a particular workload, or for providing more
careful resource management than with UNIX.
- Programming language run-time
environments such as the JVM perform many of the same functions as a
traditional operating system.
Possible difficulties
- The systems presented here
are generally prototype ones produced by university research
projects. Aside from Mach,
they have not often been developed to the same level of completion as the
UNIX systems of Chapters 25, 26.
Teaching hints
- Current commodity systems are
capable of handling audio and video data at a respectable quality. Discuss this in relation to the
motivation for specialized OS designs for soft-real-time systems. Is it simply that computing
hardware has become so fast that there is no need to take special care
over resource management?
- Discuss the advantages and
disadvantages of allowing individual applications lower-level control over
the environment in which they execute – for instance as Nemesis and
Exokernel systems provide by using unprivileged library operating
systems. Two major points are
the trade-off between intra-application and inter-application optimization
of resource usage and ensuring that common resources are accessed
correctly (for instance the representation of meta-data on disk or the
implementation of network protocols).
- Beyond the systems discussed
here, examine the facilities provided by other operating systems, for
example Epoch, VxWorks or LynxOS
and discuss how those system are tailored to their environment. A topic for more general discussion
is whether there could ever be a single OS that is acceptable across all
hardware devices and, if so, how it would use the ideas from these
extensible operating systems.