处理机调度算法

处理机调度算法

处理机的调度层次

1.高级调度:(长程调度/作业调度)
外存—>内存(面向作业)
[无—>创建态—>就绪态]
2.低级调度:(进程调度/短程调度)
内存—>CPU
对象:进程
[就绪态—>运行态]
3.中级调度:
外存<—>内存
实际上就是存储器管理中的对换功能

调度类别

作业调度

  1. 先来先服务调度算法(FCFS)
  2. 短作业优先调度算法 (SJF)
  3. 优先级调度算法(PSA)
  4. 高响应比优先算法(HRRN)
先来先服务调度算法(FCFS)

算法思想:系统将按照作业达到的先后次序来进行调度。(非抢占式)
例如:
在这里插入图片描述
开始执行时间:上一个进程的完成时间
完成时间:开始执行时间+服务时间
周转时间:完成时间-到达时间
带权周转时间:周转时间/服务时间
平均周转时间:各作业周转时间之和/作业数

算法优缺点:
1.算法容易实现。
2.对短进程不公平。
由于长进程可能排在队列前面,必将增加队列后部进程的等待时间,从而将增加平均周转时间。
3.不利于I/O型进程,未有效利用系统资源。
4.一般地,FCFS与其他调度算法混合使用。
例如,系统可以按照不同的优先级维护多个就绪队列,每个队列内部按照FCFS算法调度。
5.FCFS算法同时适合于长程、中程和短程调度三种调度类型。

短作业优先调度算法 (SJF)

算法思想:以进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。(默认非抢占式)
[作业越短,其优先级越高]

例1:在这里插入图片描述
开始执行时间:上一个进程的完成时间
完成时间:开始执行时间+服务时间
周转时间:完成时间-到达时间
带权周转时间:周转时间/服务时间
平均周转时间:各作业周转时间之和/作业数

算法优缺点:
1.算法容易实现;
2.适用于作业调度;
3.能有效降低作业的平均等待时间;
4.忽视了作业等待时间,对长作业不利,有可能导致长作业(进程)长期不被调度(出现饥饿现象);
5.要精确知道一个作业的运行时间比较困难的。
6.采用非剥夺调度方式,未考虑进程的紧迫程度,不适合于分时系统和事务处理系统。

优先级调度算法(PSA)

算法思想:这种算法是根据确定的优先级来选取作业,每
次总是选择优先级高的作业。
规定用户作业优先级的方法:
(a)由用户规定优先级(外部优先级)
用户提交作业时,根据急迫程度规定适当的优先级
作业调度程序根据JCB优先级决定进入内存的次序
(b)由系统计算优先级(内部优先级)
例:可按如下公式计算作业的优先级:
优先级 = 用户规定优先级 – 作业处理时间 + 作业等待
时间 – 输出量

高响应比优先算法(HRRN)

响应比概念:
优先权=![](https://img-blog.csdnimg.cn/20201220172527580.png)
例1:
在这里插入图片描述

进程调度

下列情况都会发生CPU调度:
当一个进程从运行态切换成阻塞态时;
当一个进程从运行态切换成就绪态时;
当一个进程终止时。

  1. 时间片轮转算法(RR)
  2. 优先级调度算法
  3. 多级反馈队列调度算法()
  4. 基于公平原则的调度算法
时间片轮转算法(RR)

算法思想:将系统中所有就绪进程按照FCFS原则,排成一队列。(抢占式)
每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从10ms到200ms。
在一个时间片结束时,发生时钟中断。
调度程序据此暂停当前进程的执行,将其送到就绪队
列的末尾,通过上下文切换执行当前的队首进程。
进程可以未使用完一个时间片,就出让CPU(如阻塞)。
对响应时间的要求:
T(响应时间)=N(进程数目)* q(时间片)
q= T/ N
例1:
采用基于时间片轮转调度算法调度A(4)、B(3)、C(4)、D(2)、E(4)五个进程,并分别按照两种时间片大小轮转调度,时间片分别为q=1和q=4时,分析该算法的性能。
在这里插入图片描述
时间片为1在这里插入图片描述

时间片为4在这里插入图片描述
算法优缺点:
1.算法主要针对分时系统,适用于进程调度;
2.对用户的响应及时、快速;
3.时间片的长度确定比较困难;
4.进程切换开销比较大。

优先级调度算法

算法思想:给每一个进程确定一个优先数,处理器调度每次选择就绪进程中优先级最大者,让它占用处理器运行称为优先级调度。

静态优先数法

创建进程时就确定,直到进程终止前都不改变。通常是一个整数。
依据:
◦ 进程类型(系统进程优先级较高)
◦ 对资源的需求(对CPU和内存需求较少的进程
,优先级较高)
◦ 用户要求(紧迫程度和付费多少)

动态优先数法

在创建进程时赋予的优先级,在进程运行过程中可以自动改变,以便获得更好的调度性能。
基本原则:
①根据进程占有CPU时间多少来决定,当进程占有CPU时间愈长,那么,在它被阻塞之后再次获得调度的优先级就越低,反之,进程获得调度的可能性越大;
②根据进程等待CPU时间多少来决定,当进程在就绪队列中等待时间愈长,那么,在它被阻塞之后再次获得调度的优先级就越高,反之,进程获得调度的可能性越小。

多级反馈队列调度算法

算法基本思想:
将就绪队列分为N级,每个就绪队列分配给不同的时间片,队列优先权越高,为每个进程所规定的执行时间片就越小;系统从第一级调度,当第一级为空时,系统转向第二个队列,…当运行进程用完一个时间片,放弃CPU时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列 。
调度机制:
首先系统中设置多个就绪队列:
每个就绪队列分配给不同时间片,优先级高的为第一级队列,时间片最小,随着队列级别的降低,时间片加大;
各个队列按照先进先出调度算法:一个新进程就绪后进入第一级队列;当时间片到后未完
成,进程放弃CPU,放到下一级队列末尾等待调度,依次类推,当进程最后被降到第n队列后,采用RR方式运行。
进程由于等待而放弃CPU后,进入等待队列,一旦等待的事件发生,则回到原来的就绪队列;
按队列优先级调度:当有一个优先级更高的进程就绪时,可以抢占CPU,被抢占进程回到原来一级就绪队列末尾;当第一级队列空时,就去调度第二级队列,如此类推;
优点:
◦ 为提高系统吞吐量和缩短平均周转时间而照顾短进程
◦ 为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程
◦ 不必估计进程的执行时间,动态调节
在这里插入图片描述
留两道题(答案我会另外写一篇博)
1.单道批处理系统中,有3个作业的部分数据如下表所示(单位为h),采用先来先服务和高响应比优先算法进行调度,求平均作业周转时间和平均作业带权周转时间,问哪一种算法性能比较好。
在这里插入图片描述
2.单道批处理系统中,有如表的4个作业,约定从9:00开始调度,忽略系统开销。请分别计算:
(1)采用短作业优先算法时,各作业的周转时间。
(2)采用高响应比优先算法时,各作业的周转时间和平均周转时间。
在这里插入图片描述
2020-12-21,今天操作系统的复习就到此为止叭,明天继续加油!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值