From: Gang Zhao (galaxy_at_cs.washington.edu)
Date: Wed Jan 21 2004 - 18:01:51 PST
The Opal system has actually implemented a single-address-space operating system. Built on top of the Mach microkernel, it has proved the possibility of a single address system.
A Single-Address-System allows for easy sharing of in memory representations of data, allowing programs to simply pass pointers (and capabilities) for the memory, rather than having to set up the memory for this purpose ahead of time.
The significan innovation appears to be protection offered between the different domains (which map to the concept of a process on a traditional machine). Access to another domain's memory requires a capability for access and the type of access (read/write). This allows a procedure owned by a different user (domain) to be directly called.
The paper makes an argument that the cleanup of memory is no more difficult in a single-address-operating-system, but then introduces resource groups. This seems only marginally better than the concept of process for cleanup.
The purpose of a single-address-space is "to reduce the frequency with which those [data conversion] mechanisms must be applied.
The paper points out the difficulty that static data causes to this system, since ordinarily it would end up in a fixed address. The mapping solution used in the papaer is unsatisfying, as it seems overly dependent on the traditional architecture. A modification to the compiler seems like a more compelling long term answer.
Resource management on Opal requires both reference counting and garbage collection.
The Opal system has problems with crash recovery. This makes sense, since persistent segments could have references to segments that are not persistent.
The shared address space raises concerns with synchronization. These concerns are not really handled in the paper.
The paper raises the concern of contiguity (section 6.1) but doesn't address how Opal deals with this.
Single-address-space is inconsistent with the fork operation. But thsi hasn't been used in Windows for a while.
The programming language solution to the single address space is used in the common language runtime used by .NET.
This archive was generated by hypermail 2.1.6 : Wed Jan 21 2004 - 18:01:57 PST