| 
    | 
   
   | 
       
         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
    -  [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?
    
 -  [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?
    
 -  [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         
    -  [Smith] Can you have viruses on UNIX?  What is a virus?  Why
    can you have viruses on Windows?
    
 -  [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?
    
 -  [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         
    -  [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].
     
      -  [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"]
     
      -  [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) | 
         
  | 
       
      
         
  | 
         
    -  [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.
         
      -  [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)
         
      -  [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) | 
         
  | 
       
      
         
  | 
         
    -  [Smith] Describe what happens on a page fault (everything)!
    
 -  [Smith] What is a virtual machine?  Describe what happens on
    a page fault in a virtual machine.
    
 -  [Brewer] How is RPC different from a regular procedure call?
    Are there any ways to correct these differences?
  
          | 
         
  | 
       
       
 
       
    | 
    |