Download .md

Knowledge Map: Operating Systems (CMS701)

Generated: 2026-04-02 | Topics: 7 | Concepts: 45+ | Relationships: 39


Course Overview

Operating Systems (CMS701) covers the fundamental principles of how an OS manages hardware and software resources. The course progresses from OS architecture (kernels, system calls) through process and thread management, CPU scheduling algorithms, multithreading models, and concludes with process synchronization, the mechanisms that keep concurrent processes safe and consistent. Two topics from the outline (Spooling, Mechanisms & Policies) are not yet covered in available lecture notes.


Concept Hierarchy

Operating Systems (CMS701)
│
├── 1. Introduction to Operating Systems          [7 concepts]
│   ├── Definition & Role
│   │   ├── Key Concepts: Operating System, OS-as-bridge (user ↔ hardware)
│   │   └── Central: Operating System
│   └── Types of Operating Systems
│       ├── Key Concepts: Batch OS, Multiprogramming OS, Time-Sharing OS
│       │                  Network OS, Real-Time OS
│       └── Central: Time-Sharing OS (most relevant to modern systems)
│
├── 2. OS Structures                              [12 concepts]
│   ├── Kernel Architecture
│   │   ├── Key Concepts: Kernel, Monolithic Kernel, Microkernel,
│   │   │                  Hybrid Kernel, Exokernel, Nanokernel
│   │   └── Central: Kernel ★
│   ├── System Calls
│   │   ├── Key Concepts: System Call, Process Control (fork/wait/exit),
│   │   │                  File Management (open/read/write/close),
│   │   │                  Device Management (ioctl), Information Maintenance,
│   │   │                  Communication (pipe/socket), Memory Management (mmap)
│   │   └── Central: System Call ★
│   └── ⚠ Pending Topics
│       └── Spooling, System Programs, Mechanisms & Policies
│
├── 3. Process Management                         [15 concepts]
│   ├── Process Definition & Attributes
│   │   ├── Key Concepts: Process, PID, Process Attributes (7 components)
│   │   └── Central: Process ★
│   ├── Process Creation
│   │   ├── Key Concepts: Parent Process, Child Process, fork(),
│   │   │                  Resource Allocation (Direct/Shared),
│   │   │                  Execution Models (Concurrent/Wait)
│   │   └── Central: fork()
│   ├── Context Switching
│   │   ├── Key Concepts: Context Switch, Dispatcher, Time Quantum, Overhead
│   │   └── Central: Context Switch ★
│   ├── Process State Models
│   │   ├── Key Concepts: Two-State Model, Five-State Model, Seven-State Model
│   │   │                  Running, Ready, Blocked/Waiting, New, Terminated,
│   │   │                  Suspend Ready, Suspend Blocked
│   │   └── Central: Five-State Model (most commonly examined)
│   └── Process Control Block (PCB)
│       ├── Key Concepts: PCB, PID, PPID, Program Counter, CPU Registers,
│       │                  Memory Management Info, Scheduling Info,
│       │                  I/O & File Info, Zombie Process
│       └── Central: PCB ★
│
├── 4. CPU Scheduling                             [12 concepts]
│   ├── Schedulers
│   │   ├── Key Concepts: Long-Term Scheduler (degree of multiprogramming),
│   │   │                  Short-Term Scheduler (ready queue),
│   │   │                  Medium-Term Scheduler (swapping)
│   │   └── Central: Short-Term Scheduler
│   ├── Preemptive vs. Non-Preemptive
│   │   ├── Key Concepts: Preemptive Scheduling, Non-Preemptive Scheduling
│   │   └── Central: Preemptive Scheduling
│   ├── Scheduling Terminologies
│   │   └── Key Concepts: Arrival Time, Burst Time, Completion Time,
│   │                      Turnaround Time, Waiting Time
│   └── Scheduling Algorithms
│       ├── Key Concepts: FCFS (Convoy Effect), SJF (Starvation risk),
│       │                  Priority Scheduling (Aging fix), Round Robin (Time Quantum),
│       │                  Multilevel Queue, Multilevel Feedback Queue
│       └── Central: Round Robin (dominant in modern OS)
│
├── 5. Thread Management                          [8 concepts]
│   ├── Thread Definition
│   │   ├── Key Concepts: Thread, Lightweight Process
│   │   └── Central: Thread ★
│   ├── Thread Components
│   │   └── Key Concepts: Stack Space, Register Set, Program Counter
│   └── Types of Threads
│       ├── Key Concepts: User-Level Thread, Kernel-Level Thread
│       └── Central: Kernel-Level Thread (more powerful; OS-managed)
│
├── 6. Multithreading                             [8 concepts]
│   ├── Multithreading Models
│   │   ├── Key Concepts: Many-to-Many Model ★ (best),
│   │   │                  Many-to-One Model, One-to-One Model
│   │   └── Central: Many-to-Many Model
│   ├── Multithreading vs. Multitasking vs. Multiprocessing
│   │   └── Key Concepts: Multithreading, Multitasking, Multiprocessing
│   └── Common Issues
│       └── Key Concepts: Race Condition, Deadlock, Starvation
│
└── 7. Process Synchronization                   [9 concepts]
    ├── Critical Section Problem
    │   ├── Key Concepts: Critical Section, Race Condition
    │   └── Central: Critical Section ★
    ├── Synchronization Requirements
    │   └── Key Concepts: Mutual Exclusion, Progress, Bounded Waiting
    ├── Synchronization Mechanisms
    │   ├── Key Concepts: Semaphore (Binary/Counting), Monitor,
    │   │                  Condition Variable, Mutex
    │   └── Central: Semaphore ★
    └── Synchronization Problems
        └── Key Concepts: Deadlock, Starvation, Data Inconsistency

