windows process-scheduling
TRANSCRIPT
![Page 1: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/1.jpg)
1
![Page 2: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/2.jpg)
2
![Page 3: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/3.jpg)
◦ Muhammed Talha MCS-13-08
◦ Aitazaz Ahsan MCS-13-38
3
![Page 4: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/4.jpg)
Scheduling
Scheduling Criteria
Windows Scheduling
Priority Schemes
Thread Priority
Scheduling Features in Windows
4
![Page 5: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/5.jpg)
Maximum CPU utilization ? Multiprogramming.
◦ Several processes are kept in memory at one time.
◦ Any process can take over the CPU.
Process Scheduler is the component of the OS.
Scheduling of the CPU is fundamental to OS design.
Ref: William Stalling
5
![Page 6: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/6.jpg)
Assign processes to be executed by the processor over time.
Meets System objectives:
◦ Response time
◦ Throughput
◦ Processor efficiency
Ref: William Stalling
6
![Page 7: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/7.jpg)
Scheduling function should:
◦ Share time fairly among processes
◦ Prevent starvation of a process
◦ Use the processor efficiently
◦ Have low overhead
◦ Prioritise processes when necessary
Ref: William Stalling
7
![Page 8: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/8.jpg)
CPU scheduling is affected by the following :
◦ (N) A process switches from running to waiting state ◦ (P) A process switches from running to ready state ◦ (P) A process switches from waiting to ready state ◦ (N) A process switches from running to terminate
state
Circumstances 1 and 4 are non pre-emptive; “they offer no schedule choice”
Circumstances 2 and 3 are pre-emptive; “they can be scheduled”
Ref: William Stalling
8
![Page 9: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/9.jpg)
Ref: William Stalling
9
![Page 10: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/10.jpg)
The dispatcher module gives control of the CPU to the process selected by the short-term scheduler; this involves:
◦ switching context
◦ switching to user mode
The dispatcher needs to run as fast as possible, since it is invoked during process context switch.
The time it takes for the dispatcher to stop one process and start another process is called dispatch latency.
http://en.wikipedia.org/wiki/Scheduling_(computing)
10
![Page 11: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/11.jpg)
Different CPU scheduling algorithms have different properties.
The choice of a particular algorithm may favour one class of processes over another.
In choosing which algorithm to use, the properties of the various algorithms should be considered.
Ref: William Stalling
11
![Page 12: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/12.jpg)
Criteria for comparing CPU scheduling algorithms may include:
◦ CPU utilization
◦ Throughput
◦ Turnaround time
◦ Response time
◦ Waiting time
Ref: William Stalling
12
![Page 13: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/13.jpg)
First Come, First Served (FCFS)
Shortest Job First (SJF)
Priority
Round Robin (RR)
Ref: William Stalling
13
![Page 14: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/14.jpg)
DOS-Based◦ Windows 3.1x
Windows 9x◦ Windows 95, 98, ME
Windows NT◦ 2000, XP, Vista, 7, 8, 10
Windows Server◦ 2003, 2008, 2012
Windows Mobile
Windows Phone◦ 7, 8, 10
http://en.wikipedia.org/wiki/Windows_NT
14
![Page 15: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/15.jpg)
MS-DOS is non-multitasking, and as such did not
feature a schedule.
Windows 3.1x used a non-preemptive scheduler,
meaning that it did not interrupt programs.
Windows 95 introduced a rudimentary preemptive
scheduler.
http://en.wikipedia.org/wiki/Scheduling_(computing)
15
![Page 16: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/16.jpg)
Windows NT-based operating systems use a multilevelfeedback queue. 32 priority levels are defined,
◦ Give preference to short jobs.
◦ Give preference to I/O bound processes.
◦ Quickly establish the nature of a process and schedule the process accordingly.
All processes receive a priority boost after a wait event, but processes that have experienced a keyboard I/O wait get a larger boost than those that have experienced a disk I/O wait.
http://www.ukessays.com/essays/information-
systems/compare-cpu-scheduling-of-linux-and-
windows.php16
![Page 17: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/17.jpg)
Windows XP schedules threads using a priority-based, pre-emptive scheduler with a flexible system of priority levels that includes round-robin scheduling within each level.
The scheduler ensures that the highest priority thread
will always run.
The portion of the Windows kernel that handles
scheduling is called the dispatcher.
http://en.wikipedia.org/wiki/Scheduling_(computing)
17
![Page 18: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/18.jpg)
A thread selected to run by the dispatcher will run until it:
◦ Pre-empted by a higher-priority thread,
◦ Terminates,
◦ Time quantum ends,
◦ Calls a blocking system call such as I/O
If a higher priority real-time thread becomes ready while
a lower-priority thread is running, lower-priority thread
will be pre-empted.
◦ This pre-emption gives a real-time thread preferential
access to the CPU when the thread needs such
access.
http://en.wikipedia.org/wiki/Scheduling_(computing)
18
![Page 19: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/19.jpg)
http://en.wikipedia.org/wiki/Multilevel_feedback_queue
19
![Page 20: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/20.jpg)
The dispatcher uses a 32-level priority scheme to determine the order of thread execution
Priorities are divided into two classes
◦ The variable class contains threads having priorities 1
to 15
◦ The real-time class contains threads with priorities
ranging from 16 to 31
◦ There is also a thread running at priority 0 that is used
for memory management
Ref: William Stalling20
![Page 21: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/21.jpg)
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
Ref: William Stalling21
![Page 22: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/22.jpg)
Ref: William Stalling22
![Page 23: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/23.jpg)
The Windows Win32 API identifies six priority classes to which a process can belong as shown below
◦ Real-time priority class
◦ High priority class
◦ Above normal priority class
◦ Normal priority class
◦ Below normal priority class
◦ Low priority class
Priorities in all classes except the real-time priority class are variable
◦ This means that the priority of a thread in one of these classes can change
https://prezi.com/2swi3wc7pger/xp-scheduling/23
![Page 24: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/24.jpg)
24
![Page 25: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/25.jpg)
Within each of the priority classes is a relative priority as shown below
The priority of each thread is based on the priority class
it belongs to and its relative priority within that class
https://prezi.com/2swi3wc7pger/xp-scheduling/25
![Page 26: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/26.jpg)
The initial priority of a thread is typically the base priority of the process that the thread belongs to
When a thread’s time quantum runs out, that 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
Lowering the thread’s priority tends to limit the CPU
consumption of compute-bound threads
26
![Page 27: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/27.jpg)
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 was waiting for
A thread that was waiting for keyboard I/O would get a large increase
A thread that was waiting for a disk operation would get a moderate increase
This strategy tends to give good response time to interactive threads that are using the mouse and windows
27
![Page 28: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/28.jpg)
It also enables I/O-bound threads to keep the I/O devices busy while permitting compute-bound threads to use spare CPU cycles in the background
This strategy is used by several time-sharing operating systems, including UNIX
In addition, the window with which the user is currently interacting receives a priority boost to enhance its response time
28
![Page 29: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/29.jpg)
When a user is running an interactive program, the system needs to provide especially good performance for that process
Therefore, Windows XP has a special scheduling rule for
processes in the normal priority class
Windows XP distinguishes between the foreground
process that is currently selected on the screen and the
background processes that are not currently selected
https://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx
29
![Page 30: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/30.jpg)
When a process moves in the foreground,
Windows XP increases the scheduling quantum
by some factor – typically by 3
This increase gives the foreground process
three times longer to run before a time-sharing
pre-emption occurs
https://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx
30
![Page 31: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/31.jpg)
Earlier version of Windows provided a feature known as
Fiber.
Fibers allowed several user-mode threads (fibers) to be
mapped to a single kernel thread.
Fibers were of limited practical use.
A fiber was unable to make calls to the windows API
So Microsoft introduced a UMS.
http://superuser.com/questions/452780/scheduling-algorithm-used-in-windows-7
31
![Page 32: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/32.jpg)
Windows 7 introduced a user-mode scheduling (UMS),
Which allows application to create and manage threads
independently of the kernel.
Thus , an application can create and scheduled multiple
threads without involving the windows Kernel scheduler.
Scheduling threads in user mode is much more efficient
than kernel mode.
http://superuser.com/questions/452780/scheduling-algorithm-used-in-windows-7
32
![Page 33: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/33.jpg)
CPU cycle-based thread scheduling
The scheduler was modified to use the cycle counter
register of modern processors to keep track of exactly
how many CPU cycles a thread has executed, rather
than just using an interval-timer interrupt routine
This new CPU cycle-based thread scheduling gives a
greater fairness and more deterministic app behavior.
http://en.wikipedia.org/wiki/Technical_features_new_to_Windows_Vista#Kernel_and_core_OS_changes
33
![Page 34: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/34.jpg)
WinJS Scheduling
A new scheduler API in Windows 8.1 lets you set
the priority of tasks and manage jobs.
This helps you write HTML5 apps that use system
resources more efficiently and provide a more
responsive experience to your users.
https://msdn.microsoft.com/en-us/library/windows/apps/dn751496.aspx
34
![Page 35: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/35.jpg)
Pre-emptive scheduler with a flexible system of priority levels that includes round-robin with multi level priority queues.
Dispatcher used a 32-level priority scheme to determine the order of thread execution.
The Windows Win32 API identifies six priority classes The priority of each thread is based on the priority class
it belongs to and its relative priority within that class. When a variable-priority thread is released from a wait
operation, the dispatcher boosts the priority. When a user is running an interactive program, the
system needs to provide especially good performance for that process.
Windows XP distinguishes between the foreground process that is currently selected on the screen and the background processes that are not currently selected.
35
![Page 36: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/36.jpg)
If processer are in idle state which type of thread are to
be executed ? Why Fibers are reject to serve as UMS ? When dispatcher boost the priority which type of thread
get a large increase ? For Which Processes are scheduling quantum by some
factor are increased by (eg75%) ? what is the latest Process Scheduling feature used in
windows 8.1 ? And how it’ll beneficial for programmers ? How many level priority scheme are used to determine ?
36
![Page 37: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/37.jpg)
Lottery Scheduling
Processes are each assigned some number of lottery tickets.
Scheduler draws a random ticket to select the next process.
The distribution of tickets need not be uniform.
Granting a process more tickets provides it a relative higher chance of selection.
Lottery scheduling solves the problem of Starvation. Giving each process at least one lottery ticket guarantees that it has non-zero probability of being selected at each scheduling operation.
http://en.wikipedia.org/wiki/Lottery_scheduling
37
![Page 38: Windows process-scheduling](https://reader034.vdocuments.net/reader034/viewer/2022042607/55aa02a41a28ab1a188b4718/html5/thumbnails/38.jpg)
http://www.allaboutpresentations.com/
2009/05/what-is-ideal-font-size-for.html38