OS Notes
Complete glossary of Operating System terminology — definitions of key terms from process management, memory, scheduling, synchronization, file systems, and security with clear explanations.
Introduction
Operating Systems is a terminology-heavy subject. Understanding precise definitions is critical for exams, interviews, and clear communication with fellow engineers. This glossary covers every important term you will encounter, organized alphabetically within topic categories. Each definition is written to be both precise and understandable.
Process Management Terms
Process — A program in execution. It includes the program code (text section), current activity (program counter, registers), stack (temporary data), data section (global variables), and heap (dynamically allocated memory).
Thread — A lightweight unit of execution within a process. Threads share the process's code, data, and open files but have their own stack, program counter, and register set.
Process Control Block (PCB) — A kernel data structure containing all information needed to manage a process: PID, state, program counter, CPU registers, memory management info, I/O status, and scheduling information.
Context Switch — The act of saving the state of the currently running process and loading the state of the next process to run. This involves saving/restoring registers, program counter, and updating memory maps.
Fork — A system call that creates a new process (child) by duplicating the calling process (parent). The child gets a copy of the parent's address space.
Orphan Process — A process whose parent has terminated. In Unix, orphans are adopted by the init process (PID 1), which will eventually call wait() to clean them up.
Zombie Process — A process that has finished execution but still has an entry in the process table because its parent has not called wait() to read its exit status.
Daemon — A background process that runs continuously, providing system services. Examples include sshd (SSH server), httpd (web server), and cron (task scheduler).
CPU Scheduling Terms
Burst Time — The amount of CPU time a process needs for its current computation phase before it performs I/O or terminates.
Arrival Time — The time at which a process enters the ready queue and becomes eligible for scheduling.
Turnaround Time — Total time from process arrival to completion (Completion Time minus Arrival Time).
Waiting Time — Total time a process spends waiting in the ready queue (Turnaround Time minus Burst Time).
Response Time — Time from process arrival until it first gets the CPU. Critical in interactive systems.
Throughput — Number of processes completed per unit time. Higher throughput means the system is doing more useful work.
Preemption — Forcibly removing a running process from the CPU (before it voluntarily yields) to give the CPU to another process.
Convoy Effect — A phenomenon in FCFS scheduling where short processes wait behind a long-running process, causing poor average waiting time.
Starvation — When a process waits indefinitely because other higher-priority processes keep getting the CPU.
Aging — A technique to prevent starvation by gradually increasing the priority of waiting processes over time.
Time Quantum (Time Slice) — The fixed amount of CPU time allocated to a process in Round Robin scheduling before preemption.
Synchronization Terms
Race Condition — A situation where the system's output depends on the unpredictable order of execution of concurrent processes accessing shared data.
Critical Section — A code segment where a process accesses shared resources. Only one process should execute in its critical section at a time.
Mutual Exclusion (Mutex) — The requirement that when one process is in its critical section, no other process may enter its own critical section for the same resource.
Semaphore — A synchronization variable accessed only through two atomic operations: wait() (P/down) and signal() (V/up). Counting semaphores track resource counts; binary semaphores act as locks.
Monitor — A high-level synchronization construct that encapsulates shared data and the procedures that operate on it, with automatic mutual exclusion.
Deadlock — A state where two or more processes are permanently blocked, each waiting for a resource held by another process in the cycle.
Livelock — A state where processes continuously change state in response to each other without making progress — they are not blocked but accomplish nothing.
Spinlock — A lock where the waiting thread repeatedly checks (spins) until the lock becomes available. Efficient for short waits; wastes CPU for long waits.
Busy Waiting — A technique where a process continuously tests a condition in a loop rather than sleeping. Wastes CPU cycles but avoids context switch overhead.
Memory Management Terms
Logical Address — An address generated by the CPU during program execution. Also called virtual address. It is translated to a physical address by the MMU.
Physical Address — The actual address in RAM hardware. This is what the memory controller uses to access specific memory cells.
Memory Management Unit (MMU) — Hardware that translates logical addresses to physical addresses at runtime using page tables.
Page — A fixed-size block of logical memory. Typical sizes are 4KB or 8KB.
Frame — A fixed-size block of physical memory, same size as a page. Pages are mapped into frames.
Page Table — A data structure that maps page numbers to frame numbers. Each process has its own page table.
TLB (Translation Lookaside Buffer) — A hardware cache of recent page-to-frame translations. Speeds up address translation by avoiding page table lookups for frequently accessed pages.
Page Fault — An interrupt triggered when a process accesses a page not currently in physical memory. The OS must load the page from disk.
Thrashing — A condition where the system spends more time handling page faults than executing processes, caused by insufficient physical memory for active working sets.
Working Set — The set of pages a process is actively using during a given time window.
Internal Fragmentation — Wasted memory within an allocated block because the allocated unit (frame) is larger than the actual data stored.
External Fragmentation — Wasted memory between allocated blocks. Total free memory may be sufficient but is not contiguous.
Virtual Memory — A technique that provides the illusion of a larger address space than physical memory by using disk as an extension of RAM.
Demand Paging — Loading pages into memory only when they are accessed (on demand) rather than loading the entire process at start.
File System Terms
Inode — A data structure storing file metadata (permissions, size, timestamps, data block pointers) but NOT the filename.
Superblock — A data structure containing metadata about the entire filesystem: size, block size, free block count, inode count.
Directory — A file containing a list of (filename, inode number) pairs that maps human-readable names to file metadata.
File Descriptor — An integer handle returned by open() that a process uses to reference an open file in subsequent read/write operations.
Block — The basic unit of disk storage allocation. Typical block sizes are 1KB to 4KB.
Journaling — A technique where file system changes are first written to a log (journal) before being applied to the main structure, enabling crash recovery.
I/O and Storage Terms
DMA (Direct Memory Access) — A hardware mechanism that allows devices to transfer data directly to/from memory without CPU involvement for each byte.
Interrupt — A hardware signal that causes the CPU to suspend its current execution and jump to a specific handler routine.
Device Driver — Software that provides a uniform interface between the OS and a specific hardware device, abstracting hardware details.
Seek Time — Time for the disk arm to move to the correct track.
Rotational Latency — Time for the desired sector to rotate under the read/write head after the arm is positioned.
RAID — Redundant Array of Independent Disks. Combines multiple disks for performance, capacity, or reliability (or combinations thereof).
Security Terms
Authentication — Verifying the identity of a user or process (proving you are who you claim to be).
Authorization — Determining what actions an authenticated entity is permitted to perform.
Access Control List (ACL) — A list attached to a resource specifying which users/groups have which permissions.
Privilege Escalation — An attack where a user gains higher privileges than authorized, such as obtaining root access from a normal account.
Buffer Overflow — A vulnerability where writing beyond a buffer's boundary overwrites adjacent memory, potentially allowing arbitrary code execution.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Glossary of Terms — Operating Systems.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Operating Systems topic.
Search Terms
operating-systems, operating systems, operating, systems, resources, glossary, terms, glossary of terms — operating systems
Related Operating Systems Topics