Principles of Operating
Systems
Dawood University of Engineering and Technology
1
Process
• What is a Program?
• A set of instructions stored in secondary memory.
• Passive, not in execution.
• What is a Process?
• A program in execution.
• Requires CPU time, memory, and I/O resources
Process Concepts
• The term “process” was first used by the designers of the MULTICS in 1960’s.
• Since then, the term “process” is used somewhat interchangeably with ‘task’ or ‘job’.
• The process has been given many definitions as mentioned below:
1. A program in Execution
2. The ‘animated spirit’ of a procedure in execution
3. The entity to which processors are assigned.
4. The ‘dispatchable’ unit
5. An asynchronous activity
Process Life Cycle
• When a process executes, it passes through different states. These
stages may differ in different operating systems, and the names of
these states are also not standardized.
• In general, a process can have one of the following five states at a
time.
S.N. State & Description
Start
1
This is the initial state when a process is first started/created.
Ready
The process is waiting to be assigned to a processor. Ready processes are waiting to have the processor allocated to them by
2
the operating system so that they can run. Process may come into this state after Start state or while running it by but
interrupted by the scheduler to assign CPU to some other process.
Running
3 Once the process has been assigned to a processor by the OS scheduler, the process state is set to running and the processor
executes its instructions.
Waiting
4 Process moves into the waiting state if it needs to wait for a resource, such as waiting for user input, or waiting for a file to
become available.
Terminated or Exit
5 Once the process finishes its execution, or it is terminated by the operating system, it is moved to the terminated state
where it waits to be removed from main memory.
Process Life Cycle
Process Control Block (PCB)
• A Process Control Block is a data structure maintained by the
Operating System for every process.
• The PCB is identified by an integer process ID (PID). A PCB keeps all
the information needed to keep track of a process as listed below in
the table −
S.N. Information & Description
Process State
1
The current state of the process i.e., whether it is ready, running, waiting, or whatever.
Process privileges
2
This is required to allow/disallow access to system resources.
Process ID
3
Unique identification for each of the process in the operating system.
Pointer
4
A pointer to parent process.
Program Counter
5
Program Counter is a pointer to the address of the next instruction to be executed for this process.
CPU registers
6
Various CPU registers where process need to be stored for execution for running state.
CPU Scheduling Information
7
Process priority and other scheduling information which is required to schedule the process.
Memory management information
8 This includes the information of page table, memory limits, Segment table depending on
memory used by the operating system.
Accounting information
9
This includes the amount of CPU used for process execution, time limits, execution ID etc.
IO status information
10
This includes a list of I/O devices allocated to the process.
• The architecture of a PCB is completely dependent on Operating
System and may contain different information in different operating
systems. Here is a simplified diagram of a PCB −
The PCB is maintained for a process throughout its lifetime, and is deleted
once the process terminates.
PCB (Process Control Blocks)
• Once constructed for a newly created process, the PCB is filled with the programmer
defined attributes found in the process template or specified as the parameters of the
CREATE-PROCESS operating system call.
• Whenever a process is suspended, the contents of the processor registers are usually saved
on the stack, and the pointer to the related stack frame is stored in the PCB.
• In this way, the hardware state can be restored when the process is scheduled to run again.
PCB (Process Control Blocks)
• Typical information that is stored in a process control block is:
1. The location the process in memory
2. The priority of the process
3. A unique process identification number (called PID)
4. The current process state (ready, running, blocked)
5. Associated data for the process.
PCB (Process Control Blocks)
• The PCB is a certain store that allows the operating systems to locate key information about
a process.
• Thus, the PCB is the data structure that defines a process to the operating systems.