Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt

Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt

ID:59416598

大小:262.00 KB

页数:36页

时间:2020-09-19

Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt_第1页
Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt_第2页
Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt_第3页
Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt_第4页
Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt_第5页
资源描述:

《Linux操作系统分析-Linux中的时钟和定时测量ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux中的 时钟和定时测量举例LinuxOperatingSystemsAnalysis2定时测量Linux内核提供两种主要的定时测量获得当前的时间和日期系统调用:time(),ftime()以及gettimeofday()维持定时器settimer(),alarm()定时测量是由基于固定频率振荡器和计数器的几个硬件电路完成的LinuxOperatingSystemsAnalysis3主要内容定时的硬件设备Linux内核中与时间有关的程序实现CPU分时、更新系统时间、维护软定时器与定时测量相关的系统调用及相关服务例程LinuxOperatingSystemsAnalysis4硬时

2、钟80x86体系结构上,内核必须显式的与四种时钟打交道实时时钟Realtimeclock,RTC时间戳计数器Timestampcounter,TSC可编程间隔定时器Programmableintervaltimer,PITSMP系统上的本地APIC定时器用于跟踪当前时间产生周期性的时钟中断,用于计时LinuxOperatingSystemsAnalysis5实时时钟RTC基本上所有的PC都包含实时时钟独立于CPU与所有其他芯片依靠一个独立的小电池供电给RTC中的振荡器即使关闭PC电源,还会继续运转与CMOSRAM往往集成在一个芯片内例如:Motorala146818能在IRQ8上发出

3、周期性的中断,频率在2HZ~8192之间可以对其编程实现一个闹钟LinuxOperatingSystemsAnalysis6Linux本身只使用RTC获得时间和日期对应的设备文件为/dev/rtc可以通过设备文件对其编程内核通过0x70和0x71两个端口访问RTC系统管理员可以通过执行时钟程序设置时钟LinuxOperatingSystemsAnalysis7时间戳计数器TSC在80x86微处理器中,有一个CLK输入引线接收外部振荡器的时钟信号从pentium开始,很多80x86微处理器都引入了一个TSC一个64位的、用作时间戳计数器的寄存器它在每个时钟信号(CLK)到来时+1例如时

4、钟频率400MHz的微处理器,TSC每2.5ns就+1rdtsc指令用于读该寄存器LinuxOperatingSystemsAnalysis8与后面介绍的可编程间隔定时器相比,TSC可以获得更精确的时钟为此,Linux在系统初始化的时候必须确定时钟信号CLK的频率(即CPU的实际频率)calibrate_tsc根据在一个相对较长的时间间隔内(约50ms)所发生的TSC计数的个数进行计算那个间隔由可编程间隔定时器给出由于只在系统初始化的时候运行一次,因此本程序可以执行较长时间,而不会引起问题LinuxOperatingSystemsAnalysis9可编程间隔定时器PIT经过适当编程后

5、,可以周期性的给出时钟中断通常是8254CMOS芯片使用I/O端口0x40~0x43Linux将PIT编程为:100Hz通过IRQ0发出时钟中断每10ms产生一次时钟中断,即一个tickLinuxOperatingSystemsAnalysis10Tick的长短短优点:分辨率高缺点:需要较多的CPU时间处理,会导致用户程序运行变慢适用于非常强大的机器,这种机器能够承担较大的系统开销Tick的设置是一个折中,例如在大多数惠普的Alpha和Intel的IA-64上约1ms产生一个tick(每秒1024个时钟中断)RawhideAlpha工作站采用更高(1200tick/秒)LinuxOp

6、eratingSystemsAnalysis11在Linux中,下列宏决定时钟中断频率每秒钟时钟中断的个数,即每秒tick的个数8254芯片的内部振荡器频率,每秒多少次对8254分频,获得HZ所需的时钟LinuxOperatingSystemsAnalysis12在init_IRQ()中初始化时钟中断频率此后,只要允许处理时钟中断,约每10ms就会产生一个时钟中断1tick约为10msLinuxOperatingSystemsAnalysis13如何计算CPU的时钟频率CLKLinux在初始化的时候,利用可编程间隔定时器获得CPU的频率观察calibrate_tsc(),了解如何计算

7、CPU的频率已知:PIT的频率未知:CLK频率方法:统计在PIT已知的一段时间内(50ms),CLK发生了多少次;然后计算出CLK频率(次数/50ms)LinuxOperatingSystemsAnalysis14Linux的计时体系结构Linux要周期性的执行一些任务,例如更新系统自启动以来所经过的时间更新时间和日期确定进程运行了多久检查每个软定时器是否已经到期LinuxOperatingSystemsAnalysis15在单处理器系统中,所有定时活动都

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。