linux定时器和时间管理
linux系统的时间是靠一个叫‘系统定时器’的芯片控制的
系统定时器相当于一个晶振,产生固定的频率,操作系统利用这个固定频率来计时
系统定时器按照一定的频率发送中断信号,这个中断我们叫定时器中断
这个频率值叫节拍率是可配置的,linux 2.5之前节拍率是100
2.5之后提高到了1000HZ
就是说一秒钟产生1000个定时器中断,提高频率的好处是:
系统计时更精确
系统的性能提高了很多
顺便说一下windows的节拍率是100
linux进程调度是完全依赖系统定时器的
进行一次进程调度时需要计算每个进程分配的时间片,这个时间片实际上就是一个有定时器中断来控制的
如有3个进程 A、B、C分配的时间片分别是10ms 20ms 30ms
在当进程AB都用完了时间片 C在使用21ms后程序执行了
这时节拍率为1000的系统会直接进行下一次的进程调度
节拍率为100的系统则会浪费9ms,直到下一次的定时器中断到来时才会重新执行调度