CMSC 412, Spring 2007

Operating Systems

  • Course evaluations are ready to be filled out.
  • Project 5 is posted (due 5/9, 6pm).
  • Midterm answers have been posted.
  • Project 4 is posted (first part due 4/6, 6pm; second part due 4/18, 6pm).
  • Project 3 late penalty waived.
  • Extra office hourse today. (3/14. 4:30~5:30)
  • Added link on sidebar to old exams (will add a few more shortly)
  • No discussion section until 3/26.
  • Project 3 is posted (due 3/16, 6pm).
  • No discussion section 2/26 and 2/28.
  • Project 1 now due 2/19 (late deadline 2/19 midnight).
  • Project 2 is posted (due 3/2, 6pm).
  • Project 1 now due 2/17 (late deadline 2/18 6pm).
  • No class,section 2/14.
  • No office hours 2/13; moved to 11am-12:30pm 2/15.
  • No class 2/12.
  • No discussion section 2/5.
  • Project 1 is posted (due 2/16, 6pm).
  • Project 0 now due on Monday 2/5, 6pm.
  • No discussion section 1/30.
  • Project 0 has been updated (1/29, 9pm).
  • Project 0 is posted.
  • First class is January 24 (Wed).

Lecture CSIC 1122, MW 2:00-3:15pm
Lab CSIC 2107, MW 12:00-12:50pm
Exams Midterm: Wed. 3/28 in class
Final: Wed. 5/16 1:30-3:30pm
Instructor Michael Hicks
4131 A.V. Williams
Hours: Tues 2:00-3:30pm, Wed 3:30-5:00pm, or by appointment
Teaching Assistants Joonghoon Lee,
Hours: Mon,Wed 9am-11am
Mohammad Toossi,
Hours: Fri 12:00pm-4:00pm


A hands-on introduction to operating systems, including topics in: multiprogramming, communication and synchronization, memory management, I/O subsystems, and resource scheduling polices. The laboratory component consists of constructing a small kernel, including functions for device I/O, multi-tasking, and memory management.
Prerequisites: CMSC 311, CMSC 330


A student who passes this class should have an in-depth understanding of how an operating system manages resources in a computer and provides a machine- and device-independent programming interface. The emphasis of this class will be on operating system concepts. Running examples will be drawn from contemporary OS’s including UNIX, Windows, and Linux.

Topics (tentative)

  • Introduction to Operating Systems (1 week)
  • Concurrent Processes (2 weeks)
  • Kernel implementation techniques (1 week)
  • CPU scheduling (1 week)
  • Memory Management (2 weeks)
  • File and I/O Systems (2 weeks)
  • Security and Protection (1 week)


Operating System Concepts, 7th Edition. Siberschatz, Galvin and Gagne, Addison-Wesley 2005, ISBN 0-471-69466-5.

Programming Projects

Understanding operating system concepts is a hands-on activity. In this class, students will build a working operating system, starting from a small kernel. The< programming projects will require students to read and understand the provided code, write new modules, and debug the resulting system. The provided code is written in C, and a small amount of Intel 80x86 assembly language. The programming assignments will be time consuming and students taking this class should plan their class schedules accordingly.

Projects are due at 6pm on the due date. Please submit them via the submit server. However, projects may be turned in late up until 9am the following morning, receiving a 15% penalty. Students unable to complete a programming assignment due to illness or family emergency should see Dr. Hicks as soon as possible to make special arrangements. Dr. Hicks reserves the right to fail, regardless of overall numeric score, students who do not submit a good-faith attempt to complete all programming assignments.


Student grades will be determined as follows:

Programming Assignments (6 total) 40%
Midterm 30%
Final Exam

Re-grade policy. All requests to change grading of homework, programming projects, or exams must be submitted in writing (all such requests must be start through a request at, in most cases you will have to then talk to a TA and/or Dr. Hicks) within one week of when the assignment was made available for pickup. Requests must be specific and explain why an answer deserves additional credit. A request to re-grade an assignment can result in the entire assignment being re-evaluated and as a result the score of any part of the assignment may be increased or lowered as appropriate.

Academic Integrity. All work that you submit in this course must be your own; unauthorized group efforts will be considered academic dishonesty. See the Undergraduate Catalog for definitions and sanctions. Academic dishonesty is a serious offense that may result in suspension or expulsion from the University. In addition to any other action taken, the grade “XF” denoting “failure due to academic dishonesty” will normally be recorded on the transcripts of students found responsible for acts of academic dishonesty. While talking about assignments with other students in a general way is acceptable, and encouraged, sharing of code on programming assignments is a form of academic dishonesty. Please read this statement for further information.

Policies and Responsible Conduct

Cell phones. As a courtesy to your fellow classmates, pagers and cell phones must be off or on vibrate during class. Having cell phones or pages ring during class repeatedly can result in points being deducted from a student's semester grade.

Office Hours and E-mail. Questions concerning the content of the course or project should, as a general rule, be directed to the forum. This allows questions to be answered by whoever is monitoring the newsgroup, and the answer can benefit all newsgroup readers. In general, e-mail should not be sent directly to Dr. Hicks or the TAs with technical questions.

The instructors (Dr. Hicks and the TAs) are happy to answer questions during office hours and on the newsgroup. However, office hours and email are not intended as a replacement for attending lectures and recitations. As a result, instructors will only respond to questions, whether during office hours or on the newsgroup, from those students who regularly attend class. Instructors may not respond to electronic questions instantly. However, the instructors will try to respond to email by the next regularly scheduled office hour after it is sent. If a student cannot make it to scheduled office hours, he or she is encouraged to make an appointment by e-mail or after class.

Excused Absences. Students claiming a excused absence must apply in writing and furnish documentary support (such as from a health care professional who treated the student) for any assertion that the absence qualifies as an excused absence. The support should explicitly indicate the dates or times the student was incapacitated due to illness. Self-documentation of illness is not itself sufficient support to excuse the absence. An instructor is not under obligation to offer a substitute assignment or to give a student a make-up assessment unless the failure to perform was due to an excused absence. An excused absence for an individual typically does not translate into an extension for team deliverables on a project.

Accommodating Disabilities. Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support services (DSS) within the first two weeks of the semester.

Valid HTML 4.01!