SwadhyAI Notes
Operating Systems Notes
Explore Operating Systems notes in Swadhyai's Computer Science collection, organized for structured learning and practical revision.
Lessons
- Introduction to operating systems
- Computer system organization
- OS services and design goals
- System calls and APIs
- Kernel structures (monolithic, microkernel, modular)
- Boot process and hardware overview
- Process concept
- Process vs program
- Process states and lifecycle
- Process control block (PCB)
- Context switching
- Process creation (fork, exec)
- Zombie and orphan processes
- Process scheduling queues
- CPU burst vs I/O burst
- Synchronization vs communication
- Inter-process communication overview
- Threads vs processes
- User-level vs kernel-level threads
- Multithreading models
- Thread libraries
- Thread scheduling
- Thread safety
- Reentrancy
- Thread pools
- Scheduling criteria and metrics
- FCFS and SJF scheduling
- Priority and round-robin scheduling
- Multilevel queue scheduling
- Real-time scheduling basics
- Race conditions and critical sections
- Peterson's solution (software)
- Hardware synchronization (Test-and-Set, Compare-and-Swap)
- Mutexes and spinlocks
- Semaphores
- Monitors and condition variables
- Producer–consumer (bounded buffer)
- Readers–writers problem (detailed)
- Dining philosophers (deep dive)
- Necessary conditions for deadlock
- Resource allocation graphs
- Prevention, avoidance, detection, recovery
- Banker's algorithm
- Address binding and MMU
- Internal vs external fragmentation
- Contiguous memory allocation
- Paging
- Segmentation
- Paging vs segmentation comparison
- Page table structure (multi-level, inverted)
- Memory protection
- Shared memory
- Translation lookaside buffer (TLB)
- Demand paging
- Demand paging vs prepaging
- Page fault handling (step by step)
- Copy-on-write (COW)
- Page replacement algorithms
- Belady's anomaly
- Local vs global page replacement
- Thrashing
- Working set model
- Files and access methods
- Inode structure
- Directory structures
- Hard link vs soft (symbolic) link
- File permissions (Linux)
- File allocation methods
- Free space management
- Journaling file systems
- File system mounting
- Example file systems
- I/O subsystem and drivers
- Interrupts vs polling
- DMA (Direct Memory Access)
- Buffering, caching, and spooling
- Device controllers
- Disk structure and geometry
- Disk scheduling algorithms
- RAID
- Security goals and principles
- Authentication and authorization
- Access control (ACLs, capabilities)
- Protection domains and privilege levels
- Encryption basics
- OS vulnerabilities
- Malware types
- Sandboxing
- Secure boot
- Linux architecture
- Process management in Linux
- Memory management in Linux
- Virtualization and hypervisors
- Docker internals (namespaces, cgroups)
- Containers vs virtual machines
- Kubernetes basics
- Distributed systems and the OS
- Top OS interview questions
- Process vs thread (deep dive)
- Deadlock detection scenarios
- Scheduling numericals (step by step)
- Paging numericals
- Memory allocation problems
- Synchronization coding questions
- System design + OS connections
- Real-world OS case studies
- Linux commands for interviews
- Process vs thread table
- Scheduling algorithms comparison table
- Paging vs segmentation table
- Deadlock conditions (four conditions)
- Synchronization primitives summary
- Page replacement algorithms summary
- File allocation methods comparison
- Disk scheduling algorithms summary
- Important formulas (turnaround time, waiting time)
- Quick revision notes