ICS 335: Operating Systems

ICS 335: Operating Systems

Sebnem Baydere

Lecture 1:Introduction

Main Points

What operating systems do ?

Historical Perspective

1.0  Why study O/S?

·  Understand how computers work

·  Abstraction: Providing illusion of infinite resources (CPU, memory etc)

·  System Design: Tradeoffs between performance and simplicity, division of labor between HW and WS

·  O/S combines several areas in Computer Science discipline: languages, hardware, data structures, algorithms

2.0  Why build a real O/S kernel?

·  Hear and forget, see and remember, do and understand

·  Gain the confidence : difference between a computer scientist and a programmer

3.0  What is an O/S?

·  Virtual machine

·  Extension of hardware

·  Resource allocation : fair division of resources between users of the system

·  Coordinator: between applications and hardware resources (concurrency, device drivers, memory, file system, networks

·  Standard services (utility programs- libraries, window system

·  What would be without O/S?

4.0  History of O/S: change !!

Design tradeoffs change as technology changes

Typical academic computer in 1981 and 1998

1981 / 1998 / Ratio
SPECint(MIPS) / 1 / 500 / 1:500
$/SPECint / $100k / $5 / 20000:1
$/machine / $100k / $2500 / 40:1
Memory capacity / 128KB / 64MB / 1:500
Disk capacity / 10MB / 2 GB / 1:200
Tape capacity / 200MB / 1 TB robot / 1:5000
Address bits / 16 / 32-64 / 1:2
Users/machine / 10s / 1 / 10:1
Network bandwidth / 9600b/s (3 MB/s) / 155M/s (Gigabits) / 1:400

What does this mean?

Techniques have to vary over time, adapt to changes in the hardware, adapt to changing tradeoffs.

4.1 Phase 1: Hardware expensive, human cheap

When computers cost millions of $s, optimize for more efficient use of the hardware!

1.  User at a console: one user at a time. O/S as a subroutine library

2.  Batch Monitor: load program, run, print (no memory protection)

3.  Interrupt Driven architecture-DMA: Overlapping I/O and CPU (computation), OS requests I/O, goes back to computing, gets an interrupt when I/O device has finished.

4.  Memory protection + relocation: Multiprogramming, several programs run at the same time; users share the system.

Benefits:

1.  Small jobs not delayed by large jobs

2.  More overlap between I/O and CPU

Multiprogramming requires memory protection to keep bugs in one

program from crashing the system or corrupting other programs.

O/s manages these and gets complicated. First: MULTICS announced in 1963 ran in 1969. (UNIX based on Multics)

OS 360 released with 1000 bugs.

4.2 Phase 2: Harware cheap, human expensive

5.  Interactive Timesharing: Use cheap terminals to let multiple users interact with the system at the same time. Sacrifice CPU time to get better response time for users.

Problem: thrashing -- performance fall off as you add users.

4.3 Phase 3: Hardware cheaper, human more expensive

6.  Graphic Interfaces: Window systems,bitmap displays, Ethernet, internet, desktop publishing

7.  Personal Computing: initially library, later with memory. Protection and multiprogramming added.

4.4  Phase 4: Distributed systems

8. Network computing : Network is the computer?? Allow different machines to share resources.

5.0 Summary

Point of change is not: How old fashioned batch processing is. It was right for the tradeoffs of the time.

Point is: have to change with changing technology.

Today: situation is more like it was in late 60's: O/Ss today are large and complex:

small O/S -- 100K lines

big O/S -- 10M lines

10-1000 people-years for development

NT is under development for 10 years, still has problems

KEY ASPECT OF THE COURSE -- understand O/Ss so that we can simplify them