INTRODUCTION TO OS
Detailed Definition of OS, Components of OS: User Space and Kernel Space, Demonstration on functionalities of Kernel, Types of Kernel, Introduction to terminal in Linux OS, System Calls
PROCESS MANAGEMENT
Process and Process Control block, Architecture of Process with Basics of Storage Devices, Process States, Operations on Processes, Special types of Process: Orphan and Zombie Process, Process Scheduling, Process Scheduling Algorithms: FCFS, Shortest Job First, Priority Scheduling, Round Robin, Multilevel Queue and Multilevel Feedback Queue Scheduling
MEMORY MANAGEMENT
Memory Management in Early Systems, Improvement and Challenge of Isolation and Protection, Understanding Stack and Heap Memory, Initial attempts on Virtualisation of Memory and Address Translation, Free Space Management, Memory Allocation Techniques: Fixed Partitioning, Dynamic Partitioning, Segmentation, Paging, Paging with Translation Lookaside Buffer, Virtual Memory and Page Faults, Page Replacement Algorithms
CONCURRENCY
Processes, Threads and Multithreading, Thread Scheduling Issues, Solution to Synchronisations Issues: Locks, Conditional Variables and Semaphores, Concurrency Bug: Deadlock, Deadlock Avoidance and Prevention, Banker’s Algorithm
STORAGE MANAGEMENT
Need for Secondary Memory, HDD and SSD, File System, Files and Directories, Disk Space Allocation Methods: Contiguous, Linked and Indexed, Disk Scheduling Algorithms: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK
CASE STUDY: LINUX OS
Introduction to Linux OS, Process Management, Memory Management and File System in Linux, Linux Cgroups and Namespaces, Linux Boot Process, User Management, Package and Repository Management, Jobs and Crontab, Troubleshooting in Linux, Debuggability using Logs