处理机调度与常见算法

处理机调度:多道程序环境下,动态的把处理机分配给就绪队列中的一个进程使之执行。
提高处理机的利用率、改善系统性能,很大程度上取决于处理机调度的性能。
处理机调度便成为OS设计的中心问题之一。分配的任务由处理机调度程序完成。
一、处理机调度的基本概念
作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。
高级调度(High Scheduling)
中级调度(Intermediate-Level Scheduling)
低级调度(Low Level Scheduling)
进程调度方式
1)非抢占方式(Non-preemptive Mode)
一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配运行进程的处理机。
2)抢占方式(Preemptive Mode)
允许调度程序根据某种原则,暂停某个正在执行的进程,将处理机重新分配给另一进程。
针对批处理系统的性能指标。作业从提交到完成所经历的时间。
CPU执行用时Ts
总的等待时间Tw = 在后备队列中等待 + 就绪队列上等待

  • 阻塞队列中等待(等待I/O操作用时)
    周转时间T=Ts+Tw
    带权周转时间W= T/Ts
    平均周转时间、平均带权周转时间(n个作业求平均)
    二、 调度算法
    1、先来先服务调度算法FCFS
    一种最简单的调度算法,按先后顺序进行调度。既可用于作业调度,也可用于进程调度。
    按照作业提交,或进程变为就绪状态的先后次序分派CPU;
    新作业只有当当前作业或进程执行完或阻塞才获得CPU运行
    被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。 (所以,默认即是非抢占方式)
  1. 短作业(进程)优先调度算法SJF/SPF
  2. 高优先权优先调度算法HPF
  3. 基于时间片的轮转调度算法RR
    (1)时间片轮转算法
    1.将系统中所有的就绪进程按照FCFS原则,排成一个队列。
    2.每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。
    3.在一个时间片结束时,发生时钟中断。
    4.调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。
    进程阻塞情况发生时,未用完时间片也要出让CPU
    (2)多级反馈队列算法FB
    1)设置多个就绪队列,各队列有不同的优先级,优先级从第一个队列依次降低。
    2) 赋予各队列进程执行时间片大小不同, 优先权越高,时间片越短。
    3)当一个新进程进入内存,引发的调度过程
    准备调度:先将它放入第一个队列的末尾,按FCFS原则排队等待调度。
    IF时间片内完成,便可准备撤离系统;
    IF时间片内未能完成,调度程序便将该进程转入第二队列的末尾等待再次被调度执行。
    当第一队列中的进程都执行完,系统再按FCFS原则调度第二队列。在第二队列的稍放长些的时间片内仍未完成,再依次将它放入第三队列。
    依次降到第n队列后,在第n队列中便采取按时间片轮转的方式运行。
  4. 常用的几种实时调度算法
    目前有许多实时调度算法,其中两种实时调度算法:
    最早截止时间优先EDF(Earliest Deadline First)算法
    最低松弛度优先LLF(Least Laxity First)算法
    1)最早截止时间优先EDF
    根据任务的开始截止时间来确定任务的优先级。截止时间越早,其优先级越高。
    系统保持一个实时任务就绪队列
    队列按各任务截止时间的早晚排序
    调度程序总是选择就绪队列中的第一个任务,分配处理机使之投入运行。
    新任务产生时,是否等当前程序执行完:
    抢占式/非抢占式
    可能会使作业错过,但可适用于软实时系统
    2)最低松弛度优先LLF
    根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度越高(松弛度值越小),优先级就越高。
    松弛度= 截止完成时间 – 还需执行时间 - 当前时间
    可理解为当前时刻到开始截止时刻间的差距,随着时间的推进,这个差值逐渐变小,任务越来越紧迫。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值