Operating System - Processes
A process is a program in execution. The execution of a process must progress in a sequential fashion. Definition of process is following.
A process is defined as an entity which represents the basic unit of work to be implemented in the system.
Components of process are following.
|S.N.||Component & Description|
Code to be executed.
Data to be used for executing the program.
While executing the program, it may require some resources.
Verifies the status of the process execution.A process can run to completion only when all requested resources have been allocated to the process. Two or more processes could be executing the same program, each using their own data and resources.
A program by itself is not a process. It is a static entity made up of program statement while process is a dynamic entity. Program contains the instructions to be executed by processor.
A program takes a space at single place in main memory and continues to stay there. A program does not perform any action by itself.
As a process executes, it changes state. The state of a process is defined as the current activity of the process.
Process can have one of the following five states at a time.
|S.N.||State & Description|
The process is being created.
The process is waiting to be assigned to a processor. Ready processes are waiting to have the processor allocated to them by the operating system so that they can run.
Process instructions are being executed (i.e. The process that is currently being executed).
The process is waiting for some event to occur (such as the completion of an I/O operation).
The process has finished execution.
Process Control Block, PCB
Each process is represented in the operating system by a process control block (PCB) also called a task control block. PCB is the data structure used by the operating system. Operating system groups all information that needs about particular process.
PCB contains many pieces of information associated with a specific process which are described below.
|S.N.||Information & Description|
Pointer points to another process control block. Pointer is used for maintaining the scheduling list.
Process state may be new, ready, running, waiting and so on.
Program Counter indicates the address of the next instruction to be executed for this process.
CPU registers include general purpose register, stack pointers, index registers and accumulators etc. number of register and type of register totally depends upon the computer architecture.
|5||Memory management information|
This information may include the value of base and limit registers, the page tables, or the segment tables depending on the memory system used by the operating system. This information is useful for deallocating the memory when the process terminates.
This information includes the amount of CPU and real time used, time limits, job or process numbers, account numbers etc.
Process control block includes CPU scheduling, I/O resource management, file management information etc.. The PCB serves as the repository for any information which can vary from process to process. Loader/linker sets flags and registers when a process is created. If that process get suspended, the contents of the registers are saved on a stack and the pointer to the particular stack frame is stored in the PCB. By this technique, the hardware state can be restored so that the process can be scheduled to run again.