Revision — last pass before the exam
Final pass

Revision & Formula Sheet

Everything on this page is derived from the six 2023–2025 papers plus the older ETCS-304 papers in your two books. Priority comes from how often a topic was actually asked — there are no invented probability percentages anywhere on this site.

1. Most Important Questions

Ranked by PYQ evidence

Each line shows the evidence that put it in that tier. Tick a line only after you can write it out cold in the time its marks allow.

Very high Asked repeatedly across the six recent papers

Evidence: recent PYQ + repeated older PYQ — Nov-2023 Q.2(a) · Jan-2024 Q.5(b) · Oct-2024 Q.2(b) · Dec-2024 Q.5(a) · Oct-2025 Q.4(b) · Dec-2025 Q.4(b). Every single recent paper. → practice

Evidence: recent PYQ in all six papers — Jan-2024 Q.3(a) (10) · Oct-2024 Q.4(a) (5) · Dec-2024 Q.3(a) (6.5) · Oct-2025 Q.2(b) · Dec-2025 Q.2(b) (7). → practice

Evidence: recent PYQ, three times — Nov-2023 Q.1(b) · Oct-2024 Q.3(a) (5) · Oct-2025 Q.1(e) (2); plus Feb-2018 and May-June 2018.

Evidence: recent PYQ — Oct-2024 Q.1(c) · Jan-2024 Q.5(a) (7) · Oct-2025 Q.3(b) (5) · Dec-2025 Q.4(a); older May-2016, Feb-2018, Jun-2019.

Evidence: recent PYQ + repeated older PYQ — Nov-2023 Q.3(a) · Oct-2024 Q.1(d) (2) · Oct-2025 Q.1(b) (2) · Feb-2019 Q.1(e) · Jun-2019 Q.5(a).

Evidence: recent PYQ + repeated older PYQ — Nov-2023 Q.3(b) · Oct-2024 Q.3(b) · Oct-2025 Q.3(a) (5) · Dec-2025 Q.5(b) · May-2018 Q.5(a) · Jul-2016 Q.4(c) · Jul-2023 Q.4(b).

Evidence: recent PYQ — Nov-2023 Q.1(e) (2) · Dec-2024 Q.4(b) (5.5) · Dec-2024 Q.1(c) (5) · Jan-2024 Q.4(b) (7.5); older May-June 2018, 2016.

Evidence: recent PYQ + repeated older PYQ — Nov-2023 Q.2(b) · Oct-2025 Q.1(d) (2) · Feb-2019 Q.1(d) · May-2016 Q.3(b) · May-June 2017 Q.2(c) · Feb-2018 Q.1(e). → graph

Evidence: recent PYQ — Nov-2023 Q.4(a) · Jan-2024 Q.2(b) (6) · Oct-2024 Q.2(a) (5) · Oct-2025 Q.2(a) (4); older Jul-2023, Jul-2016, May-2016.

Evidence: asked in three of six recent papers — Jan-2024 Q.2(c) (5) · Oct-2024 Q.1(e) (2) · Dec-2024 Q.3(b) (6); older Feb-2017, May-2016.

Evidence: asked in three of six recent papers — Dec-2024 Q.2(b) (3.5) · Oct-2025 Q.1(a) (2) · Oct-2025 Q.3(b) (5); older Feb-2017.

Evidence: recent PYQ — Jan-2024 Q.2(a) (4) · Oct-2024 Q.1(b) (2) · Dec-2024 Q.1(a) (5); older May-June 2017.

Evidence: recent PYQ — Nov-2023 Q.1(a) · Jan-2024 Q.1(a) (3) · Oct-2024 Q.4(b) (5) · Dec-2024 Q.2(c) (5) · Oct-2025 Q.4(a) (5) · Dec-2025 Q.1(b) (5). Six papers, six questions.

Evidence: recent PYQ — Oct-2024 Q.1(a) (2) · Jan-2024 Q.3(b) (part) · Oct-2025 Q.4(a) (part) · Dec-2025 Q.1(b) (part); older Feb-2019 Q.1(a).

Evidence: recent PYQ — Jan-2024 Q.1(b) (3) · Dec-2024 Q.2(a) (4) · Oct-2025 Q.1(c) (2); older Jul-2023 Q.5(a) (6), Feb-2018, Jun-2019.

Evidence: recent PYQ — Nov-2023 Q.1(c) (2) · Dec-2025 Q.1(c) (5); older May-2016 Q.1(d), Jul-2023 Q.3(a), May-June 2018 Q.1(b).

