Compare commits
2 Commits
11a1eb52aa
...
ab8093cc6c
| Author | SHA1 | Date | |
|---|---|---|---|
| ab8093cc6c | |||
| ddbb66b5e4 |
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Install mkdocs
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install mkdocs mkdocs-material
|
||||
pip install mkdocs mkdocs-material pymdown-extensions
|
||||
|
||||
- name: Build
|
||||
run: make docs
|
||||
|
||||
BIN
docs/assets/images/only-processes.png
Normal file
BIN
docs/assets/images/only-processes.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 118 KiB |
BIN
docs/assets/images/processes-threads.png
Normal file
BIN
docs/assets/images/processes-threads.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
30
docs/processes_overview.md
Normal file
30
docs/processes_overview.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Overview of processes in MOP3
|
||||
|
||||
## 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.
|
||||
|
||||
## Only processes vs. processes-threads model
|
||||
|
||||
### Overview
|
||||
|
||||
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
|
||||

|
||||
#### Only processes model diagram
|
||||

|
||||
|
||||
## 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)
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
site_name: MOP3 documentation
|
||||
|
||||
theme:
|
||||
name: readthedocs
|
||||
name: material
|
||||
highlightjs: true
|
||||
|
||||
repo_url: https://git.kamkow1lair.pl/kamkow1/mop3.git
|
||||
|
||||
markdown_extensions:
|
||||
- attr_list
|
||||
- md_in_html
|
||||
- pymdownx.blocks.caption
|
||||
|
||||
Reference in New Issue
Block a user