2029–2031 edition · for exams from June 2029. Students sitting exams up to November 2028 follow the current course.
5. Software
What the operating system manages — accounts, files, memory, processes, peripherals and interrupts — and how programming languages, translators and IDEs work.
What you need to know212 learning objectives, as printed in the syllabus
- 5.1Types of software and interruptsChanged2026–2028 syllabus: §4.1
Much more on how the operating system manages accounts, files, memory (paging, segmentation), processes, drivers and interrupts.
Learning objectives (7)
- 5.1.1Describe the purpose of an operating system as the software layer that manages the system resources that provides a platform for running application software and an interface for users to interact with the computer hardware
- 5.1.2Describe how an operating system manages user accounts and system security
- 5.1.3Describe how an operating system manages files, including: (a) file systems; (b) directories
- 5.1.4Describe how an operating system manages memory, including: (a) allocating memory to processes; (b) loading processes into RAM; (c) paging and segmentation; (d) virtual memory; (e) memory protection
- 5.1.5Describe how an operating system manages processes, including: (a) scheduling processes; (b) enabling inter-process communication
- 5.1.6Describe how an operating system manages peripherals and device drivers
- 5.1.7Describe how an operating system handles interrupts, including: (a) the conditions that cause hardware and software interrupts; (b) how an interrupt is handled with an interrupt service routine (ISR); (c) how the operating system ensures the interrupted process can later resume
- 5.2Programming languages, translators and IDEsChanged2026–2028 syllabus: §4.2
Adds syntax, run-time environment, prettyprint and AI assistance to the IDE list.
Learning objectives (5)
- 5.2.1Describe the features of: (a) high-level languages; (b) low-level languages, including assembly language; (c) syntax
- 5.2.2Explain the advantages and disadvantages of high-level and low-level languages
- 5.2.3Describe the features and operation of: (a) a compiler; (b) an interpreter; (c) an assembler
- 5.2.4Explain the advantages and disadvantages of each translator and identify the most appropriate for use in a given scenario
- 5.2.5Describe the purpose of an integrated development environment (IDE) as a tool to support software development with various functionality provided, including: (a) code editors; (b) run-time environment; (c) translators; (d) error diagnostics; (e) auto-completion / code completion; (f) prettyprint; (g) AI assistance
Objectives quoted from the 2029–2031 syllabus, Version 1, September 2026; © Cambridge University Press & Assessment.
Notes2every learning objective explained, with worked examples
5.1Types of software and interrupts
The operating system (OS) is the software layer between the hardware and everything else. This section explains its jobs — accounts and security, files, memory (including paging, segmentation and virtual memory), processes and peripherals — and how it handles interrupts so the computer can respond to events and then carry on.
The purpose of an operating system
An operating system is the software layer that:
- manages the system resources — the CPU's time, memory, storage and peripherals;
- provides a platform for running application software — programs ask the OS for resources instead of controlling the hardware directly;
- provides an interface so users can interact with the computer hardware (a graphical user interface with windows and icons, or a command-line interface).
User accounts and system security
- Each user has an account with a username and password (or biometrics), so the OS authenticates who is using the computer.
- Each account has its own files, settings and permissions / access rights; an administrator account can install software and change settings, standard accounts cannot.
- The OS can lock an account after too many wrong passwords, and log who signed in.
- It provides security features such as a firewall, encryption of drives, and installing security updates.
File management
- A file system is the way the OS organises and keeps track of files on storage: it records where each file's data is stored, its name, size, type, dates and permissions.
- Directories (folders) group files in a hierarchy (a tree of folders inside folders), so files can be found by a path such as
Documents/School/notes.txt. - The OS lets users and programs create, open, save, rename, copy, move and delete files and folders, and controls who may read or change each one.
Memory management
- Allocating memory to processes: the OS decides which part of RAM each running program (process) may use, and frees it when the process ends.
- Loading processes into RAM: a program must be copied from secondary storage into RAM before the CPU can run it.
- Paging: memory is divided into fixed-size blocks called pages (and RAM into page frames of the same size). A process's pages can be placed in any free frames, not side by side; a page table records where each page is.
- Segmentation: memory is divided into variable-size blocks called segments, matching logical parts of a program (e.g. a function, or its data).
- Virtual memory: when RAM is full, pages not needed now are moved to secondary storage and swapped back when needed (see §2.3).
- Memory protection: each process may only use its own memory, so one program cannot read or overwrite another's data (or the OS's) — this stops crashes spreading and protects data.
Process management
A process is a program that is running.
- Scheduling: the CPU can only run one process per core at a time, so the OS decides which process runs next and for how long, switching between them very quickly. This makes several programs appear to run at once (multitasking) and gives important processes priority.
- Inter-process communication: the OS provides safe ways for processes to share data and send messages to each other (e.g. copy and paste between programs), while keeping their memory separate.
Peripherals and device drivers
- The OS manages peripherals (printers, keyboards, cameras, storage devices): it sends data to and receives data from them, and handles queues such as print jobs.
- A device driver is software that lets the OS communicate with a particular hardware device — it translates the OS's general commands into the instructions that device understands.
- When a new device is connected, the OS loads (or downloads) its driver.
Interrupts and the interrupt service routine
An interrupt is a signal sent to the CPU to say that something needs attention.
| Hardware interrupts | Software interrupts |
|---|---|
| a key is pressed or the mouse is moved | division by zero |
| the printer runs out of paper or ink | two processes trying to use the same memory |
| data has finished being read from a drive | a program requests something from the OS (e.g. to save a file) |
| a hardware fault; the battery is low | a program error or crash |
| a timer signal (so the OS can switch process) |
How an interrupt is handled:
- The CPU checks for interrupts at the end of each fetch–decode–execute cycle.
- If there is one, the CPU looks at its priority. If it is more important than the current task, the current task is paused.
- The contents of the registers (including the PC) for the current process are saved (on a stack), so it can later resume exactly where it stopped.
- The correct interrupt service routine (ISR) — the code that deals with that type of interrupt — is found and run.
- When the ISR finishes, the saved register values are restored and the interrupted process carries on.
Exam tips
- When asked how the OS manages something, give an action the OS takes (allocates, schedules, loads, protects) — not just a definition.
- Paging = fixed-size pages; segmentation = variable-size, logical segments — this contrast is the usual mark.
- Give interrupts in matching pairs: cause + hardware/software type.
- For 'how the process can resume', say the register contents (including the PC) are saved and later restored.
Mistakes that lose marks
- Saying the OS 'is' the user interface — the interface is one thing it provides.
- Saying an interrupt stops the computer — it pauses the current task.
- Calling a device driver a piece of hardware.
- Mixing up paging (fixed size) and segmentation (variable size).
5.2Programming languages, translators and IDEs
Programs are written in programming languages and then translated into machine code the CPU can run. This section compares high- and low-level languages, explains what syntax is, how compilers, interpreters and assemblers work and when to use each, and the tools an IDE gives a programmer.
High-level and low-level languages; syntax
- High-level languages (e.g. Python, Java) use English-like words and mathematical notation. One statement often does many machine operations. They are machine independent (portable) and must be translated.
- Low-level languages relate closely to the CPU's instruction set: machine code (binary instructions the CPU runs directly) and assembly language (short mnemonics such as
LDD,ADD,STOfor machine code instructions, translated by an assembler). - Syntax is the set of rules for how statements must be written in a language (keywords, punctuation, structure). Breaking them is a syntax error and the code will not be translated.
total = price * quantity # high-level: one lineThe same idea in assembly could take several lines: load price, multiply by quantity, store total.
Advantages and disadvantages
| High-level | Low-level | |
|---|---|---|
| Advantages | easier to read, write, understand and debug; quicker to write; portable — runs on different CPUs once translated for them; many built-in functions and libraries | direct control of the hardware (registers, memory); can be faster and use less memory; no high-level translation overhead; good for device drivers and embedded systems |
| Disadvantages | less direct control of hardware; programs may be larger and slower | hard to write, read and debug; takes longer; machine dependent — only works on that type of CPU |
Compiler, interpreter and assembler
| Compiler | Interpreter | Assembler | |
|---|---|---|---|
| Translates | high-level → machine code | high-level, one statement at a time | assembly → machine code |
| How | translates the whole program in one go into an executable file | translates and runs each line before moving to the next | converts each mnemonic into its machine code instruction |
| Errors | produces an error report for the whole program after translating; no executable until all are fixed | stops at the first error, so it can be fixed and the program run again straight away | reports errors in the assembly code |
| Running later | the executable runs without the compiler and without the source code | the interpreter is needed every time the program runs | the machine code runs without the assembler |
Choosing a translator
| Translator | Advantages | Disadvantages | Best when |
|---|---|---|---|
| Compiler | compiled program runs fast; can be distributed without the source code (protects it); no translator needed by users | errors only listed after the whole program is compiled; compiling takes time after every change | finished programs are being distributed / sold |
| Interpreter | errors found line by line, easy to debug; changes can be tested immediately | runs slower (translates every time); users need the interpreter and the source code | developing and testing a program; learning to program |
| Assembler | gives fast, small machine code from assembly | only for that CPU's assembly language | writing low-level code, e.g. drivers or embedded software |
Integrated development environment (IDE)
An IDE is one piece of software with the tools needed to write, translate, test and debug programs.
| Feature | How it helps |
|---|---|
| Code editor | where code is typed and edited, often with colour-coded syntax highlighting and line numbers |
| Run-time environment | lets the program be run inside the IDE to see its output and test it, without leaving the editor |
| Translators | a built-in compiler and/or interpreter turns the code into a form that can run |
| Error diagnostics | highlights and explains errors, shows the line where they happen; debugging tools such as breakpoints, stepping and watching variables |
| Auto-completion / code completion | suggests the rest of keywords, variable and function names as you type — less typing, fewer spelling mistakes |
| Prettyprint | formats the code automatically — consistent indentation, spacing and colour — so it is easier to read |
| AI assistance | suggests whole lines or blocks of code, explains code or errors, and helps generate tests; suggestions must still be checked by the programmer because they can be wrong |
Exam tips
- For translator questions compare like with like: how it translates, how it reports errors, and whether it is needed when the program runs.
- In a 'which translator' scenario use the clue: still developing → interpreter; distributing a finished product → compiler.
- Low-level: say 'machine dependent' or 'only runs on one type of processor' — a common mark.
- For each IDE feature explain how it helps the programmer, not just what it is called.
Mistakes that lose marks
- Saying an interpreter produces an executable file.
- Saying an assembler translates high-level code.
- Saying high-level languages are run directly by the CPU.
- Describing prettyprint as printing the code on paper.
Infographics6download any diagram as PNG or SVG
What the operating system does
Paging, segmentation & virtual memory
How an interrupt is handled
Compiler, interpreter & assembler
What the operating system manages
IDE features
Key terms16use these exact words in the exam
Test yourself
Check you know the 2029–2031 content
Written for the new syllabus only: every card and question traces to a learning objective above. Rounds are random, and marks earn XP on your dashboard.
4 decks · 60 cards · 18 quiz questions.
From the current course
Most of this topic is taught in the 2026–2028 course today. Its notes and past-paper questions still help — skip anything the 2029–2031 syllabus removed (see the notes above).
- 4. Software2026–2028 topic · 87 past-paper questions

