Engineer Atlas
OverviewLearnJourneysOS LabFinderRoadmapPracticeInterviewCheat SheetCompareConnections
OverviewLearnJourneysOS LabFinderRoadmapPracticeInterviewCheat SheetCompareConnections

Compare

Side-by-side on the decisions that recur: process vs thread, threads vs async, mutex vs semaphore, blocking vs non-blocking I/O, container vs VM — with when to choose each.

Process vs ThreadThreads vs Async / event loopConcurrency vs ParallelismMutex vs SemaphoreBlocking I/O vs Non-blocking / async I/Oselect / poll vs epoll / kqueueContainer vs Virtual machineStack vs HeapPipe vs Shared memoryOS page cache vs Application cache
Process vs Thread
A running program: its own address space, descriptor table, …
Threads vs Async / event loop
The thread blocks in the kernel; the scheduler runs somethin…
Concurrency vs Parallelism
Several tasks in progress, interleaved over time…
Mutex vs Semaphore
A lock with an owner: one holder at a time…
Blocking I/O vs Non-blocking / async I/O
The thread sleeps in the kernel until data arrives…
select / poll vs epoll / kqueue
Pass the whole set of descriptors on every call…
Container vs Virtual machine
Shares the host kernel (`uname -r` matches the host)…
Stack vs Heap
Tied to the function call: pushed on entry, popped on return…
Pipe vs Shared memory
Copy into a kernel buffer, copy out on the other side (two c…
OS page cache vs Application cache
The kernel, transparently, for every file `read`/`write` and…
Engineer Atlas
GitHub·LinkedIn