时间片,我的理解就是,比如时间片为5ms,那么系统中每个任务就是无限循环的每次执行5ms吗?
比如说现在有5个任务,那么就是第一个任务执行5ms,然后保存堆栈,退出来,再让第二个任务执行5ms,然后保存堆栈退出来,然后第三个。。。第四个。。。第五个。。。?那这样的话我是不是可以理解为,这还是一个大的单任务?无非就是这个单任务无限循环的将每个程序模块都能有时间去执行?
这样的话,在这5ms内执行一个任务时,其他任务是没有运行的吧?就是说每个5ms内只有一个任务在运行?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
说一下我的理解。
这个5ms应该指的是任务调度的周期,而不是每个任务运行的时间。
可抢占内核的话,每隔5ms,就去检查,是否有更高的优先级任务就绪,有的话,就保存当前任务的现场,然后恢复更高优先级的现场,然后跳到高优先级的任务执行。
在裸机中,划分好时间片以后,要进行状态切换,我感觉也类似于任务调度,但是由于裸机是共享堆栈,所以每个状态的运行时间要尽可能的短。
一周热门 更多>