Processes, Memory & the CPU
The machine is dragging. The fan is screaming, the cursor stutters, and a status bar somewhere says 100% CPU or your editor pops up a box that says out of memory and dies. You don't know which program did it, or even what those words really mean - so it feels like the computer is just unwell, the way a person gets a fever.
Here's the relief: those phrases aren't vague. They name something exact, happening right now, that you can find - usually one specific process, sitting in a list, misbehaving. This guide teaches you to read that list. By the end, "100% CPU" and "out of memory" stop being weather and become a row you can point at.
This guide builds on What an Operating System Is. If "process," "kernel," or "RAM vs. disk" are fuzzy, read that first - we won't re-teach the basics here, we'll go deeper into the two jobs (running programs and handing out memory) that slowdowns come from.
How to read this
- Machine on fire right now? Jump to whichever symptom matches - CPU pinned at 100% is Phase 2: What "100% CPU" Really Means; "out of memory" or grinding-to-a-crawl slowness is Phase 3: What "Out of Memory" Really Means. Each opens with how to find the culprit.
- Want it to finally make sense? Read in order. Phase 1 gives you the vocabulary (what a process actually is and how you stop one) that the other two phases lean on.
The phases
- Processes, Up Close - what a process really is: its PID, its parent, foreground vs. background, the states it sits in (running, sleeping, zombie), and what Ctrl-C,
kill, and "End task" actually do to it. - What "100% CPU" Really Means - cores, the scheduler handing out turns, what "load average" tells you, why one runaway process can pin a core, and how to spot it in
top/ Task Manager. - What "Out of Memory" Really Means - RAM vs. virtual memory, paging/swap and why swapping makes everything crawl, what "this app uses 4 GB" means, and the OOM killer - the OS killing a process to save itself.
This guide is about diagnosis - naming the culprit. Deep tuning (changing scheduler priorities with
nice, sizing a swap file, configuring cgroup memory limits) is deferred to a follow-up guide; here we get you to "that process, right there."