READ THIS FIRST
The class will be held in person, conforming to the university guidelines. Attendance in the class and the recitation sections is required. Excused absences will be permitted according to the university rules. This is a project-oriented course in which you must complete 7 projects. The details of the projects will be discussed in the recitation sections More details about the functioning of this will be announced here or through Piazza. You should regularly visit this page and Piazza. You are encourage to ask and answer any questions posted on Piazza.
Overview
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.
Administrative stuff
Instructor
Ashok Agrawala
Email: agrawala AT cs DOT umd DOT edu (put "412" in the subject)
Office: IRB 5204
Zoom Room: umd.zoom.us/my/agrawala
Office hours: By Appointment
Topics
Projects and GeekOS
Course grade
We will be using several assessment tools for this semester for this course, including
Text
Videos (Neil Spring)
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:
Disability Support Accommodations
Academic Integrity
Read the CS Department Academic Integrity policy
Also read the sections Academic Integrity and Code of Student Conduct in UMD's Course Related Policies
Procrastination and Piazza
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.