The following elements are used to illustrate the structure of the example schedulers:
In this example the main scheduler realizes a Priority Round Robin strategy. The main scheduler works as a global scheduler that schedules subsystems like virtual machines or hypervisor partitions. Each partition realizes an OSEK scheduling system. In this case the main scheduler is responsible for both cores but only running on one core. Each OSEK subsystem is responsible for exactly one core but only if the main scheduler grants the core usage. The OSEK subsystems then decide on a FPP basis, which task can run. The coreAffinity for the tasks is not needed, since their scheduler is only responsible for one core.
In this example an FPP scheduler acts as a global scheduler. It schedules tasks on a FPP basis but with the additional constraint that its group must have budget left (has similarities to ‘adaptive partitioned scheduling’ of QNX). The scheduler “CBS” (Constant Bandwith Server) is only there to assign budgets to a logical task group and define no mapping or responsibility at all. Therefore, in the taskAllocation only the priority is specified. The coreAffinity of tasks in the same group can differ, even task migration is possible if a task affinity is CoreA as well as CoreB.