Download presentation
Presentation is loading. Please wait.
1
OS Spring ’ 04 Scheduling Operating Systems Spring 2004
2
OS Spring ’ 04 Multiprogramming Multiprogramming: having multiple jobs (processes) in the system Interleaved (time sliced) on a single CPU Concurrently executed on multiple CPUs Both of the above Why multiprogramming? Responsiveness, utilization, concurrency Why not? Overhead, complexity
3
OS Spring ’ 04 Responsiveness Job 1 arrives Job 1 terminates Job1 Job2 Job3 Job 2 terminates Job 3 terminates Job 2 arrives Job 3 arrives Job1 Job3 Job2 Job 1 terminates Job 3 terminates Job 2 terminates
4
OS Spring ’ 04 Utilization idle 1 st I/O operation I/O ends 2 nd I/O operation I/O ends 3 rd I/O operation CPU Disk CPU Disk idle Job1 Job2
5
OS Spring ’ 04 Workload matters! ? Does it really matter? Yes, of course: If all jobs are CPU bound (I/O bound), multiprogramming does not help to improve utilization A suitable job mix is created by a long- term scheduling Jobs are classified on-line to be CPU (I/O) bound according to the job ’ s history
6
OS Spring ’ 04 Concurrency Concurrent programming Several process interact to work on the same problem ls – l | more Simultaneous execution of related applications Word + Excel + PowerPoint Background execution Polling/receiving Email while working on smth else
7
OS Spring ’ 04 The cost of multiprogramming Switching overhead Saving/restoring context wastes CPU cycles Degrades performance Resource contention Cache misses Complexity Synchronization, concurrency control, deadlock avoidance/prevention
8
OS Spring ’ 04 Short-Term Scheduling running ready blocked created schedule preempt event done wait for event terminated
9
OS Spring ’ 04 Short-Term scheduling Process execution pattern consists of alternating CPU cycle and I/O wait CPU burst – I/O burst – CPU burst – I/O burst... Processes ready for execution are hold in a ready (run) queue STS schedules process from the ready queue once CPU becomes idle
10
OS Spring ’ 04 Preemptive/non-preemptive Four events in which the scheduler may decide to switch the CPU to a new process Running process terminates Running process blocks (e.g., for I/O) Non-ready process becomes ready (or starts) Clock interrupt The latter two cause preemption Advantages: Better time sharing, responsiveness Guard against endless loops Disadvantages: Higher programming complexity Example: Unix disables interrupts within kernel mode Disrupts real-time
11
OS Spring ’ 04 Metrics: Response time Job arrives/ becomes ready to run Starts running Job terminates/ blocks waiting for I/O T wait T run T resp T resp = T wait + T run Response time (turnaround time) is the average over the jobs ’ T resp
12
OS Spring ’ 04 Metrics Wait time: average of T wait This parameter is under the system control Throughput Number of complete process terminations within a time unit Utilization Fraction of time CPU is utilized
13
OS Spring ’ 04 Off-line vs. On-line scheduling Off-line algorithms Get all the information about all the jobs to schedule as their input Outputs the scheduling sequence Preemption is never needed On-line algorithms Jobs arrive at unpredictable times Very little info is available in advance Preemption compensates for lack of knowledge
14
OS Spring ’ 04 First-Come-First-Serve (FCFS) Schedules the jobs in the order in which they arrive Off-line FCFS schedules in the order the jobs appear in the input Runs each job to completion Both on-line and off-line Simple, a base case for analysis Poor response time
15
OS Spring ’ 04 Shortest Job First (SJF) Best response time Short Long job Short Inherently off-line All the jobs and their run-times must be available in advance
16
OS Spring ’ 04 Preemption Preemption is the action of stopping a running job and scheduling another in its place Context switch: Switching from one job to another
17
OS Spring ’ 04 Using preemption On-line short-term scheduling algorithms Adapting to changing conditions e.g., new jobs arrive Compensating for lack of knowledge e.g., job run-time Periodic preemption keeps system in control Improves fairness Gives I/O bound processes chance to run
18
OS Spring ’ 04 Shortest Remaining Time first (SRT) Job run-times are known Job arrival times are not known When a new job arrives: if its run-time is shorter than the remaining time of the currently executing job: preempt the currently executing job and schedule the newly arrived job else, continue the current job and insert the new job into a sorted queue When a job terminates, select the job at the queue head for execution
19
OS Spring ’ 04 Round Robin (RR) Both job arrival times and job run-times are not known Run each job cyclically for a short time quantum Approximates CPU sharing Job 1 arrives Job13 Job 2 arrives Job 3 arrives 2 1 2 31 2 31 2 1 Job2 Job 3 terminates Job 1 terminates Job 2 terminates
20
OS Spring ’ 04 Responsiveness Job 1 arrives Job 1 terminates Job1 Job2 Job3 Job 2 terminates Job 3 terminates Job 2 arrives Job 3 arrives Job1 Job3 Job2 Job 1 terminates Job 3 terminates Job 2 terminates
21
OS Spring ’ 04 Priority Scheduling Example: prioritize processes according to their past CPU usage Equivalent to SJF with predicted next CPU burst time T n is the duration of the n-th CPU burst E n+1 is the estimate of the next CPU burst
22
OS Spring ’ 04 Multilevel feedback queues quantum=10 quantum=20 quantum=40 FCFS new jobs terminated
23
OS Spring ’ 04 Multilevel feedback queues Priorities are implicit in this scheme Very flexible Starvation is possible Short jobs keep arriving => long jobs get starved Solutions: Let it be Aging
24
OS Spring ’ 04 Real-life examples Solaris 2 Window 2000 Linux
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.