打印

什么是时间片轮转:

[复制链接]
6818|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsw_21|  楼主 | 2009-9-24 09:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hsw_21 于 2009-9-24 12:33 编辑

“1,什么是时间片轮转:
时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法是时间片调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。

  时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表格和队列等。假如进程切换(process switch) - 有时称为上下文切换(context switch),需要5毫秒,再假设时间片设为20毫秒,则在做完20毫秒有用的工作之后,CPU将花费5毫秒来进行进程切换。CPU时间的20%被浪费在了管理开销上。

   为了提高CPU效率,我们可以将时间片设为500毫秒。这时浪费的时间只有1%。但考虑在一个分时系统中,如果有十个交互用户几乎同时按下回车键,将发生什么情况?假设所有其他进程都用足它们的时间片的话,最后一个不幸的进程不得不等待5秒钟才获得运行机会。多数用户无法忍受一条简短命令要5秒钟才能做出响应。同样的问题在一台支持多道程序的个人计算机上也会发生。

   结论可以归结如下:时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。将时间片设为100毫秒通常是一个比较合理的折衷。”——百度

相关帖子

沙发
HWM| | 2009-9-24 09:08 | 只看该作者
引文请注明出处!

使用特权

评论回复
板凳
冷漠| | 2009-9-24 11:08 | 只看该作者
本帖最后由 冷漠 于 2009-9-24 11:24 编辑

呵呵。时间片轮转是多少年前的技术了。如今最简单的调度器也可以同时具有两种或两种以上不同策略的算法。
例如RTX51_Tiny这个不到700字节的RTX,就可以同时具有
1、任务级调度器。即LZ文中“如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。”
2、系统级/中断级/时间片轮转策略调度器。

两种调度器可以同时运作或者任意二选一。
“如果有十个交互用户几乎同时按下回车键,”这个叫做嵌入式系统设计的“过载能力”。
这处理起来并不算困难,因为LZ文中所假设“假设所有其他进程都用足它们的时间片500毫秒的话,......”如果条件确定的话,那么这个单处理器由于运行速度太慢,因而使得这个嵌入式系统过载能力太差。——满载设计的不错。500ms一直在有效处理一个任务。

10个任务切换时间共50ms,450ms内分别完成10个一般任务,使用任务级调度,一般51内核足够了。

只有很简单的应用才采用时间片轮转调度。一般应用都在配置系统OS时关闭这种调度方式。

使用特权

评论回复
地板
大道至简| | 2009-9-24 15:20 | 只看该作者
回楼主:
做一个比较搞笑的假设:比如你家里有个太太,外面还有个二奶、三奶
周末陪太太,周一~周三陪二奶、周四到周五陪三奶。

这就是时间片轮转。。。。。。

使用特权

评论回复
5
gaohq| | 2009-9-24 20:22 | 只看该作者
请楼上用你这种通俗易懂的方式把此问题进一步科普下去。
周一~周三陪二奶,但周二那天二奶有出门事了,不用陪了;
周四刚到三奶那里,大太太有事叫回去;
周五正准备回家,三奶生病了要继续陪;
周四刚从三奶家出来,三奶又叫回三奶那里;
某天朋友叫出去喝酒,哪一个也陪不了;
...........................

使用特权

评论回复
6
程序匠人| | 2009-9-24 21:11 | 只看该作者
你们太有才了。

使用特权

评论回复
7
hsw_21|  楼主 | 2009-9-24 21:16 | 只看该作者
乖乖,牛,明白了。

使用特权

评论回复
8
jerkoh| | 2009-9-24 21:25 | 只看该作者
某天 1-4奶 全要陪时呢?
直接挂掉?

使用特权

评论回复
9
gszzjf| | 2009-9-24 21:35 | 只看该作者
比我们老师讲的清楚:lol

使用特权

评论回复
10
gszzjf| | 2009-9-24 21:37 | 只看该作者
8# jerkoh
那就死机?死锁?

使用特权

评论回复
11
xwj| | 2009-9-24 23:40 | 只看该作者
由于你不敢把 1-4奶 放在一块,所以你每天都得来回的跑,这就是OS调度消耗

某天 1-4奶 全要陪时呢?
——这时就只能采用基于优先级的调度策略,不重要的就只能先不管了

如果没有优先级,那就只能谁先叫就先去谁那里了;

而如果想一叫就到,当呼叫过于频繁时,你所有的时间都会花在路上,谁那里都没时间陪
——这就是任务频繁,系统崩溃了:lol

使用特权

评论回复
12
xwj| | 2009-9-24 23:41 | 只看该作者
xx的,这栋楼整个被4楼带歪了;P

使用特权

评论回复
13
因特网用户| | 2009-9-25 00:38 | 只看该作者
时间片轮转还是要保护上下文啊    还不如用抢占式的呀

使用特权

评论回复
14
hsw_21|  楼主 | 2009-9-25 08:34 | 只看该作者
谢谢ls,抢占式能不能打个通俗易懂的 比方?  以及和时间片轮转的 主要区别?

使用特权

评论回复
15
踢球老越位| | 2009-9-25 08:41 | 只看该作者
你在三奶那里,突然你家老婆有事情叫你回去,否则就要把你灭了,你迫于老婆的压力,没办法,只能先抛弃你家三奶。。。

使用特权

评论回复
16
hsw_21|  楼主 | 2009-9-25 08:43 | 只看该作者
时间片轮转还是要保护上下文啊    还不如用抢占式的呀
因特网用户 发表于 2009-9-25 00:38


“保护上下文”,怎么解释呢?

“抢占式”不需要保护上下文吗?

使用特权

评论回复
17
mbutterfly| | 2009-9-25 09:10 | 只看该作者
5L是4L的延续

使用特权

评论回复
18
daiy5210| | 2009-9-25 10:06 | 只看该作者
哈哈 真有意思 。

使用特权

评论回复
19
因特网用户| | 2009-9-25 12:39 | 只看该作者
“保护上下文”,怎么解释呢?

“抢占式”不需要保护上下文吗?
hsw_21 发表于 2009-9-25 08:43

也要保护啊,我说反正都要保护,还不如用抢占式的

使用特权

评论回复
20
大道至简| | 2009-9-28 08:06 | 只看该作者
15楼: 你在三奶那里,突然你家老婆有事情叫你回去,否则就要把你灭了,你迫于老婆的压力,没办法,只能先抛弃你家三奶。。。

这是进程优先级的问题。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

418

主题

2675

帖子

1

粉丝