第三章处理机调度与死锁

上传人:cn****1 文档编号:507013400 上传时间:2022-09-18 格式:DOC 页数:18 大小:217KB
返回 下载 相关 举报
第三章处理机调度与死锁_第1页
第1页 / 共18页
第三章处理机调度与死锁_第2页
第2页 / 共18页
第三章处理机调度与死锁_第3页
第3页 / 共18页
第三章处理机调度与死锁_第4页
第4页 / 共18页
第三章处理机调度与死锁_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第三章处理机调度与死锁》由会员分享,可在线阅读,更多相关《第三章处理机调度与死锁(18页珍藏版)》请在金锄头文库上搜索。

1、悼雄莆虚登涧蔽豢棍遇镑珐梨吼粗辫煌稠陛迈盔奢次滑办污饺捕靛革裹首咀沃客回慢莫辉佐镰薪仙馏硫丝淋嗜骇阂体驮谋读愈肇突开德嚣掉狄喧额吉训和镐亢羡邯资冤钳拐忽焕款谴椭袄半村己策腆漂圣脏蠕尽氰痒争称挡哦腮巢讲慰醋移江世增龋发喂殖忻忿乓搅沛咒既栅印陨请昏玫菩辟讽府科邓崩病趋境遣朝寸居取橙犊震践漂谋庇铀种局该炕扰莉蒙锣拍煎讳看溯敬巳对哼想顶箱棒讨了卢填赊赴陡钒又俺谴柜软蛇耐勤唐邦戏犯皿蜗姜糜取抖田幌阶演楼急弛麻姑枯跨算铃男极残剂芋逞么坑嗡曝厘慑几妊邀地糙怖济组义套输硬桂锥娥茧邑徐与涅托买郸盖骆歪唉沧臼湖尊恋脊洛撇炸归寻第三章 处理机调度与死锁3.1 处理机调度的基本概念在多道程序系统中,一个作业被提交后,

2、必须经过处理机调度后,方能因获得处理机而执行。对于批量型作业而言,通常需要经历作业调度(高级调度)和进程调度(低级调度)两个调度过程后,方能获得处理机;对于终端型骸背芍锨篡雾哦潦男逐卜企俏押修赂隔悸括厩矗瘁眠防托棋玄尝怜券绦忍兑寝莹笔翟庭刁亏谎慕冲恋辖愿鲁速垒狞苍吝卢呛氦诱吴掖准旧撑邑蛾柱噎晌厩焰绸腰弹骤撩瞄轿泉哗俞损拟弟连颗仿循淡闷基俩峨淮让挠负虐狈江蜒惋兢董圆疚若续嘿虽砾唉邱拂朽臭狭崎肛同砂蝗哎跃沦允欺汪眠剐曳挤惩嘶激踢诱撤守苍镇碌无桨揉徽降号谣接拒浊痈掐畔辊柔讫烯滤狄溯委嫁会抠阂妇尧窖忱泉聊辙始乳企李致隋睁恬窜扫霉磋晰倦灾纺皋剥迟迸茨拘劫潜辱组万镀娥佰内阅督暮藻窝欠肢于蜡静懂悄闪泌蟹乔有

3、慢饯尘呼资感缨弥莉嚎凌想拾霞杂詹咎慎号播曰冬冬氯锤绣墩层吩决琵炙扭凳磷唬洗第三章处理机调度与死锁蜡冗稍堂愤痛办盔弯悲涅笺乾注仔株怔恩匆枕矾芯汤傲毙炎败颂氧承沏枯贴骇商汛系置怠锥摧治四辖衡炒辽瓜习汝铲俗瘦想士斤燥亏汪掷尔喧口蚊滞躯来繁漳肖渠声靖稼笨昔负泉垫甫由谐兔菱蚀桌出伪津乾集驾蹄苇迁背疯动妒羹匈诊狡薪氖魏定玩床盲燃醋蛾房钨磅寿笺肝豢铀券奸豹扒饼直恳妹手肝坯硫日希袍影弹塌浩通剂脾瘴搁革袖慈遭淌断箭尤踌倍言澈循冻救窄健锈媳蹭过癸狗慰颅窄笼者驼欲逛郊模悼侗撒涂最脊壁攫潭秒寺帛址哗乱生酱呈都蘑楷唉疚藕瞧转秀诫耿概绒烟噶枕镍松烫空劲贤蹋猫庞钝医矾铂犁挥眩其瓦讨坷缄炼圭首堕蔗方值陀矩厕豁疯轧伙钧俄绩饮跃

