Operating Systems, Utility Software and Robust Software
What Is an Operating System?
Every computer needs a layer of software that manages its hardware resources and provides a platform on which applications can run. This is the operating system (OS). Without an OS, every application would need to contain its own code to communicate with hardware — an impossible duplication of effort. Instead, applications request services from the OS, and the OS handles the low-level work.
Your exam requires you to know four specific functions of an operating system: file management, process management, peripheral management and user management. Each addresses a different aspect of running a computer system reliably.
The four OS functions you must know: File management (organising, storing and retrieving files), Process management (deciding which programs get CPU time and when), Peripheral management (handling communication with input/output devices), User management (creating accounts, setting permissions and controlling access).
The Four OS Functions in Detail
File management keeps track of where every file is stored on secondary storage. The OS maintains a directory structure (folders within folders), tracks file names, sizes and locations, and enforces access permissions (who is allowed to read or modify a file). When you save a document, the OS decides where on the storage device to place it and updates its records.
Process management handles multiple programs running at the same time. A modern computer might have dozens of processes active — the browser, the music player, the background virus scan. The OS switches the CPU between them so quickly that they all appear to run simultaneously. It also manages what happens when a process needs to wait (e.g. for a file to load) — pausing that process and giving the CPU to something else.
Peripheral management allows the CPU to communicate with hardware devices such as printers, keyboards, screens and storage devices. Because each device is different, the OS uses a device driver — a small program that translates between the OS’s standard instructions and the specific commands a particular device understands. When you plug in a new printer, the OS loads or downloads the appropriate driver.
User management allows different people to use the same computer with separate settings and access rights. A school network, for example, might allow students to save files only in their own folder and block access to system settings, while giving network administrators full control. Each user has an account with a defined set of permissions.
Utility Software
Utility software carries out maintenance tasks. Unlike application software (which helps users complete their own work), utility programs serve the system itself. The five utility types on your specification are file repair, backup, data compression, disk defragmentation and anti-malware.
File repair — attempts to recover files that have become corrupted or unreadable. This can happen if a drive develops bad sectors, a file is partially overwritten, or a program crashes mid-save. A file repair utility scans for corruption and rebuilds as much of the file as possible.
Backup utility — creates copies of files and stores them in a secondary location (another drive, a network server, or an external device). If the original files are lost or corrupted, they can be restored from the backup. Backup utilities can be scheduled to run automatically so that copies are kept up to date.
Data compression utility — reduces the size of files so they take up less storage space or can be transferred more quickly. Some compression is lossless (the original can be perfectly reconstructed); other compression is lossy (some quality is permanently discarded). A file archiver (such as a ZIP tool) is a common example of lossless compression utility software.
Disk defragmentation — reorganises files on a magnetic hard disk. Over time, as files are added, deleted and modified, their data becomes fragmented — scattered in non-contiguous sections across the disk surface. A defragmenter moves fragments together so the read/write head needs to travel less, speeding up file access. Note: SSDs do not benefit from defragmentation (and it can reduce their lifespan), so this utility applies to magnetic HDDs only.
Anti-malware — detects, quarantines and removes malicious software (malware) such as viruses, spyware and ransomware. It does this by scanning files against a database of known malware signatures, or by monitoring for suspicious behaviour. Anti-malware is a utility because it maintains the health and security of the system rather than performing a user task.
Robust Software: Why It Matters
Robust software is software that continues to work correctly even when things do not go as planned — unexpected inputs, high traffic, or deliberate attempts to exploit a weakness. In safety-critical systems (medical devices, banking, aircraft control), a software failure can have serious real-world consequences. Even in everyday applications, a crash or a vulnerability that leaks user data is costly.
Developing robust software requires identifying vulnerabilities before they can be exploited. Two methods the specification requires you to know are audit trails and code reviews.
A code review is a design-time technique. Before the software is released, one or more developers read through the source code written by a colleague, looking for bugs, logic errors, security weaknesses and poor practices. A fresh pair of eyes often catches vulnerabilities the original developer missed. Code reviews are particularly effective at identifying issues such as missing input validation (which could allow malicious data to crash the program) or hardcoded passwords.
An audit trail is a run-time technique. While the software is in use, it automatically records a timestamped log of significant actions: which user logged in, which files were accessed, what data was changed and when. If a security incident occurs — say, a database record is altered without authorisation — the audit trail provides a record of what happened, when, and under which account. This makes it possible to trace breaches and investigate suspicious activity.
The key distinction: a code review happens before the software runs (during development) and aims to prevent vulnerabilities from shipping. An audit trail happens while the software runs (at runtime) and aims to detect and trace problems after they occur.
A code review is a design-time technique: developers read each other’s source code before release to find bugs and security weaknesses. An audit trail is a run-time technique: the system automatically logs who did what and when, so security breaches can be traced. Code reviews prevent problems; audit trails detect and record them.