Understanding OS concurrency on single-threaded hardware
This is an easy conceptual question about the distinction between parallelism and concurrency in operating systems, and how hardware capabilities constrain what an OS can actually do. It tests whether you understand the fundamental limits of single-CPU execution and the mechanisms by which an OS manages multiple tasks despite those limits.
The question pushes you to think clearly about what "running" means: can the OS scheduler and kernel code execute at the same time as user-process code, or must one always pause for the other? The answer hinges on understanding hardware interrupts, context switching, and the role of privileged execution modes. This is foundational material covered in depth in Operating Systems: Three Easy Pieces.
- Hardware interrupts and trap handling
- Privileged (kernel) vs. unprivileged (user) modes
- Context switching and the CPU scheduler
- The difference between parallelism (simultaneous execution) and concurrency (interleaved execution)