6.033 Handout 25

6.033 ERRATA

Unfortunately, even the 6.033 staff makes mistakes and gives unintentionally wrong or misleading information. This handout repairs two of these mistakes: (1) The solution we handed out to problem 4 of quiz I does not carefully state its assumptions. This does not affect anyone's grade, but nevertheless we like to inform you of the possible correct answers. (2) One of the reading reports described a feature of an old version of X windows, but made it look as if this feature was part of the current X window release. This handout describes these two problems in more detail. Feel free to send email to Frans Kaashoek (kaashoek@mit.edu), if you find other problems with 6.033 (praise is welcome too).

Problem 4 of quiz I

The solution to this problem depends on the assumption whether a thread can overlap communication with computation. If it can, the solution as handed out is correct.

If computation and communication are not overlapped, the right answer to problem 4a) is 51 instead of 50. If communication and computation are not overlapped one needs three threads instead of two in the following simple case (1 millisecond computes, followed by a 2 millisecond latency before the reply from the WWW is received):

Consider a time line:

Thread 1   *****----------*****---------- ...
Thread 2        *****----------*****----- ...
Thread 3             *****----------***** ...
             Time -->

Each character is 0.1msec, asterisk represents a busy 0.1msec, each dash represents a thread waiting for a reply, each line is a thread. From the diagram, we can see that three threads are needed. If, however, communication and computation are overlapped then we need only two threads.

This problem was reported to Rob Bedichek by John Jones.

Endianess in the X window system

The reading-report assignment of in handout #8 (assignment March 14 through March 20) said: "The X Window system deals with both big-endian and little-endian clients by providing two different network ports. Big-endian clients send requests and data to one port, while little-endian clients send requests and data to the other."

This information is technically incorrect for X11, which is the current version of the X window system. X10 used two ports exactly as described. X11 changed the strategy: it uses only one port, but maintains essentially the same function by requiring that one of the first bytes be a flag by which the client tells the server what byte order it is sending. Both techniques avoid the cost of a network-standard byte order.

This problem was reported to the 6.033 staff by a number of students.