计算机操作系统课件第三章教学教材.ppt
《计算机操作系统课件第三章教学教材.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统课件第三章教学教材.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机操作系统课件第三章 进程调度要解决的问题WHATWHAT:按什么原则分配按什么原则分配CPUCPU 进程调度算法进程调度算法WHENWHEN:何时分配何时分配CPUCPU 进程调度的时机进程调度的时机HOWHOW:如何分配如何分配CPUCPU CPU CPU调度过程(进程的上下文切换)调度过程(进程的上下文切换)1.高级、中级和低级调度l处理机是计算机系统中的重要资源处理机是计算机系统中的重要资源l处理机调度算法对整个计算机系统的综处理机调度算法对整个计算机系统的综合性能指标有重要影响合性能指标有重要影响l可把处理机调度分成三个层次:可把处理机调度分成三个层次:高级调度 中级调度 低级调
2、度高级调度高级调度也称为作业调度或长程调度或宏观调度也称为作业调度或长程调度或宏观调度 高级调度的时间尺度通常是分钟、小时或天高级调度的时间尺度通常是分钟、小时或天中级调度中级调度涉及进程在内外存间的交换,从存储器涉及进程在内外存间的交换,从存储器资源管理的角度来看,把进程的部分或全部换出资源管理的角度来看,把进程的部分或全部换出到外存上,可为当前运行进程的执行提供所需内到外存上,可为当前运行进程的执行提供所需内存空间,将当前进程所需部分换入到内存。指令存空间,将当前进程所需部分换入到内存。指令和数据必须在内存里才能被处理机直接访问和数据必须在内存里才能被处理机直接访问低级调度低级调度也称进程
3、调度或短程调度或微观调度,也称进程调度或短程调度或微观调度,从处理机资源分配的角度来看,处理机需要经常从处理机资源分配的角度来看,处理机需要经常选择就绪进程或线程进入运行状态,低级调度的选择就绪进程或线程进入运行状态,低级调度的时间尺度通常是毫秒级的。由于低级调度算法的时间尺度通常是毫秒级的。由于低级调度算法的频繁使用,要求在实现时做到高效频繁使用,要求在实现时做到高效2.进程调度的任务 进程调度的任务是控制协进程调度的任务是控制协调进程对调进程对CPUCPU的竞争的竞争,即按一定即按一定的调度算法从就绪队列中选中的调度算法从就绪队列中选中一个进程,把一个进程,把CPUCPU的使用权交的使用权
4、交给被选中的进程。给被选中的进程。3.确定算法的原则具有公平性具有公平性资源利用率高(特别是资源利用率高(特别是CPUCPU利用利用率)率)在交互式系统情况下要追求响应在交互式系统情况下要追求响应时间(越短越好)时间(越短越好)在批处理系统情况下要追求系统在批处理系统情况下要追求系统吞吐量吞吐量4.进程调度方式非非抢抢占占方方式式:分分派派程程序序一一旦旦把把处处理理机机分分配配给给某某进进程程后后便便让让它它一一直直运运行行下下去去,直直到到进进程程完完成成或或发发生生某某事事件件而而阻阻塞塞时时,才才把把处处理理机分配给另一个进程。机分配给另一个进程。抢抢占占方方式式:当当一一个个进进程程
5、正正在在运运行行时时,系系统统可可以以基基于于某某种种原原则则,剥剥夺夺已已分分配配给给它它的的处处理理机机,将将之之分分配配给给其其它它进进程程。抢抢占占原原则则有有:优优先先权权原原则则、短短进进程程优优先先原原则则、时时间间片片原原则。则。5.进程调度性能衡量的指标周转时间周转时间响应时间响应时间CPU-I/OCPU-I/O执行期执行期6.进程调度模型 1)只有进程调度的调度队列模型图 3-1 仅具有进程调度的调度队列模型2)具有高低级调度的调度队列模型图 3-2 具有高、低两级调度的调度队列模型3)具有三级调度的调度队列模型图 3-3 具有三级调度时的调度队列模型7.选择进程调度方式的
6、准则面面向向用用户户的的准准则则:周周转转时时间间短短;响响应应时时间间快快;截截止止时时间间的的保保证证;优优先先权准则权准则面面向向系系统统的的准准则则:系系统统吞吞吐吐量量高高;处处理理机机利利用用率率好好;各各类类资资源源的的平平衡衡利用利用3.2 3.2 进程调度算法先进先出先进先出(FIFO)(FIFO)算法算法最短最短CPUCPU运行期优先调度算法运行期优先调度算法最高优先权优先调度算法最高优先权优先调度算法 轮转法轮转法 多级反馈队列多级反馈队列 1.先进先出(FIFO)算法 该该算算法法总总是是把把处处理理机机分分配配给给最最先先进进入入就就绪绪队队列列的的进进程程,一一个个
7、进进程程一一旦旦分分得得处处理理机机,便便执执行行下下去去,直到该进程完成或阻塞时,才释放处理机。直到该进程完成或阻塞时,才释放处理机。优点优点:实现简单实现简单.缺点缺点:没考虑进程的优先级没考虑进程的优先级 2.最短CPU运行期优先调度算法该该算算法法从从就就绪绪队队列列中中选选出出“下下一一个个CPUCPU执执行行期期”最最短短的的进进程程,为为之之分分配配处理机。处理机。该该算算法法虽虽可可获获得得较较好好的的调调度度性性能能,但但难难以以准准确确地地知知道道下下一一个个CPUCPU执执行行期期,而而只只能能根根据据每每一一个个进进行行的的执执行行历历史史来来预测。预测。4.最高优先权
8、优先调度算法 该该算算法法总总是是把把处处理理机机分分配配给给就就绪绪队队列列中中具具有有最最高高优优先先权权的的进进程程。常常用用以以下下两两种种方方法法来来确确定进程的优先权定进程的优先权(优先级根据优先数来决定优先级根据优先数来决定)静静态态优优先先数数法法:静静态态优优先先权权是是在在创创建建进进程程时时确确定定的的,在在整整个个运运行行期期间间不不再再改改变变。依依据据有有:进进程程类类型型、进进程程对对资资源源的的要要求求、用用户户要要求求的的优优先先权。权。动动态态优优先先数数法法:在在进进程程创创建建时时创创立立一一个个优优先先数数,但但在在其其生生命命周周期期内内优优先先数数
9、可可以以动动态态变变化化。如如等等待时间长优先数可改待时间长优先数可改变变图 3-4 FCFS和SJF调度算法的性能 3.FCFS和SJF的性能比较 优先权的变化规律可描述为:优先权的变化规律可描述为:由由于于等等待待时时间间与与服服务务时时间间之之和和,就就是是系系统统对对该该作作业业的的响响应应时时间间,故故该该优优先先权权又又相相当当于于响应比响应比R RP P。据此,又可表示为:。据此,又可表示为:5.高响应比优先调度算法6.轮转法 把把CPUCPU划划分分成成若若干干时时间间片片,并并且且按按顺顺序序赋赋给给就就绪绪队队列列中中的的每每一一个个进进程程,进进程程轮轮流流占占有有CPU
10、CPU,当当时时间间片片用用完完时时,即即使使进进程程未未执执行行完完毕毕,系系统统也也剥剥夺夺该该进进程程的的CPUCPU,将将该该进进程程排排在在就就绪绪队队列列末末尾尾。同同时时系系统统选选择择另另一一个个进进程程运行运行简简单单轮轮转转法法:系系统统将将所所有有就就绪绪进进程程按按FIFOFIFO规规则则排排队队,按按一一定定的的时时间间间间隔隔把把处处理理机机分分配配给给队队列列中中的的进进程程。这这样样,就就绪绪队队列列中中所所有有进进程程均可获得一个时间片的处理机而运行。均可获得一个时间片的处理机而运行。多多级级队队列列方方法法:将将系系统统中中所所有有进进程程分分成成若若干干类
11、,每类为一级。类,每类为一级。7.分时系统中常用时间片轮转法时间片选择问题:固定时间片固定时间片 可变时间片可变时间片与时间片大小有关的因素:系统响应时间系统响应时间 就绪进程个数就绪进程个数 CPU CPU能力能力 1)简单轮转法的调度模型2)多队列反馈调度算法 将就绪队列分为将就绪队列分为N N级,每个就绪队列级,每个就绪队列分配给不同的时间片,队列级别越高,分配给不同的时间片,队列级别越高,时间越小,级别越低,时间片越大,最时间越小,级别越低,时间片越大,最后一级采用时间片轮转,其他队列采用后一级采用时间片轮转,其他队列采用先进先出;先进先出;系统从第一级调度,当第一系统从第一级调度,当
12、第一级为空时,系统转向第二个队列,级为空时,系统转向第二个队列,.当运行进程用完一个时间片,放当运行进程用完一个时间片,放弃弃CPUCPU时,进入下一级队列;等待进程时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列程第一次就绪时,进入第一级队列 *首先系统中设置多个就绪队列首先系统中设置多个就绪队列*每个就绪队列分配给不同时间片,优先级高的为每个就绪队列分配给不同时间片,优先级高的为第一级队列,时间片最小,随着队列级别的降低,第一级队列,时间片最小,随着队列级别的降低,时间片加大时间片加大*各个队列按照先进先出调度算
13、法各个队列按照先进先出调度算法*一个新进程就绪后进入第一级队列一个新进程就绪后进入第一级队列*进程由于等待而放弃进程由于等待而放弃CPUCPU后,进入等待队列,一后,进入等待队列,一旦等待的事件发生,则回到原来的就绪队列旦等待的事件发生,则回到原来的就绪队列*当有一个优先级更高的进程就绪时,可以抢占当有一个优先级更高的进程就绪时,可以抢占CPUCPU,被抢占进程回到原来一级就绪队列末尾,被抢占进程回到原来一级就绪队列末尾*当第一级队列空时,就去调度第二级队列,如此当第一级队列空时,就去调度第二级队列,如此类推类推*当时间片到后,进程放弃当时间片到后,进程放弃CPUCPU,回到下一级队列,回到下
14、一级队列 3)多队列反馈调度算法8.进程调度的时机当一个进程运行完毕,或由于某种错误而当一个进程运行完毕,或由于某种错误而终止运行终止运行当一个进程在运行中处于等待状态(等待当一个进程在运行中处于等待状态(等待I/OI/O)分时系统中时间片到分时系统中时间片到当有一个优先级更高的进程就绪(可抢占当有一个优先级更高的进程就绪(可抢占式)式)例如:新创建一个进程,一个等待进程变例如:新创建一个进程,一个等待进程变成就绪成就绪在进程通信中,执行中的进程执行了某种在进程通信中,执行中的进程执行了某种原语操作(原语操作(P P操作,阻塞原语,唤醒原语)操作,阻塞原语,唤醒原语)何时切换进程 只要只要OS
15、OS取得对取得对CPUCPU的控制,进程切换就可的控制,进程切换就可能发生,如能发生,如:超级用户调用超级用户调用来自程序的显式请求来自程序的显式请求(如:打开文件如:打开文件),该进程通常会被阻塞,该进程通常会被阻塞陷阱陷阱最末一条指令导致出错,会引起进程最末一条指令导致出错,会引起进程移至退出状态移至退出状态中断中断 外部因素影响当前指令的执行,控制外部因素影响当前指令的执行,控制被转移至被转移至IHIH(中断处理程序)(中断处理程序)9.引起进程调度的原因正正在在执执行行的的进进程程执执行行完完毕毕或或因因发发生生某某事事件件而不能再继续执行;而不能再继续执行;执行中的进程因提出执行中的
16、进程因提出I/OI/O请求而暂停执行;请求而暂停执行;在在进进程程通通信信或或同同步步过过程程中中执执行行了了某某种种原原语语操作如操作如P P操作、阻塞、挂起原语等;操作、阻塞、挂起原语等;在在可可抢抢占占式式调调度度中中,有有比比当当前前进进程程优优先先权权更高的进程进入就绪队列;更高的进程进入就绪队列;在时间片轮转法中,时间片完。在时间片轮转法中,时间片完。通通常常系系统统是是按按先先来来先先服服务务或或优优先先权权形形式式来来组织调度队列。组织调度队列。10.进程调度算法其其中中,RQRQ为为就就绪绪队队列列指指针针,EPEP为为运运行行队队列列指针指针。3.3 3.3 实实 时时 调
17、调 度度1.1.实现实时调度的基本条件实现实时调度的基本条件提供必要的信息提供必要的信息(就绪时间、截止时间、处理就绪时间、截止时间、处理时间、资源优先级时间、资源优先级)系统处理能力强系统处理能力强采用抢占式调度机制采用抢占式调度机制具有快速切换机制具有快速切换机制 2.实时调度算法的分类1)非抢占式调度算法:非抢占式轮转调度算法非抢占式优先调度算法2)抢占式调度算法:基于时钟中断的抢占优先调度算法 立即抢占优先权调度算法。图 3-5 实时进程调度 图 3-6 EDF算法用于非抢占调度方式 3.常用的几种实时调度算法1 1)最早截止时间优先即)最早截止时间优先即EDF(Earliest De
18、adline EDF(Earliest Deadline First)First)算法算法图 3-7 A和B任务每次必须完成的时间2)最低松弛度优先(LLF)算法 该该算算法法是是根根据据任任务务紧紧急急(或或松松弛弛)的的程程度度,来来确确定定任任务的优先级。该算法主要用于可抢占调度方式中。务的优先级。该算法主要用于可抢占调度方式中。假假如如在在一一个个实实时时系系统统中中,有有两两个个周周期期性性实实时时任任务务A A和和B B,任任务务A A要要求求每每 20 20 msms执执行行一一次次,执执行行时时间间为为 10 10 msms;任任务务B B只要求每只要求每50 ms50 ms执
19、行一次,执行时间为执行一次,执行时间为 25 ms 25 ms。在在刚刚开开始始时时(t t1 1=0)=0),A A1 1必必须须在在20ms20ms时时完完成成,而而它它本本身身运运行行又又需需 10 10 msms,可可算算出出A A1 1的的松松弛弛度度为为10ms10ms;B B1 1必必须须在在50ms50ms时时完完成成,而而它它本本身身运运行行就就需需25 25 msms,可可算算出出B B1 1的的松松弛弛度度为为25 25 msms,故故调调度度程程序序应应先先调调度度A A1 1执执行行。在在t t2 2=10=10 msms时时,A A2 2的的松松弛弛度度可可按按下下
20、式式算算出出:A A2 2的的松松弛弛度度=必必须须完完成成时时间间-其其本本身身的的运运行行时时间间-当前时间当前时间=40 ms-10 ms-10 ms=20 ms=40 ms-10 ms-10 ms=20 ms 类类似似地地,可可算算出出B1B1的的松松弛弛度度为为15ms15ms,调调度度程程序序应应选选择择B2B2运运行行。t t3=30 3=30 msms时时,A2A2的的松松弛弛度度已已减减为为0 0,B1B1的的松松弛弛度度为为15 ms15 ms,于是调度程序应抢占,于是调度程序应抢占B1B1的处理机而调度的处理机而调度A2A2运行运行图 3-8 利用ELLF算法进行调度的情
21、况3.5 产生死锁的原因和必要条件产生死锁的原因和必要条件3.5.1 3.5.1 死锁的概念死锁的概念1.1.死锁例子死锁例子:一个由于一个由于申请不同类型资源申请不同类型资源而产生死锁的例子而产生死锁的例子设设系系统统有有一一台台打打印印机机(R1)(R1)一一台台扫扫描描仪仪(R2)(R2),两两进进程共享这两台设备。程共享这两台设备。用用信信号号量量S1S1表表示示R1R1是是否否可可用用,用用信信号号量量S2S2表表示示R2R2是否可用,是否可用,S1S1、S2 S2初值为初值为1 1。死锁例子死锁例子 这这两两个个进进程程在在并并发发执执行行过过程程中中,可可能能会会发发生生死死锁锁
22、。大大家家可可以以思思考考一一下下,如如何何修改,进程才不会发生死锁。修改,进程才不会发生死锁。2.死锁概念指指多多个个进进程程因因竞竞争争共共享享资资源源而而造造成成的的一一种种僵僵局局,若若无无外外力力作作用用,这这些些进进程程都都将将永永远远不不能能再向前推进。再向前推进。即即:一一组组进进程程中中,每每个个进进程程都都无无限限等等待待被被该该组组进进程程中中另另一一进进程程所所占占有有的的资资源源,因因而而永永远远无无法法得得到到的的资资源源,这这种种现现象象称称为为进进程程死死锁锁,这一组进程就称为死锁进程。这一组进程就称为死锁进程。3.关于死锁的一些结论关于死锁的一些结论参与死锁的
23、进程最少是两个参与死锁的进程最少是两个 参与死锁的进程至少有两个已经占有参与死锁的进程至少有两个已经占有资源资源参与死锁的所有进程都在等待资源参与死锁的所有进程都在等待资源参与死锁的进程是当前系统中所有进参与死锁的进程是当前系统中所有进程的子集程的子集注:如果死锁发生,会浪费大量系统资注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。源,甚至导致系统崩溃。4.永久性资源和临时性资源永久性资源:可以被多个进程多次使永久性资源:可以被多个进程多次使用(可再用资源)用(可再用资源)可抢占资源可抢占资源(如如CPUCPU和内存和内存)不可抢占资源(如打印机、磁带机)不可抢占资源(如打印机、磁带机
24、)临时性资源:只可使用一次的资源;临时性资源:只可使用一次的资源;如信号量如信号量,中断信号,同步信号等(可中断信号,同步信号等(可消耗性资源)消耗性资源)“申请申请-分配分配-使用使用-释放释放”模式模式3.5.2 产生死锁的原因1.1.竞争系统资源竞争系统资源2.2.进程的推进顺序不当进程的推进顺序不当 1.1.竞争系统资源 若若系系统统中中只只有有一一台台打打印印机机R1R1和和一一台台读读卡卡机机R2R2,可可供供进进程程P1P1和和P2P2共共享享。若若形形成成环路等待环路等待,这样会产生死锁,这样会产生死锁。2.2.进程的推进顺序不当在在进进程程P1P1和和P2P2并并发发执执行行
25、时时,按按照照左左图图曲曲线线所所示示顺顺序序推推进进时时,两两进进程程会会顺顺利利完完成成,我我们们称称这这种种推推进进顺顺序序是是合合法法的的。若若按按曲曲线线的的顺顺序序推推进进时时,进进入入不不安安全全区区D D内内,两进程再推进会产生死锁。两进程再推进会产生死锁。3.5.3 产生死锁的必要条件互斥条件互斥条件(资源独占)(资源独占)请请求求和和保保持持条条件件(部部分分分分配配,占有申请)占有申请)不剥夺条件(不剥夺条件(不可强占)不可强占)环路等待条件。环路等待条件。解决死锁的基本办法预防死锁避免死锁检测死锁解除死锁3.6 预防死锁的方法和避免死锁 1.1.预防死锁的方法预防死锁的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 课件 第三 教学 教材
限制150内