From: Praveen Rao (psrao_at_windows.microsoft.com)
Date: Wed Jan 07 2004 - 16:46:43 PST
In this paper Dijkstra describes multiprogramming system THE in which
all activities are divided over a number of sequential processes.
The notable points of system structure are:
Storage Allocation: A strict distinction is made between memory units
and the corresponding information units (as opposed to systems where
information is identified by the address of the memory location
containing the information). This decoupling allows flexibility
regarding where to store the information. For example, when main memory
page is dumped to the secondary storage, there is no need to store the
segments of information to secondary storage pages where they originally
came from.
Processor Allocation: The whole system is arranged as a collection of
sequential processes progressing at different speeds. This enables
design of the whole system in terms of such abstract "sequential
processes". These sequential processes are facilitated by the system
hierarchy mentioned below.
System Hierarchy: The system has a hierarchical structure. This, I
believe, is the most salient feature of the system structure. The system
is divided into 6 levels. Each higher level does not have to worry about
how access to a resource managed at lower level is synchronized. This
allows the system to be built with levels of abstractions in terms of
resource usage and will avoid deadlocks that could be potentially caused
in the absence of such hierarchy. I somewhat liken it to the hierarchy
of interrupt levels in the modern operating systems.
Dijkstra also touches upon non-systems aspects of the project - human
resources involved, scope and evolving of the project and such, which
provide background information and shed some light on why and how the
design evolved.
This archive was generated by hypermail 2.1.6 : Wed Jan 07 2004 - 16:46:52 PST