Review: Dijkstra, "The Structure of the "THE" Multiprogramming System"

From: Chuck Reeves (creeves_at_windows.microsoft.com)
Date: Tue Jan 06 2004 - 19:02:42 PST

  • Next message: James Welle: "The Structure of the "THE"-Multiprogramming System"

    Review of The Structure of the "THE"-Multiprogramming system.

     

    Written By Chuck Reeves

     

    The paper describes the efforts of a team from the University of
    Eindhoven in the Netherlands, headed by Edsger W. Dijkstra to develop

    an operating system for a Dutch computer, an EL X8. The goal was to
    produce an operating system that supported the execution of short

    programs and allowing them to drive a limited set of peripheral devices
    including paper tape readers/writers, a plotter and printers.

     

    The author provides some discussion surrounding some of the decisions
    made during the design and implementation of the system. It

    includes some intriguing statements:

     

    "We have found that it is possible to design a refined multiprogramming
    system in such a way that its logical soundness can be proved

    a priori and its implementation can admit exhaustive testing".

     

    "Finally we learned the art of reasoning by which we could prove that
    the society composed of processes thus mutually synchronized by

    each other would indeed in its time behavior satisfy all requirements."

     

    I was disappointed to find that no logical proofs were submitted to
    support these statements. Dijkstra appears to reach these

    conclusions by way of exhaustive testing.

     

    The paper does provide an insightful description of the primary
    "objects" in the system, their function and interaction. This includes

    a paged memory manager (called a segment controller), a console (called
    a message interpreter) and other device abstractions. These

    objects and other executing programs function as distinct sequential
    processes organized into a 5 level hierarchy.

     

    The paper includes some detailed discussion of the design and use of
    "semaphores" (interesting that this term required quotes back

    then :-) ). The primitives were used to synchronize the access of
    executing processes to critical resources (e.g. processor) in the

    system.


  • Next message: James Welle: "The Structure of the "THE"-Multiprogramming System"

    This archive was generated by hypermail 2.1.6 : Tue Jan 06 2004 - 19:02:52 PST