Part of the timer chip initialization involves installing an interrupt service routine (ISR) that is called when the timer interrupt occurs. Typically, the ISR performs these duties:
Updating the system clock-Both the absolute time and elapsed time is updated. Absolute time is time kept in calendar date, hours, minutes, and seconds. Elapsed time is usually kept in ticks and indicates how long the system has been running since power up.
Calling a registered kernel function to notify the passage of a preprogrammed period-For the following discussion, the registered kernel function is called announce_time_tick.
Acknowledging the interrupt, reinitializing the necessary timer control register(s), and returning from interrupt.
The announce_time_tick function is invoked in the context of the ISR; therefore, all of the restrictions placed on an ISR are applicable to announce_time_tick. In reality, announce_time_tick is part of the timer ISR. The announce_time_tick function is called to notify the kernel scheduler about the occurrence of a timer tick. Equally important is the announcement of the timer tick to the soft-timer handling facility. These concepts are illustrated in Figure 11.3.
The soft-timer handling facility is responsible for maintaining the soft timers at each timer tick.