2. Scheduling
It is a key concept in computer multitasking,
multiprocessing operating system and real-time
operating system designs.
Refers to the way processes are assigned to run
on the available CPU
This assignment is carried out by softwares
known as a scheduler and a dispatcher.
3.
4. The process scheduling algorithms
used by an operating system reflect its
primary performance objectives.
Windows XP- real time processing and
User-perceived performance
5. • 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.
• “Foreground “ processes given a higher
priority.
6. Windows XP distinguishes between the
foreground processes that is currently selected
on the screen and the background processes
that are not currently selected.
The strategy tends to give good response times
to interactive threads that are using the mouse
and windows.
The I/O devices are kept busy.
7. WINDOWS XP
SCHEDULING
Windows xp uses a quantum-based,
preemptive priority scheduling algorithm.
Threads are scheduled rather than processes.
Since the preemptive priority algorithm is
implemented with multiple queues, it can also
be considered a multiple feedback queue
algorithm.
However, each class of thread is normally
restricted to a small band of 5 priority levels.
8. Preemption can occur for any of 4 reasons:
Higher priority thread becomes ready
Thread terminates
Time quantum exhausted
Thread performs a blocking system call, such
as for I/O , in which case it leaves the READY
state and enters the WAITING state.
The scheduler is called a dispatcher.
9. Priorities are divided into two classes:
Variable class: priorities 1 to 15
Real-time class: priorities 16 to 31
There is a queue for each priority.
The dispatcher traverses the set of queues from
highest to lowest until it finds a thread that is
ready to run.
If there are no processes ready to run, the
dispatcher executes the idle thread.
PRIORITIES
10. Processe are given a priority class upon creation:
REAL_TIME_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
ABOVE_NORMAL_PRIORITY_CLASS
NORMAL_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
Priorities in all classes except the
REAL_TIME_PRIORITY class can change.