CSCI 460


Operating Systems

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.

Expectations:

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)

Course Outcomes:

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