The goal of this course is to present the basic concepts involved in constructing computer operating systems such as computer-system structures, operating-systems structures, process and threads concepts and models, CPU scheduling, process synchronization, deadlocks, memory management, virtual memory, and mass-storage management.