This module module provides round robin scheduling for all runable threads within each not masked priority. More...
This module module provides round robin scheduling for all runable threads within each not masked priority.
Priority 0 is masked by default. This implementation tries to find a balance between low resources (static memory: a timer and an uint8), fairness in terms of CPU time share and simplicity. But it does round robin the runqueue when the timer ticks even if the thread just got the CPU.
This module might be used if threads are not divisible into priorities and cooperation can not be ensured.
|Round Robin Scheduler. |
|Time between round robin calls in Units of SCHED_RR_TIMERBASE. More...|
|ztimer to use for the round robin scheduler More...|
|#define||SCHED_RR_MASK (1 << 0)|
|Masks off priorities that should not be scheduled default: 0 is masked. More...|
|Initialises the Round Robin Scheduler. |
|#define SCHED_RR_MASK (1 << 0)|
Masks off priorities that should not be scheduled default: 0 is masked.
Priority 0 (highest) should always be masked. Threads with that priority may not be programmed with the possibility of being scheduled in mind. Parts of this scheduler assume 0 current_rr_priority is uninitialised.
|#define SCHED_RR_TIMEOUT 10000|