Getting Started
This Operating System tutorial will cover all the basic to advance operating system concepts like System Structure, CPU Scheduling, Deadlock, file and disk management, and many more.
Why Operating System
An Operating System(OS) is software that manages and handles the hardware and software resources of a computer system. It provides interaction between users of computers and computer hardware. An operating system is responsible for managing and controlling all the activities and sharing of computer resources. An operating system is a low-level Software that includes all the basic functions like processor management, memory management, Error detection, etc.
Recent Articles on Operating Systems
Basics :
- Introduction of Operating System
- Types of Operating Systems
- Functions of Operating System
- Real time systems
- Tasks in Real Time systems
- Difference between multitasking, multithreading and multiprocessing
- Types of computer memory (RAM and ROM)
- Difference between 32-bit and 64-bit operating systems
- What happens when we turn on computer?
- Boot Block
- UEFI(Unified Extensible Firmware Interface) and how is it different from BIOS
System Structure :
CPU Scheduling :
- Process | (Introduction and different states)
- States of a process
- Process Table and Process Control Block (PCB)
- Process Scheduler
- CPU Scheduling
- Preemptive and Non-Preemptive Scheduling
- Measure the time spent in context switch?
- Difference between dispatcher and scheduler
- FCFS Scheduling | Set 1
- FCFS Scheduling | Set 2
- Convoy Effect in Operating Systems
- Belady’s Anomaly
- Shortest Job First (or SJF) scheduling | Set 1 (Non- preemptive)
- Program for Shortest Job First (SJF) scheduling | Set 2 (Preemptive)
- Shortest Job First scheduling with predicted burst time
- Longest Remaining Time First (LRTF) Program
- Longest Remaining Time First (LRTF) algorithm
- Round Robin scheduling
- Selfish Round Robin Scheduling
- Round Robin Scheduling with different arrival times
- Priority Scheduling
- Program for Preemptive Priority CPU Scheduling
- Priority Scheduling with different arrival time – Set 2
- Starvation and Aging in Operating Systems</a
- Highest Response Ratio Next (HRRN) Scheduling
- Multilevel Queue Scheduling
- Multilevel Feedback Queue Scheduling
- Lottery Process Scheduling
- Multiple-Processor Scheduling
Process Synchronization :
- Process Synchronization | Introduction
- Process Synchronization | Set 2
- Critical Section
- Inter Process Communication
- Interprocess Communication: Methods
- IPC through shared memory
- IPC using Message Queues
- Message based Communication in IPC (inter process communication)
- Communication between two process using signals in C
- Semaphores in operating system
- Mutex vs. Semaphore
- Process Synchronization | Monitors
- Peterson’s Algorithm for Mutual Exclusion | Set 1 (Basic C implementation)
- Peterson’s Algorithm for Mutual Exclusion | Set 2 (CPU Cycles and Memory Fence)
- Peterson’s Algorithm (Using processes and shared memory)
- Dekker’s algorithm
- Bakery Algorithm
- Producer Consumer Problem using Semaphores | Set 1
- Dining Philosopher Problem Using Semaphores
- Dining-Philosophers Solution Using Monitors
- Readers-Writers Problem | Set 1 (Introduction and Readers Preference Solution)
- Reader-Writers solution using Monitors
- Sleeping Barber problem
- Lock variable synchronization mechanism
- Mutex lock for Linux Thread Synchronization
- Priority Inversion : What the heck !
- What’s difference between Priority Inversion and Priority Inheritance ?
- Process Synchronization
- Interprocess Communication: Methods
Deadlock :
- Deadlock Introduction
- Deadlock Detection And Recovery
- Deadlock, Starvation, and Livelock
- Deadlock Prevention And Avoidance
- Banker’s Algorithm
- Resource Allocation Graph (RAG)
- Methods of resource allocation to processes by operating system
- Program for Banker’s Algorithm
- Banker’s Algorithm : Print all the safe state (or safe sequences)
- Deadlock detection algorithm
- Program for Deadlock free condition in Operating System
- Deadlock detection in Distributed systems
- Techniques used in centralized approach of deadlock detection in distributed systems
Processes & Threads :
- Operating System | Thread
- Threads and its types
- Operating System | User Level thread Vs Kernel Level thread
- Process-based and Thread-based Multitasking
- Multi threading models
- Benefits of Multithreading
- Zombie Processes and their Prevention
- Maximum number of Zombie process a system can handle
- Operating System | Remote Procedure call (RPC)
Memory Management :
- Memory Hierarchy Design and its Characteristics
- Introduction to memory and memory units
- Different Types of RAM (Random Access Memory)
- Buddy System: Memory allocation technique
- Memory Management | Partition Allocation Method
- Fixed (or static) Partitioning in Operating System
- Variable (or dynamic) Partitioning in Operating System
- Non-Contiguous Allocation in Operating System
- Logical vs Physical Address in Operating System
- Paging
- Requirements of memory management system
- Memory management – mapping virtual address to physical addresses
- Page Table Entries
- Virtual Memory
- Memory Interleaving
- Virtual Memory Questions
- Operating system based Virtualization
- Inverted Page Table
- Swap Space
- Page Fault Handling
- Fixed (or static) Partitioning in Operating System
- Segmentation
- Memory Segmentation in 8086 Microprocessor
- Program for Next Fit algorithm in Memory Management
- Overlays in Memory Management
- Page Replacement Algorithms
- Program for Page Replacement Algorithms | Set 1 ( LRU)
- Program for Optimal Page Replacement Algorithm
- LFU (Least Frequently Used) Cache Implementation
- Second Chance (or Clock) Page Replacement Policy
- Techniques to handle Thrashing
- Allocating kernel memory (buddy system and slab system)
- Program for buddy memory allocation scheme in Operating Systems | Set 1 (Allocation)
- Program for buddy memory allocation scheme in Operating Systems | Set 2 (Deallocation)
- Static and Dynamic Libraries | Set 1
- Working with Shared Libraries | Set 1
- Working with Shared Libraries | Set 2
- Named Pipe or FIFO with example C program
- Tracing memory usage in Linux
Disk Management
- File Systems
- Unix File System
- Implementing Directory Management using Shell Script
- File Directory | Path Name
- Structures of Directory
- File Allocation Methods
- File Access Methods
- Secondary memory
- Secondary memory – Hard disk drive
- Disk Scheduling Algorithms
- Program for SSTF disk scheduling algorithm
- What exactly Spooling is all about?
- Difference between Spooling and Buffering
- Free space management
Misc
- Introduction to UNIX System
- Important Linux Commands (leave, diff, cal, ncal, locate and ln)
- Process states and Transitions in a UNIX Process
- Introduction to Linux Shell and Shell Scripting
- ‘crontab’ in Linux with Examples
- indepth and maxdepth in Linux find() command for limiting search to a specific directory.
Types of Operating System
- Batch OS (e.g. Transactions Process, Payroll System, etc.)
- Multi-programmed OS(e.g. Windows, UNIX, macOS, etc.)
- Timesharing OS(e.g. Multics, Linux, etc.)
- Real-Time OS(e.g. PSOS, VRTX, etc.)
- Distributed OS(e.g. LOCUS, Solaris, etc.)
Operating System Functions
- Memory and processor Management
- Network Management
- Security Management
- File Management
- Error Detection
- Job Accounting
Quick Links :
- Last Minute Notes (LMNs) | Operating Systems
- Commonly Asked Operating Systems Interview Questions
- Gate Practice Questions
- ‘Quizzes’ on Operating Systems !
- ‘Practice Problems’ on Operating Systems !
"Operating systems: the backstage magicians making sure your computer doesn't throw a tantrum, even when you do."
Reference books:
- "Operating System Concepts" by Abraham Silberschatz, Greg Gagne, and Peter B. Galvin
- "Modern Operating Systems" by Andrew S. Tanenbaum
- "Operating Systems: Three Easy Pieces" by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- "UNIX and Linux System Administration Handbook" by Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, and Dan Mackin
- "Windows Internals" by Pavel Yosifovich, Mark E. Russinovich, David A. Solomon, and Alex Ionescu