System Software: Operating Systems, Utilities, and Language Translators Study Guide
Key Terminology and Definitions
- CMOS (Complementary Metal-Oxide Semiconductor): A type of non-volatile memory used to store BIOS configuration settings, allowing them to be altered or deleted.
- Operating System (OS): Software that provides an environment in which applications can run and acts as an interface between the computer hardware and human operators.
- HCI (Human–Computer Interface): The point of interaction between a user and a computer system.
- GUI (Graphical User Interface): A user interface that allows interaction through visual indicators such as icons and menus.
- CLI (Command Line Interface): A text-based interface where the user types instructions or commands to communicate with the computer.
- Icon: A small picture or symbol used to represent an application, file, or function on a screen.
- WIMP (Windows, Icons, Menu, and Pointing Device): A traditional GUI style using windows to host applications, icons for shortcuts, menus for options, and a mouse or similar device for navigation.
- Post-WIMP: Modern interfaces that go beyond traditional pointing devices, utilizing touch screen technology and gestures.
- Pinching and Rotating: Specific finger-based gestures on a touch screen used to move, enlarge, or reduce on-screen elements.
- Memory Management: The OS component that controls the computer's main memory, including allocation and deallocation.
- Memory Optimisation: A function that determines how memory is allocated and deallocated particularly when multiple applications run simultaneously.
- Memory Organisation: A function that determines how much memory is allocated to a specific application and how it is structured.
- Memory Protection: Ensures that two competing applications cannot access the same memory locations at the same time to prevent crashes and data corruption.
- Security Management: Part of the OS that ensures the integrity, confidentiality, and availability of data.
- Contiguous: Items or data blocks that are physically adjacent to each other.
- Virtual Memory Systems: A memory management technique that uses hardware and software to compensate for a shortage of physical RAM by using secondary storage.
- Process Management: The OS task of allocating resources and permitting data exchange/sharing while synchronizing processes.
- Hardware Management: The control of all input and output (I/O) peripheral devices connected to the computer.
- Device Driver: Software that allows the OS to communicate with specific hardware by translating data into a format understood by the device.
- Utility Program: Specialized functions within or added to the OS that perform maintenance tasks like defragmentation or virus checking.
- Disk Formatter: A utility that prepares a disk by creating data blocks (partitions) for file storage and retrieval.
- Bad Sector: A faulty sector on a Hard Disk Drive (). These can be soft (data corruption) or hard (physical damage).
- Antivirus Software: Software designed to quarantine and delete malware; it can run as a background process or be user-initiated.
- Heuristic Checking: A method used by antivirus software to find viruses by looking for suspicious behavior rather than matching known signatures.
- Quarantine: Storing an infected file in an isolated area of the storage medium to prevent it from affecting the system before deletion.
- False Positive: When a virus checker incorrectly identifies a safe file as being infected.
- Disk Defragmenter: A utility that reorganizes disk sectors so files are stored in contiguous blocks, improving access speed.
- Disk Content Analysis Software: A tool that reviews file/folder usage and empty space to optimize disk capacity.
- Disk Compression: Software that compresses data before it is written to the drive to save space.
- Back-up Utility: Software designed to make copies of files on portable or remote storage for data recovery purposes.
- Program Library: A repository where routines and programs are stored to be accessed by developers for their own software.
- Library Program / Routine: Pre-written and tested subroutines available for incorporation into new programs.
- DLL (Dynamic Link Library) File: A library routine linked to a program only at run time rather than during compilation.
The History and Evolution of Operating Systems
- Early Computers: Initially, computers had no OS. Control software was loaded manually using paper tape or punched cards every time the computer started.
- 1970s Home Computers: Devices like the Acorn BBC B used an internal ROM chip for part of the OS and a cassette tape machine to load the remainder needed for operations.
- The Role of the Hard Disk Drive (): As storage evolved, the OS was stored on the disk. The motherboard's start-up was handled by the BIOS (Basic Input/Output System).
- BIOS and CMOS Transition:
- Originally, the BIOS was stored on ROM.
- In modern computers, BIOS contents are in flash memory.
- Configuration settings are stored in CMOS memory, which is editable.
- Modern Loading Procedures: Due to the massive size of modern OS software, only the required parts are copied into RAM at start-up to avoid performance degradation.
- OS Examples:
- Desktop: Microsoft Windows, Apple Mac OS.
- Mobile/Tablet: Google Android, iOS (Apple).
Human-Computer Interfaces (HCI)
- Command Line Interface (CLI):
- Requires the user to type specific instructions to select menus, open software, or save files.
- Commands must be typed exactly without any errors.
- Pros: Users have direct communication with the computer without being limited by pre-determined GUI options; suitable for advanced users.
- Cons: High learning curve for commands; time-consuming to type repeatedly.
- Example Scenario (Data Import): To import data from Table A to Table B, clinical code like
SQLPrepare(hStmt, (SQLCHAR *) "INSERT INTO tableB SELECT * FROM tableA", SQL_NTS): SQLExecute(hStmt);is required.
- Graphical User Interface (GUI):
- Uses icons and symbols to represent operations.
- A single icon click can replace several lines of complex CLI code.
- WIMP Environment: Utilizes a mouse to control a cursor; windows contain separate applications, allowing multitasking.
- Post-WIMP: Designed for touch interfaces where fingers act as the pointer. Supports complex gestures like pinching and rotating.
- Comparison of Interface Types:
- CLI users: Programmers, system administrators, and expert users who need precise control.
- GUI users: End-users who prioritize ease of use and visual navigation.
Core Tasks of the Operating System
Memory Management
- Optimisation: Tracks all allocated and free memory. It manages the swapping of data between RAM and the to keep the system running efficiently.
- Organisation Methods:
- Single (Contiguous) Allocation: All memory is assigned to a single application (, embedded systems).
- Partitioned Allocation: Memory is split into contiguous blocks of varying sizes assigned to specific applications.
- Paged Memory: Similar to partitioning, but partitions are of a fixed size; used in virtual memory systems.
- Segmented Memory: Memory blocks are not contiguous; instead, they are logical groupings of data (e.g., an array).
- Protection: Prevents applications from accessing the same memory addresses. This is managed using a FENCE, a boundary that defines where the OS ends and application memory begins. No application can access an address lower than the FENCE.
Security Management
- Ensures data remains confidential and available.
- Mechanisms:
- Automating OS updates.
- Keeping antivirus definitions current.
- Managing Firewalls to monitor traffic.
- Establishing user accounts with specific privileges and IDs/passwords.
- Providing system restore points and data recovery tools.
Process Management
- Manages "processes" (programs currently running).
- Resources are allocated using scheduling, resolving software conflicts, and managing process queues.
Hardware Management
- Controls peripheral devices via device drivers.
- Manages queues and buffers. For example, in printer management:
- Locates the printer driver.
- Sends data to the printer buffer.
- Places jobs in a printer queue if the device is busy.
- Handles interrupts (e.g., "out of paper" or "ink empty" alerts).
File Management
- Defines naming conventions (e.g.,
.docx,.bat,.txt). - Handles file operations: Create, Open, Close, Delete, Rename, Copy, Move.
- Maintains directory structures and access control mechanisms (permissions).
- Specifies logical storage formats like or .
Utility Software Details
Hard Disk Formatter
- Initialises a new drive and creates partitions (contiguous blocks).
- Writes directory data and Tables of Contents () so the OS can track files.
- Formatting Warning: Full formatting (like with ) fills sectors with zeros, erasing all existing data.
- Repairs: Identifies bad sectors and flags them so the OS ignores them. Bad sectors can be caused by physical damage (Hard) or crashes/power loss (Soft).
Virus Checkers
- Compare files against a database of known threats.
- Heuristic Checking: Identifies viruses not yet in the database by observing behavior.
- False Positives: Sometimes legitimate software is flagged incorrectly; the user must decide whether to override the quarantine.
Disk Defragmenter
- Over time, files become scattered across non-contiguous sectors on an , increasing head movement and slowing performance.
- Defragmentation rearranges data so that files are stored in contiguous blocks, reducing seek time.
- Note: This is less beneficial for due to their lack of moving parts.
Back-up Utilities
- Three-Version Rule: A current working copy on the internal drive, a local backup (portable ), and a remote backup (Cloud).
- Windows File History: Takes regular snapshots (default every hour) to build a library of past file versions.
- Mac OS Time Machine: Performs hourly, daily, and weekly backups. When the backup drive is full, it deletes the oldest data to make room for the new.
Program Libraries and DLLs
- Benefits to Developers:
- Saves time and cost by reusing tested subroutines (e.g., scoring graphics or animation routines).
- Encourages modular programming (multiple people working on different routines).
- Maintains a "corporate image" across software suites.
- Static Libraries: Library routines are embedded directly into the program code during compilation.
- Dynamic Link Libraries (DLL):
- Routines are stored as standalone files and linked only at run time.
- Pros: Saves RAM (only loaded when needed), results in smaller executable files, and allows DLLs to be updated without recompiling the main program.
- Cons: If a
.dllfile is missing or corrupted, the program may crash or give unexpected results (the "Missing .dll" error).
Language Translators
Assemblers
- Translates assembly language into machine code.
- Assembly is machine-dependent (specific to a chip like the family).
- Used for high-speed tasks like central heating controllers or robotics.
Compilers vs. Interpreters
- Compiler:
- Translates the entire source code into an object program (machine code) at once.
- Execution is fast because translation is pre-completed.
- Protects intellectual property since the end-user doesn't see the source code.
- Finds all syntax errors at once, though one error may trigger many "false" dependent errors.
- Interpreter:
- Translates and executes the program line-by-line.
- No object code is saved; translation happens every time the program runs.
- Faster for debugging since the program restarts exactly where the error occurred.
- End-user must have the interpreter installed.
Partial Compilation (Intermediate Code)
- Many languages (Java, Python) use a hybrid approach.
- Source code is compiled into bytecode (also called p-code or intermediate code).
- This bytecode is machine-independent and is then interpreted or compiled by a virtual machine on the local computer.
Integrated Development Environments (IDE)
An IDE is a suite of programs that aids in writing and testing software. Standard features include:
- Source Code Editor:
- Prettyprinting: Formats code to make it readable.
- Context-Sensitive Prompts: Offers text completion for variables and reserved keywords.
- Dynamic Syntax Checking: Alerts the programmer to errors as they type.
- Run-time Environment & Debugger:
- Single Stepping: Running code one instruction at a time to monitor flow.
- Breakpoints: Intentional pauses at specific lines to inspect the state of the system.
- Report Window: Displays the current values of variables and expressions during a pause.
- Auto-documenter: Explains the functions and parameters of specific commands (e.g., showing a documentation window for the
printfunction).