Skip to content

Advanced Operating Systems

Free Course

Abstractions and Virtualization

Related Nanodegree Program

Android Kotlin Developer

In collaboration with
  • Georgia Institute of Technology

About this course

In this course, we will see all the advances that have led to the state-of-the-art operating system that we know today, covering variety of platforms -- cell phones, multi-core, parallel systems, distributed systems, and cloud computing.

What you will learn

  1. Abstractions
    • Hardware Resources
    • OS Functionality
    • Managing the CPU and Memory
  2. OS Structure
    • The SPIN Approach
    • The Exokernel Approach
    • The L3 Micro-Kernel Approach
  3. Virtualization
    • Intro to Virtualization
    • Memory Virtualization
    • CPU and Device Virtualization
  4. Parallelism
    • Shared Memory Machines
    • Synchronization
    • Communication
  5. Distributed Systems
    • Definitions
    • Lamport Clocks
    • Latency limits
  6. Distributed Object Technology
    • Spring Operating System
    • Java RMI
    • Enterprise Java Beans
  7. Design and Implementation of Distributed Services
    • Global Memory System
    • Distributed Shared Memory
    • Distributed File System
  8. System Recovery
    • Lightweight Recoverable Virtual Memory
    • Rio Vista
    • Quicksilver
  9. Internet Scale Computing
    • Giant Scale Services
    • MapReduce
    • Content Delivery Networks
  10. Real-Time and Multimedia
    • Time sensitive Linux
    • Persistent temporal streams

Prerequisites and requirements

Students are expected to have taken an undergraduate OS course, or have some experience in industry. A good understanding of the concepts in a standard textbook such as "Operating Systems Concepts," Silberschatz and Galvin (or its equivalent) will be assumed in this course.

Students must also be comfortable with UNIX and C programming.

See the Technology Requirements for using Udacity.

Why take this course?

This course is a journey to understanding the role played by the Operating System in providing the rich user experience afforded to modern applications by today’s computers. Along the way, we highlight the symbiotic relationship between hardware and software that makes it possible for the computer and OS to provide a pleasing user experience.

Learn with the best.

  • Kishore Ramachandran
    Kishore Ramachandran


  • Charles Brubaker
    Charles Brubaker