操作系统——CPU Scheduling

211复习资料

1. Basic Concepts

  • multiprogramming最大化利用CPU,CPU-I/O Cycle(CPU burst-I/O burst)
    •   CPU burst曲线称指数形式,I/O约束程序有短CPU burst,CPU约束程序有长CPU burst
  • CPU scheduler 
    •   CPU进程选择由short term或CPU scheduler进行。
    • preemtive: 抢占调度
  • Dispatcher
    •   切换上下文
    •       切换到user model
    •       调到用户程序的合适位置,以重新启动程序
    • 要快!dispatch latency是dispatcher要花的时间
  • Scheduling Criteria:
    • CPU使用率:40%~90%
    • Throughput吞吐量:一个时间单元完成的进程数量。
    • Turnaround time周转时间:运行改进程要花多长时间。包括等待进入内存,waiting,CPU和I/O上的时间
    • Waiting time等待时间:CPU调度算法之影响等待时间。即进程在就绪队列所花时间之和
    • Response time响应时间:从提交请求到产生第一响应的时间。受设备影响。
  • Scheduling Algorithm: FCFS: first come, first served(FCFS) : non-preemptive
    • 用FIFO队列实现。进程进入就绪队列,PCB连接队列的尾部。CPU分配给队列头的进程。
    • 实现简单,平均等待时间长。
    • eg.  
      进程 区间时间
      P1 24
      P2 3
      P3 3
    • P1 (0-24)                 P2(3)     P3(3)
    •   P1等待0ms, P2等24ms,P3等27ms.
    • 平均等待时间(24+27)/3 = 17ms
    • P2(0-3)      P3  (3-6)   P1(6-30)             
    • 平均等待时间(6+3)/3 = 3ms
    • convoy effect会导致CPU和设备使用效率降低
  • SJF: shortest-job-first scheduling algorithm:
    • 赋值给最短下一个CPU区间,长度相同时为FCFS
    • eg.
      进程        区间时间      
      P1 6
      P2 8
      P3 7
      P4 3
    •   
      P4 (0-3)   P1 (3-9)              P3 (9-16)                P2  (17-24)          
    • 平均等待时间:(3+16+9+0)/4 = 7ms
    • 平均等待时间最小。Longterm调度。难以确定下一个CPU区间的长度。对于批处理系统的长期调度,将提交作业时制定的进程时间极限作为长度。
    • 不能用于short term调度上实现,因为难以预测下一个CPU长度,但可以预测下一个CPU区间的进程。
    • 有抢占/非抢占两种:抢占SJF调度称为shortest-remaining-time-first scheduling
    •   进程    到达时间   区间时间 
      P1 0 8
      P2 1 4
      P3 2 9
      P4 3 5
    • P1先执行1个时间单位,然后P1剩下7个时间单位,P2 P4 P1 P3
    • 平均等待时间:注意arrival time
  • length of next CPU burst 
    • ζn+1 = αtn+(1-α)ζn    α--加权
  • example
  • Priority Scheduling algorithm
    • 最高优先级分配给CPU,相同优先级FCFS。
    • 小数字表示高优先级
    •  进程   区间时间   优先级 
      P1 10 3
      P2 1 1
      P3 2 4
      P4 1 5
      P5 5 2
    • 8.2ms
    • indefinite blocking无限阻塞/starvation饥饿:可运行但缺乏CPU,永远等待CPU
    • 解决方法aging:每隔一段时间递减进程的优先级
  • RR(round-robin)
    • time sharing system.
    • 一个单位的时间:time quantum or time slice,10-100ms。ready queue时环形队列
    • 新进程在队列尾端,CPU从头开始取。设置timer在1个时间量后中断。
    • 如果进程小于1个时间量,CPU提前释放/如果进程大于1个时间量,中断,执行context switch,将该进程移到队列尾部。
    • 等待时间长。
      • 进程   区间时间
        P1 24
        P2 3
        P3 3
    • time quantum is 4ms
    • 如果队列中有n个进程,时间单元为q,则每个进程有1/n的CPU时间,长度小于q的时间单元
    • 如果时间单位足够大,和FCFS相同,如果小,会有大量的context switch。因此time quantum应适当的大。
    • 如果context switch时间是10%的time quantum,
    • Thrnaround time由time quantum决定
  • Multilevel Queue
    • froeground(interactive)-RR /80%
    • background(batch)-FCFS /20%
    • 队列间通常采用固定优先级抢占调度。
      • 系统进程/交互进程/交互编辑进程/批处理进程/学生进程    
    • 也可以在队列见划分time unit,每个队列有一定的CPU时间,可用于调度队列内的进程。
    • 不够灵活,低调度开销,队列间不能交换
  • Muiltilevel feedback queue
    • 允许队列间移动
    • 如果进程使用过多CPU时间,它会被转移到更低优先级队列。低优先级中等待时间长的进程会被转移到更高优先级队列
    • 给CPU区间低的进程最高优先级。
  • Real time CPU scheduling
    • Software: 不知道critical real-time process什么时候执行。
    • Hardware: deadline
    • Latency: interrupt latency:  
      •   dispatch latency: Conflict phase: preemption of any process running in kernel mode. 低优先度的资源释放资源
  • Priority based scheduling
    • 必须preemptive。软件上real time
    • periodic ones require CPU at constant intervals.
  • Rate Monotonic Scheduling
    • shorter periods有高有夏季
    •   missed deadlines
  • earliest deadline first scheduling(EDF)
posted @ 2018-04-17 10:26  森淼clover  阅读(398)  评论(0)    收藏  举报