Presentation is loading. Please wait.

Presentation is loading. Please wait.

OS Spring ’ 04 Scheduling Operating Systems Spring 2004.

Similar presentations


Presentation on theme: "OS Spring ’ 04 Scheduling Operating Systems Spring 2004."— Presentation transcript:

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


Download ppt "OS Spring ’ 04 Scheduling Operating Systems Spring 2004."

Similar presentations


Ads by Google