Principles of operating systems, including process management, memory management, auxiliary storage management, and resource allocation. Focus on the structure of the popular desktop and real-time operating systems. Prerequisite: minimum grade of 2.0 in CSS 343; may not be repeated.
This course introduces the logical design of operating systems, especially focusing on the design in Java. Topics covered include processes, threads, CPU scheduling, synchroization, deadlocks, memory management, virtual memory, file systems, I/O systems, network programming, protection, and security used in the popular desktop and real-time operating systems. Through the course, we will use Java to illustrate many operating-system concepts. Using Java, you will implement each concept of process management, memory management, and file system.
Student learning goals
General method of instruction
Class assignments and grading