以下是阅读LKD对内核定时器(时钟)频率的阐述之后作的简要总结:

1. 内核定时器频率在下定义,不同体系结构可以定义不同的频率,单位为HZ;

2. 以x86体系为例,默认的内核定时器频率为100HZ,不过,根据需要,可以定义更高的频率,而更高的频率对于系统性能具有以下的影响:

a. 假设将频率提高到1000HZ,那么每2个定时器中断之间的时间间隔为1s/1000=1ms, 相对于原来的10ms(100HZ情况),其可以达到更细的计时精度。

具体来说,当程序使用诸如poll()和select()的系统调用时,由于这两个调用采用了系统定时器中断作为超时计数,假设poll()的超时时限是20ms, 那么当调用poll时,如果正好处在2个定时器中断之间时,平均情况下,需要等待5ms时间下一个中断才会到达并开始计时,于是实际上poll总共等待了25ms的时间,影响了程序性能;若采用1000HZ的频率,当poll同样在两个中断之间开始申请计时时,由于中断粒度是1ms,所以平均情况下只需要等待0.5ms下一个中断便到来,实际上总共等待了10.5ms, 延误的时间比100HZ的情况缩小了10倍.

b. 基于a中同样的原理,若进程A正在执行,而调度程序需要在2ms之后让进程B抢占A获得CPU资源,那么在100HZ的情况下,调度程序最坏情况下需要等待10ms下一个定时器中断才会到来,此时才能进行抢占;在1000HZ的情况下,调度程序最多延误1ms即可抢占,这样大大提高了进程调度的效率

3. 高HZ的时钟频率,相当于每秒钟产生更多的定时器中断,那么系统将更频繁地调用中断处理程序,“这样不仅减少了处理器处理其他工作的时间,而且还会频繁地打乱处理器高速缓存并增加耗电”。然而也需要根据实际情况分析,如果提高时钟频率所产生的额外负载相对于当前系统的负载而言小之又小,那么提高时钟频率完全是明智的做法。

4. Linux内核还提供了一个叫“无节拍操作”的选项,也就是不指定固定的时钟频率,而是让系统动态地调节频率:若当前系统的时钟频率为100HZ(10ms), 若在50ms内系统都处于空闲状态,那么系统会自动将时钟频率降低到20HZ(50ms)以减少电量的消耗,这在移动设备上面是有积极意义的。

linux内核主频,Linux 内核时钟频率对系统性能影响相关推荐

  1. Linux 2.6 menuconfig内核编译配置选项详解

    Code maturity level options 代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未 ...

  2. 【内核】linux内核启动流程详细分析【转】

    转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...

  3. 【内核】linux内核启动流程详细分析

    Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...

  4. linux 4.0内核编译选项,linux 2.40.20-8 内核编译选项.doc

    linux 2.40.20-8 内核编译选项 内核编译配置选项简介 (2.4.20-8) 来源: ChinaUnix博客 日期: 2007.06.25 10:18 (共有0条评论) 我要评论 Code ...

  5. 嵌入式之linux用户空间与内核空间,进程上下文与中断上下文

    文章目录 前言 用户空间与内核空间 内核态与用户态 进程上下文和中断上下文 上下文 原子 进程上下文 中断上下文 进程上下文VS中断上下文 原子上下文 前言 之前在学习嵌入式linux系统的时候,一直 ...

  6. Linux操作系统核心部分——内核

    对于Linux操作系统来说,她的核心部分便是内核,而内核有着她独到的稳定性.高效性,以独占的方式执行最底层任务,保证其他程序的正常运行,是整个系统的核心,是Linux操作系统必不可少的一部分. Lin ...

  7. Linux的历史----Linux内核剖析(一)

    Unix操作系统 Unix的由来 汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许 ...

  8. linux 内核mmap,Linux内核mmap机制

    1. 问:如何将物理地址映射到用户空间的虚拟地址上? 2.linux内核mmap机制 2.1.回顾LED驱动数据流的操作过程 通过分析LED驱动,得出以下结论: 如果利用read,write,ioct ...

  9. 宏内核与微内核、Linux内核与Unix内核的区别

    宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程.线程管理.内存管理外,文件系统,驱动,网络协议等等都在内核里面.优点是效率高.缺点是稳定性差,开发过程中的bug经常 ...

最新文章

  1. 帆软填报提交显示违反唯一约束_贵州2020年高考网上填报志愿时间确定!这些事项需要注意...
  2. Python 懂车帝车友圈--分析与实现
  3. 太阳能计算机作文500字,自制太阳能热水器
  4. [MOSS开发]:通过简单BUG跟踪Demo阐述用户控件对列表的操作
  5. 汇编语言-003(LAHF_SAHF 、XCHG、FLAGS、 OFFSET、ALIGN、PTR、LENGTHOF、SIZEOF)
  6. c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...
  7. C语言(CED)统计行数
  8. 仿写简单的vue虚拟dom
  9. LoadRunner10自带的WEBTOURS,无法显示Flights页面问题解决办法
  10. 抽象工厂模式java_Java描述设计模式(04):抽象工厂模式
  11. synchronized锁机制 之 代码块锁
  12. idou老师教你学Istio 04:Istio性能及扩展性介绍
  13. linux 分区 LVM 挂载
  14. VMware Horizon USB重定向排除特定设备
  15. linux--封装redhat镜像
  16. 傅里叶级数与变换(二)
  17. 群体智能优化算法介绍
  18. 网络触发的detach
  19. ✖ subject may not be empty [subject-empty]
  20. php双线切换线路,双线双路和断线自动切换

热门文章

  1. android NDK的单步调试
  2. Python 下载的 11 种姿势
  3. Prometheus 轻松实现集群监控
  4. 网络故障处理手册大全
  5. 【Python】Python中文编码
  6. 网络管理与维护作业12
  7. 浏览器的同源策略与跨域问题的解决方案
  8. Promise 解决同步请求问题
  9. POI3.8解决导出大数据量excel文件时内存溢出的问题
  10. 【亲测有效】运行docker ps 出现Got permission denied问题的解决方案