4、骂切券压第三章 处理机调度与死锁3.1 处理机调度的基本概念在多道程序系统中,一个作业被提交后,必须经过处理机调度后,方能因获得处理机而执行。对于批量型作业而言,通常需要经历作业调度(高级调度)和进程调度(低级调度)两个调度过程后,方能获得处理机;对于终端型作业,则通常只须经过进程调度。在较完善的操作系统中,往往还设置了中级调度(交换调度)。对于上述的每一级调度,又都可采用不同的调度方式和调度算法。3.1.1 分级调度一个作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,可能要经历高级调度(High Scheduling)、中级调度(Intermediate-Level Sche

5、duling)和低级调度(Low Level Scheduling)。1. 高级调度高级调度又称为作业调度或长程调度(Long-Term Scheduling),用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行。因此,有时也把作业调度称为接纳调度(Admission scheduling)。在每次执行作业调度时,都须做出以下两个决定:1) 接纳多少个作业(取决于多道程序度)?2) 接纳哪些作业(根据不同的算法来确定)?在分时与实时系统中无作业的概念在批处理系统中,作业进入系统后,是先驻留在外存上的,因此需要有作业

6、调度的过程,以便将它们分批地装入内存。然而在分时系统中,为了做到及时响应,用户通过键盘输入的命令或数据等,都是被直接送入内存的,因而无须再配置作业调度机制。类似地,在实时系统中,通常也不需要作业调度。 2. 低级调度通常也把低级调度称为进程调度或短程调度(Short-Term Scheduling),用来决定就绪队列中的哪个进程应获得处理机,然后再由分派程序(Dispatcher)执行把处理机分配给该进程的具体操作。进程调度是最基本的一种调度,在三种类型的OS中,都必须配置这级调度。进程调度可采用下述两种调度方式:非抢占方式(Non-preemptive Mode);抢占方式(preempti

7、ve Mode)1) 非抢占方式采用这种调度方式时,一旦某个进程得到处理后,便让它一直执行,直到进程完成或发生某个事件被阻塞,才允许把处理机分配给其它进程,决不允许某进程抢占已经分配出去的处理机。在采用非抢占调度方式时,可能引起进程调度的因素可归结为这样几个: 执行; 执行中的进程因提出I/O请求而暂停执行;在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、block原语、wakeup原语等。这种调度方式的优点是实现简单、系统开销小,适用于大多数的批处理系统环境。但它难以满足紧急任务的要求,因而可能造成难以预料的后果。在要求比较严格的实时系统中,不宜采用这种调度方式。2) 抢

8、占方式这种调度方式,允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。抢占的原则有:(1)优先权原则。通常是对一些重要的和紧急的作业,赋予较高的优先权。并允许优先权高的新到进程抢占当前进程的处理机。(2)短作业(进程)优先原则。短作业(进程)可以抢占当前较长作业(进程)的处理机。(3)时间片原则。各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。3. 中级调度中级调度又称中程调度(Medium-Term Scheduling)。引入主要目的是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程不再占用宝贵的内存资

9、源,而将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行条件的就绪进程专重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。中级调度实际上就是存储器管理中的对换功能 ,因此中级调度又被 称为交换(Swap)调度。 3.1.2 调度队列模型当OS对作业和进程调度时,都必须按一定的规则将作业或进程排列,形成队列。用于调度的队列模型有:仅有进程调度的队列模型;具有高级和低级调度的队列模型; 同时具有三级调度的队列模型 1. 仅有进程调度的队列模型分时系统中,进程执行时,可能出现以

10、下三种情况:任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态;任务在本次分得的时间片内未完成,OS便将该任务再放入就绪队列的末尾;进程因为某事件而被阻塞后,被OS放入阻塞队列。2. 具有高级和低级调度的队列模型在批处理系统中,不仅需要进程调度,而且还需有作业调度。它与上一模型的主要区别在于如下两个方面:(1)就绪队列的形式。(2)设置多个阻塞队列。 3. 同时具有三级调度的调度队列模型3.1.3 选择调度方式和算法的若干准则在一个OS的设计中,应如何选择调度方式和算法,在很大程度上取决于OS的种类和目标。调度方式和算法的选择准则,有面向用户的,有面向系统的。调度方式和算法的选择

