Basic Concepts & Criteria of CPU Scheduling
Basic Concepts & Criteria of CPU Scheduling
CPU scheduling is the task performed by the CPU that decides the way and order in
which processes should be executed.
CPU Scheduler
Selects from among the processes in memory that are ready to execute, and
allocates the CPU to one of them.
CPU scheduling decisions may take place when a process:
1. Switches from running to waiting state.
2. Switches from running to ready state.
3. Switches from waiting to ready.
4. Terminates.
Scheduling under 1 and 4 is non preemptive.
All other scheduling is preemptive.
Dispatcher
Dispatcher module gives control of the CPU to the process selected by the
short-term scheduler; this involves:
✦ switching context
✦ switching to user mode
✦ jumping to the proper location in the user program to restart that program
Dispatch latency – time it takes for the dispatcher to stop one process and start another
running.
3. Turnaround Time
For a particular process, an important criterion is how long it takes to execute
that process. The time elapsed from the time of submission of a process to
the time of completion is known as the turnaround time. Turn-around time is
the sum of times spent waiting to get into memory, waiting in the ready
queue, executing in CPU, and waiting for I/O.
Turn Around Time = Completion Time – Arrival Time.
4. Waiting Time
A scheduling algorithm does not affect the time required to complete the
process once it starts execution. It only affects the waiting time of a process
i.e. time spent by a process waiting in the ready queue.
Waiting Time = Turnaround Time – Burst Time.
5. Response Time
In an interactive system, turn-around time is not the best criterion. A process
may produce some output fairly early and continue computing new results
while previous results are being output to the user. Thus another criterion is
the time taken from submission of the process of the request until the first
response is produced. This measure is called response time.
Response Time = CPU Allocation Time(when the CPU was allocated for the
first) – Arrival Time
6. Completion Time
The completion time is the time when the process stops executing, which
means that the process has completed its burst time and is completely
executed.
7. Priority
If the operating system assigns priorities to processes, the scheduling
mechanism should favor the higher-priority processes.
8. Predictability
A given process always should run in about the same amount of time under
a similar system load.