Linux的时钟及时钟中断

时间:2009-02-16

  一般来说,计算机系统应有两个时钟:实时时钟(RTC)和操作系统(OS)时钟。由于实时时钟是由硬件电路构成的,并由电池供电,因此即使系统断电,它也可正常工作。这个实时时钟就相当于一个机械钟摆,在机械计时系统中,摆要是出了问题,则后果不可想象。因此,实时时钟是整个计算机系统的计时基准,它为系统提供了层的时间服务。

  操作系统时钟是操作系统软件维护的时钟系统,操作系统通过读取实时时钟来初始化系 统时钟,此后二者一直保持同步,共同维持着系统的时间。这里的同步,是指操作系统在运行 过程中,每隔一个固定的时间就会刷新或校正实时时钟中的信息。

  为了使处理器感知实时时钟的节拍,硬件时钟电路每隔一段时间就需要向处理器发出中断请求。处理器在这个中断处理程序中通常要完成如下工作:

  ●将中断计数器加1。

  ●更新系统时钟的时间和日期。

  ●查询当前进程的运行时间是否已超过了分配给它的时间片。如果当前进程已用满或超过了它应有的时间片,则进行进程切换。

  ●更新所有资源的使用统计计数。

  ●检查软仵定时器是否定时时间已到。如果时间已到,则调用适当的函数。

  由于上述项是紧迫的工作,因此它应放在中断的前半部分来处理,而其他几项工作则可酌情放在中断的后半部分来处理。

  Linux在内核初始化时调用函数tlrne_1nlt()对时钟中断进行相关的初始化工作。一旦硬件定时器使用的中断通道IRQ0初始化完毕,即会定时向处理器发出中断申请,处理器响应该申请后,即会调用时钟中断处理程序tlmer_mterrup()。

  



  
上一篇:Linux的外部中断通道
下一篇:DRAM模块原理

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料