This module aims at making students learn about basic concepts of operating systems.
What is an Operating System, Simple Batch Systems, Multiprogrammed Batched Systems, Time-Sharing Systems, Personal-Computer Systems, Parallel Systems, Distributed Systems, and Real-Time Systems.
Operating-System Structures: System Components, Operating System Services, System Calls, System Structure, Virtual Machines.
Process Management: Process Concept, Process Scheduling, Operation on Processes.
CPU Scheduling: Basic Concepts, Scheduling Criteria.
CPU Scheduling Algorithms (FCFS, SJF, Priority, Round-Robin, Multilevel Queue, Multilevel Feedback Queue) Multiple-Processor Scheduling. Process Synchronization: Background, The Critical-Section Problem, Introduction to Semaphores. Deadlocks: System Model, Deadlock Characterization.
Deadlocks: Methods for Handling Deadlocks, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, and Recovery from Deadlock. Memory Management: Background, Logical versus Physical Address space, Swapping, Contiguous allocation (fragmentation), Paging, Segmentation.
Virtual Memory: Background, Demand Paging, Page Replacement, Page-replacement Algorithms (FIFO, Optimal, LRU, Counting). File Management: File Concepts (Operations & Attributes), Access Methods, Directory Structure, File System Structure, Allocation Methods (Contiguous Allocation, Linked Allocation, Indexed Allocation).