Download Module 6: CPU Scheduling

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Mobile operating system wikipedia , lookup

Security-focused operating system wikipedia , lookup

Copland (operating system) wikipedia , lookup

Distributed operating system wikipedia , lookup

OS-tan wikipedia , lookup

Burroughs MCP wikipedia , lookup

OS 2200 wikipedia , lookup

DNIX wikipedia , lookup

Process management (computing) wikipedia , lookup

Thread (computing) wikipedia , lookup

Transcript
Chapter 5: CPU Scheduling
(Continuation)
Determining Length of Next CPU Burst
 Can only estimate the length
 Can be done by using the length of previous CPU bursts, using
exponential averaging
1. tn  actual length of nth CPU burst
2.  n stores the past history
3.  n 1  predicted value for the next CPU burst
4.  , 0    1
5. Define:
tn
 n1   tn  1    n
contains the most recent information,
n
contains the past history
α is the relative weight of recent and past history; more commonly it is
taken α=1/2, so recent history and past history are equally weighted
Operating System Concepts – 7th Edition, Feb 2, 2005
5.2
Silberschatz, Galvin and Gagne ©2005
Philosophy of Exponential Averaging
  =0
n+1 = n
 Recent history does not count
  =1
 n+1 =  tn
 Only the actual last CPU burst counts
 If we expand the formula, we get:
n+1 =  tn+(1 - ) tn -1 + …
+(1 -  )j  tn -j + …
+(1 -  )n +1 0

 Since both  and (1 - ) are less than or equal to 1, each
successive term has less weight than its predecessor
Operating System Concepts – 7th Edition, Feb 2, 2005
5.3
Silberschatz, Galvin and Gagne ©2005
Prediction of the Length of the Next CPU
Burst
 n1   tn  1    n
 0  10;   1/2; t0  6
Operating System Concepts – 7th Edition, Feb 2, 2005
5.4
Silberschatz, Galvin and Gagne ©2005
Priority Scheduling
 A priority number (integer) is associated with each process
 Smaller number  higher priority, larger number  lower
priority
 The CPU is allocated to the process with the highest priority
(smallest integer  highest priority)

Preemptive (preempt the CPU if the priority of 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 if its priority is higher than the priority of
other processes in the ready queue )
 Equal-priority processes are scheduled in FCFS order.
Operating System Concepts – 7th Edition, Feb 2, 2005
5.5
Silberschatz, Galvin and Gagne ©2005
Priority Scheduling
 SJF is a special case of the general priority scheduling. In
this case the priority is the inverse of the predicted next CPU
burst time: the larger the CPU burst, the lower the priority,
and vice versa.
 Problem  Starvation – low priority processes may never
execute
 Solution  Aging – as time progresses increase the priority
of the process that wait in the system for a long time
Operating System Concepts – 7th Edition, Feb 2, 2005
5.6
Silberschatz, Galvin and Gagne ©2005
Round Robin (RR) Scheduling
 Each process gets a small unit of CPU time (time quantum),
usually 10-100 milliseconds. After this time has elapsed, the
process is preempted and added to the end of the ready
queue.
 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
the time frames of at most q time units at once. No process
waits more than (n-1)q time units.
 Performance

q large  FCFS

q too small (about 1 millisecond)  processor sharing 
q must be larger, with respect to context switch, otherwise
overhead is too high
Operating System Concepts – 7th Edition, Feb 2, 2005
5.7
Silberschatz, Galvin and Gagne ©2005
Time Quantum and Context Switch Time
Operating System Concepts – 7th Edition, Feb 2, 2005
5.8
Silberschatz, Galvin and Gagne ©2005
Example of RR with Time Quantum = 20
Process
P1
P2
P3
P4
 The Gantt chart is:
P1
0
P2
20
P3
37
Burst Time
53
17
68
24
P4
57
P1
77
P3
97 117
P4
P1
P3
P3
121 134 154 162
 Typically, higher average turnaround than SJF, but better response
Operating System Concepts – 7th Edition, Feb 2, 2005
5.9
Silberschatz, Galvin and Gagne ©2005
Turnaround Time Varies With The Time Quantum
•If the time quantum is too large, RR scheduling degenerates to FCFS policy
•About 80% of the CPU bursts should be shorter than the time quantum
Operating System Concepts – 7th Edition, Feb 2, 2005
5.10
Silberschatz, Galvin and Gagne ©2005
Multilevel Queue
 Ready queue is partitioned into separate queues:
foreground (interactive)
background (batch)
 Each queue has its own scheduling algorithm

foreground – Round Robin (RR)

background – First come, first served (FCFS)
 Scheduling must be done between the queues

Fixed priority 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 and 20% to background in
FCFS
Operating System Concepts – 7th Edition, Feb 2, 2005
5.11
Silberschatz, Galvin and Gagne ©2005
Multilevel Queue Scheduling
Operating System Concepts – 7th Edition, Feb 2, 2005
5.12
Silberschatz, Galvin and Gagne ©2005
Multilevel Feedback Queue
 A process can move between the various queues; aging can
