0% found this document useful (0 votes)
9 views

Ch5 CPU Scheduling

This document discusses CPU scheduling in operating systems. It covers basic concepts of CPU-I/O burst cycles and how scheduling aims to maximize CPU utilization in multiprogramming. The objectives of scheduling algorithms are outlined, including metrics like throughput, turnaround time, and waiting time. Preemptive and non-preemptive scheduling are defined. Common scheduling algorithms like first-come, first-served are also introduced.

Uploaded by

younas125
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Ch5 CPU Scheduling

This document discusses CPU scheduling in operating systems. It covers basic concepts of CPU-I/O burst cycles and how scheduling aims to maximize CPU utilization in multiprogramming. The objectives of scheduling algorithms are outlined, including metrics like throughput, turnaround time, and waiting time. Preemptive and non-preemptive scheduling are defined. Common scheduling algorithms like first-come, first-served are also introduced.

Uploaded by

younas125
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Chapter 5: CPU Scheduling !

!
Operating System Concepts – 8th Edition, !
Silberschatz, Galvin and Gagne ©2009
Chapter 5: CPU Scheduling !

• Basic Concepts!
• Scheduling Criteria !
• Scheduling Algorithms!
• Thread Scheduling!
• Multiple-Processor Scheduling!
• Linux Example!

!
Operating System Concepts – 8th Edition !
2 !
Silberschatz, Galvin and Gagne ©2009
Objectives
!

• To introduce CPU scheduling, which is the basis for


multiprogrammed operating systems!
• To describe various CPU-scheduling algorithms!
• To discuss evaluation criteria for selecting a CPU-
scheduling algorithm for a particular system!

!
Operating System Concepts – 8th Edition !
3 !
Silberschatz, Galvin and Gagne ©2009
Basic Concepts
!

• The objective of multiprogramming is to have some


process running at all time, to maximum CPU
utilization.!
• CPU–I/O Burst Cycle:!
uProcess execution consists of a cycle of !
CPU execution and I/O wait!
uProcess execution begins with a CPU burst that is
followed by an I/O burst, which is followed by
another CPU burst , then another I/O burst , and so
on,.. The final CPU burst ends the process.!

!
Operating System Concepts – 8th Edition !
4 !
Silberschatz, Galvin and Gagne ©2009
Alternating Sequence of CPU And I/O Bursts!

!
Operating System Concepts – 8th Edition !
5 !
Silberschatz, Galvin and Gagne ©2009
Basic Concepts
!

CPU burst distribution!


❖ A large number of short CPU bursts and a small
number of long CPU bursts.!
❖An I/O –bound program has many short CPU bursts.!
❖A CPU –bound program has few long CPU bursts.!

!
!

!
Operating System Concepts – 8th Edition !
6 !
Silberschatz, Galvin and Gagne ©2009
Histogram of CPU-burst Times !

A large number of short CPU bursts !

small number of long CPU bursts!

!
Operating System Concepts – 8th Edition !
7 !
Silberschatz, Galvin and Gagne ©2009
CPU Scheduler
!

• When the CPU becomes idle, the OS must select from


among the processes in memory that are ready to
execute, and allocates the CPU to one of them.!
• The selection process is carried out by the short-term
scheduler (CPU scheduler ).!

!
Operating System Concepts – 8th Edition !
8 !
Silberschatz, Galvin and Gagne ©2009
CPU Scheduler
!

• CPU scheduling decisions may take place when a


process:!
1. !Switches from running state to the waiting state(result
of I/o request or wait for the termination of one of the
child processes).!
2. !Switches from running state to ready state(interrupt).!
3. !Switches from waiting state to ready state(completion
of I/O)!
4. !Terminates!
• Scheduling under only 1 and 4 is nonpreemptive or
cooperative.!
• All other scheduling is preemptive!

!
Operating System Concepts – 8th Edition !
9 !
Silberschatz, Galvin and Gagne ©2009
Preemptive scheduling
!

• Under nonpreemptive scheduling, once the CPU has been


allocated to a process, the process keeps the CPU until it
releases the CPU either by terminating or by switching to
the waiting state.!
• Windows 95 and all subsequent versions of windows OS
have used preemptive scheduling.!

!
Operating System Concepts – 8th Edition !
10 !
Silberschatz, Galvin and Gagne ©2009
Dispatcher
!

