CPU Scheduling Chapter 7 CS4315 A. Berrached:CMS:UHD 1 CPU Scheduling • Basic Concepts • Scheduling Criteria • Scheduling Algorithms – – – – – – CS4315 FCFS (FIFO) SJN & SRTN Priority Scheduling Round Robin Scheduling Multilevel Queue Multilevel Feedback Queue 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. CS4315 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? CS4315 A. Berrached:CMS:UHD 4 Scheduling Mechanism CS4315 A. Berrached:CMS:UHD 5 Scheduling Mechanism CNTD Three parts: – enqueuer – dispatcher – context-switcher Data Structures: – Process Descriptor – Ready List CS4315 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 CS4315 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. CS4315 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. CS4315 A. Berrached:CMS:UHD 9 Process Scheduling CS4315 A. Berrached:CMS:UHD 10 Scheduling Policy Criteria CS4315 A. Berrached:CMS:UHD 11 Optimization Criteria CS4315 A. Berrached:CMS:UHD 12 First-Come-First-Served (FCFS) Scheduling CS4315 A. Berrached:CMS:UHD 13 FCFS Scheduling (cont.) CS4315 A. Berrached:CMS:UHD 14 Shortest-Job-Next (SJN) Scheduling SJN is optimal – gives minimum average waiting time for a given set of processes CS4315 A. Berrached:CMS:UHD 15 Example of Non-Preemptive SJN 2.0 CS4315 A. Berrached:CMS:UHD 16 Example of Preemptive SJN 2.0 CS4315 A. Berrached:CMS:UHD 17 Priority Scheduling CS4315 A. Berrached:CMS:UHD 18 Round Robin (RR) Scheduling CS4315 A. Berrached:CMS:UHD 19 Example: RR with time quantum=20 CS4315 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. CS4315 A. Berrached:CMS:UHD 21 Example Process 0 1 2 3 4 CS4315 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 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 CS4315 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 CS4315 A. Berrached:CMS:UHD 24 Multi-Level Feedback Queue CS4315 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. CS4315 A. Berrached:CMS:UHD 26 BSD 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 < 100μs) • A process’s changes over time: based on nice() system calls and process’s utilization of CPU. CS4315 A. Berrached:CMS:UHD 27 Windows 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 CS4315 A. Berrached:CMS:UHD 28