There is no universally agreed upon definition for the concept of a process, and the definitions offered in the literature are often inadequate (for example, those in [1]). And while it is difficult to fault abstract definitions such as [2], they are not specific enough to be of much use to an operating system designer.
An operating system amounts to an operational definition of a process, and no two operating systems amount to exactly the same definition. The designer of a new operating system must strive to provide a definition that is simple to understand and use, does not violate one's intuitive notions about processes, and is simple to implement efficiently on a wide range of computer systems. On the other hand, the definition should not fail to provide the functionality that existing operating systems have, by user demand, evolved into providing.
The aim of this paper is to provide a framework for discussing operational definitions, particularly with regard to functionality, and then to use this framework to discuss systematically some of the more important decisions and trade-offs regarding processes, that a designer of a new operating system must make.
The considerations outlined in this paper have formed the basis for the process concept offered by a new operating system that the author has designed [5]. The process concept of this operating system differs significantly from the definition offered by UNIX [4, 6], a system that many proponents proclaim as suitable for adoption as the standard operating system, but which offers an inadequate definition of a process.
However, this paper is not a critique of UNIX or any other operating system, nor a defence of the author's proposal. The paper aims to identify and discuss the general principles involved, and readers are invited to make their own comparisons and to draw their own conclusions.