UNIT 2 and UNIT 3 2021-22

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

UNIT-2 PROCESS MANAGEMENT

PROCESS
A process is basically a program in execution. The execution of a process must progress in a sequential fashion.
A process is defined as an entity which represents the basic unit of work to be implemented in the system.

To put it in simple terms, we write our computer programs in a text file and when we execute this program, it
becomes a process which performs all the tasks mentioned in the program.
When a program is loaded into the memory and it becomes a process, it can be divided into four sections ─
stack, heap, text and data. The following image shows a simplified layout of a process inside main memory −

S.N. Component & Description


1. Stack
The process Stack contains the temporary data such as method/function parameters, return address and
local variables.
2. Heap
This is dynamically allocated memory to a process during its run time.
3. Text
This includes the current activity represented by the value of Program Counter and the contents of the
processor's registers.
4. Data
This section contains the global and static variables.

PROCESS STATE

As process executes, it change state. The state of a process is defined in part by the current activity of that
process. Each process may be in one of the following states:

 New: The process is being created.


 Running: Instructions are being executed.
1
 Waiting: The process is waiting for some event to occur (such as an I/O completion or reception of
signal).
 Ready: The process is
 waiting to be assigned to a processor.
 Terminated: The process has finished execution.

terminate
d
new
admitted interrupt exit

ready running

Scheduler/ dispatch

I/O or event completion I/O or event wait

waiting

Fig.: Diagram of process state

These state names are arbitrary, and they vary across operating systems. The states that they represent are found
on all systems, however. Certain operating systems more finely delineate process states. Only one process can
be running on any processor at any instant, although many processes may be ready and waiting.

PROCESS CONTROL BLOCK

Each processes is represented in the operating system by a process control block (PCB) - also called a task
control block. A PCB is shown in figure A. It contains many pieces of information associated with a specific
process, including these:

Pointer process state

Process number

Program counter

Registers
2
Memory limits
List of open files

Fig. : Process Control Block (PCB)

 Process state: The state may be new, ready, running, waiting, halted, and so on.
 Program counter: The counter indicates the address of the next instruction to be executed for this
process.
 CPU registers: The registers vary in number and type, depending on the computer architecture. They
include accumulators, index registers, stack pointers, and general-purpose registers, plus any condition-
code information. Along with the program counter, this state information must be saved when an
interrupt occurs, to allow the process to be continued correctly afterward (Figure B).
 CPU-scheduling information: This information includes a process priority, pointers to scheduling
queues, and any other scheduling parameters.
 Memory-management information: This information may include such information as the base and
limit registers, the page tables, or the segment tables, depending on the memory system used by the
operating system.
 Accounting information: This information includes the amount of CPU and real time used, time limits,
account numbers, job or process numbers, and so on.
 I/O status information: The information includes the list of I/O devices allocated to this process, a list
of open files, and so on.

PROCESS SWITCHING

Switching from one process to another in a system requires saving the state of the old process and loading the
saved state for the new process. This task is known as context switching. The context of a process is
represented in the PCB of a process that includes various information such as the value of CPU registers, the
process state, memory management information, scheduling information etc. when a context switch occurs, the
kernel saves the context of old process in its PCB and load the context of next (new) process that is currently
scheduled to run. The switching time between two processes is pure overhead, because the system does no
useful work, while switching. Its speed varies from machine to machine, depending on the memory speed, the
number of registers that must be copies, and the existence of special instruction to store OR load registers.
Typical speed ranges from 1 to 1000 microseconds.

Some processors provide multiple sets of registers. Also, some operating systems are more complex. In these
situations, more work is required to be done during switching.

Switching can take place only when the operating system has control of the system. An operating system can
acquire control by:

 Interrupt

3
 Trap
 System call

The main objective of process switching is to interrupt a running process and assign the control of an operating
system to a different process which wants to execute to accomplish task.

Process P0 Operating System Process P1

Interrupt or system call

Executing
Save state into PCB0

: Idle

Reload state from PCB1

Idle executing

Interrupt or system call

Save state into PCB1

: Idle

Reload state from PCB0

Executing

Fig.: Diagram showing CPU switch from process to process

Note: context switching has become such a performance bottleneck that programmes are using new structures
(Threads) to avoid it whenever possible.

UNIT-3 PROCESS SCHEDULING


Definition

4
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 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.
PROCESS SCHEDULING QUEUES

