An operating system with principles
Nemesis is an entirely new operating system, whose design
is geared to the support of time-sensitive applications requiring a
consistent Quality of Service (QoS), such as those which use
multimedia. Nemesis provides fine-grained guaranteed levels
of all system resources including CPU, memory, network bandwidth and
disk bandwidth.
Moreover, Nemesis has been designed such that these
Quality of Service guarantees are meaningful: In a microkernel
environment, an application is typically implemented by a number of
processes, most of which are servers performing work on behalf of more
than one client. This leads to enormous difficulty in accounting for
resource usage. In a kernel-based system, multimedia applications
spend most of their time in the kernel, leading to similar
problems.
The guiding principle in the design of Nemesis was to structure the
operating system in such a way that the majority of code could execute
in the application process itself. Nemesis therefore has an extremely
small lightweight kernel, and performs most operating system
functions in shared libraries which execute in the user's process.
This leads to a vertically-structured operating system.
Providing QoS to time-sensitive applications necessarily requires
more frequent context-switches. By use of a single
address space, Nemesis greatly reduces memory-system related
context-switch penalties. The single address space also removes the
need to copy high-bandwidth multimedia data. Despite the fact that
there is a single system-wide page table mapping virtual addresses to
physical addresses, memory protection is still performed on a
per-process basis.
Nemesis currently runs on a large number of platforms
including Intel 486, Pentium, PPro and PII based PCs,
DEC Alpha workstations and evaluation boards (21064 and
21164) and StrongARM SA-110 based network computers.
Nemesis has been developed over the last few years as part of the
Pegasus I and Pegasus II projects. It has been worked on at a number of
sites outside of Cambridge as part of these projects:
 | University of Twente, Netherlands |
 | University of Glasgow, UK |
 | Swedish Institute of Computer Science, Sweden |
 | Citrix Systems (Cambridge), Ltd |
|