1. What is a monolithic kernel?

Definition

A monolithic kernel is a type of operating system kernel architecture in which all core OS services run in the same address space (kernel space) and are tightly integrated into a single large program.

Concept

In a monolithic kernel, the entire operating system—including:

  • Process management

  • Memory management

  • File systems

  • Device drivers

  • System call handling

—runs in kernel mode with full access to hardware.

This means:

  • All components can directly communicate with each other

  • No strict isolation between subsystems

Architecture

In a monolithic kernel, the structure looks like:

User Applications

       ↓

System Call Interface

       ↓

---------------------------------

|        Monolithic Kernel      |

| Process Mgmt | Memory Mgmt    |

| File System  | Device Drivers |

| Networking   | IPC            |

---------------------------------

       ↓

Hardware


All services are compiled into one kernel binary and execute in privileged mode.

Working Mechanism

  1. A user application makes a system call

  2. Control switches to kernel mode

  3. Kernel directly invokes the required service (e.g., file system, driver)

  4. Since all services share the same space, function calls are direct (no message passing)

  5. Result is returned to user mode

Key Characteristics

  • Single large kernel

  • All services run in kernel space

  • Direct procedure calls between components

  • High performance due to minimal overhead

Advantages

1. High Performance

  • No context switching between services

  • Direct function calls instead of IPC

2. Efficient Communication

  • All components share same memory space

  • Faster interaction between subsystems

3. Simpler Execution Flow

  • No need for complex inter-module communication

Disadvantages

1. Poor Modularity

  • Hard to isolate components

  • Difficult to maintain large codebase

2. Low Fault Isolation

  • A bug in any module (e.g., device driver) can crash the entire system

3. Security Risks

  • All components have full access to system resources

  • No strict boundaries

Example

Popular operating systems using monolithic kernels:

  • Linux

  • Unix

Note: Modern Linux is often described as a modular monolithic kernel, meaning modules can be dynamically loaded/unloaded.

Monolithic vs Microkernel (Key Insight)

Feature

Monolithic Kernel

Microkernel

Services Location

All in kernel

Minimal in kernel

Communication

Direct calls

Message passing

Performance

High

Lower

Reliability

Lower

Higher


2. What is a microkernel?

Definition

A microkernel is an operating system kernel architecture in which only the most essential services run in kernel space, while all other services run in user space as separate processes.

Core Idea

The fundamental principle of a microkernel is:

Keep the kernel minimal and move everything else outside it.

What Runs in Microkernel vs User Space

Inside Kernel (Minimal Core)

  • Process scheduling

  • Basic memory management

  • Interprocess Communication (IPC)

Outside Kernel (User Space)

  • File systems

  • Device drivers

  • Networking

  • System services

Architecture

User Applications

       ↓

User Space Services (File system, Drivers, etc.)

       ↓

IPC (Message Passing)

       ↓

-------------------------

|      Microkernel       |

| Scheduling | IPC | MM  |

-------------------------

       ↓

Hardware


Working Mechanism

  1. Application requests a service (e.g., file read)

  2. Request is sent to microkernel via system call

  3. Microkernel forwards request using message passing

  4. User-space service (e.g., file server) processes it

  5. Result is sent back through microkernel

Example Flow (File Read)

App → Kernel → File Server → Kernel → App


Each step involves message passing, unlike direct function calls in monolithic kernels.

Key Characteristics

  • Minimal kernel functionality

  • Strong separation between components

  • Communication via IPC

  • High modularity

Advantages

1. High Reliability

  • Failure in one service (e.g., driver) does not crash entire system

2. Better Security

  • Services run in user space with limited privileges

3. Modularity and Maintainability

  • Easier to update or replace components

4. Fault Isolation

  • Bugs are contained within individual services

Disadvantages

1. Performance Overhead

  • Frequent context switching

  • Message passing instead of direct calls

2. Complex Communication

  • Requires well-designed IPC mechanisms

Example Operating Systems

  • MINIX

  • QNX

  • Mach

Microkernel vs Monolithic Kernel

Feature

Microkernel

Monolithic Kernel

Kernel Size

Small

Large

Services Location

User space

Kernel space

Communication

Message passing

Direct calls

Performance

Lower

Higher

Reliability

High

Lower

3. What is the difference between microkernel and monolithic kernel?

Definition

The difference between a monolithic kernel and a microkernel lies in how operating system services are structured and where they are executed—either entirely in kernel space (monolithic) or split between kernel and user space (microkernel).

Core Concept

  • A monolithic kernel places all OS services inside kernel space, forming a single large program.

  • A microkernel keeps the kernel minimal, moving most services (drivers, file systems, networking) to user space.

Architectural Comparison

Monolithic Kernel

User Application

      ↓

System Call

      ↓

---------------------------------

|        Monolithic Kernel      |

| Process | Memory | FS | Driver|

---------------------------------

      ↓

Hardware


  • All services execute in kernel mode

  • Direct function calls between components

Microkernel

User Application

      ↓

System Call

      ↓

-------------------------

|      Microkernel       |

| Scheduling | IPC | MM  |

-------------------------

      ↓

User Space Services (FS, Drivers)

      ↓

Hardware


  • Only core services in kernel

  • Other services run as user processes

  • Communication via message passing

Detailed Differences

Feature

Monolithic Kernel

Microkernel

Kernel Size

Large

Small

Services Location

All in kernel space

Minimal in kernel, rest in user space

Communication

Direct function calls

Message passing (IPC)

Performance

High

Lower (due to IPC overhead)

Modularity

Low

High

Fault Isolation

Poor (one bug can crash system)

Strong (failures isolated)

Security

Lower

Higher

Maintainability

Difficult

Easier

Working Difference (Step-by-Step)

Monolithic Kernel (File Read Example)

  1. Application calls read()

  2. Kernel directly invokes file system code

  3. File system interacts with disk driver

  4. Data returned

  • All operations happen inside kernel

  • No extra communication overhead

Microkernel (File Read Example)

  1. Application sends request to kernel

  2. Kernel forwards request to file server (user space)

  3. File server interacts with disk driver

  4. Response sent back via kernel

  • Multiple message passes

  • More context switching

Performance vs Reliability Trade-off

  • Monolithic Kernel

    • Faster execution

    • Less overhead

    • But less safe (single failure affects entire system)

  • Microkernel

    • Slower due to IPC

    • But more reliable and secure

Real-World Examples

  • Monolithic:

    • Linux

    • Unix

  • Microkernel:

    • MINIX

    • QNX

4. What is hybrid kernel architecture?

Definition

A hybrid kernel architecture is an operating system design that combines elements of both monolithic kernels and microkernels, aiming to achieve a balance between high performance and modularity/fault isolation.

Core Idea

Hybrid kernels try to solve the trade-off:

  • Monolithic kernel → fast but less modular

  • Microkernel → modular but slower

A hybrid kernel:

  • Keeps many services in kernel space (like monolithic)

  • But structures them in a modular way (inspired by microkernel)

Architecture

User Applications

        ↓

System Call Interface

        ↓

-------------------------------------

|          Hybrid Kernel            |

| Scheduler | Memory Mgmt           |

| File System | Networking          |

| Device Drivers (modular)          |

-------------------------------------

        ↓

Hardware


Key difference:

  • Components may still run in kernel space

  • But are designed as separate modules

Working Mechanism

  1. Application makes a system call

  2. Control enters kernel space

  3. Kernel invokes required subsystem (file system, driver, etc.)

  4. Many components interact via direct calls (like monolithic)

  5. Some services may be modular or isolated

Key Characteristics

  • Combines performance of monolithic kernels

  • Incorporates modularity of microkernels

  • Supports loadable kernel modules

  • Partial separation of components

Example Operating Systems

  • Windows NT

  • macOS (uses XNU kernel, combining Mach + BSD)

Note: Even Linux is often described as a modular monolithic kernel, which overlaps conceptually with hybrid design.

Comparison with Other Kernels

Feature

Monolithic

Microkernel

Hybrid

Kernel Size

Large

Small

Medium

Performance

High

Lower

High

Modularity

Low

High

Medium–High

Fault Isolation

Poor

Strong

Moderate

Communication

Direct calls

Message passing

Mostly direct + modular

Key Design Features

1. Loadable Kernel Modules

Modules (e.g., drivers) can be:

  • Loaded at runtime

  • Unloaded without reboot

2. Layered Organization

Subsystems are structured logically:

  • Improves maintainability

  • Reduces coupling

3. Mixed Execution Model

  • Some services run in kernel space

  • Some may run in user space (depending on OS design)

Advantages

1. High Performance

  • Uses direct calls where needed

2. Better Modularity

  • Easier to extend and maintain than pure monolithic

3. Flexibility

  • Supports dynamic module loading

Disadvantages

1. Still Large Kernel

  • More complex than microkernel

2. Limited Fault Isolation

  • Many services still run in kernel mode

3. Design Complexity

  • Hard to balance modularity and performance

5. What is SMP (Symmetric Multiprocessing)?

Definition

Symmetric Multiprocessing (SMP) is a multiprocessing architecture in which multiple processors (CPUs) share a single main memory and operate under a single operating system, with all processors treated as equals.

Core Concept

In SMP:

  • All processors have equal access to memory and I/O

  • Any processor can execute any process or thread

  • The operating system distributes work dynamically among CPUs

There is no master–slave relationship (unlike asymmetric multiprocessing).

Architecture

       -------------------------

        |     Main Memory       |

        -------------------------

           ↑      ↑      ↑

         CPU1   CPU2   CPU3

           ↓      ↓      ↓

        Shared Bus / Interconnect

               ↓

            I/O Devices


All CPUs:

  • Share the same memory

  • Share the same OS instance

  • Communicate via shared memory

Working Mechanism

  1. Multiple processes/threads are ready for execution

  2. OS scheduler assigns tasks to available CPUs

  3. Each CPU executes tasks independently

  4. CPUs may coordinate using shared memory and synchronization primitives

Key Characteristics

  • Single OS controls all processors

  • Shared memory model

  • Equal (symmetric) processors

  • Dynamic load balancing

Scheduling in SMP

The OS must decide:

  • Which CPU executes which process

  • How to balance load

Approaches

1. Global Queue Scheduling

  • All processes in one queue

  • Any CPU picks next process

2. Per-CPU Queue Scheduling

  • Each CPU has its own queue

  • OS balances load across CPUs

Example (Thread Execution)

Suppose 4 threads:

T1, T2, T3, T4


With 2 CPUs:

  • CPU1 → T1, T3

  • CPU2 → T2, T4

Execution happens in parallel, improving performance.

Advantages

1. True Parallelism

  • Multiple tasks execute simultaneously

2. Better Performance

  • Increased throughput

  • Reduced execution time

3. Load Balancing

  • OS distributes work efficiently

4. Fault Tolerance (Partial)

  • If one CPU fails, others continue

Challenges

1. Synchronization Issues

  • Shared memory → race conditions

  • Requires locks, semaphores

2. Cache Coherence

Each CPU has its own cache. Problem:

  • One CPU updates data

  • Others may have stale copies

Solution:

  • Cache coherence protocols (MESI, etc.)

3. Scalability Limits

  • Too many CPUs → contention for memory bus

SMP vs Asymmetric Multiprocessing (AMP)

Feature

SMP

AMP

Processor Role

Equal

Master-slave

Scheduling

Distributed

Centralized

Flexibility

High

Limited

Complexity

Higher

Lower

Real-World Examples

  • Modern multicore processors (Intel, AMD)

  • Most desktop and server operating systems

6. What is NUMA (Non-Uniform Memory Access) architecture?

Definition

NUMA (Non-Uniform Memory Access) is a multiprocessing memory architecture in which each processor has its own local memory, but can also access memory attached to other processors, with different access times depending on the location of the memory.

Core Concept

In NUMA systems:

  • Memory is physically distributed across processors

  • Access time is not uniform:

    • Local memory access → fast

    • Remote memory access → slower

This contrasts with SMP, where all memory access times are equal.

Architecture

  CPU1 -------- CPU2 -------- CPU3

    |             |             |

 Local Mem1   Local Mem2   Local Mem3


Each CPU:

  • Has its own local memory

  • Can access others via interconnect

Memory Access Types

1. Local Memory Access

  • CPU accesses its own memory

  • Fast (low latency)

2. Remote Memory Access

  • CPU accesses memory of another CPU

  • Slower (higher latency)

Working Mechanism

  1. Process runs on CPU1

  2. If data is in local memory → fast access

  3. If data is in CPU2’s memory:

    • Request sent via interconnect

    • Data fetched remotely

    • Slower access

Example

CPU1 accessing Mem1 → fast

CPU1 accessing Mem2 → slow


Key Characteristics

  • Distributed memory

  • Non-uniform access time

  • Scalable architecture

  • Requires memory-aware scheduling

NUMA vs SMP

Feature

SMP

NUMA

Memory Access Time

Uniform

Non-uniform

Memory Structure

Shared

Distributed

Scalability

Limited

High

Complexity

Low

Higher

Importance of NUMA-Aware Scheduling

OS must:

  • Schedule processes on CPUs close to their memory

  • Minimize remote memory access

Example Strategy

  • Process created on CPU1 → allocate memory in Mem1

  • Keep process on CPU1 to avoid remote access

Advantages

1. Better Scalability

  • Handles large number of CPUs efficiently

2. Reduced Memory Contention

  • Each CPU has its own memory

Disadvantages

1. Complex Memory Management

  • OS must track memory locality

2. Performance Penalty

  • Remote memory access is slower

Real-World Systems

  • Modern multi-socket servers

  • High-performance computing systems

7. What is the difference between SMP and NUMA?

Definition

The difference between SMP (Symmetric Multiprocessing) and NUMA (Non-Uniform Memory Access) lies in how memory is organized and accessed by multiple processors:

  • SMP → All processors share a single, uniform memory with equal access time

  • NUMA → Memory is distributed across processors, and access time depends on whether memory is local or remote

Core Concept

  • In SMP, every CPU sees memory as a single shared pool with uniform latency

  • In NUMA, each CPU has its own local memory, and accessing other CPUs’ memory introduces higher latency

Architectural Comparison

SMP Architecture

       -------------------------

        |     Shared Memory     |

        -------------------------

           ↑      ↑      ↑

         CPU1   CPU2   CPU3


  • All CPUs connect to the same memory

  • Equal access time for all

NUMA Architecture

  CPU1 -------- CPU2 -------- CPU3

    |             |             |

 Local Mem1   Local Mem2   Local Mem3


  • Each CPU has local memory

  • Remote memory accessed via interconnect

Detailed Differences

Feature

SMP

NUMA

Memory Organization

Single shared memory

Distributed memory

Access Time

Uniform

Non-uniform

Local vs Remote Access

No distinction

Important distinction

Scalability

Limited

High

Memory Contention

High

Reduced

Complexity

Low

High

Scheduling Requirement

Simple

NUMA-aware scheduling needed

Working Difference (Example)

In SMP

  • CPU1 accesses memory → same latency

  • CPU2 accesses memory → same latency

No difference in access time.

In NUMA

  • CPU1 accesses Mem1 → fast

  • CPU1 accesses Mem2 → slower

Performance depends on memory locality.

Performance Implications

SMP

  • Simpler design

  • Good for small systems

  • Bottleneck: shared memory bus

NUMA

  • Scales to many CPUs

  • Better performance in large systems

  • Requires intelligent scheduling

OS-Level Considerations

SMP Scheduling

  • Any process can run on any CPU

  • No concern about memory location

