Basic Information
- Meeting Time: 5:30pm—6:45pm (local time)
- Meeting Place: ACIV 006 (WAS: ACIV 145)
(2nd floor near Admin. Bldg)
Instructor: Dr. Richard T. Carback III
Professor, Computer Science and Electrical Engineering
Office: ITE 201C or ITE 228 (the CDL),
GL Username: carback1
Office Hours: After class and sometimes before (by request only).
Teaching Assistant: Mr. Lawrence Sebald
Office: ITE 240 or ITE 368 (the Nerds Lab)
GL Username: lsebald1
Office Hours: Monday 3:00 PM - 5:00 PM,
Tuesday 9:00 AM - 10:00 AM and 1:00 PM - 2:00 PM
Required Texts
-
OSC: Operating Systems Concepts, (8th Edition),
Silberschatz, Galvin, and Gagne, John Wiley, 2008.
ISBN 0-470-12872-0.
Strongly Recommended Texts
- LKD: Linux Kernel Development (2nd edition), by Robert
Love. Novell Press, 2005.
ISBN 978-0672327209.
- CPR: C Pocket Reference, by Peter Prinz.
O'Reilly, 2002.
ISBN 978-0672327209.
Recommended
- ULK: Understanding the Linux Kernel (3rd Edition),
Daniel P. Bovet and Marco Cesati, O'Reilly, November 2005.
ISBN 0-596-00565-2.
- LKN: Linux Kernel in a Nutshell, by Greg Kroah-Hartman.
O'Reilly, 2006.
ISBN 978-0596100797.
- LSP: Linux System Programming: Talking Directly to the
Kernel and C Library, by Robert Love. O'Reilly, 2007.
ISBN 0-596-00958-5.
Weakly Recommended
- APUE: Advanced Programming in the UNIX Environment, R.
Stevens, Addison-Wesley, 1993.
ISBN 0-201-56317-7.
- MOS: Modern Operating Systems (2nd Edition), A. S.
Tannenbaum, Prentice Hall, 2001.
ISBN 0-13-031358-0.
Prerequisites
CMSC 341, and (CMSC 211 and CMSC 311) or CMSC 313 or (CMPE 310 and CMPE 312).
If you do not meet the prerequisites, you will be asked to drop the course.
In addition, students must know C and should be familiar with x86 assembly and
the gnu gcc toolchain.
List of Topics
- Introduction and historical perspective
- Process Management, inter-process communication, and Threads
- Process and CPU Scheduling
- Process Synchronization (semaphores and monitors), and deadlocks
- Address spaces, multiprogramming, and I/O
- Memory management, address translation, and virtual memory
- File systems and Secondary Storage
- Security and Protection
- Special topics (TBA, tentative)
Course Objectives
Each student will (a) learn the fundamental concepts of designing and
implementing or extending modern Operating Systems, (b) gain deep understanding
of the operations of modern Operating systems, (c) apply software development
tools and skills, and (d) practice his/her communication skills.
Grading Policy
Activity |
Weight |
Homeworks and Projects | 40% |
Midterm Exam | 25% |
Final Exam | 35% |
The course grades will be determined as follows: For each course activity in
the table above, each student will receive an activity score, which will be the
average of the student's scores on the assignments for that activity. An
activity score is a number in the range 0...100. A term score will be
computed by taking the weighted sum of the activity scores, using the relative
weights given in the table above. The instructor will convert term scores into
letter grades by using the following mapping: [90, 100] -> A, [80, 90) -> B, [70,
80) -> C, [60, 70) -> D, [60, 100] -> P , [0, 60) -> F.
Required work consists of (1) taking the midterm exam and final exam, (2)
two or more homework assignments, and (3) two or more substantial programming
projects. Further, you are expected to actively participate in class
discussions. Academic dishonesty will be dealt severely according to University
Policy.
Incomplete grades will issued only under those extreme situations described by
University Policy for granting incompletes. Failure to complete assignments on
time is not a sufficient reason for an incomplete.
Necessary, but not sufficient, conditions to pass the course are as
follows: you must have a homeworks/projects activity score of at least 50% of
the total points, and at least 30% points for each exam, including the final
exam.
Ground Rules for Assignments
There will be homework and project assignments.
-
Assignment details, due dates, etc will be posted at the class homepage.
Students are strongly advised to check the class homepage on a regular
basis. Failure to do so is not an acceptable excuse for missing an
assignment or for not adhering to the assignment's instructions.
-
You may develop the programs for your assignments using the computers
in the class lab, or any other computer available to you. However, no
matter what computer you use to develop your programs, you must make sure
that your programs can run successfully on the computers in the class lab.
-
All assignments must be submitted electronically using git
by the date they are due. No late assignments will be accepted, unless
University Policy states otherwise.
-
In submitting an assignment, students must adhere to the submission
instructions specified by that assignment.
-
Any written parts of each assignment must be typed although you may include
handwritten mathematical formulas and/or diagrams as images in your
documents. No matter how you prepare the written part of your assignment,
it must be submitted in either Text (Preferred) or the Adobe PDF format. No
other formats are going to be accepted.
-
No collaboration. Each assignment is to be done and written individually by
each student. Students should not collaborate on any assignment.
-
Students may be asked to come in and explain their solution(s) to an
assignment to the instructor(s) and/or TAs. Failure to satisfactory
demonstrate authorship of a solution is a violation of Academic Integrity
policy.
Students are strongly advised to keep up with the assignments and other
coursework. Homework and project assignments do demand the amount of time
allocated to them.
Exams
There will be a midterm exam and a comprehensive final exam. All the exams will
take place in class.
Makeup exams are very rare and are possible only in the extreme conditions
specified by University Policy. You should make prior arrangements with the
instructor if you expect to miss an exam.
Each student should have his student photo identification card or driver's
license when taking an exam. Failure to produce a proper photo ID may result in
getting a zero on that exam.
Communication Expectations
Students are strongly advised to check the class homepage, their section
specific webpage, and the course Blackboard area http://blackboard.umbc.edu on
a regular basis for news, announcements, and assignments. Failure to do so is
not an acceptable excuse for missing an assignment or announcement.
Students are welcome to use the course Blackboard area to discuss topic matters.
However, student's are advised not to solicit or post solutions to any
assignment or otherwise violate Academic Integrity policy.
Class Lab
While it is more of a historical vestigial aspect of the course, there is a
lab available in ITE 240. You will be able to access the lab using your UMBC
student ID swipe cards. You must observe all the rules regarding usage of the
lab. Failure to observe those rules will result in suspending your lab access.
The TAs will be holding their office hours in the lab.
ADA Compliance
We recognize that some of you may have disabilities that require special
attention from the instructional staff. Please make us aware of them at your
earliest so that UMBC can make suitable arrangements.
Academic Integrity Policy
By enrolling in this course, each student assumes the responsibilities of an
active participant in UMBC's scholarly community in which everyone's academic
work and behavior are held to the highest standards of honesty. Cheating,
fabrication, plagiarism, and helping others to commit these acts are all forms
of academic dishonesty, and they are wrong. Academic misconduct could result
in disciplinary action that may include, but is not limited to, suspension or
dismissal. To read the full Undergraduate Student Academic Conduct Policy,
consult:
http://www.umbc.edu/provost/integrity_policy.html
There is no tolerance for academic dishonesty in this course. Any
and all academic dishonesty acts will be treated severely, as prescribed in
UMBC's Undergraduate Student Academic Conduct Policy.