UC Berkeley Operating System Prelims
Fall 2001

Berkeley OS Prelim Questions from Fall 2000 - Fall 2001!
Note that all of these questions are based on post-hoc recollections of people who took the exam. They probably reflect the reporter's interpretations of the questions, which means that most of the questions in their original form were far more obscure, ambiguous, and terrifying than what appears here.


Fall 2001 (Smith and Wagner)

Recollection #1

  1. [Smith] Talk about viruses generally. How come PCs seem to have a lot more of them than UNIX (on UNIX you only hear about worms)? What kinds of viruses do you see? [Wagner] What changes would you make to prevent virus damage?
  2. [Wagner] You have a system where memory chips can be unavailable for 5-6 seconds at a time; this happens about once a minute. Data isn't lost, but you get an error message on reads/writes during this period. What changes could you make to the OS to circumvent the problem? What if you had one known good chip? What if during the 5-6s period, the chip returned random data for reads and might ignore writes?
  3. [Smith] Network-Attached Storage is a box with disks you can plug in to your Ethernet. What are the implications of doing this to increase storage vs. adding more disks to an existing box?

Recollection #2

  1. [Smith] Can you have viruses on UNIX? What is a virus? Why can you have viruses on Windows?
  2. [Wagner] Right now we have smart disk controllers that reorder requests, etc. Let's say we have smart memory chips. Unfortunately, the chips are faulty -- they fail every 10 seconds and take a few minutes to reboot. What can you do about this problem? Now let's say that you get an interrupt each time a memory chip fails. What kind of support do you need for all of this? What if one of the memory chips is guaranteed not to fail? What if the chips return bad data?
  3. [Smith] What is network-attached storage? How would you design a system for network-attached storage? The network-attached storage appears to be local disk. What are the implications of this? How fast is local disk access? How would you make network-attached storage fast? [Wagner] What are the security implications of network-attached storage?

Recollection #3

  1. [Smith] What is it about UNIX and PC's (did not specify the OS) that cause UNIX systems to be attacked by worms and PC by virus? What are the aspects of a worm and a virus? (which was more a helping question) What is different about PCs OS and Unix that makes one more susceptible to than another?

    [The desired answer, according to Smith at the end, was that on UNIX separate data and executable into different files and Windows does not].

  2. [Wagner] Given large intelligent memory components that have a lot of intelligence - that have the property of being on line on the order of a minute and then becoming unavailable (does not provide or receive data) for 6-10 seconds. What are the design issues with this? How would you design an OS to support this system? He allowed that there would be enough memory to have multiple copies of data in different intelligent components. As a follow up, he asked what would happen and how would you detect the situation that the components would actually start returning incorrect data rather than just not respond. Assuming you know the component if flaky how to you handle it in the OS?

    [The answers range from redundant components, using parity and ECC across components, and voting for the correct answer. Also MTBF and MTTI calculations. The answer to that last question was to make the page as "non-existent"]

  3. [Smith] Smith asked for the design issues associated with a Network Attached Storage. What are the issues if the NAS is really a full file-system instead of just a block device? The network-attached storage appears to be local disk. What are the implications of this? How fast is local disk access? What are the issues with providing high performance for NAS? [Wagner] What are the security implications of network-attached file system?



Spring 2001 (Smith and Wagner)

  1. [Wagner] What would happen if the seek time of a disk increased tenfold? (Looking for: changes in disk-scheduling algorithms, LFS)

    What are some problems with LFS? (complicated, not good for reads)

    Random useless aside from Smith: What is the expected distance between two random cylinders? (1/3r -- Smith himself admitted this wasn't a fair question for an OS prelim, but I'm pretty sure that didn't stop him from marking me down)

    What if there were a big NVRAM cache in front of the disk? (speeds up writes a lot, renders LFS useless)

    What if the cache weren't NV? (loss of durability guarantees)

    What if the whole disk system were 10x slower, but the CPU were 10 times faster?

    Random aside from Smith: Are any systems I/O bound? Lots of research systems are (like sensor networks in smart dust), but since these were developed in the last 10 years, Smith doesn't know or care about them. No production systems are I/O bound, since they use lots of techniques to get over the I/O bottleneck.

  2. [Smith] What assembly language instructions and registers are protected? (Looking for: setting the time, changing mode, changing registers which hold addresses of PT, interrupt handler, the actual PT, status register containing mode and other important bits)

    Random aside from Smith: What is the reason that system clocks tend to run slow instead of fast? (correcting the clock ahead instead of backwards guarantees that time always monotonically increases)

    How does the processor prevent user processes from executing privileged instructions? (user processes execute in user mode)

  3. [Wagner] What infrastructure/services are there between a user and a web server? (DNS, routing)

    [Smith] How do you send email transparently to a mobile computer? Hint: Smith doesn't know how DNS works, so don't try to include dynamic DNS as part of your solution. He will only get confused.




Fall 2000 (Brewer and Smith)

  1. [Smith] Describe what happens on a page fault (everything)!
  2. [Smith] What is a virtual machine? Describe what happens on a page fault in a virtual machine.
  3. [Brewer] How is RPC different from a regular procedure call? Are there any ways to correct these differences?