3 Cr. (Hrs.:3 Lec.)
I/O management, memory management, processor management, device management, and performance measurement/evaluation are examined. Other operating systems, theoretical and current, are discussed. Prerequisite: CSCI 255 and CSCI 332; Corequisite: CSCI 361 (2nd)
Course generally offered spring (2nd) semester.
E1. The student should understand commonly used data structures such as queues, stacks, and trees. (CSCI 332)
E2. The student should have a high-level understanding of how a processor works. (CSCI 361)
E3. The student should be able to quickly learn to write programs in the C programming language. (CSCI 332)
R1. Students understand how the operating system depends on and interacts with the hardware (privilege levels, interrupts, memory protection, etc) and that it acts as an extended machine and a resource manage. (CS: 1; SE: 7)
R2. Students understand the major trends in the history and development of operating systems. (CS: 1, 4; SE: 4, 7)
R3. Students know how operating systems create, schedule, and manage processes. (CS: 1; SE: 6)
R4. Students know how operating systems provide mechanisms for sharing resources between processes and inter process communication: race conditions, critical sections, mutual exclusion, semaphores, monitors, message passing. (CS: 6; SE: 6)
R5. Students know how operating systems manage input and output devices. (CS: 6; SE: 6)
R6. Students know how operating systems manage memory, with an emphasis on virtual memory and paging. (CS: 6; SE: 6)
R7. Students know how operating systems manage file systems. (CS: 6; SE: 6)
R8. Students have written computer programs that make use of the services offered by an operating system and made minor changes to an actual operating system. (CS: 2; SE: 1)
R9. Students have researched a current topic in operating systems, written a paper based on their research, and presented the paper to the rest of the class. (CS: 3; SE: 3)
CS:
5-a-1 - Substantial coverage of algorithms and complexity, computer science theory, concepts of programming languages, and software development
5-a-2 - Substantial coverage of at least one general-purpose programming language
5-a-3 - Exposure to computer architecture and organization, information management, networking and communication, operating systems, and parallel and distributed
5-a-4 - The study of computing-based systems at varying levels of abstraction
SE:
III-1-2-1 - Computing fundamentals, software design and construction, requirements analysis, security, verification, and validation