CPE 454 Implementation of Operating Systems
|
|
Dr. Michael Haungs
email:
mhaungs@calpoly.edu
office: 14-226
office hours:
TR: 3:10-5pm |
Section 1
Lecture:
Science-A12
TR 12:10pm-1:30pm
Lab:
14-232A
TR 1:40pm-3:00pm
|
|
- Design and implementation of multiprogramming kernels, systems analysis, interprocess communications, synchronization, device drivers and performance evaluation methods.
- Syllabus
Bovet and Cesati, "Understanding the Linux Kernel (3rd Edition)", 2006 O'Reilly Media, ISBN 0-596-00565-2
Venkateswaran, "Essential Linux Device Drivers", 2008 Pearson Eductaion, ISBN 0-13-239655-6
Love, "Linux Kernel Development (2nd ed)", 2005 Pearson Education, Novell Press, ISBN 0-672-32720-1
Corbet, Rubini, and Kroah-Hartman, "Linux Device Drivers (3rd Edition)", 2005 O'Reilly Media, ISBN 0-596-00590-3
- The prerequisite for this course is CSC/CPE 453.
- Discussion Boards (Students are responsible for reading the postings in these
forums, so check them regularly.)
- Administration Forum :: Look here for class anouncements, corrections, and other
important information. DO NOT POST YOUR QUESTIONS HERE.
- Student Discussion Forum :: This is were you post your questions about
lab assignments, projects, and course material. I encourage (and expect) students to provide
answers as well as questions.
- Grades
Grading Distribution (approxiamately)
Labs
|
35% 25% |
Project Paper Draft (due May 14) |
5% |
Project Demonstration (Week 10) |
5% |
Final Project
Paper (due June 4) |
20%30% |
Presentations |
25% |
Final/Class Participation |
10% |
Total |
100% |
Additional Requirements (README)
- You will receive an "F" in the course if you are unable to demonstrate your work by the end of the quarter.
- You will lose an entire letter grade if the draft of your paper, due May 14, does not demonstrate sufficient effort and progress.
Grading Policy
Letter grades for the course will be assigned according to the following schedule: 100%-90% A, 89%-80% B, 79%-70% C, 69%-60% D, 59%-0% F.
Late Policy:
Except for exceptional circumstances (e.g. a limb fell off), Late assignments will be given 0 points.
Regrades must be submitted within one week after the grades have been posted.
I will report all suspected incidents of academic dishonesty to Judicial Affairs. If guilty, the student will receive an "F" in the course.
- All of your programming files should begin with the following
comment header
- handin command instructions.
- Lab is mandatory on the due dates indicated below as you will be required to demonstrate your work.
Lab Assignment Schedule
Assignment |
Due |
Points |
Lab #0 (pdf) |
April 9 |
5% |
Lab #1 (pdf) |
April 16 |
5% |
Lab #2 (pdf) |
April 23 April 28 |
5% |
Lab #3 (pdf) |
May 5 May 7 |
10% |
Lab #4 (pdf) |
May 14 Cancelled |
10% |
- You will work in teams of three or four on the course's final project.
- Each member of the team must email me a weekly progress report. Due every Friday before 5pm.
- At the end of the quarter, each member of the team will send me an assessment of each team members's contributions
- You will demonstrate your project in class and lab during the last week of the quarter (we'll signup for times). Your project must be working by this point or everyone in the group will receive an "F" in the course.
- Each member of the group will be questioned, in person, about various aspects of the project and will be assigned individual grades based on their answers.
- Each group will write a 7-page draft on their project that covers, as best as possible, the final paper requirements (see below). Due in class on May 14. You will lose a full letter grade if this draft does not demonstrate sufficient effort and progress.
- Each group will write a 10-page paper on their project (see below).
- You should discuss your project with me before starting to work on it.
This is just to ensure your project is at the right level of complexity.
- Each group will also be responsible for making presentations to the class (see below).
Paper
Your paper will decide a majority of your final project grade. It should be well-written, organized, and informative. The target audience for your paper are junior-level computer science students (not me!). In other words, you can not take short cuts in the explanation of your work. Your paper should be 10 pages in length, in 10pt font, have 2-columns, have appropriate margins, and be single-spaced. It should contain the following sections:
- Abstract
- Introduction
- Describes the problem you are addressing, current solutions, your solutions, and a 1-paragraph overview of the paper
- Project Overview
- If your project has a name, then should use that as the title of this section.
- This should contain a high-level description of your work.
- If you are implementing an algorithm, then this should talk about the steps and goals of your algorithm.
- If you are creating some tool or functionality for a user/programmer, you should describe here how that user/programmer would take advantage of your work.
- Implementation
- You should talk about the design, software architecture, and low-level components/mechanisms. You should also talk any locking of resources you had to do. A user should have a good idea how to write the code that you wrote after reading this section. You should minimally have two figures to help illustrate your design and architecture. Include lots of detail!
- Performance/Analysis
- In research publications, this is often the most difficult section. You need to run a set of experiments that demonstrate the peformance, efficiency, throughput, and/or scalability of your work. You need to accompany each experiment with an indepth analysis of the results of the experiment. You need to describe what is happening in the system to cause the results. All of your experiment results should be the average over multiple runs.
- Also, you need to compare your work to something. For example, you should compare any algorithms you implement to the default algortihm in Linux and a random algorithm as well.
- Related Work
- Describe any and all work similar to yours. Write one paragraph summaries of related projects and compare/contrast your work to it.
- Conclusion
- Future Work
- You should have between 2-4 paragraphs describing how your work can be improved.
- References
Topics
Each group will choose from one of the following projects:
- New Filesystem features
- New Page Replacement Algorithm/Enhancement
- New Scheduling Algorithm/Enhancement
- New Disk Arm Scheduling Algorithm/Enhancement
- Implement a deadlock detection/prevention mechanism for UNIX semaphores
- Novel Device Driver (any ideas?)
- New Security mechanism (process sandboxing)
- New IPC Mechanism
- User-level Thread Package
- Other (just clear it with me)
- Each project group is responsible for making three class presentations: Research, Status, and Final. You should submit your slides (.ppt or .pdf) via handin on the day you are presenting.
- Here is a great resource on how to give a good talk. I expect everyone will read it and follow its advice.
- Research presentation
- This will be a 20 minute presentation given during class on either April 21 or April 23 and is worth 10% of your total grade.
- You must create a powerpoint slide presentation (or equivalent) that minimally contains the following slides:
- Title and Group Members
- Project Motivation
- What problem are you trying to solve?
- Project Description
- Provide a high-level overview of your project.
- Research
- Provide a detailed explanation of the area in which you are working. For example, you should completely explain how the present linux scheduler works if your project is to implement a scheduling policy.
- Related Work
- Describe existing work that is similar to your proposed work.
- Timeline
- Status presentation
- This will be a 20 minute presentation that describes current project progress.
- This presentation will be given during class on either May 12 or May 14 and is worth 10% of your total grade.
- You must create a powerpoint slide presentation (or equivalent) that minimally contains the following slides:
- Title and Group Members
- Project Description
- Project Design and Implementation
- Accomplishments
- Discuss all progress you have made on your project. Discuss all major issues you faced. Wherever possible, indicate team member contributions. Each team member should be prepared to answer questions.
- Revised Timeline
- Final Presentation -or- Poster Session
- We will have a CS Poster session at the end of Spring quarter. It is STRONGLY encouraged that your team meet its final presentation requirements by participating in this session. Alternatively, groups can do a 30 minute presentation in class during the last week of the quarter. The final presentation is worth 5% of your total grade.
- You must create a powerpoint slide presentation (or equivalent) that minimally contains the following slides:
- Title and Group Members
- Project Description
- Background
- Solution
- Implementation
- Analysis
- Future Work
- Conclusion
Your class participation grade will depend on your class attendance, interactions (in forums and class), and your research paper writeups and discussions. If class participation and/or attendance is low, we'll have a final examination at our normally scheduled time that will be worth 10% of your grade.
- Discussion Questions
- For each paper, answer the following questions (at least one paragraph per question):
- What problem is the paper trying to solve?
- Do you think the solution in the paper is a good one? Why or why not?
(high-level)
- What could be done better? (low-level)
- Were the experiments complete? (Hint: They never are.)
- How can the work be extended?
- Turn in your answers to me at the beginning of class. We will also use your
answers to facilitate discussion of the papers.
- Paper Discussion
- Paper Presentations
- Each paper will be presented to the class by a team of two students.
- Each presentation should contain:
- An explanation of terms or concepts that may be difficult for classmates to understand
- A brief overview of the paper
- Problem being solved
- The paper's solution
- The paper's results
- Information on related papers/work.
- The students presenting should be prepared to lead a discussion on the paper.