Operating systems are an essential part of any computer system. They act as intermediaries between the user and the hardware. Given the complexity and heterogenity of today's hardware, it is no wonder that an operating system is a very complex set of programs. The course presents the main roles and components of an operating system. Many issues will be approached from two levels: conceptual (principles, algorithms, and data structures that accomplish together the given task) and practical (the use of the facilities thus offered).
The following is a rough (i.e., subject to change) outline:
Overview and structure of operating systems | 1 week |
Process management | 3 weeks |
Memory management | 2 weeks |
Storage management | 2 weeks |
Protection and security | 1 week |
Networked and distributed systems | 2 weeks |
Other advanced topics | 1 week |
This course has a certain programming component. Programming will be done in either C or C++, although I will try to stick in my lectures, examples, Web pages, whatnot to C.