|Operating System||Learning Schedule|
|Pre-requisites: Computer Architecture||3||0||0||3|
This course provides fundaments of operating systems. This course includes concurrency, processes, threads, context switching, synchronization, deadlock, CPU scheduling memory management and virtual memory. It also includes file systems, storage devices, disk management and scheduling, directories, protection, and crash recovery.
- Learn fundamental operating system abstractions such as processes, threads, files, semaphores, IPC abstractions, shared memory regions, etc.,
- Learn how the operating system abstractions can be used in the development of application programs, or to build higher level abstractions,
- Learn how the operating system abstractions can be implemented,
- Learn the principles of concurrency and synchronization, and apply them to write correct concurrent programs/software,
- Learn basic resource management techniques (scheduling, time management, space management) and principles and how they can be implemented. These also include issues of performance and fairness objectives, avoiding deadlocks, as well as security and protection.
- Understand and identify the System calls, protection, interrupts.
- Understand Input/Output, Process, disk accesses, file systems.
- Understand the concepts of Virtual memory and how it is realized in system.
- Implement Concurrency & synchronization Semaphores/monitors, shared memory, mutual exclusion Process scheduling services.
Unit I: Introduction
Operating system and functions, Classification of Operating systems- Batch, Interactive, Time sharing, Real Time System, Multiprocessor Systems, Multiuser Systems, Multiprocess Systems, Multithreaded Systems, Operating System Structure- Layered structure, System Components, Operating System services, Reentrant Kernels, Monolithic and Microkernel Systems.
Unit II: Concurrent Processes
Process Concept, Principle of Concurrency, Producer / Consumer Problem, Mutual Exclusion, Critical Section Problem, Dekker’s solution, Peterson’s solution, Semaphores, Test and Set operation; Classical Problem in Concurrency- Dining Philosopher Problem, Sleeping Barber Problem; Inter Process Communication models and Schemes, Process generation.
Unit III: CPU Scheduling
Scheduling Concepts, Performance Criteria, Process States, Process Transition Diagram, Schedulers, Process Control Block (PCB), Process address space, Process identification information, Threads and their management, Scheduling Algorithms, Multiprocessor Scheduling. Deadlock: System model, Deadlock characterization, Prevention, Avoidance and detection, Recovery from deadlock.
Unit IV: Memory Management
Memory Management: Basic bare machine, Resident monitor, Multiprogramming with fixed partitions, Multiprogramming with variable partitions, Protection schemes, Paging, Segmentation, Paged segmentation, Virtual memory concepts, Demand paging, Performance of demand paging, Page replacement algorithms, Thrashing, Cache memory organization, Locality of reference.
Unit V: Input/ Output
I/O Management and Disk Scheduling: I/O devices, and I/O subsystems, I/O buffering, Disk storage and disk scheduling, RAID. File System: File concept, File organization and access mechanism, File directories, and File sharing, File system implementation issues, File system protection and security.
- Operating Systems Concepts – Silberschatz, Galvin and Gagne,Wiley Publications
- Operating Systems: A Concept based Approach – D M Dhamdhere, 2nd Edition.
- Operating Systems – Sibsankar Halder and Alex A Aravind, Pearson Education
- An Introduction to Operating System – Harvey M Dietel, Pearson Education