0% found this document useful (0 votes)
0 views16 pages

Software Chapter4 Notes

The document provides a comprehensive overview of software types, including system and application software, along with their functions and examples. It explains the software hierarchy, the roles of utility programs, operating systems, and the differences between command line and graphical user interfaces. Additionally, it covers programming concepts such as high-level and low-level languages, machine code, and the function of translators like compilers and interpreters.

Uploaded by

Hafeez Ur Rehman
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views16 pages

Software Chapter4 Notes

The document provides a comprehensive overview of software types, including system and application software, along with their functions and examples. It explains the software hierarchy, the roles of utility programs, operating systems, and the differences between command line and graphical user interfaces. Additionally, it covers programming concepts such as high-level and low-level languages, machine code, and the function of translators like compilers and interpreters.

Uploaded by

Hafeez Ur Rehman
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Types of Software & Interrupts

A visual, easy-to-follow study guide — with diagrams for every core idea

On this page
1. The Software Hierarchy
2. System vs Application Software
3. Application Software Types
4. System Software Types
5. Utility Programs
6. Operating System Functions
7. CLI vs GUI
8. Booting a Computer
9. Interrupts & Buffers
10. Glossary
11. One-Glance Summary

1. The Software Hierarchy

Every computer is built in three stacked layers. Each layer depends completely on the one beneath it.

APPLICATION SOFTWARE
Word Processor · Spreadsheet · Games · Browser · Database · CAD

SYSTEM SOFTWARE
Operating System · Utility Programs · Device Drivers

HARDWARE
CPU · RAM · HDD/SSD · Printer · Screen

Each layer only works because the layer below it is running

Fig 1. The three-layer software/hardware hierarchy

Real-life analogy: On your phone — the hardware is the physical chip and screen; the system software is
Android/iOS making the buttons and camera actually work; the application software is Instagram or
WhatsApp, the apps you actually open and use.

2. System Software vs Application Software


SYSTEM SOFTWARE

Runs the machine


Controls & manages hardware, provides a platform for other software to run, gives you a way to interact with
the computer (HCI), and allocates hardware resources.

Example: Windows, macOS, a printer driver

APPLICATION SOFTWARE

Does the task you want


Lets the user perform a specific job. Can be a single program (Notepad) or a suite (Microsoft Office). The user
chooses when to run it.

Example: Excel, Chrome, Minecraft

3. Application Software — Types & Real-Life Examples

Spreadsheet
Numbers organised in cells (e.g. B6); formulas, graphs, "what-if" modelling.

Excel — forecasting a shop's monthly profit

Database
Tables of rows (records) & columns (fields); supports queries and reports.

A school database — "list all Grade 10 students"

Apps (mobile)
Downloaded from an App Store; games, streaming, GPS, banking, camera.

Google Maps, Spotify, Instagram

Control & Measuring


Reads sensor data & controls a real process by comparing to stored values.

Factory adding acid when a pH sensor detects imbalance

Video Editing
Rearranges clips, adds titles/transitions, colour correction, sound editing.

Adobe Premiere — editing a YouTube vlog


Graphics Manipulation
Edits bitmap (pixels) or vector (lines/curves) images.

Photoshop (bitmap) vs Illustrator (vector) — logo design

Photo Editing
Brightness, contrast, saturation, red-eye removal, retouching.

Removing a photobomber from a holiday picture

Word Processor
Create/edit/format text, spellcheck, copy-paste, import images.

Microsoft Word — writing a CV or essay

4. System Software — Types & Real-Life Examples

COMPILER

Translates high-level language (HLL) source code into machine code (object code) the CPU can run directly.

Turning a Python program into an executable

LINKER

Joins separately-written object files (modules) into one final runnable program.

Combining a game's graphics + sound + physics modules into one .exe

OPERATING SYSTEM

Background software handling I/O, the user interface, error handling, and program execution.

Windows, macOS, Android, iOS

DEVICE DRIVER

Lets one hardware device "speak the same language" as the operating system.

Installing a driver so a new printer works with your laptop

UTILITY PROGRAMS

Small tools that manage, maintain and protect computer resources (see next section).

Antivirus, disk defragmenter, backup software


5. Utility Programs — In Depth

Virus Checkers (Anti-virus)

Yes Quarantine
(delete or user decides)

Compared to virus
File scanned Suspicious?
database + heuristics

No File runs normally

Fig 2. How anti-virus scanning decides a file's fate

Watch out — false positive: a completely safe file can sometimes get wrongly flagged as a virus.

Defragmentation Software

Over time, files get scattered ("fragmented") across disk sectors, forcing the read/write head to jump around
→ slower access. Defragmentation rearranges data into contiguous (side-by-side) sectors.

BEFORE — File 1 is scattered


0 1 2 3 4 5 6 7 8 9 10 11

