documentation/kernel/proc/README.md

1.8 KiB

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]--------------------------------------+