Efficient memory management is vital in a multiprogramming system. If only a few process are in memory, then for much of the time all of the process will be waiting for I/O and the processor will idle. Thus memory needs to be allocated efficiently to pack as many processes into main memory as possible.
When memory holds multiple processes, then the process can move from one process to another process when one process is waiting. But the processor is so much faster then I/O that it will be common for all the processes in memory to be waiting for I/O. Thus, even with multiprogramming, a processor could be idle most of the time.
Due to the speed mismatch of the processor and I/O device, the status at any point in time is reffered to as a state.
There are five defined state of a process as shown in the figure 3.18.
When a process starts to execute, it is placed in the process queue and it is in the new state. As resources become available, then the process is placed in the ready queue.At any given time a process may be in one of the following five states.
|
|

Figure 3.18: Five State process model
|
|
|