Process
An OS-managed running instance of a program with an identity, virtual address space, permissions, and scheduled execution.
Definition
A process is the operating system’s unit of running and accounting: an executing workload with an identity (PID), its own virtual address space, permissions, and kernel-managed resources.
Process vs program
- A program is “code in motion”: the running instance in the abstract.
- A process is the OS object that represents that running instance and enforces boundaries around it.
This distinction is practical: you can inspect and control processes (limits, signals, priority), even when you don’t control the source code.
What a process typically includes
- virtual address space (memory mappings, stack/heap)
- one or more threads of execution (implementation detail, but common)
- open file descriptors (files, sockets, pipes)
- environment variables, working directory
- permissions/identity (user/group, capabilities)
Why processes enable isolation
Processes are the main way the OS enforces isolation: separate address spaces and controlled access to kernel-managed resources reduce the blast radius of bugs.
Lifecycle-related terms
When reasoning about a running system, it helps to be able to describe how a process begins and ends: