linux定时器和时间管理

linux系统的时间是靠一个叫‘系统定时器’的芯片控制的

系统定时器相当于一个晶振,产生固定的频率,操作系统利用这个固定频率来计时

系统定时器按照一定的频率发送中断信号,这个中断我们叫定时器中断

这个频率值叫节拍率是可配置的,linux2.5之前节拍率是100

2.5之后提高到了1000HZ

就是说一秒钟产生1000个定时器中断,提高频率的好处是:

系统计时更精确

系统的性能提高了很多

顺便说一下windows的节拍率是100

linux进程调度是完全依赖系统定时器的

进行一次进程调度时需要计算每个进程分配的时间片,这个时间片实际上就是一个有定时器中断来控制的

如有3个进程A、B、C分配的时间片分别是10ms20ms30ms

在当进程AB都用完了时间片C在使用21ms后程序执行了

这时节拍率为1000的系统会直接进行下一次的进程调度

节拍率为100的系统则会浪费9ms,直到下一次的定时器中断到来时才会重新执行调度

相关推荐