The three principal states that have been described (Ready, Running, Blocked) provide a systematic way of modeling the behavior processes and guide the implementation of the operating system. Many operating systems are constructed using these three states.
There is good justification for adding a additional states to the model. Consider a system that does not employ virtual memory. Each process to be executed must be fully loaded into main memory. All the process in all the queues must be resident in main memory.
The reason for all this elaborate machinery is that I/O activities are much slower than computation, and therefore the processor in a uni programming system is idle most of the time. Memory holds multiple processors and that the processor can move to another process when one process is waiting. But the processor is so much faster than I/O that it will be common for all the process in memory to be waiting for I/O. Thus, even with multiprogramming, a processor could be idle most of the time.
Swapping involves moving part or all of a process from main memory to disk. When none of the processes in main memory is in the Ready state, the operating swaps one of the Blocked processes out onto disk into a Suspended Queue. This is a Queue of existing processes that have been temporarily kicked out of main memory, or suspended. The operating system then brings in another process from the Suspended queue, or it honors a new process request. Execution then continues with the newly arrived process or management.
Swapping is an I/O operation. It enhances performance. When all the processes in main memory are in the Blocked state, the operating system can suspended one process by putting it in the Suspended state and transferring it to disk. The space that is freed up in the memory can then be used to bring in another process.
When the operating system has performed a swapping out operation, it has two choices for selecting process to bring into main memory. It can admit a newly created process, or it can bring in a previously suspended process. It would appear that the preference should be to bring in a previously suspended process to provide it with service rather than increasing the total load on the system.