当前位置: 代码迷 >> 单片机 >> 进程的定时有关问题
  详细解决方案

进程的定时有关问题

热度:89   发布时间:2016-04-28 16:07:24.0
进程的定时问题
问题如下: 在单处理器条件下,所有进程都是按照时间片来轮流使用CPU的,如果一个进程里设置了一个timer,那么定时器就开始计时,在定时器到点的时候操作系统是怎么处理的?直接切换成那个进程?原理是什么?

------解决方案--------------------
所有进程按照时间片来轮流使用CPU这一功能是内核自行调度完成的,与进程内部的定时器无关;
 一个进程内部设置的timer时间到了之后,除非此时进程自己主动申请调度,否则与调度无关;
 如何时刻,一个进程主动申请调度,内核则按优先策略调度运行最优先的进程;如果不存在比申请进程更优先的进程,该进程将继续运行。
------解决方案--------------------
探讨

那如果存在比申请进程更优先的进程,那不是就会出现系统不能及时响应申请进程的定时函数,申请进程的定时跟实际不就会有误差了吗?


------解决方案--------------------
探讨

引用:

那如果存在比申请进程更优先的进程,那不是就会出现系统不能及时响应申请进程的定时函数,申请进程的定时跟实际不就会有误差了吗?


同一时刻,CPU只能做一件事情,既然进程主动申请调度,就意味它愿意主动放弃权力,让给具有更高优先级的进程。出现误差是他自愿的,有什么问题?
任何系统,多个进程运行时,任一时刻,也只有一个进程在运行,其他进……
  相关解决方案