NUMA Scheduling

OS must:

  • Keep process close to its memory

  • Minimize remote memory access

Example:

  • Allocate memory on same node where process runs

8. What is the Multi-Level Queue Scheduling Algorithm?

Definition

The Multi-Level Queue (MLQ) scheduling algorithm is a CPU scheduling technique in which the ready queue is divided into multiple separate queues, each assigned to processes based on specific characteristics such as priority, type, or process class. Each queue has its own scheduling algorithm, and processes do not move between queues.

Core Concept

Instead of a single ready queue, MLQ creates multiple queues, for example:

  • System processes

  • Interactive processes

  • Batch processes

Each queue:

  • Is independent

  • Uses its own scheduling policy

  • Has fixed priority relative to other queues

Architecture

Ready Queue →

   ├── Queue 1 (System Processes)      → Priority Scheduling

   ├── Queue 2 (Interactive Processes) → Round Robin

   ├── Queue 3 (Batch Processes)       → FCFS


Key Characteristics

  • Processes are permanently assigned to a queue

  • Each queue has its own scheduling algorithm

  • Scheduling occurs at two levels:

    1. Between queues

    2. Within each queue

Scheduling Between Queues

Two main approaches:

1. Fixed Priority Scheduling

  • Higher-priority queues are served first

  • Lower queues execute only when higher ones are empty

Example:

Queue 1 > Queue 2 > Queue 3


Problem:

  • Lower queues may suffer starvation

2. Time Slicing Between Queues

  • Each queue gets a portion of CPU time

Example:

Queue 1 → 50% CPU  

Queue 2 → 30% CPU  

Queue 3 → 20% CPU


This improves fairness.

Scheduling Within Queues

Each queue uses its own algorithm:

  • System queue → Priority scheduling

  • Interactive queue → Round Robin

  • Batch queue → FCFS

Example

Processes:

P1 (system)

P2 (interactive)

P3 (batch)


Queues:

  • Q1 → P1

  • Q2 → P2

  • Q3 → P3

Execution order (fixed priority):

P1 → P2 → P3


Advantages

1. Efficient for Different Process Types

  • Tailors scheduling for each category

2. Simple Implementation

  • Clear separation of process classes

Disadvantages

1. Starvation

  • Lower-priority queues may never execute

2. Inflexibility

  • Processes cannot move between queues

Comparison with Multi-Level Feedback Queue (MLFQ)

Feature

MLQ

MLFQ

Process Movement

Not allowed

Allowed

Flexibility

Low

High

Starvation Handling

Poor

Better


9. What is the Multi-Level Feedback Queue (MLFQ) Scheduling Algorithm?

Definition

The Multi-Level Feedback Queue (MLFQ) scheduling algorithm is an advanced CPU scheduling technique that uses multiple queues with different priority levels, where processes can move between queues based on their behavior and execution history.

Core Idea

Unlike Multi-Level Queue (MLQ), MLFQ is dynamic:

It adapts process priority based on how a process uses the CPU.

  • Short jobs / interactive processes → higher priority

  • Long CPU-bound jobs → gradually pushed to lower priority

Goals of MLFQ

  • Provide fast response time for interactive processes

  • Ensure fair CPU allocation

  • Prevent starvation

  • Approximate Shortest Job First (SJF) without knowing burst time

Architecture

Highest Priority → Queue 0 (small time quantum)

                  ↓

                  Queue 1

                  ↓

                  Queue 2

                  ↓

Lowest Priority → Queue N (large time quantum / FCFS)


Key Characteristics

  • Multiple queues with decreasing priority

  • Each queue has its own time quantum

  • Processes can move up or down between queues

  • Higher-priority queues are scheduled first

Scheduling Rules (Standard MLFQ Rules)

Rule 1: Priority Scheduling Between Queues

  • Always execute processes from the highest priority queue first

Rule 2: Round Robin Within a Queue

  • Processes within the same queue are scheduled using Round Robin

Rule 3: New Process Entry

  • New processes enter the highest priority queue

Rule 4: Demotion (CPU-bound behavior)

  • If a process uses its entire time quantum → move to lower-priority queue

Rule 5: Promotion (I/O-bound behavior)

  • If a process yields CPU early (e.g., for I/O) → stays or moves to higher queue

Rule 6: Aging (Starvation Prevention)

  • Periodically move long-waiting processes to higher-priority queues

Working Example

Assume 3 queues:

Queue

Priority

Time Quantum

Q0

High

4 ms

Q1

Medium

8 ms

Q2

Low

FCFS

Step-by-Step Execution

Processes:

P1 (CPU-bound)

P2 (interactive)


  1. Both enter Q0

  2. P1 uses full quantum → moved to Q1

  3. P2 uses small time → stays in Q0

  4. P1 continues → eventually moves to Q2

Result:

  • P2 gets fast response

  • P1 handled as background job

Algorithm (Conceptual)

while (true):

    for each queue from highest to lowest:

        if queue not empty:

            run process using RR

            if process uses full quantum:

                move to lower queue

            else:

                keep or promote


Advantages

1. Adaptive Scheduling

  • Adjusts based on process behavior

2. Good Response Time

  • Interactive processes prioritized

3. Starvation Prevention

  • Aging mechanism

4. Approximates SJF

  • Without prior knowledge of burst time

Disadvantages

1. Complex Implementation

  • Requires multiple queues and rules

2. Parameter Tuning Required

  • Number of queues

  • Time quantum per queue

3. Overhead

  • Frequent context switching

Comparison with MLQ

Feature

MLQ

MLFQ

Process Movement

No

Yes

Flexibility

Low

High

Starvation Handling

Poor

Good

Adaptability

Static

Dynamic

10. What are real-time scheduling algorithms?

Definition

Real-time scheduling algorithms are CPU scheduling techniques designed for systems where tasks must be executed within strict time constraints (deadlines). The correctness of such systems depends not only on logical results but also on when the results are produced.

Core Concept

In real-time systems:

  • Each task has a deadline

  • Missing a deadline may lead to system failure

Two types of real-time systems:

  • Hard real-time → Missing a deadline is unacceptable (e.g., airbag system)

  • Soft real-time → Occasional deadline misses are tolerable (e.g., video streaming)

Key Characteristics of Real-Time Scheduling

  • Deterministic behavior

  • Predictable execution

  • Deadline-driven scheduling

  • Preemption is often required

Types of Real-Time Scheduling Algorithms

Real-time scheduling algorithms are broadly classified into:

1. Static Priority Scheduling (Fixed Priority)

Priority is assigned before execution and does not change.

Example: Rate Monotonic Scheduling (RMS)

2. Dynamic Priority Scheduling

Priority is assigned during runtime and can change.

Example: Earliest Deadline First (EDF)

1. Rate Monotonic Scheduling (RMS)

Definition

RMS is a fixed-priority scheduling algorithm where priority is assigned based on task frequency (period):

Shorter period → higher priority

Assumptions

  • Tasks are periodic

  • Deadlines equal periods

  • Tasks are independent

  • Preemption allowed

Working

Given tasks:

Task

Execution Time

Period

T1

1

4

T2

2

6

Priority:

  • T1 → higher (shorter period)

  • T2 → lower

Scheduling Behavior

Time →

T1 executes every 4 units

T2 executes in remaining time


Schedulability Test

RMS guarantees scheduling if:

CPU Utilization ≤ n(2^(1/n) - 1)


Where:

  • n = number of tasks

For large n:

≈ 69%


Advantages

  • Simple and predictable

  • Easy to implement

Disadvantages

  • Not optimal

  • Cannot fully utilize CPU

2. Earliest Deadline First (EDF)

Definition

EDF is a dynamic priority scheduling algorithm where the task with the earliest deadline gets highest priority.

Core Idea

The closer the deadline, the higher the priority

Working

At any scheduling point:

  • Select task with minimum deadline

Example

Tasks:

Task

Deadline

T1

10

T2

5

Execution order:

T2 → T1


Algorithm

while (true):

    select task with earliest deadline

    execute task


Schedulability Condition

EDF can fully utilize CPU if:

CPU Utilization ≤ 100%


Advantages

  • Optimal scheduling algorithm

  • High CPU utilization

Disadvantages

  • More complex

  • Frequent priority changes

3. Least Laxity First (LLF)

Definition

LLF schedules tasks based on laxity (slack time):

Laxity = Deadline - Current Time - Execution Time


Concept

  • Task with least slack time gets highest priority

Working

while (true):

    compute laxity for all tasks

    select task with minimum laxity


Advantage

  • Very precise scheduling

Disadvantage

  • High overhead (frequent recalculation)

Comparison of Real-Time Algorithms

Algorithm

Type

Priority

Optimal

RMS

Static

Period-based

No

EDF

Dynamic

Deadline-based

Yes

LLF

Dynamic

Slack-based

Yes

Key Challenges in Real-Time Scheduling

  • Meeting deadlines under heavy load

  • Handling task preemption

  • Managing shared resources

  • Avoiding priority inversion

Real-World Applications

  • Embedded systems

  • Robotics

  • Automotive control systems

  • Medical devices

11. What is Rate Monotonic Scheduling (RMS)?

Definition

Rate Monotonic Scheduling (RMS) is a fixed-priority, preemptive real-time scheduling algorithm in which priorities are assigned based on the period of tasks. Tasks with shorter periods are given higher priority because they need to execute more frequently.

Core Concept

RMS is based on the idea that tasks that occur more frequently are more critical and should be given preference. It is a static scheduling algorithm, meaning priorities are assigned before execution and remain unchanged throughout the system’s lifetime.

Assumptions of RMS

RMS works under a specific set of assumptions that make its analysis possible. Tasks are periodic, meaning they repeat at fixed intervals. Each task has a known worst-case execution time and period. Deadlines are equal to the periods of the tasks. Tasks are independent and do not share resources. Preemption is allowed so that higher-priority tasks can interrupt lower-priority ones. Context switching time is assumed to be negligible.

Priority Assignment

Given a set of periodic tasks, priorities are assigned inversely proportional to their periods.

For example:

Task

Execution Time (C)

Period (T)

T1

1

4

T2

2

6

T3

1

8

Priority order:
T1 > T2 > T3

T1 has the highest priority because it has the shortest period.

Working Mechanism

At any scheduling decision point, the scheduler selects the highest-priority task that is ready to run. If a higher-priority task becomes ready while a lower-priority task is executing, the currently running task is preempted.

Example Scheduling

Given two tasks:

Task

Execution Time (C)

Period (T)

T1

1

4

T2

2

6

Timeline:

Time → 0 1 2 3 4 5 6 7 8
T1 T2 T2 - T1 T2 T2 -

At time 0, T1 executes because it has higher priority. T2 executes afterward. At time 4, T1 arrives again and preempts T2.

Schedulability Condition

RMS guarantees that all deadlines will be met if the total CPU utilization is below a certain bound.

Utilization is calculated as:

U = (C1/T1) + (C2/T2) + ... + (Cn/Tn)


The schedulability condition is:

U ≤ n(2^(1/n) - 1)


For example, with 2 tasks:

U ≤ 2(2^(1/2) - 1) ≈ 0.828


This means the CPU utilization must be less than or equal to 82.8% to guarantee that all deadlines are met.

As the number of tasks increases, this bound approaches approximately 69.3%.

Key Properties

RMS is preemptive, meaning tasks can interrupt each other based on priority. It is deterministic because scheduling decisions are predictable. It uses fixed priorities, so there is no need to recalculate priorities at runtime. It is analyzable, meaning it is possible to mathematically verify whether deadlines will be met.

Limitations

RMS is not optimal because it cannot fully utilize the CPU, unlike dynamic algorithms such as Earliest Deadline First. It relies on strict assumptions like periodic tasks and independence, which may not always hold in real systems. It can also suffer from priority inversion if lower-priority tasks hold resources needed by higher-priority tasks, requiring additional mechanisms like priority inheritance.

12. What is Earliest Deadline First (EDF) scheduling?

Definition

Earliest Deadline First (EDF) is a dynamic priority, preemptive real-time scheduling algorithm in which tasks are scheduled according to their absolute deadlines. The task with the earliest deadline is given the highest priority and is executed first.

Core Concept

EDF is based on the principle that tasks closer to their deadlines are more urgent and should be executed before others. Unlike fixed-priority algorithms such as RMS, EDF assigns priorities dynamically at runtime, meaning priorities can change as deadlines change.

Task Model

Each task is characterized by:

  • Execution time (C)

  • Period (T)

  • Deadline (D)

At runtime, each instance of a task has an absolute deadline, calculated as:

Absolute Deadline = Arrival Time + Relative Deadline


Working Mechanism

At any scheduling decision point:

  • The scheduler examines all ready tasks

  • Selects the task with the earliest absolute deadline

  • Executes that task

If a new task arrives with an earlier deadline than the currently running task:

  • The current task is preempted

  • The new task starts executing

Algorithm

while (true):

    select task with earliest deadline

    execute task

    if new task arrives with earlier deadline:

        preempt current task


Example

Given tasks:

Task

Execution Time (C)

Period (T)

T1

2

8

T2

1

4

At time 0:

  • T1 deadline = 8

  • T2 deadline = 4

Execution order:

T2 → T1


At time 4:

  • New instance of T2 arrives with deadline = 8

  • Compare deadlines again and schedule accordingly

EDF continuously updates priorities based on deadlines.

Schedulability Condition

EDF can guarantee that all deadlines are met if total CPU utilization is less than or equal to 100%.

U = (C1/T1) + (C2/T2) + ... + (Cn/Tn) ≤ 1


Example:

Task

C

T

T1

2

5

T2

1

5

U = (2/5) + (1/5) = 0.6


Since U ≤ 1, the system is schedulable.

Optimality

EDF is considered optimal for uniprocessor systems. This means:

  • If any scheduling algorithm can meet all deadlines, EDF can also meet them

  • If EDF fails, no other algorithm can schedule the tasks successfully

Properties

EDF is preemptive, meaning tasks can interrupt each other based on urgency. It uses dynamic priorities that change over time. It can achieve full CPU utilization up to 100%. It is flexible and adapts to varying workloads.

Advantages

EDF allows maximum CPU utilization, making it highly efficient. It adapts dynamically to changing workloads and deadlines. It is optimal for single-processor systems under ideal conditions.

Disadvantages

EDF has higher overhead because priorities must be recalculated frequently. It can become unstable under overload conditions, where many tasks miss deadlines. It is more complex to implement compared to fixed-priority algorithms like RMS.

13. What is dispatch latency in real-time systems?

Definition

Dispatch latency is the time taken by the operating system to stop one process and start execution of another process. In real-time systems, it specifically refers to the delay between the moment a high-priority task becomes ready and the moment it actually starts executing on the CPU.

Core Concept

In real-time systems, meeting deadlines is critical. Even if a scheduler correctly selects the highest-priority task, the system still needs some time to:

  • Stop the currently running task

  • Save its context

  • Load the context of the new task

  • Transfer control to it

This delay is called dispatch latency, and it directly affects whether deadlines are met.

Components of Dispatch Latency

Dispatch latency mainly consists of two parts:

1. Context Switching Time

This is the time required to:

  • Save the state (registers, program counter, etc.) of the currently running process

  • Load the state of the next process

2. Scheduling Delay

This is the time taken by the scheduler to:

  • Decide which process should run next

  • Perform necessary kernel operations before switching

Total dispatch latency can be represented as:

Dispatch Latency = Scheduling Delay + Context Switching Time


