Chapter 5: System Software – 9618 CS AS Level Notes
Notes › Chapter 5
Chapter 5 · Paper 1

System Software

Operating systems, utility software, language translators and development environments — the software that runs everything else.

5.1 Operating Systems 5.2 Language Translators

5.1 Operating Systems

Why Do We Need an OS?

Definition

An Operating System (OS) is system software that manages computer hardware and software resources, and provides common services for application programs. Without it, users and programs could not interact with hardware.

Key reasons the OS is essential:

  • Hardware abstraction: Hides complex hardware details from programmers and users
  • Resource management: Allocates CPU time, memory, and devices fairly between programs
  • User interface: Provides CLI or GUI for user interaction
  • Security: Controls access to data and hardware

Key OS Management Tasks

TaskWhat It Does
Memory ManagementAllocates RAM to processes; ensures processes don't interfere with each other; manages virtual memory/paging
Process ManagementCreates/terminates processes; schedules CPU time; manages multitasking
File ManagementOrganises files in directory structure; manages read/write permissions; tracks file locations
Security ManagementUser authentication (logins); access control; audit logging
Hardware ManagementManages I/O devices via device drivers; handles interrupts; controls peripherals

Utility Software

Utility programs perform maintenance and management tasks on the computer system.

🦠 Virus Checker

Scans files for known malware signatures; monitors for suspicious behaviour

💾 Disk Formatter

Prepares a storage device for use by creating a file system structure

🔧 Defragmentation

Rearranges fragmented files on HDD so related blocks are contiguous; improves speed

🔍 Disk Repair

Scans for and repairs file system errors, bad sectors, lost clusters

📦 File Compression

Reduces file sizes (ZIP, 7z) for storage efficiency or transfer

💿 Backup Software

Creates copies of data to protect against loss; full, incremental or differential backups

Program Libraries

Program Library

A program library is a collection of pre-written, reusable code modules that programmers can call from their own programs. Libraries save time, reduce errors, and allow code reuse.

Static Library

  • Library code copied into executable at compile time
  • Executable is self-contained
  • Larger file size
  • No dependency issues at runtime

DLL — Dynamic Link Library

  • Library loaded at runtime (not compile time)
  • Multiple programs share one copy in memory
  • Smaller executables
  • Update library without recompiling programs

5.2 Language Translators

Types of Translator

TranslatorInputOutputHow It Works
AssemblerAssembly languageMachine codeOne-to-one translation; two-pass process
CompilerHigh-level languageMachine code executableTranslates entire program at once; creates standalone .exe
InterpreterHigh-level languageExecuted directlyTranslates and executes one statement at a time; no .exe created

Compiler vs Interpreter

Compiler — Advantages

  • Compiled code runs faster (already translated)
  • Source code can be kept private
  • All errors found before execution
  • Distribution as .exe — no translator needed
  • Better for production/release software

Interpreter — Advantages

  • Easier to debug (stops at first error)
  • Portable across platforms
  • Can execute code interactively (REPL)
  • Changes tested immediately
  • Better during development
Java uses both: Java source code is first compiled to bytecode (.class files), then an interpreter (JVM — Java Virtual Machine) runs the bytecode. This gives portability ("write once, run anywhere") with reasonable performance.

IDE Features

IDE — Integrated Development Environment

An IDE combines a code editor, compiler/interpreter, debugger, and other tools in one application to streamline software development.

✍️ Context-sensitive prompts

Auto-complete suggests valid code as you type based on context

⚠️ Dynamic syntax check

Highlights syntax errors in real-time as you write, before running

🎨 Prettyprint

Automatic code formatting/indentation for readability

📂 Expand/Collapse

Fold code blocks (functions, loops) to reduce visual clutter

🔍 Single stepping

Execute one line at a time to trace program flow and find bugs

🔴 Breakpoints

Pause execution at a specific line; inspect variable values mid-run

📊 Variable watch

Monitor specific variables/expressions while program runs

📋 Report window

Displays error messages, warnings, and runtime output

Scroll to Top