graph LR
A[OS]
B[Overview]
C[Processes]
D[Synchronization]
E[Scheduling]
F[Memory Management]
G[Input/Output Management]
H[File Management]
A -->|Introduction| B
A -->|Processes| C
A -->|Synchronization| D
A -->|Scheduling| E
A -->|Memory Management| F
A -->|Input/Output Management| G
A -->|File Management| H
B -->|Concept of OS| I[Concept of OS]
B -->|Main Functions| J[Main Functions]
B -->|Components| K[Components]
B -->|Classification| L[Classification]
B -->|Structure| M[Structure]
B -->|History| N[History]
B -->|Computer Hardware| O[Computer Hardware]
C -->|Process Control Block| P[Process Control Block]
C -->|Process States| Q[Process States]
C -->|Threads| R[Threads]
C -->|Context Switching| S[Context Switching]
C -->|Accessing Kernel Procedures| T[Accessing Kernel Procedures]
C -->|Interprocess Communication| U[Interprocess Communication]
C -->|Interprocess Communication Across Machines| V[Interprocess Communication Across Machines]
D -->|Race Condition| W[Race Condition]
D -->|Critical Section| X[Critical Section]
D -->|Busy-Waiting Solutions| Y[Busy-Waiting Solutions]
D -->|Sleep and Wakeup Solutions| Z[Sleep and Wakeup Solutions]
D -->|Classical Synchronization Problems| AA[Classical Synchronization Problems]
D -->|Deadlocks| BB[Deadlocks]
E -->|Introduction to Scheduling Problem| CC[Introduction to Scheduling Problem]
E -->|Scheduling in Batch Processing Systems| DD[Scheduling in Batch Processing Systems]
E -->|Scheduling in Interactive Systems| EE[Scheduling in Interactive Systems]
E -->|Scheduling in Real-Time Systems| FF[Scheduling in Real-Time Systems]
E -->|Thread Scheduling| GG[Thread Scheduling]
E -->|Scheduling in Multiprocessor Systems| HH[Scheduling in Multiprocessor Systems]
F -->|Basics of Hardware Memory| II[Basics of Hardware Memory]
F -->|Basics of Memory Management| JJ[Basics of Memory Management]
F -->|Memory Swapping| KK[Memory Swapping]
F -->|Virtual Memory| LL[Virtual Memory]
F -->|Page Replacement Algorithms| MM[Page Replacement Algorithms]
F -->|Segmentation| NN[Segmentation]
G -->|Basic Input/Output Devices| OO[Basic Input/Output Devices]
G -->|Input/Output Issues| PP[Input/Output Issues]
G -->|Software Layered I/O Model| QQ[Software Layered I/O Model]
G -->|I/O Management on Some Basic Devices| RR[I/O Management on Some Basic Devices]
H -->|User"s Perspective| SS[User"s Perspective]
H -->|Design Perspective| TT[Design Perspective]
-
Concept of Operating Systems
-
Main Functions of an Operating System
-
Components of an Operating System
- Process Management
- Memory Management
- File System Management
- Input/Output Management
- Command Interpreter
- System Security
- Network Management
-
Classification of Operating Systems
- Batch Processing System
- Multiprogramming System
- Time-Sharing System
- Parallel System
- Distributed System
- Real-Time System
-
Structure of Operating Systems
- Simple Structure
- Layered Structure
- Microkernel
- Modules
-
History of Operating System Development
-
Computer Hardware
- Processor (CPU)
- Memory (RAM)
- Disk Drive
- Input/Output Devices
- Bus Architecture
-
Process Control Block (PCB)
- Information in a PCB
- Storage Location of PCB
-
Process States
-
Threads
- Overview
- Multithreading Model
-
Context Switching
-
Accessing Kernel Procedures
- User Space vs. Kernel Space
- Entry Points to the Kernel
- System Calls
- Process Operations
- Resource Allocation for Processes
-
Interprocess Communication
- Shared Memory
- Message Passing
-
Interprocess Communication across Different Machines
- Sockets
- Remote Procedure Call (RPC)
-
Race Condition
-
Critical Section
-
Busy-Waiting Solutions
- Software Solutions:
- Using Flags
- Turn Variable
- Peterson"s Solution
- Hardware Solutions:
- Disabling Interrupts
- Test and Set Instruction
- Software Solutions:
-
Sleep and Wakeup Solutions
- Semaphores
- Mutexes
- Monitors
- Message Passing
- Barriers
-
Classical Synchronization Problems
- Dining Philosophers Problem
- Reader-Writer Problem
- Barber Shop Problem
-
Deadlocks
- Resource Classification
- Introduction to Deadlock
- Conditions Leading to Deadlock
- Deadlock Modeling
- Ostrich Algorithm
- Detection and Recovery of Deadlocks
- Deadlock Avoidance
- Deadlock Prevention
- Introduction to Scheduling Problem
- Characteristics of Processes
- Scheduling Times
- Classification of Scheduling Algorithms
- Goals of Scheduling Algorithms
-
Scheduling in Batch Processing Systems
- First Come First Served
- Shortest Job First
- Shortest Remaining Time Next
- Two-Level Scheduling
-
Scheduling in Interactive Systems
- Round Robin Scheduling
- Priority Scheduling
- Multilevel Priority Scheduling
- Multilevel Queue Scheduling
- Shortest Task Next Scheduling
- Random Scheduling
- Fair Share Scheduling
-
Scheduling in Real-Time Systems
-
Thread Scheduling
-
Scheduling in Multiprocessor Systems
-
Basics of Hardware Memory
-
Basics of Memory Management
- Single Partition
- Multiple Fixed Partitions
- Multiple Variable Partitions
- Multiprogramming Efficiency
- Address Relocation and Memory Protection
-
Memory Swapping
- Bitmap-based Memory Management
- Linked List-based Memory Management
-
Virtual Memory
- Paging
- Page Tables:
- Multilevel Page Tables
- Hashed Page Tables
- Page Table Entry Structure
- Translation Lookaside Buffers (TLBs)
- Inverted Page Tables
-
Page Replacement Algorithms
- Optimal Page Replacement
- Not Recently Used (NRU)
- FIFO
- Second-Chance Algorithm
- Clock Algorithm
- Least Recently Used (LRU)
- Working Set Page Replacement Algorithm
- WSClock Page Replacement Algorithm
-
Segmentation
-
Basic Input/Output Devices
-
Input/Output Issues
- Data Transfer Modes
- Access Methods
- Communication Mechanisms:
- Programmed I/O
- Interrupt-driven I/O
- Direct Memory Access (DMA)
- Data Transfer Modes
- Other Issues
-
Software Layered I/O Model
- Interrupt Manager
- Device Drivers
- Independent Device Component
- User-Program Interface Component
- I/O Request Processing
-
I/O Management on Some Basic Devices
-
User"s Perspective
- File
- Directory
- File System
- Disk Storage Organization
-
Design Perspective
- Disk File System Organization
- Organization of Some File Systems:
- FAT
- NTFS
- UNIX/Linux File System