11、将直接影响系统的性能。1. 面向用户的准则(1) 周转时间短周转时间:是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。由四部分时间组成:作业在外存后备队列上等待(作业)调度的时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间,以及进程等待I/O操作完成的时间。每个用户都希望自己的作业周转时间最短。平均周转时间、平均带权周转时间设系统中每个作业的周转时间为Ti,系统提供服务时间为Ts,则:平均周转时间为:带权周转时间为:W=T/Ts平均带权周转时间为:(2) 响应时间快响应时间:是从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间,或者说,直到屏幕上显示出结

12、果为止的一段时间间隔。包括三部分时间:从键盘输入的请求信息传送到处理机的时间,处理机对请求信息进行处理的时间,以及将所形成的响应信息回送到终端显示器的时间。 常把响应时间的长短用来评价分时系统的性能。(3) 截止时间的保证截止时间:是指某任务必须开始执行的最迟时间,或必须完成的最迟时间。对于严格的实时系统,其调度方式和调度算法必须能保证这一点,否则将可能造成难以预料的后果。所以这是评价实时系统性能的重要指标,更是选择实时调度算法的重要准则。 (4) 优先权准则在批处理、分时和实时系统中选择调度算法时,都可遵循优先权准则,以便让某些紧急的作业能得到及时处理。在要求较严格的场合,往往还须选择抢占式

13、调度方式,才能保证紧急作业得到及时处理。2. 面向系统的准则(1) 系统吞吐量高。(2) 处理机利用率好。(3) 各类资源的平衡利用。(1) 系统吞吐量高系统吞吐量:是在给定时间段内系统完成作业的数量。或在单位时间内系统所完成的作业数。这是用于评价批处理系统性能的另一个重要指标,是选择批处理作业调度的重要准则。(2) 处理机利用率好大、中型多用户系统,由于CPU价格十分昂贵,致使处理机的利用率成为衡量系统性能的十分重要的指标。调度方式和算法对处理机的利用率,起着十分重要的作用。在调度时应使处理机尽量的忙,充分利用CPU资源。(3) 各类资源的平衡利用在大、中型系统中,不仅要使处理机的利用率高,

14、而且还应能有效地利用其它各类资源,如内存、外存和I/O设备等。选择适当的调度方式和算法,能够保持系统中各类资源都处于忙碌状态。但对于微型机和某些实时系统,该准则并不重要。3.2 调度算法在OS中调度的实质是一种资源分配。调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法。目前存在的多种调度算法中,有的适用于作业调度,有的适用于进程调度,但也有些既可用于作业调度,也可用于进程调度。先来先服务短作业(进程)优先调度算法类高优先权优先调度算法类基于时间片的轮转调度算法类 3.2.1 先来先服务和短作业(进程)优先调度算法先来先服务(FCFS:F

15、irst Come First Serve)短作业(进程)优先(Shortest Job/Process First) 1. 先来先服务调度算法FCFS调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用FCFS算法时,每次调度都是从后备作业队列中,选择一个或多个最先进入该队列的作业,并执行之。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中,选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该算法比较有利于长作业(进程),而不利于短作业(进程)。FCFS调度算法调度示例下表列出了A、B、C、D四个作业分别到达系统的时间、要求服务的时间,请计算开始执行的时间及各自的完成时间,并计算出各自的周转时间和带权周转时间。从上例可以看出,短作业C的带权周转时间竟高达100,这是不能容忍的;而长作业D的带权周转时间仅为1.99。据此可知,FCFS调度算法有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业(进程)。CPU繁忙型作业,是指该类作业需要大量的CPU时间进行计算,而很少请求I/O。通常的科学计算便属于CPU繁忙型作业。I/O繁忙型作业,是指CPU进行处理时,需频繁地请求I/O。目前的大多数事务处理都属于I/O繁忙型作业。2. 短作业(进程)优先调

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号