Organization of the callout queue
• The queue consists of a table with 200 list heads.
• A pointer labeled now points to the list head that represents current time.
• At insertion into the queue, the absolute time for timeout is stored in the callout struct.
• The next list head in the table represents the time now+1 and so on up to now+199.
• Time is measured in ticks and current time is represented by the global variable tick, which is updated by the hardclock()