|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 处理器管理 > 任务调度 >
|
考试要求:掌握
相关知识点:4个
|
|
|
|
时间片轮转算法(Round Robin,RR)的基本思路是:把系统当中的所有就绪任务按照先来先服务的原则,排成一个队列。然后,在每次调度的时候,把处理器分派给队列当中的第一个任务,让它去执行一小段CPU时间,或者叫时间片。当这个时间片结束的时候,如果任务还没有执行完的话,将会发生时钟中断,在时钟中断里面,调度器将会暂停当前任务的执行,并把它送到就绪队列的末尾,然后执行当前的队首任务。反之,如果一个任务在它的时间片用完之前就已经运行结束了或者是被阻塞了,那么它就会立即让出CPU给其他的任务。
|
|
|
|
.公平性:各个就绪任务平均地分配CPU的使用时间。例如,假设有n个就绪任务,那么每个任务将得到1/n的CPU时间。
|
|
|
.活动性:每个就绪任务都能一直保持着活动性,假设时间片的大小为q,那么每个任务最多等待(n-1)q这么长的时间,就能再次得到CPU去运行。
|
|
|
在采用时间片轮转算法时,时间片的大小q要适当选择,如果选择不当,将影响到系统的性能和效率。
|
|
|
.如果q太大,每个任务都在一个时间片内完成,这就失去了轮转法的意义,退化为先来先服务算法了,这就使各个任务的响应时间变长。
|
|
|
.如果q太小,每个任务就需要更多的时间片才能运行完,这就使任务之间的切换次数增加,从而增大了系统的管理开销,降低了CPU的使用效率。
|
|
|
因此,如何来选择一个合适的q值,既不能太大,也不能太小,这是时间片轮转法的最大问题。一般来说,这个值选在20~50ms是比较合适的。
|
|
|