Q1: Race Condition, Concurrent Processes, Critical Section
Race Condition:
Occurs when two or more processes access shared data and try to change it at the same time. The
final outcome depends on the timing of their execution.
Example: Two processes incrementing the same counter variable simultaneously without proper
synchronization.
Concurrent Processes:
Processes that execute during overlapping time periods. They can either run in parallel (on different
processors) or interleaved (on the same processor).
Critical Section:
A section of code that accesses shared resources and must not be executed by more than one
process at a time.
Solution: Use synchronization mechanisms like mutexes or semaphores to ensure mutual exclusion.
Q2: Semaphore, Mutex, Process Synchronization
Semaphore:
A signaling mechanism using integer values. It helps to manage concurrent processes. Two types:
- Binary Semaphore: Only 0 and 1 values (like a mutex).
- Counting Semaphore: Used for counting resources.
Mutex (Mutual Exclusion):
A lock that allows only one thread to access a resource. Only the thread that locked it can unlock it.
Process Synchronization:
Ensures that multiple processes can execute concurrently without interfering with each other. It
avoids race conditions and ensures data consistency.
Q3: Deadlocks - Completed Topic with Prevention/Detection
Deadlock:
A situation where a set of processes are blocked because each process is holding a resource and
waiting for another.
Necessary conditions:
1. Mutual Exclusion
2. Hold and Wait
3. No Preemption
4. Circular Wait
Prevention Methods:
- Avoid any one of the above conditions.
- Example: Prevent Hold and Wait by requiring all resources to be requested at once.
Detection:
- Use a Resource Allocation Graph.
- Deadlock can be detected by cycle detection in the graph.
Recovery:
- Abort one or more processes.
- Preempt resources and roll back.
Q4: Memory Management - Full Topic
Memory management handles the allocation and deallocation of memory to processes.
Key Concepts:
- Paging: Divides memory into fixed-sized pages.
- Segmentation: Divides memory into segments like code, stack, data.
- Virtual Memory: Allows execution of processes not completely in memory using swapping and
paging.
- Fragmentation: Wastage of memory (internal & external).
- Memory Allocation Techniques:
- First Fit
- Best Fit
- Worst Fit
Q5: Memory Allocation - Any 2 Techniques
1. First Fit:
Allocates the first block of memory large enough to accommodate the process.
2. Best Fit:
Allocates the smallest block of memory that is large enough, minimizing wastage.