+ All Categories
Home > Technology > Windows process scheduling presentation

Windows process scheduling presentation

Date post: 18-Jul-2015
Category:
Upload: talha-shaikh
View: 258 times
Download: 0 times
Share this document with a friend
Popular Tags:
24
Transcript
Page 1: Windows process scheduling presentation
Page 2: Windows process scheduling presentation
Page 3: Windows process scheduling presentation

Muhammed Talha MCS-13-08

Arslan Azam MCS-13-03

Aitazaz Ahsan MCS-13-38

Muhammed Sohail MCS-13-17

Muhammed Yousaf MCS-13-23

Abida Bibi MCS-13-22

Tayyaba Ghani MCS-13-39

Page 4: Windows process scheduling presentation

Maximum CPU utilization is obtained with multiprogramming

◦ Several processes are kept in memory at one time

◦ Every time a running process has to wait, another process can take over use of the CPU

Scheduling of the CPU is fundamental to operating system design

The process scheduler is the component of the operating system that is responsible for deciding whether the currently running process should continue running and, if not, which process should run next.

Page 5: Windows process scheduling presentation

CPU scheduling is affected by the following set of circumstances:

1. (N) A process switches from running to waiting state

2. (P) A process switches from running to ready state

3. (P) A process switches from waiting to ready state

4. (N) A processes switches from running to terminated state

Circumstances 1 and 4 are non-preemptive; they offer no schedule choice

Circumstances 2 and 3 are pre-emptive; they can be scheduled

Page 6: Windows process scheduling presentation

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

◦ jumping to the proper location in the user program to restart that

program

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

Page 7: Windows process scheduling presentation

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

Criteria for comparing CPU scheduling algorithms may include the following

◦ CPU utilization

◦ Throughput

◦ Turnaround time

◦ Response time

◦ Waiting time

Page 8: Windows process scheduling presentation

First Come, First Served (FCFS)

Shortest Job First (SJF)

Priority

Round Robin (RR)

Page 9: Windows process scheduling presentation

Windows XP schedules threads using a priority-based, pre-emptive scheduler with a flexible system of priority levels that includes round-robinscheduling within each level

The scheduler ensures that the highest priority thread will always run

Dispatcher The portion of the Windows 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 I/O

If a higher-priority real-time thread becomes ready while a lower-priority thread is running, lower-priority thread will be preempted◦ This preemption gives a real-time thread preferential access to the CPU

when the thread needs such access

Page 10: Windows process scheduling presentation
Page 11: Windows process scheduling presentation

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

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

Page 12: Windows process scheduling presentation
Page 13: Windows process scheduling presentation

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

Page 14: Windows process scheduling presentation

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

Page 15: Windows process scheduling presentation

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

Page 16: Windows process scheduling presentation

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

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

Page 17: Windows process scheduling presentation

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

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 preemption occurs

https://msdn.microsoft.com/en-

us/library/windows/desktop/ms685100(v=vs.85).aspx

Page 18: Windows process scheduling presentation

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.

Page 19: Windows process scheduling presentation

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

Page 20: Windows process scheduling presentation

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

Page 21: Windows process scheduling presentation

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

Page 22: Windows process scheduling presentation

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.

The initial priority of a thread is typically the base priority of the process that

the thread belongs to

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

Page 23: Windows process scheduling presentation

If processer are in idle state which type of process 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 ?

Page 24: Windows process scheduling presentation

Recommended