Key Relationships

Hierarchical (Is-a / Part-of)

Causal (Causes / Enables)

Dependency (Requires / Prerequisite)

Contrast (Contrasts-with)


Central Concepts

These are the most connected concepts in the course, master these first:

Concept Connections Why Central
Process 8 Foundation of all process management, scheduling, synchronization, and threading
Kernel 7 Core OS component; all system calls, thread management, and hardware access pass through it
PCB (Process Control Block) 6 The OS's complete record of a process; essential for context switching and scheduling
Context Switch 6 The mechanism that makes multitasking possible; connects PCB, schedulers, and CPU
CPU Scheduling 6 Governs all 6 scheduling algorithms and 3 scheduler types; directly affects performance
Thread 5 Lightweight execution unit; central to multithreading models and synchronization issues
Deadlock 4 Connects synchronization failures, resource management, and starvation

Prerequisite Learning Path

Recommended study order based on concept dependencies:

1. Operating System Basics (definition, types)
        ↓
2. Kernel Architecture (monolithic → microkernel → hybrid)
        ↓
3. System Calls (how user mode requests kernel services)
        ↓
4. Process Fundamentals (definition, attributes, creation)
        ↓
5. Process State Models (2-state → 5-state → 7-state)
        ↓
6. Process Control Block, PCB (what data the OS tracks)
        ↓
7. Context Switching (how the OS switches between processes)
        ↓
8. Process Schedulers (Long-Term, Short-Term, Medium-Term)
        ↓
9. CPU Scheduling Algorithms (FCFS → SJF → Priority → RR → Multilevel)
        ↓
10. Thread Management (what threads are, types, components)
        ↓
11. Multithreading & Models (Many-to-Many, Many-to-One, One-to-One)
        ↓
12. Race Conditions & Critical Section (why synchronization is needed)
        ↓
13. Process Synchronization Mechanisms (semaphores, monitors, mutexes)

Definitions Quick Reference

Term Definition (brief)
Operating System Software bridge between user and hardware; manages all resources
Kernel Core OS component bridging applications and hardware
Monolithic Kernel Single large program with all OS functions; fast but fragile
Microkernel Minimal kernel; drivers/services in user space; stable but slower
Hybrid Kernel Combines monolithic speed with microkernel modularity (e.g., Windows NT)
System Call Program's request to kernel for privileged operations; bridges user/kernel mode
Process A program in execution with its own code, state, and resources
PID Unique numeric identifier assigned to each process by the OS
PCB OS data structure holding all info to manage a process
Context Switch OS saving one process's state and loading another's to share CPU
Program Counter Register holding address of the next instruction to execute
Thread Smallest execution unit within a process; shares memory with siblings
User-Level Thread Thread managed by app library; fast but no multiprocessor advantage
Kernel-Level Thread Thread managed by OS; slower but true parallelism on multiprocessors
Multithreading Single process running multiple concurrent threads
Many-to-Many Model Multiple user threads mapped to equal or fewer kernel threads (best model)
One-to-One Model Each user thread mapped to its own kernel thread; true parallelism
CPU Scheduling OS mechanism deciding which process/thread runs on CPU next
Preemptive Scheduling OS can interrupt a running process for a higher-priority one
Time Quantum Fixed CPU time slice per process in Round Robin scheduling
Turnaround Time Completion Time − Arrival Time
Waiting Time Turnaround Time − Burst Time
FCFS First-Come, First-Served; simple but causes convoy effect
SJF Shortest Job First; optimal avg wait time but risks starvation
Round Robin Fair time-slice scheduling; performance depends on quantum size
Aging Gradually increasing waiting process priority to prevent starvation
Critical Section Code segment accessing shared resources; one process at a time only
Race Condition Simultaneous shared-data access leading to unpredictable results
Mutual Exclusion Guarantee only one process is in the critical section at a time
Deadlock Two+ processes in circular wait for each other's resources; all stuck
Starvation Process perpetually denied resource/CPU due to others' priority
Semaphore Sync object using count to allow/block resource access
Monitor High-level construct ensuring only one process executes shared code at a time
Zombie Process Finished process whose PCB still exists (parent hasn't read exit status)
Convoy Effect FCFS problem: short processes stuck behind a long one
Spooling ⚠ Pending, not yet covered in available lecture notes

Tutor Reference Notes

For use during learning sessions: