Introduction
Lecture Notes for CS 140
Winter 2012
John Ousterhout
- Evolution of operating systems, phase 1:
- One user at a time, working directly at console
- Hardware expensive, humans cheap
- First "operating system": I/O subroutine libraries shared
by users
- Simple batch monitor: get user away from the computer.
OS = program to load and run user jobs, take dumps.
- Data channels, interrupts, overlap of I/O and computation.
- Memory protection and relocation enable multiprogramming:
several users share the system
- OS must manage interactions, concurrency
- By mid-1960's operating systems had become large, complicated.
- OS field emerges as important discipline with
principles
- Evolution of operating systems, phase 2:
- Hardware cheap, humans expensive
- Interactive timesharing
- Fancy file systems
- Issues of response time, thrashing
- Personal computers: computers are cheap, so put one in
each terminal.
- Networking: allow sharing and communication between
machines.
- Embedded devices: put computers in cell phones, stereo players,
TVs, light switches
- Are all the fancy features developed for timesharing still
needed?
- The future of OSes:
- Very small (devices)
- Very large (datacenters, cloud)
- Characteristics of current OSes:
- Enormous: millions of lines of code, 100-1000 engineer-years
- Complex: asynchronous, hardware idiosyncrasies, performance
is crucial.
- Poorly understood
- Most of an operating system's functions fall in the category of
coordination: allowing several things to work together efficiently
and fairly:
- Concurrency: allow several different tasks to be underway at
the same time, as if each had a private machine. To keep
track of everything, processes and threads were invented.
- I/O devices. Don't want CPU to sit idle while an I/O
device is working.
- Memory: how can a single memory be shared among several processes?
- Files: allow many files, for many different users, to
share space on the same physical disk.
- Networks: allow groups of computers to work together.
- Security: how to allow interactions while protecting each
participant from abuse by the others?