Skip to main content

Command Palette

Search for a command to run...

Processes Are Alive (At Least, Your OS Thinks So)

Updated
4 min read
Processes Are Alive (At Least, Your OS Thinks So)

There’s something oddly poetic about how an operating system treats a process. It’s not just code. It’s not just instructions sitting idle on disk. The moment you hit run, something wakes up - something that starts asking for attention, resources, time and then has its own lifecycle. A process is not a file anymore.

And like all living things, it goes through phases.


From Birth to Death

A process doesn’t just exist. It’s born.

It starts in this quiet phase called the hold state. Think of it as being in line at a government office 😂. The system has acknowledged your existence, but you’re not getting attention yet. You’re waiting, being evaluated — “Do you deserve CPU time? How much memory will you need? What’s your priority?”

Then suddenly, you’re in the ready state. This is where things get interesting. You’re no longer ignored — you’re just waiting for your turn. It’s like sitting backstage before a performance. Everything is set. You’re prepared. You just need the spotlight.

And then — boom — running state. You have the CPU. You are the system (well, temporarily). Instructions execute, registers move, memory gets touched. This is the moment every process lives for.

But reality hits.

You don’t always get to keep the spotlight. Maybe you need data from disk. Maybe you’re waiting on I/O. Maybe some other process is more important than you. So you’re pushed into the waiting state — a kind of forced pause. Not dead, not active, just… suspended.

Eventually, you come back. Or you don’t.

Because every process ends. The finished state isn’t dramatic. No fireworks. Just quiet cleanup — memory freed, files closed, traces erased. Like you were never there.


The Illusion of Control

Here’s the thing: processes feel independent, but they’re not.

Behind the scenes, there’s an invisible authority managing everything - the OS. It tracks every process using something called a Process Control Block (PCB). Think of it as a detailed resume + medical record + surveillance file, all in one. It knows your state, your resources, your history, even where you were last interrupted.

You don’t control your fate. The scheduler does.

And it’s ruthless.

It decides:

  • Who runs

  • For how long

  • Who gets paused

  • Who gets priority

Fairness? Efficiency? Optimization? These are the ideals. But in reality, it’s a constant negotiation for resources.


Threads: The Split Personality of a Process

If processes are individuals, threads are multiple personalities sharing the same body.

Multithreading is where things get wild. One process, multiple threads, all executing simultaneously (or at least pretending to). They share memory, resources, context — which makes them fast, but also dangerous.

Because sharing means:

  • Faster communication

  • But also higher chances of chaos

One bad thread, and the whole process can collapse.

Still, modern systems rely on this heavily. Why? Because speed matters. Responsiveness matters. Users don’t care about your clean architecture — they care that the app doesn’t freeze.


Creation and Death: The System’s Responsibility

A process doesn’t "appear". The OS builds it from scratch using its code:

  • Allocates memory

  • Assigns an ID

  • Sets up execution context

  • Prepares resources

It’s like assembling a machine before switching it on.

And when it’s over, the OS dismantles everything just as carefully:

  • Memory is reclaimed

  • Files are closed

  • Resources are released

If this cleanup doesn’t happen properly, you get leaks, crashes, instability — the digital equivalent of pollution.


The Bigger Picture

What’s fascinating is that all of this — the states, the transitions, the scheduling — exists to maintain an illusion. An illusion that makes you think your apps run smoothly. You think everything happens simultaneously.

It doesn’t.

Your operating system is just incredibly good at juggling chaos.

Processes are constantly being paused, resumed, shuffled around. Thousands of tiny lifecycles overlapping, competing, cooperating. And somehow, it all works.


Final Thought

If you strip away the abstraction, a process is just a request:

"Give me time. Give me memory. Let me do my work."

And the operating system responds:

"Wait your turn."

That’s computing at its core: negotiation, prioritization, and controlled chaos.

And honestly? That’s more human approach than we’d like to admit.

2 views