Upon completion of this course, you should be familiar with the basic issues involved in the design of operating systems. In particular, you should be familiar with:
In addition, through the course projects you will receive practical experience working with the C programming language on a Unix system.
This is a survey course, in which we will attempt to gain a general familiarity with a large volume of material. For this reason, textbook reading and problem sets will play a larger-than-usual role in the course, with a proportionately reduced emphasis on actual programming. Actually implementing even a very small operating system would be far beyond the scope of an introductory course like this; however, several programming projects will provide an opportunity for you to gain some familiarity with key aspects of concurrent programming and operating system implementation.