Linux内核中的时间测量与计时架构详解
在计算机系统中,精确的时间测量对于操作系统的正常运行至关重要。Linux内核需要处理各种时间相关的任务,如记录系统运行时间、调度进程、同步操作等。本文将深入探讨Linux内核中用于时间测量的时钟和定时器电路,以及Linux的计时架构。
1. 时钟和定时器电路
在80×86架构中,内核需要与多种时钟和定时器电路进行交互,这些电路用于跟踪当前时间和进行精确的时间测量。以下是几种常见的时钟和定时器电路:
- 实时时钟(RTC) :所有PC都包含一个独立于CPU和其他芯片的实时时钟(RTC)。即使PC关机,RTC也会继续计时,因为它由一个小电池供电。RTC能够以2 Hz到8,192 Hz的频率在IRQ8上发出周期性中断,还可以编程为在达到特定值时激活IRQ8线,作为闹钟使用。Linux仅使用RTC来获取时间和日期,但允许进程通过操作 /dev/rtc 设备文件来对RTC进行编程。内核通过0x70和0x71 I/O端口访问RTC,系统管理员可以通过执行 clock Unix系统程序直接对这两个I/O端口进行读写操作。
- 时间戳计数器(TSC) :从奔腾处理器开始,80×86微处理器包含一个时间戳计数器(TSC)。TSC是一个64位寄存器,每当时钟信号到来时,计数器的值就会增加。可以使用 rdtsc 汇编语言指令读取TSC的值。Linux可以利用TSC进行比可编程间隔定时器更精确的时间测量,但在初始化系统时,需要确定时钟信号的频率。系统启动时, calibrate_tsc
超级会员免费看
订阅专栏 解锁全文
1318

被折叠的 条评论
为什么被折叠?



