CS 1651: Advanced Operating Systems

Programming Assignment #4: Several Interesting Projects

Due Dates: Monday, April 5, 3pm (design) and April 19, 2004, 3pm (final project)

What to submit?

You must submit a design document in the first phase and your source code (your new/modified source files, your applications, etc) and a readme file explaining your design decisions and detailed instructions for testing. You will be required to make appointments to demostrate your system. Your README file is just that, a straightforward description of the submission (files, sourcecode, and general solution). In addition to these deliverables you will submit a more detailed project document. This should read like a whitepaper for your design and your experimental results where appropriate.
You may want to use latex for preparing your paper, but a common problem is starting a document with latex can be tedious. For your convenience a tar file containing a document skeleton and a makefile can be found here. In short, edit the .tex files and add references to the .bib file.

Brief Project Descriptions (click on the titles for more details):

  1. The Best Disk Layout
    Build on the redirector project to implement a data layout scheme that optimizes for real-world workloads
    A large part of this project will be defining the “real-world” workloads, and designing the appropriate experiments to test your layout against these workloads (we expect you will have at least 3 workloads based on real applications).

  2. The Consistent Disk
    Implement a consistent virtual disk. Use (for example) a brute-force approach to analyze the performance of the disk. Then devise a layout that improves performance based on the underlying disk’s measure performance.
    For a disk partition, remap all blocks/sectors such that you achieve this goal.
    This is similar to content distribution networks, that implement p2p networks (the virtual layout should be optimized for performance).

  3. Write-Optimized Block Device
    You’ve studied LFS, and WAFL. Those were file systems. Now implement a virtual block-device that is optimized for writes.  Hint: A suggestion would be to allow remapping of blocks to enable the writing of old blocks to new locations.
    We can suggest a couple of workloads, but it may be very interesting to add your own read cache … that way you can verify the effects of increasing read cache sizes on the importance of write optimization.

  4. (FreeBSD only) Bandwidth control for VoD
    Use a netnice traffic control application (netniced) on top of Video-on-Demand (VoD) to manage bandwidth and enable different user classes.
    This is a project that should be done jointly with the previous one.  Or find a Good App instead.

  5. Aiding File Transfers through Network Control
    Use a netnice traffic controller (or similar), to improve the handling of network file/storage I/O.
    For example, you could consider re-prioritizing packets based on your knowledge of what they mean and their relative importance for response time.

  6. The Fair Web Server
    Modify Apache to control bandwidth per client thread or per type of file.
    This could be used to guarantee a fair-share allocation of the server’s network bandwidth.
    This can be done with Netnice (FreeBSD only) or other type of bandwidth controller

  7. Choose-your-own-adventure
    If you’d like to propose an alternative project topic, then do so EARLY. We need to approve it, so you’d want that done before we issue the final project descriptions (otherwise project selection would delay you relative to the rest of the class).


The following may be helpful for the project document:

  1. R. Levin and D. D. Redell, "An Evaluation of the Ninth SOSP Submissions," Operating Systems Review, Vol. 17, No. 3, July 1983, pp. 35-40 (HTML).
  2. George D. Gopen and Judith A. Swan, "The Science of Scientific Writing" American Scientist, Vol.78, No.6, November-December, 1990, pp. 550-558 (HTML).
  3. R. A. Day, "How to Write a Scientific Paper," IEEE Transactions on Professional Communication, Vol.20, No.1, June 1977, pp. 32-37.