Unit Project |
The primary objective of the unit project is to have the students explore
an operating system design concept or problem in greater depth than is possible
with the standard lecture and machine problems.
Those of you who are signed up for 1 unit of credit for CS 423
will need to complete a unit project. The deadlines are listed to
the right of this page. You may work alone or in groups of two to
three people. You should expect about two/three MP's worth of work for
each person involved in the project. You may do any of the following:
- Pick a project topic from the list below
- Find a research paper published in a leading conference or
journal (such as CM SOSP, OSDI, USENIX conferences, ACM Transaction
on Computer Systems,) that details an operating system concept, and
implement it.
- Pick two published research papers on operating system design
topics ,
write a two to four page summary of each, and prepare a twenty minute
presentation of each.
- Develop a project idea of your own, based on previous experience or
research interests. Some possibilites include
- make additional changes to the Linux kernel (in addition to
the machine problems)
- enhance Linux protocol stack
Write a proposal at least half page long (in ascii, to be mailed to
egunter@illinois.edu) that
details the scope of your project and an implementation schedule. If
you are basing your project on a paper, cite the paper and provide a
URL to a PDF or postscript version. Be sure to include a description
of the scope of the project, the platform of implementation, the concept you want to
implement, and an outline of how you would like to to demonstrate your
project at the end of the semester. Also, give a clear outline of
each individual's responsibility in the project, and a timeline with
milestone for the project.
Your proposals are due by Friday 11 February 2011. You
should submit your proposal electronically, in plain text form
contained in the body of an e-mail message (no attachments please).
It should be at least half a page, but not more than 2 pages long. Feel free to ask for an
appointment to discuss the project proposal with me before the
proposals are due. Alternately, you may present me personally with a paper version.
Final submission By default, propject demonstrations and paper
presentations must eb scheduled to be by Tuesday 10 May 2011.
To avoid an incomplete in this course, you
should present you final submission by Thursday 12 May 2011.
The due dates for this project are listed on the side of this page.
Before you begin your project, you should submit a proposal and
have it approved. The proposal should be submitted by email, or in
writing to me personally.
If you are doing an implementation project, at the end of the
project, you need to turn in two things:
a tar file containing your source code, tests, and Makefile; and
a project report, as a PDF file, containing the information below.
At teh end of the semester, you will schedule a demo session where
each group will give a brief presentation and demo of their code.
Your final report should have 4 sections:
- Overview
- Describe the motivation, goals, and broad accomplishments of your
project in general terms.
- Implementation
- A brief description of the important aspects of your implementation,
in terms of
(a) the major tasks or capabilities of your code;
(b) components of the code;
(d) status of the project -- what works well, what works partially, and
and what is not implemented at all. You MUST compare these with
your original proposed goals in the project proposal.
- Tests
-
Coming up with appropriate tests is one of the most important part of good
software development. Your tests should include unit tests, feature
tests, and larger test codes. Give a short description of the tests
used, performance results if appropriate (e.g., memory consumption for
garbage collection) etc. Be sure to explain how these tests exercise the
concept(s) you've implemented.
- Listing
- A listing of your code. The code should be documented thoroughly and
clearly. You don't need to comment every single line or even every single
function. Instead, focus on the central functions and data structures in
your implementation, and document them well.
By default, we will have demos and paper presentations on Monday,
May 9, 2011 or Tuesday May 10, 2011 (contact me if you have an exam
scheduled at that time). During this time, your group will make a
brief presentation of your work and then give a demo of your
project.
|
|
Milestone Dates |
Proposal |
Feb 11, 2011 |
Demos and Paper Presentations |
May 10, 2011 |
Final Report |
May 12, 2011 |
|
|