关于操作系统中时间片的一个问题

时间:2022-10-13 19:48:54
如果是时间片轮转,假设一个时间片长为40ms,如果某进程在得到时间片后20ms即完成,现在是操作系统立即将处理机分配给下一个进程,还是等到此时间片结束后再调度?

8 个解决方案

#1


应该是分配下个进程

还是在学校的东西

#2


不过我认为对实时性要求不高的系统,等到时间片完的调度更加简单,浪费处理机的时间也并不长(对本例,在一个任务完成的最后一个时间片,浪费资源平均下来只有40/2=20ms),为什么不这样做呢?

#3


找本<<操作系统>>看一下就可以了  好久都没看了 怕说错了

#4


接分~

#5


2、 循环轮转法[RR]:(Round Robin)
系统为每个进程规定一个时间片,所有进程按时间片长短轮流运行:选择就绪队列头部的进程运行,时间片用完后,将其排在就绪队列的尾部,并再次选择就绪队列头部进程运行。
T=Nq,N-就绪队列中的进程数,q-时间片,T-系统的响应时间
时间片的长短确定:系统的响应时间;就绪队列中的进程数;进程的转换时间;计算机的处理能力。
A、基本轮转法:分给所有进程的时间片相同且不变,所有进程以均等的速度向着推进;
B、改进轮转法:根据进程的不同特性为其动态分配不同长度不同的时间片,调度效果灵活
时间片长度的选择:通常为几十毫秒到几百毫秒,适用于分时系统。
&#61692; 系统的响应时间固定,每次轮转前重新计算时间片的长度-固定周期轮转法;
&#61692; 时间片的长度取决于优先级的高低;
&#61692; 短作业的时间片短,长作业的时间片长:多队列轮转法,也即多就绪队列轮转法,每个就绪队列的时间片长度不同。



分时技术成熟后,应该会对基本轮转法进行改进了吧

#6


楼上各位,谢谢了!
其实我的问题的核心并不是时间片长短是否可变,
而是:一旦给某个进程分配了一个时间片后,如该进程在时间片未用完时就已经结束,那么分配给它的时间片的剩余部分是系统立刻收回还是系统等分配给它的该时间片用完后,按预定的分配方案分配给其他相应的进程。

#7


作为操作系统的设计来看,当一个进程分配在预分配的时间片内完成时,应该是主动交出CPU,供下一个任务使用。如果在一个时间片内没有结束,则进入就绪队列等待下一次调度。 楼上说的“分给所有进程的时间片相同且不变,所有进程以均等的速度向着推进”只是一种机制,而具体实现时就是一种策略了。按我的理解你也许可以等待每个时间片运行完再去处理下一个任务,当然也可以在任务在时间片内结束时就去处理下一个任务的。也不知道我的理解对不对了,最近也正好在看看操作系统方面的书

#8


我们老师说的,就是时间片没用完的话就直接给下一个进程就行。。。。绝对对的了

#1


应该是分配下个进程

还是在学校的东西

#2


不过我认为对实时性要求不高的系统,等到时间片完的调度更加简单,浪费处理机的时间也并不长(对本例,在一个任务完成的最后一个时间片,浪费资源平均下来只有40/2=20ms),为什么不这样做呢?

#3


找本<<操作系统>>看一下就可以了  好久都没看了 怕说错了

#4


接分~

#5


2、 循环轮转法[RR]:(Round Robin)
系统为每个进程规定一个时间片,所有进程按时间片长短轮流运行:选择就绪队列头部的进程运行,时间片用完后,将其排在就绪队列的尾部,并再次选择就绪队列头部进程运行。
T=Nq,N-就绪队列中的进程数,q-时间片,T-系统的响应时间
时间片的长短确定:系统的响应时间;就绪队列中的进程数;进程的转换时间;计算机的处理能力。
A、基本轮转法:分给所有进程的时间片相同且不变,所有进程以均等的速度向着推进;
B、改进轮转法:根据进程的不同特性为其动态分配不同长度不同的时间片,调度效果灵活
时间片长度的选择:通常为几十毫秒到几百毫秒,适用于分时系统。
&#61692; 系统的响应时间固定,每次轮转前重新计算时间片的长度-固定周期轮转法;
&#61692; 时间片的长度取决于优先级的高低;
&#61692; 短作业的时间片短,长作业的时间片长:多队列轮转法,也即多就绪队列轮转法,每个就绪队列的时间片长度不同。



分时技术成熟后,应该会对基本轮转法进行改进了吧

#6


楼上各位,谢谢了!
其实我的问题的核心并不是时间片长短是否可变,
而是:一旦给某个进程分配了一个时间片后,如该进程在时间片未用完时就已经结束,那么分配给它的时间片的剩余部分是系统立刻收回还是系统等分配给它的该时间片用完后,按预定的分配方案分配给其他相应的进程。

#7


作为操作系统的设计来看,当一个进程分配在预分配的时间片内完成时,应该是主动交出CPU,供下一个任务使用。如果在一个时间片内没有结束,则进入就绪队列等待下一次调度。 楼上说的“分给所有进程的时间片相同且不变,所有进程以均等的速度向着推进”只是一种机制,而具体实现时就是一种策略了。按我的理解你也许可以等待每个时间片运行完再去处理下一个任务,当然也可以在任务在时间片内结束时就去处理下一个任务的。也不知道我的理解对不对了,最近也正好在看看操作系统方面的书

#8


我们老师说的,就是时间片没用完的话就直接给下一个进程就行。。。。绝对对的了