From: Manish Mittal (manishm_at_microsoft.com)
Date: Mon Jan 12 2004 - 13:41:37 PST
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.
This archive was generated by hypermail 2.1.6 : Mon Jan 12 2004 - 13:41:43 PST