• The Dispatcher is the module that 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!
• It should be fast.!
• Dispatch latency – the time it takes for the
dispatcher to stop one process and start another
running!

!
Operating System Concepts – 8th Edition !
11 !
Silberschatz, Galvin and Gagne ©2009
Scheduling Criteria
!

• CPU utilization – keep the CPU as busy as possible.!


• Throughput – # of processes that complete their
execution per time unit(10 processes/second)!
• Turnaround time – amount of time to execute a
particular process(the interval from the time of
submission of a process to the time of completion,
waiting to get into memory, waiting in the ready queue,
executing on the CPU, doing I/O). !
• Waiting time – the amount of times a process has been
waiting in the ready queue!
• Response time – amount of time it takes from when a
request was submitted until the first response is
produced, not output (for time-sharing environment)!
!
Operating System Concepts – 8th Edition !
12 !
Silberschatz, Galvin and Gagne ©2009
Scheduling Algorithm Optimization Criteria!

• Max CPU utilization!


• Max throughput!
• Min turnaround time !
• Min waiting time !
• Min response time!

!
Operating System Concepts – 8th Edition !
13 !
Silberschatz, Galvin and Gagne ©2009
First-Come, First-Served (FCFS) Scheduling!
• Jobs are scheduled in order of arrival!
• When a process enters the ready queue, its PCB is
linked onto the tail of the queue.!
• When the CPU is free, it is allocated to the process at
the head of the queue (the running process is then
removed from the queue).!
• Disadvantages:!
• Non-preemptive : once the CPU is allocated to a
process, the process keeps the CPU until it releases it,
either by terminating or requesting I/O.!
• The average waiting time is often quite long.!
!
! !!

!
Operating System Concepts – 8th Edition !
14 !
Silberschatz, Galvin and Gagne ©2009
example !

! !Process! Burst Time!!


! ! P1 !24!
! ! P2 !3!
! ! P3 !3!

• Suppose that the processes arrive in the order: P1 , P2 , P3


The Gantt Chart for the schedule is:

P1! P2! P3!

0! 24! 27! 30!


!
• Waiting time for P1 = 0; P2 = 24; P3 = 27!
• Average waiting time: (0 + 24 + 27)/3 = 17!

!
Operating System Concepts – 8th Edition !
15 !
Silberschatz, Galvin and Gagne ©2009
FCFS Scheduling (Cont) !

Suppose that the processes arrive in the order!


! ! P2 , P3 , P1 !
• The Gantt chart for the schedule is:
!
P2! P3! P1!

! 0! 3! 6! 30!
• Waiting time for P1 = 6; P2 = 0; P3 = 3!
• Average waiting time: (6 + 0 + 3)/3 = 3!
• Much better than previous case!
• Convoy effect as short processes go behind long process
àlower CPU and device utilization.!

Operating System Concepts – 8th Edition ! !


16 !
Silberschatz, Galvin and Gagne ©2009
Convoy effect: example !

Assume we have one CPU-bound process, P1, and many I/O-bound


processes. P2-P5!
P5! P4! P3! P2! P1!

The CPU-bound process P1 will get and hold the CPU. !

Ready Queue!
CPU!

Running
P1!
I/ O Queue!
I/O device ! Running!
P5! P4! P3! P2!

!
Operating System Concepts – 8th Edition !
Silberschatz, Galvin and Gagne ©2009
Convoy effect: example !

During this time, all the other processes will finish their I/0 and will move into
the ready queue, waiting for the CPU !

Ready Queue!
CPU!

P5! P4! P3! P2! Running


P1!
I/ O Queue!
I/O device ! Idle!

!
Operating System Concepts – 8th Edition !
Silberschatz, Galvin and Gagne ©2009
Convoy effect: example !

Eventually, the CPU-bound process finishes its CPU burst and moves to an
I/0 device. !

Ready Queue!
CPU!

P5! P4! P3! Running


P2!
I/ O Queue!
I/O device ! Running
P1!

!
Operating System Concepts – 8th Edition !
Silberschatz, Galvin and Gagne ©2009
Convoy effect: example!

All the I/O-bound processes, which have short CPU bursts, execute quickly
and move back to the I/0 queues. !

Ready Queue!
CPU!
At this point, the CPU sits idle. !
Idle!

