5.1.2
时钟运作机制
不同的操作系统,RTC和OS时钟的关系是不同的。RTC和OS时钟之间的关系通常也被称作操作系统的时钟运作机制。
一般来说,RTC是OS时钟的时间基准,操作系统通过读取RTC来初始化OS时钟,此后二者保持同步运行,共同维持着系统时间。保持同步运行是什么意思呢?就是指操作系统运行过程中,每隔一个固定时间会刷新或校正RTC中的信息。
Linux中的时钟运作机制如图3.3所示。OS时钟和RTC之间要通过BIOS的连接,是因为传统PC机的BIOS中固化有对RTC进行有关操作的函数,例如INT 1AH等中断服务程序,通常操作系统也直接利用这些函数对RTC进行操作,例如从RTC中读出有关数据对OS时钟初始化、对RTC进行更新等等。实际上,不通过BIOS而直接对RTC的有关端口进行操作也是可以的。Linux中在内核初始化完成后就完全抛弃了BIOS中的程序。
图5.2 时钟运作机制
我们可以看到,RTC处于最底层,提供最原始的时钟数据。OS时钟建立在RTC之上,初始化完成后将完全由操作系统控制,和RTC脱离关系。操作系统通过OS时钟提供给应用程序所有和时间有关的服务。因为OS时钟完全是一个软件问题,其所能表达的时间由操作系统的设计者决定,将OS时钟定义为整型还是长整型或者大的超乎想象都是设计者的事。