Os Process Scheduling
Os Process Scheduling
http://www.tuto rialspo int.co m/o pe rating _syste m/o s_pro ce ss_sche duling .htm Co pyrig ht tuto rials po int.co m
Definition
T he process scheduling is the activity of the process manag er that handles the removal of the running process
from the CPU and the selection of another process on the basis of a particular strateg y.
Process scheduling is an essential part of a Multiprog ramming operating system. Such operating systems allow
more than one process to be loaded into the executable memory at a time and loaded process shares the CPU
using time multiplexing .
Scheduling Queues
Scheduling queues refers to queues of processes or devices. When the process enters into the system, then
this process is put into a job queue. T his queue consists of all processes in the system. T he operating system
also maintains other queues such as device queue. Device queue is a queue for which multiple processes are
waiting for a particular I/O device. Each device has its own device queue.
T his fig ure shows the queuing diag ram of process scheduling .
Ready queue
Device queue
A newly arrived process is put in the ready queue. Processes waits in ready queue for allocating the CPU. Once
the CPU is assig ned to a process, then that process will execute. While executing the process, any one of the
following events can occur.
T he process could issue an I/O request and then it would be placed in an I/O queue.
T he process could create new sub process and will wait for its termination.
T he process could be removed forcibly from the CPU, as a result of interrupt and put back in the ready
queue.
1 Running
When new process is created by Operating System that process enters into the system as in the
running state.
2 Not Running
Processes that are not running are kept in queue, waiting for their turn to execute. Each entry in the
queue is a pointer to a particular process. Queue is implemented by using linked list. Use of
dispatcher is as follows. When a process is interrupted, that process is transferred in the waiting
queue. If the process has completed or aborted, the process is discarded. In either case, the
dispatcher then selects a process from the queue to execute.
Schedulers
Schedulers are special system softwares which handles process scheduling in various ways.T heir 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
On some systems, the long term scheduler may not be available or minimal. T ime-sharing operating systems
have no long term scheduler. When process chang es the state from new to ready, then there is use of long term
scheduler.
Short term scheduler also known as dispatcher, execute most frequently and makes the fine g rained decision of
which process to execute next. Short term scheduler is faster than long term scheduler.
Running process may become suspended if it makes an I/O request. Suspended processes cannot make any
prog ress towards completion. In this condition, to remove the process from memory and make space for other
process, the suspended process is moved to the secondary storag e. T his 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.
2 Speed is lesser than short term Speed is fastest among Speed is in between both short and
scheduler other two long term scheduler.
3 It controls the deg ree of It provides lesser control It reduces the deg ree of
multiprog ramming over deg ree of multiprog ramming .
multiprog ramming
5 It selects processes from pool It selects those processes It can re-introduce the process
and loads them into memory for which are ready to execute into memory and execution can be
execution continued.
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 sing le 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 context switcher
saves the content of all processor reg isters for the process being removed from the CPU, in its process
descriptor. T he context of a process is represented in the process control block of a process.
Context switch time is pure overhead. Context switching can sig nificantly affect performance as modern
computers have a lot of g eneral and status reg isters to be saved. Content switching times are hig hly dependent
on hardware support. Context switch requires ( n + m ) bxK time units to save the state of the processor with n
g eneral reg isters, assuming b are the store operations are required to save n and m reg isters of two process
control blocks and each store instruction requires K time units.
Some hardware systems employ two or more sets of processor reg isters to reduce the amount of context
switching time. When the process is switched, the following information is stored.
Scheduling Information
Chang ed State
I/O State
Accounting