Operating System Handout
Unit III – Process Management
Section 3.1 Process
Definition:
A process is basically a program in
execution or instance of the program
execution. The execution of a process must
progress in a sequential fashion.
Process is not as same as program code
but a lot more than it.
A process is an 'active' entity as
opposed to program which is
considered to be a 'passive' entity.
Attributes held by process include
hardware state, memory, CPU etc.
Process memory is divided into four
sections for efficient working :
The Text section is made up of the
compiled program code, read in from
non- volatile storage when the program
is launched.
The Data section is made up the
SSMPTC Page 1 of 31
Operating System Handout
global and static variables, allocated
and initialized prior to executing the
main.
The Heap is used for the dynamic
memory allocation, and is managed via
calls to new, delete, malloc, free, etc.
The Stack is used for local variables.
Space on the stack is reserved for local
variables when they are declared.
Process States:
When a process executes, it passes through
different states. These stages may differ in
different operating systems.
SSMPTC Page 2 of 31
Operating System Handout
In general, a process can have one of the
following five states at a time.
S. State & Description
N
.
1 Start: This is the initial state when a
process is first started/created.
Ready: The process is waiting to be
2 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 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.
3 Running: 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.
4 Waiting: Process moves into the
SSMPTC Page 3 of 31
Operating System Handout
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: Once the process
5 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 State
Diagram 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
SSMPTC Page 4 of 31
Operating System Handout
needed to keep track of a process as
listed below in the table –
S. Information & Description
N
.
1 Process State: The current state of the
process i.e., whether it is ready,
running, waiting, or whatever.
2 Process privileges: This is required to
allow/disallow access to system
resources.
3 Process ID: Unique identification for
each of the process in the operating
system.
4 Pointer: A pointer to parent process.
5 Program Counter: Program Counter is
a pointer to the address of the next
instruction to be executed for this
process.
6 CPU registers: Various CPU registers
where process need to be stored for
execution for running state.
SSMPTC Page 5 of 31
Operating System Handout
7 CPU Scheduling Information: Process
priority and other scheduling
information which is required to
schedule the process.
8 Memory management information:
This includes the information of page
table, memory limits, Segment table
depending on memory used by the
operating system.
9 Accounting information: This
includes the amount of CPU used for
process execution, time limits,
execution ID etc.
1 IO status information: This includes a
0 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 −
SSMPTC Page 6 of 31
Operating System Handout
Process Control Block (PCB) Diagram
The PCB is maintained for a process
throughout its lifetime, and is deleted once
the process terminates.
3.2 Process
Scheduling
Definition
The process scheduling is the activity of
the process manager that handles the
removal of the running process from the
CPU and the selection of another process
SSMPTC Page 7 of 31
Operating System Handout
on the basis of a particular strategy.
Process scheduling is an essential part of a
Multiprogramming operating systems.
Such operating systems allow more than one
process to be loaded into the executable
memory at a time and the loaded process
shares the CPU using time multiplexing.
SSMPTC Page 8 of 31
Operating System Handout
What are Scheduling Queues?
All processes, upon entering into the system,
are stored in the Job Queue.
Processes in the Ready state are placed in the
Ready Queue.
Processes waiting for a device to
become available are placed in Device
Queues. There are unique device
queues available for each I/O device.
A new process is initially put in the Ready
queue. It waits in the ready queue until it
is selected for execution (or dispatched).
Once the process is assigned to the CPU
and is executing, one of the following
several events can occur:
The process could issue an I/O request,
and then be placed in the I/O queue.
The process could create a new sub-process
and wait for its termination.
SSMPTC Page 9 of 31
Operating System Handout
The process could be removed forcibly
from the CPU, as a result of an interrupt,
and be put back in the ready queue.
In the first two cases, the process
eventually switches from the waiting state
to the ready state, and is then put back in
the ready que. A process continues this
cycle until itterminates, at which time it is
removed from all queues and has its PCB
and resources deallocated.
Schedulers:
Schedulers are special system software
which handle process scheduling in
various ways.
Their main task is to select the jobs to be
SSMPTC Page 10 of 31
Operating System Handout
submitted into the system and to decide
which process to run. Schedulers are of
three types −
Long-Term Scheduler
Short-Term Scheduler
Medium-Term Scheduler
Long Term Scheduler
It is also called a job scheduler.
A long-term scheduler determines which
programs are admitted to the system for
processing.
It selects processes from the queue and loads
them into memory for execution.
Process loads into the memory for CPU
scheduling.
The primary objective of the job scheduler
is to provide a balanced mix of jobs, such
as I/O bound and processor bound.
SSMPTC Page 11 of 31
Operating System Handout
It also controls the degree of
multiprogramming.
If the degree of multiprogramming is
stable, then the average rate of process
creation must be equal to the average
departure rate of processes leaving the
system.
On some systems, the long-term scheduler
may not be available or minimal.
Time-sharing operating systems have no
long term scheduler.
When a process changes the state from
new to ready, then there is use of long-
term scheduler.
Short Term Scheduler:
It is also called as CPU scheduler.
Its main objective is to increase system
performance in accordance with the
chosen set of criteria.
It is the change of ready state to running
state of the process.
CPU scheduler selects a process among
the processes that are ready to execute and
allocates CPU to one of them.
Short-term schedulers, also known as
dispatchers, make the decision of which
process to execute next. Short-term
SSMPTC Page 12 of 31
Operating System Handout
schedulers are faster than long-term
schedulers.
Medium Term Scheduler
Medium-term scheduling is a part of swapping.
It removes the processes from the memory.
It reduces the degree of multiprogramming.
The medium-term scheduler is in-charge of
handling the swapped out-processes.
A running process may become suspended if it
makes an I/O request.
A suspended process cannot make any
progress towards completion.
In this condition, to remove the process
from memory and make space for other
processes, the suspended process is moved
to the secondary storage.
This process is called swapping, and the
process is said to be swapped out or rolled
out.
SSMPTC Page 13 of 31
Operating System Handout
Swapping may be necessary to improve the
process mix.
Comparison among Scheduler
S. Long-Term Short-Term Medium-
N Scheduler Scheduler Term
. Scheduler
1 It is a job It is a CPU It is a
scheduler scheduler process
swapping
scheduler.
Speed is Speed is Speed is in
2 lesser than fastest between both
short term among short and
scheduler other two long term
scheduler.
It controls It provides It reduces
3 the degree lesser the degree of
of control over multiprogram
multiprogra degree of ming.
mming multiprogra
mming
It is almost It is also It is a part of
4 absent or
SSMPTC Page 14 of 31
Operating System Handout
minimal in minimal in Time sharing
time sharing time sharing systems.
system system
It selects It selects It can re-
5 processes those introduce the
from pool processes process into
and loads which are memory and
them into ready to execution can
memory for execute be continued.
execution
SSMPTC Page 15 of 31
Operating System Handout
Context Switch:
A context switch is the mechanism to
store and restore the state or context of a
CPU in Process Control block so that a
process execution can be resumed from
the same point at a later time.
Using this technique, a context switcher
enables multiple processes to share a
single CPU.
Context switching is an essential part of a
multitasking operating system features.
When the scheduler switches the CPU
from executing one process to execute
another, the state from the current running
process is stored into the process control
block.
After this, the state for the process to run
next is loaded from its own PCB and used
to set the PC, registers, etc.
At that point, the second process can start
executing.
SSMPTC Page 16 of 31
Operating System Handout
Context switches are computationally
intensive since register and memory state
must be saved and restored.
To avoid the amount of context switching
time, some hardware systems employ two
or more sets of processor registers.
When the process is switched, the following
information is stored for later use.
Program Counter
Scheduling information
Base and limit register value
Currently used register
SSMPTC Page 17 of 31
Operating System Handout
Changed State
I/O State information
Accounting information
SSMPTC Page 18 of 31
Operating System Handout
3.3 Inter-process Communication
Processes executing concurrently in the
operating system might be either
independent processes or cooperating
processes.
A process is independent if it cannot be
affected by the other processes executing
in the system.
Inter Process Communication (IPC) is a
mechanism that involves communication
of one process with another process. This
usually occurs only in one system.
Communication can be of two types −
Between related processes initiating
from only one process, such as parent
and child processes.
Between unrelated processes, or two or
more different processes.
Processes can communicate with each
other using these two ways:
Shared Memory
Message passing
Shared Memory
Shared memory is the memory that can
be simultaneously accessed by multiple
processes.
This is done so that the processes can
SSMPTC Page 19 of 31
Operating System Handout
communicate with each other.
All POSIX systems, as well as
Windows operating systems use shared
memory.
Message Queue
Multiple processes can read and write
data to the message queue without
being connected to each other.
Messages are stored in the queue until
their recipient retrieves them.
Message queues are quite useful for
inter-process communication and are
used by most operating systems.
If two processes p1 and p2 want to
communicate with each other, they
proceed as follow:
Establish a communication link (if
a link already exists, no need to
establish it again.)
Start exchanging messages using
basic primitives.
SSMPTC Page 20 of 31
Operating System Handout
We need at least two
primitives:
send(message,
destinaion) or
send(message)
receive(message,
host) or
receive(message)
SSMPTC Page 21 of 31
Operating System Handout
3.4 What is Thread?
A thread is a flow of execution through
the process code, with its own program
counter that keeps track of which
instruction to execute next, system
registers which hold its current working
variables, and a stack which contains the
execution history.
A thread shares with its peer threads few
information like code segment, data
segment and open files.
When one thread alters a code segment
memory item, all other threads see that.
A thread is also called a lightweight
process.
Threads provide a way to improve
application performance through
parallelism.
Threads represent a software approach to
improving performance of operating
system by reducing the overhead thread is
equivalent to a classical process.
Each thread belongs to exactly one
process and no thread can exist outside a
process. Each thread represents a separate
flow of control.
SSMPTC Page 22 of 31
Operating System Handout
Threads have been successfully used in
implementing network servers and web
server.
They also provide a suitable foundation
for parallel execution of applications on
shared memory multiprocessors.
The following figure shows the working
of a single-threaded and a multithreaded
process.
Difference between Process and Thread
S. Process Thread
N
.
1 Process is heavy Thread is light
weight or resource weight, taking lesser
SSMPTC Page 23 of 31
Operating System Handout
intensive. resources than a
process.
2 Process switching Thread
needs interaction switching does
with operating not need to
system. interact with
operating
system.
In multiple
3 processing All threads can
environments, share same set of
each process open files, child
executes the same processes.
code but has its
own memory and
file resources.
SSMPTC Page 24 of 31
Operating System Handout
If one process is While one thread is
4 blocked, then no blocked and
other process can waiting, a second
execute until the thread in the same
first process is task can run.
unblocked.
5 Multiple processes Multiple threaded
without using processes use fewer
threads use more resources.
resources.
6 In multiple One thread can read,
processes each write or change
process operates another thread's
independently of data.
the others.
Advantages of Thread
Threads minimize the context switching
time.
Use of threads provides concurrency
within a process.
Efficient communication.
It is more economical to create and
context switch threads.
Threads allow utilization of
multiprocessor architectures to a
greater scale and efficiency.
Types of Thread
SSMPTC Page 25 of 31
Operating System Handout
Threads are implemented in following two
ways −
User Level Threads − User managed
threads.
Kernel Level Threads − Operating
System managed threads acting on
kernel, an operating system core.
User Level Threads
In this case, the thread management
kernel is not aware of the existence of
threads.
The thread library contains code for
creating and destroying threads, for
passing message and data between
threads, for scheduling thread
execution and for saving and restoring
thread contexts.
The application starts with a single
thread.
SSMPTC Page 26 of 31
Operating System Handout
SSMPTC Page 27 of 31
Operating System Handout
Advantages
Thread switching does not require
Kernel mode privileges.
User level thread can run on any
operating system.
Scheduling can be application specific
in the user level thread.
User level threads are fast to create and
manage.
Disadvantages
In a typical operating system, most
system calls are blocking.
Multithreaded application cannot take
advantage of multiprocessing.
Kernel Level Threads
In this case, thread management is done by
the Kernel. There is no thread management
code in the application area. Kernel
threads are supported directly by the
operating system. Any application can be
programmed to be multithreaded. All of
the threads within an application are
supported within a single process.
The Kernel maintains context information
for the process as a whole and for
individuals threads within the process.
Scheduling by the Kernel is done on a
thread basis. The Kernel performs thread
creation, scheduling and management in
Kernel space. Kernel threads are generally
SSMPTC Page 28 of 31
Operating System Handout
slower to create and manage than the user
threads.
Advantages
Kernel can simultaneously schedule
multiple threads from the same process
on multiple processes.
If one thread in a process is blocked,
the Kernel can schedule another thread
of the same process.
Kernel routines themselves can be
multithreaded.
Disadvantages
Kernel threads are generally slower to
create and manage than the user threads.
Transfer of control from one thread to another within the same process requires
a mode switch to the Kernel.
Multithreading Models
Some operating system provide a combined user level thread and Kernel level thread
facility. Solaris is a good example of this combined approach. In a combined system,
multiple threads within the same application can run in parallel on multiple processors
and a blocking system call need not block the entire process. Multithreading models
are three types
Many to many relationship.
Many to one relationship.
One to one relationship.
Many to Many Model
The many-to-many model multiplexes any number of user threads onto an equal or
smaller number of kernel threads.
The following diagram shows the many-to-many threading model where 6 user level
threads are multiplexing with 6 kernel level threads.
In this model, developers can create as many user threads as necessary and the
corresponding Kernel threads can run in parallel on a multiprocessor machine.
This model provides the best accuracy on concurrency and when a thread performs a
blocking system call, the kernel can schedule another thread for execution.
SSMPTC Page 29 of 31
Operating System Handout
Many to One Model
Many-to-one model maps many user level threads to one Kernel-level thread. Thread
management is done in user space by the thread library. When thread makes a
blocking system call, the entire process will be blocked. Only one thread can access
the Kernel at a time, so multiple threads are unable to run in parallel on
multiprocessors.
If the user-level thread libraries are implemented in the operating system in such a
way that the system does not support them, then the Kernel threads use the many-to-
one relationship modes.
SSMPTC Page 30 of 31
Operating System Handout
One to One Model
There is one-to-one relationship of user-level thread to the kernel-level thread. This
model provides more concurrency than the many-to-one model. It also allows another
thread to run when a thread makes a blocking system call. It supports multiple threads
to execute in parallel on microprocessors.
Disadvantage of this model is that creating user thread requires the corresponding
Kernel thread. OS/2, windows NT and windows 2000 use one to one relationship
model.
Difference between User-Level & Kernel-Level Thread
S.N. User-Level Threads Kernel-Level Thread
User-level threads are faster to create Kernel-level threads are slower to
1
and manage. create and manage.
Implementation is by a thread library at Operating system supports creation of
2
the user level. Kernel threads.
User-level thread is generic and can Kernel-level thread is specific to the
3
run on any operating system. operating system.
Multi-threaded applications cannot take Kernel routines themselves can be
4
advantage of multiprocessing. multithreaded.
SSMPTC Page 31 of 31