mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 10:01:57 +00:00
This is an optimization for the case that a prioritized scheduling context needs slightly more time during a round than granted via quota. If this is the case, we move the scheduling context to the front of the unprioritized schedule once its quota gets depleted and thereby at least ensure that it does not have to wait for all unprioritized scheduling contexts as well before being scheduled again. Note that this introduces the possibility of undeserved starvation of unprioritized scheduling contexts to the scheduling scheme. If there are enough prioritized contexts that deplete their quota during a round, they may cover up also the rest of the round with their unprioritized time slices. If this happens every round, contexts without a priority/quota may never get a turn. In the previous scheduling scheme, this could not occur as the unprioritized schedule was completely independent from prioritized schedules and rounds. Ref #4151 Ref #4710