next up previous
Next: Interfaces Up: Linkage in the Nemesis Previous: Motivation and Aims

Single Address Space Issues

 The recent resurgence of interest in single address space systems has caused people to rediscover many naming issues which have been obscured by the almost ubiquitous use of C, C++ and UNIX-like operating systems.

In particular, being able to assume that a program has the whole address space to itself means that in C or C++ the execution environment for any procedure call is generally the sum total of data in the program. Aside from encouraging poor programming abstraction, this is disastrous in a single address space.

The naïve solution to this problem is to simulate per-process address spaces by keeping around a pointer (sometimes in a dedicated processor register) to a per-process data segment which contains most of the program state. Apart from being a throwback to the earliest days of multiprogramming, this has a number of disadvantages:

Clearly a better approach is required. The problem is really only one of explicitly specifying the calling environment to a procedure.

T. Roscoe