summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-08-17 08:49:09 +0200
committerAmlal <amlal@nekernel.org>2025-08-17 08:49:09 +0200
commitd3b661d80304a60e9bec6c45960167c285898c63 (patch)
tree88054f68809f2226de00aacbbae2a0c59c01288b
parent0fdc3eeb3afed04f9ffd36b4b2760dac61d1b098 (diff)
feat: new TeX file about NeKernel's SMP subsystem.
Signed-off-by: Amlal <amlal@nekernel.org>
-rw-r--r--docs/tex/nekernel_smp_subsystem.tex28
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}