Learning Outcomes & Objectives

At the end of the course The student will ne able to:

  • Understand the role of virtualization, concurrency and persistence in a modern operating system to achieve the desired functionality
  • Transcend the abstractions used by the operating system 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. Data Integrity and Protection [Slides],[Book Chapter]

Homework

Labs

  1. System Calls Lab1
  2. Processes Lab2
  3. Memory Lab3
  4. Threads Lab3
  5. Filesystem Lab3

Material to develop the Labs

  • Private Repository. Used o Turn in assignments.
  • Vagrant Image. Debian 8 (Jessie) ready to develop the Lab assignments. Requires Virtual-Box as provider. Works in Windows/OSX. Alternatively you can Linux subsystem in Windows 10 and port is OSX (following this guide).