15-410/605 Operating System Design and Implementation

15-410/605 - COURSE PROFILE


Course Level:
Undergraduate/Graduate
Units: 15Special Permission Required: Yes
(if yes, please see Notes below)

Frequency Offered: Generally offered every fall & spring - confirm course offerings for upcoming semesters by accessing the university Schedule of Classes

Course Relevance (who should take this course?): For strong, confident Systems students who want to understand every detail of a small OS kernel by: solving hard design problems; implementing a kernel from scratch; debugging challenging run-time model violations due to concurrency mistakes; and being graded rigorously based on code quality. Students should expect to devote the time and focus required to, at the end of the semester, be able to confidently debug complex problems which they would not have been able to describe at the start of the semester.

Course Website: https://www.cs.cmu.edu/~410/

Key Topics:Background Knowledge:Assessment Structure:
  • process model
  • virtual memory
  • concurrency, threads, locking, interrupts, preemptibility, race conditions
  • design synthesis
  • design for robustness
  • introductory understanding of typical OS topics (file systems, transactions, scheduling, security concepts and technologies, memory consistency)Parallel programming models / frameworks

Strong grasp of all concepts and techniques covered in 15-213/513, especially: C run-time model, translating between C and assembly language, ability to write complicated pointer-based code.

Sample Assignment: not provided

Sample class notes: not provided

  • Programming Projects: 55%
  • Midterm exam: 15%
  • Final exam: 20%
  • Homework and Book Report: 10%

Sample Exam:
http://www.cs.cmu.edu/~410/public-archive/f16-midterm/examA.pdf

Sample Lecture Recording: not provided

Most Recent Syllabus Available: 
https://www.cs.cmu.edu/~410/syllabus.html

 

 

Course Goals/Objectives
  • Synthesize into a considered design
  • Compare and contrast the properties of memory regions according to the Unix process model
  • Compare and contrast the properties and roles of x86-32 registers
  • Explain the interactions of input/output operations and per-thread scheduling states
  • Implement address spaces, including TLB management
  • Explain why and how multiple threads are used in a single address space
  • Analyze and write lock-based multi-threaded code and lock objects, including detecting and documenting race conditions and deadlock
  • Explain the relationship between interrupts and other forms of concurrency
  • Use multiple tools and approaches to debug concurrency-related code failures
  • Write robust code that responds appropriately to resource exhaustion
  • Write clear, appropriately documented code
  • Define and illustrate key computer security concepts such as protection domains, capabilities, access control lists, and least-privilege execution
  • Define, illustrate, and apply, in a basic fashion, key computer security technologies such as secure hashes, symmetric cipers, and asymmetric ciphers
  • Describe and illustrate key elements of higher-level operating systems features such as file systems, inter-process communication, real-time scheduling, disk arrays, and log-based storage
  • Study an OS-related topic via a medium-sized non-textbook technical reading assignment and report in writing on what was learned.
Learning Resources:Pre-reqs, Cross list, Related Notes: 
  • Lecture material
  • Hardware documentation
  • Specification documents
  • Textbook
  • Prerequisites Required: 15-213
  • Minimum Grades in Prereqs:
    C in 15-213
  • Corequisites: None
  • Prerequisite for: 
  • Anti-requisites: None
  • Cross-Listed: 15-618
  • Substitutes: 18213 for 15213, 18243 for 15213, 15513 for 15213, 18600 for 15213
  • Related Courses: None
  • Reservations: Some reservations are for Seniors in Computer Science; Some reservations are for Juniors in Computer Science

Special Permission Required: Students should not register for this class without advisor concurrence. Graduate students will not be admitted without advisor recommendation.

This course is cross-listed with graduate level number 15-605. Graduate students MUST enroll in the graduate level version of the course. Graduate students will NOT be enrolled into the undergraduate level course and will be removed from the waitlist without notification.

 Department Website: College Website: updated August 2017
https://www.csd.cs.cmu.edu https://www.cs.cmu.eduBack to Course Profile List