How an operating system executes work

Follow execution across system calls, scheduling, interruption, synchronization, and process boundaries without assuming a particular kernel version.

10 published lessons1 module244 min of guided study
  1. 01
    How an operating system executes workcore · 10 lessons

Follow the path or begin with a question. Every lesson is open.

Your notebook0 of 10 lessons completed

Your place, at your pace. Progress is optional and saved only in this browser when available.

Inside this module

Each lesson includes an interactive lab

How an operating system executes work

Follow execution across system calls, scheduling, interruption, synchronization, and process boundaries without assuming a particular kernel version.

  1. 01

    Cross a privilege boundary without changing tasks

    Separate processor privilege, process identity, and scheduling while following a request into and out of the kernel.

    21 min
  2. 02

    From a library request to a system-call result

    Follow ABI dispatch, argument validation, partial results, and measured batching costs without assuming every call blocks.

    22 min
  3. 03

    Separate urgent interrupt work from deferred execution

    Reason about interrupt context, threaded and bottom-half work, and service pressure without assuming every deferred callback may sleep.

    22 min
  4. 04

    What must survive a task switch

    Follow a thread across descheduling and resumption, separating architectural state, address spaces, and cache effects.

    24 min
  5. 05

    Separate CPU fairness from response-time promises

    Compare proportional CPU sharing, runnable latency, and real-time policy without assuming one universal scheduling quantum.

    26 min
  6. 06

    Trace priority through a lock dependency

    Trace a high-priority task through a lock dependency, then understand both the power and limits of priority inheritance.

    27 min
  7. 07

    Manage signals and collect process state

    Separate notification from accounting, manage thread masks, and reason through fork, exec, exit, and wait.

    24 min
  8. 08

    Distinguish descriptors from shared open-file state

    Track descriptor entries, shared offsets, status flags, and inheritance without confusing a pathname with a live open file.

    25 min
  9. 09

    Choose locks from execution context and invariants

    Choose protection from execution context, distinguish local exclusion from cross-CPU exclusion, and account for PREEMPT_RT semantics.

    27 min
  10. 10

    Measure the system and the cost of observing it

    Build bounded tracing experiments, align measurement windows, account for missing events, and quantify instrumentation cost.

    26 min
All engineering modules