↑ File 1 (navy) is split into two separate groups — extra head movement needed

AFTER — Defragmented (contiguous)

Fig 3. Navy = File 1, Orange = File 3, Beige = free sectors. Notice File 1 becomes one solid block after
defragmentation.

⚠ SSDs (solid state drives) do not need defragmenting — they have no moving read/write head, so scattered
data isn't a speed problem.

Backup Software — The Rule of 3 Copies

1. Working copy 2. Local backup 3. Remote backup


Internal HDD / SSD Portable / external SSD Off-site / cloud storage

Fig 4. For full safety, an important file should exist in all three places at once

OS Utility Behaviour
Windows File History Hourly snapshots to an external drive; keeps old versions forever unless changed

macOS Time Machine Hourly → daily (past month) → weekly (older); oldest deleted when drive fills up

Security Software & Screensavers

Security software manages user accounts/passwords, works with antivirus, runs firewalls, encrypts/decrypts
data, and verifies that updates come from a trusted source.

Screensavers originally stopped "phosphor burn" on old CRT screens. Today they mainly trigger auto-logout
for security, or run background tasks (like a virus scan) while the computer is idle.

6. Operating System — 9 Core Functions

HCI
CLI or GUI interface

App Platform Memory Management


Environment for apps to run Tracks & protects RAM use

Interrupt Handling OPERATING Security Mgmt


Pauses tasks to service signals SYSTEM Passwords, firewall, updates

Hardware/Peripheral
File Management Manages drivers, queues, buffers
Create, rename, move, delete
Multitasking
Shares CPU across processes

User Account Management

Fig 5. The nine core jobs of an Operating System, radiating out from its central role

Function Real-life example

Memory management Prevents Chrome and Word from corrupting each other's data in RAM

Security management Blocking repeated failed login attempts

Hardware/peripheral mgmt A printer holding multiple documents in a queue

File management Right-click → Rename on a file

Multitasking Listening to Spotify while browsing Chrome


User account management A school computer where teachers get more access than students

7. Human Computer Interface: CLI vs GUI

>_

CLI — Command Line Interface


Type text commands to control the computer.
✅ Direct control, unrestricted options, uses little memory
❌ Must memorise commands, slow, error-prone typing

Used by: programmers, technicians, network admins

GUI — Graphical User Interface


Click icons/windows with a mouse or touch.
✅ User-friendly, no commands needed
❌ Uses far more memory, limited to icons provided

Used by: everyday end-users

GUI uses WIMP = Windows, Icons, Menus, Pointer. Touchscreens use post-WIMP gestures (pinch, swipe,
rotate).

A network engineer configuring a router types commands (CLI). A student opening Instagram just taps icons
(GUI).

8. Booting Up a Computer

Power ON Finds storage Loads OS into RAM OS running


BIOS activates device holding the OS ("bootstrap loading") Ready to load apps

Fig 6. The boot sequence, start to finish

Term Full form Role

BIOS Basic Input/Output System Firmware that starts the motherboard and finds the OS

EEPROM Electrically Erasable Stores the BIOS program; keeps data with no power, but can be updated
Programmable ROM

CMOS Complementary Metal- Stores BIOS settings (e.g. clock speed); needs constant battery power —
Oxide-Semiconductor resets to factory defaults if battery removed
9. Interrupts & Buffers

An interrupt is a signal sent to the CPU telling it to pause its current task and deal with something more
urgent.

Cause Real-life example

Timing signal A scheduled system clock tick

I/O process A printer or disk drive requesting more data

Hardware fault Paper jam in a printer

User interaction Pressing Ctrl+Alt+Break

Software error Divide by zero, missing .exe file, two processes clashing over memory

How an interrupt is serviced

1. Interrupt 2. Save status 3. Run ISR 4. Resume


signal received Program Counter + registers Interrupt Service Routine Restore registers, continue

Fig 7. PC = Program Counter, ISR = Interrupt Service Routine

Why buffers matter

A buffer is a temporary storage area that compensates for the speed mismatch between a fast CPU and a
slow device.

Streaming a movie: data downloads faster than you watch it, so it's held in a buffer to stop the video "freezing."

Flowchart: printing a document (buffer + interrupt working together)


Any data to send
to the printer?

Yes

Data sent from memory


to the PRINTER BUFFER

Processor is FREE to do
other tasks while buffer empties
to the printer

Buffer empties → INTERRUPT


signal sent asking for more data
(current task is suspended while serviced)

No All data sent


to printer?

Yes

Printing complete ✔

Fig 8. The printer keeps looping back for more data until the whole document is printed — all while the CPU is free to
multitask

Without buffers and interrupts, the CPU would sit idle waiting for the (very slow) printer — a massive waste of
processing power. This is the same idea behind downloading a file while listening to music "at the same time."

