DeanoBurrito / northport

Monolithic kernel, drivers and support libraries for x86_64, riscv64 and m68k.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Scheduler Rewrite: per-core focus

DeanoBurrito opened this issue · comments

commented

Currently we have a single global scheduler, that all cores get their next thread from.
We're well overdue for a rewrite, I'd like to split the scheduler into a smaller thread list, that is per-core.
Occasionally cores will need to re-balance the number of threads in each work queue, probably with quieter cores stealing from more-loaded cores.

This may also be a good time to separate the idea of a process/thread manager, and a scheduler. Currently our scheduler is also responsible for managing processes and threads, it could be a nice idea to clean this up

commented

As an extra feature: lets include a method for allocating program/kernel stacks that are tightly packed either either kernel or user space.

Edit: This is not really related to the scheduler. A similar feature has been implemented as part of ThreadGroup.