时钟中断是操作系统最重要的中断,操作系统内核依靠时钟中断完成时间片计算和分配、定时等管理工作,是分时机制实现的基础。可以说如果没有时钟中断,操作系统将无法正常运行。时钟中断由专门的时钟芯片产生,比如PC机上的8253芯片。大多数的操作系统实现,时钟中断周期会维持在10ms到100ms之间,比如Windows操作系统,其时钟中断周期一般为10ms或者20ms。表面上看,似乎时钟中断周期越短,系统的实时性越好,因为进程或线程的运行时间片会被控制的越精确,优先级高的进程或线程会优先得到运行。但仔细分析起来,会发现实际并不是这么回事,时钟中断周期的大小与系统整体实时性关系并不十分紧密。
可用两个指标来衡量操作系统的实时性:一个是中断响应时间,即从外部中断发生,到得到操作系统处理之间的时间;另外一个是任务切入时间,即一个高优先级的线程运行所需的资源就绪,到得到调度所需的时间。时钟中断周期的大小,与这两个指标并无直接关联。
首先看中断响应时间,这个时间与硬件系统关联紧密。中断一般由外部设备引发,外部设备的控制电路连接到计算机的中断控制器上(比如PC的8259A芯片)。一旦外部设备发生中断,设备会通过一条中断引脚通知中断控制器,中断控制器根据输入引脚的状态(比如是否禁止引发中断)、输入引脚的优先级、连接到片上的其它中断引脚的情况,综合判断是否需要对该中断进行处理。如果判断结果为进一步处理,则通过CPU的中断输入(比如x86CPU的INTR信号)通知CPU。CPU并不会马上处理中断,而是有一套比较复杂的判断机制,判断是否对刚刚输入的中断进行响应。最重要的决定因素有两个:一个是CPU只会在一条指令执行完毕后才会检查中断状态,如果CPU正处于一条指令的执