Operating Systems Fundamentals

Core Functions and Features of Operating Systems

  • Basic Computer Tasks: Every computer performs three fundamental tasks—input, processing, and output—which are coordinated and controlled by the operating system (OS).
  • Primary OS Features:
    • User Interface: Provides the mechanism for user interaction.
    • Storage Management: Utilizes a file system to organize, store, and control access to files.
    • Process and Service Management: Coordinates processes (programs loaded into memory and run by the CPU) and services (background processes).
    • Memory and I/O Management: Allocates memory regions and ensures dedicated, orderly access to I/O hardware.
    • Security and Resource Protection: Regulates access to system resources.
    • Kernel: The core module running with highest priority.

Operating System Classifications

  • Single-Tasking vs. Multitasking:
    • Single-Tasking: Executes only one process at a time (e.g., Apple iOS 3 and earlier, embedded systems).
    • Multitasking: Rapidly alternates execution between multiple active processes.
    • Cooperative Multitasking: The OS releases CPU control to a process and waits for it to yield or terminate; a non-yielding program can monopolize the CPU.
    • Preemptive Multitasking: The OS retains continuous control, utilizing interrupts or time-slice expiration to switch tasks predictably.

Flowchart of cooperative multitasking execution

Flowchart of preemptive multitasking execution

  • Single-User vs. Multiuser:
    • Single-User: Allows one user at a time to execute processes, modify configurations, and manipulate the file system (e.g., Windows 10 client).
    • Multiuser: Supports concurrent access by multiple users via sign-in sessions (e.g., Linux, UNIX, Windows Server via Remote Desktop Protocol [RDP]).
  • General-Purpose vs. Real-Time (RTOS):
    • General-Purpose: Designed for diverse application workloads across business and domestic environments.
    • Real-Time Operating System (RTOS): Deterministic systems engineered to process inputs and return outputs within repeatable, rigid timing constraints (e.g., industrial robotics, electrical grid control).

Operating System Roles

  • Client Operating Systems: Optimized to run foreground, interactive user software, provide graphical interfaces, and request shared services from network hosts.
  • Server Operating Systems: Engineered to provide shared services (e.g., DHCP, DNS, Web, Active Directory) with integrated fault tolerance:
    • Clustering: Enables multiple servers to act as a unified entity, including load-sharing setups that distribute incoming workloads.
    • Hot Swapping & Hot Adding: Permits replacement of damaged parts or dynamic installation of additional components (RAM, storage, CPUs) without taking the system offline.
  • Standalone Operating Systems: Operate isolated devices without accessing external network resources, traditionally found in embedded devices (e.g., legacy traffic signals, industrial machines), though modern iterations increasingly interface with IoT.

Key Operating System Components

  • Boot Procedure:
    1. Power is applied to the CPU and components.
    2. The CPU initializes.
    3. CPU executes firmware startup routines (BIOS or UEFI in non-volatile flash memory/EEPROM).
    4. Power-on self-test (POST) verifies system memory and core hardware; CMOS stores configuration settings.
    5. An initial bootstrap program locates and invokes the bootloader.
    6. The bootloader transfers the OS into RAM, initiating system processes and background services.
  • Process and Service Management:
    • Kernel Mode: Unrestricted CPU mode granting full hardware access and privileged instruction execution (e.g., setting timers, interrupt routing).
    • User Mode: Restricted CPU mode with isolated memory boundaries; direct hardware interactions and privileged instructions are prohibited.
    • Process Control: Processes are assigned a Process ID (PID) and utilize file handles to access storage resources.
  • Memory and I/O Management:
    • Device Drivers: Kernel-mode components facilitating communication between abstract OS requests and specific physical hardware.
    • Polling vs. Interrupts: Polling repeatedly cycles through hardware devices; interrupt-driven architectures notify the CPU via Interrupt Request (IRQ) lines, prompting execution of an Interrupt Service Routine (ISR).
    • Interrupt Types: Traps (software interrupts generated by user programs for kernel assistance), Maskable Interrupts (suppressible by priority), and Non-Maskable Interrupts (NMI, reserved for critical errors like division by zero or memory bus failures).

Communication flow between OS drivers and hardware devices

  • Security and Kernel Operation:
    • Authentication: Verifying user identity via credentials.
    • Authorization: Verifying permissions granted to an authenticated entity.
    • Kernel Responsibilities: Managing CPU scheduling, device drivers, interrupt tables, security validation, and physical memory allocation.

Historical Evolution and Modern Operating Systems

  • Historical Progression:
    • 1950s–1970s: Shift from punch-card mainframe calculation to modern foundations; emergence of the Internet, display terminals, magnetic media, OS/8, and UNIX.
    • Mid-1960s–1975: Creation of Dartmouth BASIC; Bill Gates wrote a BASIC compiler for Micro Instrumentation Telemetry Systems (MITS), expanding personal desktop computing.
    • 1980s: IBM adopted MS-DOS; Apple Macintosh introduced the mainstream mouse and GUI in 1984; Microsoft introduced Windows in 1985.
  • Major Modern Operating System Families:
    • Windows Client: Dominant home/enterprise client (Windows 7 reached end-of-life January 2020; Windows 10 is the successor standard).
    • Windows Server: Enterprise server platforms including Windows Server 2012, 2016, and 2019 (Server 2008 support ended January 2020; Server 2012 support end scheduled October 2023).
    • UNIX & Linux: Built around Berkeley Software Distribution (BSD) and System V Release 4 (SVR4) standards; Linux distributions (e.g., Fedora 30 Workstation and Server) function extensively across business and server infrastructures.
    • macOS: Apple's desktop OS built on a UNIX foundation, utilizing an intuitive graphical interface (e.g., macOS Mojave).

Questions and Discussion

  • Question: In which of the following methods does the OS give CPU control to a process and wait for it to terminate or enter a waiting state?

    • A) single-tasking
    • B) preemptive multitasking
    • C) multiuser tasking
    • D) cooperative multitasking
  • Answer: D) cooperative multitasking

  • Question: The ability of two or more servers to act as one is known as which of the following?

    • A) hot swapping
    • B) clustering
    • C) bootstrapping
    • D) hot adding
  • Answer: B) clustering