CSE 421/521: Introduction to Operating Systems

Spring 2015 (1/26/2015–5/16/2015)
Enrollment: 144




Response Rate (%)


Instructor Rating (out of 5)


Course Rating (out of 5)


Full evaluation results are available here (PDF). Note that beginning in 2014–2015, when the University at Buffalo adopted a new course evaluation system provided by Campus Labs, results from 421 and 521 cohorts were no longer available separately.


Operating systems are the masterworks of the programming world: beautiful and sophisticated solutions to difficult design problems that have emerged from years of effort by thousands of skilled programmers. Just like budding artists study the works of the great masters for inspiration, we programmers study operating systems. While most of you will never contribute a single line of code to a production operating system, we hope that by the end of "CSE 421/521: Introduction to Operating Systems", you will have learned something from their elegance and maturity.

Understanding operating system design will make you a better software engineer, and struggling with operating system programming will make you a better programmer. CSE 421/521 gives you a chance to do both. We establish a conceptual track through lectures and exams, where we discuss the concepts and design principles of modern operating systems and how hardware devices such as the CPU, memory, and disks are multiplexed and abstracted. Equally important, however, is the programming track which proceeds through four assignments that give you the chance to implement core operating system functionality in a simplified development environment. After studying synchronization, you will implement synchronization primitives. After studying the system call interface, you will implement it. After studying virtual memory and address translation, you will design and implement a virtual memory subsystem.

Designing and implementing operating system concepts is not easy, and neither is this course. But we are here to help and committed to providing you with the support you need to succeed. Our online grading tools provide helpful feedback and allow you to repeatedly test and submit your assignments until you earn the grade you desire. And our TAs are experienced and will be available for many hours each week to provide individual help. We expect that you will find this course difficult, but we hope you will also learn a large amount, have fun, and develop a passion for computer systems.




Built by the metalsmith-blue Metalsmith pipeline.
Created 2/11/2016
Updated 1/30/2017
Commit 6167a60 // History // View
Built 11/28/2017 @ 17:09 EDT