COMPSCI 453: Operating Systems 4-credit course with 4 lecture hours per week Course Coordinator: Amit Jain Textbook(s) and Supplemental Material Operating Systems: A Modern Perspective (3rd ed.), Gary Nutt, 2004. Extensive lecture notes and program examples on class website, Amit Jain, 2011. Optional: Operating Systems Concepts (8th Ed.), Silberschatz, Galvin and Gagne, 2012. Optional, :, Modern Operating Systems (3rd ed.). Andrew Tanenbaum2008 Optional, :, Microsoft Windows Internals (5th ed.). Russinovich and Solomon2009 Optional, :, Linux Kernel Development (3rd ed.). Robert Love2010 Catalog Description Process management, concurrency, inter-process communication, synchronization, scheduling, memory management, file systems and security. Case studies of multiple operating systems. PREREQ: COMPSCI 253 and COMPSCI 342 and ECE 330. Required Goals for the Course Successful students will be expected to: • explain the structure of an Operating System • explain the function of an Operating System • solve problems arising in Operating System design and implementation • describe strategies used to implement commonly used Operating Systems • write concurrent system programs that run correctly • create a large piece of system software in stages • analyze the impact of system software on individuals, organizations and society Outcomes Addressed a. an ability to apply knowledge of computing and mathematics appropriate to the discipline b. an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution c. an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs e. an understanding of professional, ethical, legal, security and social issues and responsibilities h. recognition of the need for and an ability to engage in continuing professional development g. an ability to analyze the local and global impact of computing on individuals, organizations, and society i. an ability to use current techniques, skills, and tools necessary for computing practice j. an ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices k. an ability to apply design and development principles in the construction of software systems of varying complexity Outcomes Assessed: b, c, i, j, and k Topics Covered Introduction and History Process Management Scheduling Basic Synchronization Principles High-level Synchronization and Deadlock Device Management Memory Management Virtual Memory File Management Protection and Security Introduction to Networking Examples from Linux, Microsoft Windows and Mac OS X Grading Letter grades are assigned to students based on numerical scores for the following activities: Activity Homework and Programming Assignments Midterm Final Curriculum Category Content (Credits) Area Core Advanced Algorithms Software Design 3 Computer Architecture 1 Data Structures Programming Languages Weight 70% 15% 15%