Loading...

Course Code: CS2103
Course Name: Operating Systems
Prerequisites: CS2201
Syllabus: Introduction to Operating Systems, OS structure and components, Introduction to Process concept- states, PCB, context switching, process creation and termination, threads, inter-process communication using pipes, shared memory, message queues, sockets. CPU scheduling algorithms, scheduling criteria, multi-core scheduling considerations, and real-time scheduling concepts; Introduction to critical section, mutual exclusion, semaphores, monitors and condition variables. Classical synchronization problems. Introduction to Deadlocks-resource allocation graph, detection, prevention, avoidance, Banker `s algorithm, recovery mechanism; Contiguous memory allocation, fixed and variable partitioning, fitting strategies, memory fragmentation and compaction, non-contiguous memory allocation, segmentation, paging, virtual memory page tables, and buddy system allocation. Demand paging, page fault, page replacement algorithms, frame allocation strategies, thrashing and working set model, swap space management, and memory-mapped files; Secondary storage structure, disk scheduling algorithms, disk management. RAID levels. File and directory structures, file system implementation, file allocation methods, free space management, directory implementation, file system mounting and journaling, and log-structured file systems. Device drivers, interrupt handlers, buffering, caching and spooling strategies; Protection domains and access control, authentication mechanisms, security threats overview, encryption and firewall; Introduction to virtualization, Type 1 and Type 2 hypervisors, containers and OS-level virtualization concepts, and introduction to distributed OS concepts.
Texts: 1. A. Silberschatz, P. B. Galvin, G. Gagne, Operating System Concepts, 10th Ed., Wiley, 2019.
2. R. H. Arpaci-Dusseau, A. C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, 2018.
References: 1. W. Stallings, Operating Systems: Internals and Design Principles, 9th Ed., Pearson, 2018.
2. A. S. Tanenbaum, H. Bos, Modern Operating Systems, 5th Ed., Pearson, 2022.
3. R. Cox, F. Kaashoek, R. Morris, xv6: A Simple, Unix-like Teaching Operating System, MIT PDOS, 2018.