- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章处理机管-3
第2章 处理机管理-3 【学习目标? 掌握: 处理机的调度算法 、进程调度 【学习重点、难点? 进程的调度与管理 1、掌握原语的概念。 2、掌握进程调度算法的基本思想。 2.3 进程的调度与管理 2.3.1 进程调度算法 常用的进程调度算法有: 先来先服务、 时间片轮转、 优先数 多级队列 1.先来先服务调度算法 先来先服务调度算法的基本思想是: 以到达就绪队列的先后次序为标准来选择占用处理机的进程。 一个进程一旦占有处理机,就一直使用下去,直至正常结束或因等待某事件的发生而让出处理机。 就绪队列 先来先服务调度算法的示意图。 先来先服务可能是最为简单的一种调度算法。 从次序的角度看,它对在就绪队列中的任何进程不偏不倚,因此是公平的。 但从周转的角度看,对要求CPU时间短的进程或I/O请求频繁的进程来讲,就显得不公平了。 例如,现在就绪队列中依次来了3个进程A、B、C, A进程需要运行24ms, B和 C各需要运行3ms。 按照先来先服务的顺序,进程A、B、C。于是B要在24ms后才能得到运行,C要在27ms后才能得到运行,显然B和C等待的时间太长。按照这种调度顺序,它们H个的平均等待时间是: ( 0+24+27)/3=17ms。 假定换一种调度顺序,比如是B、C、A,那么3个的平均等待时间是:(0+3+6)/3=3ms。 2.时间片轮转调度算法 基本思想是:为就绪队列中的每一个进程分配一个称为“时间片”的时间段。在使用完一个时间片后,即使进程还没有运行完毕,也要强迫其释放处理机,让给另一个进程使用。它自己则返回到就绪队列末尾,排队等待下一次调度的到来。 采用这种调度算法时,对就绪队列的管理与先来先服务完全相同。主要区别是进程每次占用处理机的时间由时间片决定。 图2-9是时间片轮转调度算法的示意图。 时间片轮转调度算法经常用在分时操作系统中 用户通过终端设备与计算机系统进行交互会话。 时间片大小的设定是一个影响系统效率发挥的重要因素: 时间片如果设定得太大,大到一个进程足以完成其全部工作所需要的时间,则该算法就退化为先来先服务; 若时间片设定得太小,则调度程序的执行频率上升,系统耗费在调度上的时间增加,用于运行用户程序的时间就减少了。 粗略地看,时间片值应略大于大多数分时用户的询问时间。即当一个交互式终端在工作时,给每个进程的时间片情应能使它足以产生一个输入/输出要求为最好。 例2.2 有一个分时系统,允许10个终端用户同时工作,时间片设定为100ms。若对用户的每一个请求,CPU将耗费300ms的时间进行处理,做出回答。试问终端用户提出两次请求的时间间隔最少是多少? 一解:因为时间片长度是100ms,有10个终端用户同时工作,所以轮流一次需要花费1s。这就是说在1S内,一个用户可以获得100ms的CPU时间。又因为对终端用户的每一次请求,CPU都要耗费300ms进行处理后才能做出应答,于是终端用户要获得3个时间片,才能得到系统做出的回应。所以,终端用户两次请求的时间间隔最少应为3S,在此期间内提出的情求,系统就无暇顾及,不可能予以处理。 3.优先数调度算法 优先数调度算法的基本思想是: 为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利; 如果几个进程的优先数相同,则对它们实行先来先服务的调度。 采用这种调度算法时,就绪队列应该按照过程的优先数大小来排列。新到达就绪队列进程的PCB,应该根据它的优先数插入到队列的适当位置。 进行调度时,总是把CPU分配给就绪队列中的第1个进程, 优先级是由优先数确定的。在操作系统中,常是优先数越小者优先级越大。 如何确定进程的优先数(也就是进程的优先级)从如下5个方面考虑: 1)根据进程的类型。比如,系统进程和用户进程。系统进程完成的任务是提供系统服务,因此,给予系统进程较高的优先数,也能够提高系统的工作效率。 2)根据进程执行任务的重要性和紧迫性。 3)根据进程程序的性质。 一个CPU繁忙的进程,由于需要占用较长的运行时间,影响系统整体效率的发挥,因此只能给予较低的优先数。一个I/O繁忙的进程,给予它较高的优先数后,就能充分发挥CPU和外部设备之间的并行工作能力。 4)根据对资源的要求。 系统资源有处理机、内存储器和外部设备等。 可以按照一个进程所需资源的类型和数量,确定它的优先数。比如给予占用CPU时间短或内存容量少的进程以较高的优先数,这样可以提高系统的吞吐量。 5)根据用户的请求。 系统可以根据用户的请求,给予它的作业及其相应进程很高的优先数,作“加急”处理。 进程的优先数可以分为静态和动态两类。 所谓静态,即指在进程的整个生命期内优先数保持不变。其优点是实现简单,但欠灵活。 所谓动态,是指在进程的整个生命期内可随时修正它
文档评论(0)