Learning Outcomes & Objectives

At the end of the course, the student will be able to:

  • Understand the role of virtualization, concurrency and persistence in a modern operating systems
  • Transcend the abstractions used by the operating systems that provide such functionality
  • Know, at least in first approximation, the implementation of mechanisms that support it

The course is strongly influenced by Operating Systems: Three Easy Pieces

Lecture notes

  1. Course Presentation Slides
  2. Introduction to Operating systems [Slides],[,Book chapter]
  3. Virtualization
    1. The Abstraction: The Process [Slides],[Book Chapter]
    2. Interlude: Process API [Slides],[Book Chapter]
    3. Mechanism: Limited Direct Execution [Slides],[Book Chapter]
    4. Scheduling Introduction [Slides],[Book Chapter]
    5. Scheduling: The Multi-Level Feedback Queue [Slides],[Book Chapter]
    6. Scheduling: Proportional Share [Slides],[Book Chapter]
    7. Multiprocessor Scheduling (Advanced) [Slides],[Book Chapter]
    8. The Abstraction: Address Spaces [Slides],[Book Chapter]
    9. Interlude: Memory API [Slides],[Book Chapter]
    10. Mechanism: Address Translation [Slides],[Book Chapter]
    11. Segmentation [Slides],[Book Chapter]
    12. Free Space Management [Slides],[Book Chapter]
    13. Paging Introduction [Slides],[Book Chapter]
    14. TLB [Slides],[Book Chapter]
    15. Advanced Page Tables [Slides],[Book Chapter]
    16. Swapping Mechanisms [Slides],[Book Chapter]
    17. Swapping Policies [Slides],[Book Chapter]
  4. Concurrency
    1. Concurrency an Introduction [Slides],[Book Chapter]
    2. Thread API [Slides],[Book Chapter]
    3. Locks [Slides],[Book Chapter]
    4. Locked Data Structures [Slides],[Book Chapter]
    5. Condition Variables [Slides],[Book Chapter]
    6. Semaphores [Slides],[Book Chapter]
    7. Concurrency Bugs [Slides],[Book Chapter
    8. Event Based Concurrency [Slides],[Book Chapter
  5. Persistency
    1. I/O Devices [Slides],[Book Chapter]
    2. Hard Disks [Slides],[Book Chapter]
    3. Files and Directories [Slides],[Book Chapter]
    4. File System Implementation [Slides],[Book Chapter]
    5. Fast File System (FFS) [Slides],[Book Chapter]
    6. FSCK and Journaling [Slides],[Book Chapter]
    7. Log-structured File System (LFS) [Slides],[Book Chapter]
    8. SSD Disks [Slides],[Book Chapter]

Labs Material

Exams (Spanish)

Material to develop the Labs

  • Vagrant Image. Debian 8 (Jessie) ready to develop the Lab assignments. Requires Virtual-Box as provider. Works in Windows/OSX. Alternatively you can use Linux Subsystem for Linux (WSL1/22) in Windows 10. It’s possible to do the assignments with OSX using this xv6 installation guide