トップページへ

2025 (Current Year) Faculty Courses School of Computing Undergraduate major in Computer Science

System Software

Academic unit or major
Undergraduate major in Computer Science
Instructor(s)
Takuo Watanabe
Class Format
Lecture (Face-to-face)
Media-enhanced courses
-
Day of week/Period
(Classrooms)
7-8 Mon (S4-201(S421)) / 7-8 Thu (S4-201(S421))
Class
-
Course Code
CSC.T371
Number of credits
200
Course offered
2025
Offered quarter
3Q
Syllabus updated
Sep 18, 2025
Language
Japanese

Syllabus

Course overview and goals

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

Course description and aims

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).

Keywords

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

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

Class flow

Classroom learning and programming exercises

Course schedule/Objectives

Course schedule Objectives
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

Study advice (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.

Textbook(s)

None required (course materials will be provided via LMS)

Reference books, course materials, etc.

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

Evaluation methods and criteria

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

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

Other

https://titech-os.github.io