Updates:
All lectures' slides are uploaded. (September 21, 2023)
Several supplementary lectures' slides are uploaded. (September 21, 2023)
Several assignments with step-by-step animated solutions are uploaded. (September 20, 2023)
This course teaches the students standard operating systems structures. The students are exposed to topics such as concurrency and real-time considerations. The course discusses how common operating systems such as Unix and Windows are designed and implemented. This course spans the following topics: processes, threads, inter-process communication, synchronization (critical regions, semaphores, mutex, deadlocks), scheduling, memory management, i/o systems, and file systems.
This course covers the following topics in detail: Operating system definition, simple batch systems, multiprogramming, time-sharing, personal computer systems, parallel systems, introduction to process, process scheduling, operations on processes, cooperating processes, interprocess communications, interrupts, process synchronization, critical-section problem, atomic instructions, semaphores, synchronization problems, CPU scheduling, scheduling criteria and algorithms, multiple processes and real-time scheduling, algorithm evaluation, deadlocks, characterization and handling of deadlocks, deadlock prevention avoidance and detection, deadlock recovery, memory management and virtual memory, address spaces, swapping, memory allocation, paging, segmentation.
After completing this course, the student
Be able to explain what an operating system and the role is it different parts of the system play.
Be able to explain the structure of operating systems, applications, and the relationship between them.
Be able to explain and make use of the services provided by operating systems
Exposure to details of major OS concepts
Write programs (Implement) various parts of operating systems.
Section 1: Introduction
Lecture 1 Introduction to Operating Systems
Section 2: Fundamentals of Computers and Operating Systems
Lecture 2 Computer System Structures
Lecture 3 Operating System Structures
Section 3: Processes and CPU Scheduling
Lecture 4 Processes
Lecture 5 Processes - long and short schedulers, context switch, process creation and term
Lecture 6 Round Robin Algorithm with Examples
Lecture 7 Cooperative Processes
Lecture 8 CPU Scheduling
Lecture 9 First Come First Served (FCFS) and Shortest Job First (SJF)
Lecture 10 Round Robin CPU Scheduling
Lecture 11 Round Robin Examples
Lecture 12 Priority Scheduling
Lecture 13 Priority Scheduling Examples
Section 4: Process Synchronization
Lecture 14 Process Synchronization - Peterson and Bakery Algorithms
Lecture 15 Synchronization Hardware
Lecture 16 Semaphores
Lecture 17 Classical problems of synchronization
Section 5: Memory Management
Lecture 18 Memory Management Part1
Lecture 19 Swapping
Lecture 20 Memory Management - Paging
Lecture 21 Page Replacement Algorithms
Section 6: Deadlocks
Lecture 22 Deadlocks - Resource Allocation Graph
Lecture 23 Deadlocks Avoidance Algorithms
Lecture 24 Safety Algorithm Example
Lecture 25 Deadlock Detection Algorithm Example
Lecture 26 Deadlock-Quiz-solution