Expand description

Fixed Priority Scheduler for Tock

This scheduler assigns priority to processes based on their order in the PROCESSES array, and runs the highest priority process available at any point in time. Kernel tasks (bottom half interrupt handling / deferred call handling) always take priority over userspace processes.

Notably, there is no need to enforce timeslices, as it is impossible for a process running to not be the highest priority process at any point while it is running. The only way for a process to longer be the highest priority is for an interrupt to occur, which will cause the process to stop running.

Structs

Priority scheduler based on the order of processes in the PROCESSES array.