时钟中断
时钟中断是一种硬中断,由时间硬件(系统定时器,一种可编程硬件)产生,CPU处理后交由时间中断处理程序来完成更新系统时间、执行周期性任务等。linux时间中断处理程序分种两部分:体系结构相关部分与体系结构无关部分。体系结构相关部分被注册到内核中,确保中断产生时能执行,这部分不能有耗时操作,主要是更新时间与调用结构无关部分列程(异步)。已到期的定时器由体系结构无关部分来处理,其它的一些耗时操作,如显示时间的更新也在这一部分。
定时器
内核定时器
内核定时器产生的是软中断,软中断是进程相关的,它不会中断CPU的处理。使用定时器时,将软中断注册入内核。在每个时钟中断周期中,系统会检测到期到期定时器,触发软中断,判断时间到期,则执行定时器处理函数,最后清除掉定时器软中断。
用户定时器
用户定时器是线程相关的,定时器产生的消息只会发送给注册线程。定时器消息属于最低优先级的消息,当线程的队列中没有其他消息时,才检索该消息。
网友评论