COS 431: Operating Systems -- Syllabus
Office: 222 Neville Hall
Software Engineering Lab: 224 East Annex
Phone: (Office) 581-3523, (Software Engineering Lab) 581-2260
Office Hours: MWF 1:00pm-3:00pm or by appointment
227 Neville Hall
Andrew S. Tanenbaum, Modern Operating Systems (2nd edition)
I encourage students with disabilities to speak to me about accommodation
needs they may have in order to assure success in this class.
This course covers the fundamentals of operating systems. A computer's
operating system is the program that controls and schedules all
of the computer's resources. In this course, we will discuss all that this
simple definition encompasses, including how an operating system
is constructed and functions. Examples of operating systems with which
you may be familiar include Windows, MacOS, and Unix/Linux.
This course will focus primarily on: processes, process synchronization,
and scheduling; input/output; memory management, including virtual memory;
files systems; deadlocks; security; and, if time permits, distributed operating
You will need a Unix account to do the first assignment. If you don't have
one, you will need to complete an account request form (available from
the CS office) and submit it to the Department office. If you have access
to Unix elsewhere (e.g., Linux on a home machine), you might still want
to get an account on the UMCS machines; it'll make your life a little easier
when it comes time to demonstrate your programs.
Grades will be based on two prelims, a final exam, a programming assignment,
a major project, and homework (I expect that you come to class regularly,
but this is not part of the final grade). The Unix programming assignment
is an individual assignment, while the project is a group project in which
you and your team will write an operating system: BRAIN02. See the project
description documents (to be handed out in class and available on the web)
for more details.
The grading scheme was chosen to ensure two things: that you do the
assignments well, and that you have a conceptual understanding of the material.
Your grade will depend on in-class tests, computed as 12.5% Prelim I, 12.5%
Prelim II, and 25% final exam; and assignments, computed as 32% BRAIN02
(4 parts), 8% Unix programming assignment, and 10% homework
A final grade of A in the course can only be achieved if all four parts
of the BRAIN02 project are successfully completed and presented during
the public presentation session on the last day of class. You will be expected
to prepare a poster (typically 18" x 23") describing the interface, architecture,
and concepts behind your completed BRAIN02 system. A maximum grade of B
can only be achieved if parts 1-3 are completed and properly presented
during the presentation session.
Homework assignments, written or programming, will be assigned as needed
during the course, usually one assignment per week.
Unless otherwise announced, (1) all projects are to be demonstrated to
me in my office and (2) all source code and supporting documentation for
the assignments are to be submitted on the web ONLY. It is your responsibility
to give me the URLs for the individual and group Web pages in a timely
manner. These will be kept confidential.
I will give an approximate dates when I expect each phase of the Unix and
BRAIN02 projects to be completed. It is your reponsibility to schedule
work so that projects do not "pile up" at the end of the course. It is
also important to note that many of my test questions are based directly
on work that you should have completed on your project prior to that test.
Students who don't complete their projects in a timely manner usually perform
poorly on my exams.
There will be a course web page containing course-related information,
announcements, and links to related sites. You are encouraged to check
there often for new information. Of particular interest is a Web version
of the Introduction to UNIX in the UMaine CS Dept. pamphlet, available
A FirstClass conference will be set up for the course. You can access this
either via the Web or by using the usual FirstClass client.
Introduction to Operating Systems, OS Application Programming Interface
(API) (System Calls)
System Calls - Processes