Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
February 6th 2003
Computer Laboratory > Research > Systems Research Group > NetOS > Seminars > February 6th 2003

Decentralising resource management in operating systems -- getting applications involved

Rolf Neugebauer
Resource management policies are traditionally implemented by centralised entities, either individually per resource, by a scheduling algorithm or, at a higher level, using resource or QoS managers. Resources are "magically" allocated to consumers with little or no involvement of the consumers of those resources. Often, competing consumers are given the impression of being the only consumer of that resource, in this way, resources are being virtualised.

With our research, we explore ways of how to involve applications in the process of managing resources under the premises that (1) applications potentially have some (implicit) notion of their future resource demands and (2) applications can adapt their resource demands. The general idea is to provide feedback to applications so that they can proactively take part in the process of managing resource. This approach has the effect that resource management policies can be removed from central entities and the operating system has only to provide mechanism. Furthermore, in contrast to centralised approaches, application specific features can be more easily exploited.

To achieve this aim we deploy a microeconomic theory, namely congestion or shadow pricing, which recently received some attention for managing congestion in communication networks. Applications are charged based on the potential "damage" they cause to other consumers by consuming resources. Consumers interpret these congestion charges as feedback signals which they use to adjust their resource consumption. In theory, it can be shown that such a system with consumers merely acting in their own self-interest will converge to a social optimum.

In this talk I will provide an introduction to congestion pricing and discuss its application in an OS context. It is argued that congestion prices are the correct economic model in this context. I will then describe and present results from two prototype implementations and discuss various application scenarios.