The OS maintains all PCBs in Process Scheduling Queues. The OS maintains a separate queue for each of the
process states and PCBs of all processes in the same execution state are placed in the same queue. When the
state of a process is changed, its PCB is unlinked from its current queue and moved to its new state queue.
The Operating System maintains the following important process scheduling queues −
 Job queue − This queue keeps all the processes in the system.
 Ready queue − This queue keeps a set of all processes residing in main memory, ready and waiting to
execute. A new process is always put in this queue.
 Device queues − The processes which are blocked due to unavailability of an I/O device constitute this
queue.
As processes enter the system, they are put into a job queue. This queue consists of all processes in the system.
The processes that are residing in main memory and are ready and waiting to execute are kept on a list called
the ready queue. This queue is generally stored as a linked list.

The operating system also has other queues. When a process is allocated the CPU, it executes for a while and
eventually quits, is interrupted, or waits for the occurrence of a particular event, such as the completion of an
I/O request. In the case of an I/O request, such a request may be to a dedicated tape drive, or to a shared device,
such as a disk. Since the system has many processes, the disk may be busy with the I/O request of some other
process. The process therefore may have to wait for the disk. The list of processes waiting for a particular I/O
device is called a device queue. Each device has its own device queue.

A common representation of process scheduling is a queuing diagram, such as that in Figure C. each
rectangular box represents a queue. Two types of queues are present: the ready queue and a set of device
queues. The circles represent the resources that serve the queues, and the arrows indicate the flow of processes
in the system.

A new process is initially put in the ready queue. It waits in the ready queue until it is selected for execution.
Once the process is assigned to the CPU and is executing, one of several events could occur:

 The process could issue an I/O request, and then be placed in an I/O queue.
 The process could create a new sub process and wait for its termination.
 The process could be removed forcibly from the CPU, as a result of an interrupt, and be put back in the
ready queue.

Exit
Job CPU
Ready queue
queue

I/O I/O queue I/O request

5
Time slice expired

Child
Fork a child
execute
s

Interrup Wait for an interrupt


t occurs

Fig.: Queueing-diagram representation of process scheduling

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 queue. A process continues this cycle until it terminates, at which time it is removed from all
queues and has its PCB and resources deallocated.

Note: The OS can use different policies to manage each queue (FIFO, Round Robin, Priority, etc.). The OS
scheduler determines how to move processes between the ready and run queues.

SCHEDULERS

A process migrates between the various scheduling queues throughout its lifetime. The operating system must
select, for scheduling purposes, processes from these queues in some fashion. The selection process is carried
out by the appropriate scheduler.

Schedulers are special system software which handle process scheduling in various ways. Their main task is to
select the jobs to be 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 distinction between these two schedulers is the frequency of their execution. The short-term
scheduler must select a new process for the CPU frequently. The long-term scheduler, on the other hand,
executes must less frequently.
The primary objective of the job scheduler is to provide a balanced mix of jobs, such as I/O bound and CPU
bound. An I/O-bound process spends more of its time doing I/O than it spends doing computations. A CPU-
bound process, on the other hand, using more of its time doing computation than I/O-bound process uses. The
long-term scheduler should select a good process mix of I/O-bound and CPU-bound processes. If all processes
are I/O bound, the ready queue will almost always be empty, and the short-term scheduler will have little to do.

6
If all processes are CPU bound, the I/O waiting queue will almost always be empty, devices will go unused, and
again the system will be unbalanced. The system with the best performance will have a combination of CPU-
bound and I/O-bound processes.
The long-term scheduler also controls the degree of multiprogramming-the number of process in memory. 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.

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 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. Suspended processes 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. Swapping may be necessary to improve the process mix.

COMPARISON AMONG SCHEDULER

S.N. Long-Term Scheduler Short-Term Scheduler Medium-Term Scheduler


1. It is a process swapping
It is a job scheduler It is a CPU scheduler
scheduler.
2. Speed is fastest among other Speed is in between both short
Speed is lesser than short term scheduler
two and long term scheduler.
3. It provides lesser control
It controls the degree of It reduces the degree of
over degree of
multiprogramming multiprogramming.
multiprogramming
4. It is almost absent or minimal in time It is also minimal in time It is a part of Time sharing
sharing system sharing system systems.
5. It can re-introduce the process
It selects processes from pool and loads It selects those processes
into memory and execution can
them into memory for execution which are ready to exec
be continued.

You might also like