linux内核里面用了很多的时钟,其实这些时钟的用处无外乎就几种:1.作为心跳,中断cpu;2.使得用户可以获取当前时间;3.实时测量;4.定时 服务。知道了使用目的后,我们来看看到底有哪些时钟供我们选择使用:关于这些时钟的概念,网上已经存在不少文章了,为了不重复(浪费互联网空间),咱就先来个引用。 
/*摘录开始:http://blog.chinaunix.net/u1/55599/showart.php?id=1179259 
1):实时时钟(RTC) 
该时钟独立于CPU和其它芯片.即使PC断电,该时钟还是继续运行.该计时由一块单独的芯片处理,并把时钟值存放CMOS.该时间可参在IRQ8上周期性的产生时间信号.频率在2Hz ~ 8192Hz之间.但在linux中,只是用RTC来获取当前时间. 
2):时间戳计时器(TSC) 
CPU附带了一个64位的时间戳寄存器,当时钟信号到来的时候.该寄存器内容自动加1 
3):可编程中断定时器(PIC) 
该设备可以周期性的发送一个时间中断信号.发送中断信号的间隔可以对其进行编程控制.在linux系统中,该中断时间间隔由HZ表示.这个时间间隔也被称为一个节拍(tick). 
在 ./include/asm-i386/param.h 定义 
10#ifndef HZ 
11#define HZ 100 
12#endif 
4):CPU本地定时器 
在处理器的本地APIC还提供了另外的一定定时设备.CPU本地定时器也可以单次或者周期性的产生中断信号.与上次描述的PIC相比.它有以下几点的区别: 
APIC本地计时器是32位.而PIC是16位.由此APIC本地计时器可以提供更低频率的中断信号 
本地APIC只把中断信号发送给本地CPU.而PIC发送的中断信号任何CPU都可以处理 
APIC定时器是基于总线时钟信号的.而PIC有自己的内部时钟振荡器 
5):高精度计时器(HPET) 
在linux2.6中增加了对HPET的支持.HPET是一种由intel开发的新型定时芯片.该设备有一组寄时器,每个寄时器对应有自己的时钟信号,时钟信号到来的时候就会自动加1.一个 hpet包括了一个固定频率的数值增加的计数器以及3到32个独立的计时器,这每一个计时器有包涵了一个比较器和一个寄存器(保存一个数值,表示触发中断时机)。每一个比较器都比较计数器中的数值和寄存器中的数值,当这两个数值相等时,将产生一个中断 
实际上,在intel多理器系统与单处理器系统还有所不同: 
在单处理系统中.所有计时活动过由PIC产生的时钟中断信号触发的 
在多处理系统中,所有普通活动是由PIC产生的中断触发.所有具体的CPU活动,都由本地APIC触发的. 
*/摘录完毕 
好了,上面对这么多种时钟的概念已经阐述的很清楚了,那么他们之间到底有何联系呢?幸运的是,在2.6.21内核以后,一切变得不言自明了,2.6.21以上内核将时钟框架进行了进一步的抽象整理,抽象出了两个概念: 
struct clocksource :对硬件时钟设备的抽象,描述时钟源,强调静态事物,源头 
struct clock_event_device :时钟的事件的抽象,描述硬件时钟中断发生时要执行的动作,强调在时钟源上面的动态方面。 
这两个概念被抽象出来以后,我们就可以用面向对象的思路来分析了。仔细看看这两个概念,它们的偶合性极低,但是还是有联系的,比如如果你将 clock_event_device设置成one-shot,而clocksource确是一个精度及其低的时钟源,那么系统的响应将会相当慢,它们实 际上会影响到对方。 
仔细研究一下上面的众多时钟,有的可以产生中断,有的仅仅是一个计数器,有的...,那么我们怎么读时钟源啊,不要急,每个clocksource都有一个回调函数用来读取时钟源当前值:

struct clocksource {

本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274051

关于linux内核中使用的时钟相关推荐

  1. linux内核配置高精度时钟,关于linux内核中使用的时钟

    linux内核里面用了很多的时钟,其实这些时钟的用处无外乎就几种:1.作为心跳,中断cpu:2.使得用户可以获取当前时间:3.实时测量:4.定时 服务.知道了使用目的后,我们来看看到底有哪些时钟供我们 ...

