CSE120: Operating Systems
Lecture: T/Th 2-3:20pm Center 101; Discussion: W 5-5:50pm Center 101
Instructor: Professor Yuanyuan(YY)
Zhou (yyzhou at eng.ucsd.edu)
Teaching Assistant and Tutors:
|
Chou, Chao-Te |
TA |
|
|
Huang, Haochen |
TA |
|
|
Pinge, Rajdeep Santoshkumar |
TA |
|
|
Wu, Jiaqi |
TA |
|
|
Wu, Steven Hsuante |
TA |
|
|
Lin, Patrick
K. |
Tutor |
|
|
Wang, Kaiyuan |
Tutor |
Lab Hour Schedule (for projects): (Links to an external site.)
Prof.
Zhou's office hours (for lectures and homework): Tuesday
4-6pm Zoom.
Discussion Board: Piazza
Homework, projects, Slides: Canvas
Textbook
|
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau |
Course Objectives
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.
Course Organization
The course is organized as a series of
lectures by the instructor, discussion sections by the TAs, reading, homework,
and project assignments, and exams:
·
Lectures: The
lectures present the core of the material.
·
Discussion Sections: The
discussion sections are given by the TAs to answer questions about the lecture,
textbook readings, homework assignments, and project assignments.
·
Readings: The
readings in the textbook provide preparation and a reference for the lectures.
Note, however, that they are not a substitute for the lectures.
·
Homeworks: There
are approximately four homework
assignments with questions taken from the textbook and other materials. The
homework assignments reinforce the readings and lectures.
·
Projects: There
are four programming projects, all
using the Nachos instructional operating system.
·
Exams: There
are two exams, a midterm exam in the
middle of the quarter and a final
exam at the end of the quarter. The exams will cover the material presented in
lecture, the homeworks, and the projects.
Homework
The course will have roughly four homeworks.
I will post them as the quarter progresses. Due to extensive copying on homeworks in the past, I 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.
Homeworks
are due at the beginning of class on the day specified. We will reduce
homework grades by 20% for each day that they are late (end of class
is considered late).
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. Do not copy from the answers by other students, copy from
past homeworks and/or solutions from previous
versions of the class, copy from solutions on the Web, etc.
Projects
The course has one tutorial project and
two programming projects using the Nachos instructional operating system.
Exams
The course has two exams, a midterm and
a final. The midterm will cover the first half of the class (including project
1), and the final will cover the material from after the midterm (including
project 2) plus synchronization from the first half of the class.
On Canvas, you will find some sample
exams to help you study.
Discussion
Sections
Discussion sections answer questions
about the lectures, homeworks, projects, and
programming environment. They may also supplement the lectures with additional
material.
Grading
Your grade for the course will be based
on your performance on the homeworks, midterm and
final exams, and the three projects using the following weights:
·
Homeworks:
10%
·
Midterm: 22%
·
Final: 33%
·
Projects: 35%
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.