This is a graduate level course. The objectives of the course are to explore the design principles of computer operating systems and to emphasize on implementation details of various sub-modules of operating systems. The course will focus on the engineering and performance trade-offs in the design of operating systems. The purpose will be to teach not only what operating systems are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future. The emphasize will be on the practical aspects of the topics through the case study of Linux kernel as an example of a commercial operating system. The course will cover programming aspects through some programming assignments. It will also introduce the state of the art OS research topics through a few research paper reading assignments.
Course Learning Outcomes
Upon successful completion of the course the students would be able to:
* Understand in great detail how and why different parts of an operating system work.
* Understand the engineering tradeoffs involved in the design of various sub-modules of an operating system.
* Understand how operating systems are structured, what are alternative OS architectures and how different modules interact together to form a cohesive and complex system.
* Write non-trivial programs in C or C++ that would invoke OS services via system calls in an efficient manner.
* Understand various contemporary research issues in operating systems e.g. security and protection, efficient memory management, I/O buffering, device handling, faster and more efficient file systems and OS architectures.
Note: This application doesn't require any credentials to use and neither it ask for any username/password. Its a free application that provides a support for students to access their lectures, slides and handouts without the need to login to the VLMS every time. This is a non-profit app and will always be. Thats why its FREE!!!