Title: CPU%20Scheduling
1CPU Scheduling
2CPU Scheduling
- Basic Concepts
- Scheduling Criteria
- Scheduling Algorithms
- FCFS (FIFO)
- SJN SRTN
- Priority Scheduling
- Round Robin Scheduling
- Multilevel Queue
- Multilevel Feedback Queue
3CPU Scheduling
- A multiprogramming OS allows more than one
process to be loaded in main memory at a time. - Processes share the CPU using time-multiplexing
- A process execution consists of a cycle of CPU
computation--I/O operations. - I/O operations require orders of magnitude more
time to complete. - Basic Idea When the running process requests an
I/O operation, allocate CPU to another process.
4CPU Scheduler
- CPU Scheduler that part of the Process Manager
than is responsible for - handling removal of running process from CPU
- Selection of another process
- Two major issues
- Scheduling mechanism how is it all done?
- Scheduling policy
- when is it time for a process to be removed from
CPU? - Which ready process should be allocated the CPU
next?
5Scheduling Mechanism
6Scheduling Mechanism CNTD
- Three parts
- enqueuer
- dispatcher
- context-switcher
- Data Structures
- Process Descriptor
- Ready List
7Scheduling Mechanism CNTD
- When a process is moved to the Ready-List
- Process Descriptor (PD) is updated
- the enqueuer places a pointer to PD in the
Ready-List - When the Scheduler switches CPU from one process
to another process - the Context-Switcher saves the state of the
current process in its PD. - How context-switching occurs depends on how CPU
multiplexing technique used - voluntary multiplexing
- involuntary multiplexing
8Scheduling Mechanism CNTD
- Voluntary multiplexing Running process gives up
CPU voluntarily - context-switcher is invoked by running process.
- Involuntary multiplexing an interrupt causes
running process to be removed from CPU. - Interrupt generated by an I/O operation requested
by another process. - Most commonly a timer generated interrupt.
- In either case, interrupt handler invokes
context-switcher.
9Scheduling Mechanism--Dispatcher
- After state of "old" process is saved by
context-switcher, the CPU is allocated to the
Dispatcher - Dispatcher state is loaded on CPU
- Dispatcher selects one of the ready processes
enqueued in the Ready-List. - Dispatcher performs another context-switch from
itself to selected process (saves its state and
loads state of selected process). - The Process Descriptor of selected process is
changed from Ready to Running.
10Process Scheduling
11Scheduling Policy Criteria
12Optimization Criteria
13First-Come-First-Served (FCFS) Scheduling
14FCFS Scheduling (cont.)
15Shortest-Job-Next (SJN) Scheduling
16Example of Non-Preemptive SJN
17Example of Preemptive SJN
18Priority Scheduling
19Round Robin (RR) Scheduling
20Example RR with time quantum20
21Deadline Scheduling
- Real Time Systems
- Processes must complete their task by specific
deadlines - Main performance criteria
- Scheduler must have complete knowledge of service
time of each process - All function must be predictable no virtual
memory - A process is admitted to ready list only if OS
can guarantee deadline can be met.
22Example
- Process Service Time Deadline
- 0 350 575
- 1 125 550
- 2 475 1050
- 3 250 none
- 4 75 200
23Multi-Level Queue
- Extension of priority scheduling, which also
combines other strategies - Ready list is partitioned into multiple sub-lists
- Each process is assigned to a queue based on some
criteria (type, priority, etc.) - E.g. one Q for foreground processes and one for
background processes - Scheduler in-queue strategy
- cross-queue strategy
- E.g. In-queue strategy RR for foreground Q and
FCFS for background A - Cross-queue strategy Serve higher-level
processes first
24Multi-Level Queue
- Example
- Cross-Queue Strategy Each queue get a percentage
of CPU time (in a round robin fashion) which it
can schedule among its processes. - E.g. Level 1 80 of CPU time
- Level 2 20 of CPU time
25Multi-Level Feedback Queue
26ExampleMulti-Level Feedback Queue
- Gives shorter jobs higher priority without
needing to predict a jobs service time
requirement.
27BSD UNIX Scheduling
- Multiple-level feedback queue approach
- 32 queues
- System processes are placed in Q0 Q7
- User processes are placed in Q8 Q31
- Dispatcher always selects a process from highest
priority queue to run - RR is used in each queue (time slice varies but
always lt 100µs) - A processs changes over time based on nice()
system calls and processs utilization of CPU.
28Windows NT/2K
- Multiple-level feedback queues for thread
scheduling - Priority to those threads that need very rapid
response - 32 levels
- 16 highest priority Qs are called real-time level
queues - Next 15 Qs are variable-level queue
- Lowest priority Q is called system-level Q.
- System-level Q contains a single thread called
zero-page thread. It is run only when there are
no other runnable threads. - Scheduling goes from highest level down
- Scheduling is preemptive if a high-priority
thread becomes runnable while a lower priority
thread is running, the latter is preempted and
the higher level thread will begin to use the
processor