diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-22 16:19:07 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-22 16:19:07 +0100 |
| commit | 600cc0b1a0ef68c1b5ea7417846ffb5fa8dcf6e9 (patch) | |
| tree | 093b7c35ef15ca3d6484e385effa366111b87298 /source | |
| parent | 78f751eaa4473bd97b4133d268361ae7c20fb5d6 (diff) | |
fix: Better writting and document improvements.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'source')
| -rw-r--r-- | source/wg01/wg01.tex | 9 | ||||
| -rw-r--r-- | source/wg02/wg02.tex | 10 |
2 files changed, 9 insertions, 10 deletions
diff --git a/source/wg01/wg01.tex b/source/wg01/wg01.tex index f52154d..0f1e45c 100644 --- a/source/wg01/wg01.tex +++ b/source/wg01/wg01.tex @@ -144,7 +144,7 @@ If two of the three conditions fail, then the framework fails, and you should co \subsection{V: Compile-Time Vetting in a Freestanding Domain.} -The following concept makes sure that the `class T' is vetted by the domain. Such properties are called `Vettable' such program in the domain makes sure that a `Container' is truly deemed fit for a Run-Time or Compile-Time Evaluation Domain. The `IVettable' structure makes use of template meta-programming in C++ to evaluate whether a `Container' shall be vetted, such containers inherit the `IVettable' structure and are marked final. Such system may look like this in a Compile-Time Evaluation Domain: +The following concept makes sure that the `class T' is vetted by the domain. Such properties are called `Vettable' such program in the domain makes sure that a `Container' is truly deemed fit for a Run-Time or Compile-Time Evaluation Domain. The `Vettable' structure makes use of template meta-programming in C++ to evaluate whether a `Container' shall be vetted. Such system may look as such in a Compile-Time Evaluation Domain: \begin{lstlisting} #define NE_VETTABLE static constexpr BOOL kVettable = YES; @@ -171,11 +171,10 @@ if constexpr (IsVettable<UnVettable>) { } else { instVet->Abort(); } -\end{lstlisting} Source: \href{https://github.com/nekernel-org/nekernel/blob/develop/src/kernel/NeKit/Vettable.h}{Link}. \\Note: This is one approach to compile time vetting, one may solve this using tags instead of a base `IVettable' class. +\end{lstlisting} Source: \href{https://github.com/nekernel-org/nekernel/blob/develop/src/kernel/NeKit/Vettable.h}{Link}. -\section{Conclusion} -{ Safe and correct development in a freestanding domain is indeed possible granted the above concepts are applied and respected. A reference implementation of this paper exists, It's called NeKernel.org, available under the same internet address. -} +\section{VI: Conclusion} +{ Safe and correct development in a freestanding domain is indeed possible granted the above concepts are applied and respected. \section{References} diff --git a/source/wg02/wg02.tex b/source/wg02/wg02.tex index a79c4e4..555e3da 100644 --- a/source/wg02/wg02.tex +++ b/source/wg02/wg02.tex @@ -51,11 +51,11 @@ \abstract {CoreProcessScheduler governs how the scheduling backend and policy of the system works, It is the common gateway for schedulers inside NeKernel based systems.} -\section{Introduction.} +\section{I: Introduction.} {CoreProcessScheduler (now referred as CPS) serves as the foundation between the scheduler backend and system.} {It takes care of process life-cycle management, team-based process grouping, and affinity-based CPU based allocation to mention the least.} -\subsection{The Affinity System.} +\subsection{II: The Affinity System.} {Processes are given CPU time affinity hints using an affinity kind type, these hints help the scheduler run or adjust the current process.} @@ -74,7 +74,7 @@ enum struct AffinityKind : Int32 { }; \end{lstlisting} -\subsection{The Team Domain System.} +\subsection{III: The Team Domain System.} {The team system holds process metadata for the backend scheduler to run on. It holds methods and fields for backend specific operations.} {One implementation of such team is the UserProcessTeam object inside NeKernel.} @@ -102,7 +102,7 @@ class UserProcessTeam final { }; \end{lstlisting} -\subsection{The Process Image System} +\subsection{IV: The Process Image System} {The `ProcessImage' container is a system designed to contain process data, and metadata, its purpose comes from the need to separate data and code. Such usage is useful for validation and vettability.} {This approach helps separate concerns and give modularity to the system, as the image and process structure are not mixed together.} @@ -148,7 +148,7 @@ struct ProcessImage final { }; \end{lstlisting} -\section{Conclusion.} +\section{V: Conclusion.} {The CPS is a system with provable domains and separation of computation, the CPS itself governs how a Process Domain shall compute its child processes, it does not provide the algorithms.} {Which is why, one scheduler backend (such as the UserProcessScheduler) takes care of user process scheduling and fairness.} |
