Pegasus II Review, December 1997
The Nemesis OS Demonstration

Ian Pratt, University of Cambridge

Nemesis on Intel x86 Architecture Systems

The machine used for the demonstration is a uni-processor Pentium II system, equipped with a Matrox Millennium II framebuffer, Digital DE500 100Mb/s Ethernet card, Digital ATMWorks 750 155Mb/s ATM interface, and an NCR810 SCSI-2 controller. Nemesis also supports multi-processor systems, and a variety of other framebuffer and network interface cards.

Applications

The following sections describe the various applications that are running in the system shown in the screen dump .

QoS Control Panel

QoSBars provides a graphical display of applications' resource usage, and allows the resource reservations made to them to be controlled. As well as the CPU resource, QoSBars can be used to control other system resources, such as disk and network bandwidth.

However, QoSBars is not intended for use by end-users; it is simply a temporary `engineering interface'. Work is underway to develop a User Agent that will be responsible for sharing out system resources amongst applications in accordance with a user prescribed policy.

The Nemesis Window Manager

The Nemesis Window Manager provides a user-interface to the \(\mathcal{WS}\) Window System. It provides functionality similar to most X11 window managers, allowing users to manipulate application windows, and perform operations such as move, kill, iconify etc.

WSTERM and Shell

WSTERMs are similar to X11 XTerms. They typically execute a shell, enabling users to launch applications, manipulate environment variables, and perform job control.

The shell allows commands to be passed to a Clanger interpreter. Clanger is a powerful language, enabling users to explore the Nemesis name space, and examine and modify system parameters (providing they have suitable privileges to do so).

Animation application

This is a simple 3D animation that demonstrates Nemesis' OpenGL compatible rendering library.

M-JPEG Player application

JDA is used to playback pre-recorded M-JPEG video sequences. The host CPU is used to perform the computationally intensive task of decoding and displaying the video images. In this demonstration, two JDA applications are running, playing different movies stored on the same SCSI disk. The Nemesis disk device driver ensures that the two applications receive the disk bandwidth they require regardless of the actions of other applications.

JDA is an adaptive application, capable of degrading the output image quality and frame rate to best utilize the resources available to it. This is achieved while maintaining the real-time playback rate of the original video sequence.

Network Video application

The RVideo application displays video data received from the network. In this demonstration, the video is a 384x288 25fps stream (roughly equivalent to Super-VHS video quality) generated by a FORE Systems AVA-300. The 45Mb/s ATM video stream is received by the host using the Digital ATMWorks 750 interface.

Currently, RVideo makes no attempt to adapt its resource requirements, and thus the video quality degrades rapidly if it is not delivered the resources it requires.

Audio Synthesizer

Timidity is a digital audio synthesiser. It plays standard MIDI files, using the host CPU to synthesize a CD quality audio stream containing a number of different instruments and effects.

Timidity has significant real-time constraints. It communicates with the audio device driver via a 1ms `play-out' buffer,[*] so must receive the CPU resources it requires at quite a smooth granularity. The level of resource required changes dynamically, depending on the types of instruments and effects that are active within the current musical passage--hence implying a need for relatively frequent resource re-negotiation.

Points to Note



Footnotes

...buffer,
Timidity could choose to operate with a larger play-out buffer, hence relaxing its real-time constraints. However, many similar applications operating on `live' (latency sensitive) data do not have this luxury, hence Timidity demonstrates a useful property of Nemesis.



Robin Fairbairns
12/11/1997