Working in Real-Time Scenario

Consider a system where:

  • A low-priority task is running

  • A high-priority task becomes ready (e.g., due to an interrupt)

Steps:

  1. Interrupt occurs

  2. OS identifies that a higher-priority task must run

  3. Current task is paused

  4. Context of current task is saved

  5. Context of high-priority task is loaded

  6. CPU starts executing high-priority task

The total time from step 2 to step 6 is the dispatch latency.

Example

Suppose:

  • Interrupt occurs at time = 10 ms

  • High-priority task starts execution at time = 12 ms

Dispatch Latency = 12 ms - 10 ms = 2 ms


This 2 ms delay may be critical in systems like:

  • Airbag deployment

  • Industrial control systems

Importance in Real-Time Systems

Dispatch latency must be bounded and predictable because:

  • High-priority tasks must start execution quickly

  • Delays can lead to missed deadlines

  • System correctness depends on timing

Factors Affecting Dispatch Latency

  • Complexity of scheduler

  • Number of processes in the system

  • Context switching overhead

  • Interrupt handling time

  • Kernel design (monolithic vs microkernel)

Techniques to Reduce Dispatch Latency

  • Use lightweight context switching

  • Optimize scheduler algorithms

  • Reduce critical section lengths in kernel

  • Use preemptive kernels

  • Minimize interrupt disabling time

Behavior in Different Systems

  • In general-purpose OS: latency may vary and is not strictly bounded

  • In real-time OS: latency is minimized and guaranteed within limits

Key Observation

Even with an optimal scheduling algorithm like EDF, poor dispatch latency can cause deadline misses because the CPU is not handed over to the correct task quickly enough

14. What is preemptive scheduling?

Definition

Preemptive scheduling is a CPU scheduling technique in which the operating system can interrupt a currently running process and allocate the CPU to another process, typically one with higher priority or urgency.

Core Concept

In preemptive scheduling, a running process does not hold the CPU until completion. Instead, the OS can forcibly take the CPU away based on certain conditions such as:

  • Arrival of a higher-priority process

  • Expiration of a time quantum

  • Occurrence of an interrupt

This allows the system to respond quickly to important or time-sensitive tasks.

Working Mechanism

  1. A process is executing on the CPU

  2. A scheduling event occurs:

    • New process arrives

    • Timer interrupt occurs

    • I/O completes for another process

  3. Scheduler checks if another process should run

  4. If a higher-priority or eligible process exists:

    • Current process is preempted

    • Its state is saved in PCB

  5. New process is loaded and executed

Example

Consider two processes:

Process

Arrival Time

Burst Time

Priority

P1

0

10

Low

P2

3

4

High

Execution:

Time → 0 1 2 3 4 5 6 7 8 9

       P1 P1 P1 P2 P2 P2 P2 P1 P1 P1


At time 3:

  • P2 arrives with higher priority

  • P1 is interrupted

  • P2 starts execution

Time Quantum-Based Preemption

In algorithms like Round Robin:

  • Each process gets a fixed time slice

if (time_quantum expires):

    preempt current process

    move it to ready queue


This ensures fair CPU sharing.

Key Characteristics

  • CPU can be taken away from a process

  • Requires context switching

  • Supports multitasking and responsiveness

  • Often driven by interrupts or timers

Advantages

  • Better response time for interactive systems

  • Allows high-priority tasks to execute immediately

  • Improves system responsiveness

  • Prevents long processes from monopolizing CPU

Disadvantages

  • Higher overhead due to frequent context switching

  • Requires complex scheduling logic

  • Risk of starvation for low-priority processes

  • Synchronization issues may arise

Preemptive vs Non-Preemptive Scheduling

Feature

Preemptive

Non-Preemptive

CPU Control

Can be taken away

Held until completion

Responsiveness

High

Low

Complexity

High

Low

Overhead

Higher

Lower

Real-World Use

  • Time-sharing systems

  • Real-time systems

  • Interactive operating systems

Preemptive scheduling is essential in modern systems where quick response and fairness are required.

15. What is non-preemptive scheduling?

Definition

Non-preemptive scheduling is a CPU scheduling technique in which a running process retains control of the CPU until it voluntarily releases it, either by completing execution or by entering a waiting state (such as performing I/O). The operating system cannot forcibly interrupt the process.

Core Concept

In non-preemptive scheduling, once a process starts executing, it continues uninterrupted. The scheduler only makes decisions when:

  • The current process finishes execution

  • The process blocks (e.g., waiting for I/O)

There is no mechanism to preempt a running process based on priority or time slicing.

Working Mechanism

  1. A process is selected from the ready queue

  2. The process is assigned the CPU

  3. The process runs until:

    • It completes execution, or

    • It performs an operation that causes it to wait (e.g., I/O request)

  4. Once the process releases the CPU, the scheduler selects the next process

Example

Consider three processes:

Process

Arrival Time

Burst Time

P1

0

5

P2

1

3

P3

2

2

Execution using FCFS (non-preemptive):

Time → 0 1 2 3 4 5 6 7 8 9 10

       P1 P1 P1 P1 P1 P2 P2 P2 P3 P3


Even though P2 and P3 arrive earlier, they must wait until P1 completes.

Behavior in I/O Scenario

If a process performs I/O:

  • It voluntarily releases the CPU

  • Scheduler selects another process

if (process requests I/O):

    move process to waiting queue

    schedule next process


Key Characteristics

  • No forced interruption of processes

  • Simple scheduling logic

  • Lower overhead (fewer context switches)

  • CPU allocation decisions occur less frequently

Advantages

  • Simple to implement

  • Minimal context switching overhead

  • Easier to manage synchronization

  • Predictable execution for running process

Disadvantages

  • Poor response time for interactive systems

  • Long processes can block shorter ones

  • Can lead to convoy effect

  • Not suitable for real-time systems

Comparison with Preemptive Scheduling

Feature

Non-Preemptive

Preemptive

CPU Control

Held until completion

Can be interrupted

Overhead

Low

High

Responsiveness

Low

High

Complexity

Low

High

Practical Observation

Non-preemptive scheduling is typically used in:

  • Batch systems

  • Systems where simplicity is preferred over responsiveness

It is not suitable for environments where tasks require immediate attention or strict deadlines.

16. What is cycle stealing?

Definition

Cycle stealing is a technique used in Direct Memory Access (DMA) where a DMA controller temporarily takes control of the system bus from the CPU to transfer data between memory and an I/O device, effectively “stealing” CPU cycles for data transfer.

Core Concept

In normal CPU operation, the processor continuously uses the system bus to fetch instructions and access memory. During DMA transfer using cycle stealing:

  • The DMA controller interrupts the CPU’s access to the bus

  • Performs a small data transfer (usually one word or byte)

  • Returns control back to the CPU

This process repeats, allowing DMA to transfer data gradually without completely halting CPU execution.

Working Mechanism

  1. CPU is executing instructions

  2. An I/O device requests DMA transfer

  3. DMA controller requests control of the system bus

  4. CPU completes its current instruction cycle

  5. DMA controller takes control of the bus

  6. Transfers one unit of data (memory ↔ I/O device)

  7. Returns control of the bus to CPU

  8. CPU resumes execution

This alternating access continues until the entire data transfer is complete.

Illustration

Time →

CPU  : █ █ █ █ █ █ █ █

DMA  :     ▓     ▓     ▓


Each DMA access temporarily interrupts CPU’s memory access, “stealing” cycles.

Comparison with Other DMA Modes

1. Burst Mode (Block Transfer)

  • DMA takes full control of bus

  • CPU is completely halted

  • Faster transfer

2. Cycle Stealing Mode

  • DMA transfers one unit at a time

  • CPU is only briefly paused

  • More balanced operation

3. Transparent Mode

  • DMA transfers only when CPU is idle

Advantages

  • Allows CPU and DMA to operate concurrently

  • Reduces CPU idle time compared to burst mode

  • Better system responsiveness

Disadvantages

  • Slows down CPU execution due to frequent interruptions

  • Increases overall execution time of CPU tasks

  • Requires careful bus arbitration

Use Case

Cycle stealing is useful when:

  • Continuous CPU operation is required

  • Moderate-speed data transfer is acceptable

  • System needs to balance CPU and I/O performance

Key Observation

Cycle stealing represents a trade-off:

  • It avoids completely stopping the CPU (like burst mode)

  • But introduces small delays repeatedly during execution

16. What is cycle stealing?

Definition

Cycle stealing is a technique used in Direct Memory Access (DMA) where a DMA controller temporarily takes control of the system bus from the CPU to transfer data between memory and an I/O device, effectively “stealing” CPU cycles for data transfer.

Core Concept

In normal CPU operation, the processor continuously uses the system bus to fetch instructions and access memory. During DMA transfer using cycle stealing:

  • The DMA controller interrupts the CPU’s access to the bus

  • Performs a small data transfer (usually one word or byte)

  • Returns control back to the CPU

This process repeats, allowing DMA to transfer data gradually without completely halting CPU execution.

Working Mechanism

  1. CPU is executing instructions

  2. An I/O device requests DMA transfer

  3. DMA controller requests control of the system bus

  4. CPU completes its current instruction cycle

  5. DMA controller takes control of the bus

  6. Transfers one unit of data (memory ↔ I/O device)

  7. Returns control of the bus to CPU

  8. CPU resumes execution

This alternating access continues until the entire data transfer is complete.

Illustration

Time →

CPU  : █ █ █ █ █ █ █ █

DMA  :     ▓     ▓     ▓


Each DMA access temporarily interrupts CPU’s memory access, “stealing” cycles.

Comparison with Other DMA Modes

1. Burst Mode (Block Transfer)

  • DMA takes full control of bus

  • CPU is completely halted

  • Faster transfer

2. Cycle Stealing Mode

  • DMA transfers one unit at a time

  • CPU is only briefly paused

  • More balanced operation

3. Transparent Mode

  • DMA transfers only when CPU is idle

Advantages

  • Allows CPU and DMA to operate concurrently

  • Reduces CPU idle time compared to burst mode

  • Better system responsiveness

Disadvantages

  • Slows down CPU execution due to frequent interruptions

  • Increases overall execution time of CPU tasks

  • Requires careful bus arbitration

Use Case

Cycle stealing is useful when:

  • Continuous CPU operation is required

  • Moderate-speed data transfer is acceptable

  • System needs to balance CPU and I/O performance

Key Observation

Cycle stealing represents a trade-off:

  • It avoids completely stopping the CPU (like burst mode)

  • But introduces small delays repeatedly during execution

17. What is Direct Memory Access (DMA)?

Definition

Direct Memory Access (DMA) is a data transfer technique in which an I/O device can directly read from or write to main memory without continuous involvement of the CPU, allowing faster and more efficient data transfer.

Core Concept

In normal I/O operations:

  • CPU controls every step of data transfer

  • Data moves through CPU registers

This creates overhead because CPU becomes a bottleneck.

In DMA:

  • A DMA controller takes over the transfer

  • Data moves directly between I/O device and memory

  • CPU is free to perform other tasks

Components Involved

  • CPU

  • DMA Controller

  • Main Memory

  • I/O Device

  • System Bus

The DMA controller acts as an intermediary that manages the transfer.

Working Mechanism

  1. CPU initializes DMA by providing:

    • Starting memory address

    • Direction of transfer (read/write)

    • Number of bytes to transfer

  2. DMA controller takes control of the system bus

  3. DMA performs data transfer directly:

    • From I/O device to memory, or

    • From memory to I/O device

  4. CPU is temporarily paused only when DMA needs the bus

  5. After completion, DMA sends an interrupt to CPU

Step Flow

CPU → Configure DMA → DMA transfers data → Interrupt CPU → CPU resumes control


Modes of DMA Transfer

1. Burst Mode (Block Transfer)

  • DMA transfers entire block at once

  • CPU is halted during transfer


2. Cycle Stealing Mode

  • DMA transfers one unit at a time

  • CPU is paused briefly


3. Transparent Mode

  • DMA transfers only when CPU is idle

  • No interruption to CPU


Example

Suppose data is being read from disk:

Without DMA:

  • Disk → CPU → Memory

With DMA:

  • Disk → Memory (direct transfer)

CPU only initiates and completes the process.

Advantages

  • Reduces CPU overhead

  • Faster data transfer

  • Improves system performance

  • Allows parallel operation of CPU and I/O

Disadvantages

  • Requires additional hardware (DMA controller)

  • Bus contention between CPU and DMA

  • Complex implementation

Use Cases

  • Disk data transfer

  • Network data transfer

  • Audio/video streaming

  • High-speed peripherals

Key Observation

DMA significantly improves system efficiency by offloading data transfer work from the CPU, allowing it to focus on computation while I/O operations proceed in parallel

19. What are disk scheduling algorithms?

Definition

Disk scheduling algorithms are techniques used by the operating system to determine the order in which disk I/O requests are serviced, with the objective of minimizing disk access time and improving overall system performance.

Core Concept

In systems with multiple processes, many disk I/O requests are generated and placed in a queue. Since disk operations involve mechanical movement of the read/write head, the order in which requests are serviced significantly affects performance.

The main cost in disk access is:

  • Seek time (movement of disk head)

  • Rotational latency

Disk scheduling algorithms primarily aim to reduce seek time by optimizing the movement of the disk head.

Problem Statement

Given:

  • Current head position

  • A queue of disk requests (track numbers)

Goal:

  • Decide the sequence of servicing requests to minimize total head movement

1. First Come First Serve (FCFS)

Concept

Requests are serviced in the order they arrive.

Algorithm

for each request in queue:

    move head to request

    service request


Example

Head = 50
Queue: 82, 170, 43, 140

Order:

50 → 82 → 170 → 43 → 140


Characteristics

  • Simple and fair

  • Poor performance due to large head movements

2. Shortest Seek Time First (SSTF)

Concept

Select the request closest to the current head position.

Algorithm

while queue not empty:

    find request with minimum distance from current head

    move head to that request

    remove request from queue


Example

Head = 50
Queue: 82, 170, 43, 140

Steps:

50 → 43 → 82 → 140 → 170


Characteristics

  • Reduces seek time

  • Can cause starvation for distant requests

3. SCAN (Elevator Algorithm)

Concept

Disk head moves in one direction servicing all requests, then reverses direction.

Algorithm

move head in one direction:

    service all requests in path

reverse direction


Example

Head = 50, direction = right
Queue: 43, 82, 140, 170

Order:

50 → 82 → 140 → 170 → (reverse) → 43


Characteristics

  • More efficient than SSTF

  • Provides better fairness

4. C-SCAN (Circular SCAN)

Concept

Head moves in one direction only. After reaching end, it jumps to beginning.

Algorithm

move head in one direction:

    service requests

jump to beginning

repeat


Example

50 → 82 → 140 → 170 → jump → 43


Characteristics

  • Uniform waiting time

  • Avoids bias toward middle tracks

5. LOOK

Concept

Similar to SCAN, but head only moves as far as the last request in that direction.

Example

50 → 82 → 140 → 170 → reverse → 43


Characteristics

  • Avoids unnecessary movement to disk ends

  • More efficient than SCAN

6. C-LOOK

Concept

Similar to C-SCAN, but head jumps between last and first request only.

Example

50 → 82 → 140 → 170 → jump → 43


Characteristics

  • Efficient and fair

  • Reduces unnecessary movement

Comparative Analysis

Algorithm

Seek Time

Starvation

Fairness

FCFS

High

No

High

SSTF

Low

Yes

Low

SCAN

Moderate

No

Good

C-SCAN

Moderate

No

Very Good

LOOK

Better

No

Good

C-LOOK

Best among SCAN types

No

Very Good

Key Observations

  • FCFS is simple but inefficient

  • SSTF improves performance but risks starvation

  • SCAN and its variants provide a balance between performance and fairness

  • LOOK and C-LOOK reduce unnecessary head movement

Practical Considerations

  • Modern systems may combine scheduling with caching

  • SSDs reduce the importance of seek time

  • Disk scheduling is most relevant for mechanical hard drives

Disk scheduling algorithms play a critical role in optimizing I/O performance by minimizing head movement and improving throughput.

20. What is FCFS disk scheduling?

Definition

FCFS (First Come First Serve) disk scheduling is a technique in which disk I/O requests are serviced in the exact order in which they arrive, without any reordering or optimization.

Core Concept

FCFS treats the disk request queue like a simple FIFO (First-In-First-Out) queue. The operating system does not attempt to optimize head movement; instead, it ensures fairness by serving requests strictly based on arrival time.

Working Mechanism

  1. Disk maintains a queue of pending requests

  2. The first request in the queue is selected

  3. Disk head moves to the requested track

  4. Request is serviced

  5. Next request in the queue is processed

This continues until all requests are completed.

Algorithm

current_head = initial_position


for each request in queue:

    move head from current_head to request

    total_seek += abs(current_head - request)

    current_head = request


Example

Initial head position:

50


Request queue:

82, 170, 43, 140, 24, 16, 190


Execution order (same as arrival):

50 → 82 → 170 → 43 → 140 → 24 → 16 → 190


Seek Time Calculation

Calculate total head movement:

|50 - 82| = 32

|82 - 170| = 88

|170 - 43| = 127

|43 - 140| = 97

|140 - 24| = 116

|24 - 16| = 8

|16 - 190| = 174


Total seek movement:

32 + 88 + 127 + 97 + 116 + 8 + 174 = 642


This large value shows inefficiency.

Characteristics

  • Requests are handled strictly in arrival order

  • No reordering of requests

  • Simple queue-based implementation

Advantages

  • Simple and easy to implement

  • Fair (no starvation)

  • Predictable behavior

Disadvantages

  • High average seek time

  • Large head movement

  • Poor performance for large request queues

  • Does not consider disk geometry

Problem: Convoy Effect

A request requiring long seek time can delay all other requests behind it.

Example:

  • If first request is far away, all others must wait

Use Case

  • Suitable for systems where fairness is more important than performance

  • Not ideal for high-performance disk systems

FCFS disk scheduling is straightforward but inefficient, as it does not optimize disk head movement and can lead to significant delays in servicing requests.

20. What is FCFS disk scheduling?

Definition

FCFS (First Come First Serve) disk scheduling is a technique in which disk I/O requests are serviced in the exact order in which they arrive, without any reordering or optimization.

Core Concept

FCFS treats the disk request queue like a simple FIFO (First-In-First-Out) queue. The operating system does not attempt to optimize head movement; instead, it ensures fairness by serving requests strictly based on arrival time.

Working Mechanism

  1. Disk maintains a queue of pending requests

  2. The first request in the queue is selected

  3. Disk head moves to the requested track

  4. Request is serviced

  5. Next request in the queue is processed

This continues until all requests are completed.

Algorithm

current_head = initial_position


for each request in queue:

    move head from current_head to request

    total_seek += abs(current_head - request)

    current_head = request


Example

Initial head position:

50


Request queue:

82, 170, 43, 140, 24, 16, 190


Execution order (same as arrival):

50 → 82 → 170 → 43 → 140 → 24 → 16 → 190


Seek Time Calculation

Calculate total head movement:

|50 - 82| = 32

|82 - 170| = 88

|170 - 43| = 127

|43 - 140| = 97

|140 - 24| = 116

|24 - 16| = 8

|16 - 190| = 174


Total seek movement:

32 + 88 + 127 + 97 + 116 + 8 + 174 = 642


This large value shows inefficiency.

Characteristics

  • Requests are handled strictly in arrival order

  • No reordering of requests

  • Simple queue-based implementation

Advantages

  • Simple and easy to implement

  • Fair (no starvation)

  • Predictable behavior

Disadvantages

  • High average seek time

  • Large head movement

  • Poor performance for large request queues

  • Does not consider disk geometry

Problem: Convoy Effect

A request requiring long seek time can delay all other requests behind it.

Example:

  • If first request is far away, all others must wait

Use Case

  • Suitable for systems where fairness is more important than performance

  • Not ideal for high-performance disk systems

FCFS disk scheduling is straightforward but inefficient, as it does not optimize disk head movement and can lead to significant delays in servicing requests.

22. What is C-SCAN disk scheduling?

Definition

C-SCAN (Circular SCAN) disk scheduling is a disk scheduling algorithm in which the disk head moves in one direction only, servicing all requests along the way, and after reaching the end of the disk, it jumps back to the beginning without servicing requests during the return.

Core Concept

C-SCAN treats the disk as a circular structure rather than a linear one. Unlike SCAN, which services requests in both directions, C-SCAN provides service in only one direction, ensuring more uniform waiting time for all requests.

The idea is to avoid giving preferential treatment to requests in the middle of the disk.

Working Mechanism

  1. The disk head starts at a given position

  2. It moves in a fixed direction (usually toward higher track numbers)

  3. Services all requests encountered along the path

  4. Upon reaching the end of the disk:

    • The head jumps back to the beginning (track 0)

    • No requests are serviced during this jump

  5. The process repeats

Algorithm

sort requests


if direction == right:

    service all requests greater than head in ascending order

    go to end of disk

    jump to beginning (0)

    service remaining requests in ascending order


Example

Initial head position:

50


Request queue:

82, 170, 43, 140, 24, 16, 190


Sorted:

16, 24, 43, 82, 140, 170, 190


Execution order (moving right):

50 → 82 → 140 → 170 → 190 → (end) → jump → 0 → 16 → 24 → 43


Seek Time Calculation

|50 - 82| = 32

|82 - 140| = 58

|140 - 170| = 30

|170 - 190| = 20

|190 - 199| = 9   (move to end)

|199 - 0| = 199   (jump)

|0 - 16| = 16

|16 - 24| = 8

|24 - 43| = 19


Total movement:

= 32 + 58 + 30 + 20 + 9 + 199 + 16 + 8 + 19 = 391


Key Characteristics

  • Head moves in one direction only

  • Services requests sequentially in that direction

  • Performs a circular jump back to the start

  • Does not service requests during the return

Advantages

  • Provides uniform waiting time for all requests

  • Avoids bias toward middle tracks

  • Fairer than SCAN

  • Suitable for systems with heavy load

Disadvantages

  • Extra movement due to jump from end to beginning

  • Slightly higher seek time compared to LOOK/C-LOOK

  • Inefficient if few requests are near the beginning

Comparison with SCAN

Feature

SCAN

C-SCAN

Direction

Both directions

One direction only

Return Path

Services requests

Does not service

Fairness

Moderate

High

Waiting Time

Uneven

Uniform

Key Observation

C-SCAN improves fairness by ensuring that all requests are treated equally in terms of waiting time, at the cost of additional head movement during the return jump.

23. What is LOOK disk scheduling?

Definition

LOOK disk scheduling is an improved version of the SCAN algorithm in which the disk head moves in a given direction servicing requests only up to the last request in that direction, and then reverses direction, instead of going all the way to the physical end of the disk.

Core Concept

In SCAN, the disk head always travels to the extreme ends of the disk even if there are no requests there. LOOK optimizes this behavior by making the head “look ahead” and stop at the last pending request, avoiding unnecessary movement.

This reduces total seek time and improves efficiency.

Working Mechanism

  1. The disk head starts at its current position

  2. It moves in a chosen direction (left or right)

  3. Services all requests in that direction in sorted order

  4. Stops at the last request in that direction (not at disk boundary)

  5. Reverses direction

  6. Services remaining requests in the opposite direction

Algorithm

sort requests


if direction == right:

    service all requests greater than head in ascending order

    reverse direction at last request

    service remaining requests in descending order

else:

    service all requests less than head in descending order

    reverse direction at last request

    service remaining requests in ascending order


Example

Initial head position:

50


Request queue:

82, 170, 43, 140, 24, 16, 190


Sorted:

16, 24, 43, 82, 140, 170, 190


Assume direction = right

Execution order:

50 → 82 → 140 → 170 → 190 → reverse → 43 → 24 → 16


Note that the head does not go to the disk end (e.g., 199) because there are no requests beyond 190.

Seek Time Calculation

|50 - 82| = 32

|82 - 140| = 58

|140 - 170| = 30

|170 - 190| = 20

|190 - 43| = 147

|43 - 24| = 19

|24 - 16| = 8


Total movement:

= 32 + 58 + 30 + 20 + 147 + 19 + 8 = 314


This is less than SCAN because unnecessary travel to disk boundaries is avoided.

Key Characteristics

  • Head moves in a direction servicing requests

  • Stops at last request instead of disk end

  • Reverses direction afterward

  • More efficient than SCAN

Advantages

  • Reduces unnecessary head movement

  • Lower seek time than SCAN

  • Better overall performance

  • Maintains fairness

Disadvantages

  • Slightly more complex than SCAN

  • Still not optimal compared to C-LOOK in some cases

Comparison with SCAN

Feature

SCAN

LOOK

Movement

Goes to disk ends

Stops at last request

Efficiency

Lower

Higher

Seek Time

More

Less

Key Observation

LOOK improves disk scheduling by eliminating unnecessary movement to the disk boundaries, making it a more efficient and practical version of the SCAN algorithm while maintaining fairness and predictability.

24. What is C-LOOK disk scheduling?

Definition

C-LOOK (Circular LOOK) disk scheduling is an advanced disk scheduling algorithm in which the disk head moves in one direction servicing requests up to the last request in that direction, and then jumps directly to the first request on the other end without servicing any requests during the return.

Core Concept

C-LOOK is an optimized version of C-SCAN:

  • It avoids unnecessary movement to the physical ends of the disk

  • It only considers the range of actual pending requests

The disk is treated as circular, but instead of jumping from the physical end (like C-SCAN), it jumps between the last and first requests in the queue.

Working Mechanism

  1. Disk requests are sorted

  2. Head moves in one direction (usually toward higher track numbers)

  3. Services all requests in that direction

  4. Stops at the last request (not disk end)

  5. Jumps to the first request in the opposite direction

  6. Continues servicing in the same direction

Algorithm

sort requests


if direction == right:

    service all requests greater than head in ascending order

    jump to smallest request

    service remaining requests in ascending order


Example

Initial head position:

50


Request queue:

82, 170, 43, 140, 24, 16, 190


Sorted:

16, 24, 43, 82, 140, 170, 190


Execution order:

50 → 82 → 140 → 170 → 190 → jump → 16 → 24 → 43


Seek Time Calculation

|50 - 82| = 32

|82 - 140| = 58

|140 - 170| = 30

|170 - 190| = 20

|190 - 16| = 174   (jump)

|16 - 24| = 8

|24 - 43| = 19


Total movement:

= 32 + 58 + 30 + 20 + 174 + 8 + 19 = 341


Key Characteristics

  • Head moves in one direction only

  • Stops at last request, not disk end

  • Performs a circular jump to the first request

  • Services requests in a uniform manner

Advantages

  • Reduces unnecessary movement compared to C-SCAN

  • Provides uniform waiting time

  • More efficient than SCAN and C-SCAN

  • Fair to all requests

Disadvantages

  • Jump still adds overhead

  • Slightly complex implementation

  • Not optimal for all workloads

Comparison with Related Algorithms

Algorithm

Movement

Boundary Handling

SCAN

Both directions

Goes to disk ends

LOOK

Both directions

Stops at last request

C-SCAN

One direction

Goes to disk ends

C-LOOK

One direction

Stops at last request

Key Observation

C-LOOK combines the advantages of LOOK and C-SCAN by minimizing unnecessary head movement while still maintaining uniform service order, making it one of the most efficient disk scheduling algorithms for practical systems.

25. What is RAID in operating systems?

Definition

RAID (Redundant Array of Independent Disks) is a storage technology that combines multiple physical disks into a single logical unit to achieve improved performance, data redundancy, or both.

Core Concept

RAID works by distributing data across multiple disks using techniques such as:

  • Striping (splitting data across disks)

  • Mirroring (duplicating data)

  • Parity (storing extra information for recovery)

This allows systems to:

  • Increase data transfer speed

  • Protect against disk failures

  • Improve reliability

Why RAID is Used

Single disks have limitations:

  • Limited speed

  • High risk of failure

  • No fault tolerance

RAID addresses these by:

  • Parallelizing disk operations

  • Providing backup mechanisms

Key Techniques Used in RAID

1. Striping

Data is divided into blocks and distributed across multiple disks.

Example:

Disk1: A1  A4

Disk2: A2  A5

Disk3: A3  A6


This improves performance because multiple disks can be accessed simultaneously.


2. Mirroring

Each piece of data is duplicated on another disk.

Disk1: A B C

Disk2: A B C (copy)


Provides high reliability.


3. Parity

Extra data is stored to reconstruct lost data.

A ⊕ B ⊕ C = Parity


If one disk fails, data can be recovered using parity.


RAID Levels

RAID 0 (Striping)

  • Data split across disks

  • No redundancy

Advantages:

  • High performance

Disadvantages:

  • No fault tolerance


RAID 1 (Mirroring)

  • Data duplicated on two disks

Advantages:

  • High reliability

Disadvantages:

  • Double storage cost


RAID 5 (Striping with Distributed Parity)

  • Data + parity distributed across disks

Advantages:

  • Good balance of performance and reliability

Disadvantages:

  • Slower writes due to parity calculation


RAID 6 (Double Parity)

  • Can tolerate two disk failures

Advantages:

  • Higher fault tolerance

Disadvantages:

  • More overhead


RAID 10 (1+0)

  • Combination of striping and mirroring

Advantages:

  • High performance + reliability

Disadvantages:

  • Expensive


Working Mechanism

  1. Data is divided into blocks

  2. Blocks are distributed across disks

  3. Depending on RAID level:

    • Data may be mirrored

    • Parity may be calculated

  4. On disk failure:

    • Data is reconstructed using redundancy


Example

In RAID 5 with 3 disks:

Disk1: Data1   Data4   Parity

Disk2: Data2   Parity  Data5

Disk3: Parity  Data3   Data6


If one disk fails:

  • Missing data is reconstructed using parity


Advantages

  • Improved performance through parallel access

  • Fault tolerance and data protection

  • Increased storage capacity


Disadvantages

  • Higher cost (multiple disks required)

  • Complex implementation

  • Write overhead (especially with parity)


Failure Handling

When a disk fails:

  • RAID continues operating (except RAID 0)

  • Data is rebuilt using:

    • Mirror copy (RAID 1)

    • Parity (RAID 5/6)


Practical Use

  • Servers and data centers

  • Databases

  • Cloud storage systems

RAID is widely used in systems where data reliability and performance are critical.

25. What is RAID in operating systems?

Definition

RAID (Redundant Array of Independent Disks) is a storage technology that combines multiple physical disks into a single logical unit to achieve improved performance, data redundancy, or both.

Core Concept

RAID works by distributing data across multiple disks using techniques such as:

  • Striping (splitting data across disks)

  • Mirroring (duplicating data)

  • Parity (storing extra information for recovery)

