Review:Programming Semantics for Multiprogrammed Computations

From: Manish Mittal (manishm_at_microsoft.com)
Date: Mon Jan 12 2004 - 13:41:37 PST

  • Next message: David Coleman: "Review of Dennis and Van Horn"

    This paper from Dennis and Van Horn covers concepts and some programming
    semantics for a number of meta-instructions to support a parallel
    processing operating system. These meta-instructions relate to parallel
    processing, protection of separate computations, program debugging, and
    the sharing among users of memory segments and other computing objects.

    This paper starts out with the discussion of properties of
    Multiprogrammed computer system(MCS). These are systems which consist of
    many computation processes that are in concurrent operation for multiple
    users. These computations share pool of resources in flexible way and
    separate computations share common information/resources frequently. In
    the system, each computation is executed within a sphere of protection
    specified by a precise list of capabilities (the C-List). The C-list
    dictates the ability of the system to share resources while maintaining
    integrity of the system. This paper then covers various concepts and
    provides definition for them. These concepts include segments,
    processes, principals and supervisor. Supervisor seems similar to a core
    of an operating system. Its function is to provide mechanisms for
    allocation, scheduling and protection of resources. Process list is very
    similar to process table in current OS.

    The paper then talks about Parallel programming and describes some of
    the primitive operations of parallel programming like fork, quit, join,
    lock and unlock. Fork operation is similar to fork in unix. The
    lock/unlock operation is described in great detail. It is interesting to
    see the Author mentioning about difficulties involving lock operations
    such as processor context switching and suggests having small number of
    instructions between lock/unlock pair. These are some problems we see in
    some of the recent OS's too. Author has provided some very useful code
    snippets to help understand some of the complicated meta-instructions
    like analyze, listen and lock. The listen and analyze instructions
    resembles to listen and accept instructions (for socket programming) in
    Unix.

    I found the concept of inferior sphere of protection, where a
    computation can launch another computation with lesser privileges, very
    interesting too. For our MSN Webservice debugging, we follow similar
    principle. We run a production like environment which simulates all
    production activities and is accessible to our developers for debugging.
    The paper ends with a discussion on directory and naming. Naming allows
    sharing of persistent objects.

    This paper is very interesting although it requires fair bit of time to
    understand every concepts. It is quite surprising to see so many of the
    concepts still being used in today's OS.

     


  • Next message: David Coleman: "Review of Dennis and Van Horn"

    This archive was generated by hypermail 2.1.6 : Mon Jan 12 2004 - 13:41:43 PST