62 releases
0.9.61 | Sep 23, 2024 |
---|---|
0.9.59 | Jun 26, 2024 |
0.9.54 | Feb 6, 2024 |
0.9.52 | Dec 25, 2023 |
0.9.21 | Nov 26, 2022 |
#311 in Operating systems
501 downloads per month
Used in xous-ticktimer
320KB
6K
SLoC
Xous API: ticktimer
The Xous ticktimer
helps other processes track the passage of time through several mechanisms:
- It can report the elapsed uptime since boot in milliseconds.
- It can block a process for a specified number of milliseconds.
- It can block a process until a condition is met (i.e., condvar)
Processes that are blocked by ticktimer
are entirely de-scheduled and consume no CPU
quantum; the only overhead is a few instructions to check the processes' runnability
state in the kernel's simple round-robin thread scheduler. Thus sleep
and condvar
blocking states are very efficient.
ticktimer
's perception of time stops when a system goes into the suspend state;
thus on resume, the elapsed time picks up exactly where it left off. Wall-clock time
during suspend is tracked by the RTC module.
Xous currently has no notions of thread priority, but if it were to develop one,
the ticktimer
would be the logical place to implement such a feature, as it has
a full view of all the waiting and runnable threads, and it can influence which ones
should be unblocked at a given quantum.
Dependencies
~3.5MB
~78K SLoC