




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于调度算法 【例1】下表给出作业l,2,3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法,试问作业调度次序和平均周转时间各为多少?(时间单位:小时,以十进制进行计算。)作业号 提交时间 运行时间 1 2 3 0.0 0.4 1.0 8.0 4.0 1.0 分析解这样的题关键是要根据系统采用的调度算法,弄清系统中各道作业随时间的推进情况。我们用一个作业执行时间图来形象地表示作业的执行情况,帮助我们理解此题。 采用先来先服务调度算法,是按照作业提交的先后次序挑选作业,先进入的作业优先被挑选。然后按照“排队买票”的办法,依次选择作业。其作业执行时间图如下:采用短作业优先调度算法,作业调度时根据作业的运行时间,优先选择计算时间短且资源能得满足的作业。其作业执行时间图如下:由于作业1,2,3是依次到来的,所以当开始时系统中只有作业1,于是作业1先被选中。在8.0时刻,作业1运行完成,这时系统中有两道作业在等待调度,作业2和作业3,按照短作业优先调度算法,作业3只要运行1个时间单位,而作业2要运行4个时间单位,于是作业3被优先选中,所以作业3先运行。待作业3运行完毕,最后运行作业2。作业调度的次序是1,3,2。另外,要记住以下公式:作业i的周转时间Ti作业完成时间作业提交时间 系统中个作业的平均周转时间 ,其中Ti为作业i的周转时间。 解:采用先来先服务调度策略,则调度次序为l、2、3。 作业号提交时间运行时间开始时间完成时间周转时间10.08.00.08.08.020.44.08.012.011.631.01.012.013.012.0平均周转时间T(811.612)/310.53 采用短作业优先调度策略,则调度次序为l、3、2。 作业号提交时间运行时间开始时间完成时间周转时间10.08.00.08.08.031.01.08.09.08.020.44.09.013.012.6平均周转时间T(8812.6)/39.53 思考题1 请同学们判断这句话:作业一旦被作业调度程序选中,即占有了CPU。( )提示:需要清楚作业调度和进程调度的区别。 【例2】考虑下述页面走向:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6当内存块数量分别为3时,试问FIFO、LRU、OPT这三种置换算法的缺页次数各是多少? 答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。当内存块数量为3时: 发生缺页中断的次数为16。在FIFO算法中,先进入内存的页面被先换出。当页6要调入时,内存的状态为4、1、5,考查页6之前调入的页面,分别为5、1、2、4,可见4为最先进入内存的,本次应换出,然后把页6调入内存。发生缺页中断的次数为15。在LRU算法中,最近最少使用的页面被先换出。当页6要调入时,内存的状态为5、2、1,考查页6之前调入的页面,分别为5、1、2,可见2为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。 发生缺页中断的次数为11。在OPT算法中,在最远的将来才被访问的页面被先换出。当页6要调入时,内存的状态为1、2、5,考查页6后面要调入的页面,分别为2、1、2、,可见5为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。 【例3】在一个单道的程序设计系统中,有3个作业J1、J2、J3,它们到达输入井的时间分别为8:50、9:00、9:30,它们需要执行的时间分别为1.5小时、0.4小时、1小时。系统在10:00按响应比高者优先算法对它们进行调度,请回答: (1)作业被选中执行的次序是什么?(2)三个作业被选中时的响应比分别是多少?分析 响应比作业周转时间/作业运行时间 作业等待时间/作业运行时间系统在10:00,计算作业的响应比:以J1为例,它的作业计算时间是1.5小时,即90分钟;J1从8:50到达输入井,在10:00时刻,J1的等待时间为70分钟,因此作业J1的响应比为:170分钟/90分钟=1.77 同理,J2:160分钟/24分钟=3.5 J3:130分钟/60分钟=1.5因此按照响应比高者优先算法,优先调度J2。在10:24,J2完成。这时计算J1、J3的响应比:J1:1(7024)分钟/90分钟=2.04 J3:1(3024)分钟/60分钟=1.9 按照响应比高者优先算法,优先调度J1。在11:54,J1完成,系统调度J3,J3的响应比为1(302490)分钟/60分钟=3.4 因此,作业被选中执行的次序是J2、J1、J3。三个作业被选中时的响应比分别是:J1,2.04;J2,3.5;J3,3.4。解:(1)作业被选中执行的次序是J2、J1、J3。(2)三个作业被选中时的响应比分别是:J1,1.04;J2,2.5;J3,2.4。思考题2 某作业的提交时间为10:30,需要运行的时间为1小时,假设11:00开始调度,它的响应比是 。【例4】设有进程A、B、C、D依次进入就绪队列(相隔一个时间单位),它们的优先级(优先数大的优先级较高)如下表所示:进程 CPU时间 优先数 A 20 3 B 15 1 C 8 4 D 10 3 试问采用“先来先服务”、“静态优先数法”调度算法(注:优先数大的优先级高),选中进程的执行次序。解:采用先来先服务调度算法,按照进程进入就绪队列的先后次序占有CPU,其执行次序是A-B-C-D。采用静态优先数法,进程A最先就绪,在0时刻先占有CPU运行,随后1时刻进程B进入就绪队列,2时刻进程C进入就绪队列,3时刻进程D进入就绪队列。由于采用静态优先数法,不容许随时间的推移改变进程的优先级,所以当进程A运行结束时,系统的就绪队列中有B、C、D三个进程,而进程C优先级最高,于是选中C;这样分析下去,进程的执行次序是A-C-D-B。思考题3 时间片轮转调度算法是为了( )。A多个终端都能得到系统的及时响应 B先来先服务C优先级高的进程先使用CPU D紧急事件优先处理 参考解答 思考题1:错误。作业被作业调度程序选中,说明作业处于运行状态,即该作业进入内存并以进程的形式存在于系统中,但属于该作业的进程可能处于运行、就绪和等待状态,只有处于运行状态的进程才能占有处理机,而其余两种状态的进程并不占有处理机。 作业调度和进程调度的区别: 一个作业从进入系统到最后完成,一般至少要经历两级调度:作业调度和进程调度。 作业调度是宏观上的高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。 进程调度是微观上的低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。一般的操作系统都必须有进程调度。 可见在多道系统中,作业调度与进程调度是相互配合来实现多道作业的并行执行的。两者的关系可用下图表示。思考题2:1.5(注:作业等待0.5小时,运行1小时,响应比=10.5/1=1.5)思考题3:A【例5】考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问: (1)逻辑地址需要多少二进制位表示? (2)物理地址需要多少二进制位表示? 分析 在分页存储管理中,逻辑地址结构如下图所示。 它由两个部分组成:前一部分表示该地址所在页面的页号p;后一部分表示页内地址(页内位移)d。页号的地址位数决定了页的多少,假设页号有20位,则地址空间中最多可容纳的页面数为220,即1MB个页面。页内地址位数确定了每页的大小,若页内地址为12位,则每页大小为212,即2KB。 同理,物理地址中块号的地址位数决定了块的数量。由于页式存储管理内存空间块的大小与页面大小相同,所以物理地址中块内地址与逻辑地址中的页内地址位数相同。 解 因为页面数为8=23,故需要3位二进制数表示。每页有1024个字节,1024=210,于是页内地址需要10位二进制数表示。32个物理块,需要5位二进制数表示(32=25)。 (1)页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示。 (2)页的物理地址由块号和页内地址的拼接,所以需要5+10=15位二进制数表示。 【例6】若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。000B 页号 块号 0 1 2 3 2 3 1 0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。V操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。一般来说,信号量S0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。利用信号量和PV操作实现进程互斥的一般模型是: 进程P1 进程P2 进程Pn P(S); P(S); P(S);临界区; 临界区; 临界区;V(S); V(S); V(S); 其中信号量S用于互斥,初值为1。使用PV操作实现进程互斥时应该注意的是:(1)每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。(2)P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。(3)互斥信号量的初值一般为1。利用信号量和PV操作实现进程同步PV操作是典型的同步机制之一。用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。用PV操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。使用PV操作实现进程同步时应该注意的是:(1)分析进程间的制约关系,确定信号量种类。在保持进程间有正确的同步关系情况下,哪个进程先执行,哪些进程后执行,彼此间通过什么资源(信号量)进行协调,从而明确要设置哪些信号量。(2)信号量的初值与相应资源的数量有关,也与P、V操作在程序代码中出现的位置有关。(3)同一信号量的P、V操作要成对出现,但它们分别在不同的进程代码中。【例10】生产者-消费者问题在多道程序环境下,进程同步是一个十分重要又令人感兴趣的问题,而生产者-消费者问题是其中一个有代表性的进程同步问题。下面我们给出了各种情况下的生产者-消费者问题,深入地分析和透彻地理解这个例子,对于全面解决操作系统内的同步、互斥问题将有很大帮助。(1)一个生产者,一个消费者,公用一个缓冲区。定义两个同步信号量:empty表示缓冲区是否为空,初值为1。 full表示缓冲区中是否为满,初值为0。 生产者进程while(TRUE)生产一个产品;P(empty);产品送往Buffer;V(full);消费者进程while(True)P(full);从Buffer取出一个产品;V(empty);消费该产品;(2)一个生产者,一个消费者,公用n个环形缓冲区。定义两个同步信号量:empty表示缓冲区是否为空,初值为n。full表示缓冲区中是否为满,初值为0。 设缓冲区的编号为1n-1,定义两个指针in和out,分别是生产者进程和消费者进程使用的指针,指向下一个可用的缓冲区。 生产者进程while(TRUE)生产一个产品;P(empty);产品送往buffer(in);in=(in+1)mod n;V(full);消费者进程while(TRUE)P(full);从buffer(out)中取出产品;out=(out+1)mod n;V(empty);消费该产品;(3)一组生产者,一组消费者,公用n个环形缓冲区在这个问题中,不仅生产者与消费者之间要同步,而且各个生产者之间、各个消费者之间还必须互斥地访问缓冲区。定义四个信号量:empty表示缓冲区是否为空,初值为n。full表示缓冲区中是否为满,初值为0。mutex1生产者之间的互斥信号量,初值为1。mutex2消费者之间的互斥信号量,初值为1。设缓冲区的编号为1n-1,定义两个指针in和out,分别是生产者进程和消费者进程使用的指针,指向下一个可用的缓冲区。 生产者进程 while(TRUE)生产一个产品;P(empty);P(mutex1);产品送往buffer(in);in=(in+1)mod n;V(mutex1);V(full);消费者进程while(TRUE)P(full);P(mutex2);从buffer(out)中取出产品;out=(out+1)mod n;V(mutex2);V(empty);消费该产品;需要注意的是无论在生产者进程中还是在消费者进程中,两个P操作的次序不能颠倒。应先执行同步信号量的P操作,然后再执行互斥信号量的P操作,否则可能造成进程死锁。【例11】桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。 分析在本题中,爸爸、儿子、女儿共用一个盘子,盘中一次只能放一个水果。当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。本题实际上是生产者-消费者问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。 解:在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下: int S1; int Sa0; int So0; main() cobegin father(); /*父亲进程*/ son(); /*儿子进程*/ daughter(); /*女儿进程*/ coend father() while(1) P(S); 将水果放入盘中; if(放入的是桔子)V(So); else V(Sa); son() while(1) P(So); 从盘中取出桔子; V(S); 吃桔子; daughter() while(1) P(Sa); 从盘中取出苹果; V(S); 吃苹果; 思考题: 四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:(1)应定义的信号量及初值: 。(2)在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:A() B() C() D() 1; 3; 5; 7;read F; read F; read F; read F;2; 4; 6; 8; 思考题解答:(1)定义二个信号量S1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025建设工程合同纠纷涉及的常见问题
- 2025双方解除劳动合同协议书范本
- 2025年度丁二烯橡胶市场分析
- 2025年高考理科生物试题(全国卷新疆、山西适用)(学生版+解析版)
- 2025市场营销劳动合同范本
- 2025借款购车抵押合同范本
- 葡萄苗木知识培训课件
- 著名博物馆课件
- 物业保安主管考试及答案
- 2024译林版八年级英语上册Unit 1 课时3 Reading 2(分层作业)含答案
- Q∕GDW 10356-2020 三相智能电能表型式规范
- 公开课教学评价表
- 消防验收规范标准(最新完整版)19844
- 教研工作手册
- 电工电子技术基础教学大纲
- 独树一帜的中国画(课堂PPT)
- 制钵机的设计(机械CAD图纸)
- 生产设备控制程序
- 艾草深加工项目可行性研究报告写作范文
- LCM不良命名规范
- 《融资租赁业务介绍》PPT课件.ppt
评论
0/150
提交评论