In the following process state transition diagram for a uniprocessor system, assume that there are always some processes in the ready state: (Diagram shows states: Start -> Ready <-> Running -> Terminated, Running -> Blocked -> Ready) Transitions: A (Start->Ready), B (Ready->Running), C (Running->Ready), D (Running->Blocked), E (Blocked->Ready), F (Running->Terminated) Now consider the following statements: I. If a process makes a transition D, it would result in another process making transition B immediately. II. A process P2 in blocked state can make transition E while another process P3 is running. III. The OS uses preemptive scheduling. IV. The OS uses non-preemptive scheduling. Which of the above statements are TRUE? A. I and II B. I and III C. II and III D. II and IV

GATE 2009 · Operating System · Process Scheduling · medium

Answer: C. II and III — Statement II (blocked process can transition E while another runs) and Statement III (OS uses preemptive scheduling) are TRUE.

  1. Analyze Statement I: Statement I: If a process makes transition D (Running->Blocked), another process makes transition B (Ready->Running) immediately. When D occurs, the CPU becomes free. The OS scheduler will pick a process from the ready queue. However, 'immediately' is problematic — there is always scheduler overhead (context switch overhead). More importantly, this statement tries to say D necessarily causes an immediate B, but the OS could have dispatcher delays. In GATE context, Statement I is considered FALSE because in a non-preemptive scheduler, after D, the OS might wait or there's scheduling overhead. The key issue: Statement I is about whether B is IMMEDIATE — not guaranteed.
  2. Analyze Statement II: Statement II: A process P2 in blocked state can make transition E (Blocked->Ready) while another process P3 is running. Transition E is triggered by an I/O completion interrupt, which is an asynchronous event. This can happen at any time, including while P3 is executing on the CPU. The interrupt handler runs and moves P2 from Blocked to Ready queue. This is TRUE — blocked-to-ready transitions are interrupt-driven and happen concurrently with CPU execution.
  3. Analyze Statement III: Statement III: The OS uses preemptive scheduling. The diagram includes transition C (Running->Ready), which represents a process being forcibly removed from the CPU and placed back into the ready queue. This transition exists only if the OS supports preemption (e.g., timer-based preemption). Since the diagram shows transition C, Statement III is TRUE.
  4. Analyze Statement IV: Statement IV: The OS uses non-preemptive scheduling. This directly contradicts Statement III, and transition C in the diagram shows preemption is possible. Statement IV is FALSE.
  5. Identify correct option: True statements: II and III. This corresponds to option C.