Operating Systems: Fundamentals and Computer System Organization

Overview of Operating Systems

  • Definition and Core Functions:

    • An operating system is fundamental system software responsible for managing physical computer hardware.

    • It serves as a base layer and infrastructure upon which application programs are executed.

    • It functions as an intermediary interface bridging the gap between computer users and raw physical hardware.

  • Scope and Environmental Diversity:

    • Operating systems exhibit significant variation in architecture, design, and execution strategy depending on the target computing environment.

    • They are deployed across a diverse spectrum of systems, including:

    • Automotive control systems and embedded vehicle machinery.

    • Home appliances and Smart/Internet of Things (IoT) devices.

    • Mobile devices such as smartphones and tablets.

    • Personal computers (PCs) and laptop systems.

    • Enterprise servers and mainframe environments.

    • Scalable cloud computing infrastructure.

  • Essential Prerequisites and Fundamental Purpose:

    • Understanding operating system concepts requires prior knowledge of hardware organization and architecture, including the Central Processing Unit (CPU), primary memory, Input/Output (I/O) devices, and storage infrastructure.

    • The core responsibility of an operating system is the efficient allocation and management of hardware resources to running programs.

Key Topics in Operating System Design

  • Fundamental Study Areas:

    • Understanding what operating systems do and their functional roles.

    • Analyzing computer-system organization and hardware interconnections.

    • Comprehending computer-system architecture paradigms.

    • Examining operating-system operations and execution dynamics.

    • Implementing robust security and access protection mechanisms.

    • Utilizing virtualization technologies to abstract physical hardware.

    • Understanding distributed systems and network-based resource sharing.

    • Exploring diverse computing environments and operational models.

System Architecture and Components

  • The Four Structural Components of a Computer System:

    • Hardware: Provides basic computing resources, including the Central Processing Unit (CPU), main memory (RAM), storage drives, and Input/Output (I/O) devices.

    • Operating System: Controls and coordinates hardware utilization across various application programs and system users.

    • Application Programs: Define how system resources are utilized to solve specific computing problems for users (e.g., compilers, web browsers, software development kits, text editors, database systems).

    • Users: Consists of people, automated machines, or external computer systems interacting with the computing setup.

Abstract View of Components of Computer

Perspective Analysis of Operating Systems

  • The User View:

    • Differs based on the specific user interface being employed.

    • Single-User Laptop and Personal Computer (PC) Systems:

    • Composed of a monitor, keyboard, mouse, and system unit.

    • Designed to allow one user to monopolize system hardware resources.

    • Primary goal: Maximize user performance, task output, and work (or play) satisfaction.

    • Optimization priorities: High ease of use, optimal performance, and robust security.

    • Resource utilization (how resources are shared among multiple concurrent users) is ignored or minimized.

    • Autonomous and Embedded Systems:

    • Found within automobiles, smart home appliances, and embedded IoT hardware.

    • Designed to execute continuously without direct user intervention.

    • Possess little to no user view or interface.

  • The System View:

    • Examines the operating system from the perspective of system hardware operations.

    • Identifies the operating system as the software program most closely connected to hardware execution.

    • Role as a Resource Allocator:

    • Serves as the primary manager of system resources (CPU clock cycles, memory capacity, file storage space, I/O devices).

    • Manages multiple, potentially conflicting requests for system resources.

    • Decides resource allocation strategies to ensure fair, ordered, and efficient computer system operations.

    • Role as a Control Program:

    • Directs and oversees the execution of user programs.

    • Prevents system execution errors and improper usage of the hardware.

    • Takes direct responsibility for the operation and control of attached I/O devices.

Defining the Boundaries of Operating Systems

  • Definition of the Kernel:

    • There is no single, universally accepted definition of everything that belongs inside an operating system.

    • The standard operational definition identifies the operating system as the single core program running at all times on the computer, known as the kernel.

  • Classification of Executable Software:

    • Kernel: The continuous, fundamental core operating system process.

    • System Programs: Associated software tools provided with the operating system that assist in system operations but do not reside inside the kernel core.

    • Application Programs: All external programs unrelated to direct system operation or maintenance.

  • Mobile Operating System Frameworks:

    • Mobile operating systems incorporate a core kernel along with extended middleware.

    • Middleware: A suite of software framework layers providing specialized services directly to application developers.

    • Major Mobile Platforms:

    • Apple iOS

    • Google Android

    • Both mobile platforms combine a core kernel with middleware supporting embedded databases, multimedia playback, and advanced graphic processing.

Computer System Organization and Hardware Infrastructure

  • General-Purpose Computer System Structure:

    • Consists of one or more CPUs alongside multiple specialized device controllers connected through a shared system bus.

    • System Bus: Establishes high-speed data transmission channels providing access between hardware components and shared memory.

A typical PC computer system layout showing CPU, memory, device controllers, and system bus
  • Device Controllers:

    • Specialized hardware units responsible for managing specific peripheral device types (e.g., hard disk drives, audio systems, graphics displays).

    • Capable of attaching to multiple physical hardware peripherals:

    • Example: A single system Universal Serial Bus (USB) port connects to a USB hub, which in turn accommodates several connected peripherals (e.g., mouse, keyboard, printer).

USB hub adapter connecting multiple peripheral devices
  • Internal Controller Structure:

    • Contains local memory buffer storage.

    • Maintains a set of special-purpose hardware registers.

  • Primary Function: Executing direct data transfers between connected peripheral devices and the controller's internal local buffer storage.

    • Device Drivers:

  • Operating system software modules matched to specific device controllers.

  • Reads and writes to the device controller's registers and hardware interfaces.

  • Provides a standardized, uniform device access interface to the higher layers of the operating system.

    • Concurrency and Memory Synchronization:

  • The CPU and device controllers run concurrently in parallel, competing for access to memory clock cycles.

  • Memory Controller: Dedicated hardware component responsible for synchronizing access requests to shared main memory to prevent collisions and maintain data integrity.