CPU Scheduling Chapter 7 CS 4315 A Berrached
CPU Scheduling Chapter 7 CS 4315 A. Berrached: CMS: UHD 1
CPU Scheduling • Basic Concepts • Scheduling Criteria • Scheduling Algorithms – FCFS (FIFO) – SJN & SRTN – Priority Scheduling – Round Robin Scheduling – Multilevel Queue – Multilevel Feedback Queue CS 4315 A. Berrached: CMS: UHD 2
CPU Scheduling • A multiprogramming OS allows more than one process to be loaded in main memory at a time. • Processes share the CPU using timemultiplexing • 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. CS 4315 A. Berrached: CMS: UHD 3
CPU 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? CS 4315 A. Berrached: CMS: UHD 4
Scheduling Mechanism CS 4315 A. Berrached: CMS: UHD 5
Scheduling Mechanism CNTD Three parts: – enqueuer – dispatcher – context-switcher Data Structures: – Process Descriptor – Ready List CS 4315 A. Berrached: CMS: UHD 6
Scheduling 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 CS 4315 A. Berrached: CMS: UHD 7
Scheduling 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 contextswitcher. CS 4315 A. Berrached: CMS: UHD 8
Scheduling Mechanism--Dispatcher • After state of "old" process is saved by contextswitcher, 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. CS 4315 A. Berrached: CMS: UHD 9
Process Scheduling CS 4315 A. Berrached: CMS: UHD 10
Scheduling Policy Criteria CS 4315 A. Berrached: CMS: UHD 11
Optimization Criteria CS 4315 A. Berrached: CMS: UHD 12
First-Come-First-Served (FCFS) Scheduling CS 4315 A. Berrached: CMS: UHD 13
FCFS Scheduling (cont. ) CS 4315 A. Berrached: CMS: UHD 14
Shortest-Job-Next (SJN) Scheduling SJN is optimal – gives minimum average waiting time for a given set of processes CS 4315 A. Berrached: CMS: UHD 15
Example of Non-Preemptive SJN 2. 0 CS 4315 A. Berrached: CMS: UHD 16
Example of Preemptive SJN 2. 0 CS 4315 A. Berrached: CMS: UHD 17
Priority Scheduling CS 4315 A. Berrached: CMS: UHD 18
Round Robin (RR) Scheduling CS 4315 A. Berrached: CMS: UHD 19
Example: RR with time quantum=20 CS 4315 A. Berrached: CMS: UHD 20
Deadline 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. CS 4315 A. Berrached: CMS: UHD 21
Example Process 0 1 2 3 4 CS 4315 Service Time 350 125 475 250 75 Deadline 575 550 1050 none 200 A. Berrached: CMS: UHD 22
Multi-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 foreground processes and one for background processes • Scheduler: * in-queue strategy * cross-queue strategy – E. g. In-queue strategy: RR foreground Q and FCFS for background A – Cross-queue strategy: Serve higher-level processes first CS 4315 A. Berrached: CMS: UHD 23
Multi-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 CS 4315 A. Berrached: CMS: UHD 24
Multi-Level Feedback Queue CS 4315 A. Berrached: CMS: UHD 25
Example: Multi-Level Feedback Queue • Gives shorter jobs higher priority without needing to predict a job’s service time requirement. CS 4315 A. Berrached: CMS: UHD 26
BSD UNIX Scheduling • • • Multiple-level feedback queue approach 32 queues System processes are placed in Q 0 – Q 7 User processes are placed in Q 8 – Q 31 Dispatcher always selects a process from highest priority queue to run • RR is used in each queue (time slice varies but always < 100μs) • A process’s changes over time: based on nice() system calls and process’s utilization of CPU. CS 4315 A. Berrached: CMS: UHD 27
Windows NT/2 K • • 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 CS 4315 A. Berrached: CMS: UHD 28
- Slides: 28