Computer
Science | School of
Engineering | UC
Santa Cruz
|
Home
| Syllabus | Schedule
| Reading List | Project |
CMPS 221: Advanced Operating Systems
|
Project InformationAll students in CMPS 221 are required to complete a quarter-long project in the area of operating systems. The project may be the results of an implementation project, original research (preferred), or a strong survey of prior art. Reporting work done for another course is not acceptable. Table of Contents
Project topicsYou may choose any topic you like, as long as it is related to operating systems. For those who'd like suggestions, I would like to see the following projects implemented. Many of them may result in a paper being published (perhaps with some additional work after the quarter is over). If you are interested in one of the topics listed below, please see me before writing up your project description. I would prefer that everyone in class pick a different topic. These topics are slanted towards file systems because that's my area of research. If you would prefer some other topic, I encourage you to pursue it.
Project researchBefore you start your project, please read "An Evaluation of the Ninth SOSP Submissions" (full citation on the class reading list). This "paper" contains a lot of good advice about how to pick a research project and how to write it up. References & background researchThe background work for a research topic is very important, even though it often doesn't get the respect it deserves. Many people simply view a review of prior work as something they have to do. It's not. Rather, it's a survey of what others think about the project you're working on. Learn from what they did right as well as what they did wrong or didn't do at all. To do this, of course, you'll need to make sure you've read as many relevant papers as you can find. Good places to start include:
Of course, you can also use Google or other search engines to find papers as well. However, the inability to find a particular paper online is not an excuse for not getting a copy of the paper. You should use the library and your colleagues to get copies of papers that aren't online. Simple searches aren't enough, though. You should also try to find papers by looking at the citation lists of papers you've already found. Often, these papers will be more relevant to your work than the paper whose bibliography you found them in. Writing a research planOnce you've read the Levin & Redell paper and done your background research, you're ready to come up with a research plan. Your plan should include your goals and the way that you will reach those goals. Your goal should be concrete, e.g. "Show that process arrival rates are Poisson." You will then need to come up with a plan for an experiment that will provide data that supports (or disproves!) your hypothesis. Your plan should state how your experiment will contribute to your goal as well as the program code, data gathering, and analysis that will be necessary. You should, if possible, estimate the amount of time you'll spend on your project ahead of time so that you can see if the project is realistic. You should also list external factors over which you have little (or no) control, e.g. "Get root priviliges on sundance to trace all user processes." This will enable you to set up a timeline for your project and stick to it. The biggest problem encountered with class research projects is poor time management. Doing the researchOnce you've got a good plan, you need to execute it. Do some work every week; don't wait until the end of the quarter. If you finish part of your plan early, go on to the next part. It's easy to take a break during the last week of the quarter, but much harder to do two weeks' work in a single week. You should interleave doing the project research with the paper write-up as much as possible. Write your background section after you've read all of the papers in your bibliography. You can always go back and modify it later. Write the design section when your design is complete, and change it as your project design changes. This way, you'll only have a small amount of writing that has to be done at the last minute. Hurried writing shows, and it isn't pretty. Final paperAs mentioned above, you'll need to write a final paper as part of your project. This report should be in the form of an academic paperyou'll be reading plenty of them this quarter—and should be about 12 pages (4000–5000 words) long (single spaced, 11–12 point font, two columns). Diagrams and graphs are strongly encouraged where appropriate. I'm not going to do an exact count of pages or words, but projects that are too lightweight will lose points. Organization, bibliography, spelling, and grammar of the final report do count, as does (of course) the content itself. I strongly urge you to use LaTeX in preparing your final paper, though you're welcome to use any software you like. Links that may be useful in learning LaTeX include: The LaTeX book that I use is A Guide to LaTeX (Kopka & Daly). Amazon also has a list of LaTeX-related books that you can browse. Important datesThere will be several checkpoints throughout the quarter. These are designed to ensure that your project stays on track to be completed at the end of the quarter. They are not intended to consume lots of time on their own. For example, a checkpoint with a status report should be a few paragraphs long, or a page at most. If you've been doing the project all along, the status report should be relatively easy. If you're behind, well, that's what checkpoints are for. Your checkpoints should be turned in in ASCII (preferred) or PDF to scott@cs.ucsc.edu. The subject of the email should be "CMPS 221: {checkpoint}" where <checkpoint> is the name of the checkpoint you are submitting The project checkpoints are: Oct 6: Proposal |
|||
|