10. Glossary of Abbreviations

OS Operating System — manages hardware & runs apps

HCI Human Computer Interface — CLI or GUI

CLI Command Line Interface — text-based

GUI Graphical User Interface — icon/window-based

WIMP Windows, Icons, Menus, Pointer — classic GUI model

HLL High-Level Language — e.g. Python, Java, C++

HDD Hard Disk Drive — mechanical magnetic storage


SSD Solid State Drive — flash storage, no moving parts

BIOS Basic Input/Output System — boots the computer

EEPROM Electrically Erasable Programmable ROM — stores the BIOS

CMOS Complementary Metal-Oxide-Semiconductor — stores BIOS settings

PC Program Counter — register holding the next instruction's address

ISR Interrupt Service Routine — code that handles an interrupt

VID/PID Vendor ID / Product ID — identify USB devices

RAM Random Access Memory — temporary working memory

11. One-Glance Summary

Software = System (runs the machine) + Application (does the task)

Utilities = antivirus, defrag, backup, security, screensavers — all maintain the computer
OS = the "manager" — memory, security, files, multitasking, hardware, interrupts, user accounts,
HCI
CLI = power & control (techies) · GUI = ease of use (everyday users)
Booting = BIOS (in EEPROM) → finds OS → loads it into RAM

Interrupts = an "urgent tap on the shoulder" for the CPU; buffers stop the CPU wasting time
waiting on slow devices
​ Programming Languages, Translators
& IDEs
A visual, easy-to-follow study guide — with diagrams for every core idea

On this page
1. What Is a Program?
2. High-Level vs Low-Level Languages
3. Machine Code
4. Assembly Language
5. Translators: Compiler, Interpreter, Assembler
6. Compiler vs Interpreter
7. Integrated Development Environments (IDEs)
8. Extension: Interrupts in the Fetch–Execute Cycle
9. Glossary
10. One-Glance Summary

1. What Is a Program?

A computer only understands one language natively: machine code (binary). Everything a
programmer writes eventually has to become machine code before the computer can run it — just like
two people who speak different languages need a translator.

​ TRANSLATOR
Compiler / Interpreter / Assembler
Programmer Computer
writes HLL code runs machine code

01001100 01000100 01000001 ...

Fig 1. Every program must be translated into binary machine code before the CPU can run it

2. High-Level Languages vs Low-Level Languages

HIGH-LEVEL LANGUAGE (HLL)

Written for humans


Close to English, hardware-independent, portable across different computers. Faster to write, read, debug and
maintain.

Sum := FirstNumber + SecondNumber


Examples: Python, Java, C++, Pascal, Visual Basic

LOW-LEVEL LANGUAGE

Written for the machine


Tied to a specific computer's hardware/architecture. Includes machine code (binary) and assembly language.

0001 00010010
0100 00010011
0000 00011010

Used when speed or hardware control matters most

Advantages Disadvantages

High- Independent of computer type · Easier to Programs can be larger · Can take
level read/write/understand · Quicker to write · Easier & quicker to longer to execute
debug · Easier to maintain

Low- Can use special hardware · Uses machine-dependent May not use special hardware portably ·
level instructions · Small memory footprint · Executes a task very Longer to write & debug · Harder to
quickly understand

3. Machine Code

The computer's native language — pure binary instructions. Programmers rarely write it directly because it's
extremely hard to read, so it's usually shown in hexadecimal for convenience.

Hexadecimal Binary

1 12 0001 00010010
4 13 0100 00010011
0 1A 0000 00011010

The same "Sum := FirstNumber + SecondNumber" instruction, written in machine code

4. Assembly Language

A step up from machine code — uses short memorable mnemonics instead of binary/hex. Still tied to specific
hardware, so must be translated by an assembler before running.

LDA First ; load value of First into accumulator


ADD Second ; add value of Second to accumulator
STO Sum ; store accumulator's value into Sum

Fig 2. Assembly language for "Sum := First + Second" — one mnemonic per operation
Why would anyone still write assembly? To use special hardware, use machine-dependent instructions,
save memory space, or make code run as fast as possible.

5. Translators: Compiler, Interpreter, Assembler

A translator is a utility program that turns human-written code into machine code. There are three types:

COMPILER

Translates an entire HLL program into machine code all in one go, producing an executable file. If errors exist,
no program is produced — just an error report.

Runs without the compiler afterwards

INTERPRETER

Translates and runs one statement at a time. Stops immediately at the first error, often suggesting a fix.
Must re-translate the program every time it's run.

Needs the interpreter every time it runs

ASSEMBLER

Translates assembly language into machine code. Usually one assembly statement → one machine code
instruction. Produces a reusable executable.

Runs without the assembler afterwards

How a compiler works

Entire HLL program Executable machine code file


