2022 System Software

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Watanabe Takuo 
Class Format
Lecture    (Face-to-face)
Media-enhanced courses
Day/Period(Room No.)
Mon7-8(W641)  Thr7-8(W641)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

This course examines the design and implementation of operating system kernels and surveys the background theories and algorithms

Student learning outcomes

By the end of this course, students will be able to outline the structure of typical operating system kernels and explain important concepts such as interrupt-based kernel implementations, process management, synchronization, mutual exclusion, memory management, file systems, I/O systems and so on. In addition, students will be able to explain the implementation of Unix-like operating systems through a series of programming exercises using xv6 (RISC-V version).


operating system kernels, system calls, processes, scheduling, synchronization, mutual exclusion algorithms, memory management, virtual memory, file systems, protection mechanisms, security mechanisms, verification, model checking

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

Classroom learning and programming exercises

Course schedule/Required learning

  Course schedule Required learning
Class 1 Roles and Functions of Operating Systems Understand the roles and functions of operating systems
Class 2 Overview of Unix and xv6 Understand the overview of Unix and xv6
Class 3 Interrupts and System Calls Understand interrupts and system calls
Class 4 Processes and Threads (1): Basics, Multiprocessing Understand the basic concepts of process and threads as well as multiprocessing
Class 5 Processes and Threads (2): Process Scheduling Understand process scheduling algorithms and their implementation methods
Class 6 Processes and Threads (3): Synchronization and Mutual Exclusion Algorithms Understand the concepts of synchronization and mutual exclusion algorithms
Class 7 Processes and Threads (4): Specification and Verification of Synchronization and Mutual Exclusion Understand the specification and verification methods of synchronization and mutual exclusion
Class 8 Memory Management (1): Objectives and Basic Concepts Understand the objectives and basic concepts of memory management
Class 9 Memory Management (2): Concepts and Algorithms for Virtual Memory Systems Understand the concepts of virtual memory systems and related algorithms
Class 10 Memory Management (3): Implementations of Virtual Memory Systems Understand the implementation methods of virtual memory systems
Class 11 File Systems (1): Objectives and Basic Concepts Understand the objectives and basic concepts of file systems
Class 12 File Systems (2): File Management Algorithms Understand file management algorithms
Class 13 File Systems (3): Implementations of File Systems Understand the implementation methods of file systems
Class 14 I/O Systems and their Implementations Understand I/O systems and their Implementations

Out-of-Class Study Time (Preparation and Review)

To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.


None required (course materials will be provided via T2SCHOLA)

Reference books, course materials, etc.

Russ Cox, Frans Kaashoek and Robert Morris, "xv6: a simple, Unix-like teaching operating system", 2021. (document distributed with xv6)

Assessment criteria and methods

Programming Exercises (2 times): 60%
Final Exam: 40%

Related courses

  • CSC.T243 : Procedural Programming Fundamentals
  • CSC.T253 : Advanced Procedural Programming
  • CSC.T344 : System Programming
  • CSC.T262 : Assembly Language
  • CSC.T363 : Computer Architecture

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Students must have succesfully completed the related courses or have equivalent knowledge.
Students are desired to have familiarity with basic Unix terminal commands.



Page Top