Evidence: recent PYQ — Jan-2024 Q.4(a) (7.5); older May-2016 Q.4(a) (6), May-June 2018 Q.5(a).

Evidence: recent PYQ — Jan-2024 Q.1(d) (2) · Dec-2025 Q.1(a) (5); older May-June 2018 Q.1(h) (2.5), Jul-2016 Q.3(a), May-June 2017 Q.1(f).

Evidence: recent PYQ — Jan-2024 Q.4(b) (7.5) “define and implement”; older May-June 2017 Q.5(a).

High Asked once or twice in the recent papers

Cover for safety In your syllabus but not asked recently

2. Top Difference Tables

Memorise these

Every one of these has been asked as a “differentiate / compare / distinguish” question in one of the papers. Answer difference questions only in table form.

Multiprogramming vs Time Sharing

BasisMultiprogrammingTime sharing
GoalMaximise CPU utilisationMinimise response time
Switch triggerOnly when the running job needs I/OEvery fixed quantum, I/O or not
UsersSingle operator, many jobsMany users, each with a terminal
MemorySeveral jobs residentSeveral users' processes resident
QuantumNo concept of a quantum10–100 ms time slice
FeelThroughput-oriented batch feelEach user feels exclusive control

Process vs Thread

BasisProcessThread
DefinitionA program in executionA lightweight unit of execution inside a process
Address spaceSeparateShared with sibling threads
OwnsCode, data, heap, stack, registers, file table, PCBStack, program counter, registers only
Creation costHigh and slowLow and fast
Context switchSlower — address space changesFaster — only registers and stack
CommunicationIPC — needs kernel supportDirect through shared memory
Crash blast radiusIsolated to that processCan kill the whole process

Preemptive vs Non-preemptive

BasisPreemptiveNon-preemptive
CPU takeoverCan be taken away mid-executionRuns to completion or until it blocks
Who controls switchingThe OSThe running process
Response timeBetter — suits interactive and real-timeWorse for short urgent tasks
StarvationHigher riskLower risk
OverheadMore context switchesFewer context switches
Shared dataProcess can stop mid-update → inconsistencySafer inside critical sections
ExamplesRR, SRTF, preemptive priorityFCFS, SJF, non-preemptive priority

User threads vs Kernel threads

BasisUser-level (ULT)Kernel-level (KLT)
Managed byThread library in user spaceThe operating system kernel
Kernel knows them?NoYes
Creation / switchCheap, no system callCostly, traps into the kernel
Blocking callBlocks the entire processBlocks only that thread
MultiprocessorCannot run threads in parallelCan run threads in parallel
PortabilityHighKernel dependent

Internal vs External Fragmentation

BasisInternal fragmentationExternal fragmentation
Where the waste isInside an allocated blockOutside every allocated block, in the free holes
CauseFixed-size partitions / pages larger than the requestVariable-size allocation and deallocation leaving scattered gaps
Seen inPaging, fixed partitionsSegmentation, first/best/worst-fit variable partitions
Is the free space usable?No — it belongs to the allocated blockYes in total, but not as one contiguous piece
RemedyChoose a smaller page/partition size; paging avoids it in the sense that only the last page wastesCompaction; or paging / segmentation with paging
Cost of the remedySmaller pages → bigger page tablesCompaction → expensive copying and CPU stall

Logical vs Physical Address

BasisLogical (virtual) addressPhysical address
Generated byThe CPU while executing the programWhat the memory unit actually sees
Seen by the programmer?YesNo
Set of all such addressesLogical address spacePhysical address space
Translated byThe MMU, at run time, by adding the relocation/base register value
Binding timeCompile-time and load-time give absolute code; execution-time binding needs hardware support and is flexible
Example (Dec-2025)150150 + base 1000 = 1150

Paging vs Segmentation

BasisPagingSegmentation
Block sizeFixed (page = frame)Variable — one segment per logical unit
Decided byThe hardwareThe programmer / compiler
Address isPage number + offsetSegment number + offset
TablePage table → frame base addressesSegment table → base + limit per segment
FragmentationInternal onlyExternal only
View of memoryInvisible, system-oriented splitMatches the user's view (code, data, stack)
Sharing & protectionCoarse — per pageNatural — per logical segment
SpeedFaster, simpler allocationSlower — needs compaction and variable-size handling

Contiguous vs Non-contiguous Allocation

