第7课作业调度算法_第1页
第7课作业调度算法_第2页
第7课作业调度算法_第3页
第7课作业调度算法_第4页
第7课作业调度算法_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统第7课作业调度算法内容回顾:进程和线程间的几点不同地址空间:不同进程的地址空间相互独立,进程各线程共享一个地址空间。通信关系:不同进程间使用系统提供的进程通信机制;同一进程各线程直接通过访问共享的进程地址空间来实现。调度切换:不同进程间切换要花很大开销,同一进程的线程切换开销很少。PCB数据程序用户栈系统栈寄存器单线程进程模型进程PCB数据程序用户栈系统栈寄存器TCB用户栈系统栈寄存器TCB用户栈系统栈寄存器TCB线程1线程2线程3进程多线程进程模型(a)(b)内容回顾:用户与操作系统的程序接口操作系统管理了计算机的软硬件资源,当用户要使用这些资源时必须通过操作系统来实现,操作系统通过系统调用命令来响应用户的请求,这就是操作系统提供的程序接口。操作系统预先编写了很多不同功能的子程序,这子程序完成相应资源的具体管理,用户在自己的程序里通过调用这些子程序来得到系统提供的相应功能服务。这些子程序就是“系统功能调用程序”,简称“系统调用”。特权指令与非特权指令把CPU的指令分为两类:一类是操作系统和用户都能使用的指令,称为“非特权指令”;一类是只能由操作系统使用的指令,称为“特权指令”。管态与目态计算机可以执行这些“特权指令”的状态,我们称之为“管态”。管态下可以执行包括特权指令在内任何指令。当系统处于只能执行用户自己程序而不能执行特权指令的状态时,我们称之为“目态”。CUP处于“管态”还是“目态”由硬件系统自动识别。内容回顾内容回顾访管指令用户程序在执行的过程中,通过系统提供的访管指令由“目态”转为“管态”,从而实现特殊指令的执行,而达到实现系统调用的目的。访管指令是一条非特权指令,功能是执行它就会产生一个软中断,促使中央处理机由目态转为管态,进入操作系统。内容回顾:作业作业:指用户要求计算机系统做的一个计算问题或一次事务处理的完整过程。从作业提交给系统,到作业运行完毕被撤消,是一个作业的生命期。在这期间,作业随着自己的推进及环境变化,状态也在不断变化。内容回顾:作业的生命期作业的四个基本状态后备作业内容回顾:作业调度按某种规则从后备作业队列里挑选作业进入内存,参与对处理机的竞争,称为作业调度,它由作业调度程序完成。所采用的规则,称作业调度算法。处理机调度高级调度(作业调度)低级调度(进程调度)今日内容选择作业调度算法要考虑的要素作业调度原则衡量作业调度算法优劣的指标调度算法的详细讲解先来先服务作业调度算法短作业优先作业调度算法响应比高者优先作业调度算法选择作业调度算法要考虑的要素设计目标作业调度算法要与系统的整体设计目标一致,如批处理系统应考虑的是提高计算机效率和增加系统的吞吐能力;分时系统应考虑的是对用户的请求响应时间;实时系统应考虑信息的准确性以及保证及时响应。选择作业调度算法要考虑的要素

资源利用率均衡的资源利用率是评价系统性能优劣的重要指标。在选择作业调度算法时,在考虑系统设计目标的前提下,应最大限度地发挥各种资源的效能,注意考虑系统资源的均衡使用,使“I/O繁忙”的作业与“CPU繁忙”的作业搭配调度,例如将科学计算型(CPU型)作业和数据处理型(输入输出型)作业搭配运行就是一种方法。选择作业调度算法要考虑的要素作业的周转时间设法缩短作业的周转时间以应保证提交的作业在规定的截止时间内完成,提高衡量调度性能的指标大多数操作系统都采用折中方案,尽量选择算法比较简单的调度算法。作业调度原则尽可能使后备作业队列中每个作业都得到公平对待,避免一个作业无限期地延迟得不到执行。使进入内存中的作业均衡地使用系统各种资源,避免出现有的资源空闲,有的资源被争抢的局面。尽可能提高吞吐能力,在单位时间内为多个作业提供服务。

