-
Notifications
You must be signed in to change notification settings - Fork 3
Timer
A tickless kernel is one which does not use regular timer interrupts for scheduling and other purposes. The linux kernel does so only in special cases - like when the processor is idle. But here we want to make the kernel truly tickless - during all occasions. The silcos kernel does so by maintaining records of future timer interrupt requirements. This records may refer to -
-
A task that will wakeup in the future and cause the scheduler to dispatch.
-
The kernel will preempt the running task after its quanta finishes.
-
A driver will perform I/O related operation after some time.
-
Network I/O and timeouts
-
Process going to sleep for some time
The execution-manager module uses the C++ class Timer
to hold the timer & automatically reset the timer to generate interrupts on the next occasion. It is used for registering time-based events and also canceling them if required. It dynamically manages these records on a per-CPU basis. Unlike the linux-kernel, the TimerManager doesn't require the need to disable the tick-less kernel at any time.