M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Handout 7 - February 22, 1999

Assignment 4: February 24 through March 8


For Lecture, Wednesday, February 24:

Today's lecture will be on concurrency. Read the section on coordination from Handout 5.

For Recitation, Thursday, February 25:

Read Savage's paper, "Eraser: A Dynamic Data Race Detector for Multithreaded Programs" (reading #12). If you read this paper sequentially, you might not reach all the important issues. Skim over the section describing the Lockset algorithm. After you understand the main concepts of the paper, return to the Lockset algorithm. We do not expect you to memorize this algorithm. Rather, we expect you to learn about synchronization issues.

In Figure 2 of the paper, remember that "y:=y+1" is not necessarily atomic. First, the processor loads the value of y into a register. Next, the processor increments the register value. Finally, the value is written back to y. Can you find interleavings which result in different values of y? For your convenience, here are some useful definitions:

Static prevention
When all operations occur before execution to help prevent problems.
Dynamic detection
When operations occur during execution to help detect problems.
Bohr bug /bohr buhg/
Jim Gray calls a bug with a repeatable, deterministic behavior a Bohr bug (e.g., a program which always fails when you divide by zero).
heisenbug /hi:'zen-buhg/
Jim Gray calls a bug with non-deterministic (or timing dependent) behavior a heisenbug. These are particularly nasty bugs (e.g., a data race).

The Eraser paper refers to "static detection" rather than "static prevention". In dynamic detection, a program will try to catch errors when they happen, but will halt execution when errors arise. In static prevention, a program will try to catch errors before they happen -- preventing errors from happening in the first place.

For Lecture, Monday, March 1:

This lecture is the first lecture of five covering networking. It covers the material in section A ("Interesting properties of networks") of the draft of chapter 4 (to be handed out today in lecture).

For Recitation, Tuesday, March 2:

There is only one paper assigned for today, but it is Birrell and Nelson's classic paper on the remote procedure call (RPC) (reading #13). Study the paper carefully. We will discuss it in detail during recitation. The goal of RPC is to make a call to a remote server look like a regular procedure call. For fun, think about the ways in which RPC and regular procedure calls differ.

Today's assignment is different from previous assignments, in that you actually get to play with real networking tools! For this assignment, you need do the following exercises and hand in your results during recitation.

Measuring Round Trip Times With Ping

The ping utility is one of the more useful utilities for testing a network. The ping utility works by sending a short message of type echo-request to a host using a network protocol called ICMP, the Internet Control Message Protocol. A host that supports ICMP (and most do) and receives an echo-request message simply replies by sending a short ICMP message of type echo-response back to the originating host.

For more information, look at the man page on ping and the specifications for ICMP, located in RFC 792. To get to RFC 792 on Athena, type

    % attach rfc
    % more /mit/rfc/rfc792.txt

To get to the man page on ping, type

    % man ping

Exercises

Please record your answers to the two exercises below on a sheet of paper and turn it in at recitation. Please also include the amount of time that the assignment took to complete.

In this exercise, you will use the ping utility to send echo requests to a number of different hosts. To use the ping command on Athena, simply type the letters ping on the command line. A list of possible options will appear.

You may use any other form of the ping utility so long as it sends ICMP echo-request packets and can report the number of echo-response packets and the round trip time per packet. If you do use a non-Athena workstation, please make sure you use ping from some machine connected to the MIT network. Please also note that the TAs cannot guarantee tech support if you do not use an Athena Sun workstation.

On the Sun workstations on Athena, the ping utility is located in /usr/sbin/ping. On the SGI workstations on Athena, the ping utility is located in /usr/etc/ping. If you use the ping from a Sun workstation, you may have to use the -s option to get it to display the results that you want. Type machtype to determine the type of machine you are using. If you have any more questions, see the man pages for more details on how to use ping.

Exercise #1

a) For the following hosts, send 20 packets, each with a length of 56 data bytes. Indicate what percent of the packets resulted in a successful response. For the packets from which you received a response, write down the minimum, average, and maximum round trip times in milliseconds. Note that ping reports these times to you if you tell it how many packets to send on the command line.

The list of hosts are:

   www.lcs.mit.edu       
   www.whitehouse.gov
   www.stanford.edu  
   www.kyoto-u.ac.jp (Kyoto University)

Note: You may find that the packet responses are 64 bytes instead of 56 bytes. Look at RFC 792 to find out the reason.

b) For 56-byte packets, what can you say about the differences in the minimum round-trip times for pings of www.lcs.mit.edu, www.whitehouse.gov, www.stanford.edu, and www.kyoto-u.ac.jp? What reason can you give to explain why these differences occur?

c) For same hosts listed above, send 20 packets that have lengths of 512 data bytes and 1024 data bytes. Write down the minimum, average, and maximum round trip times in milliseconds.

d) When comparing 56-byte packets, 512-byte packets, and 1024-byte packets, what can you say about the difference in minimum round-trip times to the same host?

Exercise #2

a) For the following hosts, send 20 packets that have a length of 56 data bytes. Indicate what percent of the packets resulted in a successful response. For the packets that you received a response, write down the minimum, average, and maximum round trip times in milliseconds.

   www.cca.vu.nl     (Vrije Univeristy, Prof. Kaashoek's alma mater)
   www.pku.edu.cn    (Peking University)
   hu-home.mit.edu   (TA's machine modified for this exercise)
   www.microsoft.com 

b) For some of the hosts, you may not have gotten responses for all the packets you sent. Can you think of a few reasons as to why you might have not gotten a response?

For Lecture, Wednesday, March 3:

This lecture covers material in part B ("Getting organized: Layers") of chapter 4 (handout 10).

For Recitation, Thursday, March 4:

Read Metcalfe and Boggs, "Ethernet: distributed packet switching for local computer networks" (Reading #14). An interesting sidenote: The paper describing Ethernet is "old": 1976. In fact, it is so old that it describes the experimental Ethernet, which ran at 3 MB/second, rather than the commercial standard, which runs at 10 MB/second. If you already know a lot about the current Ethernet, you may notice a number of interesting differences as you read the paper.

Design Project 1 is assigned today. Look out for the Design Project on the web.

Design Project 1 is due Thursday, March 18.

For Quiz 1, Friday, March 5

Quiz 1 will be held from 2-3pm on Friday, March 5, 1999. The quiz will cover all the material up to and including the March 2nd recitation. The quiz will be open book and open notes meaning that you can use any course materials from this year. The quiz will be held on the third floor of Walker and in 34-101. See the chart below to determine which location you should go to for the quiz.

            Last Name      Location
              A-R           Walker
              S-Z           34-101

There will be a quiz review in 34-101 from 7-9pm, Tuesday, March 2 during which we will go over an outline of the covered subjects and explain a few questions from the practice quizzes.

If you have a problem regarding the scheduling of the quiz, email Professor Kaashoek at kaashoek@mit.edu.

For Lecture, Monday, March 8

This lecture deals with the link and network layer. It covers material in sections C and D of Chapter 4 (handout 10).

System aphorism of the week

A complex system that works is invariably found to have evolved from a simple system that works" (J. Gall, Systemantics).
Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu