Operating Systems
Deep Understanding: 95 hours
This course includes the basic concepts of operating system components, including process management, deadlocks and synchronization, memory management techniques, file system implementation, I/O device management, and a case study on Linux OS.
Describe the need and role of operating systems,Understand OS components such as scheduler, memory manager, file system handlers, and I/O device managers,Analyze and evaluate techniques used in OS components,Demonstrate and simulate algorithms used in OS components,Identify algorithms and techniques used in different components of Linux
Course Contents
Definition, Two views of operating system, Evolution, Types of OS, System Call, Handling System Calls, System Programs, Operating System Structures, The Shell, Open Source Operating Systems
Process vs Program, Multiprogramming, Process Model, Process States, Process Control Block, Threads, Thread vs Process, User and Kernel Space Threads, Inter Process Communication, Race Condition, Critical Section, Implementing Mutual Exclusion: Busy Waiting, Sleep and Wakeup, Semaphore, Monitors, Message Passing, Classical IPC problems: Producer-Consumer, Sleeping Barber, Dining Philosopher, Process Scheduling: Goals, Batch System Scheduling (FCFS, SJF, SRTN), Interactive System Scheduling (Round-Robin, Priority, Multiple Queues), Real-Time System Scheduling Overview
Introduction, Deadlock Characterization, Preemptable and Non-preemptable Resources, Resource-Allocation Graph, Conditions for Deadlock, Handling Deadlocks: Ostrich Algorithm, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, Recovery from Deadlock
Monoprogramming vs Multiprogramming, Multiprogramming Modelling, Fixed and Variable Partitions, Relocation and Protection, Memory management: Bitmaps & Linked-list, Memory Allocation Strategies, Virtual memory: Paging, Page Table, Handling Page Faults, TLBs, Page Replacement Algorithms: FIFO, Second Chance, LRU, Optimal, LFU, Clock, WS-Clock, Concept of Locality of Reference, Belady’s Anomaly, Segmentation and Segmentation with Paging (MULTICS)
File Overview: Naming, Structure, Types, Access, Attributes, Operations, Single Level, Two Level, Hierarchical Directory Systems, File System Layout, Implementing Files: Contiguous Allocation, Linked List Allocation, Inodes, Directory Operations, Path Names, Directory Implementation, Shared Files, Free Space Management: Bitmaps, Linked List
Classification of I/O devices, Controllers, Memory Mapped I/O, DMA Operation, Interrupts, Goals of I/O Software, Handling I/O (Programmed, Interrupt-Driven, DMA), I/O Software Layers (Interrupt Handlers, Device Drivers), Disk Structure, Disk Scheduling (FCFS, SSTF, SCAN, CSCAN, LOOK, CLOOK), Disk Formatting (Cylinder Skew, Interleaving, Error Handling), RAID
Laboratory Works
Learn basic Linux commands,Create processes and threads, implement IPC techniques,Simulate process scheduling algorithms and deadlock detection,Simulate page replacement algorithms,Simulate free space management techniques and disk scheduling algorithms