I/ O Queue!
P5! P4! P3! P2! I/O device ! Running!
P1!

Operating System Concepts – 8th Edition! !


Silberschatz, Galvin and Gagne ©2009
Convoy effect: example !

The CPU-bound process will then move back to the ready queue and be
allocated the CPU. !
Again, all the I/O processes end up waiting in the ready queue until the CPU-
bound process is done. !

CPU!
Ready Queue!
Running
P1!
I/ O Queue!
I/O device ! Running!
P5! P4! P3! P2!

!
Operating System Concepts – 8th Edition !
Silberschatz, Galvin and Gagne ©2009
Shortest-Job-First (SJF) Scheduling !

• This algorithm associates with each process the length of


its next CPU burst. !
• Use these lengths to schedule the process with the
shortest time, if the next CPU bursts of two processes are
the same, FCFS scheduling is used.!
• Two schemes: !
• Nonpreemptive – once CPU given to the process it
cannot be preempted until completes its CPU burst!
• Preemptive – if a new process arrives with CPU burst
length less than remaining time of current executing
process, preempt. This scheme is known as the
Shortest-Remaining-Time-First (SRTF)!

!
Operating System Concepts – 8th Edition !
22 !
Silberschatz, Galvin and Gagne ©2009
Examples of SJF !

Example1:!
! !Process!Arrival Time !Burst Time!
! ! P1 !0.0 !6!
! ! P2 !2.0 !8!
! ! P3 !4.0 !7!
! ! P4 !5.0 !3!
• SJF scheduling chart!
P4! P1! P3! P2!

!
0! 3! 9! 16! 24!
• Average waiting time = (3 + 16 + 9 + 0) / 4 = 7!
• Compare with FCFS AWT=(0+6+14+21)/4=10.25!

Operating System Concepts – 8th Edition! !


23 !
Silberschatz, Galvin and Gagne ©2009
Shortest-Job-First (SJF) Scheduling !

Example2: !Process !Arrival Time Burst Time !!


! ! !P1 !0 ! !7!
! ! !P2 !2 ! !4!
! ! !P3 !4 ! !1!
! ! !P4 !5 ! !4 !
•Non preemptive SJF
!

Average waiting time = (0 + 6 + 3 + 7)/4 = 4!

P1! P3! P2! P4!

0! 2! 4! 5! 7! 8! 12! 16!
P1‘s wating time = 0!
P1(7)!
P2(4)! P2‘s wating time = 6!
P3‘s wating time = 3!
P3(1)!
P4‘s wating time = 7!
P4(4)!

Operating System Concepts – 8th Edition ! !


24 !
Silberschatz, Galvin and Gagne ©2009
Shortest-Job-First (SJF) Scheduling !

Example3:!
! ! !Process !Arrival Time Burst Time !!
! ! ! P1 ! 0 ! !7!
! ! ! P2 ! 2 ! !4!
! ! ! P3 ! 4 ! !1!
! ! P4 ! 5 ! 4!
•Preemptive SJF(SRTF)!
Average waiting time = (9 + 1 + 0 +2)/4 = 3!

P1! P2! P3! P2! P4! P1!

0! 2! 4! 5! 7! 11! 16!
P1(5)! P1‘s wating time = 9!
P1(7)!
P2(4)! P2(2)! P2‘s wating time = 1!
P3‘s wating time = 0!
P3(1)!
P4‘s wating time = 2!
P4(4)!

Operating System Concepts – 8th Edition ! !


25 !
Silberschatz, Galvin and Gagne ©2009
Shortest-Job-First (SJF) Scheduling !

• SJF is optimal – gives minimum average waiting


time for a given set of processes!
• The difficulty is knowing the length of the next CPU
request.!

!
Operating System Concepts – 8th Edition !
26 !
Silberschatz, Galvin and Gagne ©2009
Prediction of the Length of the Next CPU Burst!

!
Operating System Concepts – 8th Edition !
27 !
Silberschatz, Galvin and Gagne ©2009
Priority Scheduling
!

• A priority number (integer) is associated with each process!


• The CPU is allocated to the process with the highest
priority (smallest integer ≡ highest priority in Unix but
lowest in Java)!
• Equal-priority processes are scheduled in FCFS order.!
• Preemptive: preempt the CPU if the priority of the
newly arrived process is higher than the priority of the
currently running process. !
• Nonpreemptive: put the new process at the head of the
ready queue.!