This allows systems to:

  • Increase data transfer speed

  • Protect against disk failures

  • Improve reliability

Why RAID is Used

Single disks have limitations:

  • Limited speed

  • High risk of failure

  • No fault tolerance

RAID addresses these by:

  • Parallelizing disk operations

  • Providing backup mechanisms

Key Techniques Used in RAID

1. Striping

Data is divided into blocks and distributed across multiple disks.

Example:

Disk1: A1  A4

Disk2: A2  A5

Disk3: A3  A6


This improves performance because multiple disks can be accessed simultaneously.


2. Mirroring

Each piece of data is duplicated on another disk.

Disk1: A B C

Disk2: A B C (copy)


Provides high reliability.


3. Parity

Extra data is stored to reconstruct lost data.

A ⊕ B ⊕ C = Parity


If one disk fails, data can be recovered using parity.


RAID Levels

RAID 0 (Striping)

  • Data split across disks

  • No redundancy

Advantages:

  • High performance

Disadvantages:

  • No fault tolerance


RAID 1 (Mirroring)

  • Data duplicated on two disks

Advantages:

  • High reliability

Disadvantages:

  • Double storage cost


RAID 5 (Striping with Distributed Parity)

  • Data + parity distributed across disks

Advantages:

  • Good balance of performance and reliability

Disadvantages:

  • Slower writes due to parity calculation


RAID 6 (Double Parity)

  • Can tolerate two disk failures

Advantages:

  • Higher fault tolerance

Disadvantages:

  • More overhead


RAID 10 (1+0)

  • Combination of striping and mirroring

Advantages:

  • High performance + reliability

Disadvantages:

  • Expensive


Working Mechanism

  1. Data is divided into blocks

  2. Blocks are distributed across disks

  3. Depending on RAID level:

    • Data may be mirrored

    • Parity may be calculated

  4. On disk failure:

    • Data is reconstructed using redundancy


Example

In RAID 5 with 3 disks:

Disk1: Data1   Data4   Parity

Disk2: Data2   Parity  Data5

Disk3: Parity  Data3   Data6


If one disk fails:

  • Missing data is reconstructed using parity


Advantages

  • Improved performance through parallel access

  • Fault tolerance and data protection

  • Increased storage capacity


Disadvantages

  • Higher cost (multiple disks required)

  • Complex implementation

  • Write overhead (especially with parity)


Failure Handling

When a disk fails:

  • RAID continues operating (except RAID 0)

  • Data is rebuilt using:

    • Mirror copy (RAID 1)

    • Parity (RAID 5/6)


Practical Use

  • Servers and data centers

  • Databases

  • Cloud storage systems

RAID is widely used in systems where data reliability and performance are critical.

26. What are different RAID levels?

Definition

RAID levels are different configurations of combining multiple disks using techniques like striping, mirroring, and parity to achieve specific goals such as performance, fault tolerance, and storage efficiency.

Core Concept

Each RAID level defines how data is distributed across disks, how redundancy is maintained, and how failures are handled. Different levels are designed to balance speed, reliability, and cost.

RAID 0 (Striping)

Concept

Data is split into blocks and distributed across multiple disks.

Working

Disk1: A1  A4

Disk2: A2  A5

Disk3: A3  A6


Characteristics

No redundancy, high performance, full storage utilization.

Advantages

Fast read and write operations, maximum storage efficiency.

Disadvantages

No fault tolerance, failure of one disk results in total data loss.

RAID 1 (Mirroring)

Concept

Each disk has an exact copy on another disk.

Working

Disk1: A B C

Disk2: A B C


Characteristics

High redundancy, data duplication.

Advantages

High reliability, simple recovery.

Disadvantages

Only 50% storage efficiency, higher cost.

RAID 2 (Bit-Level Striping with Hamming Code)

Concept

Data is striped at the bit level with error correction using Hamming code.

Characteristics

Multiple disks used for error correction, rarely used in practice.

Disadvantages

Complex and inefficient compared to modern RAID levels.

RAID 3 (Byte-Level Striping with Dedicated Parity)

Concept

Data is striped across disks with one disk dedicated to parity.

Working

Disk1: Data

Disk2: Data

Disk3: Parity


Characteristics

High data transfer rate, parity disk bottleneck.

RAID 4 (Block-Level Striping with Dedicated Parity)

Concept

Data is striped in blocks with one dedicated parity disk.

Characteristics

Independent reads possible, parity disk becomes bottleneck for writes.

RAID 5 (Block-Level Striping with Distributed Parity)

Concept

Data and parity are distributed across all disks.

Working

Disk1: Data1   Data4   Parity

Disk2: Data2   Parity  Data5

Disk3: Parity  Data3   Data6


Characteristics

Balanced performance and reliability, no single parity bottleneck.

Advantages

Fault tolerance (can handle one disk failure), efficient storage usage.

Disadvantages

Slower write operations due to parity calculations.

RAID 6 (Block-Level Striping with Double Parity)

Concept

Similar to RAID 5 but uses two parity blocks.

Characteristics

Can tolerate failure of two disks.

Advantages

Higher reliability.

Disadvantages

More storage overhead and slower writes.

RAID 10 (RAID 1 + RAID 0)

Concept

Combination of mirroring and striping.

Working

Mirrored pairs → then striped


Characteristics

High performance and high reliability.

Advantages

Fast read/write operations with fault tolerance.

Disadvantages

Requires more disks and is expensive.

Comparison

RAID Level

Technique

Fault Tolerance

Performance

Storage Efficiency

RAID 0

Striping

None

Very High

100%

RAID 1

Mirroring

High

Moderate

50%

RAID 2

Bit + ECC

High

Low

Low

RAID 3

Byte + Parity

Moderate

High

Moderate

RAID 4

Block + Parity

Moderate

Moderate

Moderate

RAID 5

Block + Distributed Parity

Moderate

High

High

RAID 6

Double Parity

High

Moderate

Moderate

RAID 10

Striping + Mirroring

High

Very High

Low

27. What is journaling in file systems?

Definition

Journaling is a file system technique in which changes to the file system are first recorded in a special log (called a journal) before being applied to the actual disk structures, ensuring consistency and enabling recovery in case of system crashes or power failures.

Core Concept

File systems perform multiple steps to complete operations like file creation, deletion, or modification. If a crash occurs in the middle of these steps, the file system can become inconsistent.

Journaling solves this by:

  • Recording intended changes in a log before execution

  • Ensuring that operations can be replayed or rolled back after a crash

The journal acts as a transaction log that guarantees atomicity.

Working Mechanism

  1. A file operation is initiated (e.g., write, delete)

  2. The OS creates a journal entry describing the changes

  3. The journal entry is written to disk

  4. The actual file system structures are updated

  5. Once completed, the journal entry is marked as committed or cleared

If a crash occurs:

  • The system checks the journal on reboot

  • Incomplete operations are either completed or rolled back

Example

Suppose a file is being written:

Without journaling:

  • Update metadata

  • Update data blocks

  • Crash occurs → inconsistent state

With journaling:

Step 1: Write intent to journal

Step 2: Perform actual write

Step 3: Mark transaction complete


If crash occurs after Step 1:

  • Operation is ignored

If crash occurs after Step 2 but before completion:

  • Operation is completed using journal

Types of Journaling

1. Metadata Journaling

Only metadata (file structure, inodes) is logged.

  • Faster

  • Less overhead

  • Data itself is not protected


2. Full Journaling (Data + Metadata)

Both file data and metadata are logged.

  • Highest reliability

  • More overhead


3. Ordered Journaling

Metadata is journaled, and data is written before metadata updates.

  • Balance between performance and safety

Journal Structure

The journal typically contains:

  • Transaction ID

  • Operation details

  • Affected blocks

  • Commit marker

Advantages

  • Prevents file system corruption

  • Faster recovery after crashes

  • Ensures consistency

  • Avoids full disk scan (fsck)

Disadvantages

  • Additional write overhead

  • Increased disk usage

  • Slight performance penalty

Real-World File Systems Using Journaling

  • ext3

  • ext4

  • NTFS

28. What is inode in file systems?

Definition

An inode (index node) is a data structure used in file systems to store metadata about a file or directory, excluding its name and actual data.

Core Concept

In Unix-like file systems, files are not directly accessed by their names. Instead:

  • The file name maps to an inode number

  • The inode stores all essential information about the file

  • The actual data is stored separately in data blocks

So, a file is essentially:

File Name → Inode → Data Blocks


What Information Does an Inode Store

An inode contains metadata such as:

  • File type (regular file, directory, etc.)

  • File size

  • Permissions (read, write, execute)

  • Owner user ID (UID)

  • Group ID (GID)

  • Timestamps:

    • Creation time

    • Modification time

    • Access time

  • Number of links (hard links)

  • Pointers to data blocks

What an Inode Does NOT Store

  • File name

  • File path

File names are stored in directory structures, which map names to inode numbers.

Structure of an Inode

An inode typically contains:

struct inode {

    int file_size;

    int owner_id;

    int permissions;

    int timestamps;

    int block_pointers[...];

}


Data Block Pointers

Inodes use pointers to locate file data:

  • Direct pointers → point directly to data blocks

  • Indirect pointers → point to blocks containing more pointers

Types of Pointers

  1. Direct pointers

  2. Single indirect

  3. Double indirect

  4. Triple indirect

This structure allows efficient storage of both small and large files.

Example

Suppose a file "file.txt" exists:

Directory:

file.txt → inode 25


Inode 25:

size = 1024 bytes

blocks = [101, 102, 103]


Data Blocks:

101 → data

102 → data

103 → data


Working Mechanism

  1. User accesses file by name

  2. OS looks up directory entry

  3. Retrieves inode number

  4. Reads inode

  5. Uses block pointers to access data

Importance of Inodes

  • Enable efficient file management

  • Separate metadata from file name

  • Allow multiple file names (hard links) to point to same inode

Hard Link Example

file1 → inode 10

file2 → inode 10


Both names refer to the same file data.

Limitation

Number of inodes is fixed when file system is created:

  • If inodes run out → cannot create new files

  • Even if disk space is available

Advantages

  • Efficient metadata storage

  • Supports large files

  • Enables linking

Disadvantages

  • Fixed number of inodes

  • Extra lookup step (name → inode → data)

29. What is the difference between hard link and soft link?

Definition

A hard link is a directory entry that points directly to the same inode as the original file, meaning it is essentially another name for the same file data.
A soft link (symbolic link) is a special file that contains a path to another file, acting as a pointer or shortcut.

Core Concept

Hard links and soft links differ in how they reference files:

  • Hard link → points to the same inode (same physical data)

  • Soft link → points to the file name/path (indirect reference)

Working Mechanism

Hard Link

file1 → inode 10

file2 → inode 10


  • Both file1 and file2 refer to the same inode

  • No distinction between original and link

  • Data is shared

Soft Link

file1 → inode 10

link → path → file1


  • The link stores the path of file1

  • OS resolves path to find actual file

Key Differences

Feature

Hard Link

Soft Link

Reference

Same inode

Path to file

Data Sharing

Yes

No

Dependency

Independent of original name

Depends on original file

Across File Systems

Not allowed

Allowed

Link Count

Increases inode count

No effect on inode

Deletion Behavior

File exists until all links removed

Becomes broken if original deleted

Example

Hard Link Example

ln file1 file2


  • file2 is another name for file1

  • Deleting file1 does not remove data if file2 exists


Soft Link Example

ln -s file1 link


  • link points to file1

  • If file1 is deleted, link becomes invalid

Behavior on Deletion

Hard Link

file1 deleted → inode still exists (file2 still valid)


Data remains until all hard links are removed.


Soft Link

file1 deleted → link becomes broken


Link points to non-existent path.

Constraints

Hard Link Limitations

  • Cannot link directories (to avoid loops)

  • Cannot span across different file systems

Soft Link Flexibility

  • Can link directories

  • Can span across file systems

Storage

  • Hard link → no extra space (just directory entry)

  • Soft link → stores path (requires additional space)

30. What is file system mounting?

Definition

File system mounting is the process by which the operating system attaches a file system (on a disk, partition, or device) to a specific directory in the existing directory tree, making its contents accessible to users and applications.

Core Concept

In many operating systems (especially Unix-like systems), there is a single unified directory structure. Different storage devices (hard disks, USB drives, partitions) are not accessed separately; instead, they are integrated into this single hierarchy.

Mounting allows a file system to become part of this hierarchy at a mount point.

Mount Point

A mount point is an existing directory where the new file system is attached.

Example:

/home

/mnt

/media/usb


After mounting, the contents of the new file system appear inside that directory.

Working Mechanism

  1. The OS identifies the file system on a device (e.g., disk partition)

  2. It verifies the file system type (e.g., ext4, NTFS)

  3. The file system is attached to a mount point

  4. The OS updates its internal structures

  5. Users can now access files through that directory

Example

Before mounting:

/mnt → empty


After mounting a USB drive:

/mnt → file1.txt, file2.txt


These files actually reside on the USB device but appear under /mnt.

Command Example (Linux)

mount /dev/sdb1 /mnt


  • /dev/sdb1 → device

  • /mnt → mount point

Unmounting

To safely detach a file system:

umount /mnt


This ensures:

  • All data is written properly

  • No corruption occurs

Types of Mounting

1. Manual Mounting

User explicitly mounts a device using commands.

2. Automatic Mounting

OS mounts devices automatically (e.g., USB drives).

3. Remote Mounting

File systems over network (e.g., NFS) are mounted.

Important Concepts

1. Mount Table

OS maintains a table of:

  • Mounted file systems

  • Their mount points

2. Root File System

The base file system / is mounted at boot time.

3. Overlay Behavior

If a directory already contains files:

  • They become hidden after mounting

  • Original contents reappear after unmounting

Example Scenario

Before mount:

/mnt → local_file


After mount:

/mnt → usb_file


local_file is hidden until unmounted.

Advantages

  • Provides unified file system view

  • Allows flexible use of storage devices

  • Enables integration of local and remote storage

Disadvantages

  • Incorrect unmounting may cause data loss

  • Requires proper permissions and management

31. What is a file descriptor?

Definition

A file descriptor is a non-negative integer used by the operating system to uniquely identify an open file or I/O resource within a process.

Core Concept

When a process opens a file, the operating system does not directly expose the file structure. Instead, it returns a file descriptor (FD), which acts as a handle or reference to that open file.

The process then uses this file descriptor for all subsequent operations such as:

  • Reading

  • Writing

  • Closing

Working Mechanism

  1. A process requests to open a file

  2. The OS locates the file and creates an entry in the system-wide open file table

  3. The OS assigns a file descriptor (integer) to the process

  4. The process uses this file descriptor for I/O operations

Example

int fd = open("file.txt", O_RDONLY);


  • fd is the file descriptor returned by the OS

  • It may be 3, 4, 5, etc.

Reading from file:

read(fd, buffer, size);


Closing file:

close(fd);


File Descriptor Table

Each process maintains a file descriptor table, which maps file descriptors to open file entries.

Process FD Table:

0 → stdin

1 → stdout

2 → stderr

3 → file.txt


Standard File Descriptors

By default, every process has three file descriptors:

  • 0 → Standard Input (stdin)

  • 1 → Standard Output (stdout)

  • 2 → Standard Error (stderr)

Relationship with Open File Table

The OS maintains a system-wide structure:

Process → FD Table → Open File Table → Inode → Data Blocks


  • FD table → per process

  • Open file table → shared across system

  • Inode → actual file metadata

