CIE IGCSE | TOPIC 4

SOFTWARE REVISION

Review software types, OS functions, startup, interrupts, programming languages, translators and IDEs. Test your recall and build a focused revision list.

YOUR REVISION ROUTE

Read the summaries, then close your notes and explain each idea in your own words. Use the flashcards to identify uncertain points and build a lesson-linked revision list.

4.1 | TYPES OF SOFTWARE AND INTERRUPTS

System software supports the computer’s operation; application software performs tasks required by users. Startup code brings the OS into operation, and interrupts allow appropriate responses to events.

4.1.1 | SYSTEM AND APPLICATION SOFTWARE

Classify by purpose, not cost, appearance or installation method
CategoryPurposeExamples
System softwareProvide services required by the computerOperating system; backup and anti-malware utilities
Application softwareProvide services required by the userWord processor; spreadsheet; browser; CAD

A word processor creates a report. The OS manages resources and supplies file services. The saved report is data; the keyboard is hardware.

Utilities maintain, manage or protect the system. A downloaded backup utility is still system software in this course; a preinstalled browser is still an application.

Revisit software types

4.1.2 | ALL NINE OS FUNCTIONS

Explain each function through a specific situation
FunctionWhat it does
FilesOrganise files and support save, copy, move and delete
InterruptsArrange suitable responses to attention requests
InterfaceProvide interaction through visual controls or commands
Peripherals and driversCoordinate device communication
MemoryAllocate, track, protect and reclaim working memory
MultitaskingSchedule processor time between tasks
Application platformProvide services for compatible programs
System securityCheck identity and enforce access rules
User accountsMaintain users, settings and access rights

On a single core, rapid switching allows several tasks to make progress over time. Multiple cores can allow parallel execution. A driver is software, not the physical peripheral.

Authentication checks identity; authorisation concerns permitted access. A successful login does not automatically give administrator rights.

Virtual memory uses secondary storage as backing space. It does not create physical RAM and frequent page transfers can reduce performance.

Revisit operating systems

4.1.3 | FIRMWARE AND BOOTLOADER

Firmware is software closely associated with hardware control and retained in non-volatile memory. Some firmware can be updated; non-volatile does not mean permanently unchangeable.

A bootloader loads an OS, or starts the next loading stage, and transfers control. In the syllabus’s simplified model, it is described as firmware running on hardware.

Typical simplified sequence; real systems can have several startup stages
Startup stageRole
Initial firmwarePrepare the hardware and start the boot process
BootloaderLoad required OS code and hand over control
Operating systemManage resources and start required services
ApplicationUse OS services to perform a user task

The CPU executes instructions at all these stages. A typical computer retains OS and application files on secondary storage and loads needed code into memory. It does not keep the whole OS permanently in ordinary RAM.

Revisit firmware and startup

4.1.4 | INTERRUPTS

An interrupt requests processor attention. An interrupt service routine (ISR) contains the instructions used to handle the event.

Real systems often call execution faults exceptions or traps
SourceSyllabus examples
HardwareKeyboard key press; mouse movement
Software / exceptional execution eventDivision by zero; conflicting or invalid access to a memory location

Normal handling: recognise and check the request → save relevant execution state → run the appropriate ISR → restore state → resume when appropriate.

State includes information such as register values and a return position. Saving it preserves what the task needs; it is not a document backup. Error events can instead lead to an error response or termination.

Priority and system rules affect when requests are handled. Interrupts can avoid repeated polling of idle devices, but handling takes processor time.

Revisit interrupts

4.2 | LANGUAGES, TRANSLATORS AND IDEs

Language level changes how much processor detail the programmer manages. Translators connect source code to execution. IDE tools support development, but testing remains essential.

4.2.1 | HIGH AND LOW LEVEL LANGUAGES

High and low describe abstraction, not quality
ComparisonHigh-levelLow-level
Read and writeGenerally easier; abstractions express tasksMore processor-specific detail
DebugGenerally easier to relate source to intentionOften trace registers and addresses
Machine independenceSource often portable with suitable supportClosely tied to the instruction set
Hardware controlMore abstractionClose control of instructions and resources

Python and Java are high-level examples. Assembly and machine code are low-level. High-level source still needs a suitable execution system; portable source does not guarantee a portable executable.

Low-level code is not automatically faster. Algorithm, implementation, compiler optimisation and hardware affect performance.

Revisit language levels

4.2.2 | ASSEMBLY AND MACHINE CODE

Assembly uses mnemonics such as ADD. Machine code encodes instructions the matching CPU can execute. An assembler translates assembly; it does not execute every calculation while translating.

Invented accumulator model, not a real CPU’s universal syntax
Teaching instructionMeaning
LOAD 20Copy the value at address 20 into ACC
ADD 21Add the value at address 21 to ACC
STORE 22Copy ACC to address 22

If memory 20 holds 7 and memory 21 holds 5, ACC becomes 7 then 12, and memory 22 receives 12. Address 21 is not the literal number being added.

A mnemonic is the source name; an opcode is the encoded operation field; an operand identifies data or a location according to the format. Both assembly and machine code depend on the target instruction set.

Revisit instruction fields and the worked trace

4.2.3–4 | COMPILER AND INTERPRETER

The syllabus comparison is simplified; real implementations can combine approaches
PointCompiler modelInterpreter model
OperationTranslate the whole source before executionTranslate and execute as it goes
OutputExecutable after successful compilationNo separate standalone executable first in this model
Error reportDetected source errors reported before executable runsStop at an encountered error
Repeat runsUse unchanged executable without recompilingInterpreter involved when source runs
ChangesCompile again to update executableEdit and rerun with suitable support

An interpreted workflow is often useful during development for quick changes and feedback. The syllabus highlights compiling the final program for distribution or repeated execution. These are common uses rather than a rule banning compilation during development.

Syntax errors break language rules. Runtime errors occur during execution. Logic errors produce unintended behaviour even when the code is valid. No translator guarantees every logic error is found.

A compiler may detect an obvious constant division by zero, but a divisor from user input can cause a fault only when the executable runs. The programmer must still validate and test.

Revisit compilers and interpreters

4.2.5 | THE SEVEN IDE FEATURES

An IDE integrates tools; it is not itself a programming language
FeatureRemember its job
Code editorEnter, edit and save source
Run-time environmentProvide execution facilities
TranslatorsCompile, interpret or assemble as appropriate
Error diagnosticsExplain detected problems
Auto-completionSuggest or finish entries
Auto-correctionFix or offer fixes for recognised problems
PrettyprintImprove consistent layout

Completion and correction are different. Prettyprint improves readability, not the algorithm. Diagnostics cannot guarantee correct logic.

Many IDEs also offer breakpoints, stepping and variable inspection. If price = 12 and quantity = 3 but total = 9, inspection can reveal subtraction where multiplication was intended. A successful correction still needs further tests.

Revisit IDE features

COMMON MISTAKES

  • Classifying software by whether it is visible or preinstalled.
  • Calling the OS a physical processor.
  • Confusing a bootloader with the full OS.
  • Confusing an interrupt request with its service routine.
  • Adding an address as a literal value when the operand selects memory.
  • Assuming a compiled executable works on every target.
  • Assuming successful translation proves correct logic.
  • Confusing auto-completion, auto-correction and prettyprint.

READY TO TEST YOURSELF?

Explain an OS function, describe startup, trace normal interrupt handling, compare translators and justify an IDE feature. Select cards where you cannot yet give a precise answer.