Operating Systems
Fall 2020
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@cs.umd.edu (put "412" in the subject)
Office: IRB 5204
Zoom
Room: umd.zoom.us/my/agrawala
Office hours: By Appointment on Zoom
Tas
HanaHailu kiyaa2010@gmail.com
HaoranZhou hzhou127@cs.umd.edu
ShreyaSuresh ssuresh2@cs.umd.edu
ZejunLiu zliu1238@terpmail.umd.edu
Benjamin Black
Wichayaporn Wongkamjan
Forum
Announcements
On
Piazza
TA office hours
On
Piazza
Topics
Projects and GeekOS
Course
grade
We will be using several assessment
tools for this semester for this course, including
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).
Text
Required: Operating System Concepts, Silberschatz, Galvin and Gagne, 10th
edition eText, John Wiley, 2018
Available
for purchase or rent from Wiley
Available
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.
University is in the process of specifying the Excused Absence policy
for this semester and we will conform to it.
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.
lastmodified 08/29/2020