BasisContiguousNon-contiguous
PlacementOne single block of consecutive memoryScattered blocks / pages / frames
AddressingBase + offset is enoughNeeds a page or segment table to stitch pieces together
FragmentationExternal (and internal under fixed partitions)Internal only (paging)
Hardware costLow — base and limit registersHigher — page table, TLB
GrowthHard — may need to copy the whole processEasy — just allocate another frame
ExamplesMFT / MVT, first / best / worst fitPaging, segmentation, segmentation with paging

Binary vs Counting Semaphore

BasisBinary semaphore (mutex)Counting semaphore
Value rangeOnly 0 or 1Any non-negative integer
ManagesAccess to a single shared resourceInstances of a resource pool
Initial value1= number of available instances
PurposeEnforce mutual exclusionControl concurrency level
ExampleOne printer, one critical section3 printers, n buffer slots
Inter-changeable?A binary semaphore can implement a mutex, but a mutex cannot implement a counting semaphore

FCFS vs SJF vs SRTF vs Round Robin

BasisFCFSSJFSRTFRR
PreemptiveNoNoYesYes
Chooses byArrival orderShortest total burstShortest remaining burstFixed quantum, round robin
Avg waiting timeUsually worstOptimal among non-preemptiveOptimal of all fourBetween SJF and FCFS
Response timePoorPoor for long jobs firstModerateBest
StarvationNoneLong jobs can starveLong jobs can starveNone
Context switchesFewestFewManyMany (more as quantum shrinks)
Needs burst knownNoYesYesNo

Demand paging vs Pure (non-demand) paging

BasisPure pagingDemand paging
When pages loadThe whole process at load timeOnly when a page is referenced
Virtual memoryNot really usedYes — logical space exceeds physical
Page faultsNone after loadingExpected; handled by the OS
Startup latencyHighLow
NeedsSimple page tableValid/invalid bits, backing store, replacement policy

3. Formula Sheet

Print this

CPU scheduling

QuantityFormulaNote
Turnaround timeTAT = CT − ATCompletion time minus arrival time
Waiting timeWT = TAT − BTBurst time is never “waiting”
Response timeRT = first CPU start − ATOnly asked for preemptive / RR
Average waiting timeΣWT / nn = number of processes
Average turnaround timeΣTAT / n
CPU utilisation1 − (idle time ÷ total time)Report as a percentage
Throughputprocesses completed ÷ total time
RR context switches≈ Σ⌈BT q⌉ − 1q = quantum; last slice of a process needs no switch

Paging and address structure

QuantityFormula
Number of pagesPages = logical address space ÷ page size
Number of framesFrames = physical memory ÷ frame size
Offset bitsoffset bits = log₂(page size)
Page number bitslogical address bits − offset bits
Frame number bitsphysical address bits − offset bits
Page number from an addressaddress ÷ page size (integer part)
Offset from an addressaddress mod page size
Physical addressframe number × frame size + offset
Page-table entries= number of pages (normal) · = number of frames (inverted)
Internal fragmentationpage size − (process size mod page size), or 0 when it divides exactly

Effective access time

CaseFormula
TLB presentEAT = h × (TLB + mem) + (1 − h) × (TLB + 2 × mem)
Simple formEAT = h × thit + (1 − h) × tmiss
Without TLBEAT = 2 × memory access time (page table + data)
With page faultsEAT = (1 − p) × ma + p × page-fault time
Page-fault time= service interrupt + restart + seek + latency + transfer + start + done + dispatch ≈ tens of milliseconds

Page replacement

QuantityFormula
Hit ratioHits ÷ Total references
Fault ratioFaults ÷ Total references
HitsTotal references − Faults
Compulsory faultsat least the number of distinct pages in the string
Ordering ruleOptimal ≤ LRU ≤ FIFO in page faults (usually)

Memory allocation

QuantityFormula
Remaining space after allocationpartition size − process size
Total internal fragmentationΣ(allocated block − requested size)
Total external fragmentationΣ(free holes) that no single waiting request can fit into
Degree of multiprogramming= number of processes resident in memory
Verification noteThe formula TAT = WT + BT appears in some printed answers (for example the Oct-2025 Q.2(b) turnaround table). It is the same thing as TAT = CT − AT once you define WT = TAT − BT, so either is fine — but write TAT = CT − AT first because it is the definition, then derive WT from it.

4. Don't Lose Marks Here

Common mistakes

