page 1  (16 pages)
2to next section

Thread Diagram

Shinji Kono, Masaki Yamada and Mario Tokoro

e-mail:[email protected]

Sony Computer Science Laboratory Inc.

3-14-13, Higashigotanda, Shinagawa-ku, Tokyo 141, Japan

February 13, 1991

1 Introduction

Nowadays, every computer is connected to some kind of networks. Computers perform parallel processing. Every application should run in parallel or in a distributed way for higher speed and availability. Already various communication primitives have been proposed to implement parallel computations, but they are very complicated.

What we are concerned with here, is the abstraction of synchronization. Fine grain parallelism are not considered here, because in such kind of systems, it is impossible to pay attention to each synchronization. So here we consider coarse-grain parallelism.

What is the difficulty in parallel and distributed computation? There are several activities running on some shared resources, so that some kind of control over them is necessary. We want to find a way to manage parallel processing in a good way like structured programming or object oriented programming. However, even in object oriented programming, there are no way of abstracting parallel process managements. In this paper, we use reflective hierarchy and thread diagram for synchronization abstraction.

2 Muse - A Reflective Operating System

The Muse Operating System is an object-oriented distributed operating system with meta object concept. An object has several meta objects which represent its computation. Since a meta object also has its meta objects, the tower of meta level hierarchy is naturally created. A meta object of an object is the object itself in some sense, so accessing to its meta object is called reflection. Thus, meta level hierarchy is called reflective hierarchy.

Reflective hierarchy is naturally infinite, however, direct implementation of such infinite tower is not possible nor desirable. In Muse system, unlike another reflective systems such as 3-Lisp [7] or meta object system [8], reflection is used as the frame work of operating system and, therefore it is not fully reflective system. For example, Muse has only three