- 1、本文档共139页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程调度的原则 调度目标和原则: 在多道程序环境下,进程数目往往多于处理机数目,致使它们争用处理机。这就要求系统能够按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。分配处理机的任务是由进程调度程序完成的。由于处理机是最重要的计算机资源,提高处理机的利用率及改善系统性能(吞吐量、响应时间)在很大程度上取决于进程调度性能的好坏,因而进程调度便成为系统设计的中心问题之一。 2.3.4 进程调度算法 先进先出(FIFO)调度 优先数法 时间片轮转法(RR) 多队列反馈法 最高响应比优先法 优先数法 按某种原则对就绪队列中的每个进程赋予一个优先级,进程调度时则根据进程的优先级确定选择顺序,即把处理机分配给就绪队列中优先级高的进程。 (1)静态优先数法 静态优先数法是指在进程创建时就赋给它一个优先数。进程在整个生命周期内其优先数不再变化 。 确定进程的优先数的原则: 1)按照进程的类型确定 2)按照进程使用资源的类型和数量确定 3)按照进程长度确定,短作业优先于长作业 4)按用户要求,由用户高价购买作业优先权 3.时间片轮转法(RR) 4.多队列反馈法 把就绪进程按优先级排成多个队列,同队列的进程具有相同的时间片。高优先级队列的时间片比低优先级队列的小 。 合理的临界资源使用: 1 ) 一次只能允许一个进程进入空闲的临界区; 2) 如已有进程进入临界区,其它进程必须等待; 3) 进程在临界区应当限定时间; 4) 无法进入临界区的进程,应当让出CPU。 * * * * * * * * * * * * * * * * * * * * * * * 第二章 进程管理 当采用SHCED_RR策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平 SHCED_RR和SCHED_FIFO的不同: 适用于短小的实时进程 SCHED_FIFO:一旦占用CPU则一直运行。直到有更高优先级进程到达或自己放弃。 第二章 进程管理 对于相同优先级的实时进程 (根据优先级计算的调度权值是一样的) FIFO必须等待该进程主动放弃后才可 以运行这个优先级相同的进程。 RR可以让每个进程都执行一段时间。 第二章 进程管理 RR和FIFO都只用于实时任务 SHCED_RR和SCHED_FIFO的相同点: 创建时优先级大于0 (1-99) 按照可抢占优先级调度算法进行 就绪态的实时任务立即抢占非实时进程 第二章 进程管理 则将当前进程的need_reched 域置位 将来某个时刻才真正执行调度程序 某一时刻,可运行态进程中就会有优先级高于当前进程的进程 调度程序为每个处于可运行状态的进程赋予一个权值,以这个权值作为优先级。 每次时钟中断处理程序将当前进程的ounter的值减1 第二章 进程管理 当一个普通进程的时间片用完以后,并不马上用nice对counter进行赋值 用完上个时间片的普通进程才有了再次被调度的机会 只有所有处于可运行状态的普通进程的时间片(p-counter==0)都用完了以后,才用pnice对counter重新赋值 第二章 进程管理 所有进程都采用分时调度策略时 2.根据各进程的nice值确定执行的时间片(counter) 1.创建任务指定采用分时调度策略,并指定优先级nice值(-20~19) 3.若不等待资源,则将进程加入到就绪队列 4.计算每个就绪进程动态优先数(counter+20-nice), 选择最大者运行 时间片用完后(counter减至0)或者主动放弃cpu时,进程被放入就绪队列或等待队列末尾 5.调度程序重复上面计算过程(转到第4步) 6.当所有就绪进程的count都为0时,重复第2步 第二章 进程管理 所有进程都采用FIFO调度策略时 1.创建进程时指定采用FIFO,并设置实时优先级 rt_priority(1-99) 2.如果没有等待资源,则将该任务加入到就绪队列中 3.根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的进程使用CPU,该FIFO进程将一直占有CPU直到有优先级更高的任务就绪(即使优先级相同也不行)或者主动放弃(等待资源)。 4.若当前进程因等待资源而主动放弃CPU,则进入等待队列,此时重复第3步 第二章 进程管理 所有任务都采用RR调度策略时 1.进程创建时指定调度参数为RR,并设
文档评论(0)