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
Objective
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)
·The Cyclone Programming Language (0.5 weeks)
·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)
·Networking and Distributed Systems (2 weeks)
·Objects and Naming (1 week)
·Window and Display Services (0.5 weeks)
Text
Operating System
Concepts7th
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. 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.
Cyclone. While most of
the projects will be coded in C, students will also program one
assignment in the
programming language Cyclone. Like
Java, Cyclone is type-safe. This means that certain types of
errors, like dereferencing outside the bounds of an array or accessing
freed storage, are not possible. Therefore, using Cyclone
essentially eliminates these sorts of errors, which can be quite hard
to debug.
At the same time, Cyclone
provides the low-level control C programmers are accustomed to.
Cyclone also provides a number of advanced features - like pattern
matching, exceptions, type inference, and parametric polymorphism -
that make the programming task less tedious.
At the same time, Cyclone's compiler is a research prototype, so it may
have bugs, and its error messages are not always easy to
understand. These factors will be taken into account when grading
the Cyclone assignment. Students are encouraged to give feedback
about their experiences, to suggest future improvements to the language.
Grading
Student grades will be determined as follows:
Programming
Assignments (6 total)
40%
Midterms
(2 each worth 15%)
30%
Final
Exam
30%
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 grades.cs.umd.edu,
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 loweredas
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 newsgroup, csd.cmsc412.
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.