在所有外部中断中,时钟中断起着特殊的作用。因为计算机是以精确的时间进行数值运算的数据处理的,最基本的时间单元是时钟周期,例如取指令,执行指令,存取内存等,我们将要讨论的是操作系统建立的时间系统,这个时间系统是整个操作系统活动的动力。
1.时钟硬件
大部分PC中有两个时钟源,他们分别叫做RTC和OS(操作从系统)时钟。RTC(实时时钟)也叫做CMOS时钟,它是PC主机板上的一块芯片(或者叫作实时时钟电路),它靠电池供电,即系统供电,也可以维持时间和日期。由于它独立与操作系统,所以也被称之为硬件时钟,它为整个计算机提供计时标准,是最原始最底层的时钟数据。
OS时钟产生与PC主板上的定时/计数芯片,由操作系统控制这个芯片的工作,OS时钟基本单位就是该芯片的计数周期。在开机时,操作系统取得RTC中的时间数据来初始化OS时钟,然后通过计数芯片的向下计数形成了OS时钟,所以OS时钟不是本质意义上的时钟,它更应该被称为一个计数器。OS时钟只在开机时有效,而且完全由操作系统控制,所以也被称为软时钟或系统时钟。
2.时钟原型机制
不同的操作系统,RTC和OS时钟的关系是不同的。RTC是OS时钟的时间基准,操作系统通过RTC来初始化OS时钟,此后两者保持同步运行,共同维持着系统时间。所谓同步,是指操作系统在运行过程中,每隔一个人固定时间会刷新或校正RTC种的信息。
可以看到,RTC处于最底层,提供原始的时钟数据。OS时钟建立在RTC之上,初始化完成后将完全由操作系统控制,和RTC脱离关系。操作系统通过OS时钟提供给应用程序所有的时间有关的服务。因为OS时钟完全是一个软件问题,其所表达的时间由操作系统的设计者决定,将OS时钟符定义为整形还是长整形或者大到超乎想象都是由设计者决定。