This chapter is a historical prospective of OS. Most of them are just conceptual, but they are important to understand the evolution of OS. I find its hard to organize the content, so the table of content is not very structured.

Historical Prospective

Mainframe: Batch Systems

  • One job at a time
  • No interaction between users and jobs
  • CPU is often idle (I/O speed « CPU speed)
  • OS doesn’t need to make any decision

Mainframe: Multi-programming System

  • Overlaps the I/O and computation of jobs
  • Spooling (Simultaneous Peripheral Operation On-Line)
    • I/O is done with no CPU intervention
    • CPU just needs to be notified when I/O is done
  • Memory management, CPU scheduing, I/O system comes in

Mainframe: Time-sharing System (Multi-tasking System)

  • interactive system
    • CPU swiches among jobs so frequently that users may interact with programs
  • Switch job when
    • finish
    • waiting I/On
    • a short period of time
  • Users will feel like the task run at the same time

New features appear to address new problems

  • virtual memory
  • file system, disk management
  • process synchronization, deadlock

Desktop Systems: Personal Computers

  • GUI
  • I/O devices
  • Lack of file and OS protection

Desktop Systems: Parallel Systems

  • multiprocessor or tightly coupled system
  • More than one CPU
  • communicate through shared memory

Parallel systems can be further classified into

  • Symmetric multiprocessor system (SMP)
    • Each processor runs the same OS
    • Most popular multiprocessor architecture
    • Require extensive synchronization to protect
  • Asymmetric multiprocessor system
    • Each processor is assigned a specific task
    • One master CPU and multiple salve CPUs
    • Mmore common in extremely large systems

Multi-Core Processor

  • A CPU with multiple cores on the same die (chip)
  • On-chip communication is faster than between-chip communication
  • Also use less power than multiple single-core chips

Memory Access Architecture

  • Uniform Memory Access (UMA)
    • Most commonly used todday with SMP
    • identical processors
    • Equal access times to memory
  • Non-Uniform Memory Access (NUMA)
    • Each CPU has it’s own memory and can also visit other CPU’s memory
    • Often made by physically linking two or more SMPs
    • Memory access across link in slower
    • Example: IBM Blade server

Distributed Systems

  • Each processor has its own local memory
  • communicate with various communication lines (I/O, network)
  • easy to scale
  • Pruposes: resource sharing, load sharing, reliability
  • Client-Server Distributed Systems
    • easier to manage and control resourses
    • server becomes the bottle neck
    • Example: FTP
  • Peer-to-Peer Distributed System
    • decentralized system
    • Example: torrent, internet
  • Clustered System
    • share storage and linked via local area network (LAN)

Special-purpose Systems

  • Real-Time Operating Systems
  • Multimedia Systems
  • Handheld Systems

Real-Time Operatinig Systems

  • fixed-time constraints, keeping deadlines
  • guaranteed response and reaction times
  • Soft real-time
    • Missing deadline is acceptable
    • Examples: multimedia streaming
  • Hard real-time
    • Missing deadline results in a fundamental failure
    • Secondary storage (disk) limited or absent

Multimedia Systems

  • On-demand/live streaming
  • Compression

Handheld Systems

  • smart phones
  • specialized OS