5 System software and translators
Explain how operating systems coordinate hardware and compare the jobs of assemblers, compilers and interpreters.
Mapped to Cambridge International AS & A Level Computer Science 9618, 2027–2029 Version 2. These original lessons and self-checks are independent study support; they are not Cambridge papers, official marks or grades. The course does not yet provide a timed four-paper simulation or a locked-down Paper 4 programming environment.
Before you begin
- Use the 2027–2029 syllabus for your exam year. AS candidates study Sections 1–12; A Level candidates study Sections 1–20. Paper 4 uses a programming language chosen from Python, Java or Visual Basic in console mode.
Work on paper. Try each question before revealing help, and explain why your method works.
Quick readiness check
Which OS responsibility coordinates processor time among programs?
What you will learn
- Explain the key representations, structures or processes in this syllabus section
- Apply the method to a new computer-science example
- Justify a design choice and check its limits
An operating system manages shared resources
The OS provides a user interface and coordinates processor time, memory, files, input/output devices and security permissions. Scheduling decides which ready process receives processor time; memory management allocates and protects working areas.
Utilities perform maintenance or support tasks such as backup, compression, file management and security checks. Device drivers let the OS communicate with specific hardware through a defined interface.
Translators produce or execute machine instructions
An assembler translates assembly language into machine code. A compiler translates a source program before execution, often producing an object or executable file. An interpreter translates and executes statements during a run.
A linker combines separately compiled modules and libraries; a loader places an executable program in memory. Translation errors and run-time errors arise at different stages. A compiler does not guarantee that a program's logic is correct.
Pause and explain
What does a linker do?
Worked example
A programmer changes one line in a large source program. Compare how an interpreter and compiler handle translation.
Show the worked solution
- An interpreter translates statements as the program runs.
- A compiler translates source code before a program is run.
- State the practical consequence, while recognising implementations differ.
Answer An interpreter handles translation during execution; a compiler normally creates translated code before execution.
Try a topic test
Choose Easy, Normal or Difficult. Save your answers and open worked review after finishing.
Test this topic →From guided practice to a new situation
Write your answer and reasoning first. Use a hint only if you are stuck. The model solution is for self-checking; your written work is not automatically marked.
A system has several ready processes. Explain how scheduling and the OS's process states support multitasking.
Give me a hint
Distinguish a process from its state and explain the scheduler's choice.
Compare my reasoning
- The OS tracks whether a process is ready, running or blocked.
- A scheduler selects a ready process to run.
- When a process waits for input/output it can be blocked so another ready process can use the CPU.
The scheduler shares CPU time among ready processes while the OS tracks and changes their states.
Look for these in your work
- States distinguished
- Ready process selected
- Blocked waiting explained
A project contains several compiled modules that refer to shared library routines. Which translation-stage tool combines them, and what follows before execution?
Give me a hint
Think about resolving external references after compilation.
Compare my reasoning
- The linker combines object modules and libraries and resolves references.
- The loader then places the executable program in memory.
- Execution begins after the program is loaded and required resources are available.
A linker combines modules and libraries; a loader places the resulting program in memory.
Look for these in your work
- Linker role
- Loader role
- Sequence correct
A compiled program runs and produces a wrong total even though translation succeeds. Explain why compilation did not prevent the error.
Give me a hint
Separate syntax or translation success from the correctness of the algorithm.
Compare my reasoning
- Compilation checks whether source can be translated according to language rules.
- A logically incorrect algorithm can still be valid source code.
- Testing representative cases is needed to uncover the wrong result.
Compilation can succeed for a program with a logic error; testing is still required.
Look for these in your work
- Translation limit explained
- Logic error distinguished
- Testing named
Common mistakes
- Claiming a compiled program cannot contain logic errors.
- Confusing a linker with an assembler.
- Describing the operating system as an application used only for file storage.
What can you explain now?
Which translator converts assembly mnemonics into machine code?
Compare with the explanation
An assembler
An assembler translates assembly language; a compiler and interpreter translate high-level source in different ways.
After trying it yourself, choose your next review. This is your self-assessment.
Your review choice appears on Today. Sign in to sync it across devices.
Make it stick
How do an OS, assembler, compiler, interpreter, linker and loader contribute at different stages?
If you needed the solution, close it and solve the problem again from a blank page. A correct answer is stronger when you can explain the reason for each step.