Download presentation
Presentation is loading. Please wait.
Published byMiles Gedman Modified over 9 years ago
1
CS4315A. Berrached:CMS:UHD1 CPU Scheduling Chapter 7
2
CS4315A. Berrached:CMS:UHD2 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms – FCFS (FIFO) – SJN & SRTN – Priority Scheduling – Round Robin Scheduling –Multilevel Queue –Multilevel Feedback Queue
3
CS4315A. Berrached:CMS:UHD3 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.
4
CS4315A. Berrached:CMS:UHD4 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?
5
CS4315A. Berrached:CMS:UHD5 Scheduling Mechanism
6
CS4315A. Berrached:CMS:UHD6 Scheduling Mechanism CNTD Three parts: –enqueuer –dispatcher – context-switcher Data Structures: –Process Descriptor –Ready List
7
CS4315A. Berrached:CMS:UHD7 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
8
CS4315A. Berrached:CMS:UHD8 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.
9
CS4315A. Berrached:CMS:UHD9 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.
10
CS4315A. Berrached:CMS:UHD10 Process Scheduling
11
CS4315A. Berrached:CMS:UHD11 Scheduling Policy Criteria
12
CS4315A. Berrached:CMS:UHD12 Optimization Criteria
13
CS4315A. Berrached:CMS:UHD13 First-Come-First-Served (FCFS) Scheduling
14
CS4315A. Berrached:CMS:UHD14 FCFS Scheduling (cont.)
15
CS4315A. Berrached:CMS:UHD15 Shortest-Job-Next (SJN) Scheduling SJN is optimal – gives minimum average waiting time for a given set of processes
16
CS4315A. Berrached:CMS:UHD16 Example of Non-Preemptive SJN 2.0
17
CS4315A. Berrached:CMS:UHD17 Example of Preemptive SJN 2.0
18
CS4315A. Berrached:CMS:UHD18 Priority Scheduling
19
CS4315A. Berrached:CMS:UHD19 Round Robin (RR) Scheduling
20
CS4315A. Berrached:CMS:UHD20 Example: RR with time quantum=20
21
CS4315A. Berrached:CMS:UHD21 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.
22
CS4315A. Berrached:CMS:UHD22 Example ProcessService TimeDeadline 0350575 1125550 24751050 3250none 475200
23
CS4315A. Berrached:CMS:UHD23 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
24
CS4315A. Berrached:CMS:UHD24 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
25
CS4315A. Berrached:CMS:UHD25 Multi-Level Feedback Queue
26
CS4315A. Berrached:CMS:UHD26 Example:Multi-Level Feedback Queue Gives shorter jobs higher priority without needing to predict a job’s service time requirement.
27
CS4315A. Berrached:CMS:UHD27 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.
28
CS4315A. Berrached:CMS:UHD28 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.