COMPILER
Sum := First + Second Runs anytime — no compiler needed again

If errors found → an error report is produced instead

Fig 3. A compiler translates everything up-front, once

How an interpreter works

Read one Translate Execute Error found?


statement it it immediately Stop + show message

Repeat for the next statement (no error = keep going)


Fig 4. An interpreter works statement-by-statement, and must be present every time the program runs

Compiler Interpreter Assembler

Translates Whole HLL program at once One HLL statement at a time Assembly language program

Output Executable machine code file No executable file produced Executable machine code
file

Needed No Yes, every time No


again to run?

Typical use Distributing finished software Developing/testing a program Distributing finished


software

Statement 1 HLL statement → several 1 HLL statement → several 1 statement → usually 1


ratio machine instructions machine instructions machine instruction

6. Compiler vs Interpreter — Advantages & Disadvantages

INTERPRETER

✅ Easier & quicker to debug/test while developing · Easier to edit during development
❌ Can't run without the interpreter · Slower to execute

COMPILER

✅ Runs without the compiler · Compiled program stored ready-to-use · Takes up less memory when running ·
Executes faster
❌ Takes longer to write, test and debug during development

Many real IDEs use both: an interpreter while you're writing/testing code, then a compiler to produce the final,
fast, distributable version.

7. Integrated Development Environments (IDEs)

An IDE bundles everything a programmer needs into one piece of software — e.g. PyCharm (Python),
Visual Studio (Visual Basic/C#), BlueJ (Java).
Code Editor
Write & edit code in one place

Prettyprinting Translator
Colour-codes & formats code Compiler and/or interpreter

IDE Runtime + Debugger


core features Single-step, breakpoints

Auto-documenter Error Diagnostics


Explains code + prettyprinting Flags errors live, suggests fixes

Auto-completion
Suggests variables, keywords

Fig 5. The core features bundled inside a typical IDE

Code editor
Write and edit code without switching to a separate text editor — speeds up development.

Translator
Usually offers both a compiler and interpreter — interpreter for development, compiler for the final release
version.

Runtime + Debugger
Single-stepping runs one line at a time; breakpoints pause execution so a report window can show variable
contents — helps find logic errors.

⚠ Error diagnostics & auto-correction


Underlines errors (often in red) as you type, and suggests fixes before you even run the program.

⌨ Auto-completion
Context-sensitive prompts for variable names and reserved words as you type.

Auto-documenter & prettyprinting


Auto-documenter explains what a piece of code does; prettyprinting colour-codes and neatly lays out the
program (e.g. strings shown in red).

8. Extension: Interrupts in the Fetch–Execute Cycle


A special interrupt register tracks whether an interrupt has occurred while the CPU is mid-cycle. For
example, its status might change from 0000 0000 to 0000 1000 if a fault occurs writing to the hard drive.

1. At the next Fetch–Execute cycle, the interrupt register is checked bit by bit
2. A non-zero pattern means an interrupt is waiting to be serviced (or ignored, based on priority)
3. The CPU stops its current task and saves its register contents
4. Control transfers to the Interrupt Service Routine (ISR), aka the interrupt handler
5. Once serviced, the register is reset and the saved register contents are restored

START

No
Any
Fetch the next instruction Decode and execute instruction interrupts?

Yes

No
End of
(ISR services the interrupt, then loops back)
program? Interrupts are disabled
Yes

END
Fig 6. Interrupt checking happens once per Fetch–Execute cycle — right after an instruction is decoded and executed

Key idea: Interrupts are only checked at fixed points in the cycle (not mid-instruction), and can be temporarily
disabled while one is already being serviced so a second interrupt can't interrupt the interrupt.

9. Glossary of Abbreviations

HLL High-Level Language — e.g. Python, Java, C++, Pascal

IDE Integrated Development Environment — e.g. PyCharm, Visual Studio, BlueJ

ISR Interrupt Service Routine — code that handles an interrupt (aka interrupt handler)

LDA LoaD Accumulator — assembly mnemonic to load a value into the accumulator

ADD Assembly mnemonic to add a value to the accumulator

STO STOre — assembly mnemonic to save the accumulator's value to a variable

10. One-Glance Summary

Computers only understand machine code — everything else must be translated


High-level languages = easy for humans, portable · Low-level languages (machine code &
assembly) = hardware-specific, fast, compact
Compiler = translates the whole program once, produces a standalone executable, runs fast

Interpreter = translates & runs one line at a time, needed every run, great for
development/debugging

Assembler = turns assembly mnemonics (LDA/ADD/STO) into machine code, usually 1:1
IDEs bundle a code editor, translator, debugger, error diagnostics, auto-completion, and auto-
documenter/prettyprinting into one tool
Fetch–Execute cycle checks the interrupt register once per cycle; interrupts are disabled while one
is already being serviced

You might also like