This pattern shows how an interrupt service routine (ISR) handles events quickly by signaling a task to do the heavy work later. When an interrupt occurs, the ISR runs briefly and gives a semaphore to unblock a task. The ISR then ends, possibly yielding to the task if it has higher priority. The task wakes up, takes the semaphore, and performs the heavy processing outside the interrupt context. This approach keeps the ISR short and the system responsive. The execution table traces each step: interrupt occurs, ISR signals semaphore, ISR ends, task wakes and processes, then waits again. Variables like the semaphore state and task state change accordingly. Key points include why the ISR avoids heavy work, how the task wakes, and the role of portYIELD_FROM_ISR. The visual quiz tests understanding of semaphore state, task running step, and the effect of yielding from ISR.