The goal is an in-depth understanding of how an operating system manages resources in a computer and provides programmers with a machine and device independent interface. There is a difficult and time-consuming programming project (GeekOS). You are provided the source code (a few thousand lines of C and some assembly) of a skeleton "Unix-style" operating system kernel for a PC-like x86 platform. You have to understand a large part of this code and augment it in various ways: pipes, fork, signals, semaphores, cpu scheduling, memory paging, file system, etc. The x86 platform is simulated by QEMU. The programming environment is Gnu/Linux.
Email: firstname.lastname@example.org (put "412" in the subject)
Office: AVW 4149
Office hours: By Appointment
Ramasai Tadepalli, Ishita Verma Kiwon Park, Carl Brando, Yiyun Liu
CSIC 3117. TuTh 11:00am - 12:15pm
1121. MW 12:00pm - 12:50pm (section 0101)
CSIC 1121. MW 1:00pm - 1:50pm (section 0102)
CSIC 2120. MW 11:00am - 11:50am (section 0103)
TA office hours
Projects and GeekOS
Participation means asking good questions and/or answering questions well. To make my life easier, you will get these points only if you're just below a cutoff (otherwise it doesn't matter).
Required: Operating System Concepts, Silberschatz, Galvin and Gagne, 10th edition eText, John Wiley, 2018
Available for purchase or rent from Wiley
from Hubetext.com as a PDF file for $8.00
Videos (Neil Spring)
(Should require umd central authentication for box access)
Excused Absence and Academic Accommodations
Recently the University approved a policy for class absence for students. All students are expected to attend ALL classes.
Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall:
a) Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
b) Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(h) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.
c) This self-documentation may not be used for the Major Scheduled Grading Events as defined below and it may only be used for only 1 class meeting during the semester.
Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings) or for a Major Scheduled Grading Event, the student must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. No diagnostic information shall be given. The Major Scheduled Grading Events for this course include: Two midterms, a final and some pop quizzes.
Individual Presentation Time scheduled during the last week of class
Disability Support Accommodations
Read the section "Accessibility" in UMD's Course Related Policies.
Read the CS Department Academic Integrity policy.
Also read the sections "Academic Integrity" and "Code of Student Conduct" in UMD's Course Related Policies.
Projects are to be done individually.
Consider each programming assignment to be a take-home exam.
Do not expose your source code to others. Do not leave it potentially accessible to others, e.g., unlocked unattended laptop, publicly accessible websites, unsecured servers, unsecure communications.
Do not look at other's source code. This also applies to code from online searches, e.g., Sourceforge, Stackoverflow, Google.
Interaction via course discussion forum is permitted. Discussion of problems and code solutions is permitted as long as you do not write down code during your discussion and you wait at least 30 minutes after the end of the discussion before you write code based on the discussion.
Do not wait for project or exam deadlines before asking your questions.
Piazza is not a replacement for office hours as far as getting responses from staff is concerned.
Response times on Piazza will inevitably deteriorate as the semester goes by. Early on, the projects are simple and your questions are relatively precise. Later projects are more intricate and typically there is a flood of vague questions (eg, "Why is this not working?") just before due dates. It's unlikely you will get helpful answers to such questions in time and on Piazza.
This also applies to questions about class material. Just before exams, there is usually a flood of questions that should have been asked in office hours or class when the material was covered. Again, it's unlikely you will get helpful answers in time and on Piazza.