Generate docs for libs, update docs build process
All checks were successful
Build documentation / build-and-deploy (push) Successful in 1m18s

This commit is contained in:
2026-02-13 00:23:15 +01:00
parent 6dd1d3ff1e
commit 360080b44e
25 changed files with 119 additions and 54 deletions

View File

@@ -2,24 +2,15 @@
## What is a process?
A process is a structure defined to represent an internal state of a user application's environment. This includes
the necessary stacks, code, data and other resources. A process (usually) has it's own address, but in certain
circumstances may share it with another process.
A process represents a piece of executing code, has it's own stack and CPU state. Think of it as a "task". There are no
kernel processes, only userspace processes.
## Only processes vs. processes-threads model
A process must be a member of a broader process group or procgroup for short.
### Overview
## Procgroups
MOP3 doesn't have a process-thread separation. Ususally in operating systems you'd have a "process", which consists
of multiple worker threads. For eg. a single-threaded application is a process, which consists of one worker. In MOP3
we do things a little differently. We only have processes, but some processes may work within the same pool of (generally speaking)
"resources", such as a shared address space, shared memory allocations, mutexes and so on. An application then consists of
not threads, but processes, which are loosely tied together via shared data.
#### Processes-threads model diagram
![Processes-threads model](assets/images/processes-threads.png)
#### Only processes model diagram
![Only processes model](assets/images/only-processes.png)
A procgroup owns things like memory, kernel resources and such. Processes work within the scope of a procgroup. Once all
procgroup's members die, the procgroup is considered unreachable and thus cleaned up.
## Scheduling