Welcome to CSE 220, Operating Systems Principles!
Our first lecture is on Mon, Jan 6, 2025.
Description
This is a mezzanine-level 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 and papers supplement the lecture notes
Labs: there are four lab programming assignments (in C)
using UMIX, a user-mode UNIX-based operating system developed by the instructor
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 and paper readings (if any) for each lecture will be posted
one day prior to that lecture's class.
Introduction
Processes
Time-Sharing
Scheduling
Synchronization
Interprocess Communication
Deadlock
Memory Management
Memory Management II
Logical Memory
Logical Memory II
Virtual Memory
Virtual Memory II
File Systems
File Systems II
Input/Output
Advanced Topics
Grading
30% Midterm Exam (in class, date to be determined)
40% Final Exam (3/17, 7:00-9:59, location to be determined)
30% Programming assignments (four, each worth: 10%, 20%, 30%, 40%)
Textbooks
Required: Operating Systems Principles, by J. Pasquale, 2025 (price: FREE)
Resources
Discussion board: Piazza
(used for both CSE120 and 220: students should refer to Piazza for all course-related questions
not addressed on this page)