CompSci 143B - Project in Operating Systems - Summer, 2008 (Dillencourt)
This is a project course. The associated lecture course,
CompSci 143A,
is also offered this summer. Although CompSci 143A listed as a prerequisite
for this course, the course will be structured so that students
who are willing to do some additional reading early in the course
can take the two courses concurrently.
The course will run from June 23 to August 29.
- Instructor: Prof. Michael Dillencourt,
dillenco@ics.uci.edu
- Office hours:
Click here.
In addition, I am available after class for questions.
- Office: DBH 4086
- Teaching Assistant: Mr. Matthew Badin
mbadin@ics.uci.edu
-
Class meetings:
Click here.
- Grading:
- There will be 4-5 projects. The course grade will be based on the
project grades. Each project grade will be based on two components:
- The grade on the submitted project
- An in-class quiz on the project. Quizzes will be held in-class,
after the project is due. The date of each quiz will be announced.
- There will not be a final examination in the course.
- Enrollment issues: registration, adds, drops, etc.
-
This course is taught under the auspices of the
UCI Summer Session Program.
To read their enrollment policy,
start here.
To see their calendar, and the deadlines for adds and
drops,
click here.
-
Adds:
I am willing to sign add cards at any time, consistent with
the rules of the Summer Session.
If you are not enrolled in the class, I will not grade or return your work.
-
Drops:
I will sign drop cards up to the deadline imposed by the Summer Session,
which is well past the middle of the session.
(For the exact date,
click here.)
If you do decide to drop the course, you should complete all
the relevant paperwork as soon as possible.
The deadlines imposed by the Summer Session are firm, and if you
miss them there is nothing anyone can do about it.
- Policy on incompletes:
Because the drop policy is so forgiving, I will generally
not be giving incompletes.
If you find yourself unable to complete the assignments on time, it is
recommended that you drop the course.
- Email:
- Email about the course material should be sent to
compsci143b-questions@ics.uci.edu.
This address is an alias for the instructor and all the instructional
staff, so it will give you the fastest turnaround.
Please include "CompSci 143B" in the subject line, and include your name,
student number, and official UCI email address in the message.
- Email that needs to go to a particular person (e.g., a request for
appointment with the instructor or the TA) should go to that specific
person.
- Return of graded work:
- Graded work will be handed back in class. Unclaimed graded work will
eventually be placed in the
ICS Distribution Center.
If this policy changes, it will be announced.
- Course announcements:
-
Course announcements will be sent via email to all students enrolled
in the class.
- The announcements will be set to your UCI email address. All students
enrolled in this course have a UCI email address.
If you have not set up your UCI email account, you can do so by
going to the
Student Resources web page
for UCI Network and Academic Computing Services (NACS), and following the
link "Getting Started with Email at UCI" at the left of the page.
-
If you are not receiving these announcements for some reason, you can
view the archive by
clicking here.
- Text book:
- None required.
- Most of the projects will be based on material
from the following book.
- L. F. Bic and A. C. Shaw,
Operating Systems Principles,
Prentice Hall, 2003.
The
book web site
has much useful information, including lecture notes and a list of errata.
- Course notes:
- Any slides presented in class will be made available, and a link will
be provided here.
- Project Overview
- There will be 4-5 projects that will cover various
aspects of operating systems. The specific assignments
will be made over the course of the quarter.
The following thumbnail descriptions indicate the type of projects
that will be assigned.
-
Process /thread synchronization:
Program threads
that enter a race condition. Implement two or more solutions
to the critical section problem and compare the resources required
by the solutions.
- Process/resource management:
Implement the operations required to create, destroy, and manipulate processes,
request and release resources, emulate the actions of hardware interrups.
Develop a presentation shell to test the various operations.
- Memory management:
Design a memory manager that supports allocation strategies such as
first-fit, best-fit, next-fit, worst-fit, etc.
Develop a calling shell to test that the allocation works correctly.
Evaluate the strategies
using probabilistically generated sequences of request and release commands.
- Page replacement algorithms:
Implement several different page replacement algorithms.
Compare their relative performance using probabilistically generated
reference strings.
- File system:
Develop a basic file system, using an emulated I/O system.
Develop a presentation shell to test the various operations.
- Disk driver:
Develop a simple disk driver, using an emulated hard disk.
Develop a presentation shell to test the various operations.
- Translation Look-Aside Buffer:
Implement a software emulation of a translation look-aside buffer.
Simulate its performance using probabilistically generated reference
strings to study how it reduces the number of memory references
in a virtual memory system.
- All projects are to be developed either in C, C++, or Java.
The choice of language for each project is up to the student.
- Project deliverables will include: source code, a Make file that compiles
the code, documentation, a ReadMe file.
- All projects are to be submitted using the
EEE Drop Box Mechanism.
- All projects can be done either as individual projects
or as 2-person group projects.
It will be assumed that both participants in a group project
contributed equally, and both will receive the same grade.
- There will be a penalty of about 10% per day for late
submission of projects. The exact rules for each project will be announced
when the project is assigned.
- There will be a quiz on each project. Your score on each project
will be lowered if you do badly on the quiz.
- Projects
- Project 1 due Monday, July 7, 5PM.
(Individual or group projects).
- Project 2 due Monday, July 28, 5PM.
(Individual or group projects).
- Project 3 due Monday, August 18, 5PM.
(Individual or group projects).
- Project 4 due Tuesday, September 2, 5PM.
(Individual or group projects).
- Click here for links to lab hours,
available UNIX machines, and other possibly useful information.
Last modified: August 24, 2008