!
Operating System Concepts – 8th Edition !
28 !
Silberschatz, Galvin and Gagne ©2009
Priority Scheduling
!

• SJF is a priority scheduling where priority is the predicted


next CPU burst time!
• Problem ≡ Starvation – low priority processes may never
execute!
• Solution ≡ Aging – as time progresses increase the
priority of the process (for example : 1 every 15 minutes)!

!
Operating System Concepts – 8th Edition !
29 !
Silberschatz, Galvin and Gagne ©2009
Priority Scheduling !

Example : Process !Burst Time priority !!


! ! !P1 ! 10 ! !3!
! ! !P2 ! 1 ! !1!
! ! !P3 ! 2 ! !4!
! ! !P4 ! 1 ! !5!
p5 5 2!
!
All arrived at time 0.!
!
The Gantt chart for the schedule is:
!!
!
P2! P5! P1! P3! P4!
!
!
0! 1! 6! 16! 18! 19!
!
The AWT is (6 +0+ 16+18+1)/5 = 8.2!

!
Operating System Concepts – 8th Edition !
30 !
Silberschatz, Galvin and Gagne ©2009
Priority Scheduling !

Example:!
Process arrival time Burst length Priority!
! ! P1 0 10 3!
P2 0 1 1!
P3 0 2 4!
P4 0 1 5!
P5 3 5 2!
•Gantt chart: Non-preemptive priority scheduling!
! P2! P1! P5! P3! P4!
0 1 11 16 18 19!
•Gantt chart: Preemptive priority scheduling!
!
! P2! P1! P5! P1! P3! P4!
0 1 3 8 16 18 19!

!
Operating System Concepts – 8th Edition !
31 !
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR)
!

• Is designed especially for time-sharing systems.!


• Similar to FCFS, but it is Preemptive to enable
the system to switch between processes.!
• Each process gets a small unit of CPU time (time
quantum or time slice), usually 10-100
milliseconds. !
• The Ready queue is FIFO (new processes are
added to the tail of the queue.)!
• The CPU scheduler picks the first process from
the ready queue, set a timer to interrupt after 1
time quantum, and dispatch the process.!

!
Operating System Concepts – 8th Edition !
32 !
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR)
!

• One of two things will happen!


• The process may have a CPU burst of < 1 time quantum
à the process itself will release the CPU voluntarily.!
• The CPU burst of the currently running process > 1 time
quantum !
àthe timer will go off and will cause an interrupt to the
OS à a context switch will be executed, and the
process will be put at the tail of the ready queue.!
• The CPU scheduler will then select the next process in the
ready queue.!
• Typically, higher average turnaround than SJF, but better
response!

!
Operating System Concepts – 8th Edition !
33 !
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR) !

Example1:!
Time quantum = 4!
!
! !Process !Burst Time!
! !P1 !24!

! ! P2 ! 3!

! ! P3 !3!

• The Gantt chart is:

!
P1! P2! P3! P1! P1! P1! P1! P1!
!
0! 4! 7! 10! 14! 18! 22! 26! 30!
!
• AWT(6(10-4)+4+7)/3 = 5.66!

Operating System Concepts – 8th Edition ! !


34 !
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR) !

• Example2:!
• Time quantum = 20!
! !Process! Burst Time ! Wait Time!
! ! P1 ! !53 ! !57 +24 = 81!
! ! P2 ! !17 ! !20!
! ! P3 ! !68 ! !37 + 40 + 17= 94!
! ! P4 ! !24 ! !57 + 40 = 97!

P1! P2! P3! P4! P1! P3! P4! P1! P3! P3!
0! 20! 37! 57! 77! 97! 117! 121! 134! 154! 162!
P1(53)! 57!
P1(33)! 24!P1(13)!

P2(17)!20!
P3(68)! 37! 40!P3(48)! 17!
P3(28)! P3(8)!

P4(24)! 57! 40! P4(4)!

Average wait time = (81+20+94+97)/4 = 73!


Operating System Concepts – 8th Edition! 35 ! !
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR)
!

• If there are n processes in the ready queue and the time


