CS 111
Lecture #1 Scribe Notes for 1/7/08by David Chien, Sylvano
Doddick, Justin Chun Chuen Yu
Professor: Paul
Eggert OH:
M 12:00 - 1:00 p.m., W 2:00 - 3:00
p.m. Boelter
Hall
4532J; Email:
eggert@cs.ucla.edu
TA: Donald
Lam OH:
T 9:30-10:30 a.m., R 9:30 - 10:30
a.m. Boelter
Hall
4428; Email:
donaldl@cs.ucla.edu
TA: Ian
Ku OH:
T 1:30 - 2:30 p.m., R 3:30 - 4:30
p.m. Boelter
Hall
4428;
Email: ianku@cs.ucla.edu
Website for Submitting
Assignments:
http://courseweb.seas.ucla.edu Supplementary
Course
Websites:
http://www.cs.ucla.edu/classes/winter08/cs111/ http://www.read.cs.ucla.edu/111/
Pre-requisites:
CS 32, CS 33 Helpful to know: Computer Architecture CS
151, Programming Languages CS 131, Networking CS 118
Hours/Week |
Nominal |
In Reality |
Lecture |
4 |
3.5 |
Lab Discussion |
2 |
1.5 |
Outside Study |
6 |
6-20 | Read
for Next Lecture: Chapters 1-2 of Saltzer &
Kaashoek.
Class Format:
- 17 Lectures
- 1 Midterm 2/11, 100 Minutes, Open
Book/Notes
- 1 Final 3/17, 180 Minutes, Open
Book/Notes
- 4 Labs (Work in groups of 2)
- Lab 1a Write a Shell Due 1/15
- Lab 1b Write a Shell Due 1/25
- Lab 2 Kernel Hacking Due 2/11
- Lab 3 File System Due 2/27
- Lab 4 Prototype? Due 3/13
- 2 Minilabs (Work individually) - Smaller/Small
OSes
- 1 Design Problem Oral Presentation and Written Report
Required
Negotiate with TA, Group
Assignment
- Scribe Notes
- 1 Page Research Summary Paper at end of class
We will be
programming in C; Textbook/Course Reader can be purchased at 1137
Westwood Blvd for
$20;
Grading: 1/3 Labs (Evenly
Distributed) 1/3 Exams (20% Final,
13.333% Midterm) 1/3 Everything
Else (Minilabs, reports, scribe notes, other)
Lateness Penalty: One letter grade
per day late. 3 free late days for whole
quarter. No work accepted after last day of
discussion. Assignments are due 23:59:59 on the due
date.
The textbook is about Computer Systems. The course is
about Operating Systems. The common word in both is
Systems!!!
WHAT IS A
SYSTEM (Our Class Brainstorm
Definition)? - Different parts
composed into a while to accomplish a goal?
Oxford English
Dictionary (OED) of 1928's Definition of a System:
- An organized or connected group of objects; A set of
principles, etc.; a scheme, method; -
Originated from Greek word which means organized whole, government,
constitution, a body of men or animals, musical interval, group of
connected verses in a poem; the root of the wokd means to "setup
with;"
American Heritage Definition of an Operating System
(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
Definition of an Operating System (2007): -
Master control program in computer;
Wikipedia
Definition of an Operating System (119834131): -
A set of computer programs that manages the hardware and
software resources of a computer;
CS 111 Textbook Definition
of a System (Best Definition): - A system is a
set of interconnected components that has a specified behavior observed at
the interface with its
environment;
Real World
Example: Classroom is a
system Components: - The
different aspects or parts of a
system; - e.g. Walls, Doors,
Blackboard, Electric Circuit, Lights, TV, Professor, Students, Knowledge,
and more...
Interfaces: - The
method which the system components relate or interact with the outside
environment; - e.g. Switch, Power
Interfaces, Building Codes (Wall Strength, Door Size, etc.), and
more...
PROBLEMS WITH COMPUTER
SYSTEMS
- Tradeoffs (Waterbed
effect, no free lunch!) - When
choosing between two implementation options, there are always advantages
and disadvantages that come with each choice; This idea is called
tradeoffs;
ex. 1) Sort a big array of big
objects
Option 1: Sort objects in an array
Advantages:
- Doesn't require more memory
space - Doesn't have any
added costs
Disadvantages: -
Takes a long time to reorder the
objects

Option
2: Sort array of pointers to objects in array (Indirection)
Array of pointers to objects in array (Needs to Be
Sorted)
Advantages: -
Takes less time to reorder the objects Disadvantages: -
Requires more memory
space - Has an added
dereference cost
We see the theme of tradeoffs as each
option provides its own advantages and
disadvantages;
ex 2) Authentication (User access
security)
Option 1: Traditional Password/Username
Advantages: -
Doesn't require increased hardware costs
Disadvantages: -
Less reliable (a simple keyboard bug can jeopardize the
system) - Users will be
unaware of hacked usernames and passwords Option
2: Hardware Token Based Authentication
Advantages: -
More reliable (token must be stolen to jeopardize the
system) - Users will
know when their account is exposed when they
lose their
hardware token
Disadvantages: Increased
hardware costs.
Again, we see the recurring theme of trade
offs as each option provides its own advantages and
disadvantages;
Incommensurate Scaling (Things don't scale at same
rate)
ex 1) Q: Why
aren't people taller? A: Human mass increases by a factor
of n3 whereas
"strength" increases by n2.
ex 2) Economies of
scale - Pin Factory by Adam Smith Advantages: -
Reduced individual cost for
consumers - Faster
production in larger quantities Disadvantages: -
Increased capital and shipping
costs - Wastage as more
units are made than sold
Again, we see the recurring theme
of tradeoffs as each option provides its own advantages and
disadvantages; ex 3) Diseconomies of scale - Star
Network - Less
Robust/Reliable (if master server crashes, system
breaks) - As clients
increase, master server may not be able to handle
it
Emerging Properties
(Unanticipated before scaling)
ex 1)
Tacoma Narrows Bridge - Engineers didn't take into account
that if the wind caused the bridge to
oscillate at its resonant frequency, the bridge would break
ex 2)
Computer Worms - Good in the beginning and in small
network environment; went badly with the
expansion of Internet and malicious software
developers
ex 3) Campus High-Band Networks
- Networks opened the door for illegal file sharing programs
such as Napster
Propagation of Effects (Changes in one place can
cause undesirable results)
This is
normally seen in chaotic systems such as the weather where one event in
the arctic can cause a storm in other continents;
ex) 8-bit
Character Sets with Multi-byte Encodings for
Text - There are a limited number of
characters, thus we can't normally
type Chinese or Japanese characters.
Unfortunately, multi-byte encoding is not recognized at
lower levels, thus the command line will not recognize the command since
'/' is a reserved character in UNIX for
directory;
Solutions:
- Use a different character instead of '/' for the
multi-byte encoding
- Change OS so it recognizes multi-byte encoding
Both
approaches work, but remember
trade-offs!
Complexity (Very popular with
computers) - Why? - Moore's
Law - number of transistors on an integrated circuit
(at minimum cost) doubles
approximately
every two years (exponential) - Kryder's Law - disk drive capacity grows
exponentially
How to cope with
complexity: - Modularity - break things into
pieces/components
ex) Suppose the cost for finding a bug ?N (where
N is the size of the system)
K modules N lines of code Bugs ?
N If there are no modules; debug time = Bugs*n ~
n2< /SUP > If there are K modules, debug time =
K*(Bugs/K*n/K) ~ n2/K
<
BR > Abstraction - use "nice"
pieces or the simplest interfaces
|