If distributed memory MIMD machines allow very high performances, their programming remains "esoteric" for most of end-users accustomed to classical monoprocessor programming. Oppositely, shared memory parallel computers are easier to program but badly adapted to applications generating many memory accesses.
The purpose of Distributed Shared Memory systems (DSM) is to implement, above a distributed memory architecture, a programming model allowing a transparent manipulation of shared data. In practice, a DSM system has commonly to handle all the communications and to maintain data coherence.
Though various DSM systems have been proposed, few of them allow to efficiently and scalably deal with massively parallel multi-processors.
The aim of this paper is to describe a new distributed shared memory model, called DOSMOS: Distributed Objects Shared MemOry System. Initially this system is designed to deal with massively parallel machines. But to test its availability and to improve it in an easy and portable we first implement with PVM [GBD 93]. By this way DOSMOS also provide a user-friendly programming environnement with shared objects adapted to a network of workstations.
This model allows processes to share distributed objects. A hierarchical organization of the processes (into groups and sub-groups based on the shared data they address) permits a high degree of scalability. This organization can be either defined using compilation directives or dynamically generated at run-time.
This paper is divided into two main parts. In the first part, we will discuss about the model of our distributed-shared memory system: groups generation and consistency. In the second one, we will see the implementation of DOSMOS realized on top of PVM for a network of workstations.