UnixLunix和Windows的进程调度策略比较.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UnixLunix和Windows的进程调度策略比较

研究Unix、Lunix和Windows等3种操作系统的进程调度策略摘要:本文对Unix、Lunix和Windows三种操作系统的进程调度策略进行了详细的分析。Lunix系统对普通进程的调度策略-动态优先调度,对于实时进程采用了两种调度策略,FIFO(先来先服务调度)和RR(时间片轮转调度);UNIX系统的进程调度采用的算法是,多级反馈列轮转调度法;而Windows 系统其调度方式比较复杂,它的处理器调度的调度单位是线程而不是进程,是基于优先级的抢先式多处理器调度,依据优先级和分配时间片来调度。最后对它们的进程调度方式进行了对比研究,分析出了各种调度算法的优缺点、以及在哪些情况下用什么样的调度方式最合适。关键词:操作系统 进程 调度算法 实时优先级引言:无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。进程调的实质是资源的分配,如何使系统能够保持较短的响应时间和较高的吞吐量,如何在多个可运行的进程中选取一个最值得运行的进程投入运行是调度器的主要任务。进程调度包括两个方面的内容:何时分配CPU 时间(调度时机)即调度器什么时候启动;如何选择进程(调度算法)即调度器该怎么做。进程调度有以下两种基本方式:非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直/wiki/%E8%BF%90%E8%A1%8C \o 运行运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。Linux进程调度策略调度程序要在所有处于可运行状态的进程中选择最值得运行的进程投入运行。在每个进程的task_struct 结构中有:policy、priority、counter、rt_priority,这4 项就是选择进程的依据。policy是进程的调度策略,用来区分两种进程-实时和普通;priority是进程(实时和普通)的优先级;counter 是进程剩余的时间片,它的大小完全由priority决定;rt_priority是实时优先级,这是实时进程所特有的,用于实时进程间的选择。.首先,Linux 根据policy从整体上区分实时进程和普通进程,因为实时进程和普通进程度调度是不同的,它们两者之间,实时进程应该先于普通进程而运行,然后,对于同一类型的不同进程,采用不同的标准来选择进程:1.普通进程的调度策略-动态优先调度。当policy 的值为SCHED_OTHER 时,是普通的用户进程,采用动态优先调度,选择进程的依据是进程counter 的大小。进程创建时,优先级priority 被赋一个初值,一般为0~70 之间的数字,这个数字同时也是计数器counter 的初值,进程创建时两者是相等的。priority 代表分配给该进程的时间片,counter 表示该进程剩余的时间片。在进程运行过程中,counter 不断减少,而priority 保持不变,以便在counter 变为0 的时候(该进程用完了所分配的时间片)对counter 重新赋值。当一个普通进程的时间片用完以后,并不马上用priority 对counter 进行赋值,只有所有处于可运行状态的普通进程的时间(p-counter==0)都用完了以后,才用priority 对counter重新赋值,这个普通进程才有了再次被调度的机会。在普通进程运行过程中,counter 的减小给了其他进程得以运行的机会,即进程正在运行时可以被其他counter 值更大的进程中断,但只有当该进程的counter 值减为0 时才完全放弃对CPU 的使用,这就相当于优先级在动态变化,所以称之为动态优先调度。2. 对于实时进程,Linux采用了两种调度策略,即FIFO(先来先服务调度)和RR(时间片轮转调度)。 图1 时间片轮转调度示意图因为实时进程具有一定程度的紧迫性,所以衡量一个实时进程是否应该运行,Linux采用了一个比较固定的标准。实时进程的counter只是用来表示该进程的剩余时间片,并不作为衡量它是否值得运行的标准。实时进程的counter只是用来表示该进程的剩余时间片,并不作为衡量它是否值得运行的标准,这和普通进程是有区别的。上面已经看到,每个进程有两个优先级,实时优先级就是用来衡量实时进程是否值得运行的。Unix进程调度策略UNIX系统是单纯的分时系统,所以没有设置作业调度。UNIX系统的进程调度采用的算法是,多级反馈列轮转调度法。其核心思想是先从最高休先级就绪队列中取出排

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档