Operating Systems CS 370 s1

Operating Systems CS 370 s1

<p>CPU Scheduling 1</p><p>Operating Systems CS 370 CPU Scheduling</p><p>Text: Chapter 5 Operating Systems Concepts with Java, 7th Ed., Silberschatz, Galvin, Gagne</p><p>Objectives: During this class, the student shall be able to: . Define I/O-bound, CPU-bound and race condition. . Define the functions of the short-term, long-term scheduler. . Describe the difference between preemptive and nonpreemptive schedulers. . Define and be able to calculate: CPU utilization, throughput, wait time, response time, and turnaround time. . Be able to calculate the order and timing of processes through the CPU using the following algorithms: FCFS, RR, Priority, Shortest Job First, Shortest Remaining Time, Multilevel Feedback Queue. . Define the difference between SMP and asymmetric multiprocessing as it relates to operating systems. . Define processor affinity and load balancing, and why each is important.</p><p>Time Allocation: Class time will be allocated as follows: Intro 1/2 hour Scheduling Criteria 1/2 hour Scheduling Algorithms 2 hours TOTAL: 3 hours CPU Scheduling 2</p><p>CPU Scheduling</p><p>Introduction</p><p>Program execution is characterized by alternating sequences of: . CPU burst . I/O burst</p><p>Two types of programs: . I/O-bound: short CPU bursts . CPU-bound: long CPU bursts. . Goal: Balancing I/O-bound and CPU-bound jobs.</p><p>CPU Scheduler . Long Term Scheduling: Decides when to add to the pool of processes to be executed.  Controls degree of multiprogramming.  When a job terminates, scheduler may decide to add one or more jobs.  Batch jobs: Spooled on disk until ready to process  Interactive: User logs in O.S. must accept new process. . Medium Term Scheduling: Decides when to add to the number of processes that are partially or fully in main memory.  Who wins memory?  Global scope memory allocation impacts decision. . Short Term Scheduler: Decides which available process will be executed next by the processor.</p><p>Short Term Scheduler: . When CPU becomes idle, OS selects a process in ready queue to be executed. . The Ready queue holds PCBs.</p><p>Short Term Scheduling functions include: . Enqueuer function: Adds PCB to appropriate Ready Queue (possibly after deciding priority). . Dispatcher function: Selects process for execution and passes control to it. Includes:  Switches context  Switches to user mode  Jumps to proper location in user program. CPU Scheduling 3</p><p>CPU reschedules processes: 1. When context switches from running state to blocked state (e.g. I/O request) or yields CPU. 2. When process terminates. 3. When context switches from running state to ready state (e.g. timer interrupt) 4. When context switches from blocked state to ready state (e.g. I/O completion)</p><p>Two types of scheduling: Nonpreemptive: Scheduling only takes place during 1 & 2 above. . The process retains the CPU until it releases the CPU by terminating or by blocking. . Used by Microsoft Windows 3.X Preemptive: Scheduling may take place during all four event types. . Can preempt on: clock or I/O interrupt, OS call, signal. . Advantage: Prevents any process from monopolizing the processor. . Disadvantage: More overhead due to context switching. . Used by Microsoft Windows 95 and later, UNIX.</p><p>Race Condition Problem: If two processes share data, one may be in midst of updating the data when it is preempted and second process is run  Problem: Single processor, preemptive OS  Problem: Multiprocessor, preemptive or non-preemptive OS  Solution: Semaphores CPU Scheduling 4</p><p>Scheduling Criteria</p><p>Statistics to measure successfulness of CPU scheduling algorithms: . Note: 1 Second = 1000ms (milliseconds) . Time_to_Process = Wait_Time + Service_Time</p><p>System Oriented Statistics . CPU Utilization: % of time CPU is busy processing programs.  %Utilization = Arrival_Rate * Service_Time  In 1 avg. second 7 processes arrive, with service time = 100 ms each: Utilization = 7*.1 = 70%  In real world, it should range from 40% to 90%. . Throughput: The number of processes that are completed per time unit.  Assume processing times: Process 1: 300 ms; Process 2: 400ms; Process 3: 300ms.  Throughput = 3 processes in 1 second. . Wait Time: Sum of periods spent waiting in the ready queue.  Wait Time = EndTime – ArrivalTime – ServiceTime</p><p>User Oriented Statistics . Turnaround Time: The interval from time of submission to time of completion.  Used also with batch programs.  Includes non-CPU times: waiting to get into memory, waiting in ready queue, doing I/O.  TurnaroundTime = EndTime – ArrivalTime . Response Time: The interval from submission of a request until first response is produced.  Used with interactive programs.  Does not include time it takes to output the response (to the output device).  2 Seconds or less desirable.</p><p>Other concerns: . Predictability: Response time does not vary widely. . Optimize average, but guarantee all users get good service. CPU Scheduling 5</p><p>Scheduling Algorithms</p><p>First Come First Serve = FCFS or FIFO</p><p>FCFS: Processes that request the CPU first are allocated the CPU first. . Implemented with a FIFO queue of PCBs. . Nonpreemptive</p><p>Process Arrive Time Burst Time P1 0 24 P2 0 3 P3 0 3</p><p>P1 P2 P3 |------|------|------| 0 24 27 30</p><p>Average wait time: (0+24+27)/3 = 17 ms Average turnaround time: (24+27+30)/3 = 81/3 = 27 ms</p><p>What happens if the processes arrive in order P2, P3, P1? How does that impact Wait, Turnaround time?</p><p>Conclusion: . CPU-bound processes may get and hold (hog) the CPU. . Varied and poor response for I/O-bound processes. . Poor use of I/O devices. CPU Scheduling 6</p><p>Shortest Job First</p><p>Shortest Job First: CPU is assigned to the process that has the smallest expected CPU burst. . Examines the length of the next CPU-burst, not the total process length. . Nonpreemptive . Used in long-term scheduling . Problem: Must know length of next CPU request.</p><p>Process Arrive Time Burst Time P1 0 6 P2 0 8 P3 0 7 P4 0 3</p><p>P4 P1 P3 P2 |------|------|------|------| 0 3 9 16 24</p><p>Average wait time: (0+3+9+16)/4 = 7ms. Average turnaround time: (3+9+16+24)/4 = 13ms.</p><p>Conclusion: . Problems:  Starvation: Longer processes may never get time.  No preemption: Short processes must wait for a CPU-bound process.</p><p>How to predict length: . Batch: Use process time limit requested when submitting job. . Interactive: Take running average of burst length and use as predictor.</p><p>How to calculate running average length? S(n+1) = pt(n) + (1-p)S(n) where S(n) = running average at time n t(n) = burst length at time n p = weight factor, where 0 < p < 1 When p = 1/2 recent history and past history are equally weighted. Larger p results in more weight on recent time intervals.</p><p>Given p = 0.5 S(n+1) t(n) S(n) 8 6 10 6 4 8 6 6 6 5 4 6 CPU Scheduling 7</p><p>Shortest Remaining Time First</p><p>Shortest-Remaining-Time-First: Preempts current process if another process would complete sooner. . Always selects the process which will complete the soonest (like Shortest-Process- First) . Preemptive.</p><p>Process Arrive Time Burst Time P1 0 8 P2 1 4 P3 2 9 P4 3 5</p><p>P1 P2 P4 P1 P3 |--|------|------|------|------| 0 1 5 10 17 26</p><p>Average wait time: ((10-1) + (1-1) + (17-2) + (5-3)) / 4 = 26/4 = 6.5ms Average turnaround time: (17 + (5-1) + (10-3) + (26-2)) / 4 = 13ms</p><p>Conclusion: . Advantage: A short job is given immediate preference to a running longer job. CPU Scheduling 8</p><p>Priority Scheduling</p><p>Priority Scheduling: High priority processes scheduled before low priority processes. . A priority is associated with each process. . Priority defined by: (E.g.) Foreground, Background, Real Time, Nice . Preemptive</p><p>Priorities can be defined: . Number of priorities may range. Assume 0-1024:  High priority may be priority 0 or 1024, depending on system. . External or Internal Priorities: Is priority determined external or internal to the O.S?  External: Importance of process, $ paid for computer use, department priority.  Internal: Time limits, ratio of average I/O burst to average CPU burst, Aging.</p><p>Assume lower number is higher priority: Process Arrive Time Burst Time Priority P1 0 10 3 P2 0 1 1 P3 1 2 3 P4 1 1 4 P5 1 5 2</p><p>P2 P5 P1 P3 P4 |----|------|------|------|----| 0 1 6 16 18 19</p><p>Wait Times:  Priority 1: 0ms  Priority 2: 0ms  Priority 3: (6 + (16-1)) / 2 = 10.5ms  Priority 4: 18-1 = 17ms</p><p>How does the above change if P6 arrives at time 8 with a priority of 1 and a burst time of 3?</p><p>Conclusion: . Problems: Starvation or indefinite blocking. . Solution: Internal Priority  Aging: Raise priority for processes that have waited for a long time.  Example: Raise priority by one when process has waited 1 minute.  Eventually even lowest priority process becomes the highest priority process. CPU Scheduling 9</p><p>Round Robin</p><p>Round Robin: Every process gets a turn = one time quantum at CPU. . Timer interrupt causes scheduler to context switch. . Time quantum = time slice: 10-100ms long. . Preemptive . Ready queue is circular queue.</p><p>Assume time quantum is 4 ms long. Process Arrive Time Burst Time P1 0 24 P2 0 3 P3 0 6</p><p>P1 P2 P3 P1 P3 P1 P1 P1 P1 |------|------|------|------|------|------|------|------|------| 0 4 7 11 15 17 21 25 29 33</p><p>Average Wait Time: (4+9+11)/3 = 8 ms</p><p>Conclusion: Performance depends heavily on size of time quantum. . Optimum: 80% of CPU bursts should be < time quantum. . Optimum: Time quantum should be large with respect to context switch time.  If context switch is approx. 10% of time quantum, then about 10% of CPU time is spent in context switch. . Advantage: Performs reasonably well with short-term jobs. . Disadvantage: Additional overhead required due to additional context switching. . Disadvantage: I/O bound processes rarely use entire timeslice before blocking due to I/O.  Favors CPU-bound processes somewhat. CPU Scheduling 10</p><p>Multi-level Feedback Queue</p><p>Multilevel Feedback Queue: Processes hogging CPU sink to lower priority levels. 1. All processes start at Request Queue 0 (highest priority). 2. When timeslice completed put in Request Queue 1. 3. When timeslice completed put in Request Queue 2. 4. When timeslice completed put in RQ ...</p><p>OS Implementation: . Operates strictly on priority:  Schedules processes in RQ 0 until it is empty, then processes RQ1... . All queues processed in FCFS order, except lowest priority queue that operates in RR. . Lower priority queues may get increasing time quantums. . Problem: Low priority queues may starve  Solution: Allow processes that have waited a certain length of time to rise back up the priority queues.</p><p>Assume RQ0 time quantum = 4, and RQ doubles the time quantum. Process Arrive Time Burst Time P1 0 24 P2 0 3 P3 6 3 P4 6 8</p><p>P1 P2 P3 P4 P1 P4 P1 |------|------|------|------|------|------|------| 0 4 7 10 14 22 26 38</p><p>Conclusion: . Advantage: General CPU scheduling solution . Disadvantage: Complex CPU Scheduling 11</p><p>Multiprocessing</p><p>Symmetric MultiProcessing (SMP): Each processor runs an OS scheduler. Asymmetric MultiProcessing: One processor runs the scheduler and assigns jobs to the other processors</p><p>Load Balancing: Attempts to equalize the load between all processors.  This can be accomplished by migrating processes between processors.  Problem: A process can already be in cache and repopulating the new cache may take time.  Solution: Processor Affinity: Assign a process to the processor where its cache is already loaded</p><p>Real Systems Linux Three scheduling classes:  FIFO: FIFO real-time threads (preemptive by priority)  RR: Round-robin real-time threads (preemptive by timeslice, scheduled by priority)  Other: Non-real time threads (run if no real-time threads) o Non-real-time: priorities 100-139, default 120 o Active queue list and expired queue list Scheduling Algorithm:  Round-Robin within Priority: Time slices range between 10-200 ms, higher priority -> larger time slices  Priority altered to favor I/O-bound tasks over CPU-bound tasks; high-sleep rate I/O bound highest priority.</p><p>Windows  Fully preemptive: Higher-numbered priority process preempts lower priority process  32 Ready Queues  16-31: Real-time queues: Priority is fixed  1-15: Variable level queues: For normal applications  Priority is lowered if timeslice completes or is a background window.  Priority is raised if I/O completes (keyboard raised lots, disk some)  0: Memory management  Idle Thread: Spare time or idle time task runs when nothing else runs</p><p>Java Thread Scheduling  JVM uses Priority-based scheduling, but may or may not be Preemptive  May or may not use timeslicing (not checked recently)  If timeslicing not used, a thread may yield control using Thread.yield()  Priorities range from 1 to 10, where 1 is low and 10 is high. CPU Scheduling 12</p><p> Priority can be changed using setPriority() method.  The JVM never alters the priority of a thread. CPU Scheduling 13</p><p>Algorithm Evaluation . Deterministic Modeling: Use a fixed scenario of processes/threads arriving, as in scheduling algorithm examples above. . Queuing Models: Uses mathematical (probabilistic) models to analyze given arrival rates, service times, (and potentially number of processors) to derive average wait time and turnaround time. . Simulation: Randomly generates job arrivals with random service times, and simulates the processing of these random jobs over a sufficiently long duration of time to generate average wait time and turnaround times. </p><p>Queuing Statistics . Inter-arrival Time: The average timer between incoming requests . Arrival Rate: 1/InterArrivalTime = The number of requests that arrive on average in a specified time unit . Service Time: The average time it takes to service a request . Service Rate: 1/ServiceTime = The number of requests that can be handled in a specified time unit. . Offered Rate: ArrivalRate/ServiceRate = ServiceTime/InterArrivalTime = The average number of requests being handled in a system, if no requests are discarded. CPU Scheduling 14</p><p>Exercise Assume the following conditions (where low numbers are higher priority). For each method, draw a timeline and complete the per-job and total Wait Time and Turnaround Time.</p><p>Shortest Job First (No Preemption) Job Arrival Service Turnaround Wait Time # Time Time Time 1 0 2</p><p>2 0 4</p><p>3 3 1</p><p>4 5 8</p><p>5 6 3</p><p>6 11 3</p><p>Total /Avg</p><p>Shortest Remaining Time First (Preemption) Job Arrival Service Turnaround Wait Time # Time Time Time 1 0 2</p><p>2 0 4</p><p>3 3 1</p><p>4 5 8</p><p>5 6 3</p><p>6 11 3</p><p>Total /Avg CPU Scheduling 15</p><p>Priority (Preemptive) Lower numbers = higher priority. Job Arrival Priority Service Turnaround Wait Time # Time Time Time 1 0 10 2</p><p>2 0 10 4</p><p>3 3 3 1</p><p>4 5 10 8</p><p>5 6 3 3</p><p>6 11 10 3</p><p>Total /Avg</p><p>Round Robin (Timeslice = 3 ms) Job Arrival Service Turnaroun Wait Time # Time Time d Time 1 0 2</p><p>2 0 4</p><p>3 3 1</p><p>4 5 8</p><p>5 6 3</p><p>6 11 3</p><p>Total /Avg</p>

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us