Title: Emery Berger
1Operating SystemsCMPSCI 377Lecture 1
- Emery Berger
- University of Massachusetts, Amherst
2Information
- Course web page
- http//www.cs.umass.edu/emery/cmpsci377
- My contact info
- emery_at_cs.umass.edu
- Phone 413-577-4211
- Office hours by appointment
- TAs
- Gene Novark, Louis Theran
- Discussion section
- W 1220 110, Hasbrouck 138
3Todays Class
- Administrivia
- Course organization outline
- Prerequisites course sign-up
- Introduction History of Operating Systems
4Course Organization
- Capacity is 50
- Class junior or senior-level
- Not for freshman or sophomores
- Enrollment policy
- If space becomes an issue,graduating seniors get
preference
5Prerequisites
- CMPSCI 187 (Data Structures)
- CMPSCI 201 (Architecture)
- Textbook
- Operating Systems(Deitel, Deitel Choffnes)
6Course Requirements
- Class participation 10 (includes in-class
quizzes) - Homework 10
- Programming projects 40
- Exams (two in-class, one final) 40
- Programming assignments Java
- Strict late policy not accepted late
- Cheaters will be found and punished
- Will use sophisticated software to detect
plagiarized programs
7Course Organization
- Accounts in EdLab 30 Linux PCs
- Discussion section to help you with lab
assignments - Office hours and location of TAs
- Gene Novark to be announced
- gnovark_at_gmail.com
- Louis Theran to be announced
- theran_at_cs.umass.edu
8Introduction to Operating Systems
- Whats an operating system? (OS)
- Why are OSs important?
- Historical perspective on operating systems
9Whats An Operating System?
- Definition has changed over years
- Originally, very bare bones
- Now, includes more and more
- Bill Gates Windows
- Everything in other operating systems
- Internet Explorer
- Media player
- even a ham sandwich (DOJ vs. Microsoft)
10OS More Traditional View
- Interface between user and architecture
- Hides architectural details
- Implements virtual machine
- Easier to program than raw hardware (hopefully)
- Provides services and coordinates machine
activities
User-level Applications
virtual machine interface
Operating System
physical machine interface
Hardware
11Operating Systems Key Features
- Provides standard services (interface) that
hardware implements - File system, virtual memory, networking,
scheduling, time-sharing - Coordinates multiple applications and users to
achieve safety, fairness and efficiency (high
throughput) - Concurrency, memory protection, networking,
security - OS design challenges convenient and efficient
- Software engineering systems engineering
problems
12Introduction to Operating Systems
- Whats an operating system? (OS)
- Why are OSs important?
- Historical perspective on operating systems
13Importance of Operating Systems
- Key component of computer systems
- Meeting point of software hardware
- Understanding how computers work understanding
operating systems - OS provides key services required by all
application programs - Rich topic
- OS most complex software on your PC
- Windows XP kernel 40 million lines of code
14Why So Complex?
- Provides high-level of abstraction
- Illusion of
- Infinite memory
- Complete control of resources
- Requires sophisticated system design
- Tradeoffs
- Performance vs. convenience (OS abstractions)
- Performance vs. simplicity (OS design)
- Putting functionality in hardware vs. software
- As systems changes, OS must adapt (new hardware,
software)
15New Developments in OS Design
- Operating systems very active field of research
- Demands on OSs growing
- New application spaces (Web, Grid)
- Rapidly evolving hardware
- Advent of open-source operating systems Linux
- You can contribute to and develop OSs!
- Excellent research platform
16Background You Need
- OS software that manages hardware
- Must understand both
- Hardware
- CPU instruction sets, memory hierarchies
- I/O systems
- Software
- Complex data structures
- Object-oriented programming (esp. for
encapsulation) - Java (although)
17Introduction to Operating Systems
- Whats an operating system? (OS)
- Why are OSs important?
- Historical perspective on operating systems
18The Dark Ages (1940s-1960s)
- Hardware expensive humans cheap
- Evolution of functionality
- One user
- Batch processing
- Overlap of I/O computation
- Multiprogramming
191. Single-User Computers
- One user at a time on console
- Computer executes one function at a time
- No overlap computation I/O
- User must be at console to debug
- Multiple users inefficient use of machine
202. Batch Processing
- Execute multiple jobs in batch
- Load program
- Run
- Print results, dump machine state
- Repeat
- Users submit jobs (on cards or tape)
- Human schedules jobs
- Operating system loads runs jobs
- More efficient use of machine, complicates
debugging
213. Overlap I/O and Computation
- Before machine waits for I/O
- New approach
- Allow CPU to execute while waiting
- Add buffering, interrupt handling
- More efficient use of machine, but still one job
at a time
224. Multiprogramming
- Allow several programs to run at same time
- Run one job until I/O
- Run another job, etc.
- OS manages interaction between programs
- Which jobs to start
- Protects programs memory from others
- Decides which to resume when CPU available
23OS Complexity
- Increased functionality complexity
- First OS failures
- Multics (GE MIT)announced 1963, released 1969
- OS/360 released with 1000 known bugs
- Need to treat OS design scientifically
- Managing complexity becomes key to
24The Renaissance (1970s)
- Hardware cheap humans expensive
- Users share system via terminals
- The UNIX era
- Multics
- army of programmers, six years
- UNIX
- three guys, two years
- Shell composable commands
- No distinction between programs data
- But response time thrashing
25The Industrial Revolution (1980s)
- Hardware very cheap
- humans expensive
- Widespread use of PCs
- IBM PC 1981, Macintosh 1984
- Simple OS (DOS, MacOS)
- No multiprogramming, concurrency, memory
protection, virtual memory, - Later networking, file-sharing, remote printing
- GUI added to OS (WIMP)
26The Modern Era (1990s-now)
- Hardware cheap Processing demands increasing
- Real operating systems on PCs
- NT (1991) Mac OS X Linux
- Different modalities
- Parallel Multiple processors, one machine
- Distributed Multiple networked processors
- Real-time Strict or loose deadlines
- Sensor networks Many small computers
27Moral of the Story
- The only constant Change
- In 50 years, almost every computer component
now9 orders of magnitude faster, larger, cheaper - Example
28Moral of the Story, II
- No counterpart in any other sphere of human
existence! - Transportation
- 200 years to go from horseback (10 mph) to
Concorde (1000 mph) 2 orders of magnitude - Communication is closest
- 100 years to go from Pony Express (10 mph) to
nearly speed of light (600 million mph) 7
orders of magnitude - And operating systems must adapt
29Next Time
- Operating Systems Architecture
- Work on Lab 1!