Difficulty: Easy
Correct Answer: Waiting for some temporarily unavailable resource
Explanation:
Introduction / Context:
Modern operating systems model program execution using process states such as new, ready, running, blocked (or waiting), and terminated. Understanding these states is crucial for debugging, performance tuning, and scheduling analysis.
Given Data / Assumptions:
Concept / Approach:
A blocked process cannot make progress until an external event occurs. Unlike a ready process, it should not be in the run queue. When the awaited event happens, the process transitions to ready and later to running when scheduled.
Step-by-Step Solution:
Identify resource dependency (e.g., disk I/O, network I/O, mutex).Process calls a blocking API or is descheduled upon contention.OS marks it blocked/waiting; it leaves the run queue.Upon event completion, OS transitions it to ready; the scheduler may then dispatch it.
Verification / Alternative check:
Use system tools (e.g., ps/top with state flags, Windows Resource Monitor) to observe threads waiting on I/O or synchronization primitives and note that they do not consume CPU in the interim.
Why Other Options Are Wrong:
Executable/ready (Option A) and running (Option B) contradict the waiting nature.Option C is incorrect; blocked processes are not in the run queue until the wait ends.“None of the above” is incorrect because Option D exactly defines blocked.
Common Pitfalls:
Final Answer:
Waiting for some temporarily unavailable resource.
Discussion & Comments