Course Description
This course introduces the basic concepts and core principles in modern computer operating systems. It focuses on explaining fundamental ideas and design that have proven effective. Specifically, students will explore essential concepts such as processes, concurrency, synchronization, scheduling, multiprogramming, memory management (including virtual memory), resource allocation, and deadlocks. Additionally, the course covers file system structures, input/output management, secondary storage, and virtualization techniques. By providing a strong foundation in these topics, the course serves as a starting point for further research and study in operating and distributed systems.
Schedule
Lecture: Monday/Wednesday 4:30 – 6:15pm
Staff
- Yigong Hu
Address: PHO335
Email: yigongh AT bu DOT edu
Office Hours: TBD
Grading
Final grade will be based on the following weights:
- Projects: 55% (4 projects)
No partial credits. You must turn in working code. - Midterm: 15%
- Final: 20%
- Participation: 10%
Piazza, class participation, and non-graded quizzes & handouts
Textbook
While no textbook is required, this book covers most of the material related to class:
Operating Systems: Three Easy Pieces
by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, available online for free !
Outline
The course is structured around lectures, assigned readings, discussion sections, projects, and exams, all designed to reinforce your understanding of core operating system concepts. Lectures will present foundational concepts and essential information. The textbook and supplementary readings complement lectures and serve as valuable preparation, though they do not substitute for attending class.
We will evolve this course throughout the term, covering essential topics in operating systems, including:
- Role and history of operating systems
- Processes and threads
- Synchronization
- Scheduling
- Memory Management
- File systems
- Virtualization
You will complete four programming projects individually or in groups (of no more than three students), enabling you to apply theoretical knowledge practically. Optional homework questions will be provided for exam preparation but are not required to be submitted. Two midterm exams will evaluate your understanding based on class material, assigned readings, and project work.
Acknowledgments
The course syllabus, lecture and project materials are heavily influenced by BU’s previous EC440, JHU CS318 and Michigan EECS482 class. Credits are particularly due to Manuel Egele(BU), Ryan Huang (UMichi), and Baris Kasikci (UW).