Multiple File Descriptors

A single file can have multiple file descriptors:

fd1 → file.txt

fd2 → file.txt


This can happen due to:

  • Multiple opens

  • Forked processes

Advantages

  • Provides abstraction for file access

  • Enables uniform handling of files, devices, sockets

  • Simplifies I/O operations

Limitations

  • Limited number of file descriptors per process

  • Must be properly closed to avoid resource leaks

32. What is memory protection?

Definition

Memory protection is a mechanism used by the operating system to control and restrict access to memory regions, ensuring that a process can only access the memory allocated to it and cannot interfere with other processes or the operating system.

Core Concept

In a multitasking system, multiple processes run simultaneously and share the main memory. Without protection:

  • One process could overwrite another process’s data

  • A faulty program could crash the entire system

Memory protection enforces isolation so that each process operates within its own safe memory space.

Objectives

  • Prevent unauthorized memory access

  • Ensure process isolation

  • Protect OS kernel from user programs

  • Maintain system stability and security

Working Mechanism

When a process tries to access memory:

  1. CPU generates a logical (virtual) address

  2. Memory Management Unit (MMU) translates it to a physical address

  3. Access permissions are checked

  4. If access is valid → operation proceeds

  5. If invalid → trap occurs (segmentation fault or exception)

Hardware Support

Memory protection is implemented using hardware features such as:

1. Base and Limit Registers

  • Base register → starting address of process memory

  • Limit register → size of allocated memory

Check:

if (address >= base AND address < base + limit)

    allow access

else

    trap (error)



2. Paging with Protection Bits

Each page has associated protection bits:

  • Read (R)

  • Write (W)

  • Execute (X)

If a process violates permissions:

  • Hardware raises an exception


3. Segmentation

Each segment has:

  • Base

  • Limit

  • Access permissions

Access outside segment → fault

Example

Suppose a process has memory range:

Base = 1000

Limit = 500

Valid range: 1000–1499


If process accesses address 1600:

  • Outside range

  • Protection fault occurs

Types of Violations

  • Accessing another process’s memory

  • Writing to read-only memory

  • Executing non-executable memory

  • Accessing kernel memory in user mode

Role of User Mode and Kernel Mode

  • User mode → restricted access

  • Kernel mode → full access

Memory protection ensures:

  • User programs cannot access kernel memory

Advantages

  • Prevents system crashes

  • Ensures data integrity

  • Enhances security

  • Enables safe multitasking

Disadvantages

  • Adds overhead due to checks

  • Requires hardware support

33. What is kernel mode and user mode?

Definition

Kernel mode and user mode are two distinct execution modes of a CPU that define the level of access a process has to system resources and hardware.

  • Kernel mode allows full access to all system resources

  • User mode restricts access to prevent unsafe operations

Core Concept

Modern operating systems enforce a separation between normal applications and critical system components. This separation is implemented using two modes:

  • User mode → for application programs

  • Kernel mode → for operating system core

This ensures that user programs cannot directly perform sensitive operations such as:

  • Accessing hardware

  • Modifying memory management structures

  • Executing privileged instructions

Privileged Instructions

Certain instructions can only be executed in kernel mode, such as:

  • I/O operations

  • Memory management updates

  • Interrupt control

  • Device access

If a user-mode program tries to execute these, the CPU raises an exception.

Working Mechanism

  1. A user program runs in user mode

  2. It requests a service (e.g., file read)

  3. A system call is made

  4. CPU switches to kernel mode

  5. OS performs the requested operation

  6. CPU switches back to user mode

Mode Switching

Switching between modes occurs through:

  • System calls

  • Interrupts

  • Exceptions

Example flow:

User Mode → System Call → Kernel Mode → Operation → Return → User Mode


Example

When a program executes:

read(fd, buffer, size);


  • The read() call triggers a system call

  • Control transfers to kernel mode

  • OS reads data from disk

  • Returns result to user mode

Memory Access

  • User mode:

    • Can only access its own memory

    • Cannot access kernel memory

  • Kernel mode:

    • Can access all memory

    • Can manipulate hardware

Key Differences

Feature

User Mode

Kernel Mode

Access Level

Restricted

Full access

Execution

Applications

OS core

Privileged Instructions

Not allowed

Allowed

Memory Access

Limited

Full

Risk

Safe

Critical

Importance

This separation provides:

  • System security

  • Stability

  • Protection from faulty programs

If all programs ran in kernel mode:

  • A single bug could crash the entire system

Example Scenario

A malicious program in user mode:

  • Cannot directly modify system files

  • Cannot access hardware

It must go through controlled OS interfaces.

34. What is system call interface?

Definition

The system call interface is the mechanism through which user-level programs request services from the operating system kernel. It acts as a controlled gateway between user mode and kernel mode.

Core Concept

User programs cannot directly access hardware or critical system resources. Instead, they must request the operating system to perform such operations on their behalf.

The system call interface provides:

  • A set of predefined functions

  • A safe way to transition from user mode to kernel mode

It ensures that all sensitive operations are handled securely by the OS.

Role of System Call Interface

The interface acts as:

  • A bridge between applications and kernel

  • A protection boundary

  • An abstraction layer hiding hardware complexity

Working Mechanism

  1. A user program invokes a system call (e.g., read, write)

  2. The call is translated into a system call number

  3. Arguments are passed via registers or memory

  4. A special instruction (trap/interrupt) is executed

  5. CPU switches from user mode to kernel mode

  6. Kernel executes the requested service

  7. Result is returned to user program

  8. CPU switches back to user mode

Execution Flow

User Program → System Call → Trap → Kernel Mode → Execute → Return → User Mode


Example

In C:

int fd = open("file.txt", O_RDONLY);

read(fd, buffer, size);


Internally:

  • open() and read() invoke system calls

  • Control is transferred to kernel

  • OS performs file operations

System Call Table

The OS maintains a table:

System Call Number → Function Handler


Example:

0 → read

1 → write

2 → open

3 → close


When a system call is invoked:

  • The number is used to locate the corresponding kernel function

Types of System Calls

1. Process Control

  • fork(), exit(), wait()

2. File Management

  • open(), read(), write(), close()

3. Device Management

  • ioctl(), read/write devices

4. Information Maintenance

  • getpid(), time()

5. Communication

  • pipe(), shared memory

Example Flow (Detailed)

User → read()

    ↓

Trap instruction

    ↓

Kernel receives control

    ↓

Kernel executes file read

    ↓

Data returned

    ↓

User program resumes


Advantages

  • Provides controlled access to kernel

  • Ensures system security

  • Abstracts hardware complexity

  • Standard interface for applications

Overhead

  • Mode switching cost

  • Context switching overhead

  • Parameter passing overhead

34. What is system call interface?

Definition

The system call interface is the mechanism through which user-level programs request services from the operating system kernel. It acts as a controlled gateway between user mode and kernel mode.

Core Concept

User programs cannot directly access hardware or critical system resources. Instead, they must request the operating system to perform such operations on their behalf.

The system call interface provides:

  • A set of predefined functions

  • A safe way to transition from user mode to kernel mode

It ensures that all sensitive operations are handled securely by the OS.

Role of System Call Interface

The interface acts as:

  • A bridge between applications and kernel

  • A protection boundary

  • An abstraction layer hiding hardware complexity

Working Mechanism

  1. A user program invokes a system call (e.g., read, write)

  2. The call is translated into a system call number

  3. Arguments are passed via registers or memory

  4. A special instruction (trap/interrupt) is executed

  5. CPU switches from user mode to kernel mode

  6. Kernel executes the requested service

  7. Result is returned to user program

  8. CPU switches back to user mode

Execution Flow

User Program → System Call → Trap → Kernel Mode → Execute → Return → User Mode


Example

In C:

int fd = open("file.txt", O_RDONLY);

read(fd, buffer, size);


Internally:

  • open() and read() invoke system calls

  • Control is transferred to kernel

  • OS performs file operations

System Call Table

The OS maintains a table:

System Call Number → Function Handler


Example:

0 → read

1 → write

2 → open

3 → close


When a system call is invoked:

  • The number is used to locate the corresponding kernel function

Types of System Calls

1. Process Control

  • fork(), exit(), wait()

2. File Management

  • open(), read(), write(), close()

3. Device Management

  • ioctl(), read/write devices

4. Information Maintenance

  • getpid(), time()

5. Communication

  • pipe(), shared memory

Example Flow (Detailed)

User → read()

    ↓

Trap instruction

    ↓

Kernel receives control

    ↓

Kernel executes file read

    ↓

Data returned

    ↓

User program resumes


Advantages

  • Provides controlled access to kernel

  • Ensures system security

  • Abstracts hardware complexity

  • Standard interface for applications

Overhead

  • Mode switching cost

  • Context switching overhead

  • Parameter passing overhead

35. What are types of system calls?

Definition

System calls can be categorized into different types based on the functionality they provide to user programs, allowing controlled interaction with the operating system for tasks such as process management, file handling, communication, and resource control.

Core Concept

System calls act as the interface between user programs and the kernel. To organize functionality, they are grouped into categories so that different types of operations can be handled efficiently and systematically.

1. Process Control System Calls

These system calls are used to create, manage, and terminate processes.

Operations

  • Create process

  • Terminate process

  • Load and execute programs

  • Wait for process completion

  • Allocate and free memory

Examples

fork();

exit();

wait();

exec();


Working

  • fork() creates a new process

  • exec() replaces process memory with a new program

  • wait() suspends execution until a child process finishes

2. File Management System Calls

These calls handle operations related to files and directories.

Operations

  • Create/delete files

  • Open/close files

  • Read/write files

  • Reposition within file

Examples

open();

read();

write();

close();

lseek();


Working

  • open() returns a file descriptor

  • read() and write() perform I/O

  • close() releases the file

3. Device Management System Calls

Used to control and interact with hardware devices.

Operations

  • Request/release devices

  • Read/write from devices

  • Get/set device attributes

Examples

ioctl();

read();

write();


Working

  • Devices are treated similarly to files

  • OS handles communication via drivers

4. Information Maintenance System Calls

Used to get or set system and process information.

Operations

  • Get time/date

  • Get system data

  • Get/set process attributes

Examples

getpid();

time();

uname();


Working

  • Provide information about system state or process status

5. Communication System Calls

Used for interprocess communication (IPC).

Operations

  • Create communication channels

  • Send/receive messages

  • Share memory

Examples

pipe();

shmget();

send();

recv();


Working

  • Processes exchange data via pipes, message queues, or shared memory

6. Protection System Calls

Used to control access permissions and security.

Operations

  • Set permissions

  • Get permissions

  • Control access rights

Examples

chmod();

chown();

umask();


Working

  • Define who can access files or resources

Summary of Types

Type

Purpose

Process Control

Manage processes

File Management

Handle files

Device Management

Control devices

Information Maintenance

Get/set system info

Communication

Enable IPC

Protection

Manage permissions

36. What is trap and trapdoor?

Definition

A trap is a synchronous interrupt generated by the CPU when a program executes a special instruction or encounters an exceptional condition, causing control to transfer from user mode to kernel mode.
A trapdoor refers to a controlled entry point into the operating system, typically implemented using traps, that allows user programs to safely invoke kernel services.

Core Concept

Operating systems must provide a secure way for user programs to request privileged operations. Since user programs cannot directly execute sensitive instructions, they use traps to enter kernel mode. The concept of a trapdoor represents this safe and controlled transition mechanism.

Trap

A trap is generated in two main situations:

  • When a program explicitly requests a service (system call)

  • When an exceptional condition occurs (e.g., divide-by-zero, invalid memory access)

It is called “synchronous” because it occurs as a direct result of the current instruction being executed.

Working Mechanism of Trap

  1. A user program executes a special instruction (e.g., system call instruction)

  2. CPU generates a trap

  3. CPU switches from user mode to kernel mode

  4. Control is transferred to a predefined handler in the OS

  5. OS performs the required operation

  6. Control returns to user program

Flow:

User Program → Trap Instruction → Kernel Mode → Handler → Return


Example

read(fd, buffer, size);


  • This triggers a trap

  • OS handles file read operation

Types of Traps

1. System Call Trap

  • Intentional

  • Used to request OS services

2. Exception Trap

  • Caused by errors such as:

    • Division by zero

    • Invalid memory access

Trapdoor

A trapdoor is not a hardware event itself but a conceptual or software-defined entry point into the kernel, built using trap mechanisms.

It represents:

  • A controlled interface

  • A secure gateway for system calls

Working Concept of Trapdoor

  • User program invokes system call

  • Trap instruction is executed

  • Control enters kernel through predefined entry point (trapdoor)

  • Kernel executes service

  • Returns control

Key Difference Between Trap and Trapdoor

Feature

Trap

Trapdoor

Nature

Hardware/CPU event

Conceptual mechanism

Trigger

Instruction or exception

Uses trap internally

Purpose

Transfer control to kernel

Provide controlled access to OS

Usage

System calls, exceptions

Entry point for system services

Important Clarification

  • Trap → actual mechanism used by CPU

  • Trapdoor → conceptual representation of safe kernel entry

Role in Operating Systems

  • Enables system calls

  • Maintains protection between user and kernel

  • Prevents unauthorized access to hardware

36. What is trap and trapdoor?

Definition

A trap is a synchronous interrupt generated by the CPU when a program executes a special instruction or encounters an exceptional condition, causing control to transfer from user mode to kernel mode.
A trapdoor refers to a controlled entry point into the operating system, typically implemented using traps, that allows user programs to safely invoke kernel services.

Core Concept

Operating systems must provide a secure way for user programs to request privileged operations. Since user programs cannot directly execute sensitive instructions, they use traps to enter kernel mode. The concept of a trapdoor represents this safe and controlled transition mechanism.

Trap

A trap is generated in two main situations:

  • When a program explicitly requests a service (system call)

  • When an exceptional condition occurs (e.g., divide-by-zero, invalid memory access)

It is called “synchronous” because it occurs as a direct result of the current instruction being executed.

Working Mechanism of Trap

  1. A user program executes a special instruction (e.g., system call instruction)

  2. CPU generates a trap

  3. CPU switches from user mode to kernel mode

  4. Control is transferred to a predefined handler in the OS

  5. OS performs the required operation

  6. Control returns to user program

Flow:

User Program → Trap Instruction → Kernel Mode → Handler → Return


Example

read(fd, buffer, size);


  • This triggers a trap

  • OS handles file read operation

Types of Traps

1. System Call Trap

  • Intentional

  • Used to request OS services

2. Exception Trap

  • Caused by errors such as:

    • Division by zero

    • Invalid memory access

Trapdoor

A trapdoor is not a hardware event itself but a conceptual or software-defined entry point into the kernel, built using trap mechanisms.

It represents:

  • A controlled interface

  • A secure gateway for system calls

Working Concept of Trapdoor

  • User program invokes system call

  • Trap instruction is executed

  • Control enters kernel through predefined entry point (trapdoor)

  • Kernel executes service

  • Returns control

Key Difference Between Trap and Trapdoor

Feature

Trap

Trapdoor

Nature

Hardware/CPU event

Conceptual mechanism

Trigger

Instruction or exception

Uses trap internally

Purpose

Transfer control to kernel

Provide controlled access to OS

Usage

System calls, exceptions

Entry point for system services

Important Clarification

  • Trap → actual mechanism used by CPU

  • Trapdoor → conceptual representation of safe kernel entry

Role in Operating Systems

  • Enables system calls

  • Maintains protection between user and kernel

  • Prevents unauthorized access to hardware