be implemented this way
 Multilevel-feedback-queue scheduler is defined by the
following parameters:

number of queues

scheduling algorithms for each queue

method used to determine when to upgrade a process

method used to determine when to demote a process

method used to determine which queue a process will
enter when that process needs service
Operating System Concepts – 7th Edition, Feb 2, 2005
5.13
Silberschatz, Galvin and Gagne ©2005
Example of Multilevel Feedback Queue
 Three queues:

Q0 – RR with time quantum 8 milliseconds

Q1 – RR time quantum 16 milliseconds

Q2 – FCFS, only when Q0 and Q1 are empty
 Scheduling

A new job enters queue Q0 . 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 receives 16 additional milliseconds. If it still does
not complete, it is preempted and moved to queue Q2.
Operating System Concepts – 7th Edition, Feb 2, 2005
5.14
Silberschatz, Galvin and Gagne ©2005
Multilevel Feedback Queues
Operating System Concepts – 7th Edition, Feb 2, 2005
5.15
Silberschatz, Galvin and Gagne ©2005
Thread Scheduling
 On operating systems that support user-level
and kernel-level threads the latter are being
scheduled by the operating system
 User-level threads are managed by a thread
library. To run on a CPU, user-level thread
must be mapped to an associate kernel-level
thread. This mapping may use a lightweight
process (LWP - a mean of achieving multitasking. In
contrast to a regular (full-blown) process, an LWP shares all
(or most of) its logical address space and system resources
with other process(es); in contrast to a thread, a lightweight
process has its own private process identifier and parenthood
relationships with other processes)
Operating System Concepts – 7th Edition, Feb 2, 2005
5.16
Silberschatz, Galvin and Gagne ©2005
Thread Scheduling
 Local Scheduling (Process-Contention Scope)
– how the threads library decides which thread
to put onto an available lightweight process
(LWP)
 Global Scheduling (System-Contention Scope)
– how the kernel decides which kernel thread
to run next
Operating System Concepts – 7th Edition, Feb 2, 2005
5.17
Silberschatz, Galvin and Gagne ©2005
Windows XP Scheduling
 Windows XP schedules threads using a priority-based,
preemptive scheduling algorithm.
 The Windows XP scheduler ensures that the higher priority
thread will always run.
 The portion of the Windows XP kernel that handles
scheduling is called the dispatcher.
 A thread selected to run by the dispatcher will run until it is
preempted by a higher priority thread, until it terminates, until
its time quantum ends, or until it calls a blocking system call
(such as for Input/Output operation)
 If a higher priority real-time thread becomes ready while a
lower priority thread is running, the lower-priority thread will
be preempted.
Operating System Concepts – 7th Edition, Feb 2, 2005
5.18
Silberschatz, Galvin and Gagne ©2005
Windows XP Scheduling
 There are two priority classes:

The variable class contains threads having priorities from 1
to 15

The real-time class contains threads with priorities from 16
to 31.

A single thread running at priority 0 is used for memory
management.
 Each scheduling priority has a separate queue of the
corresponding processes
 The dispatcher uses a queue for each scheduling priority and
traverses the set of queues from highest to lowest until it finds a
thread that is ready to run.
 If no ready thread is found, the dispatcher will execute a special
thread called the idle thread.
Operating System Concepts – 7th Edition, Feb 2, 2005
5.19
Silberschatz, Galvin and Gagne ©2005
Windows XP Priorities
The relative priorities
The priority
within a class
classes
By default, the base priority is the value of the Normal relative priority for the
specific class
Operating System Concepts – 7th Edition, Feb 2, 2005
5.20
Silberschatz, Galvin and Gagne ©2005
Windows XP Priorities: Some Rules
 Processes are typically members of the
NORMAL_PRIORITY_CLASS.

A process will belong to this class unless the parent of the
process was of the IDLE_PRIORITY_CLASS or unless another
class was specified when the process was created.
 The initial priority of a thread is typically the base priority of the
process the thread belongs to.
 When a thread’s time quantum runs out, the thread is
interrupted; if the thread is in the variable-priority class, its
priority is lowered. However, the priority is never lowered below
the base priority.
Operating System Concepts – 7th Edition, Feb 2, 2005
5.21
Silberschatz, Galvin and Gagne ©2005
Windows XP Priorities: Some Rules
 Lowering the thread’s priority tends to limit the CPU
consumption of compute-bound threads.
 When a variable-priority thread is released from a wait
operation, the dispatcher boosts the priority. The amount of
boost depends on what the thread is waiting for:

A thread that was waiting for keyboard I/O would get a large
increase

A threat that was waiting for a disk operation would get a
moderate increase
 Windows XP distinguishes between the foreground process that
is currently selected on the screen and the background
processes that are not currently selected. When a process
moves into the background, Windows XP increases the
scheduling quantum by some factor – typically by 3.
Operating System Concepts – 7th Edition, Feb 2, 2005
5.22
Silberschatz, Galvin and Gagne ©2005
End of Chapter 5