时钟
时钟又称为定时器,负责维护时间,防止进程垄断CPU。
1. 时钟硬件
时钟由三个部件构成:晶体振荡器、计数器和存储寄存器。晶体振荡器产生精确地周期性信号,该信号通过电路被传送给计数器,当计数器变为0时就产生一个CPU中断。
可编程时钟的优势在于中断频率可以由软件控制,它有不同的操作模式
完成模式
在一次完成模式下,当时钟启动时,它把存储寄存器的值复制到计数器中。然后,来自晶体的每一个脉冲使计数器减1,当计数器变为0时,产生一个中断,并停止工作,直到软件再一次显式地启动它。
方波模式
在方波模式下,当计数器变为0并且产生中断后,存储寄存器的值自动复制到计数器中,并且整个过程无限期地再次重复下去,这些周期性的中断称为时钟滴答。
2. 时钟软件
时钟硬件所做的全部工作是根据已知的时间间隔产生中断,而涉及时间的其他所有工作都必须由软件——时钟驱动程序完成。它的任务大多情况下为:
- 维护日时间。
- 防止进程超时运行。
- 对CPU使用情况记账。
- 处理用户进程提出的alarm系统调用。
- 为系统本身各部分提供监视定时器。
- 完成概要剖析、监视和统计信息收集。
2.1 维护日时间
即维持实际时间,在每个时钟滴答将计数器加1即可实现。但要注意位溢出,可以通过三种方法解决:
- 使用64位计数器:缺点是维