37. What happens when a process crashes?

Definition

A process crash occurs when a running program encounters an error or illegal operation that prevents it from continuing execution, causing the operating system to terminate the process and reclaim its resources.

Core Concept

A process may crash due to:

  • Invalid memory access (segmentation fault)

  • Division by zero

  • Illegal instruction

  • Stack overflow

  • Unhandled exceptions

When such an event occurs, the CPU generates an exception (trap), and the operating system takes control to handle the situation safely.

Step-by-Step Execution

  1. The process executes an instruction

  2. An error or illegal operation occurs

  3. CPU detects the fault and raises an exception (trap)

  4. Control transfers from user mode to kernel mode

  5. OS examines the cause of the crash

  6. OS decides to terminate the process

  7. Resources used by the process are released

Example

int *ptr = NULL;

*ptr = 10;   // segmentation fault


  • Invalid memory access triggers a crash

  • OS terminates the process

Types of Errors Leading to Crash

  • Segmentation fault (invalid memory access)

  • Arithmetic exception (divide by zero)

  • Illegal instruction

  • Bus error

  • Stack overflow

OS Actions After Crash

1. Process Termination

  • Process state changed to terminated

  • Removed from scheduling queues

2. Resource Deallocation

  • Memory freed

  • Open files closed

  • Locks released

3. Error Reporting

  • OS sends signal (e.g., SIGSEGV)

  • Error message displayed

4. Core Dump (Optional)

  • OS may save memory image of process

  • Used for debugging

core dump → contains process state at crash


Parent Process Handling

If the crashed process has a parent:

  • Parent may be notified

  • Parent may retrieve exit status

wait();


If parent does not handle it:

  • Process becomes a zombie temporarily

Impact on System

  • Crash is isolated to the process

  • Other processes continue execution

  • System remains stable due to memory protection

Example Scenario

Process P1 crashes → terminated

Process P2, P3 → continue running


Recovery Mechanisms

  • Restart process

  • Log error for debugging

  • Use watchdog timers in critical systems

Special Case: Kernel Crash

If crash occurs in kernel mode:

  • Entire system may crash

  • Results in system panic

38. How does the OS handle process termination?

Definition

Process termination is the procedure by which the operating system ends the execution of a process, cleans up its resources, and removes it from the system, ensuring that no residual effects remain.

Core Concept

A process may terminate:

  • Normally (successful completion)

  • Abnormally (error, crash, or external signal)

The OS is responsible for ensuring that termination is handled in a controlled and safe manner, preserving system stability.

Types of Process Termination

1. Normal Termination

Occurs when a process completes its execution.

exit(0);


  • Process returns status to OS

  • OS performs cleanup

2. Abnormal Termination

Occurs due to:

  • Runtime errors (segmentation fault)

  • Illegal operations

  • External signals (kill command)

kill -9 <pid>


Step-by-Step Process

Step 1: Termination Trigger

  • Process calls exit()

  • OR OS detects error

  • OR another process sends termination signal

Step 2: Switch to Kernel Mode

  • CPU transfers control to OS

  • OS begins termination routine

Step 3: Process State Update

  • Process state changes to terminated

  • Removed from ready/waiting queues

Step 4: Resource Deallocation

OS releases all resources held by the process:

  • Memory (heap, stack, code)

  • Open files and file descriptors

  • I/O resources

  • Locks and semaphores

Step 5: Close File Descriptors

fd table → cleared

open files → closed


Step 6: Update Process Control Block (PCB)

  • Exit status stored

  • Accounting information updated

  • PCB marked for deletion

Step 7: Notify Parent Process

  • Parent process is informed

  • Exit status is made available

wait(&status);


Zombie State

After termination:

  • Process may remain as a zombie

  • PCB exists until parent reads exit status

Process terminated → zombie → parent calls wait() → removed


Orphan Handling

If parent terminates before child:

  • Child becomes orphan

  • Adopted by init/system process

  • Eventually cleaned up

Final Cleanup

  • PCB is removed from system

  • Process ID (PID) is freed

  • System resources fully reclaimed

Example Flow

Process running

      ↓

exit() or crash

      ↓

Kernel handles termination

      ↓

Resources freed

      ↓

Zombie state (temporary)

      ↓

Parent collects status

      ↓

Process fully removed


Special Case: Forced Termination

  • OS may terminate process due to:

    • Resource limits exceeded

    • Security violations

    • Deadlock recovery

39. How does OS ensure memory protection between processes?

Definition

The operating system ensures memory protection between processes by isolating each process in its own address space and enforcing access control using hardware and software mechanisms, preventing one process from accessing or modifying another’s memory.

Core Concept

In a multitasking environment, multiple processes run concurrently in memory. To maintain system stability and security, each process must operate within its own protected memory region.

The OS achieves this by:

  • Providing each process with a separate virtual address space

  • Using hardware (MMU) to enforce access restrictions

  • Validating every memory access

Role of Virtual Memory

Each process is given a virtual address space:

  • Logical addresses used by the process

  • Translated into physical addresses by the OS

This ensures:

  • Processes cannot directly see each other’s memory

  • Same virtual addresses can be used by different processes safely

Address Translation Using MMU

The Memory Management Unit (MMU) performs:

  1. Takes virtual address from CPU

  2. Translates it to physical address

  3. Checks access permissions

  4. Allows or denies access

If invalid:

  • A trap (exception) is generated

Paging-Based Protection

In paging, memory is divided into pages. Each page table entry contains:

  • Frame number

  • Protection bits:

    • Read (R)

    • Write (W)

    • Execute (X)

Access Check

if (permission allowed):

    access memory

else:

    raise exception


Example:

  • Write attempt on read-only page → fault

Segmentation-Based Protection

Each segment has:

  • Base address

  • Limit

  • Access permissions

Access Check

if (address within segment bounds):

    allow

else:

    trap


Prevents:

  • Access outside allocated region

Base and Limit Register Protection

Simpler systems use:

  • Base register → start of memory

  • Limit register → size

if (address >= base AND address < base + limit):

    valid

else:

    invalid


User Mode vs Kernel Mode

  • User mode:

    • Cannot access kernel memory

    • Restricted instructions

  • Kernel mode:

    • Full access

Mode switching ensures:

  • Applications cannot interfere with OS

Isolation Between Processes

Each process has:

  • Separate page tables

  • Independent address space

Process A → Memory A

Process B → Memory B


No direct access allowed between them.

Handling Violations

If a process attempts illegal access:

  • CPU raises exception (e.g., segmentation fault)

  • OS terminates or handles the process

Shared Memory Exception

Controlled sharing is allowed via:

  • Shared memory segments

  • Explicit permission settings

Even then:

  • Access is carefully regulated

Advantages

  • Prevents data corruption

  • Ensures system stability

  • Enhances security

  • Enables safe multitasking

Overhead

  • Address translation cost

  • Additional memory for page tables

  • Hardware dependency

40. What is a hashed page table?

Definition

A hashed page table is a memory management technique used in virtual memory systems, particularly for large address spaces, where page table entries are stored in a hash table instead of a linear array, enabling efficient address translation.

Core Concept

In traditional page tables:

  • Each virtual page number (VPN) maps directly to an entry

  • Large address spaces require very large page tables

Hashed page tables solve this by:

  • Using a hash function to map virtual page numbers to a smaller set of table entries

  • Storing only the pages that are actually in use

This reduces memory overhead significantly.

Structure

Each entry in a hashed page table contains:

  • Virtual page number (VPN)

  • Corresponding frame number

  • Pointer to next entry (for collision handling)

struct entry {

    int vpn;

    int frame_number;

    struct entry* next;

}


Working Mechanism

  1. CPU generates a virtual address

  2. Virtual page number (VPN) is extracted

  3. Hash function is applied to VPN

hash_index = hash(VPN)


  1. OS looks at the corresponding hash table bucket

  2. Traverses linked list (if collision occurred)

  3. Compares VPN values

  4. If match found:

    • Frame number is retrieved

  5. Physical address is formed

Address Translation Flow

Virtual Address → Extract VPN → Hash → Search Bucket → Match → Frame Number → Physical Address


Collision Handling

Multiple VPNs may map to the same hash index. This is handled using:

  • Linked lists (chaining)

  • Each bucket stores multiple entries

Index → [VPN1 → VPN2 → VPN3]


Example

Suppose:

VPN = 25

hash(25) = 3


At index 3:

[VPN 10 → VPN 25 → VPN 40]


OS traverses list and finds VPN 25.

Advantages

  • Reduces memory usage for large address spaces

  • Efficient for sparse address spaces

  • Faster lookup compared to very large page tables

Disadvantages

  • Collision handling adds overhead

  • Slightly slower than direct indexing

  • Requires good hash function

Comparison with Traditional Page Table

Feature

Traditional Page Table

Hashed Page Table

Size

Large

Smaller

Lookup

Direct indexing

Hash + search

Efficiency

Good for small spaces

Better for large spaces

Use Case

  • 64-bit systems with large virtual address spaces

  • Systems where many pages are unused

Key Observation

Hashed page tables optimize memory usage by storing only active page mappings and using hashing for lookup, making them suitable for systems with large and sparse address spaces.

40. What is a hashed page table?

Definition

A hashed page table is a memory management technique used in virtual memory systems, particularly for large address spaces, where page table entries are stored in a hash table instead of a linear array, enabling efficient address translation.

Core Concept

In traditional page tables:

  • Each virtual page number (VPN) maps directly to an entry

  • Large address spaces require very large page tables

Hashed page tables solve this by:

  • Using a hash function to map virtual page numbers to a smaller set of table entries

  • Storing only the pages that are actually in use

This reduces memory overhead significantly.

Structure

Each entry in a hashed page table contains:

  • Virtual page number (VPN)

  • Corresponding frame number

  • Pointer to next entry (for collision handling)

struct entry {

    int vpn;

    int frame_number;

    struct entry* next;

}


Working Mechanism

  1. CPU generates a virtual address

  2. Virtual page number (VPN) is extracted

  3. Hash function is applied to VPN

hash_index = hash(VPN)


  1. OS looks at the corresponding hash table bucket

  2. Traverses linked list (if collision occurred)

  3. Compares VPN values

  4. If match found:

    • Frame number is retrieved

  5. Physical address is formed

Address Translation Flow

Virtual Address → Extract VPN → Hash → Search Bucket → Match → Frame Number → Physical Address


Collision Handling

Multiple VPNs may map to the same hash index. This is handled using:

  • Linked lists (chaining)

  • Each bucket stores multiple entries

Index → [VPN1 → VPN2 → VPN3]


Example

Suppose:

VPN = 25

hash(25) = 3


At index 3:

[VPN 10 → VPN 25 → VPN 40]


OS traverses list and finds VPN 25.

Advantages

  • Reduces memory usage for large address spaces

  • Efficient for sparse address spaces

  • Faster lookup compared to very large page tables

Disadvantages

  • Collision handling adds overhead

  • Slightly slower than direct indexing

  • Requires good hash function

Comparison with Traditional Page Table

Feature

Traditional Page Table

Hashed Page Table

Size

Large

Smaller

Lookup

Direct indexing

Hash + search

Efficiency

Good for small spaces

Better for large spaces

Use Case

  • 64-bit systems with large virtual address spaces

  • Systems where many pages are unused

41. What is an inverted page table?

Definition

An inverted page table is a memory management structure in which there is exactly one page table entry for each physical frame in memory, rather than one entry per virtual page, significantly reducing memory overhead.

Core Concept

In traditional page tables:

  • Each process has its own page table

  • Size depends on virtual address space

In an inverted page table:

  • A single global table is maintained for the entire system

  • Each entry corresponds to a physical frame, not a virtual page

This makes it highly efficient for systems with large virtual address spaces.

Structure

Each entry in an inverted page table contains:

  • Process ID (PID)

  • Virtual page number (VPN)

  • Control bits (valid, protection, etc.)

struct entry {

    int pid;

    int vpn;

    int control_bits;

}


Working Mechanism

  1. CPU generates a virtual address

  2. Extract:

    • Process ID (PID)

    • Virtual page number (VPN)

  3. Search inverted page table:

    • Find entry where (PID, VPN) matches

  4. If found:

    • Entry index gives physical frame number

  5. Physical address is formed

Address Translation Flow

Virtual Address + PID → Search Inverted Table → Match → Frame Number → Physical Address


Example

Suppose:

Frame 0 → (PID=1, VPN=5)

Frame 1 → (PID=2, VPN=3)

Frame 2 → (PID=1, VPN=8)


If process 1 accesses VPN 8:

  • Search table

  • Match found at Frame 2

  • Physical address formed

Key Difference from Traditional Page Table

Feature

Traditional Page Table

Inverted Page Table

Entries

One per virtual page

One per physical frame

Table Size

Large

Small

Number of Tables

One per process

One global table

Problem: Search Overhead

Since lookup requires searching:

  • It can be slow

Solution: Hashing

To speed up lookup:

  • Use hashed page table on top of inverted table

hash(PID, VPN) → index → search bucket


Advantages

  • Very small memory requirement

  • Efficient for large address spaces

  • Single global structure

Disadvantages

  • Slower lookup without hashing

  • More complex implementation

  • Shared table requires synchronization

Use Case

  • 64-bit systems

  • Systems with large virtual memory

42. What is a distributed operating system?

Definition

A distributed operating system is an operating system that manages a collection of independent computers (nodes) and makes them appear to users as a single unified system, enabling resource sharing and coordinated computation across multiple machines.

Core Concept

In a distributed system:

  • Multiple computers are connected via a network

  • Each has its own memory and processor

  • The OS coordinates them to work together

The key idea is transparency:

  • Users do not see multiple machines

  • They interact with the system as if it is a single computer

Goals of Distributed Operating Systems

  • Resource sharing across nodes

  • Improved performance through parallelism

  • High reliability and fault tolerance

  • Scalability

Types of Transparency

1. Location Transparency

Users do not know where resources are physically located.

2. Access Transparency

Accessing local or remote resources appears the same.

3. Migration Transparency

Processes and data can move between nodes without user awareness.

4. Replication Transparency

Multiple copies of data exist without affecting user interaction.

5. Failure Transparency

System continues to function even if some nodes fail.

Architecture

Node1   Node2   Node3

  |       |       |

  --------Network--------

          |

   Distributed OS Layer

          |

        Users


Each node runs its own local OS, but a distributed layer coordinates them.

Working Mechanism

  1. User submits a request

  2. Distributed OS determines where to execute it

  3. Tasks may be split across nodes

  4. Nodes communicate via message passing

  5. Results are combined and returned

Key Components

  • Communication subsystem (message passing)

  • Process management across nodes

  • Distributed file system

  • Synchronization mechanisms

  • Fault tolerance mechanisms

Process Management

  • Processes may run on different nodes

  • OS handles scheduling across machines

  • Supports process migration

Communication

Nodes communicate using:

  • Message passing

  • Remote procedure calls (RPC)

Example

Suppose a computation task:

Task → split → Node1 + Node2 + Node3 → results combined


User sees it as a single operation.

Advantages

  • Resource sharing (CPU, memory, storage)

  • Increased computational power

  • Fault tolerance (failure of one node does not stop system)

  • Scalability

Disadvantages

  • Complex design and implementation

  • Network dependency

  • Security challenges

  • Synchronization issues

Difference from Network OS

Feature

Distributed OS

Network OS

System View

Single system image

Multiple independent systems

Transparency

High

Low

Resource Management

Centralized (logical)

Separate per machine

Examples

  • Amoeba

  • Plan 9

43. What is a clustered operating system?

Definition

A clustered operating system is a system in which multiple independent computers (nodes) are connected and work together as a single system to provide high availability, reliability, and performance, while still maintaining their individual identities.

Core Concept

In a clustered system:

  • Each node is a complete computer with its own CPU, memory, and OS

  • Nodes are connected via a high-speed network

  • They cooperate to provide a unified service

Unlike distributed OS (which provides a single system image), clustered systems focus more on:

  • Fault tolerance

  • Load balancing

  • High availability

Architecture

Node1       Node2       Node3

  |           |           |

  -------- High-Speed Network --------

            |

        Shared Storage


Key components:

  • Multiple nodes

  • Interconnect network

  • Shared storage (often used)

Working Mechanism

  1. Multiple nodes run applications/services

  2. A cluster manager monitors all nodes

  3. If one node fails:

    • Another node takes over its tasks

  4. Load is distributed across nodes

  5. Users see continuous service

Types of Clusters

1. High Availability (HA) Clusters

  • Focus on fault tolerance

  • If one node fails, another takes over

2. Load Balancing Clusters

  • Distribute workload across nodes

  • Improve performance

3. High Performance Computing (HPC) Clusters

  • Used for parallel processing

  • Split tasks across nodes

Failover Mechanism

When a node fails:

  • Failure is detected

  • Resources/services are migrated

  • Another node resumes operation

Node1 fails → Node2 takes over


Key Characteristics

  • Multiple independent systems

  • Cooperative processing

  • Failover support

  • Shared or distributed storage

Advantages

  • High availability (minimal downtime)

  • Improved performance through load distribution

  • Scalability (add more nodes)

  • Fault tolerance

Disadvantages

  • Complex setup and management

  • Requires high-speed networking

  • Synchronization challenges

  • Cost of infrastructure

Difference from Distributed OS

Feature

Clustered OS

Distributed OS

System View

Multiple systems working together

Single system image

Focus

Availability & performance

Transparency & resource sharing

Node Independence

High

Lower (tightly integrated)

Real-World Use

  • Database servers

  • Cloud infrastructure

  • Web server farms

  • Scientific computing

Examples

  • Windows Server Failover Clustering

  • Red Hat Cluster Suite

44. What is asymmetric clustering?

Definition

Asymmetric clustering is a type of clustered system in which one node (called the active node) performs all the processing and runs applications, while one or more other nodes remain in standby mode, ready to take over if the active node fails.

Core Concept

In asymmetric clustering, there is a clear master–backup relationship:

  • Active node → handles all tasks and services

  • Standby node(s) → monitor the active node but do not perform useful work unless a failure occurs

The primary goal is high availability through failover, not load sharing.

Architecture

Active Node  → Running applications

Standby Node → Monitoring (idle)


Both nodes are connected through:

  • A network

  • Shared storage (commonly used)

Working Mechanism

  1. Active node runs all services and processes

  2. Standby node continuously monitors the active node (heartbeat signals)

  3. If the active node fails:

    • Standby node detects failure

    • Takes control of resources

    • Starts services

  4. System continues operation with minimal interruption

Heartbeat Mechanism

Nodes communicate using periodic signals:

Active → "I am alive"


If heartbeat stops:

  • Failure is assumed

  • Failover is triggered

Failover Process

Active node fails

      ↓

Standby detects failure

      ↓

Standby becomes active

      ↓

Services restarted


Characteristics

  • Only one node is active at a time

  • Backup node remains idle

  • Simple design

  • Focus on reliability

Advantages

  • High fault tolerance

  • Simple implementation

  • Quick recovery from failures

Disadvantages

  • Poor resource utilization (standby is idle)

  • No load balancing

  • Limited scalability

Example Scenario

Node1 (Active) → running database

Node2 (Standby) → idle


If Node1 fails:

Node2 → takes over database


Comparison with Symmetric Clustering

Feature

Asymmetric Clustering

Symmetric Clustering

Active Nodes

One

Multiple

Resource Usage

Low (idle standby)

High (all nodes active)

Load Balancing

No

Yes

Complexity

Low

Higher

Use Case

  • Systems requiring high availability

  • Critical services (databases, servers)

  • Environments where reliability is more important than performance

45. What is load balancing in OS?

Definition

Load balancing in an operating system is the process of distributing workload (processes, threads, or tasks) across multiple CPUs or nodes to ensure efficient utilization of resources, improved performance, and reduced response time.

Core Concept

In systems with multiple processors or nodes, uneven distribution of tasks can lead to:

  • Some CPUs being overloaded

  • Others remaining idle

Load balancing ensures that:

  • Work is evenly distributed

  • No processor becomes a bottleneck

  • System throughput and responsiveness are maximized

Types of Load Balancing

1. Static Load Balancing

  • Decisions are made before execution

  • Based on predefined rules

  • Does not change during runtime

Example:

  • Assign tasks equally at the start

2. Dynamic Load Balancing

  • Decisions are made during runtime

  • System continuously monitors load

  • Tasks are reassigned as needed

Example:

  • Move tasks from busy CPU to idle CPU

Load Balancing Strategies

1. Push Migration

  • Overloaded CPU pushes tasks to other CPUs

CPU1 (overloaded) → sends task → CPU2 (idle)


2. Pull Migration

  • Idle CPU pulls tasks from busy CPU

CPU2 (idle) → takes task → CPU1 (busy)


3. Hybrid Approach

  • Combines push and pull strategies

Working Mechanism

  1. OS monitors CPU utilization

  2. Detects imbalance

  3. Selects tasks to migrate

  4. Transfers tasks to less-loaded CPUs

  5. Updates scheduling queues

Example

Before:

CPU1 → 5 tasks

CPU2 → 1 task


After balancing:

CPU1 → 3 tasks

CPU2 → 3 tasks


Load Balancing in Multiprocessor Systems

  • Ensures all CPUs are efficiently used

  • Prevents idle time

  • Improves parallel execution

Load Balancing in Distributed/Cluster Systems

  • Tasks distributed across multiple nodes

  • Enhances scalability and fault tolerance

Challenges

  • Task migration overhead

  • Maintaining cache locality

  • Synchronization between processors

  • Communication cost in distributed systems

Advantages

  • Improved CPU utilization

  • Better system throughput

  • Reduced response time

  • Enhanced scalability

Disadvantages

  • Overhead of task migration

  • Complexity in implementation

  • Possible performance degradation if not optimized

46. What is scalability in operating systems?

Definition

Scalability in operating systems refers to the ability of a system to handle increasing workloads or resources (such as CPUs, memory, or users) efficiently without significant degradation in performance.

Core Concept

An operating system is considered scalable if it can:

  • Support more processes or users

  • Utilize additional hardware resources effectively

  • Maintain or improve performance as the system grows

Scalability ensures that the system continues to perform well even as demand increases.

Types of Scalability

1. Horizontal Scalability (Scale-Out)

  • Adding more machines or nodes to the system

Example:

1 server → 2 servers → 4 servers


Used in:

  • Distributed systems

  • Cloud environments


2. Vertical Scalability (Scale-Up)

  • Increasing resources within a single machine

Example:

More CPU cores, more RAM


Used in:

  • Multiprocessor systems


3. Functional Scalability

  • Adding new features or capabilities without affecting performance


Factors Affecting Scalability

1. CPU Scheduling

  • Efficient distribution of tasks across processors

2. Memory Management

  • Efficient allocation and handling of memory

3. I/O Management

  • Handling large volumes of I/O requests

4. Synchronization Mechanisms

  • Minimizing contention between processes

5. Interprocess Communication

  • Efficient communication between processes or nodes

Example

Suppose a system supports 100 users efficiently.
If it can support 1000 users with proportional increase in resources and minimal performance loss, it is scalable.

Users ↑ → Performance maintained


Scalability in Multiprocessor Systems

  • OS must efficiently use multiple CPUs

  • Avoid bottlenecks like shared locks

Scalability in Distributed Systems

  • Workload distributed across nodes

  • System grows by adding more machines

Challenges

  • Resource contention

  • Synchronization overhead

  • Communication delays

  • Load imbalance

Advantages

  • Supports system growth

  • Improves performance with added resources

  • Enables handling of large workloads

Disadvantages

  • Complex system design

  • Overhead in coordination and communication

  • Diminishing returns after a limit

Example Scenario

System with 2 CPUs → handles 200 tasks

System with 4 CPUs → handles ~400 tasks


Efficient scaling shows near-linear improvement.

47. What is virtualization in operating systems?

Definition

Virtualization is a technique in which the operating system (or a specialized layer) creates virtual versions of physical resources such as CPU, memory, storage, and network, allowing multiple independent environments (virtual machines) to run on a single physical system.

Core Concept

Instead of one OS directly controlling hardware, virtualization introduces an abstraction layer that:

  • Divides physical resources

  • Allocates them to multiple virtual systems

Each virtual system behaves like a real computer, even though it shares the same underlying hardware.

Virtual Machine (VM)

A virtual machine is:

  • An isolated environment

  • Running its own operating system

  • With virtual CPU, memory, and devices

Physical Machine → Hypervisor → VM1, VM2, VM3


Role of Hypervisor

The hypervisor (virtual machine monitor) is the key component that:

  • Creates and manages virtual machines

  • Allocates resources

  • Ensures isolation between VMs

Types of Virtualization

1. Full Virtualization

  • Entire hardware is simulated

  • Guest OS runs unmodified

Example:

  • Running Linux on a Windows machine


2. Para-Virtualization

  • Guest OS is aware of virtualization

  • Communicates directly with hypervisor

  • More efficient than full virtualization


3. Hardware-Assisted Virtualization

  • Uses CPU features (Intel VT-x, AMD-V)

  • Improves performance


4. OS-Level Virtualization (Containers)

  • Multiple isolated environments share the same OS kernel

  • Lightweight compared to VMs

Types of Hypervisors

Type 1 (Bare Metal)

  • Runs directly on hardware

  • High performance

Type 2 (Hosted)

  • Runs on top of an existing OS

  • Easier to use but slower

Working Mechanism

  1. Hypervisor sits between hardware and OS

  2. Creates virtual machines

  3. Allocates resources to each VM

  4. Each VM runs its own OS and applications

  5. Hypervisor manages scheduling and isolation

Example

Host Machine:

CPU, RAM, Disk


VM1 → Linux

VM2 → Windows

VM3 → Ubuntu


All run simultaneously on the same hardware.

Advantages

  • Efficient resource utilization

  • Isolation between environments

  • Flexibility (run multiple OS)

  • Easy testing and deployment

  • Fault isolation

Disadvantages

  • Performance overhead

  • Resource contention

  • Complexity in management

Use Cases

  • Cloud computing

  • Server consolidation

  • Testing and development

  • Running multiple OS on one machine

48. What is a hypervisor?

Definition

A hypervisor, also known as a Virtual Machine Monitor (VMM), is a software or firmware layer that creates, manages, and runs virtual machines (VMs) by abstracting and allocating physical hardware resources such as CPU, memory, and storage.

Core Concept

The hypervisor sits between hardware and operating systems (or above a host OS) and enables multiple operating systems to run simultaneously on the same physical machine by:

  • Virtualizing hardware resources

  • Isolating virtual machines

  • Managing resource allocation

Each virtual machine behaves like an independent system with its own OS.

Architecture

Hardware

   ↓

Hypervisor

   ↓

VM1   VM2   VM3

(OS)  (OS)  (OS)


Working Mechanism

  1. Hypervisor initializes and takes control of hardware

  2. Creates virtual machines

  3. Allocates resources (CPU, memory, I/O) to each VM

  4. Intercepts privileged operations from guest OS

  5. Ensures isolation between VMs

  6. Schedules execution of VMs on physical CPU

Key Responsibilities

  • CPU virtualization (scheduling VMs)

  • Memory management (virtual memory mapping)

  • Device emulation (virtual devices)

  • Isolation and security

  • Resource allocation

Types of Hypervisors

Type 1 (Bare-Metal Hypervisor)

Runs directly on hardware without a host OS.

Hardware → Hypervisor → VMs


Characteristics:

  • High performance

  • Used in servers and data centers

Examples:

  • VMware ESXi

  • Microsoft Hyper-V


Type 2 (Hosted Hypervisor)

Runs on top of an existing operating system.

Hardware → Host OS → Hypervisor → VMs


Characteristics:

  • Easier to use

  • More overhead

Examples:

  • VirtualBox

  • VMware Workstation

CPU Virtualization

Hypervisor shares CPU among VMs:

CPU → time-sliced → VM1, VM2, VM3


Each VM believes it has its own CPU.

Memory Virtualization

  • Each VM gets virtual memory

  • Hypervisor maps virtual memory to physical memory

Isolation

  • One VM cannot access another VM’s memory

  • Faults in one VM do not affect others

Advantages

  • Efficient resource utilization

  • Supports multiple OS on one machine

  • Strong isolation

  • Enables cloud computing

Disadvantages

  • Performance overhead

  • Complex resource management

  • Requires hardware support for efficiency

Use Cases

  • Cloud infrastructure

  • Server virtualization

  • Testing environments

  • Running multiple OS

49. What is containerization and how does it relate to OS?

Definition

Containerization is a lightweight virtualization technique in which applications and their dependencies are packaged together into isolated units called containers, which share the host operating system’s kernel while running as independent environments.

Core Concept

Unlike traditional virtualization where each virtual machine runs its own OS, containerization:

  • Shares the same OS kernel

  • Isolates applications at the process level

  • Provides separate execution environments

This makes containers:

  • Faster

  • More lightweight

  • More efficient

How Containerization Works

A container includes:

  • Application code

  • Libraries and dependencies

  • Runtime environment

But does not include a full OS.

Hardware

   ↓

Host OS (Kernel)

   ↓

Container Engine

   ↓

Container1   Container2   Container3

(Apps + dependencies)


Role of Operating System

The OS plays a central role in containerization by providing:

1. Process Isolation (Namespaces)

Namespaces isolate resources such as:

  • Process IDs (PID namespace)

  • File system (mount namespace)

  • Network (network namespace)

Each container sees its own isolated environment.

2. Resource Control (Control Groups - cgroups)

cgroups limit and allocate:

  • CPU usage

  • Memory

  • I/O bandwidth

Container1 → 2 CPUs

Container2 → 1 CPU


3. File System Isolation

Containers use layered file systems:

  • Base image

  • Application layer

4. Security

  • Restricted access to kernel

  • Limited privileges

Container Engine

A container engine manages containers.

Examples:

  • Docker

  • containerd

Containers vs Virtual Machines

Feature

Containers

Virtual Machines

OS

Shared kernel

Separate OS per VM

Size

Small

Large

Startup Time

Fast

Slow

Isolation

Process-level

Hardware-level

Working Mechanism

  1. Application is packaged into a container image

  2. Container engine creates container from image

  3. OS kernel provides isolation and resource control

  4. Application runs as a process inside container

Example

Host OS → runs:

Container1 → Node.js app

Container2 → Python app

Container3 → Database


All share the same kernel but run independently.

Advantages

  • Lightweight and fast

  • Efficient resource usage

  • Easy deployment and scaling

  • Consistent environments across systems

Disadvantages

  • Less isolation than VMs

  • Security risks if kernel is compromised

  • OS dependency (same kernel required)

Use Cases

  • Microservices architecture

  • Cloud-native applications

  • CI/CD pipelines

  • Dev/test environments