内核中时间的概念
1.内核中很多函数需要内核提供时间,比如周期性执行的函数,同时,内核还必须管理系统的运行时间以及当前日期和时间
2.内核必须在硬件的帮助下才能计算和管理时间,硬件为内核提供了一个系统定时器定时器会定时触发时钟中断:
- 中断的间隔时间叫做节拍,节拍的倒数叫做节拍率
3.内核靠的是中断的时间间隔(节拍)来计算墙上时间和系统运行时间
- 墙上时间,也就是实际时间
- 系统运行时间,自系统启动到现在的时间
4.有些工作会在多次时钟中断运行一次,有的会每次中断运行
节拍率:HZ
1.100HZ也就是每秒时钟中断100次,在i386体系中为100HZ,在2.5开发内核中提到了1000HZ
2.高HZ值的优势提高了精度,比如可以使进程抢占更准确,加快响应时间,进而提高了效率
3.高HZ值的劣势主要是增加了系统负担,同时也增加了耗电
jiffies
1.全局变量jiffies记录了系统启动以来的时钟中断总数,但是它并非一定从0开始
2.jiffies变量是个unsigned long类型,在32位体系结构上是32位,在64位体系结构是64位
3.在32位情况下,如果达到32位上限,就会回绕到0,为了正确处理回绕计数,内核提供了四个宏
硬时钟和定时器
Linux提供两种设备进行计时:
- 实时时钟 系统启动时,内核通过读取时钟来初始化墙上时