Skip to content

Processes & Scheduling

Category

11 articles

  • 01
    Context Switching

    Saving and restoring CPU state so execution can move between tasks.

  • 02
    ELF Loading

    Turning an ELF binary on disk into a running process by mapping the segments its program headers describe.

  • 03
    fork and exec

    Why Unix creates a process in two separate steps, and how copy-on-write makes the first one cheap despite appearing to duplicate everything.

  • 04
    FXSAVE/XSAVE and FPU/SIMD State

    The instructions that save and restore floating-point and vector register state, and how XSAVE generalizes the older fixed-size format to cover AVX and beyond.

  • 05
    IPC (Pipes, Shared Memory, Signals)

    How two already-created processes exchange data or events: pipes as a kernel buffer, shared memory as two mappings of the same frames, signals as asynchronous delivery.

  • 06
    Multitasking

    The building blocks of running more than one task on a single CPU.

  • 07
    Priority Inversion and Priority Inheritance

    How a low-priority task holding a lock can stall a high-priority one indefinitely, and the technique that bounds how long that stall lasts.

  • 08
    Process Termination, Zombies, and wait()

    Where an exit status goes until a parent collects it, why a terminated process can keep existing as a zombie, and what happens to a child whose parent already exited.

  • 09
    Schedulers

    Deciding which task runs next, from simple round-robin to priority-based schemes.

  • 10
    Synchronization

    Why a scheduler running on more than one CPU can corrupt its own run queue, and the locks, atomics, and interrupt-disabling a kernel uses to stop that from happening.

  • 11
    Threads and Thread-Local Storage

    What a thread actually shares with its siblings versus what stays private, and how TLS gives each one its own copy of a global variable.