This is a DRAFT of the syllabus. It is subject to change until classes begin.
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.
An in-depth understanding of how an operating system manages resources in a computer and provides programmers with a machine and device independent 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.
·
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)
·
Networking and Distributed Systems (2 weeks)
·
Objects and Naming (1 week)
·
Window and Display Services (1 week)
Operating System Concepts 7th Edition or newer, Siberschatz, Galvin and Gagne, John Wiley 2005.
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 10%
penalty. If you are unable to complete a programming assignment due to
illness or family emergency, please see your instructor as soon as possible to
make special arrangements. The instructor 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% |
|
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 Prof) within one week
of when the assignment was made available for pickup. Requests must be specific
and explain why you feel your 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.
Sharing of code on programming assignments is a form of academic
dishonesty. Please read this statement for
further information.
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 can result in points
being deducted from your semester grade.
Office Hours and E-mail. We (the TAs and professor) are happy to
answer questions during office hours, and by e-mail. However, office
hours and email are not intended as a replacement for lecture. As a result, we
will only see people during office hours or respond to your email if you
regularly attend class. Due to our own work schedules, we may not respond to
email instantly. However, we will try to respond to your email by the
next regularly scheduled office hour after you send it. If you cannot
make it to scheduled office hours, feel free to make an appointment by e-mail
or after class.