处理机调度与死锁(一)

进程调度

概述

一、专业术语

1.响应时间:在分时系统里面,用户要求响应时间。
2.周转时间:在批处理系统中,作业提交到完成需要用的时间
3.截止时间:在实时系统中,要求最晚必须在什么时候开始或结束
4.吞吐量:在批处理系统中,系统在单位时间内处理请求的数量。

二、进程调度类型

按调度层次划分:长程调度、中程调度、短程调度

1.长程调度:又称为高级调度、作业调度,它的调度对象是作业。其主要功能是根据某种算法,决定将外存上处于后备队列中的哪几个作业****调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列,等待Short-termscheduling。高级调度主要用于多道批处理系统中,而在分时和实时系统中不设置高级调度。

注:采用交换技术的系统将新创建的进程插入(就绪,挂起)队列,等待Medium-termscheduling。
批处理系统中,作业进入系统后,先驻留在磁盘上(批处理队列中)。长程调度从该队列中选择作业,为之创建进程

几个问题:

1)决定哪些作业被允许进入内存处理?
答:这取决于调度算法,如FCFS、短作业优先、基于优先权、响应比高者优先等调度算法
2)系统允许多少个作业进入内存?
答:取决于多道程序的度(多道程序系统一般会约定系统最多容纳进程数)
3)何时调用调度程序?
答: ① 有作业作业终止时
② 处理器空闲一定时间后

2.中程调度:又称为内存调度,它调度换出到磁盘的进程进入内存,准备执行。其目的是为了提高内存的利用率和系统吞吐量。

在多道程序度允许的情况下,从外存选择一个挂起状态的进程调度到内存(换入)

中程调度配合对换技术使用。

3.短程调度:又称为低级调度或进程调度,其所调度的对象是进程(或内核级线程)。其主要功能是,根据某种算法,决定就绪队列中的某个进程获得处理机,并由分派程序将处理机分配给被选中的进程。进程调度是最基本一种调度,在多道批处理、分时和实时几种类型的OS中,都必须配置这级调度。

进程调度发生的时间:
时钟中断 I/O中断 操作系统调用 信号发生

三、进程调度的目标

面向用户:

响应时间
包含三部分时间,一是请求信息从键盘输入开始,直至将其传送到处理机的时间;二是处理机对请求信息进行处理的时间;三是将形成的响应信息回送到终端显示器的时间
周转时间
包含四部分时间,作业在外存后备队列上等待(作业)调度的时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间,以及进程等待I/O操作完成的时间。其中的后三项在一个作业的整个处理过程中,可能发生多次。
截止时间
指某任务必须开始执行的最迟时间,或必须完成的最迟时间。

面向系统:

系统吞吐量
处理机效率(有效?高效?)
公平性(防止进程饥饿)
资源平衡(适用于长程调度和中程调度)
优先级:调度程序总是选择优先级高于低优先级的进程。
有多个准备好的队列来代表每一个优先级。
允许进程根据其时间或执行历史更改优先级。

四、进程调度算法

1.决策模式(对处理器来说
1)非剥夺方式
在这种方式下,能引起进程调度的因素:
①进程执行完后退出,主动释放处理器
②正在执行中的进程因提出I/O请求而暂停执行
主要用于批处理系统,降低了进程的周转时间
2)剥夺方式
可以避免一个进程长时间地占用处理机,以保证处理机能为所有进程提供更为公平地服务
主要原则:①优先权原则
②短进程优先原则
③时间片原则
在分时系统中,只有采用抢占方式才有可能实现人-机交互。
在实时系统中,抢占方式能满足实时任务的需求

2.调度算法
在这里插入图片描述
以下介绍6种调度算法调度这5个进程,比较各种调度算法的平均周转时间,分析各种调度算法的优缺点。

先来先服务算法(FCFS)
在这里插入图片描述
还需加上每个进程的等待时间
平均周转时间:(3+(1+6)+(5+4)+(7+5)+(10+2))/5=8.6

对短进程来说等待时间远远超过执行时间
有利于长进程,不利于短进程;有利于CPU繁忙的作业,不利于I/O繁忙的作业

