15-410/605 Operating System Design and Implementation 15-410/605 - COURSE PROFILECourse Level:Undergraduate/GraduateUnits: 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 ClassesCourse 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 modelvirtual memoryconcurrency, threads, locking, interrupts, preemptibility, race conditionsdesign synthesisdesign for robustnessintroductory understanding of typical OS topics (file systems, transactions, scheduling, security concepts and technologies, memory consistency)Parallel programming models / frameworksStrong 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 providedSample class notes: not providedProgramming 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.pdfSample Lecture Recording: not providedMost Recent Syllabus Available: https://www.cs.cmu.edu/~410/syllabus.html Course Goals/ObjectivesSynthesize into a considered designCompare and contrast the properties of memory regions according to the Unix process modelCompare and contrast the properties and roles of x86-32 registersExplain the interactions of input/output operations and per-thread scheduling statesImplement address spaces, including TLB managementExplain why and how multiple threads are used in a single address spaceAnalyze and write lock-based multi-threaded code and lock objects, including detecting and documenting race conditions and deadlockExplain the relationship between interrupts and other forms of concurrencyUse multiple tools and approaches to debug concurrency-related code failuresWrite robust code that responds appropriately to resource exhaustionWrite clear, appropriately documented codeDefine and illustrate key computer security concepts such as protection domains, capabilities, access control lists, and least-privilege executionDefine, illustrate, and apply, in a basic fashion, key computer security technologies such as secure hashes, symmetric cipers, and asymmetric ciphersDescribe 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 storageStudy 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 materialHardware documentationSpecification documentsTextbookPrerequisites Required: 15-213Minimum Grades in Prereqs:C in 15-213Corequisites: NonePrerequisite for: Anti-requisites: NoneCross-Listed: 15-618Substitutes: 18213 for 15213, 18243 for 15213, 15513 for 15213, 18600 for 15213Related Courses: NoneReservations: Some reservations are for Seniors in Computer Science; Some reservations are for Juniors in Computer ScienceSpecial 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 2017https://www.csd.cs.cmu.edu https://www.cs.cmu.eduBack to Course Profile List