Taught S05, S06, S07, and S09.
This course prepares students to understand fundamental issues in operating systems. Students will be introduced to multi-threading, synchronization, scheduling, virtual memory, security and communication/networking. The material will be covered in terms of operating systems services exported by the operating systems interface. Current trends will be discussed to give a better understanding of future developments likely to be included in operating systems.
In Spring 2009 I taught this course using Minix. Students wrote assignments that required modifying or developing kernel code.