Advanced Operating Systems
Spring 2014
Seoul National University

Goal
This is a hands-on class on operating systems. We learn operating systems by actually building interesting features in existing Linux-based platforms, both Tizen and Android. The topics include System Calls, Process Management, Tizen and Android Architecture, Kernel Synchronization, Interrupts and Interrupt Handlers, Bottom Halves and Deferring Work, Sensor Frameworks, Process Scheduling, Resource Scheduling, Memory Management, Process Address Space, File Systems, Virtual File Systems, Block I/O, SSD, Virtualization, and New OS Architecture. This is a project-oriented class. Be prepared to do serious coding in a group of 3 students.

Staff
Instructor: Byung-Gon Chun
Assistant: Woo-Yeon Lee

You can find an excellent overview of this course from Woo-Yeon’s SOSCON presentation (Part1, Part2, Part3).

Projects
The heart of this course is class projects. We thank Jason Nieh for providing initial versions of these class projects. We updated them to cover Tizen and other topics. You can find detailed information on the projects by clicking links below.

For each project, each team submits its code and report in github and each team presents the design and implementation and lessons learned.
NOTE. If you use the project materials, we recommend to update versions of OS subsystems for some of the projects. For example, the file system class project can use EXT4.

Lectures

  • Introduction, Logistics
  • OS Overview, BDD, TDD
  • System Calls
  • Process Management
  • Tizen and Android Overview and Architecture
  • Kernel Synchronization
  • Interrupts and Interrupt Handlers
  • Bottom Halves and Deferring Work
  • Sensor Frameworks
  • Process Scheduling
  • Resource Scheduling – Two-level Scheduling, DRF
  • Memory Management
  • Process Address Space
  • File System
  • Virtual File System
  • Block I/O
  • Advanced File System
  • Storage SSD
  • Virtualization
  • New OS Architecture