  2. linux内核个性化,linux内核中的个性时钟nohz与hres

    设计linux内核的那帮家伙想的可真周到啊,前面说过,linux内核的性格就是激情,只要硬件设计的足够灵活,那么设计者就会尽可能的发挥,不放过任 何可自由发挥的点和死角,而且他们从来不管后果,有时还毅 ...

  3. 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表

    文章目录 什么是系统调用? 为什么要用系统调用? 系统调用是怎么工作的? 如何使用系统调用? _syscall*()是什么? errno是什么? 调用性能问题 Linux系统调用列表 进程控制 文件系 ...

  4. linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程

    浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(& ...

  5. Linux内核中的同步原语:自旋锁,信号量,互斥锁,读写信号量,顺序锁

    Linux内核中的同步原语 自旋锁,信号量,互斥锁,读写信号量,顺序锁 rtoax 2021年3月 在英文原文基础上,针对中文译文增加5.10.13内核源码相关内容. 1. Linux 内核中的同步原 ...

  6. 制造linux内核异常,了解Linux内核中的异常

    我想在非常低的温度下调试我们的嵌入式Linux系统(< 40C).问题是,它并不总是正确启动,我试图找出原因.经过一番分析,我看到内核启动了下面的输出期间进入恐慌:了解Linux内核中的异常 c ...

  7. linux mips 时钟中断,Linux内核中地时钟中断.pdf

    Linux内核中地时钟中断 Linux 内核中的时钟中断 第七章 Linux 内核的时钟中断 (By 詹荣开,NUDT) Copyright © 2003 by 詹荣开 E-mail:zhanrk@ ...

  8. linux内核中的SPI

    0.说明 介绍spi基本协议,以及在linux内核中spi驱动程序框架. SPI驱动基于标准了总线设备驱动模型,因此本文仅示意分析SPI框架,驱动实现细节按照总线设备驱动模型来实现,不做过多分析. 1 ...

  9. linux内核中的jiffies,Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解

    在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构 struct timeval { time_t tv_s ...

最新文章

  1. C#程序设计语言Version2.0简介
  2. 深度学习与计算机视觉系列(9)_串一串神经网络之动手实现小例子
  3. Java 11 正式发布!
  4. 人脑为何能够快速学习新知识? 用AI的视角来分析
  5. JavaScript 的简单学习2
  6. Linux System and Performance Monitoring
  7. 百度云怎样提升下载速度
  8. Linux怎么对当前目录提权,linux提权方法(不断总结更新)
  9. 转]一个计算机专业学生几年的Java编程经验汇总
  10. 爆破专业学生任母校爆破工作总指挥走红
  11. Fedora下用Iptux,中文乱码解决
  12. 针对移动互联网应用的网络建设和优化
  13. 2021中考高考成绩查询,2021中考
  14. django框架概述
  15. 给element的select添加复选框
  16. DARPA 想用自动化技术制造出最强的黑客
  17. DefaultKeyedVector和KeyedVector用法
  18. 分布式压缩感知 matlab程序,BCS_CODE 贝叶斯压缩感知以及分布式 的算法实现,很好的范例 matlab 238万源代码下载- www.pudn.com...
  19. dnf全部使用_dnf命令 (常用总结)
  20. 如何在outlook里面撤回邮件?邮件撤回成功后对方还能不能看到?

热门文章

  1. Xcode7 出现-fembed-bitcode错误的解决办法
  2. 转载 漫谈机器学习中的距离和相似性度量方法
  3. windows8 开发教程 教你制作 多点触控Helper可将任意容器内任意对象进行多点缩放...
  4. 中国万网被黑客黑的情景
  5. 将字符串转换为全角或半角
  6. 上海IT俱乐部论坛开通了!
  7. spdep | 最小生成树
  8. dubbo k8s 服务发现_将Dubbo微服务迁移到k8s集群环境中前的思考与落地
  9. emmx用xmind打开_XMind: ZEN 2020 正式更名 XMind 2020!新名字,新招式。
  10. Python 猜数字游戏