All checks were successful
Build documentation / build-and-deploy (push) Successful in 1m18s
22 lines
849 B
Markdown
22 lines
849 B
Markdown
# Overview of processes in MOP3
|
|
|
|
## What is a 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.
|
|
|
|
A process must be a member of a broader process group or procgroup for short.
|
|
|
|
## Procgroups
|
|
|
|
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
|
|
|
|
MOP3 uses a round-robin based scheduler. For now priorities are left unimplemented, ie. every processes has
|
|
equal priority, but this may change in the future.
|
|
|
|
A good explaination of round-robin scheduling can be found on the OSDev wiki: [the article](https://wiki.osdev.org/Scheduling_Algorithms#Round_Robin)
|
|
|