CPRE 308: Operating Systems: Principles and Practice
Course Description
This course is an introduction to the basic principles underlying current operating systems. Operating systems have evolved over a few decades and have led to a few well accepted abstractions. We will study those concepts and how they fit together: the purpose of an operating system, processes and threads, synchronization between multiple processes, process scheduling, deadlocks, the address space concept, virtual memory, file systems, I/O systems, security, and the basics of networking. The corresponding (weekly) labs cover the "practice" portion of the class, where the students are required to write programs which interact with the operating system, and implement simplified versions of some of the OS modules. The labs require a knowledge of the C programming language and a working knowledge of the Linux operating system, which is introduced in the first lab. More detailed course syllabus can be found on Canvas.
Note: If you need special accommodations, please do not hesitate to contact the instructor/TAs. We will evaluate the accommodation request case by case and try to maximize flexibility to help you get through the challenges. In addition, we may adjust the course plan during the semester based on the university guidance and the latest COVID situation. You are expected to monitor your ISU email and Canvas Announcements for course-related updates.
Course Materials
Required textbook: Modern Operating Systems (MOS) by Andrew S. Tanenbaum, 4th/5th Edition
Besides MOS, there are another two recommended textbooks for reference:
Operating Systems Concepts (9th edition), A. Silberschatz, P. Galvin, and G. Gagne, Addison-Wesley.
Operating Systems: Three Easy Pieces (OSTEP) by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, which is FREE at http://pages.cs.wisc.edu/~remzi/OSTEP/ Links to an external site. (Links to an external site.)
Links to an external site.
The lecture slides will include selected content from all books above. All slides, assignments, etc. will be posted on Canvas.