Unix、Lunix和Windows的进程调度策略比较

Unix、Lunix和Windows的进程调度策略比较

ID:37714072

大小:79.72 KB

页数:12页

时间:2019-05-29

Unix、Lunix和Windows的进程调度策略比较_第1页
Unix、Lunix和Windows的进程调度策略比较_第2页
Unix、Lunix和Windows的进程调度策略比较_第3页
Unix、Lunix和Windows的进程调度策略比较_第4页
Unix、Lunix和Windows的进程调度策略比较_第5页
资源描述:

《Unix、Lunix和Windows的进程调度策略比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、研究Unix、Lunix和Windows等3种操作系统的进程调度策略摘要:本文对Unix、Lunix和Windows三种操作系统的进程调度策略进行了详细的分析。Lunix系统对普通进程的调度策略-动态优先调度,对于实时进程采用了两种调度策略,FIFO(先来先服务调度)和RR(时间片轮转调度);UNIX系统的进程调度采用的算法是,多级反馈列轮转调度法;而Windows系统其调度方式比较复杂,它的处理器调度的调度单位是线程而不是进程,是基于优先级的抢先式多处理器调度,依据优先级和分配时间片来调度。最后对它们的进程调度方式进行了对比研究,分析出了各种调度

2、算法的优缺点、以及在哪些情况下用什么样的调度方式最合适。关键词:操作系统进程调度算法实时优先级引言:无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。进程调的实质是资源的分配,如何使系统能够保持较短的响应时间和较高的吞吐量,如何在多个可运行的进程中选取一个最值得运行的进程投入运行是调度器的主要任务。进程调度包括两个方面的内容:何时分配CPU时间(调度时机)即调度器什么时候启动;如

3、何选择进程(调度算法)即调度器该怎么做。进程调度有以下两种基本方式:非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。Linux进程调度策略调度程序要在所有处于可运行状态的进程中选择最值得运行的进程投入运行。在每个进程的task_struct结构中有:policy、priority、counter、rt_priority,

4、这4项就是选择进程的依据。policy是进程的调度策略,用来区分两种进程-实时和普通;priority是进程(实时和普通)的优先级;counter是进程剩余的时间片,它的大小完全由priority决定;rt_priority是实时优先级,这是实时进程所特有的,用于实时进程间的选择。.首先,Linux根据policy从整体上区分实时进程和普通进程,因为实时进程和普通进程度调度是不同的,它们两者之间,实时进程应该先于普通进程而运行,然后,对于同一类型的不同进程,采用不同的标准来选择进程:1.普通进程的调度策略-动态优先调度。当policy的值为SCHE

5、D_OTHER时,是普通的用户进程,采用动态优先调度,选择进程的依据是进程counter的大小。进程创建时,优先级priority被赋一个初值,一般为0~70之间的数字,这个数字同时也是计数器counter的初值,进程创建时两者是相等的。priority代表分配给该进程的时间片,counter表示该进程剩余的时间片。在进程运行过程中,counter不断减少,而priority保持不变,以便在counter变为0的时候(该进程用完了所分配的时间片)对counter重新赋值。当一个普通进程的时间片用完以后,并不马上用priority对counter进行

6、赋值,只有所有处于可运行状态的普通进程的时间(p->counter==0)都用完了以后,才用priority对counter重新赋值,这个普通进程才有了再次被调度的机会。在普通进程运行过程中,counter的减小给了其他进程得以运行的机会,即进程正在运行时可以被其他counter值更大的进程中断,但只有当该进程的counter值减为0时才完全放弃对CPU的使用,这就相当于优先级在动态变化,所以称之为动态优先调度。2.对于实时进程,Linux采用了两种调度策略,即FIFO(先来先服务调度)和RR(时间片轮转调度)。图1时间片轮转调度示意图因为实时进程

7、具有一定程度的紧迫性,所以衡量一个实时进程是否应该运行,Linux采用了一个比较固定的标准。实时进程的counter只是用来表示该进程的剩余时间片,并不作为衡量它是否值得运行的标准。实时进程的counter只是用来表示该进程的剩余时间片,并不作为衡量它是否值得运行的标准,这和普通进程是有区别的。上面已经看到,每个进程有两个优先级,实时优先级就是用来衡量实时进程是否值得运行的。Unix进程调度策略UNIX系统是单纯的分时系统,所以没有设置作业调度。UNIX系统的进程调度采用的算法是,多级反馈列轮转调度法。其核心思想是先从最高休先级就绪队列中取出排在队

8、列最前面的进程,当进程执行完一个时间片仍未完成则剥夺它的执行,将它放入到相应的队列中取出下一个就绪进程投入运行(如图2所示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。