Introduction

References:

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 1

Just as in The Blind Men and the Elephant, this chapter looks at Operating Systems from a number of different viewpoints. No one view really shows the complete picture, but by looking from a number of different views, we can get a pretty good overall picture of what operating systems are all about.

1.1 What Operating Systems Do - For Users, For Applications, etc.


Figure 1.1 - Abstract view of the components of a computer system

1.2 Computer-System Organization - What are all the parts, and how do they fit together?


Figure 1.2 - A modern computer system

1.2.1 Computer-System Operation


Figure 1.3 - Interrupt timeline for a single process doing output

1.2.2 Storage Structure

1.2.3 I/O Structure


Figure 1.5 - How a modern computer system works

1.3 Computer-System Architecture - Different Operating Systems for Different Kinds of Computer Environments

1.3.1 Single-Processor Systems

1.3.2 Multiprocessor Systems

  1. Increased throughput - Faster execution, but not 100% linear speedup.
  2. Economy of scale - Peripherals, disks, memory, shared among processors.
  3. Increased reliability
    • Failure of a CPU slows system, doesn't crash it.
    • Redundant processing provides system of checks and balances. ( e.g. NASA )


    Figure 1.6 - Symmetric multiprocessing architecture


    Figure 1.7 - A dual-core design with two cores placed on the same chip

1.3.3 Clustered Systems


Figure 1.8 - General structure of a clustered system

1.4 Operating-System Structure

A time-sharing ( multi-user multi-tasking ) OS requires:


Figure 1.9 - Memory layout for a multiprogramming system

1.5 Operating-System Operations

Interrupt-driven nature of modern OSes requires that erroneous processes not be able to disturb anything else.

1.5.1 Dual-Mode and Multimode Operation


Figure 1.10 - Transition from user to kernel mode

1.5.2 Timer

1.6 Process Management

An OS is responsible for the following tasks with regards to process management:

1.7 Memory Management

An OS is responsible for the following tasks with regards to memory management:

1.8 Storage Management

1.8.1 File-System Management

An OS is responsible for the following tasks with regards to filesystem management:

1.8.2 Mass-Storage Management

An OS is responsible for the following tasks with regards to mass-storage management:

Note the trade-offs regarding size, speed, longevity, security, and re-writability between different mass storage devices, including floppy disks, hard disks, tape drives, CDs, DVDs, etc.

1.8.3 Caching


Figure 1.11 - Performance of various levels of storage


Figure 1.12 - Migration of integer A from disk to register

1.8.4 I/O Systems

The I/O subsystem consists of several components:

1.9 Protection and Security

1.10 Kernel Data Structures

1.10.1 Lists, Stacks, and Queues


Figure 1.13 - Singly linked list


Figure 1.14 - Doubly linked list


Figure 1.15 - Circularly linked list

1.10.2 Trees


Figure 1.16 - Binary search trees

1.10.3 Hash Functions and Maps


Figure 1.17 - Hash map

1.10.4 Bitmaps

1.11 Computing Environments

1.11.1 Traditional Computing

1.11.2 Mobile Computing

1.11.3 Distributed Systems

1.11.4 Client-Server Computing


Figure 1.18 - General structure of a client-server system

1.11.5 Peer-to-Peer Computing


Figure 1.19 - Peer-to-peer system with no centralized service

1.11.6 Virtualization


Figure 1.20 - VMWare

 

1.11.7 Cloud Computing


Figure 1.21 - Cloud computing

1.11.8 Real-Time Embedded Systems

1.12 Open-Source Operating Systems

1.12.1 History

1.12.2 Linux

1.12.3 BSD UNIX

1.13.4 Solaris

1.13.5 Utility

1.14 Summary