Introduction To
Operating Systems
An Operating System (OS) is an interface between a computer user and computer hardware.
An operating system is a software which performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.
Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/OS, etc
Course Structure
Basics
- Operating System | Introduction of Operating System – Set 1
- Operating System | Types of Operating Systems
- Functions of Operating System
- Operating System | Real time systems
- Tasks in Real Time systems
- Operating System | 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?
- Operating System | Boot Block
- UEFI(Unified Extensible Firmware Interface) and how is it different from BIOS
System Structure
CPU Scheduling
- Operating System | Process Management | Introduction
- Operating Systems | States of a process
- Operating System | Process Table and Process Control Block (PCB)
- Operating System | Process Scheduler
- Operating System | Process Management | CPU Scheduling
- Preemptive and Non-Preemptive Scheduling
- Measure the time spent in context switch?
- Operating System | Difference between dispatcher and scheduler
- Program for FCFS Scheduling | Set 1
- Program for FCFS Scheduling | Set 2 (Processes with different arrival times)
- Convoy Effect in Operating Systems
- Operating System | Belady’s Anomaly
- Program for Shortest Job First (or SJF) scheduling | Set 1 (Non- preemptive)
- Program for Shortest Job First (SJF) scheduling | Set 2 (Preemptive)
- Operating System | Shortest Job First scheduling with predicted burst time
- CPU Scheduling | Longest Remaining Time First (LRTF) Program
- CPU Scheduling | Longest Remaining Time First (LRTF) algorithm
- Program for Round Robin scheduling | Set 1
- Operating System | Selfish Round Robin Scheduling
- Round Robin Scheduling with different arrival times
- Program for Priority Scheduling | Set 1
- Program for Preemptive Priority CPU Scheduling
- Operating System | Priority Scheduling with different arrival time – Set 2
- Operating System | Starvation and Aging in Operating Systems
- Operating System | Highest Response Ratio Next (HRRN) Scheduling
- Operating System | Multilevel Queue Scheduling
- Operating System | Multilevel Feedback Queue Scheduling
- Operating System | Lottery Process Scheduling
- Operating System | Multiple-Processor Scheduling
Process Synchronization
- Operating System | Process Synchronization | Introduction
- Operating System | Critical Section
- Inter Process Communication
- IPC through shared memory
- IPC using Message Queues
- Message based Communication in IPC (inter process communication)
- Communication between two process using signals in C
- Operating System | 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)
- Operating System | Peterson’s Algorithm (Using processes and shared memory)
- Operating System | Dekker’s algorithm
- Operating System | Bakery Algorithm
- Producer Consumer Problem using Semaphores | Set 1
- Operating System | Dining Philosopher Problem Using Semaphores
- Operating System | Dining-Philosophers Solution Using Monitors
- Readers-Writers Problem | Set 1 (Introduction and Readers Preference Solution)
- Operating System | Reader-Writers solution using Monitors
- Operating System | Sleeping Barber problem
- Operating System | Lock variable synchronization mechanism
- Priority Inversion : What the heck !
- What’s difference between Priority Inversion and Priority Inheritance ?
- Operating System | Process Synchronization | Set 2
- Interprocess Communication: Methods
Deadlock
- Operating System | Process Management | Deadlock Introduction
- Deadlock Detection And Recovery
- Deadlock, Starvation, and Livelock
- Deadlock Prevention And Avoidance
- Operating System | Banker’s Algorithm
- Operating System | Resource Allocation Graph (RAG)
- Methods of resource allocation to processes by operating system
- Program for Banker’s Algorithm | Set 1 (Safety Algorithm)
- Operating System | Banker’s Algorithm : Print all the safe state (or safe sequences)
- Operating System | 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
- Operating System | Threads and its types
- Operating System | User Level thread Vs Kernel Level thread
- Operating System | Process-based and Thread-based Multitasking
- Multi threading models
- Operating System | Benefits of Multithreading
- Zombie Processes and their Prevention
- 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 )
- Operating System | Buddy System – Memory allocation technique
- Operating System | Memory Management | Partition Allocation Method
- Variable (or dynamic) Partitioning in Operating System
- Non-Contiguous Allocation in Operating System
- Logical vs Physical Address in Operating System
- Operating System | Paging
- Operating System | Requirements of memory management system
- Operating System | Memory management – mapping virtual address to physical addresses
- Operating System | Page Table Entries
- Virtual Memory | Operating System
- Operating System | Memory Interleaving
- Virtual Memory | Questions
- Operating system based Virtualization
- Operating System | Inverted Page Table
- Operating System | Swap Space
- Operating System | Page Fault Handling
- Fixed (or static) Partitioning in Operating System
- Operating System | Segmentation
- Memory Segmentation in 8086 Microprocessor
- Operating System | Program for Next Fit algorithm in Memory Management
- Operating System | Overlays in Memory Management
- Page Replacement Algorithms in Operating Systems
- Program for Page Replacement Algorithms | Set 1 ( LRU)
- Program for Optimal Page Replacement Algorithm
- LFU (Least Frequently Used) Cache Implementation
- Operating System | Second Chance (or Clock) Page Replacement Policy
- Operating System | 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 | Operating System
- Operating System | Unix File System
- Operating System | Privileged and Non-Privileged Instructions
- Operating System | File Directory | Path Name
- Operating System | Structures of Directory
- File Allocation Methods
- Operating System | File Access Methods
- Secondary Memory
- Operating System | 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
- Operating System | 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
- mindepth and maxdepth in Linux find() command for limiting search to a specific directory.