CS 111 - Operating Systems Principles
Assembled by: Jeremy Ir, Charles Rudolph, Song Zheng
Lecture 1: Tuesday, March 30, 2010
Assigned Reading: Sections 1 to 2.3
Course Overview
Professor and TAs:
Paul Eggert |
|
Mon 12–1, Thurs 2–3 |
Boelter 4532J |
Ian Ku |
ianku@cs.ucla.edu |
Mon 2–4 |
Boelter 4428 |
Keith Stevens |
kstevens@cs.ucla.edu |
Wed 2–3, Thurs 4-5 |
Boelter 4428 |
Textbook: Jerome H. Saltzer and M. Frans Kaashoek, Principles of Computer System Design: An Introduction
- Systems book, not OS book, very big picture, not enough OS details
Course Website: http://cs.ucla.edu/classes/spring10/cs111
Course Load:
|
Hours/Week |
Actual |
Lecture |
4 |
3.7 |
Discussion |
2 |
1.7 |
Outside Study |
6 |
12 |
Course Organization:
- 19 Lectures
- Midterm, 100 min, Thursday of 5th Week (subject to change)
- Final Exam, 180 min, date and location based on registar
- 4 Labs (1a, 1b, 2, 3, 4) – may work in pairs or alone
- 2 Minilabs
- Design Problem (oral presentation, written report)
- 1-page report
- Scribe notes, in HTML 4.0.1, due a week after lecture (faster turnaround required near midterm and final)
***Exams are open book, open note, no electronic devices
Resources for Labs:
- OS Seasnet Labs
- Seasnet Linux Servers
- lnxsrv01.seas.ucla.edu, lnxsrv02.seas.ucla.edu, lnxsrv03.seas.ucla.edu
- add "/usr/local/cs/bin" to your path
- UCLA Linux Users Group
- Emulators – QEMU, Bosch
Grading Policy:
- 1/3 - Exams
- 2/9 – Final
- 1/9 – Midterm
- 1/3 - Labs
- 1/3 - Other
- 1/15 – Each minilab (2)
- 1/12 – Design problem
- 1/12 – Scribe
- 1/30 – 1-page report
***Lateness policy, lose one letter grade per day, 3 free late days
Definitions
What’s a system?
- Oxford English Dictionary (1928)
- organized or connected group of objects
- set of principles, etc. a scheme, a method
- From Greek word σύστημα:
- organized whole, government, constitution
- a body of people or animals
- musical interval
- a group of connected verses in a poem
- roots are “set up with”
What’s an operating system?
- American Heritage Dictionary (2000)
- Software designed to control the hardware of a specific data processing system in order to allow users and application programs to make use of it
- Encarta (2007)
- Master control program in a computer
- Wikipedia (11934131)
- Set of computer programs that manage the hardware and software resources of a compute
- Definitions from the class
- OS = optional GUI (may be separate application) + Library (helpful existing code) + Interface to lower level hardware facilities
- Book
- System is a set of interconnected components that has a specified behavior at the interface with its environment
- Systems nest(compoents in system)
- Example: classroom, furniture component, electrical component
Problems with Computer Systems
Incommensurate Scaling
- Not everything scales at the same rate
- Why are we 2 m tall? Scaling is a big deal
- Economies of scale (A Smith, pin factory)
- Diseconomies of scale (star network)
Emergent Properties
- Arise as new, unanticipated properties in larger systems
- Tacoma Narrows Bridge
- Robert Morris worm of 1980s
- Napster
Propagation of effects
- Tiny changes in part of a chaotic system can cause large changes elsewhere
- This can happen in well designed systems
- c:a\dddd\f – file name separators ( \ )
- Japanese characters (multi-byte encoding, first byte has a leading one)
- During parsing of a Japanese name, the back half of the multi-byte encoding is misinterpreted as a file name separator
- Solutions
- Bloat kernel – tell it about multi-byte encoding, check for it
- Bloat encoding – make less efficient encoding but safer
Combination Example
- Kaminsky DNS design flaw
- DNS Query, what is www.citibank.com?
- Bad guy 1 sends lots of packets, Citibank = bad address
- DNS server sends queries to a root and gets responses
- thus bad guy 2 can send bad IP address to DNS server
- It will return the IP address to any user that asks for it
- Incommensurate Scaling of bad guys
- Emergent Properties of attacking DNS server
- Propagation of Effects can forge return address of packets
COMPLEXITY
- New to computer systems
- Because: Moores Law
- Number of transistors doubles every two years
- Number of transistors keeps going up, complexity keeps rising
- Because: Kryder's Law
- Disk Drive Capacity
- Easier for us to design more complex systems