Backend
Backend Essentials
Program vs. Process

Program vs. Process

In backend engineering, it is highly important to distinguish between a Program and a Process. While they sound similar, they represent two completely different states in the lifecycle of a computer system.

1. The Program (Inactive)

A program is simply static code resting permanently on your hard drive (Disk/Storage).

  • Examples: server.js, chrome.exe, python.exe.
  • State: It is completely inactive. It consumes zero CPU cycles and zero RAM. It is just a collection of instructions waiting to be used.

2. The Process (Active)

A process is a program under execution.

When you type node server.js in your terminal, the exact execution flow that occurs under the hood is:

Disk → RAM → CPU executes

The Operating System takes that static program from your hard drive (Disk) and loads it into RAM (Random Access Memory).

Why must the Process run in RAM?

The CPU operates at incredibly high speeds. It cannot efficiently execute instructions directly from a Storage drive (SSD/HDD) because the physical read and write speeds of storage drives are orders of magnitude slower than the CPU.

If the CPU tried to read directly from the disk, it would spend 99% of its time sitting idle, waiting for data to arrive.

RAM acts as the ultra-fast middleman. By copying the program into RAM, the CPU can fetch and execute instructions instantly without sitting idle. The exact moment the program enters RAM and the CPU begins reading its instructions, it officially transitions from a Program into an active Process.

Summary

FeatureProgramProcess
DefinitionStatic codeProgram under execution
LocationHard Drive (Disk/SSD)RAM (Memory)
StateInactive (Sleeping)Active (Running)
Resource UsageTakes up StorageUses CPU & RAM