Operating Systems Lecture Notes
2014 December 4 • Operating Systems
Outline
What is an operating system?
For whom does the OS toil?
Requirements and trade-offs.
History
Developments
What Is An Operating System?
What Is An Operating System?
It’s a program; a
big piece of software
.
Normally, operating systems run directly on hardware.
More recently, it may run on other software.
The Whole Thing
Operating System Function
An operating system creates and manages resources.
“Manages” means both exploit (maximize good use) and protect (minimize bad use).
Good uses includes cooperation and sharing.
Bad use includes
disruption, as in resource hogging, and
disrespect, as in illicitly accessing information.
Another Whole Thing
Resources
Resources are practically everything, including programs, including the OS.
An OS creates resources by
adapting hardware resources (CPU, disk), or
synthesizing resources (network connections, file locks).
For Whom does the OS Toil?
An OS provides these resources for programs executing on the system.
Process
: a program executing on the system.
Processes are a resource synthesized by the OS.
By extension, and indirectly, the OS provides resources for the process’s clients.
Client: whatever executes a program.
Clients needn’t be human.
OS Requirements
Three OS requirements: economy, protection, and convenience.
Economy: efficiently manage resources; expensive (user time) or limited (handheld power) or both (wireless transmission bandwidth).
Protection: prevent various levels of malevolent or inadvertent resource abuse.
Convenience: present resources at the right level of detail (abstraction).
Trade-Offs
The requirements are in conflict:
Economy vs convenience
Convenience vs protection
Protection vs economy
There are other requirements (generality, accountability).
And conflicts (scope, cost).
Economy > convenience > protection, traditionally.
Trade-Offs Illustrated
Trade-offs are knobs in the OS design space.
Each settings group is a different OS.
OS Techniques
An OS does its work by implementing abstractions.
An abstraction is a high-level model defined in terms of low-level details.
The high-level models is more convenient to use than the low-level details.
However, it may not be as efficient, or as flexible.
OS History
OS development responds to technological and development forces.
Technological forces are more or less straight line.
Development forces are cyclical and more or less eternal.
OS characteristics wax and wane with these forces, but never disappear.
Pre ’60s
Pre ’60s OSs
Environment
Limited, expensive, strange machines.
Requirements
Produce results to justify costs.
OSs
A collection of common libraries.
Computers were accepted as valuable tools.
The ’60s
’60s OSs
Environment
Big expensive machines; IBM 360, CDC 6600.
Requirements
Maximize investment and manage complexity.
OSs
Batch operating systems: OS/360.
The ’70s
’70s OSs
Environment
Big, expensive machines: PDP 10.
Requirements
Reduce support personnel, improve programmer interactions.
OSs
Timesharing operating systems provided the virtual machine abstraction.
The ’80s
’80s OSs
Environment
Small expensive machines: PDP 11.
Requirements
Reduce complexity, improve problem throughput.
OSs
Specialized operating systems: RTOS.
The ’90s
’90s OSs
Environment
Small, cheap machines; IBM PC.
Requirements
Simplicity, minimal training.
OSs
Single-user operating systems; Windows, Oberon, NeXTSTEP
The ’90s
’00s OSs
Environment
A Cambrian explosion; networks, hand-helds.
Requirements
Manage severely constrained or ad hoc resources.
OSs
Symbian, BeOS, TinyOS.
Why Bother?
Aren’t operating systems a done deal?
Operating systems evolve in response to changing environments.
Hardware: networked machines, 64-bit address spaces, mobile and other low-resource environments.
Resources: information and rights management.
Requirements: security, ambient computation.
Automotive Electronics
Consider automotive electronics.
Chassis control, engine control, automatic transmission
ABS/ASR
, cruise control.
Cabin comfort, air conditioning, dashboard, trip computer, display range, radio, telephone, navigation.
Intelligent switching, anti-finger traps, power seats, alarms.
Remember: your break pedal is an input device.
Automotive CPUs
These applications require dozens of CPUs.
32-bit power train, 16-bit vehicle control, 8-bit body control and driver information, 4-bit dashboard.
Now, network them together, multiplex them, link them up to the external environment.
Sensor Networks
How would you do constant Leach's storm petrel surveys?
How would you study the forest ecology of wild fires?
Have lots of small, cheap sensors scattered around.
Each sensor is self contained and long lasting.
Individual sensors coordinate without leaders.
Sensor Networks OSs
Operating systems for sensor networks
Have access to limited facilities.
Manage scarce and expensive resources, power particularly.
Orient towards a particular application.
Deal meaningfully with uncertain environments.
Examples: TinyOS, LiteOS, SOS.
Summary
An operating system is a resource manager.
It's also responsible for creating the resources managed.
OSs respond to influence from the environment and requirements.
There'll always be a need for new OSs, or better versions of existing OSs.
Old OS ideas never die, they're resurrected in slightly different form.
Credits
L’Aquàrium: Octopus
by
Sebastian Niedlich
under a Creative Commons
BY NC SA license
.
UNIVAC I Mercury Delay Line
by
Austin Appel
under a Creative Commons
BY NC SA license
.
IBM System 360
by
Michael Cote
under a Creative Commons
BY license
.
PDP 10
by
Michael Umbricht
under a Creative Commons
BY SA license
.
from archive: lucifer
by
Harri Haataja
under a Creative Commons
BY NC SA license
.
66 Mhz of x86 Power
by
Miles Bannan
under a Creative Commons
BY SA license
.
Amazing Blackberry
by
Ninja M.
under a Creative Commons
BY NC SA license
.
This page last modified on 2012 February 14.