衡量作业调度算法优劣的指标CPU利用率好的算法应尽可能地提高CPU利用率。CPU利用率=CPU有效工作时间/CPU总的运行时间吞吐量指单位时间内平均完成的作业数量。吞吐量=完成的作业道数/完成的时间作业周转时间作业周转时间是指一个作业从提交到完成总共花费的时间作业周转时间=作业完成时间-作业提交时间作业周转时间=作业运行时间+作业等待时间对于一批n个作业而言,它们的“平均周转时间”T应该是:

T=(T1+T2+…+Tn)/n先来先服务作业调度算法以作业进入后备队列中的先后次序作业选择作业的依据。也就是说哪个作业在后备队列中等待的时间最长,它就是下次调度选中者。但前提是这个作业的资源需求要得到满足,否则就要被推迟选中例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间完成时间周转时间例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间000完成时间周转时间例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间0000完成时间周转时间24例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间00002427完成时间周转时间242730例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间00002427完成时间周转时间242730242730例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用先来先服务的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433开始时间024完成时间周转时间24273024273024这三个作业的平均周转时间为:

T=(T1+T2+T3)/3=(24+27+30)/3=81/3=27例:有五个作业如下表所示,采用先来先服务调度算法算出每个作业的周转时间作业到达时间所需CPU时间18:00628:02238:03748:05358:064例:有五个作业如下表所示,采用先来先服务调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:00628:02238:03748:05358:064例:有五个作业如下表所示,采用先来先服务调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:0628:02238:03748:05358:064例:有五个作业如下表所示,采用先来先服务调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:0628:0228:068:0838:0378:088:1548:0538:158:1858:0648:188:22例:有五个作业如下表所示,采用先来先服务调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:06628:0228:068:08638:0378:088:151248:0538:158:181358:0648:188:2216这五个作业的平均周转时间为:(6+6+12+13+16)/5=10.6。短作业优先作业调度算法基本思想:要求每个用户对自己作业所需CPU时间做出估计,填入作业说明书。作业调度程序工作时,是从后备作业队列里挑需CPU时间最少、且资源能得到满足的作业进入内存投入运行。例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用短作业优先的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用短作业优先的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间000完成时间周转时间作业所需CPU时间1232433完成时间周转时间例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用短作业优先的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间0000完成时间周转时间33作业所需CPU时间1232433完成时间周转时间例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用短作业优先的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间00003完成时间周转时间3636作业所需CPU时间1232433完成时间周转时间例:有3个作业,所需CPU时间如下表所示。按1、2、3的顺序,同时提交给系统,采用短作业优先的作业调度算法。求每个作业的周转时间及它们的平均周转时间。作业所需CPU时间1232433提交时间开始时间000603完成时间周转时间30363036作业所需CPU时间1232433完成时间周转时间这三个作业的平均周转时间为:

T=(T1+T2+T3)/3=(30+3+6)/3=13例:有五个作业如下表所示,采用短作业优先调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:00628:02238:03748:05358:064例:有五个作业如下表所示,采用短作业优先调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:0628:02238:03748:05358:064例:有五个作业如下表所示,采用短作业优先调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:0628:0228:068:0838:03748:05358:064例:有五个作业如下表所示,采用短作业优先调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:0628:0228:068:0838:0378:158:2248:0538:088:1158:0648:118:15例:有五个作业如下表所示,采用短作业优先调度算法算出每个作业的周转时间作业到达时间所需CPU时间开始时间完成时间周转时间18:0068:008:06628:0228:068:08638:0378:158:221948:0538:088:11658:0648:118:159这五个作业的平均周转时间为:(6+6+19+6+9)/5=9.2。响应比高者优先作业调度算法基本思想:在进行作业调度时,先计算每个作业当时的响应比:响应比=(已等待时间)/(所需CPU时间)

然后从中挑选出响应比最高的作业作为调度的对象。作业到达时间所需时间A8:005B8:023C8:031D8:042例:有四个作业如下表所示,采用响应比高者优先调度算法算出作业的周转时间在刚开始时,只有作业A,因此先运行作业A。当A于8:05运行完成时,其它三个作业B、C、D都已到达,按响应比高者优先算法要求,现在要计算这三个作业的响应比。此时在8:05时状态如下表所示:作业到达时间所需时间等待时间响应比B8:023C8:031D8:042此时在8:05时状态如下表所示:作业到达时间所需时间等待时间响应比B8:0233C8:0312D8:0421此时在8:05时状态如下表所示:作业到达时间所需时间等待时间响应比B8:02331C8:03122D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论