Introduction to Operating Systems

This course explains how operating systems work behind the scenes. Students will learn how an operating system manages processes and threads, schedules the processor, keeps programs from interfering with each other, and handles memory and files. The course also covers performance, storage, security and protection, networking, distributed systems, and virtual machines, including the operating systems on phones and cars.

About This Course

I'm not currently teaching this course. The materials are here for anyone who wants to learn on their own, or teach from them. TLDR-style videos for these topics are made on request. Updates to these pages are not guaranteed, so check the dates on any news or statistics before relying on them.

Learning Objectives

  • Explain what an operating system is, its goals, and the main families of operating systems
  • Describe how processes and threads are created, managed, and scheduled
  • Compare processor scheduling algorithms, and explain their strengths and weaknesses
  • Explain synchronization and mutual exclusion, and how deadlock is prevented, avoided, detected, and recovered from
  • Describe how file systems organize, store, and protect data
  • Explain how operating systems work with storage devices, and how RAID and backups keep data safe
  • Explain how memory is managed, including virtual memory and paging
  • Describe how operating systems are evaluated for performance, and how they support multiprocessor and distributed systems
  • Explain how operating systems provide security and protection, and how virtual machines are used
  • Describe how operating systems support networking, and compare operating system choices for phones and cars


Would you like to see some more classes? View all classes