Project Info

The goal of the project is to let you apply the ideas we discuss during class. You may pick whatever project topic you want. Rather than list projects, I want you to pick a topic you're interested in, possibly one based on one or more of the papers we read in class. The one requirement is that there must be a significant systems issue related to what we are discussing in class involved in your project. You may pick a topic with substantial work in another area, but you will be graded on the systems-related component of your project.

A good project is likely to be open-ended. In fact, many ideas will not have obvious termination conditions. Because of the nature of these projects, and to encourage you to set your sights high, the project grade will not be based on whether you complete your project. It will be based on your understanding and analysis of the project, your discovery and application of related work, your developing a sound technique and a plan to produce a proof-of-concept, and your progress toward implementing and testing your ideas. It is more important to develop something that can be analyzed and tested than to develop a complete system.

A variety of project types are possible. The systems-related component might be your implementation and evaluation of a new software component, performance measurement of an existing system, simulation of a system, or an analytical or statistical study of a system. The expectations of the various components will vary according to the topic. For example, a substantial implementation might be the majority of one project, while for a performance measurement project, workload design and characterization might be the most significant component.

Here are the important deadlines for your project:

Project proposal

All projects are individual. No two students may do the same project. Please come discuss your project idea with me prior to submitting your proposal.

A proposal should be 1-2 pages, 10pt, single spaced, plus figures, illustrations, and bibliography. It should have an introduction, which should describe the problem you wish to solve; background, which should give the history of this problem; related work, which describes other solutions to this problem; and your proposed solution, which should include a general description of the what components you will need to implement and how you will evaluate your project.

Important factors to discuss in your proposal include Goal, Technique, Metric, and Workload. Thinking through this process is key to a successful project.

Proposals must have a bibliography of related work.

Project descriptions

Project descriptions are revised versions of the proposal, based on feedback from the instructor and based on your continued work on the details of your project. You should have a good plan for what needs to be implemented and how it will be evaluated by this time. The project description should be about 2 pages long.

Mid-project Report

The mid-project report is a status update on your project. Essentially, you should take your project description and update it with your status and preliminary results. Depending on the project, the size of this report will vary, but you should have made significant progress by this point.

Final Report

Your final report will be like a paper you are going to submit to a conference. It should include all the components for a complete paper: introduction, related work, problem definition, solution, performance evaluation, conclusion, and references.

Previous years' projects

Ext3 file system improvement using buffer mechanisms
Caching Strategies for Multimedia Applications
Performance Enhancement by DNS prefetching for Web Browsering
QoS Oriented Service Grid Work Flow
Implement Memory Management Control Similar to that of the Original VAX/VMS System in the Linux Kernel
Increase Performance of ext3 with USB Flash Drivers
Implementing Mobility in TOSSIM
Garbage Collection Performance During Paging
Simulating Internet Traffic: Do Invariants Still Exist?
Performance of the Coda File System
Cache-aware scheduling for CMP
Software Transactional Memory
Improve Linux2.6 Scheduling Policy for Better Affinity Support
Rogue Access Point Detection from User End
Linux Process Specific Memory Priority
Performance of Garbage Collection in a JVM
A New CPU Scheduling Strategy for Autocorrelated Workload
Workload Generation and Comparison of Page Replacement Algorithms