M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Handout 3 - February 10, 1998

Assignment 2: February 11 through February 19


For Lecture, Wednesday, February 11:

This lecture will cover topics on the structure of systems. The optional reading assignment is Tanenbaum, chapter 1.

For Recitation, Thursday, February 12:

In preparation for this section, read Scheifler and Gettys' "The X Window system" (reading #9). X was developed at MIT and is used all over the world (including on Athena). It is an excellent example of a well-designed system and demonstrates many of the topics we will discuss in 6.033 (including hierarchy, complexity, and system organization).

We will attempt to hand back your corrected reading reports in this section, so you can use your TA's feedback to improve your next writing assignment.

For Lecture, Tuesday, February 17 (virtual Monday):

Today is virtual Monday, so there will be a lecture instead of recitation. Since we ran out of Tuesdays this week, your one-page reading report is due on Wednesday, in lecture. The assigned reading is Ward, chapters 16 and 18. The optional reading is Tanenbaum, chapter 3.

For Lecture, Wednesday, February 18:

Read Birrell's "An introduction to programming with threads" (reading #11). For class, read pages 1 through 12; if you get interested in threads, read pages 13-22, and if you get really psyched about threads, read the whole paper. Don't be confused by the particular programming language that is being used in this paper; focus on the semantics of the thread primitives. Optional reading is Tanenbaum, chapter 2.

Today you should also turn in your second written assignment. This week's one-pager is meant to make you think about when a multi-threaded design is appropriate and when not:

Assume you work at Makrosoft, in the group that develops a mature and very successful X server. It is single-threaded and your manager decides to make this product multi-threaded, to improve performance. The product will not be rewritten. Instead, the relevant parts will be patched.

We ask that you write a memo to the chief technology officer and argue against this decision. Using your own intuition, Birell's comments, and your knowledge about the X Window system, describe one significant problem that the multi-threaded version of the server could exhibit. Keep in mind that the CTO has a very good understanding of concurrency and the X server, so your memo must be technically impeccable. Furthermore, your argument must be clear and substantial, or else you will end up on the job market again.

Remember that you can check out the 1997 6.033 web pages for examples of good one-page reading reports. Also, please apply the stuff you learned in the special lecture offered by the Writing Program; check the 6.033 FAQ for formatting instructions.

For Recitation, Thursday, February 19:

Read Ritchie and Thompson's "The UNIX Time-Sharing System" (reading #10). Think about what factors enabled UNIX to survive for almost 30 years with most of its original interfaces intact (e.g., the file system). How does the authors' statement "the success of UNIX lies not so much in new inventions but rather in the full exploitation of a carefully selected set of fertile ideas" relate to 6.033 principles?

System aphorism of the week

Everything should be made as simple as possible, but not simpler. (A. Einstein)
Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu