Necessity of an Operating system; Operating System Terminology, Evolution of Operating Systems (Multiprogramming Systems, Batch Systems, Timesharing System, Process Control and Real-Time System). Factors in OS Design (Performance, Protection and Security; Correctness, Maintainability, Application Integration, Portability and Interoperability).
Device Management : General Device Characteristics, I/O Programming Concepts, Device Controllers, Device Drivers, Interrupts Driven I/O System Organization, Direct I/O with Polling, Interrupts Driven I/O, Memory Mapped I/O, Direct Memory Access, Buffering, Device Drivers Interface, CPU Device Interaction, I/O Optimization, Device Management Scenarios (Serial Communications, Sequentially Accessed Storage Devices, Randomly Accessed Devices).
Process Management : Process Definition, Process Control, Initializing Operating System, Process Address Spaces, Process Abstraction, Resource Abstraction and Process Hierarchy.
Scheduling Mechanisms, Partitioning a Process into Small Processes, Non-Preemptive Strategies (First come-First Served, Shortest Job Next, Priority Scheduling, Deadline Scheduling), Preemptive strategies (Round Robin, Two Queues, Multiple Level Queues).
Basic Synchronization Principles : Interactive Processes, Coordinating Processes, Semaphores, Shared Memory Multiprocessors, AND Synchronization, Inter-process Communication, Inter-process Messages, Mailboxes.
Deadlocks, Resource Status Modeling, Handling Deadlocks, Deadlock Detection and Resolution Deadlock Avoidance.