Course Information

Professor Eggert

Office Hours:

  • Monday 12:50-13:50
  • Wednesday 11:00-12:00

Office Location: Boelter 4532J

TA: Keith Stevens

Office Hours:

  • Tuesday 14:30-15:30
  • Thursday 14:30-15:30

Office Location: Boelter 4428

TA: John Han (Jonathan) Park

Office Hours:

  • Wednesday 15:00-17:00


Office Location: Boelter 4428

Course Website:

Textbook:

Jerome H. Saltzer and M. Frans Kaashoek, Principles of Computer System Design: An Introduction, Morgan Kaufmann (2009)

Official Prerequisites

  • CS32
  • CS33

Unofficial (Recommended) Prerequisites

  • CS151B - Computer Architectre
  • CS131 - Programming Languages
  • CS118 - Networking

Course Load

Supposed Hours/Week Actual Hours/Week
Lecture 4 3.7
Discussion Section 2 1.7
Outside Study 6 12+

External Resources

Assignments


Grading

Summary:


1 Final Exam2/9
1 Midterm Exam1/9
4 Lab Problems1/12 each
1 Design Problem1/12
1 Scribe Notes1/12
2 Minilabs1/15 each
1 Single Page Report1/30

More Info on Scribe Notes

Scribe notes can be completed in groups less than, or equal to, 3 students large. People will be chosen to prepare a
set of scribe notes for each lecture, so that everyone has a chance to turn in a set of notes by the end of the course.
Once assigned, the notes are due one week after the lecture, with two exceptions:

  1. Near the midterm, the notes are due 2 days before the exam
  2. Near the final exam, the notes are due on the last day of class lecture

Notes on Grading

Exams are open book and open notes. This means that the questions normally can't be answered directly from the book.
Instead, the professor likes to ask more open ended questions. The professor always tries to put one question on an
exam that even he doesn't know the answer to.

Labs can be completed in pairs. One letter grade is deducted for each day that an assignment is turned in late.
However, each student has three "get out of jail free cards," which can be used at anytime throughout the course.


Research In Motion's BlackBerry PlayBook

Research In Motion (RIM) just last week announced that it plans to introduce a Tablet Computer to compete with the existing Apple iPad. Interestingly enough, RIM chose to abandon its existing BlackBerry OS in favor of QNX, a "message passing" OS that RIM acquired roughly a year ago. QNX has a history; it has a reputation for reliability, and thus has been used in nuclear reactors and other mission critical applications.

So why did RIM decide to go with QNX rather than the traditional BlackBerry OS?

This is up for debate. Usually, hardware is supposed to be unchanging and static -- once the physical hardware of a mobile phone is manufactured, it likely will go unchanged for the lifetime of the device. Software, on the other hand, is supposed to be the opposite. Software can be updated after a product is released to the public, allowing for bugfixes, feature additions, and more. However, RIM has seemingly taken this design paradigm and turned it on its head. In the case of the PlayBook, it appears that RIM decided that its traditional BlackBerry OS was simply too hard to port over to the new device.

The reality is that today in 2010, RIM is suffering the consequences of poor design decisions that were made in the 1990's when the BlackBerry OS was still finding its roots. Much of the code in the now-outdated OS simply was not meant to last for the long-term, or simply not intended to scale the way that it has in the past decade. Thus, it is more logical for RIM to start from scratch with a new OS, that is, QNX.


What is a System?

Figure 1
System - As defined in the original Oxford English Dictionary (1928)
  1. An Organized or connected group of objects
  2. A set of principles, etc.; a scheme, method
  3. From Greek word meaning "set up with": organized whole, government, constitution, a body of people or animals, musical interval, or a group of connected verses in a poem
System - As defined in by Saltzer & Kaashoek in the course textbook

A set of interconnected components that has a specified behavior observed at the interface with its environment.

What is an Operating System?

(Note that in the following definitions, the strikethrough text is text that the Professor deems inappropriate for the definition
of an "Operating System," while the italicized text is thought to be of greater importance.)
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.
Operating System - Encarta (2007)

Master control program in a computer
Operating System - Wikipedia (version 119834131)

A set of computer programs that manage the hardware and software resources of a computer.

Almost everything around us can be treated as a system in one way or another. In fact, our classroom is a system! First, it is a complex electrical system; the light switch sends a signal to a sensor in the overhead lights to turn ON/OFF. Second, think about the furniture layout of the room. Someone had to design the seating in the room to optimize the number of seats, viewing angle, etc. with the given dimensions and slope of the ground. Lastly, think about the room from a firefighters perspective. Are the two doors to the room large enough for everyone to evacuate the room safely, in case of an emergency?

It is important to realize the design principle behind all of this. These systems are not mutually exclusive; in other words, all of these systems interact with each other. Often times there are unforeseen side effects of these cross-system interactions. But this is what makes system design both complicated and interesting!

Problems With Computer Systems

Tradeoffs:

Incommensurate Scaling:

Emergent Properties:

Propagation Effect:

Complexity:


Figure 2
Moore's Law states that the number of transistors on an "economically feasible"
chip roughly doubles every 2 years.


Figure 3
Kryer's Law states that the hard disk capacity doubles roughly every year.