The course will cover operating systems principles and architecture, process management (i.e., concurrency, process synchronization, threads), memory management (i.e., basic concepts, virtual memory), storage management (i.e., file systems interface and implementation, I/O systems), and operating systems protection and security.
The goal of this course is to expose students to important topics related to operating systems. Operating systems are a fundamental part of any computer system and prevalent in virtually every application. This course will survey conceptual design issues of such complex programs, and explain the most basic knowledge of operating systems, teaching the difference between the kernel and user modes, and developing key approaches to operating system design and implementation. The course will allow students to understand the implications of some techniques through a hands-on approach.
Students will learn by following classes, reading suggested material, doing assignments, and working on an operating system project throughout the semester.
The overall course grade is based on a midterm exam, a course project developed throughout the semester, and a final exam.