About This Course
Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches the basic operating system abstractions, mechanisms, and their implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication, and an introduction to distributed operating systems. The course is split into four sections: (1) Introduction, (2) Process and Thread Management, (3) Resource Management and Communication, and (4) Distributed Systems.
Why Take This?
The goals of this course are three-fold. 1. Students will understand the rationale behind the current design and implementation decisions in modern OS’s (like Linux) by considering the historic evolution of various OS constructs 2. Students will be exposed to theoretical knowledge regarding operating systems principles and implementation 3. Students will gain knowledge via experimenting and evaluating various OS aspects in a practical manner
Prerequisites and Requirements
To undertake this course, you should have taken an undergraduate level course on, or be otherwise familiar with, basic hardware and software aspects of computer systems organization. Prior programming experience with C is recommended, as C is required for the practical component of this course. For other requirements, see [Udacity's Technology Requirements](https://www.udacity.com/tech-requirements).
Introduction to Operating Systems teaches the basic operating system abstractions, mechanisms, and their implementations.