Chapter 4: Software
4.1 Types of Software and Interrupts
4.1.1 System Software vs Application Software
Software: The set of instructions that tells a computer how to perform specific tasks.
Two main types:
System Software
Controls and manages hardware operations.
Includes the operating system, device drivers, and utility programs.
Provides a base for running application software.
Application Software
Enables users to carry out real-world tasks.
Examples: word processors, spreadsheets, multimedia editors, games,
database software, control and measuring software, graphics/photo/video
editors, web browsers, and apps.
System Software Examples
Component Main Roles
Operating System Manages computer hardware and software resources.
Utility Program Performs maintenance, security, or troubleshooting tasks.
Device Driver Allows OS to communicate with hardware devices.
Application Software Examples
Type Functions & Examples
Spreadsheets Organize and manipulate numerical data; formulas, modeling, graphs.
Databases Storage, retrieval, and manipulation of structured data.
Control/Measuring Interfaces with sensors/actuators for physical process management.
Graphics/Photo/Video Edit images, graphics, or videos (e.g., Photoshop, Illustrator).
Type Functions & Examples
Web Browsers Access and view web pages (e.g., Chrome, Firefox).
Apps Downloadable software on mobile devices; gaming, tools, banking, etc.
4.1.2 Operating Systems (OS)
Definition: Software that manages all other programs in a computer.
Major functions:
o Provide a user interface (GUI or CLI)
o Manage hardware and software resources
o Facilitate file, memory, and process management
o Handle multi-tasking and multi-user capabilities
o Provide security (user accounts, authentication)
o Handle error detection and interrupt processing
o Manage device drivers
User Interface Types
Interface Features
Graphical (GUI) Uses windows, icons, menus, pointers; user-friendly.
Command Line (CLI) Text-based; requires typed commands; powerful for experts.
4.1.3 Utility Software
Performs optimization, maintenance, and security tasks.
Common utilities:
o Virus Scanners: Detect and remove malicious software.
o Back-up Software: Create copies of files as a safeguard.
o Disk Defragmenters: Reorganize disk to improve performance.
o File Management Tools: Copy, move, delete, organize files.
o Data Compression: Reduce file sizes.
o Encryption Tools: Secure files via encoding.
o System Cleaners: Remove unnecessary files, fix registry.
4.1.4 Device Drivers
Specialized system software that enables OS and software to communicate with hardware.
Each hardware device (printer, graphics card) needs its own driver.
Drivers translate generic OS commands into device-specific instructions.
4.2 Types of Programming Languages and Translators
4.2.1 Programming Languages
High-Level Languages
Closer to human language; easier for programmers (e.g., Python, Java, C++).
Features:
o Easier to read, write, and maintain.
o Portable (can run on multiple systems).
o Requires a translator (compiler or interpreter).
Low-Level Languages
Closer to machine code; includes machine code and assembly language.
Features:
o More control over hardware and memory management.
o Assembly language uses mnemonics and labels (e.g., LDA, ADD, STA).
Feature High-Level Languages Low-Level Languages
Level of abstraction High Low
Portability High Low (hardware dependent)
Ease of programming Easier More difficult
Execution speed Slower Faster (optimized)
4.2.2 Translators
Convert high-level (or assembly) source code into machine code.
Types of Translators
Translator Description
Compilers Translate the entire program into machine code in one go, creating an executable file.
Interpreters Translate and execute code line-by-line, no separate executable produced.
Assemblers Convert assembly language into machine code.
Compiler vs. Interpreter:
o Compiler translates whole program and checks for errors before execution.
o Interpreter executes and translates each line in real-time, stops at first error.
Feature Compiler Interpreter
Speed of execution Faster Slower
Error checking All errors after compiling Stops at the first error
Output Standalone executable file No separate file; source code needed
Distribution Only machine/executable needed Source code and interpreter needed
Advantages/Disadvantages of Each
Compiler Interpreter
Pros Fast execution, single distribution file Easy debugging, platform independence
Cons Harder to debug, platform dependent Slower execution, need source code for running
4.3 Integrated Development Environments (IDEs)
Definition: Software providing facilities to programmers for software development.
Main features:
o Source code editor (syntax highlighting, auto-completion)
o Build automation tools and debugging tools
o Compiler and/or interpreter integration
o Error detection and reporting
o Version control
o Project/file management
4.4 The Role and Operation of Interrupts
Interrupt: A signal to the processor indicating an event that needs immediate attention.
Sources:
o Hardware (e.g., keyboard input, printer error, timer)
o Software (error, system request, application-specific triggers)
How Interrupts Work
1. Current process is paused.
2. CPU saves its state (current values in registers).
3. Interrupt service routine (ISR) is executed to handle the event.
4. CPU restores the previous state and resumes the original process.
Example: Pressing a key during a long computation interrupts the program so the OS can
process the input.
4.5 Summary Table of Key Terms
Term Definition
System Software Software managing/controlling hardware, e.g., OS, drivers, utilities
Application Software Software for user tasks, e.g., word processors, browsers
System software managing hardware, software, user interface, and
Operating System
resources
Utility Software System software for maintenance/security tasks
Device Driver Software enabling OS/hardware communication
Programming
Formal language for writing algorithms (high-level or low-level)
Language
Compiler Software translating high-level code to machine code in one go
Interpreter Software translating/executing high-level code line by line
Assembler Software converting assembly code to machine code
IDE Environment for programming with integrated tools
Interrupt Signal pausing main program flow for urgent processing of an event