55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
|
# proc
|
||
|
|
||
|
The general processing structure is a bit more complex,
|
||
|
so I've split the schematics into multiple parts.
|
||
|
|
||
|
Processes Schematic:
|
||
|
```
|
||
|
+----------------+
|
||
|
| Kernel Process | <----+
|
||
|
| [Threads] | |
|
||
|
+----------------+ |
|
||
|
| [Parent]
|
||
|
[Childs] |
|
||
|
| +--------+--------+
|
||
|
v / \
|
||
|
+-----------+ +-----------+
|
||
|
| Process 1 | --[Next]-> | Process 2 |
|
||
|
| [Threads] | <-[Prev]-- | [Threads] | . . .
|
||
|
+-----------+ +-----------+
|
||
|
| |
|
||
|
[Childs] [Childs]
|
||
|
| |
|
||
|
v v
|
||
|
. . . . . .
|
||
|
```
|
||
|
|
||
|
Thread Schematics (processes view):
|
||
|
```
|
||
|
+---------+
|
||
|
| Process | <-------+
|
||
|
+---------+ |
|
||
|
| [Process]
|
||
|
[Threads] |
|
||
|
| +--------+--------+
|
||
|
v / \
|
||
|
+----------+ +----------+
|
||
|
| Thread 1 | --[LocalNext]-> | Thread 2 |
|
||
|
| | <-[LocalPrev]-- | | . . .
|
||
|
+----------+ +----------+
|
||
|
```
|
||
|
|
||
|
Thread schematics (schedulers view):
|
||
|
```
|
||
|
[RunningThread]
|
||
|
|
|
||
|
v
|
||
|
+----------+ +----------+ +----------+
|
||
|
+---> | Thread 1 | --[GlobalNext]-> | Thread 2 | --[GlobalNext]-> | Thread 3 | . . . ----+
|
||
|
| +-- | | <-[GlobalPrev]-- | | <-[GlobalPrev]-- | | . . . <-+ |
|
||
|
| | +----------+ +----------+ +----------+ | |
|
||
|
| | | |
|
||
|
| +------------------------------------[GlobalPrev]------------------------------------+ |
|
||
|
+--------------------------------------[GlobalNext]--------------------------------------+
|
||
|
```
|