Every Diagram the Mid-Sem Can Ask, Drawn
Twenty-seven figures, each drawn as real inline SVG (no pictures to download, nothing that breaks offline), each followed by a short numbered recipe for reproducing it in the exam hall in under three minutes. Every figure is labelled with how likely it is to be asked, taken straight from the syllabus coverage matrix. Switch to dark mode — nothing here depends on colour alone, only on labels and stroke patterns.
The search box above filters the figures (each one is keyword-tagged). The priority and source chips exist for the question cards on the study pages; on this page use the likelihood column of the table below instead.
Contents — jump to a figure
27 figures| Fig | Diagram | Unit | Likelihood of being asked | Full answer lives in |
|---|---|---|---|---|
| 1 | Process state transition (5 states, 6 arrows) | I | Very high Nov-2023 Q.4(a) · Oct-2025 Q.2(a) · Jan-2024 Q.2(b) | Unit I · Process states |
| 2 | Extended seven-state diagram with suspended states | I | High same syllabus point, textbook extension | Unit I · Process states |
| 3 | Queueing diagram of process scheduling | I | Very high Jan-2024 Q.2(c) · Oct-2024 Q.1(e) · Dec-2024 Q.3(b) | Unit I · Scheduling levels |
| 4 | Three threading models (Many-to-One, One-to-One, Many-to-Many) | I | Safety May-2016 Q.1(e) asked M:1 vs 1:1 only; many-to-many never asked | Unit I · Threading models |
| 5 | Simple batch system | I | High Jan-2024 Q.1(a) · Oct-2024 Q.4(b) | Unit I · Batch vs time-sharing |
| 6 | Multiprogramming in memory | I | Very high Nov-2023 Q.1(a) · Oct-2024 Q.4(b) · Dec-2024 Q.2(c) | Unit I · Multiprogramming |
| 7 | Memory hierarchy pyramid | II | Safety not asked in the recent papers; May-June 2017 Q.1(e) | Memory · Hierarchy |
| 8 | MMU: logical 150 → physical 1150 with base and limit | II | Very high Nov-2023 Q.1(c) · Dec-2025 Q.1(c) | Memory · Logical vs physical |
| 9 | Paging address translation | II | Very high Oct-2024 Q.1(c) · Dec-2024 Q.5 · Oct-2025 Q.3(b) | Memory · Paging |
| 10 | Page table with valid/invalid bit, scattered frames | II | Very high Dec-2025 Q.4(a) demand paging · Dec-2024 Q.5 | Memory · Demand paging |
| 11 | Segmentation translation with d < limit check | II | Very high Jan-2024 Q.5(a) · Oct-2024 Q.1(c) · Oct-2025 Q.3(b) | Memory · Segmentation |
| 12 | Segmentation with paging (two-level mapping) | II | Very high Jan-2024 Q.5(a) · Feb-2018 Q.3(a) · Jun-2019 Q.2(b) | Memory · Segmentation + paging |
| 13 | Contiguous allocation, variable partitions and holes | II | High Oct-2025 Q.3(b) · Dec-2025 Q.5(a) first/best/worst fit | Memory · Contiguous allocation |
| 14 | Internal fragmentation in fixed 200K partitions | II | Very high Nov-2023 Q.1(b) · Oct-2024 Q.3(a) · Oct-2025 Q.1(e) | Memory · Fragmentation |
| 15 | External fragmentation before and after compaction | II | Very high same fragmentation pair, always asked together | Memory · Fragmentation |
| 16 | Critical-section structure for two processes | II | Very high Nov-2023 Q.3(a) · Oct-2024 Q.1(d) · Oct-2025 Q.1(b) | synchronization.html · Critical section |
| 17 | Producer–Consumer bounded circular buffer | II | High Jan-2024 Q.4(a) · May-June 2018 Q.5(a) | synchronization.html · Producer–Consumer |
| 18 | Dining philosophers round table | II | Very high Nov-2023 Q.3(b) · Oct-2024 Q.3(b) · Oct-2025 Q.3(a) · Dec-2025 Q.5(b) | synchronization.html · Dining Philosophers |
| 19 | Sleeping barber shop | II | Safety not asked in either book | synchronization.html · Sleeping Barber |
| 20 | Page-fault handling flowchart | II | Very high Dec-2025 Q.4(a) · asked with every replacement question | Memory · Page fault |
| 21 | Thrashing curve: utilisation vs degree of multiprogramming | II | Very high Nov-2023 Q.2(b) · Oct-2025 Q.1(d) | Memory · Thrashing |
| 22 | Overlay structure with an overlay driver | II | Safety Feb-2019 Q.2(b) only | Memory · Overlays |
| 23 | TLB plus page table: hit path and miss path | II | High Dec-2024 Q.5(c) · Jul-2016 Q.2(b) hit-ratio sums | Memory · TLB and EAT |
| 24 | Context switch timeline with the overhead band | I | Very high Jan-2024 Q.2(b) · Oct-2024 Q.2(a) · Oct-2025 Q.2(a) | Unit I · PCB and context switch |
| 25 | PCB in the process table, and what a switch moves | I | Very high process management with the PCB: Jan-2024 Q.2(b) · Oct-2024 Q.2(a) | Unit I · PCB |
| 26 | Shared memory versus message passing | I | Very high IPC: Jan-2024 Q.4(a) · May-2016 Q.4(a) · May-June 2018 Q.1(a) | Unit I · Interprocess Communication |
| 27 | Thread life-cycle (creation → ready → running → finished) | I | High thread states: Jan-2024 Q.1(b) · Feb-2018 Q.1(d) | Unit I · Thread life-cycle |
A. Processes, threads and system structure
Unit IProves that a process cycles between Ready, Running and Waiting until it exits, and that the only arrow into Running is the dispatcher while the only arrow out of Running is one of interrupt, wait or exit. Likelihood: very high — Nov-2023 Q.4(a), Oct-2025 Q.2(a), Jan-2024 Q.2(b).
How to draw this in exam
- Three boxes across the top: New · Ready · Running. Two boxes below: Blocked (under Ready) · Terminated (under Running).
- Left to right along the top: “admitted”, then “scheduler dispatch”, and draw the return arrow back to Ready labelled “interrupt / preemption”.
- Diagonal from Running down to Blocked: “I/O or event wait”.
- Straight up from Blocked to Ready: “I/O or event completion”. Straight down from Running to Terminated: “exit”.
- Count the arrows — six labels. If you have five, you forgot preemption.
Proves that swapping adds two more states and four more transitions, and that the medium-term scheduler — not the CPU — is the only thing that can move a process in and out of memory. Likelihood: high; the five-state figure above is the version actually printed in the papers, this is the extension examiners use to test whether you memorised or understood.
How to draw this in exam
- Draw the normal five-state diagram first, then leave a clear row underneath it.
- Add two boxes in that lower row: Suspended-Ready under Ready, Suspended-Blocked to the right under Blocked. Hatching or a dashed border = “sits on disk”.
- Add exactly four arrows: Ready → Suspended-Ready “suspend”, Suspended-Ready → Ready “activate”, Blocked → Suspended-Blocked “suspend”, Suspended-Blocked → Suspended-Ready “event occurred”.
- Write beside the suspend pair: “medium-term scheduler (swap out / swap in)”.
Proves the three levels of scheduling are three different decisions at three different frequencies, each attached to its own queue, and that the CPU is a resource rather than a queue. Likelihood: very high — Jan-2024 Q.2(c), Oct-2024 Q.1(e), Dec-2024 Q.3(b).
How to draw this in exam
- Put the CPU box top-centre (it is a resource, not a queue), and the ready queue bottom-left, waiting-for-I/O queue bottom-right.
- Draw the job pool at the top-left with a down arrow into the ready queue labelled “long-term scheduler: admit”.
- Ready → CPU up arrow “short-term scheduler: dispatch”; CPU → Ready down arrow “interrupt / quantum expired”.
- CPU → waiting queue “I/O request”; waiting → ready “I/O completed”.
- Add the suspended queue across the bottom and one swap-out and one swap-in arrow on each side, labelled “medium-term scheduler”.
Proves that the model name is just the ratio of user threads to kernel threads, and that blocking behaviour and parallelism follow from that ratio. Likelihood: safety for all three together — the older papers asked M:1 versus 1:1 (May-2016 Q.1(e)) and many-to-many has never been asked, but the syllabus lists it.
How to draw this in exam
- Rule three panels. In each, draw a left column of user-thread boxes and a right column of kernel-thread boxes.
- Panel 1: three left, ONE right, all arrows converging. Panel 2: three left, three right, straight one-to-one arrows. Panel 3: four left, three right, arrows criss-crossing.
- Under each panel write the trade-off in one line: blocked thread blocks all / independent but heavy / multiplexed, needs two schedulers.
- Never draw the kernel threads on the left — the arrow direction user → kernel is part of the mark.
Proves the defining weakness of a simple batch system: the CPU is idle whenever the one resident job is doing I/O, which is exactly the hole multiprogramming fills in the next figure. Likelihood: high — Jan-2024 Q.1(a), Oct-2024 Q.4(b).
How to draw this in exam
- Left: draw three punched-card shapes and write “offline, no user” under them.
- Arrow right into a big rounded box “Batch” containing four small job squares J1–J4.
- Label the next arrow “resident monitor (FMS)” and draw the CPU box with J1 J2 J3 J4 as four touching squares on one horizontal time line.
- Arrow out to a printer/tape box, then one line: “while job I/O runs the CPU is idle — low utilisation, no interaction”.
Proves the mechanism behind the phrase “keeps the CPU busy”: with two or more processes packed into memory, an I/O block by one hands the CPU to another instead of idling it. Likelihood: very high — Nov-2023 Q.1(a), Oct-2024 Q.4(b), Dec-2024 Q.2(c).
How to draw this in exam
- Draw one tall rectangle labelled “main memory” and shade the bottom strip as the resident OS.
- Stack four blocks above it: P1, P2, P3, P4. Mark P2 with a heavier border as the running one.
- Put the CPU box outside on the left and draw one solid arrow from P2 to it, plus a dashed return arrow labelled “P2 does I/O → give CPU to P3”.
- Draw printer and disk boxes on the right and dashed lines from P1 and P4 to them.
- Write one line under the figure: “CPU idle time falls as the degree of multiprogramming rises”.
B. Memory structure, addresses and allocation
Unit IIProves the three-way trade-off — you can have speed, size or price, so the OS stacks all three and hides the stack behind locality. Likelihood: safety as a standalone figure (not asked in 2023–2025; May-June 2017 Q.1(e) asked cache versus main memory instead), but it is the backdrop for paging, TLB and virtual memory.
How to draw this in exam
- Draw a triangle and slice it into five horizontal bands.
- Name them from the apex down: Registers · Cache · Main memory · Disk · Tape.
- Left edge: an upward arrow “faster, smaller, costlier per bit”; below it a downward arrow “bigger, slower, cheaper”.
- On the right of each band write carrier, access time and size — three words each.
- Close with one line: “the hierarchy works because of temporal and spatial locality”.
Proves that logical and physical addresses are two different numbers for the same byte, and that one comparison against the limit register is what stops a process reaching outside itself. Likelihood: very high — Nov-2023 Q.1(c), Dec-2025 Q.1(c).
How to draw this in exam
- Three boxes in a row: CPU → MMU → Main memory, arrows left to right.
- Write “logical 150” on the first arrow and “physical 1150” on the second.
- Drop two small boxes above the MMU, Base = 1000 and Limit = 400, each with an arrow into the MMU.
- Inside the MMU write the two operations: “is 150 < limit?” then “1000 + 150”.
- Add a dashed branch out of the MMU to a trap box, and in memory draw the process block 1000–1399 with 1150 marked inside it.
Proves that paging turns “where does this address point” into a table lookup whose output is a frame number, and that the offset never changes — which is why page size and frame size must be equal. Likelihood: very high — Oct-2024 Q.1(c), Dec-2024 Q.5(a)(b)(c), Oct-2025 Q.3(b).
How to draw this in exam
- Draw the logical address as one bar split in two: page number | offset.
- Arrow down from the page number into a page table drawn as rows of (index, frame, valid); highlight the row you used.
- Draw the offset as a dashed line that sails past the table and lands on the right-hand half of the physical bar.
- Arrow from the highlighted frame value into the left half of the physical bar: frame number | offset.
- Finish with the formula under the picture: physical = f × frame size + d, and one line “page size = frame size”.
Proves two things at once: physical addresses need not be adjacent (external fragmentation is gone), and the valid bit is the single switch that separates simple paging from demand paging. Likelihood: very high — Dec-2025 Q.4(a), Dec-2024 Q.5, Oct-2024 Q.1(c).
How to draw this in exam
- Three columns: pages on the left, page table in the middle, frames on the right.
- Draw the table with four columns — page, valid bit, frame number, protection.
- Map the pages deliberately out of order: page 0 → frame 5, page 1 → frame 2, page 2 → frame 7, and draw thin crossing lines.
- Give the last page valid bit 0, frame blank, and a dashed line down to a hatched “on disk” box.
- Say the sentence: “a 0 here does not mean an error — it means a page fault”.
Proves that a segment address is a pair chosen by the programmer, that physical = base + offset with no arithmetic split of the address, and that the limit test is what makes an out-of-range pointer a trap rather than another process’s data. Likelihood: very high — Jan-2024 Q.5(a), Oct-2024 Q.1(c), Oct-2025 Q.3(b). The worked numbers (1, 200) → 3200 are the same ones used on Memory Management · Segmentation.
How to draw this in exam
- Logical bar split segment-number | offset, then a table underneath with columns seg, base, limit, valid.
- Arrow from the segment number down into the table row; arrow out of that row into a diamond that says “d < limit?”.
- From the diamond draw two paths: “no” down to a fault box, “yes” right into an adder box writing base + offset.
- Draw the offset with a dashed line that skips the table and enters the adder directly — it must not be altered.
- On the right, draw memory as scattered blocks S0, S1, S2, S3 with holes between them, and mark the resulting physical address inside the block it belongs to.
Proves the hybrid keeps the programmer’s logical view (segments, protection, sharing) while the machine’s view becomes fixed-size pages — which is exactly how the external-fragmentation problem of pure segmentation is removed. Likelihood: very high — Jan-2024 Q.5(a), Feb-2018 Q.3(a), Jun-2019 Q.2(b). See Memory Management · Segmentation with paging.
How to draw this in exam
- Logical bar with THREE fields: segment number · page number · offset. Getting the field count right is half the mark.
- Segment number drops into the segment table; write the middle column as “page-table base”.
- Draw a second table to its right — “page table for that segment only” — and feed it the page number.
- Its output is a frame number; concatenate frame ‖ offset, and let the offset sail past both tables on a dashed line.
- Close with memory at the bottom showing the segment’s pages in unrelated frames, and one line: “segmentation visible to the user, paging visible only to the OS”.
Proves that in contiguous allocation the placement decision is “which hole”, the holes accumulate as processes come and go, and total free space can be adequate while still being unusable. Likelihood: high as a picture; the first/best/worst-fit decision on it is very high — Dec-2025 Q.5(a), Jul-2023 Q.2(b). See Memory Management · Contiguous allocation.
How to draw this in exam
- Draw one tall rectangle, mark 0 at the bottom and the memory size at the top.
- Shade the bottom strip as the resident OS, then alternate process blocks and hatched holes going up.
- Write the size and the start address inside every block — P1 25 MB @ 25, P2 30 MB @ 60, P3 12 MB @ 98.
- Add a request box: “new process needs X MB”, then show the largest hole is smaller than X.
- Finish with one sentence naming the disease: external fragmentation, cured by compaction or paging.
Proves the wasted bytes are inside a block that has already been handed over, so no allocator can ever reuse them — the reason fixed partitioning is abandoned for paging. Likelihood: very high — Nov-2023 Q.1(b), Oct-2024 Q.3(a), Oct-2025 Q.1(e), always paired with the next figure. See Memory Management · Fragmentation.
How to draw this in exam
- Draw four equal boxes in a row and label the address scale under them: 0, 200K, 400K, 600K, 800K.
- In box 1 fill 180K of the 200K with P1 and hatch the remaining 20K at the top, writing “wasted”.
- Give box 2 a 90K process with a big hatch, box 3 an exact 200K process (no waste) and leave box 4 empty but NOT hatched.
- Bracket the hatched regions and total them: 20 + 110 = 130K.
- Write the one-line definition — allocated minus requested — and the cure in one more line.
Proves the difference between “free” and “usable”, and that compaction trades CPU time for contiguity — the exact comparison the internal-versus-external question is built to test. Likelihood: very high — Nov-2023 Q.1(b), Oct-2024 Q.3(a), Oct-2025 Q.1(e).
How to draw this in exam
- Draw two identical vertical memory bars, one labelled BEFORE and one AFTER, with 0 at the bottom.
- In the first, stack OS, P1, hole, P3, hole, P5, hole — small hatched holes between every pair of processes.
- Write under it: “free = 18 MB, biggest hole = 6 MB, request = 8 MB → refused”.
- Draw a fat labelled arrow “compaction” pointing to the second bar.
- In the second bar push OS, P1, P3, P5 all down to the bottom and leave one 18 MB hatched hole at the top, with the 8 MB process admitted into it.
C. Synchronization diagrams
Unit IIProves that mutual exclusion is enforced in the entry section, released in the exit section, and that the remainder section is irrelevant to the protocol — which is exactly what the three requirements are phrased around. Likelihood: very high — Nov-2023 Q.3(a), Oct-2024 Q.1(d), Oct-2025 Q.1(b).
How to draw this in exam
- Write the loop once: do { entry; critical; exit; remainder } while(TRUE) — then draw it as four stacked boxes.
- Add the loop-back arrow from remainder to entry and label it while (TRUE).
- Draw the identical column beside it, and one shared-data box between the two critical sections with arrows in both directions.
- Shade the space between the two critical sections and write CS₀ ∩ CS₁ = ∅.
- List the three requirements under the picture — progress and bounded waiting are the two most-marked.
Proves the buffer is a ring whose two pointers never meet except through the two counters, and that overflow and underflow are simply “counter reached zero”. Likelihood: high — Jan-2024 Q.4(a) (inside the IPC answer), May-June 2018 Q.5(a).
How to draw this in exam
- Draw six circles in a ring and join them with thin lines; number them 0 to 5.
- Fill two of them (items present), leave four empty; mark n = 6 in the middle.
- Put an in arrow at the first free slot and an out arrow at the oldest item — arrowheads on the ring.
- Producer box on the left with its six statements, Consumer box on the right with its six.
- Below, three small boxes: empty = 4, full = 2, mutex = 1, and one line saying which process waits on which.
Proves the table is a ring of resources in which each item is claimed by two neighbours, so a uniform pickup order produces circular wait. Likelihood: very high — Nov-2023 Q.3(b), Oct-2024 Q.3(b), Oct-2025 Q.3(a), Dec-2025 Q.5(b); also asked in the older papers four times.
How to draw this in exam
- Draw a big circle (the table) and a small ellipse in the middle (the bowl).
- Place five plates as a pentagon inside the circle, and five squares outside it as the seats P0–P4.
- Put one short thick line between every adjacent pair of plates and number the sticks 1–5.
- From one philosopher draw two arrows, labelled left and right, to its two sticks — show the pickup order.
- Write the deadlock line (all pick left → circular wait) and one or two of the three fixes.
Proves this is the bounded-buffer problem with one server: N chairs bound the waiting side, and the barber and each customer block on opposite counters, which is why a condition-style handshake is needed. Likelihood: safety — not asked in either book, but it is the classic named problem in the syllabus line “other classical synchronization problems”.
How to draw this in exam
- Draw a dashed room. Inside it, one barber chair at the left with an asleep barber, then a row of N chairs.
- Add a counter box on the wall (“count = number seated”) and a door in the right wall.
- Arrows in from a crowd of arriving customers; one dashed arrow back out labelled “shop full → leaves”.
- Under the room draw the three semaphore boxes: mutex = 1, customers = 0, barber = 0, one line each.
- State the two loops in three lines apiece, and note the equivalence to producer–consumer with one consumer.
D. Virtual memory and demand paging
Unit IIProves demand paging is a trap-driven loop — the process is blocked while the disk runs, and the instruction is restarted rather than continued, which is what lets paging be invisible to the program. Likelihood: very high — the backbone of Dec-2025 Q.4(a) and of every page-replacement question.
How to draw this in exam
- Start with a rounded box “CPU references a virtual address”, then a diamond “valid bit = 1?”.
- Yes → a short side box “translate and continue”. No → straight down.
- Down the spine: trap to the OS → find the page on the backing store → diamond “free frame?”.
- Yes → allocate; No → pick a victim (name FIFO/LRU/Optimal) and write it back if modified; merge both into “read the page in”.
- Then “update the page table, set valid = 1”, end at “RESTART the instruction”, and draw the feedback arrow back to the top.
Proves the reversal: past the optimum, more processes means less work, because the paging device — not the CPU — is the bottleneck. The remedy to write beside it: reduce the degree of multiprogramming (suspend processes) and let the survivors keep their working set. Likelihood: very high — Nov-2023 Q.2(b), Oct-2025 Q.1(d), plus four older papers. See Memory Management · Thrashing.
How to draw this in exam
- Axes: y = CPU utilisation (0–100%), x = degree of multiprogramming.
- Draw a curve that climbs to a rounded peak about halfway along, then falls steeply and flattens near zero.
- Drop a dashed vertical line from the peak to the x-axis and label it “optimum degree”.
- Hatch everything right of that line and write THRASHING REGION inside it.
- Add one upward dashed curve for the page-fault rate — it shows WHY the utilisation curve falls.
Proves the trick is a single shared scratch region plus a table the program consults before every cross-segment call — manual virtual memory, defined by the programmer. Likelihood: safety — Feb-2019 Q.2(b) is the only sighting; know the picture and the contrast sentence. See Memory Management · Overlays.
How to draw this in exam
- Draw one memory box divided into three: root/data at the top, a COMMON band, then one OVERLAY AREA.
- Put the current overlay segment inside the overlay area and nothing else.
- Draw a second box for the disk holding OV1…OV5 plus the common part.
- Add a curved “load” arrow from a disk segment into the overlay area and a dashed “discard” arrow back out.
- Finish with a small call-number → segment table and one line: programmer-defined, call-triggered, no page table.
Proves the hit path costs one memory access while the miss path costs three operations, and that the hit ratio alone decides which one dominates the effective access time. Likelihood: high as a diagram, very high as a numerical — Dec-2024 Q.5(c), Jul-2016 Q.2(b), Feb-2019 Q.3(a). See Memory Management · TLB.
How to draw this in exam
- Draw the logical bar (p | d), then the TLB box directly under it with four p → f rows.
- Solid arrow out of the TLB to the right into the physical bar (f | d), labelled HIT.
- Draw the page table under the TLB, a dashed arrow down into it, and a second dashed arrow back up into the same physical bar, labelled MISS.
- Mark one TLB row as the matching entry (double rule or shade it).
- Add a narrow side column with the two cost lines (t + m, t + 2m) and the EAT formula.
E. Dispatch level
Unit IProves a context switch is pure overhead: the CPU is busy but no process advances, and the only work done is one write to a PCB followed by one read from another. Likelihood: very high — Jan-2024 Q.2(b), Oct-2024 Q.2(a), Oct-2025 Q.2(a). See Unit I · PCB and context switch.
How to draw this in exam
- Draw a horizontal time axis and a block for A running at the left end.
- Add a narrow trap/IRQ block, then two hatched blocks: “save A into PCBA”, “load B from PCBB”.
- Close with B running at the right, and bracket the two hatched blocks as OVERHEAD above the axis.
- Put the two PCB boxes above and connect them: an arrow into PCBA (write) and one out of PCBB (read).
- Tick t0–t4 under the axis and write the one-line consequence about the quantum.
F. More Unit I pictures worth having
Unit IDraw this whenever the question says “explain PCB” — the field list alone is only half the marks; showing where the PCB sits and what moves through it is the other half.
How to draw this in exam
- Draw a “kernel” box with a “process table” box under it holding three stacked PCBs.
- Expand one PCB as a tall rectangle listing its eight fields.
- Add a CPU-registers box on the right with an arrow into the PCB labelled “save”.
- Add a second arrow out of the PCB to a “next process” box labelled “restore”.
The whole trade-off in one picture: shared memory is faster for bulk data but pushes the synchronisation problem onto you; message passing is slower but the OS gives you mutual exclusion free.
How to draw this in exam
- Split the page in two and title the halves.
- Left: two process boxes with arrows into one shared box between them.
- Right: two process boxes with arrows going down into and up out of a kernel box.
- Write one caption line under each half saying where the copying happens.
Note the difference from the process diagram: a thread has DELAYED, and it has no SUSPENDED state, because a thread cannot be swapped out on its own.
How to draw this in exam
- Draw four boxes in a straight line: Creation, Ready, Running, Finished.
- Hang Waiting, Delayed and Blocked below Running.
- Arrow each of the three down from Running, and dashed arrows back to Ready.
- Label the downward arrows external event, sleep or snooze, and I/O request.
Diagram Practice Checklist
TrackOne line per figure. Cover the picture, redraw it from the “How to draw this in exam” steps on a rough sheet, then tick only if the labels and arrows match. Ticks are saved in this browser and feed the dashboard progress.