Scheduling numericals

  • Starting the Gantt chart at t = 0 when the first process arrives at t = 1. Leave the idle slot and label it.
  • Forgetting to re-check arrivals inside a quantum — a new shorter job preempts SRTF immediately, but not SJF.
  • Using WT = CT − AT. That is TAT. WT = TAT − BT.
  • Reporting an average over the wrong n. Count processes, not time units.
  • Writing the RR ready queue but drawing a Gantt that does not match it — the Jan-2024 book answer does exactly this and it is wrong.
  • Not stating your tie-break rule when two bursts are equal. One line at the top of the answer prevents an argument with the examiner.
  • Forgetting that total CPU busy time = Σ burst times. Use it as a check: your Gantt must end at (first dispatch + Σ BT) if there is no later idle gap.

Page replacement

  • Counting a hit as a fault when a page is already resident.
  • In FIFO, evicting the page used longest ago — that is LRU. FIFO evicts the page loaded longest ago.
  • In Optimal, looking backwards instead of forwards for the next use.
  • Forgetting the initial cold-start faults while filling empty frames.
  • Not writing the final totals line — the marks are usually on the count, not the grid.
  • Claiming “more frames always means fewer faults”. Belady's anomaly is the counter-example for FIFO.

Paging & segmentation arithmetic

  • Mixing bytes / words / bits. Write the unit on every line.
  • Saying page size is a power of 2 “to save memory”. It is so the CPU can split the address with bit masking instead of division.
  • Confusing the number of page-table entries (= pages) with the number of frames.
  • Internal fragmentation: if the process size divides exactly by the page size the answer is 0, not “page size”. The Feb-2018 book answer gets this wrong.
  • Adding a page-fault service time in ms to a memory access in ns. The Jun-2019 book answer writes “25 + 100 = 125 ns” — dimensionally impossible.

Theory answers

  • Answering a “differentiate” question in paragraphs. Always a table with a Basis column.
  • Writing the process state diagram without labelling the arrows — the labels are the marks.
  • Confusing progress with bounded waiting. Progress = no deadlock among willing processes. Bounded waiting = a cap on how many times others may jump ahead of you.
  • Saying a mutex and a binary semaphore are the same thing. A mutex has ownership (only the holder may release it); a binary semaphore does not.
  • Writing thrashing as “high page faults” only. You must link it to degree of multiprogramming ↑ → page faults ↑ → CPU utilisation ↓, and draw the curve.
  • Answering “why is strict non-preemptive scheduling unlikely” with a definition instead of the four consequences: poor responsiveness, unsuitable for multitasking, blocking issues, no interrupt handling.
  • Copying the book's confusing phrasing (for example “virtual memory allows too fast and easy processes”). Rephrase in your own clear English.

5. The 30-Minute Final Revision

Do this last

Set a timer. Five minutes per block. Do not read new material — only recall, and open the linked page when you get stuck.

Minutes 0–5 · Definitions

Say out loud, then check: operating system · process · thread · program vs process · interrupt · IPC · context switch · deadlock (one line only, it is not in your syllabus) · virtual memory · fragmentation.

Pages: Unit I A · Memory

Minutes 5–10 · Scheduling

Draw the five-state process diagram from memory with all six arrow labels. Then recite the three schedulers table and the six criteria. Then name which of FCFS/SJF/SRTF/RR/Priority is preemptive.

Pages: Process states · Schedulers · Diagram

Minutes 10–15 · Synchronization

Recite the three requirements (Mutual Exclusion, Progress, Bounded Waiting) precisely. Then the wait/signal code for a semaphore. Then the Dining Philosophers pseudocode and one deadlock fix. Then say what the Sleeping Barber problem is.

Page: Synchronization

Minutes 15–20 · Paging + Segmentation

Draw the paging address-translation picture and the segmentation one next to it. Say why paging gives internal and segmentation gives external fragmentation. Then explain segmentation-with-paging in one sentence: each segment is paged.

Pages: Memory · Paging diagram · Seg+Paging

Minutes 20–25 · Virtual memory + replacement

Draw the page-fault handling flowchart. Then state FIFO / LRU / Optimal in one line each and recite Belady's anomaly. Then explain thrashing with the curve and name the fix.

Pages: Memory · Page fault · Thrashing

Minutes 25–30 · Formulas + diagrams

Copy the formula sheet onto a blank sheet from memory. Then flip through the Diagram Bank and, for each, say only the “How to draw this in exam” steps out loud.

Pages: Formula sheet · Diagram Bank

6. Final Checklist — every syllabus topic

Interactive

This is the complete Unit I + Unit II syllabus as one list. Tick only what you can write in an exam hall without notes. Your ticks persist across refreshes and roll up on the dashboard.

Unit I · Introduction

Unit I · Processes

Unit I · Threads

Unit I · Processor Scheduling

Unit II · Process Synchronization

Unit II · Memory Organization & Management

Unit II · Virtual Memory