学习笔记-linux中的时间管理

来源:互联网 发布:nds二手淘宝哪家店 编辑:程序博客网 时间:2024/04/28 11:04

学习笔记-linux中的时间管理

这一章太简单了, 以至于都感觉没什么东西可写的. 不过既然学习了, 就留做纪念吧. 因为主要是一些概念性的东西, 了解了之后, 到时候如果要用的话可能需要再查.

Linux内核通过定时器中断来更新系统时间, 定时器中断每秒钟发生HZ次. HZ一般设置为100, 在x86上也可以设置为500或者1000. 由于HZ的原因, 我们可以看到linux下msleep的精度一般只有10ms. HZ值越高, 系统定时器等功能的准确性越高, 但是系统负担也更大.

 

定时器中断的主要工作有哪些?

更新系统运行时间和系统实际时间.

在SMP系统上, 更新调度程序中各处理器的运行队列.

检测当前进程的时间片是否用尽.

运行超时的动态定时器.

 

除了定时器中断外, linux下还有RTC(实时时钟). RTC最主要的作用是在系统启动的时候, 初始化xtime变量.


Jiffies在linux下是tick的含义, 每秒钟jiffies会递增HZ. 所以我们通过jiffies/HZ就可以得到系统运行时间了.在64位环境下面, 我们使用jiffies_64这个变量. Jiffies在32位系统上会出现回绕, 所以在使用jiffies的时候, 最好用系统提供的相关API.

 

在内核中要实现延时执行, 可以使用delay, sleep, 定时器, 或者是schedule_timeout(). 这些机制虽然各不相同, 但是都同样依赖于系统的定时器中断来实现.


0 0