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: