Processes, Threads, and Scheduling
Processes hold a program's resources, threads execute its work, and the scheduler decides which runnable threads use CPU time. These ideas explain why concurrent programs can wait, contend, or respond at different speeds.
itOperating systems | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Processes, Threads, and Scheduling
A program on disk is passive. A process is the operating system's running instance of that program. It holds resources such as an address space, open files, credentials, and one or more threads. A thread is an execution path within that process. It has execution state and can run instructions, block for work, or become runnable again.
This distinction gives you a useful starting point for concurrent systems. A process is usually a protection and ownership boundary. Threads inside it can coordinate through the same process resources, but that convenience creates shared-state risks. Separate processes need an explicit communication mechanism, but a failure in one process is more readily contained by its resource boundary.
What the scheduler does
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://pubs.opengroup.org/onlinepubs/9799919799/functions/V2_chap02.html
Supports
- POSIX process as an aggregation of system resources containing one or more schedulable threads
- Portable thread scheduling model, priorities, and scheduling policy concepts
- https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_lock.html
Supports
- Mutex lock behavior and mutual exclusion for protected shared state
- https://www.kernel.org/doc/html/latest/scheduler/
Supports
- Linux scheduler documentation index and scheduler-specific study path
- https://www.kernel.org/doc/html/latest/scheduler/sched-eevdf.html
Supports
- Fair allocation among runnable tasks and latency-sensitive selection in Linux EEVDF documentation
- https://www.kernel.org/doc/html/latest/scheduler/sched-design-CFS.html
Supports
- Runnable task selection, scheduler classes, regular batch and idle policies, and context-switching events
- https://cdn.kernel.org/doc/html/latest/scheduler/sched-deadline.html
Supports
- Linux deadline scheduling runtime, period, deadline, and timing-oriented workload model
