--- title: "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]--------------------------------------+ ```