From: Joanna Muench (joannam_at_spro.net)
Date: Sun Jan 11 2004 - 22:20:10 PST
In their paper, Dennis and Van Horn describe what they feel are the
essential properties of a multiprogrammed computer system (MCS). These
include a protection scheme, the essentials of process controls and
segments, and a directory structure. The paper describes in some detail
the concepts we now associate with threading and central to the
discussion is the concept of the sphere of protection. The computation's
list of capabilities or C-list defines the sphere of protection the
process can run under, i.e. the devices, segments, etc the process can
access. The paper goes on to present the basics of threading ideas by
defining essential operations such as fork, quit, join, lock and unlock,
with a nice example of avoiding lockout.
The discussion of inferior spheres of protection, primarily an aid to
facilitate safe debugging, help further clarify the application of
C-lists. These inferior spheres seem well thought out, with ample
consideration given to handling exceptions. The concept of an OS-based
debugging environment clearly indicates this system is meant to be a
friendly one for programmers.
The paper bogs down in the final third with a somewhat convoluted
discussion of directories and naming. In the end the structure described
by the paper resembles the UNIX file system portrayed more concisely
eight years later by Ritchie and Thompson (1974). Fortunately UNIX did
not carry the restriction that objects can never have their name
changed, the worst single idea this paper presented. Unfortunately the
vocabulary used in this section is awkward and the authors punt on the
issue what to do with a retained object that has no owner. However it
serves as a reminder that what now seems obvious hasn't always been.
The authors do not describe a full operating system but do an admirable
job of describing what they see as the core concepts necessary to allow
multiple concurrent computations. While much progress has been made in
the last forty years, this paper does outline some key concepts to
multi-threaded programming.
This archive was generated by hypermail 2.1.6 : Sun Jan 11 2004 - 22:16:38 PST