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: IRB 5204
Office hours: By Appointment
TA office hours
Projects and GeekOS
We will be using several assessment tools
for this semester for this course, including
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: cmsc412:Operating Systems –based on
Operating System Concepts, Silberschatz, Galvin and Gagne, 10th
edition, from ZYbooks.com
Here are the instructions to access the book
Sign in or create an account at learn.zybooks.com
Enter zyBook code: UMDcmsc412AgrawalaSpring2023
You have to enroll at this site as a student. This is an
online book from which reading and other assignments will be given.
(Should require umd central authentication for box access)
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
University is in the process of specifying the Excused Absence policy
for this semester and we will conform to it.
the section "Accessibility"
in UMD's Course Related Policies.
Read the CS Department
Academic Integrity policy.
Also read the
Integrity" and "Code of Student Conduct" in UMD's Course Related
are to be done individually.
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,
Do not use any
parts of other's source code. This also applies to code from online
searches, e.g., Sourceforge, Stackoverflow,
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
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
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.