Skip to content
Sukant Pal edited this page Jan 24, 2018 · 1 revision

Introduction

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 -

  1. A task that will wakeup in the future and cause the scheduler to dispatch.

  2. The kernel will preempt the running task after its quanta finishes.

  3. A driver will perform I/O related operation after some time.

  4. Network I/O and timeouts

  5. Process going to sleep for some time

Time-Management

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.

Clone this wiki locally