FCFS的实际应用
因此,在进程调度中,FCFS算法经常与其他调度算法混合使用。
系统可以按照不同的优先级维护多个就绪队列,每个队列内部按照FCFS算法调度。

轮转调度法(RR)
在分时系统中常用,让就绪队列(按FCFS策略排成)上的每一个进程每次仅运行一个时间片。时间片一到,不论进程出于什么转态,立即终止。
进程切换时机:
①若一个时间片尚未用完,正在运行的进程便已经完成,就立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首的进程进行,并启动一个新的时间片
②在一个时间片用完时,计时器中断处理程序被激活。如果进程尚未运行完毕,调度程序将把它送往就绪队列的末尾
在这里插入图片描述
平均周转时间:(4+16+(1+12)+(1+13)+ (2+5) )/5=10.8
分析:
1.时间片的大小对计算机性能的影响
2.存在的问题------未有效利用系统资源。Processor-bound进程充分利用时间片而I/O-bound进程在两次I/O之间仅需很少的CPU时间,却需要等待一个时间片

-如何改进?
虚拟轮转调度算法(VRR)
增加一个辅助队列,接收I/O阻塞完成的进程,调度优先于就绪队列,但占用的处理机时间小于就绪队列的时间片
·算法分析:VRR算法比RR算法公平
·RR算法常用于分时系统及事务处理系统。

短进程优先(SPN)
SPN算法是以作业的长短来计算优先级,作业越短,其优先级越高,作业的长短是以作业所要求的运行时间来衡量的。
在这里插入图片描述
平均周转时间:
(3+(1+6)+(1+2)+(7+4)+(9+5))/5=7.6
SPN算法分析:
1.改善了系统的性能,降低了系统的平等待时间,提高了系统的吞吐量
2.存在的问题:
·很难准确确定进程的执行时间
·对长进程不公平
·未考虑进程的紧迫程度,不适合于分时系统和事务处理系统

剩余时间最短者优先(SRT)
当一个新的作业到达时,其整个时间同当前进程的剩余时间做比较。如果新的进程比当前运行进程需要更少的时间,当前进程就被挂起,而运行新的进程。这种方式可以使新的短作业获得良好的服务。
在这里插入图片描述
平均周转时间:
(3+(1+12)+4+2+(9+5))/5 = 7.2
SRT算法分析:
1.与SPN算法一样,很难准确确定进程的剩余执行时间,且对长进程不公平
2.但是,它不像FCFS算法偏袒长进程,也不象RR算法会产生很多中断而增加系统负担。
3.由于短进程提前完成,故其平均周转时间比SPN短。

响应比高者优先(HRRN)
响应比 =(等待时间+要求服务时间)/要求服务时间 = 响应时间 / 要求服务时间
为每一个进程提供一个动态优先级,令他随等待时间延长而增加,这使得长作业的优先级在等待期间不断增加,等到足够的时间后,必然有机会获得处理机
在这里插入图片描述
平均周转时间:
(3+(1+6)+(5+5)+(5+2)+(9+5))/5=8.2
HRRN算法分析:
1.若进程的等待时间相同,则要求服务时间短的进程优先(SPN)
2.若进程要求的服务时间相同,则等待时间长的进程优先(FCFS)
3.长进程随着等待时间增加,必然会被调度
4.但是很难准确确定进程要求的执行时间,且每次调度之前需要计算响应比,增加系统开销

反馈调度法(FB)
在这里插入图片描述
1.设置多个就绪队列,各队的优先权不同(从上而下优先级逐级降低)
2.各个队列中进程执行的时间片不同,优先权愈高时间片愈短
3.新进程首先放入第一队列尾,按FCFS方法调度,若一个时间片未完成,到下一队列排队等待
4.仅当第一队列空时,调度程序才开始调度第二队列的进程,依次类推
5.当进程最后被降到第n队列后,在第n队列中便采取按RR方式运行
在这里插入图片描述
平均周转时间:(4+ 18 +12 + 13 + 3)/ 5 = 10
算法分析:
1.有利于交互型作业(常为短作业)
2.有利于短批处理作业
3.存在的问题:当不断有新进程到来,则长进程可能饥饿。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值