Process Scheduling > Application – in Reality, [Multiprogramming] > OS : Many Separate Pieces (Processes) > Many Applications

Process Scheduling > Application – in Reality, [Multiprogramming] > OS : Many Separate Pieces (Processes) > Many Applications

Process Scheduler Chapter 7 • Why do we even need to a process scheduler ? – In simplest form, CPU must be shared by > OS Process Scheduling > Application – In reality, [multiprogramming] > OS : many separate pieces (processes) > Many Applications • Scheduling [Policy] addresses… – When to remove a process from CPU ? – Which ready process to allocate the CPU to ? CS 3204 - Arthur 2 Context Switch Scheduler • Processes are switched out using Context Switching • Context Switch: – Save pertinent info for current process > PC, Register, Status, etc. – Update PC, Register, Status, etc. > with info for process selected to run • Switching User Process – 2 Context switches (CTX) Process 1 running CTX Dispatcher : selects next process CTX Process 2 running CS 3204 - Arthur 3 CS 3204 - Arthur 4 Selection Strategies Selection Strategies… • Motivation • Considerations… – To “optimize” some aspect of system behavior – Turnaround time > Average time / job • Considerations – Throughput – Priority of process > Jobs / time unit > External : assigned – Response time > Internal : aging – System availability – Fairness : no starvation – Deadlines – Overall Resource Utilization … CS 3204 - Arthur 5 CS 3204 - Arthur 6 1 Definition & Terms Definition & Terms… • Time Quantum • Turnaround Time T (Pi) – Amount of time between timer interrupts – Amount of time between moment process first enters Ready – Also called Time Slice state and the moment the process exits Running state for the last time (completed) • Service Time τ (Pi) • Service time, Wait time & Turnaround time are – Amount of time process needs to be in Running state measurable metrics used to compare scheduling (acquired CPU) before it is completed algorithms • Wait Time W (Pi) – Time a process spends waiting in the Ready state before its first transition to the Running state CS 3204 - Arthur 7 CS 3204 - Arthur 8 Classes of Scheduling Algorithms Non-preemptive Strategies - FCFS • 2 major classes • FCFS - First-Come, First-Serve – Processes are assigned the CPU in the order they arrive – Non-preemptive – FIFO structure (queue) > Run to completion – Ignores service time and any other criteria that may – Preemptive influence performance w.r.t. > Process with highest priority always gets CPU > Turnaround time > Waiting time Recall : Several ways to establish priority CS 3204 - Arthur 9 CS 3204 - Arthur 10 FCFS… Non-preemptive Strategies - SJN • SJN – Shortest Job Next – Assumes service time known a priori – Realistically, can make estimated based on > Past experience history > Size of input > User estimate – Algorithm chooses a next process that one which has shortest service time => Minimizes average waiting time => Maximizes throughput => Can penalize processes with high service time How might starvation occur ??? CS 3204 - Arthur 11 CS 3204 - Arthur 12 2 SJN….. Priority Scheduling • Priority Scheduling – Schedule based on externally assigned priorities – Highest priority job always gets CPU next How might starvation occur ??? CS 3204 - Arthur 13 CS 3204 - Arthur 14 Priority Scheduling… Deadline Scheduling • Deadline Scheduling – Processes are scheduled to meet stated deadlines Homework: Compute avg. turnaround time and avg. wait time for each of the possibilities CS 3204 - Arthur 15 CS 3204 - Arthur 16 Preemptive Strategies Preemptive Strategies - SJN • Highest priority among all processes in Ready state is • SJN – Shortest Job Next allocated CPU – [Initial] selection based on shortest service time • If a lower priority process is executing when a higher – When new process arrives in Ready queue, need only priority process arrives in Ready queue compare τ(Pactive) with τ(Pnew) => Lower priority process will be interrupted and replaced with higher priority process > If τ(Pactive) <= τ(Pnew), nothing happens • Depending on scheduling algorithm > If τ(Pactive) > τ(Pactive), interrupt, CTX – Provides quick response to higher priority process – Provides a fair share of CPU for all processes (esp. when Round Robin is used) => Service time used to determine priorities CS 3204 - Arthur 17 CS 3204 - Arthur 18 3 Preemptive Strategies- Priority Scheduling Preemptive Strategies - Round Robin • Priority Scheduling • RR – Round Robin – Externally assigned priorities used to determine – Most widely used > Who is (initially) selected to run > If currently running process is interrupted in favor of newly – Each process will receive some time slice or quantum arrived process quantum << service time of Pi – User interrupts timer • Note: With preemptive scheduling, CTX can have significant impact – Scheduler continuously cycles through Ready queue giving each process 1 quantum of CPU time – I/O request can cause process to loose part of its quantum CS 3204 - Arthur 19 CS 3204 - Arthur 20 Round Robin w/o considering CTX Round Robin w/o considering CTX Quantum = 50 Quantum = 50 CS 3204 - Arthur 21 CS 3204 - Arthur 22 Round Robin w/ considering CTX… Job & Process Scheduling Quantum = 50 CTX = 10 CS 3204 - Arthur 23 4 Process Life Cycle Job Scheduler & Process Scheduler Job Scheduler Job Process Scheduler Scheduler • Controls when jobs will be allowed to contend the CPU • Most popular techniques Run FIFO First in, first out Hold Ready SJF Shortest job first Process Scheduler Blocked • Controls when individual jobs (processes) will actually get the CPU • Only interesting in multi-programming • Most popular technique is Round Robin DarkDark square square contains contains fixed, fixed, maximum maximum number number of of processes processes • Give each process one time slice in turn until complete CS 3204 - Arthur 25 CS 3204 - Arthur 26 Job Scheduling: SJF -: Shortest Job First Turnaround and Weighted Turnaround Time Scheduling based on estimated run time. Let: N be number of jobs (Estimating run time is, however, normally impossible!) Ai be arrival time of i-th job • Favors short jobs over long ones Fi be finish time of i-th job • Tends to Turnaround time for ith job: – reduce number of jobs running, but Ti = Fi -Ai th – increases turnaround time for long jobs Average turnaround time for i job: T = Σ Ti / N • Usually paired with non-preemptive (run-to-completion) process Weighted turnaround time for ith job: scheduling – average turnaround time is less than or equal to any other WTi = (Fi -Ai) / (Service-time)i nonpreemptive discipline (including FIFO) Average Weighted Turnaround time: WT = Σ WTi / N CS 3204 - Arthur 27 CS 3204 - Arthur 28 Job & Process Sched: Example 1 Example 1 - FIFO Solution Assume Job Arrives Run Time job arrival and runtimes as Job Arrives Start Finish Ti WTi shown 1 10.0 2.0 1 10.0 ___ ___ ____ _______ Non-preemptive 2 10.1 1.0 2 10.1 ___ ___ ____ _______ process scheduling 3 10.25 ___ ___ ____ _______ (run to completion) 3 10.25 0.25 No I/O or Memory Constraints Average Turnaround = T = ____ When would the jobs finish given that the job scheduling algorithm Average Weighted Turnaround = WT = ____ was: 1) FIFO 2) Shortest Job First ? CS 3204 - Arthur 29 CS 3204 - Arthur 30 5 Example 1 - FIFO Solution (completed) Example 1 - SJF Solution Job Arrives Start Finish Turnaround Job Arrives Start Finish Turnaround 1 10.0 10.0 12.0 2.0 2 10.1 12.0 13.0 2.9 1 10.0 ___ ___ ____ 3 10.25 13.0 13.25 3.0 2 10.1 ___ ___ ____ 3 10.25 ___ ___ ____ 7.9 Avg Turnaround time T = 2.63 Average Turnaround time T = ___ CS 3204 - Arthur 31 CS 3204 - Arthur 32 Processor Sharing (PS) Example 1 - SJF Solution “Theoretical” Scheduling Algorithm Job Arrives Start Finish Turnaround • Limit of RR as time quantum goes to zero. • Like giving each CPU cycle to a different process, in 1 10.0 10.0 12.0 2.0 round robin fashion. 2 10.1 12.25 13.25 3.15 • N processes scheduled by PS 3 10.25 12.0 12.25 2.0 – Each job runs on dedicated N-fold slower CPU. – Thus, READY = RUNNING. Average Turnaround time T = 2.38 • CPU Time “shared” equally among processes CS 3204 - Arthur 33 CS 3204 - Arthur 34 Scheduling Example 2 Definitions Assume: Number processes in ready queue before this event Multiprogramming FIFO Job Scheduling Processor Sharing Process Scheduling Current event: A=Arrival S=Schedule Reduction in run time that each process F=Finish in ready queue experiences since last H=In HoldQ Job Arrives Run Time event occurred 1 10.0 0.3 Current 2 10.2 0.5 time Remaining run time of each process in ready queue 3 10.4 0.1 4 10.5 0.4 Time Event # Jobs Headway Time Left 5 10.8 0.1 CS 3204 - Arthur 35 CS 3204 - Arthur 36 6 Example 2 Continued Example 2 Continued… Time Event # Jobs Headway Time Left Time Event # Jobs Headway Time Left 10.0 1 A,S 1 0.3 10.8 5 A,S 2 0.075 2 0.225 10.2 2 A,S 1 0.2 1 0.1 40.275 20.5 50.1 10.4 1 F 2 0.1 2 0.4 11.1 5 F 3 0.1 2 0.125 3 A,S 3 0.1 40.175 10.5 4 A,S 2 0.05 2 0.35 11.35 2 F 2 0.125 4 0.05 30.05 11.40 4 F 1 0.05 40.4 10.65 3 F 3 0.05 2 0.3 40.35 CS 3204 - Arthur 37 CS 3204 - Arthur 38 T and W for Example 2 Scheduling Example 3 Job Run Start Finish Ti WTi Assume: 1 0.3 10.0 10.4 0.4 1.33 FIFO Job Scheduling 100 K Main Memory 2 0.5 10.2 11.35 1.15 2.3 5 Tape Drives Processor Sharing Process Scheduling 3 0.1 10.4 10.65 0.25 2.5 Job Arrives Run Time Memory Tapes 4 0.4 10.5 11.4 0.9 2.25 1 10.0 0.3 10 2 5 0.1 10.8 11.1 0.3 3.0 2 10.2 0.5 60 1 1.4 3.0 11.38 3 10.4 0.1 50 4 T = 0.6 WT = 2.276 4 10.5 0.4 10 2 5 10.8 0.1 30 3 Check: Because CPU was never idle, 1.4 + 10.0 must equal time of last event (11.4) HOLDQ READY/RUNNING CS 3204 - Arthur 39 CS 3204 - Arthur 40 Example 3 Continued Example 3 Continued … Time Event # Jobs Hway MM Tapes Time Left Time Event # Jobs HWay MM Tapes Time Left 10.0 1 A,S 90 3

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 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