diff options
| author | Amlal <amlal@nekernel.org> | 2025-08-17 08:49:09 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-08-17 08:49:09 +0200 |
| commit | d3b661d80304a60e9bec6c45960167c285898c63 (patch) | |
| tree | 88054f68809f2226de00aacbbae2a0c59c01288b /docs | |
| parent | 0fdc3eeb3afed04f9ffd36b4b2760dac61d1b098 (diff) | |
feat: new TeX file about NeKernel's SMP subsystem.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/tex/nekernel_smp_subsystem.tex | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/docs/tex/nekernel_smp_subsystem.tex b/docs/tex/nekernel_smp_subsystem.tex new file mode 100644 index 00000000..9a5fe776 --- /dev/null +++ b/docs/tex/nekernel_smp_subsystem.tex @@ -0,0 +1,28 @@ +\documentclass{article} +\usepackage{graphicx} + +\title{NeKernel: The SMP Subsystem} +\author{Amlal El Mahrouss} +\date{\today} + +\begin{document} + +\maketitle + +\section{Abstract} + +{NeKernel is a hybrid based operating system kernel written in modern C++ (C++17/C++20). It features a bootloader, kernel, tools, libraries, and frameworks. This document is about the SMP subsystem of NeKernel} + +\section{Design Overview} + +ne\_kernel is designed with SMP by default. Although it may fallback under classic preemptive round-robin scheduling when unavailable - NeKernel runs best on a SMP based machine. The subsystem goes from the HardwareThreadScheduler to the Hardware Abstraction Layer's Application Processors API. + +\subsection{HardwareThreadScheduler (HTS)} + +HardwareThreadScheduler's main purpose is to make cores all busy with a StackFrame. That StackFrame contains program information (instruction, stack pointers) each task is fairly assigned to a core to then be run by the Application Processors API. + +\subsection{Application Processors (AP)} + +Application Processors (now referred as AP) is the API taking care of multi-core scheduling, very platform dependent (thus its presence on the HAL) it is designed to run tasks passed from the HardwareThreadScheduler system. + +\end{document} |
