Stanford Distributed Systems and Networks Quals

2002 2001 2000 1999 1998 1997 1996 1995

1998 Problem Set

The objective of the exam is to find out what you know about distributed systems and networks and to assess your ability to identify and develop solutions for problems that arise in this area. Note that the questions may have many "correct" answer, so be sure to provide justifications for your answers. State any assumptions you make when answering the questions. The points in parentheses are a rough indication of how many minutes to spend on each question. The exam is closed-book. Problem 1 (15 Points) You're working at a software company late at night. It's no longer a startup, so you're the only one there at 3am. You're a bit lonely and the place is a little too quiet. However, you're in a room filled with cubicles and each cubicle boasts a workstation with a speaker that can play a single note at a time, in a range of four octaves.

You decide you'd like to get these workstations to sing in four-part harmony (soprano, alto, tenor and bass). You'll designate some of the machines as sopranos, some as altos, etc., and give each of the groups a part to sing. You'll control the song from your own workstation. The machines are all on a shared 10Mbit Ethernet.

Assume there's already a format into which you can compile music and which each workstation can read to produce what it believes are the desired notes with the desired durations. You can send the same music to all the machines, and if you tell the machine what part it shouldsing, it will extract that part from the music.

What are some of the distributed systems issues you need to worry about to get these machines to sing well together? How do you address these issues?

Problem 2 (30 Points) You are responsible for a very popular web site that has items on it that change frequently. You have two choices for how the server and clients interact:
  1. You can keep these changing itesm on the web server and allow clients to contact the server for any changes.
  2. You can have the server "push" any changes out to the clients to be cached there.
Do not worry about the actual details of http. Assume either of these techniques can work. Assume the clients keep a timestamp for any items they cache that they can include in a message to the server to find out if that item has changed. Assume that the clients do not make changes to the items on the web site.
  1. How would you decide for this web site which technique to use? What are some of the issues you'd examine in deciding which technique to use?
  2. Do your plans change if the clients can also make changes to the items on the web site? If so, how?

Problem 2 (30 Points) Most of the sercurity techniques we read about concern protecting communication paths. Instead, you've been hired to design a secure distributed file system. Are there different security issues regarding secure storage than there are for secure communication? If so, what are they? If not, why not?

Maintained by Gurmeet Singh Manku