Principles underlying computer operating systems are presented from a computer designer's perspective. Concepts explained include process concurrency, synchronization, resource management, input/output scheduling, job and process scheduling, scheduling policies, deadlock, semaphore, consumer/producer relationship, storage management (real storage management policies in a multiprogramming environment), virtual memory management (segmentation and paging), secure memory management, access control lists and kernal protection. An overview of contemporary operating systems with these principles. Students program in a high-level language. Projects are assigned as part of the homework requirements. Prerequisites: CS-150, CT-152, CS-230 and senior status. (3-0-3)