SYSTEM SOFTWARE
Most operating systems offer a graphic user interface (GUI) as well as a command line
interface (CLI).
a) What are the main differences between the two types of interface?
b) What are the pros and cons of both types of interface?
c) Who would use each type of interface?
a) Main differences between GUI and CLI
● GUI (Graphical User Interface)
Uses icons, windows, menus, and buttons. You interact using a mouse/touch.
● CLI (Command Line Interface)
Uses text commands. You interact by typing commands on a keyboard.
b) Pros and cons
GUI – Advantages:
● Easy to learn and use (user-friendly)
● No need to memorize commands
● Visual and intuitive
GUI – Disadvantages:
● Uses more memory and processing power
● Slower for advanced tasks
● Less control for complex operations
CLI – Advantages:
● Faster for experienced users
● Uses less memory/resources
● More powerful and flexible for advanced tasks
CLI – Disadvantages:
● Hard to learn (must remember commands)
● Not user-friendly for beginners
● Small typing errors can cause problems
c) Who would use each?
● GUI:
General users, beginners, students—people who want an easy and visual way to
use a computer.
● CLI:
Programmers, system administrators, and IT professionals—people who need
speed, control, and advanced functions.
Q)Describe the role of buffers and interrupts when a printing job is being sent to an
inkjet printer.
Role of buffers:
● A buffer is a temporary memory area used to store data before it is processed.
● When a print job is sent, the document is first stored in the printer buffer (print
queue).
● This allows the computer to send data faster than the printer can print, without
losing any data.
● The printer then takes data from the buffer at its own speed and prints it.
Role of interrupts:
● An interrupt is a signal sent to the CPU to get its attention.
● The printer sends an interrupt to the computer when:
○ It is ready to receive more data
○ The buffer is empty or nearly empty
○ There is an error (e.g., out of paper, paper jam)
● The CPU temporarily pauses its current task and responds to the printer, ensuring
smooth communication.
In short:
● Buffers store print data temporarily to match speed differences.
● Interrupts notify the CPU when action is needed during printing
Operating system
Operating system – software that provides an environment in which applications can run
and provides an interface between hardware and human operators.
Development Over Time
● Later computers (e.g. Acorn BBC B) used:
○ Part OS in ROM
○ Rest loaded using cassette tape
● Modern computers:
○ OS stored on hard disk (HDD/SSD)
○ Start-up handled by BIOS
○ BIOS stored in flash memory
○ Settings stored in CMOS (CMOS – complementary metal-oxide
semiconductor)
Main Roles of OPERATING SYSTEM
● Provides environment for applications
● Acts as interface between user and hardware
● Hides complexity of hardware
Examples of OPERATING SYSTEM
● Windows
● macOS
● Android
● iOS
Human Computer Interface (HCI)
🔸 CLI (Command Line Interface)
● User types commands
Problems:
● Must remember commands
● Must type exactly (no mistakes)
● Time-consuming
Advantage:
● More control over system
🔸 GUI (Graphical User Interface)
● Uses icons, menus, windows
● Easy interaction (click/touch)
Example: clicking one icon does complex task
WIMP Interface
Stands for:
● Windows
● Icons
● Menus
● Pointer
Mouse controls cursor, opens windows
Post-WIMP (Modern Systems)
● Used in phones/tablets
● Uses touch gestures:
○ Tap
○ Swipe
○ Pinch
More flexible than mouse
Operating System Tasks
1. Memory Management
Memory management – part of the operating system that controls the main memory.
What it does:
● Controls main memory (RAM)
🔸 Memory Optimisation
.Memory optimisation – function of memory management that determines how memory is
allocated and deallocated.
● Decides:
○ Which program gets memory
○ Where it is stored
● Keeps track of:
○ Used memory
○ Free memory
● Moves data between:
○ RAM ↔ HDD/SSD
🔸 Memory Organisation
Memory organisation – function of memory management that determines how much
memory is allocated to an application
How memory is arranged:
● Single allocation → one program uses all memory
● Partitioned memory → memory split into blocks
● Paged memory → fixed-size blocks
● Segmented memory → logical groups (not continuous)
🔸 Memory Protection
Memory protection – function of memory management that ensures two competing
applications cannot use same memory locations at the same time.
● Stops programs from using same memory
● Prevents:
○ Data loss
○ Errors
○ Crashes
○ Security issues
👉 VERY IMPORTANT in exams
2. Security Management
Security management – part of the operating system that ensures the
integrity, confidentiality and availability of data.
Purpose:
Protect data and system
🔸 Methods:
● OS updates
● Antivirus software
● Firewall checks
● User accounts (ID + password)
● Access rights
● Data recovery/system restore
● Prevent hacking/unauthorised access
Ensures:
● Confidentiality
● Integrity
● Availability
3. Process Management
Process management – part of the operating system that involves allocation
of resources and permits the sharing and exchange of data.
Process = program running
🔸 Functions:
● Allocates resources (CPU, memory)
● Schedules processes
● Allows multitasking
● Handles conflicts
● Uses queues
4. Hardware Management
Hardware management – part of the operating system that controls all input/output
devices connected to a computer (made up of sub-management systems such as
printer management, secondary storage management, and so on).
Device driver – software that communicates with the operating system and
translates data into a format understood by the device.
Manages input/output devices
🔸 Functions:
● Communicates with devices using device drivers
● Converts data into device-understandable format
● Assigns priority to devices
🔸 Printing Example (IMPORTANT)
● Loads printer driver
● Sends data to buffer
● Uses queue if printer busy
● Sends control signals
● Handles errors & interrupts
5. File Management
✅ Main tasks:
● Naming files (e.g. [Link])
● File operations:
○ Create, open, delete, rename, copy, move
● Manage folders/directories
● Control access (permissions, passwords)
● Define storage format (e.g. FAT, NTFS)
● Load files into memory
Utility Software
Utility program – parts of the operating system which carry out certain functions, such as
virus checking, defragmentation or hard disk formatting.
What is Utility Software?
● Programs that help maintain, protect, and optimise a computer
● Usually come with the operating system
● Some run in background (e.g. antivirus)
🔹 Types of Utility Software
1. Hard Disk Formatter
Disk formatter – utility that prepares a disk to allow data/files to be stored and retrieved
Purpose:
Prepares a disk so the OS can store and find data
🔸 What it does:
● Divides disk into partitions (blocks)
● Creates file system (e.g. NTFS)
● Stores:
○ Directory info
○ Table of contents (TOC)
🔸 Important Points:
● Full formatting = deletes all data ⚠️
● Writes zeros to disk and checks sectors
🔸 Bad Sectors
Hard bad sectors:
● Physical damage
● Difficult to fix
Soft bad sectors:
● Caused by:
○ power failure
○ crashes
● Easier to repair
🔸 Repair Function:
● Finds bad sectors
● Marks them unusable
● Replaces with spare sectors
2. Virus Checker (Antivirus)
Antivirus software – software that quarantines and deletes files or programs infected by a virus
(or other malware). It can be run in the background or initiated by the user
Purpose:
Protects system from malware/viruses
🔸 How it works:
● Scans files before opening
● Compares with virus database
● Uses heuristic checking (detects suspicious behaviour)
● Puts infected files in quarantine
🔸 Important Points:
● Must be updated regularly
● Runs in background
● Can give false positives
3. Defragmentation Software
Disk defragmenter – utility that reorganises the sectors on a hard disk so that files can be
stored in contiguous data blocks.
Disk content analysis software – utility that checks disk drives for empty space and disk
usage by reviewing files and folders.
Problem:
Files become fragmented (scattered) on HDD
👉 Causes slow performance
🔸 Solution:
● Rearranges data into contiguous blocks
🔸 Result:
● Faster file access
● Less movement of read/write head
🔸 Note:
● Not needed much for SSDs
4. Disk Analysis / Repair Software
Disk content analysis software – utility that checks disk drives for empty space and disk usage by
reviewing files and folders.
Purpose:
● Shows how disk space is used
● Finds unnecessary files
🔸 Functions:
● Deletes:
○ temporary files
○ cookies
○ downloads
● Repairs disk errors
👉 Helps free up space + improve performance
5. File Compression
Disk compression – software that compresses data before storage on an HDD
Purpose:
● Reduces file size
🔸 Benefits:
● Saves storage space
● Faster:
○ downloads/uploads
○ email sending
🔸 Disk Compression (Extra)
● Compresses data before storing
● Decompresses when reading
⚠️ Rare now (large HDDs available)
6. Back-up Software
Back-up utility – software that makes copies of files on another portable storage device
Purpose:
Creates copies of data to prevent loss
🔸 Functions:
● Automatic backup scheduling
● Only backs up changed files
🔸 3 Backup Rule (VERY IMPORTANT)
1. Main file (on computer)
2. Local backup (USB/HDD)
3. Remote backup (cloud)
🔸 Extra Features:
● Restore lost data
● Create restore points
● Keep multiple versions of files
🔸 Examples:
● Windows → File History
● Mac → Time Machine
Program Libraries
Program library – a library on a computer where programs and routines are stored which
can be freely accessed by other software developers for use in their own programs.
Library program – a program stored in a library for future use by other programmers.
Library routine – a tested and ready-to-use routine available in the development system of
a programming language that can be incorporated into a program.
Dynamic link file (DLL) – a library routine that can be linked to another program only at the
run time stage.
What are Program Libraries?
● Collections of pre-written code (subroutines)
● Used by programmers when developing software
A program stored in a library = library program
A small reusable part = library routine (subroutine)
🔹 Why are Program Libraries Used?
● To reuse existing code
● To save time and effort
● To avoid writing code from scratch
🔹 Benefits of Using Program Libraries
⏱️ Saves development time
💰 Reduces cost
●
🧩 Supports modular programming
●
●
✅ Code is already tested → fewer errors
(different programmers work on different parts)
🎮 Helps maintain consistency (same style across software)
●
🔁 Can be reused in many programs
●
●
🔹 Example (Simple Understanding)
Instead of writing:
● graphics code
● sound/music code
● scoreboard code
👉 A developer can just import these from a library
🔹 Types of Program Libraries
🔸 1. Static Libraries
✅ How it works:
● Library code is added into the program during compilation
🔸 Key Points:
● Becomes part of the final program
● Program is self-contained
✔ Advantages:
● No need for external files at runtime
● Program runs independently
❌ Disadvantages:
● Larger program size
● Uses more memory
🔸 2. Dynamic Libraries (DLL)
How it works:
● Library code is linked at run time (not compile time)
Called Dynamic Link Library (DLL)
🔸 Key Idea:
● Program only contains a link
● Actual code is loaded when needed
✔ Advantages:
● Smaller program size
● Saves memory (only loaded when needed)
● Faster execution
● Same DLL can be used by multiple programs
● Can update DLL without recompiling main program
❌ Disadvantages:
❌
● Program not self-contained
● Missing DLL → program may crash
● Corrupted DLL → errors/unexpected results
● Security risk (malware can affect DLL)
🔹 Simple Comparison
Feature Static Library Dynamic Library (DLL)
Linking Compile time Run time
Size Larger Smaller
Memory use Higher Lower
Dependency None Needs DLL files
Flexibility Low High
Language Translators
Translator – the systems software used to translate a source program written in any
language other than machine code.
Compiler – a computer program that translates a source program written in a high-level
language to machine code or p-code, object code.
Interpreter – a computer program that analyses and executes a program written in a
high-level language line by line.
Why Translation is Needed
● Computers only understand machine code (binary)
● Programs written in other languages = source code
● Must be translated using translators
🔹 Types of Translators
1. Assembler
What it does:
● Converts assembly language → machine code
🔸 Key Points:
● Produces machine code directly
● Can:
○ Run immediately OR
○ Be stored for later use
● Needs loader if stored
🔸 Important:
● Machine dependent ❗
Works only on specific hardware
🔸 Used for:
● Fast, low-level tasks:
○ OS parts
○ robots
○ control systems
2. Compiler
What it does:
● Translates entire program at once
🔸 Output:
● Produces object code (executable file)
🔸 Key Points:
● Stored program can run many times
● Recompile only if code changes
3. Interpreter
What it does:
● Translates and executes line-by-line
🔸 Key Points:
● No executable file created
● Must translate every time program runs
🔹High-Level Languages
● Examples:
○ Java
○ Python
○ Visual Basic
👉 Machine independent (portable)
👉 Run on any system with compiler/interpreter
Compiler vs Interpreter
✔ Compiler Advantages:
● Faster execution
● Creates executable file
● Code is hidden (secure)
● Runs without compiler later
❌ Compiler Disadvantages:
● Slow compilation
● Harder to debug
● Errors shown all at once
✔ Interpreter Advantages:
● Easy debugging (line-by-line)
● Errors found immediately
● Can see partial results
❌ Interpreter Disadvantages:
● Slower execution
● Must translate every time
● Source code visible (less secure)
🔹 Important Exam Points
● Compiler finds all errors at once
● Interpreter finds one error at a time
● Compiled programs → faster
● Interpreted programs → easier to debug
🔹 Partial Compilation (VERY
IMPORTANT)
What happens:
● Program is:
1. Compiled → bytecode (intermediate code)
2. Then interpreted to run
🔸 Examples:
● Java
● Python
🔸 Benefits:
● Faster than pure interpretation
● Still portable
Integrated Development Environment
(IDE)
Integrated development environment (IDE) – a suite of programs used to write and test a
computer program written in a high-level programming language.
What is IDE?
Software used to write, test, and debug programs
🔸 Examples:
● PyCharm
● Visual Studio
● NetBeans
🔹 Features of IDE
1. Source Code Editor
● Write and edit code
● Features:
○ Syntax highlighting
○ Prettyprint (neat layout)
○ Auto-complete
○ Context-sensitive help
○ Dynamic syntax checking (errors while typing)
2. Compiler / Interpreter
● Run and test programs
● Usually both available
3. Debugger (VERY IMPORTANT)
Features:
● Single stepping → run line by line
● Breakpoints → pause at specific line
● Watch variables → check values
● Report window → shows results/errors
👉 Helps find logic errors
4. Auto-documenter
● Automatically explains code
● Adds comments/documentation
Prettyprinting – the practice of displaying or printing well set out and formatted source
code, making it easier to read and understand.