CSE 120: Principles of Operating Systems (Winter 2015)
Lecture and Discussion Times
-
Section A Lectures: Mon/Wed 5:00-6:20, CENTR 214
-
Section B Lectures: Mon/Wed 6:30-7:50, CENTR 214
-
Section A Discussion: Fri 12:00-12:50, CENTR 105
-
Section B Discussion: Fri 1:00-1:50, CENTR 109
Instructor
Teaching Assistants
-
Vidya Kirupanidhi (vkirupan)
-
Emma Zheng (xiz041)
-
Wenjia Ouyang (weouyang)
-
Haohuan Li (hal118)
Tutors
-
Angie Nguyen (ann045)
-
Alexander Lin (all070)
-
Junjie Lou (julou)
-
Wilson Lu (w9lu)
-
Edward Wong (e4wong)
-
Xunzhe Xu (x9xu)
To send email to any staff member, append their email name (in parentheses above) to "(at) ucsd.edu"
News
-
The course is completed. 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
Lectures
The notes for each lecture will be posted
one day prior to that lecture's class.
-
Jan 7:
Introduction
- Reading: Chapters 1 and 2
- Lecture-related: 1.1, 2.1, 2.3, 2.6
- Hardware background : 1.2, 1.3.1
- Recommended: 1.4-1.10, 2.2, 2.7, 2.8
-
Jan 12:
Processes
- Read Chapters 3, 4
- Lecture-related: 3.1-3.3, 4.1, 4.3 (4.2 in 8th Ed.)
- Recommended: 4.2, 4.4-4.7 (4.3-4.5 in 8th Ed.)
-
Jan 14:
Time-Sharing
- Read Chapters 3, 4, 13 (processes, threads)
- Lecture-related: 3.1-3.3, 4.1-4.3 (4.1-4.2 in 8th), 13.3.3
- Recommended: 4.4-4.7 (4.3-4.5 in 8th)
-
Jan 21:
Scheduling
- Read Chapter 6 (CPU Scheduling)
- Lecture-related: 6.1-6.3 (5.1-5.3 in 8th edition)
- Recommended: 6.4-6.8 (5.4-5.7 in 8th edition)
-
Jan 26:
Synchronization
- Read Chapter 5 (Process Synchronization)
- Lecture-related: 5.1-5.6 (6.1-6.5 in 8th edition)
-
Jan 28:
Inter-Process Communication
- Read Chapters 3, 5 (Process Synchronization)
- Focus on semaphores, monitors, message-passing
- Lecture-related: 3.4, 5.6, 5.8 (3.4, 6.5, 6.7 in 8th)
- Recommended: 3.5, 3.6, 5.9 (3.5, 3.5, 6.8 in 8th)
-
Feb 2:
Deadlock
- Read Chapter 7 (on Deadlocks)
- Lecture-related: 7.1-7.8 (Deadlocks), 5.7 (6.6 in 8th) (Classic Synchronization Problems)
-
Feb 4:
Memory Management
- Read Chapter 8 (on Main Memory)
- Lecture-related: 8.1-8.3, 9.8 (buddy system)
-
Feb 9:
Midterm
-
Feb 11:
Logical Memory
- Read Chapter 8 (Main Memory)
- Lecture-related: 8.4-8.6
- Recommended: 8.7-8.8
-
Feb 18:
Virtual Memory
- Read Chapter 9 (on Virtual Memory)
- Lecture-related: 9.1-9.7, 9.9, 9.11
- Recommended: 9.10
-
Feb 23:
File Systems
- Read Chapter 11 (File System Interface)
- Lecture-related: 11.1-11.3, 11.6-11.7
- Recommended: 11.4-11.5
- Read Chapter 12 (File System Implementation)
- Lecture-related: 12.1-12.6, 12.10
- Recommended: 12.7-12.9
- For 8th ed., Chapters 10 and 11
- Sections correspond (e.g., 11.1 in 9th = 10.1 in 8th)
-
Feb 25:
Input/Output System
- Read Chapter 13 (on I/O Systems)
- Lecture-related: 13.1-13.5, 13.8
- Recommended: 13.6-13.7
-
Mar 2:
Protection and Security
- Read Chapter 14 (on Protection)
- Lecture-related: 14.1-14.5, 14.7, 14.10
- Recommended: 14.6, 14.8-14.9
- Read Chapter 15 (on Security)
- Lecture-related: 15.1-15.6, 15.10
- Recommended: 15.7
-
Mar 4:
Networks
- Read Chapter 17 (Distributed Systems)
- Lecture-related: 17.3-17.6, 17.10
- For 8th ed., Chapter 16 (Distributed Systems)
- Lecture-related: 16.3-16.7, 16.10
- Recommended: 16.8-16.9
-
Mar 9:
Distributed Systems
- Read Chapter 17 (on Distributed Systems)
- Lecture-related: 17.1, 17.7-17.8, 17.10
- Unfortunately, very little material in textbook
- Try to get a copy of the 8th ed., or check wikipedia
- For 8th ed.
- Lecture-related: 16.2, 17.1-17.5, 17.7, 18.1-18.8
- Has much more than 9th ed., but still not all
-
Mar 11:
Advanced Topics
Programming Assignments
Programming assignments will be posted
when they become available.
Grading
-
30% Midterm Exam
(Mon, Feb 9, in class)
-
40% Final Exam
(SATURDAY COMMON FINAL, Mar 14, 8:00AM-10:59AM, Peterson Hall 108)
-
30% Programming assignments (four, each worth: 10%, 20%, 30%, 40%)
References
-
Lecture notes
-
Textbook: Operating System Concepts, 9th Ed., by Silberschatz, Galvin, Gagne; Wiley, 2013 (8th ed. is also ok)