Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Thursday March 31st, 2005 - 4:30pm
Computer Laboratory > Research > Systems Research Group > NetOS > Seminars > Thursday March 31st, 2005 - 4:30pm

Talk 1: Hyper-Threading Aware Process Scheduling Heuristics

James Bulpin
Intel Corporation's "Hyper-Threading Technology" is the first commercial implementation of simultaneous multithreading. Hyper-Threading allows a single physical processor to execute two heavyweight threads (processes) at the same time, dynamically sharing processor resources. This dynamic sharing of resources, particularly caches, causes a wide variety of inter-thread behaviour. Threads competing for the same resource can experience a low combined throughput.

Hyper-Threads are abstracted by the hardware as logical processors. Current generation operating systems are aware of the logical-physical processor hierarchy and are able to perform simple load-balancing. However, the particular resource requirements of the individual threads are not taken into account and sub-optimal schedules can arise and remain undetected.

I present a method to incorporate knowledge of per-thread Hyper-Threading performance into a commodity scheduler through the use of hardware performance counters and the modification of dynamic priority.

Talk 2: Facilitating the Development of Soft Devices

Andrew Warfield
A common approach when exploring new system functionalities is to provide new features by extending existing device interfaces. Working at the device interface allows an examination of the functional separation between hardware and software: researchers can simulate new features as if they were properties of the device itself. As simple examples, block or network device interfaces might be extended to compress or encrypt data before it is written to disk or transmitted. Alternatively, it may be desirable to prototype entirely new devices in software, bound to existing interfaces, for instance a content-addressable RAM disk. In this paper, we refer to these extended devices, written in system software as Soft Devices.

Unfortunately, researchers face a challenge in extending devices in this manner. Implementors must typically modify an existing operating system to add the new functionality. This requirement means learning the OS source and writing scaffolding code to intercept events. Moreover, where new functionality must be developed in-kernel it is difficult to debug and crashes will not be contained. Finally, functionality that is developed is difficult to share and maintain, as it will be specific to the OS that is has been developed within.

This paper presents a solution to the problem of developing Soft Devices by extending the existing device interface in Xen. Xen is a virtual machine monitor (VMM) for the IA32 architecture that paravirtualizes hardware: Rather than attempting a transparent view of hardware to operating systems, Xen provides simple, narrow interfaces to hardware and OSes are modified to use these interfaces instead. It is exactly these interfaces that Soft Devices aim to extend, dealing with things like block requests, network packets, and USB messages.