CSE 120: Principles of Operating Systems (Winter 2014)
Lecture and Discussion Times
-
Lectures
-
Section A: Mon/Wed 5:00-6:20, CENTR 109
-
Section B: Mon/Wed 6:30-7:50, CENTR 109
-
Discussion
-
Section A: Fri 11:00-11:50, CSB 002
-
Section B: Fri 1:00-1:50, CENTR 113 (Note change from CSB 002)
Instructor
Teaching Assistants
-
Hongpeng Wang (how015 ** THE-AT-SIGN ** eng.ucsd.eduXX)
-
John Chau (joc102 ** THE-AT-SIGN ** ucsd.edu)
-
Vidya Kirupanidhi (vkirupan ** THE-AT-SIGN ** eng.ucsd.eduXX)
-
Emma Zhang (xiz041 ** THE-AT-SIGN ** eng.ucsd.eduXX)
Tutors
-
Benjamin Lei (blei ** THE-AT-SIGN ** ucsd.eduXX)
-
Andrew Hu (khuzheng ** THE-AT-SIGN ** ucsd.eduXX)
-
Jon Larson (j1larson ** THE-AT-SIGN ** ucsd.eduXX)
-
Angie Nguyen (ann045 ** THE-AT-SIGN ** ucsd.eduXX)
-
Peter Welander (pwelande ** THE-AT-SIGN ** ucsd.eduXX)
-
Yinde Zhang (yiz127 ** THE-AT-SIGN ** eng.ucsd.eduXX)
Messages
-
The course is completed, and grades have been submitted. Best wishes with your future studies at UCSD.
Description
This is an introductory course on the principles of operating systems.
Topics include processes, scheduling, synchronization, memory management,
virtual memory, file systems, I/O, protection, security, networking,
and distributed systems.
There is a significant systems programming component to the course,
where students are required to design and implement some basic kernel
functions (context switching, scheduling, synchronization) and
a user-level thread package.
The course is organized of the following:
-
Lectures: the lectures comprise the core material, and are based
on the instructor's lecture notes that are provided to the students
-
Discussion: the discussion sections are led by the TA, and may be
organized as discussions on specific topics or question/answer sessions
-
Readings: the readings in the textbook supplement the lecture notes
-
Labs: there are four lab programming assignments (in C)
using Umix, a Unix-based user-mode operating system
-
Exams: there is a midterm exam and a final exam (both closed-book)
covering the material in the lectures and the labs
Prerequisites: CSE 30, and CSE 101 or Math 188, and CSE 70 or CSE 110.
Lectures
The notes for each lecture will be posted
the evening (generally no later than 9pm) prior to the day of that lecture.
-
Jan 6:
Introduction
-
Jan 8:
Processes and Context-Switching
-
Jan 13:
Time-Sharing and Threads
-
Jan 15:
Scheduling
-
Jan 22:
Synchronization
-
Jan 27:
Inter-Process Communication
-
Jan 29:
Deadlock
-
Feb 3:
Memory Management
-
Feb 5:
Logical Memory
-
Feb 10:
Midterm - no lecture
-
Feb 12:
Virtual Memory
-
Feb 19, 24:
File System
-
Feb 26:
Input/Output System
-
Mar 3:
Protection and Security
-
Mar 5, 10:
Networks
-
Mar 10, 12:
Distributed Systems
-
Mar 12:
Review
-
Programming Assignments
-
PA1: Context Switching
-
PA2: Scheduling
-
PA3: Synchronization
-
PA4: Threads
Grading
-
30% Midterm exam (Feb 10)
-
40% Final exam
-
30% Programming assignments (four, each worth: 10%, 20%, 30%, 40%)
References
-
Lecture notes (available on this page, see above)
-
Textbook: Operating System Concepts, 9th Ed., by Silberschatz, Galvin, Gagne; Wiley, 2013 (8th ed. is also ok)