
Examine how operating systems and design have evolved as changes in hardware and software led to contemporary operating systems. Topics include basic OS concepts, methods of OS design and construction, process coordination, management, and algorithms for CPU scheduling, memory, and general resource allocation.
This course will introduce you to modern operating systems. We will focus on UNIX-based operating systems, though we will also learn about alternative operating systems, including Windows. The course will begin with an overview of the structure of modern operating systems. Over the course of the subsequent units, we will discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and explore more advanced topics in the field, including memory management and file input/output. The class will conclude with a discussion of various system-related security issues.
- Unit 1: Introduction to Operating Systems
- Unit 2: Processes and Threads
- Unit 3: Synchronization
- Unit 4: CPU Scheduling
- Unit 5: Deadlock
- Unit 6: Memory Management
- Unit 7: File System
- Unit 8: Security
- Unit 9: Networking
- Understand the functions, structures, and evolution of operating systems;
- Evaluate design choices and trade-offs in the implementation of different operating systems, and decide which type of operating system would be most appropriate for a given situation;
- Evaluate, debug, and modify operating system code to achieve the desired functionality; and
- Explain data structures, algorithms, computer architecture, and programming in the context of operating systems.