summaryrefslogtreecommitdiffhomepage
path: root/source
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-22 16:19:07 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-22 16:19:07 +0100
commit600cc0b1a0ef68c1b5ea7417846ffb5fa8dcf6e9 (patch)
tree093b7c35ef15ca3d6484e385effa366111b87298 /source
parent78f751eaa4473bd97b4133d268361ae7c20fb5d6 (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.tex9
-rw-r--r--source/wg02/wg02.tex10
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.}