进程调度(4.1)

进程调度是操作系统的关键功能,涉及高级调度、中级调度和低级调度。调度算法包括FCFS、SJF、时间片轮转、优先权和多级反馈队列等,每种算法关注不同的性能指标如响应时间、周转时间和公平性。文章还讨论了不同调度方式(可剥夺与不可剥夺)和调度时机。
摘要由CSDN通过智能技术生成

进程调度

进程调度是操作系统的基本功能,在多道程序系统中,内存中有多个进程,每个进程交替的去使用处理机,而合理的调度是至关重要的。处理机的调度有三种类型,分别是高级调度、中级调度、低级调度其中低级调度发生的频率最高。
在这里插入图片描述

1 调度的类型与准则

1.1 调度类型

(1)高级调度:又称作业调度、宏观调度。
任务:决定将外存上后备队列中的那些作业调入内存。
调度工作决定:

  • 接纳多少作业:取决于多道的程度,即内存允许放多少个作业
  • 接纳哪些作业:有调度算法决定。

适用于批处理系统。
(2)中级调度:又称进程调度、微观调度
主要作用:内存和外存对换区之间进行进程对换,以解决内存紧张的问题。
(3)低级调度:又称进程调度、微观调度
任务:决定就绪队列中的哪些进程将获得处理机
调度方式:非剥夺式和剥夺式
抢占原则:时间片、优先权和进程长短
适用于分时、实时、批处理系统

1.2 进程调度的方式

进程调度方式分为不可剥夺方式和可剥夺方式。
不可剥夺方式: 不可剥夺方式也被称为非抢占方式。采用这种调度方式时,一旦把处理机分配给某个进程,该进程将一直执行下去,直到运行完毕或因某种原因不能运行,才把处理机分配给其它进程,决不允许其它进程强占正在运行进程占有的处理机。简单来说当该进程占用CPU时,不能被别的进程强制掠夺该CPU。
**可剥夺方式:**可剥夺方式也被称为抢占方式。在这种方式下,允许一个进程按照某种原则,抢占其它进程占有的处理机。抢占采用优先权原则的比较多,也就是说,如果一个进程比正在运行进程的优先级高,则它可以抢占处理机而运行。简单来说当该进程占用CPU时,可以被别的进程强制掠夺该CPU。

1.3 进程调度时机
  • 进程退出
  • 进程阻塞
  • 新进程创建
  • 中断发生
  • 时钟中断
1.4 进程的性能准则

面向用户的准则:

  • 响应时间快(响应时间:从用户通过键盘提交请求到首次得到响应的时间)
  • 周转时间短(周转时间:作业从提交到完成的时间间隔。)
  • 优先权准则
  • 截止时间的保证

面向系统的准则:

  • 系统吞吐量:单位时间内完成的作业数。
  • 处理机利用率
  • 各类资源平衡利用
  • 公平

周转时间Ti:周转时间=完成时间-到达时间
平均周转时间:平均周转时间=周转时间/进程个数
带权周转时间:带权周转时间=周转时间/服务时间=(等待时间+实际服务时间)/实际服务时间
平均带权周转时间:平均带权周转时间=(周转时间/服务时间)/进程个数

2 调度算法

(1)先来先服务调度算法FCFS

  • 算法思想:对于作业调度,从后备作业中选择最先进入该队列的作业,将他们调入内存,为它们分配资源、创建进程,然后放入就绪队列。–对于进程调度,从就绪队列中选择最先进入该队列的进程,分配处理机,使之运行。
  • 特点:易于实现–有利用长作业,短作业不满。

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

  • 算法思想:短作业优先是从后备队列中选择估计运行时间最短的作业,将它们调入内存。短进程优先是从就绪队列中选择估计运行时间最短的进程,将处理机分配给它,使之执行并一直到完成或因发生某事件而阻塞放弃处理机时,再重新调度。
  • 特点:极端情况下,长作业得不到调度。作业或进程的长短只能估计,不准确。完全不考虑紧迫程度,使紧急事件得不到处理。
    在这里插入图片描述

(3)时间片轮转调度算法RR

  • 算法思想:进程按FCFS在就绪队列排队,调度程序把CPU分配给队首进程,令其执行一个时间片,一个时间片执行完毕将进程排在队尾。
  • 时间片大小的确定:响应时间:T=用户数目N*时间片q
      响应时间T:当N一定,T与q成正比。T若要求快,则q也要小。
      就绪队列的进程数N:T一定,q与N成反比。N越多,q要小。
      系统的处理能力:保证用户键入的常用命令能在一个时间片内处理完毕。
    在这里插入图片描述
    在这里插入图片描述

(4)优先权调度算法

  • 算法思想:
      从后备队列中选择若干优先权最高的作业,将它们调入内存。
      或从就绪队列中选择优先权最高的进程,将处理机分配给它。
  • 优先权类型:
      静态优先权,确定因素:进程类型、进程对资源的需求、用户要求。
      动态优先权,确定因素:等待时间、运行时间。
      特点:综合考虑各种情况优先权调度算法

(5)多级反馈队列

  • 算法思想:
      根据作业的性质和类型不同,将就绪队列再分为若干个子队列,每个进程分属于一个队列。
      在多级队列的基础上,不但设多个队列,且为每个队列赋予不同的优先权,第一个队列的优先权最高,第二个队列次之,其余队列的优先权逐个降低。
      各个队列中的进程执行时间片大小逐渐增大。
      新进程投入第一个队列。
      调度从第一个队列进行,仅当第一个队列为空时,才调度第二个队列中的进程。
    在这里插入图片描述
    例题:
    假定要在一台处理器上执行下表所示作业,且假定这些作业在时刻0以1、2、3、4、5的顺序到达。说明分别使用FCFS、RR(时间片=1)、SJF、非剥夺式优先级调度算法以及多级队列反馈算法(第i级队列的时间片=2i-1)时,这些作业的执行情况(优先级的高低顺序依次为1到5),针对以上每种调度算法,给出平均周转时间和平均带权周转时间。
作业执行时间优先级
1103
211
323
414
552

解(1)作业执行情况可以用甘特图来表示。
在这里插入图片描述
(2)各个作业对应于各个算法的周转时间和加权周转时间可得:
在这里插入图片描述
周转时间Ti:周转时间=完成时间-到达时间
平均周转时间:平均周转时间=周转时间/进程个数
带权周转时间:带权周转时间=周转时间/服务时间=(等待时间+实际服务时间)/实际服务时间
平均带权周转时间:平均带权周转时间=(周转时间/服务时间)/进程个数

所以,FCFS的平均周转时间为13.4,平均加权周转时间为7.26。
RR的平均周转时间为9.2,平均加权周转时间为2.84。
SJF平均周转时间为7,平均加权周转时间为1.74。
非剥夺式优先级调度算法的平均周转时间为12,平均加权周转时间为6.36。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值