Scheduling

The process of deciding which process/thread gets to use the CPU and for how long.

Scheduling is a core OS function that allocates the limited CPU resource among competing processes. Schedulers aim to maximize CPU utilization, ensure fairness, and minimize response time. Common algorithms include Round Robin, First-Come-First-Served, and Priority Scheduling.

        graph LR
  Center["Scheduling"]:::main
  Rel_incident_response["incident-response"]:::related -.-> Center
  click Rel_incident_response "/terms/incident-response"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explain Like I'm 5

Think of a busy chef in a kitchen. He has 10 tickets for different meals. He has to decide which steak goes on the grill first and when to start the salad so everything is ready on time. Scheduling is the 'brain' that decides who gets to use the processor next.

🤓 Expert Deep Dive

Preemptive scheduling allows the OS to forcibly interrupt a running process to give another one a turn. Multi-level feedback queues (MLFQ) dynamically adjust process priorities based on their behavior (I/O bound vs CPU bound) to optimize both throughput and interactivity.

📚 Sources