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 systemsUnderstand OS components such as scheduler, memory manager, file system handlers, and I/O device managersAnalyze and evaluate techniques used in OS componentsDemonstrate and simulate algorithms used in OS componentsIdentify algorithms and techniques used in different components of Linux
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
Learn basic Linux commandsCreate processes and threads, implement IPC techniquesSimulate process scheduling algorithms and deadlock detectionSimulate page replacement algorithmsSimulate free space management techniques and disk scheduling algorithms