1. Introduction to Operating Systems
• Definition: Software that acts as an intermediary between the user and computer
hardware.
• Functions: Process management, memory management, file system, I/O system,
security, user interface.
• Types: Batch, Time-Sharing, Distributed, Network, Real-Time, Mobile.
2. System Components
• Kernel: Core of the OS, manages CPU, memory, and devices.
• System Calls: Interface between user programs and the OS kernel.
• Shell: Command interpreter executing user commands.
• Device Drivers: Handle communication with hardware peripherals.
3. Process Management
• Process: Program in execution, managed via PCB (Process Control Block).
• States: New → Ready → Running → Waiting → Terminated.
• Scheduling: Preemptive (Round Robin, SRTF) & Non-preemptive (FCFS).
• Inter-Process Communication: Shared Memory, Message Passing.
• Deadlocks: Conditions (Mutual Exclusion, Hold & Wait, No Preemption, Circular Wait).
Prevention, Avoidance (Banker’s Algorithm), Detection, Recovery.
4. Threads & Concurrency
• Thread: Lightweight process sharing resources.
• Models: Many-to-One, One-to-One, Many-to-Many.
• Synchronization Tools: Mutex locks, Semaphores, Monitors.
• Critical Section Problem: Ensures mutual exclusion.
5. CPU Scheduling Algorithms
• FCFS: First Come First Served (Non-preemptive).
• SJF: Shortest Job First (Non-preemptive).
• Round Robin: Time-sliced scheduling (Preemptive).
• Priority Scheduling: Based on priority; risk of starvation.
• Multilevel Queue: Separate queues by process type.
6. Memory Management
• Contiguous Allocation: Fixed vs Dynamic partitioning.
• Paging: Fixed-size blocks (pages/frames).
• Segmentation: Variable-sized logical segments.
• Virtual Memory: Extends RAM via disk storage.
• Page Replacement: FIFO, LRU, Optimal, Second-Chance (Clock).
• Thrashing: Excessive paging lowers performance.