440 likes | 1.36k Views
CPU Scheduling. Chapter 7. CPU Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms FCFS (FIFO) SJN & SRTN Priority Scheduling Round Robin Scheduling Multilevel Queue Multilevel Feedback Queue. CPU Scheduling.
E N D
CPU Scheduling Chapter 7 A. Berrached:CMS:UHD
CPU Scheduling • Basic Concepts • Scheduling Criteria • Scheduling Algorithms • FCFS (FIFO) • SJN & SRTN • Priority Scheduling • Round Robin Scheduling • Multilevel Queue • Multilevel Feedback Queue A. Berrached:CMS:UHD
CPU 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. A. Berrached:CMS:UHD
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? A. Berrached:CMS:UHD
Scheduling Mechanism A. Berrached:CMS:UHD
Scheduling Mechanism CNTD Three parts: • enqueuer • dispatcher • context-switcher Data Structures: • Process Descriptor • Ready List A. Berrached:CMS:UHD
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 A. Berrached:CMS:UHD
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 context-switcher. A. Berrached:CMS:UHD
Scheduling 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. A. Berrached:CMS:UHD
Process Scheduling A. Berrached:CMS:UHD
Scheduling Policy Criteria A. Berrached:CMS:UHD
Optimization Criteria A. Berrached:CMS:UHD
First-Come-First-Served (FCFS) Scheduling A. Berrached:CMS:UHD
FCFS Scheduling (cont.) A. Berrached:CMS:UHD
Shortest-Job-Next (SJN) Scheduling SJN is optimal – gives minimum average waiting time for a given set of processes A. Berrached:CMS:UHD
Example of Non-Preemptive SJN 2.0 A. Berrached:CMS:UHD
Example of Preemptive SJN 2.0 A. Berrached:CMS:UHD
Priority Scheduling A. Berrached:CMS:UHD
Round Robin (RR) Scheduling A. Berrached:CMS:UHD
Example: RR with time quantum=20 A. Berrached:CMS:UHD
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. A. Berrached:CMS:UHD
Example Process Service Time Deadline 0 350 575 1 125 550 2 475 1050 3 250 none 4 75 200 A. Berrached:CMS:UHD
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 A. Berrached:CMS:UHD
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 A. Berrached:CMS:UHD
Multi-Level Feedback Queue A. Berrached:CMS:UHD
Example:Multi-Level Feedback Queue • Gives shorter jobs higher priority without needing to predict a job’s service time requirement. A. Berrached:CMS:UHD
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. A. Berrached:CMS:UHD
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 A. Berrached:CMS:UHD