Prerequisites:
Also helpful:
- CS131 - Programming Languages
- CS151B - Computer Architectre
- CS118 - Networking
Hours/Week
- Lecture: 4
- Lab: 2
- Outside Study: 9
Course Website:
Course Information:
- 19 lectures
- 1 midterm - 100 minutes - end of fifth week - open books, notes - no electronic devices
- 1 final - 180 minutes - check registrar - open books, notes - no electronic devices
Grading/Overall Grade:
- 1 midterm: 1/9
- 1 final: 2/9
- 4 labs (teams of 2): 1/12 each
- 2 mini labs (solo): 1/15 each
- 1 design problem (team of 2) with report: 1/12
- 1 scribe note (html 4.01 or 5 validated): 1/20
- 1 research paper (2-3 pages - summarizing recent works in OS area) - 1/15
Lateness policy: 2N-1% penalty where N is the number of days late
Motivations:
Problem 1:
Running N virtual machines (vm) on top a real server where all vm are connected to a root node.
To copy every file from every vm sequentially into a tape for backup, we run tar -cf /dev/rmt/. To restore
a particular vm, ex. vm27, we run tar -xf /dev/rmt/vm27. There is a loophole using symbolic link
that allows us to get into another vm. Say we have vm27 and we want to break into vm28.
// while tar is running
cd
echo foo > myfile
rm myfile
ln -s .../vm28/etc/password myfile
cat /myfile
// no such file
Since tar sees the same thing as ls, it will consider myfile as a regular file in which it will open.
We then change myfile into a symbolic link using ln. This makes tar follow the link and delete all files in vm27
and ask for restoration from vm28.
Problem 2:
DNS: Domain Name System - maps domain to IP adress - often is too slow. To remedy this, DNS servers
cache recently searched addresses. To attack this, we can ask a question to a DNS server about some unfamiliar
address and send our own answer back before DNS answer arrives. This will poison the DNS cache with the wrong IP address. We can also attack
a domain instead of a specific address by poisoning DNS and its delegation.
---------------------------------------------
Marina Weisband (Pirate Party DE in Germany) - "We don't offer ready made program but an entire operating system"
What is a system?
- A group of components working together with connections working between them.
- OED (original, 1928)
1. An organized or connected group of objects
2. A set of principles, etc, a scheme, or method
3. συστημα: organized whole; government; constitution; a body of
people or animals; musical interval; group of connected verses in a poem
- American Heritage (4th ed, 2000)
Operating System, OS: 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
O.S: mastercontrol program of a computer
- Wikipedia (602065231 2014-03-31 3 hours)
OS: a collection of software that manages computer hardware resources and provides common services for computer programs
- Textbook definition
System: a set of interconnected components that has a specified behavior observed at the interface of its environment
Problems In Computer Systems
1. Waterbed effect (Tradeoff)
Example:
Sort a big array (1GB) using qsort - O(nlog(n))
qsort(a, 1<<20, 1<<10, cmp)
To improve, we could create an auxiliary array of index that points to the original array
and sort the auxiliary array instead
qsort(i, 1<<20, sizeof(int), cmp')
Pros:
- Copying overhead is reduced by a factor of 1024/4 = 256 if copying
is the bottleneck
Cons:
- chewed up 0.5% more RAM
- more complicated - more bugs
- access time longer
- cmp' is slower than cmp
- deferencing decreases performance after sorted
- second sort makes later accesses non-sequential
2. Incommensurate Scaling
Not everything scale at the same rate
- Economics of scale (A-Smith: pin factory)
1. Make in all the pins in one place, then ship to other areas
2. May have more pins than needed (can cause waste)
- Diseconomics of scale (100 base T switch)
Economics of scale and disconomics of scale together makes system barely working.
3. Propagation of effects