Revision Notes
A Level Computer Science: System Software (A Level) — Revision Notes (Cambridge 9618)
Notes on process states, FCFS, SJF, SRT and round robin, kernel interrupts, paging, thrashing, compiler stages, BNF and RPN for Cambridge A Level 9618.
- Subject
- Computer Science
- Level
- A LEVEL
- Topic
- System Software
- Author
- Marlbridge Academic Team
- Updated
- Reviewed by
- Harris Khan (what this means)
Aligned to Cambridge A Level Computer Science (9618), 2026. Official specification .
Syllabus page (what it covers and how it is assessed): Cambridge A Level Computer Science.
Syllabus points this page covers
9618 (A Level)
- 16 System Software (whole topic)
- 16.1 Purposes of an Operating System (OS)
- 16.2 Translation Software
Found an error? Report a correction.
Need help with this topic? Request a free trial class for A Level Computer Science (9618).
These notes condense Topic 16 System Software, A Level content in Cambridge International AS & A Level Computer Science 9618. The OS half covers resource use, the user interface, process states, the four named scheduling routines, the kernel as interrupt handler, and virtual memory with paging, segmentation, page replacement and thrashing. The translation half covers interpreters, the four compilation stages, BNF and syntax diagrams, and Reverse Polish Notation. It is examined in Paper 3.
Related: System Software (A Level) study guide · System Software (A Level) practice questions · AS System Software revision notes
Syllabus coverage
- 16.1 Purposes of an OS: maximising the use of resources; how the user interface hides hardware complexity; process management (multi-tasking, processes, running/ready/blocked states, scheduling and the routines round robin, SJF, FCFS and SRT, the kernel as interrupt handler and low-level scheduling); virtual memory, paging and segmentation, their difference, page replacement and disk thrashing.
- 16.2 Translation Software: how an interpreter executes without producing a translated version; lexical analysis, syntax analysis, code generation and optimisation; grammar in syntax diagrams or BNF; using RPN to evaluate expressions.
Key terms
| Term | Meaning |
|---|---|
| Process | A program in execution, with its current state |
| Multi-tasking | Several processes in memory, sharing the processor so they appear to run at once |
| Time slice (quantum) | The fixed time a process may run before round robin switches to the next |
| Pre-emptive | The running process can be stopped so another runs |
| Kernel | The core of the OS that stays in memory and handles interrupts and low-level scheduling |
| Page / page frame | Fixed-size block of a process’s logical memory / of physical RAM |
| Segment | Variable-size logical block of a program |
| Page fault | A process needs a page that is not in RAM |
| Thrashing | Pages are swapped so often that more time goes on swapping than on processing |
| Token | A unit of source code (keyword, identifier, operator, constant) produced by lexical analysis |
Process states
| From → To | Why |
|---|---|
| Ready → Running | Selected by the scheduler |
| Running → Ready | Time slice ends (timer interrupt) or pre-empted |
| Running → Blocked | Waiting for I/O or another event |
| Blocked → Ready | The event completes (I/O interrupt) |
Not allowed: blocked → running, ready → blocked.
Scheduling routines
| Routine | Pre-emptive? | Picks next | Good for | Weakness |
|---|---|---|---|---|
| FCFS | No | Earliest arrival | Simplicity | Short jobs wait behind long ones |
| SJF | No | Shortest total time | Low average wait | Needs run times; long jobs can starve |
| SRT | Yes | Least time remaining, checked whenever a process arrives | Fastest completion of short jobs | Long jobs can starve; more switching |
| Round robin | Yes | Next in a circular queue, for one time slice | Fair, responsive for interactive users | Switching overhead |
Worked example: shortest remaining time
A arrives at 0 needing 5; B arrives at 1 needing 2; C arrives at 4 needing 1.
| Time | Event | Running | Remaining after |
|---|---|---|---|
| 0–1 | Only A present | A | A 4 |
| 1–3 | B arrives (2 < 4), pre-empts A | B | B 0 (B finishes at 3) |
| 3–4 | A resumes | A | A 3 |
| 4–5 | C arrives (1 < 3), pre-empts A | C | C 0 (C finishes at 5) |
| 5–8 | A resumes | A | A 0 (A finishes at 8) |
Waiting times (finish − arrival − run): A = 8 − 0 − 5 = 3; B = 3 − 1 − 2 = 0; C = 5 − 4 − 1 = 0.
Kernel and interrupts
- An interrupt arrives (timer at the end of a slice, or an I/O device).
- The kernel saves the running process’s state (registers, program counter) in its process control block.
- The kernel’s interrupt handler deals with the cause (e.g. marks a blocked process as ready).
- The low-level scheduler picks the next ready process and restores its state; it runs.
Paging vs segmentation
| Paging | Segmentation | |
|---|---|---|
| Block size | Fixed | Variable |
| Based on | Physical division of memory | Logical parts of the program |
| Table | Page table: page → frame | Segment map table: segment → start address and length |
| Programmer aware? | No | Yes |
Page replacement: on a page fault with no free frame, choose a victim (e.g. first in first out, least recently used), write it back to disk if it has changed, load the needed page, update the page table.
Thrashing: too little RAM for the active processes → pages swapped out are needed again at once → constant swapping → processor mostly idle waiting for the disk.
Interpreter vs compiler stages
Interpreter: for each statement in turn, analyse it, then execute it by calling the interpreter’s own routines; nothing translated is kept, so loops are re-analysed each time.
| Compiler stage | What it does |
|---|---|
| Lexical analysis | Removes white space and comments; splits code into tokens; builds the symbol table; reports illegal symbols |
| Syntax analysis | Checks the tokens against the grammar rules; builds a parse tree; reports syntax errors |
| Code generation | Produces object code from the parsed program |
| Optimisation | Makes the object code faster or smaller, e.g. removes redundant code |
BNF and syntax diagrams
::=“is defined as”;|“or”;<name>a non-terminal; other symbols are terminals.- Repetition needs recursion:
<number> ::= <digit> | <digit><number>. |goes only between alternatives, never at the start or end of a list or between items that must follow each other.- Syntax diagram: follow the arrows; a branch is an alternative; a loop back is repetition.
Example: <id> ::= <letter> | <letter><id> with <letter> ::= X|Y|Z. Valid: X, ZZY. Invalid: X1 (1 is not a letter), an empty string (at least one letter is required).
Reverse Polish Notation
| Infix | RPN |
|---|---|
| a + b | a b + |
| (a + b) × c | a b + c × |
| a + b × c | a b c × + |
| (a − b) / (c + d) | a b − c d + / |
Evaluate with a stack: push operands; for an operator, pop two values (first popped is the right operand), calculate, push the result.
Example: 9 3 / 2 4 × + → push 9, 3; / gives 3; push 2, 4; × gives 8; + gives 3 + 8 = 11.
Common mistakes and exam traps
- Saying SRT runs “the shortest job first” without explaining pre-emption when a shorter job arrives.
- Using blocked → running.
- Virtual memory confused with virtual machines (June 2024).
- Lexical and syntax analysis merged, or interpretation described as compilation (November 2024, June 2025).
- BNF separators placed at the end of a list or between items in a sequence (November 2024); BNF written without recursion, so length is fixed.
- In RPN, operands applied in the wrong order for − and /.
Frequently asked questions
What is the difference between SJF and SRT? SJF is non-pre-emptive: once a job starts, it finishes. SRT is pre-emptive: if a new process needs less time than the running one has left, it takes over.
Why does a compiler build a symbol table? To record each identifier with information such as its type and address, so later stages can check its use and generate code for it.
Does optimisation change what a program does? No. It changes how the object code achieves the result, making it faster or smaller without changing the output.
Official syllabus
Cambridge International AS & A Level Computer Science 9618, syllabus for 2027, 2028 and 2029, Topic 16 System Software (16.1 and 16.2). Examiner points are summarised on our 9618 past papers page.
Get free revision emails (optional)
Occasional emails with practice questions, worked explanations and links to free resources for the qualification and subjects you choose. No spam, and you can unsubscribe from any email. The free tools on this site never need an email.
Related resources
-
Study guides
A Level Computer Science: System Software (A Level) (Cambridge 9618)
Study guide to process states, scheduling, interrupts, paging, segmentation, thrashing, compiler stages, BNF and Reverse Polish Notation for Cambridge 9618.
Computer Science · Cambridge · A Level
Read guide -
Practice questions
A Level Computer Science: System Software (A Level) — Practice Questions (Cambridge 9618)
Practice questions with worked answers for Cambridge A Level Computer Science 9618: interpreters, BNF, Reverse Polish Notation, scheduling and disk thrashing.
Computer Science · Cambridge · A Level
Try questions -
Past papers
Cambridge International AS & A Level Computer Science (9618) Past Papers: Grade Thresholds and Examiner Report Notes
9618 Computer Science past papers guide: grade thresholds and examiner report notes for June 2024 to June 2025, with links to Cambridge's official papers.
Computer Science · Cambridge · A Level
Read guide
Related articles
-
teaching
A Level tuition in Dubai: Cambridge or Pearson Edexcel International A Level?
Schools in Dubai and Abu Dhabi teach either Cambridge International AS & A Level or Pearson Edexcel International A Level. How the two are structured, why it matters for tuition, and how online classes from Lahore work.
9 October 2026
-
curriculum guides
Choosing subjects at IGCSE and A Level
How subject choices at 14 and 16 affect university options later, and how to keep pathways open without overloading a timetable.
28 July 2026
Studying this with a teacher
Working through Computer Science A LEVEL?
This page is free and stays free. If you would rather be taught it, Marlbridge runs Computer Science classes one-to-one and in small groups of up to 15, online in your own time zone. The first trial class is free. WhatsApp replies within an hour (8am–11pm Pakistan time, every day); email the same day.
Cambridge Computer Science teachers at Marlbridge