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 (HDDHDD). 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 (HDDHDD): 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 HDD/SSDHDD/SSD to keep the system running efficiently.
  • Organisation Methods:
    • Single (Contiguous) Allocation: All memory is assigned to a single application (MSDOSMS-DOS, 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 FATFAT or NTFSNTFS.

Utility Software Details

Hard Disk Formatter
  • Initialises a new drive and creates partitions (contiguous blocks).
  • Writes directory data and Tables of Contents (TOCTOC) so the OS can track files.
  • Formatting Warning: Full formatting (like with NTFSNTFS) 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 HDDHDD, 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 SSDsSSDs 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 SSDSSD), 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 .dll file 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 X86X86 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 print function).