CoreProcessScheduler: Part Four

Published December 7, 2025

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 Kernel C++ as well, we can make it safer and more maintable in the long run.

References: