page 1  (22 pages)
2to next section

Published in Proceedings of US/Japan Workshop on Parallel Symbolic Computing: Languages, Systems, and Applications, Cambridge, MA, USA, October 1992.
Also appeard in LNCS 748, pp. 380-401, Springer Verlag, October 1992.

Customizable Policy Management

in the

Sting Operating System

James Philbin

NEC Research Institute
Princeton, NJ 08540
philbin@research.nj.nec.com

Abstract. Sting is an operating system designed to serve as a highly efficient substrate for modern programming languages. It is designed to run on both parallel and distributed systems. This paper describes one of the important contributions of Sting - customizable policy management at both the kernel and user level of the operating system. Two well defined interfaces separate control issues from policy issues. These interfaces allow different, customized policy management modules to be implemented without changing the rest of the system. Customizable policy management makes Sting suitable for many different operating environments including real time, interactive, and computationally intensive. It also allows the user to choose or implement a policy management strategy that is best suited to a particular program.

1 Introduction

Sting is an operating system designed to serve as a highly efficient substrate for modern programming languages. It is designed to run on MIMD parallel computers, with either shared or disjoint memory, as well as distributed machines composed of networks of workstations.

Sting was designed as an experimental platform for exploring and comparing different models of parallel programming. We have used Sting to implement many different algorithms corresponding to different paradigms of parallelism including: result parallelism, master/slave parallelism, and speculative parallelism.

We have also implemented several different parallel programming models on top of Sting including: futures [Hal85], first class tuple spaces [Jag91], and engines [HF84] and compared them using various parallel algorithms that use these paradigms.

One of the fundamental design goals of Sting was to separate control issues from policy issues to the extent possible. This separation occurs at two different abstraction levels in the system: in the Abstract Physical Processor and in the Virtual Processor. Each of these abstractions is separated into two components, the ?controller? which