WG02: CoreProcessScheduler: The Application Processor System.
Abstract
NeKernel targets multiple cores, thus the need of an Application Processors Subsystem.
Methodology: The APS architecture.
A few possibilites with that architecture:
- Map cores to a HW Thread structure, A C++ structure.
- Make it run our task when it is registered by
mp_register_task - We keep the thread ID from the HTS (HardwareThreadScheduler) inside the HW Thread.
- And we plug that into the higher level of the scheduler architecture.
This way the design is modular, easy to extend, and easily debuggable.
Implementation: mp_register_task C++ function.
EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ProcessID thrdid);
Rationale: Meta-scheduling.
Meta-scheduling governs how scheduling backends run tasks using a common protocol shared among them. In this case CPS shares the protocol for UPS and KTS.
The APS makes task scheduling and affinity much easier to implement, thanks to Methodology of Freestanding Development as well, we can make it safer and more maintable in the long run.