quantum is q, then each process gets 1/n of the CPU time
in chunks of at most q time units at once. !
• No process waits more than (n-1)*q time units until its
next time quantum. !
• (Ex: 5 processes, TQ = 20 milliseconds, each process will
get up to 20 milliseconds every 100 milliseconds.!
• The Performance of RR depends heavily on the size of
the TQ.!
• TQ large ⇒ FCFS!
• TQ small ⇒ TQ must be large (but not too large) with
respect to context switch time, otherwise overhead is
too high!
!
Operating System Concepts – 8th Edition !
36 !
Silberschatz, Galvin and Gagne ©2009
Time Quantum and Context Switch Time!

!
Operating System Concepts – 8th Edition !
37 !
Silberschatz, Galvin and Gagne ©2009
Turnaround Time Varies With The Time Quantum!

The average TurnAroundTime of a set


of process does not necessarily
improve as the TQ size increase. The
AVG TAT can be improved if most
process finish their next CPU burst in
a single time quantum.!

!
Operating System Concepts – 8th Edition !
38 !
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue
!

• Processes are classified into different groups.!


• Each group have different response-time requirements
àdifferent scheduling needs.!
!
A multilevel queue scheduling algorithm partitions the Ready
queue into separate queues:!
• foreground (interactive)!
• background (batch)!

!
Operating System Concepts – 8th Edition !
39 !
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue
!

• Each queue has its own scheduling algorithm!


foreground – RR!

• background – FCFS!
• Scheduling must be done between the queues!
• Fixed priority preemptive scheduling; (i.e., serve all from
foreground then from background). Possibility of
starvation.!
• Time slice – each queue gets a certain amount of CPU
time which it can schedule amongst its processes; i.e.,
80% to foreground in RR, 20% to background in FCFS !

!
Operating System Concepts – 8th Edition !
40 !
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue Scheduling !

!
Operating System Concepts – 8th Edition !
41 !
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queue !

• Implement multiple ready queues!


• Allows process to move between queues.!
• Just like multilevel queue scheduling, but
assignments are not static!
• Different queues may be scheduled using
different algorithms!

• Multilevel feedback queue-scheduling algorithm


allows a process to move between the various
queues; aging can be implemented this way!

!
Operating System Concepts – 8th Edition !
42 !
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queue !

• Multilevel-feedback-queue scheduler defined by the


following parameters:!
• number of queues!
• scheduling algorithms for each queue!
• method used to determine when to upgrade and
downgrade a process!
• The most general CPU-scheduling algorithm. !
• The most complex algorithm.!

!
Operating System Concepts – 8th Edition !
43 !
Silberschatz, Galvin and Gagne ©2009
Example of Multilevel Feedback Queue !

• Three queues: !
• Q0 – RR with time quantum 8 milliseconds!
• Q1 – RR time quantum 16 milliseconds!
• Q2 – FCFS!
• Scheduling!
• A new job enters queue Q0 which is served FCFS. When it gains CPU,
job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is
moved to queue Q1.!
• At Q1 job is again served FCFS and receives 16 additional milliseconds.
If it still does not complete, it is preempted and moved to queue Q2.!
• AT Q2 job is served FCFS only when queue 0 and queue 1 are empty.!

!
Operating System Concepts – 8th Edition !
44 !
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queues !

!
Operating System Concepts – 8th Edition !
45 !
Silberschatz, Galvin and Gagne ©2009
Thread Scheduling
!

• Distinction between user-level and kernel-level threads!


• On OSs that support them, it is the kernel-level threads-not
processes- that are being scheduled by OS.!
• User-level threads are managed by a thread library and the
kernel is unaware of them.!
• To run on CPU, the user level threads must be mapped to
an associated kernel-level thread. It may use a lightweight
process(LWP).!
contention scope:!
• one distinction between user-level and kernel-level
threads lies in how they are scheduled.!

!
Operating System Concepts – 8th Edition !
46 !
Silberschatz, Galvin and Gagne ©2009
Thread Scheduling !

• Many-to-one and many-to-many models, thread library schedules


user-level threads to run on LWP. Known as process-contention
scope (PCS) since scheduling competition takes place among
threads belonging to the same process.!
• PCS is done according to preempt priority.!
• PTHREAD SCOPE PROCESS schedules threads using PCS
scheduling.!
• Kernel thread scheduled onto available CPU is system-contention
scope (SCS) – competition takes place among all threads in system!
• Systems using the one-to-one model schedule threads using only
SCS.!
• PTHREAD SCOPE SYSTEM schedules threads using SCS
scheduling.!

!
Operating System Concepts – 8th Edition !
47 !
Silberschatz, Galvin and Gagne ©2009
Multiple-Processor Scheduling !

• CPU scheduling more complex when multiple CPUs are available!


• Different rules for homogeneous processors (Identical
processors in terms of their functionality) or heterogeneous
processors.!
1. Asymmetric multiprocessing:!
• All scheduling decisions, I/O processing, and other system
activities handled by a single processor – the master server.!
• The other processors execute only user code.!
• Simple because only one processor accesses the system data
structures, reducing the need for data sharing.!

!
Operating System Concepts – 8th Edition !
48 !
Silberschatz, Galvin and Gagne ©2009
Multiple-Processor Scheduling !

• CPU scheduling more complex when multiple CPUs are available!


• Different rules for homogeneous processors (Identical
processors in terms of their functionality) or heterogeneous
processors.!
1. Asymmetric multiprocessing:!
2. Symmetric multiprocessing (SMP):!
• each processor is self-scheduling, all processes in common ready
queue, or each has its own private queue of ready processes!
• Multiple processors try to access and update a common data
structures. So, scheduler must be programmed carefully.!
• Must ensure that 2 processors don’t choose the same process.!

!
Operating System Concepts – 8th Edition !
49 !
Silberschatz, Galvin and Gagne ©2009
Linux Scheduling!

• Linux Scheduler is a preemptive, priority-based algorithm


with 2 separate priority ranges:!
• Two priority ranges: time-sharing and real-time!
• A real-time range from 0 to 99 à Longer time quantum!
• A nice value ranging from 100 to 140 à Shorter time quantum!

!
Operating System Concepts – 8th Edition !
50 !
Silberschatz, Galvin and Gagne ©2009
Linux Scheduling
!

• The kernel maintains a list of all runnable tasks in a


runqueue data structure.!
• Each runqueue contains two priority arrays : !
• Active:!
contains all tasks with time remaining in their time slices !
• Expired:!
contains all expired tasks.!
!

!
Operating System Concepts – 8th Edition !
51 !
Silberschatz, Galvin and Gagne ©2009
List of Tasks Indexed According to Priorities!
• The scheduler chooses the task with the highest priority
from the active array for execution on the CPU. !
• When the active array is empty à the 2 arrays are
exchanged (the expired array becomes the active array,
and vice versa).!

!
Operating System Concepts – 8th Edition !
52 !
Silberschatz, Galvin and Gagne ©2009
Algorithm Evaluation !

• Deterministic modeling!
• takes a particular predetermined workload and defines the
performance of each algorithm for that workload!
• More examples P: 214!
• Simple and fast!
• Requires exact numbers for input and its answers apply only for
those data!
• Queueing models!
• rate at which new processes arrive, ratio of CPU bursts to I/O
times, distribution of CPU burst times and I/O burst times can
be measured and then approximated or estimated!
• result is a mathematical formula describing it!
• From these it is possible to compute the average throughput,
utilization, waiting time, and so on!
• difficult to work!

!
Operating System Concepts – 8th Edition !
53 !
Silberschatz, Galvin and Gagne ©2009
Algorithm Evaluation !

• Simulations!
• run computer simulations of the different proposed algorithms !
• data to drive the simulation can be randomly generated !
• better alternative when possible is to generate trace tapes!
• expensive!
• Implementation!
• The only completely accurate way to evaluate a scheduling algorithm is to
code it up, put it in the operating system, and see how it works.!
• high cost (coding and user reaction)!

!
Operating System Concepts – 8th Edition !
54 !
Silberschatz, Galvin and Gagne ©2009
Simulations
!

!
Operating System Concepts – 8th Edition !
55 !
Silberschatz, Galvin and Gagne ©2009
Conclusion
!

• We’ve looked at a number of different


scheduling algorithms.!
• Which one works the best is application
dependent.!
• General purpose OS will use priority based, round
robin, preemptive!
• Real Time OS will use priority, no preemption.!

!
Operating System Concepts – 8th Edition !
56 !
Silberschatz, Galvin and Gagne ©2009
End of Chapter 5
!

!
Operating System Concepts – 8th Edition, !
Silberschatz, Galvin and Gagne ©2009

You might also like