From: Praveen Rao (psrao_at_windows.microsoft.com)
Date: Mon Jan 12 2004 - 02:10:31 PST
This paper defines semantics for a number of meta-instructions which
relate to parallel processing, protection of separate computations,
debugging and sharing of memory and other objects.
The paper starts with predicting prevalent usage of multi-programmed
computer systems and provides examples. Time, of course, proved this
prediction absolutely correct.
The paper cites 5 properties of multi-programmed computer systems:
1) Computation processes are in concurrent operation for more than one
user
2) Many computations share pool of resources in a flexible way (as
opposed to pre-allocation)
3) Individual computations vary widely in their demand for computational
resources
4) Reference to common information by separate computations is a
frequent occurrence
5) System must evolve in the face of changing requirements.
Authors think of a computation to proceed within some sphere of
protection. This protection sphere is specified by a list of
capabilities (called C-List). During the execution of computation,
capabilities are frequently added and deleted using meta-instructions.
Authors define process as a locus of control within an instruction
sequence and computations as a set of processes working towards the same
job (and consequently have the same C-List). Principal is defined as a
user or a group of users to whom charges are made for the expenditure of
system resources.
Supervisor denotes the combination of h/w and s/w resources that for the
core of the system and is responsible for things like allocation and
scheduling of computing resources, accounting for and controlling the
use of resources and implementing meta-instructions.
The paper then describes the primitive operations for parallel
programming e.g. fork, quit, join. It describes lock and unlock
meta-instructions for synchronization.
The paper introduces a notion of inferior sphere of protection which
allows a computation to launch another computation with different
(restricted) privileges. This facilitates debugging and running
developmental system without worrying about the harm it may cause to
computational resources. The paper talks about exception conditions and
mechanism for handling them.
The paper then introduces a notion of protected entry points providing a
mechanism for changing the C-List of a process while calling a procedure
that handles data shared between computations.
The paper then describes retained objects (that persist across
computations) and a hierarchical naming of them.
The meta-instructions described in the paper seem reasonably simple to
be implemented while semantics and access model (in terms of protection)
are pre-determined (in contrast to HYDRA where various
systems/sub-systems can be built on top of the kernel).
This archive was generated by hypermail 2.1.6 : Mon Jan 12 2004 - 02:10:33 PST