38
1

Windows process-scheduling

Embed Size (px)

Citation preview

Page 1: Windows process-scheduling

1

Page 2: Windows process-scheduling

2

Page 3: Windows process-scheduling

◦ Muhammed Talha MCS-13-08

◦ Aitazaz Ahsan MCS-13-38

3

Page 4: Windows process-scheduling

Scheduling

Scheduling Criteria

Windows Scheduling

Priority Schemes

Thread Priority

Scheduling Features in Windows

4

Page 5: Windows process-scheduling

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

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

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

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

Ref: William Stalling

9

Page 10: Windows process-scheduling

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

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

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

First Come, First Served (FCFS)

Shortest Job First (SJF)

Priority

Round Robin (RR)

Ref: William Stalling

13

Page 14: Windows process-scheduling

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

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

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

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

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

http://en.wikipedia.org/wiki/Multilevel_feedback_queue

19

Page 20: Windows process-scheduling

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

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

Ref: William Stalling22

Page 23: Windows process-scheduling

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

24

Page 25: Windows process-scheduling

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

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

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

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

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

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

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

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

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

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

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

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

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

http://www.allaboutpresentations.com/

2009/05/what-is-ideal-font-size-for.html38