CSCI-C 435 Operating Systems
3-4 credits
- Prerequisite(s): CSCI-C 310, CSCI-C 343, or CSCI 36200
- Delivery: On-Campus
- Semesters offered: Fall (Check the schedule to confirm.)
Description
Organization and construction of computer systems that manage computational resources. Topics include specification and implementation of concurrency, process scheduling, storage management, device handlers, and mechanisms for event coordination such as interruption, exclusion, and synchronization. The course includes extensive laboratory exercises.
Topics
Concurrency
- Concurrency and multitasking
- Identifying and resolving race conditions
- Handling deadlocks and livelocks
- Implementing synchronization mechanisms
Process scheduling
- Designing scheduling algorithms
- Evaluating scheduling performance and fairness
- Real-time vs. non-real-time scheduling
- Multilevel queue scheduling
Storage management
- Memory hierarchy: registers, cache, main memory, secondary storage
- Memory management techniques: paging, segmentation, and virtual memory
- Page replacement algorithms: FIFO, LRU, optimal, etc.
- File systems and storage organization
Device management
- Device handlers and driver implementation
- Managing device queues
- Techniques for handling device I/O operations
- Interrupt-driven vs. polled I/O
Event coordination mechanisms
- Implementing interruption systems
- Mutual exclusion techniques
- Condition synchronization and signaling
- Analyzing system bottlenecks and inefficiencies
- Debugging and troubleshooting
- Techniques and tools for debugging operating system issues
- Troubleshooting methods for common system problems
Advanced topics
- Distributed systems and their management
- Security considerations in operating systems
- Recent advancements in operating system design and technology
Learning Outcomes
- Design and implement basic algorithms for managing concurrency and multitasking in a computer system, identify potential issues, like race conditions and deadlocks, and propose solutions to mitigate them. CS 3
- Design, implement, and analyze process scheduling algorithms, evaluating their performance and fairness. CS 3
- Evaluate the memory hierarchy, including registers, cache, main memory, and secondary storage. CS 3
- Implement and analyze memory management techniques such as paging, segmentation, virtual memory, and the efficiency of various page replacement algorithms. CS 3
- Design basic algorithms for incorporating device handlers, managing device queues, and handling device I/O operations. CS 3
- Implement mechanisms for event coordination, including interruption, exclusion, and synchronization, analyze potential bottlenecks and inefficiencies, and propose solutions. CS 3
- Apply theoretical knowledge, debug, and troubleshoot operating system issues in practical scenarios. CS 3
Policies and Procedures
Please be aware of the following linked policies and procedures. Note that in individual courses instructors will have stipulations specific to their course.