💻

Fundamentals of Operating Systems

Sep 12, 2024

Operating System Concepts Lecture Notes

Introduction to Operating Systems

  • Definition: An operating system (OS) is an intermediary between users and computer hardware.
  • Purpose: Provides an environment for executing programs conveniently and efficiently.
  • Complexity: Operating systems are large and complex systems.

Components of a Computer System

  • Four Main Parts:
    • Hardware
    • Operating System
    • Application Programs
    • Users
  • Hardware Components:
    • Central Processing Unit (CPU)
    • Memory
    • Input/Output Devices
  • Application Programs: Examples include word processors, spreadsheets, web browsers.
  • Function of OS: Controls hardware and coordinates resource usage among various applications and users.

User View of Computer Systems

  • User Interface: Many users interact with systems using laptops, PCs, with monitors, keyboards, and mice.
  • Resource Utilization: OS designed to maximize work efficiency for individual users.

History and Evolution of Operating Systems

  • Early Computing: Originated as military systems for code breaking and plotting.
  • 1960 Prediction: Number of transistors on chips would double every 18 months (Moore’s Law).
  • Diversity in Operating Systems: Growth in functionality and variety of operating systems available.

Definition and Structure of Operating Systems

  • General Definition: OS includes everything that runs when the OS is ordered.
  • Kernel: The core program running at all times.
  • System Programs: Assist the OS but are not part of the kernel.
  • Application Programs: Programs not associated with OS operation.

Interrupts and Device Management

  • Function of Interrupts: Signals from device drivers to the CPU when a task is needed.
  • Interrupt Service Routines (ISRs): Specialized routines for handling interrupts efficiently.
  • Types of Interrupts: Non-maskable and maskable interrupts; prioritization of interrupts is crucial for performance.

Memory Management

  • Types of Memory:
    • Main Memory (RAM): Volatile, used for running programs.
    • Non-Volatile Memory: Retains data when power is off (e.g., EEPROM, flash memory).
  • Storage Hierarchy:
    • Faster, smaller memory closer to the CPU vs. larger, slower storage (e.g., HDDs, SSDs).

Input/Output Management

  • Communication Bus: Common pathway for device communication.
  • Direct Memory Access (DMA): Allows devices to transfer data directly to memory without CPU intervention.

Multiprocessor Systems

  • Definition: Systems with two or more CPUs sharing resources (memory, I/O).
  • Symmetric Multiprocessing (SMP): Each CPU performs all tasks, enhancing efficiency.
  • Multicore Processors: Multiple cores on a single chip, impacting OS and application design.

Non-uniform Memory Access (NUMA)

  • Definition: Memory architecture allowing CPUs to have local memory, reducing contention.
  • Scalability: NUMA systems can accommodate many processors efficiently.

Clustering and High Availability

  • Clustered Systems: Groups of individual systems connected via a network for redundancy and high availability.
  • Graceful Degradation: Ability to maintain service during component failure.
  • Fault Tolerance: Systems designed to withstand failures while continuing operation.
  • Parallelization: Running applications concurrently across a cluster to enhance performance.

Conclusion

  • Ongoing Developments: Clustering technology rapidly evolving to support high-performance computing and reliability.
  • Importance of OS: Operating systems are crucial for managing resources, performance, and providing a user-friendly interface.