Instructor
Yuanyuan Zhou (yyzhou@ucsd.edu)
Office Hour: Tue 4–5pm (CSE 3210)
Lectures
Tu/Th 2:00–3:20pm in WLH
2005
TAs and Tutors
Birla,
Anshul Liu, Yuke
Chi,
Yunxiang Iyer, Shishir
Lee,
Daniel Li, Austin Ming
Ma,
Ruinan
Park, Jong Hyun
Siu,
Victor Wong, Jason
Discussion Section
Friday 10am-10:50pm, LEDDN AUD
TA/Tutor Lab Hours (please check Canvas)
Discussion Board
Announcements and Grading
Textbook
Remzi H. Arpaci-Dusseau and Andrea C.
Arpaci-Dusseau |
This
course covers the principles of operating systems. It emphasizes the basic
concepts of OS kernel organization and structure, processes and threads,
concurrency and synchronization, memory management, file systems, and
communication. It is also a project course, providing essential experience in
programming with concurrency, implementing and unmasking abstractions, working
within an existing complex system, and collaborating with other students in a
group effort.
The
following table outlines the schedule for the course. We will update it as the
quarter progresses.
The
optional readings include primary sources and in-depth supplements for concepts
in the class. Supplemental reading is for your own interest — the readings are
not required, nor will you be tested on the material. Note that some of the
links to the documents point to the ACM Digital Library. UCSD has a
subscription to the ACM Digital Library, so you can access these links from a
web browser on campus.
Class Schedule
on Canvas
The course
is organized as a series of lectures by the instructor, discussion sections by
the TAs, reading, homework, and project assignments, and exams:
The course
will have four homeworks, and I will post them as the
quarter progresses. You will submit all your homework electronically via
Canvas. We will reduce homework grades by 20% for each day that they are late.
Due to
extensive copying on homeworks in the past, we have
changed how homeworks are graded. As
long as you submit a technical answer related to the question, you will
get full credit for the question. The goal of the homeworks
is to give you practice learning the material. The homework questions both
supplement and complement the material from lecture and in the project, and you
will also find the homework questions to be useful for practicing for the
exams. We will post solutions to all homeworks after
they are submitted, and you can use them for studying as well. But, even with
the solutions, the amount you learn from the homeworks
will be directly correlated with your effort working on them.
I
encourage you to collaborate on the homeworks: you
can learn a lot from your fellow students. Collaboration consists of discussing
problems with other students and independently writing your own answers to the
problems based upon those discussions. As a rule of thumb, you should be able
to discuss a homework problem in the hall with others, go home, and then write
up your answer to the problem on your own.
Homeworks on Canvas
The course has one tutorial project
and three programming projects using the Nachos instructional operating system.
The course has two exams: a midterm
and a final. The midterm will cover the first half of the class, and the final
will focus on the second half of the class.
Discussion sections answer questions
about the lectures, homeworks, projects, and
programming environment. They may also supplement the lectures with additional
material.
Your grade
for the course will be based on your performance on the homeworks,
midterm exam, final exam, and projects, as follows:
The academic honesty
guidelines outlined by Charles Elkan apply to this course. I urge you to
resist any temptation to cheat, no matter how desperate the situation may seem.
If you are in circumstances that you feel compel you to cheat, come to me first
before you do so.