• A process is a program in a state of execution. It is a unit of work for the operating system. A process can be created, executed, and stopped. In contrast, a program is always static and does not have any state. A program may have two or more processes running. A process and a program are, thus, two different entities.
• To accomplish a task, a process needs to have access to different system resources like I/O devices, CPU, memory etc. The process management function of an operating system handles allocation of resources to the processes in an efficient manner. The allocation of resources required by a process is made during process creation and process execution.
• A process changes its state as it is executed. The various states that a process changes during execution.
The various states that a process changes during execution are as follows :
• New — process is in a new state when it is created
• Ready — process is in ready state when it is waiting for a processor
• Running — process is in running state if processor is executing the process
• Waiting — process is in waiting state when it waits for some event to happen (I/O etc)
• Terminated — process that has finished execution is in terminated state
1. system process that execute system code.
2. user process that execute user code. OS mainly handles the execution of user code, though it may also handle various system processes.
The concurrent execution of the process requires process synchronization and CPU scheduling. The CPU scheduling, process synchronization, communication, and deadlock situations are described in the following subsections.