Roadmap: Link
- Overview
- What is an Operating System
- Services Provided by and Operating System
- Types of OS
- RAM vs ROM
- SRAM vs DRAM
- PROM, EPROM & EEPROM
- Virtualisation vs Containerisation
- BIOS vs UEFI
- MBR vs GPT
- Important terms to know
- Multiprogramming, Multiprocessing, Multitasking and Multithreading
- Monolithic Architecture vs Microkernel Architecture
- Why Windows kernel is more monolithic and not microkernel
- What happens when we turn on our Computer
- Process Concept
- What is a Process
- Process vs Program
- Different State of Process
- Types of Process
- PCB Structure in detail
- How does a process look like in memory
- Process vs Thread
- Process Scheduling
- CPU Bound Process vs IO Bound Process
- What is a Context Switch
- IPC
- What is an IPC
- IPC by Shared Memory
- IPC by Message Passing
- Define Pipe
- Zombie Process
- Thread Concept
- What is a Thread?
- Benefits of Multithreading
- Example of Multithreading
- Models
- Many to One Model
- One to One Model
- Many to Many Model
- Best Model?
- Optimal number of threads required for a process
- Effect of Multiple cores on Multithreading
- Thread vs Process
- Why C++ Static Variables are dangerous in real life OS?
- Process Scheduling
- Why do we need it?
- CPU Burst Cycle
- CPU Scheduler
- Pre-Emptive Scheduling
- Non Pre-Emptive Scheduling
- Advantages / Disadvantages
- Dispatcher
- Role of Dispatcher
- Dispatch Latency
- Scheduling Criteria
- CPU Utilisation
- Throughput
- TAT (Turn Around Time)
- Waiting Time
- Response Time
- Scheduling Algorithm
- FCFS
- SJFS
- Priority-based
- Round-Robin
- MLQS
- MLFQS
- Which algorithm is used in the real world OS scenario?
- Terms to know:
- How to prevent Starvation?
- Synchronisation
- Why Process Coordination/Sync is needed?
- Data Inconsistency
- Race Condition
- Data Inconsistency
- Physical Address Space vs Logical Address Space
- Terms to know
- Mutual Exclusion
- Critical Section
- Critical Section Problem
- Peterson Solution
- Why Pre-Emptive kernel is better than Non Pre-Emptive kernel
- Semaphore
- Binary Semaphore / Mutex Locks
- Counting Semaphore
- Terms to know:
- Busy Waiting
- Spin Lock
- Example of Busy Waiting and Spin Lock
- How to implement Binary Semaphore in real world coding implementation?
- What is Deadlock and Starvation?
- Bounder Buffer, Reader-Writer Problem and Dining Philosopher Problem
- Why Process Coordination/Sync is needed?
- Deadlocks
- What is Deadlock?
- Effects of Deadlock?
- Necessary Conditions:
- Mutual Exclusion
- Hold and Wait
- No PreEmption
- Circular Wait
- Methods for Deadlock Handling
- Prevention or Avoidance
- Make sure atleast one condition should not meet
- Mutual Exclusion
- Hold and Wait
- No PreEmption
- Circular Wait
- Make sure atleast one condition should not meet
- Detection or Recovery
- Banker’s Algorithm
- Safe State
- Ostrich Algorithm
- Resource PreEmption
- Banker’s Algorithm
- Ignorance
- Prevention or Avoidance
- Memory Management Strategies
- Important Points:
- CPU can directly access Registers and Memory
- Protection of memory space is handled by the hardware
- OS loads Base and Limit Registers
- Mapping for Logical to Physical address is done by MMU (Memory Management Unit)
- OS memory is categorised into 3 divisions:
- for the resident of OS
- User Processes
- Logical vs Physical Address Space