4.1 Software

The Operating System (OS)

Functions of an Operating System

The OS is a suite of programs that manages the hardware and software of a computer system. Without an OS, a computer is just a collection of useless hardware.

Key Responsibilities:

  • Memory Management: Allocates RAM to running processes and handles Virtual Memory.
  • Processor Management: Decides which process gets CPU time (Scheduling).
  • File Management: Controls the naming, moving, and deleting of files.
  • Input/Output Management: Uses Device Drivers to communicate with peripherals.
  • User Interface (UI): Provides a way for the user to interact with the system (CLI or GUI).
Concept Diagram
Figure 4.1.1: The Operating System (OS)

Utility Software

System Maintenance

Utility software performs specific maintenance tasks to keep the computer running efficiently.

  • Defragmentation: Reorganizes files on a HDD so they are stored in contiguous sectors, speeding up read/write times. (Note: Not needed for SSDs).
  • Virus Checkers / Anti-malware: Scans the system for malicious code and quarantines threats.
  • Compression Utilities: Reduces file sizes for storage or transmission.
  • Backup Software: Creates copies of data in case of hardware failure.

Programming Languages

Levels of Language

  • High-Level (HLL): Languages like Python or PHP. They are "human-readable," portable (run on different CPUs), and use easy-to-understand keywords.
  • Low-Level (LLL): Includes Assembly Language and Machine Code. These are hardware-specific and offer total control over memory/registers.
Machine Code: The only language the CPU actually understands (Binary).

Program Translators

Compiler vs Interpreter

Since the CPU only understands binary, HLL code must be translated.

FeatureCompilerInterpreter
ProcessTranslates the whole program at once.Translates and runs line-by-line.
SpeedFaster execution of the final file.Slower execution (needs translation every time).
DebuggingHarder (errors shown at the end).Easier (stops at the line with the error).
ResultCreates a standalone Executable File (.exe).No standalone file created.

Assembler: A special translator that converts Assembly Language into Machine Code.

Concept Diagram
Figure 4.1.4: Program Translators