Linux核心时间概念:HZ、Tick与Jiffies解析
版权申诉
120 浏览量
更新于2024-09-01
收藏 16KB PDF 举报
"Linux定时器和Jiffies.pdf"
在Linux操作系统中,时间管理是至关重要的,涉及到系统性能优化和进程调度等多个方面。本文主要探讨了三个关键概念:HZ、Tick以及Jiffies。
1. HZ
HZ是Linux内核中的一个参数,定义了每秒钟发生的定时器中断(timer interrupt)次数。例如,如果HZ设置为1000,那么系统每秒钟会有1000次定时器中断。这个值可以在编译内核时进行配置,比如在2.6.20-15版本的内核中,可以通过`make menuconfig`进入配置界面,然后选择Timer frequency (250HZ)进行设定。HZ的可选项通常包括100、250、300和1000。通过观察`/proc/interrupts`文件中timer中断的计数值,可以实际验证HZ的设置效果。
2. Tick
Tick是HZ的倒数,表示每次定时器中断之间的时间间隔。如果HZ为250,那么Tick就是4毫秒。Tick是Linux内核进行时间管理的基本单位,它决定了系统如何分配和调度时间片给各个进程。
3. Jiffies
Jiffies是一个全局的unsigned long类型的变量,用来记录自系统启动以来已经过去了多少个Tick。每当发生一次定时器中断,Jiffies的值就会增加1。然而,Jiffies在系统启动时并不是初始化为0,而是被设置为-300 * HZ(在arch/i386/kernel/time.c中)。这意味着系统启动大约5分钟后,Jiffies就会发生溢出。尽管如此,Linux内核设计了一套机制来处理这种溢出情况,确保时间管理的准确性和连续性。
Jiffies的溢出处理机制是基于时间戳的,当Jiffies达到最大值并溢出回零时,系统会更新更高层次的时间管理结构,如task_struct中的时间信息,以确保进程调度和时间计算的正确性。此外,内核中的各种定时器和延迟函数也会考虑到Jiffies可能的溢出情况,以避免因溢出而导致的错误。
总结来说,HZ、Tick和Jiffies是Linux内核时间管理的核心元素,它们共同协作以实现精确的时间控制,这对于进程调度、定时任务执行、系统响应速度等多方面都至关重要。理解这些概念有助于深入掌握Linux系统的运行机制,特别是对于系统开发者和性能优化工程师来说,这些知识是不可或缺的。
2021-11-04 上传
2021-09-07 上传
2021-09-07 上传
2021-09-06 上传
2011-07-12 上传
2021-09-07 上传
2019-08-27 上传
2021-09-06 上传
2021-10-08 上传
xuedaozhijing
- 粉丝: 0
- 资源: 6万+
最新资源
- STRUCTDLG:该函数将结构作为输入,然后自动构建图形用户界面。-matlab开发
- Wipadika-Innovations-Auth
- Skystone-10355
- trmilli:利西亚语中的墓志文字
- 博客网站
- WeeWX driver for Wario ME11/1x stations:Wario ME11 / 12/13/15站的WeeWX驱动程序-开源
- goit-react-hw-01-components
- Android应用源码之小米便签源代码分享.zip项目安卓应用源码下载
- test2,c语言编写简单图形界面源码,c语言程序
- 单板11-26A.zip
- background-gen
- 提取均值信号特征的matlab代码-matlab_classifier_2021:matlab_classifier_2021
- SelectPopupWindow.7z
- china-code.net.zhy.20,c语言程序设计现代方法源码,c语言程序
- cyclemap.github.io:循环图静态内容
- 萨拉介绍