The most basic property of an operating system process is that it executes on a virtual processor created by the operating system. Each such virtual processor has its own set of registers and has access to a subset of the memory of the real processor used to implement it. Furthermore, the instructions of a virtual processor can be regarded as being extended with extra instructions, namely the system calls offered by the operating system, which allow it to interact with the devices and other virtual processors in its environment. A process can thus be defined as a virtual processor seen in conjunction with the set of instructions (program) that is executing.
The difference between the operational definitions offered by different operating systems can be described as differences in the capabilities of the virtual processors created by these systems.
In the following sections, the desired capabilities of a virtual processor are discussed in the light of a list of questions. Some of these questions may seem to have trivial answers, but all have been answered in different ways by different operating system designers. The list is: