Module 8: Process Synchronization
Introduction to Synchronization
- Definition: Coordination needed when two processes access a shared resource.
- Purpose: Maintain consistency of shared resources to prevent operational inconsistency.
- Importance: Essential for maintaining OS integrity and has security implications due to potential race conditions.
Objectives
- Coordinate processes sharing resources.
- Protect memory regions with locks.
- Maintain consistency of shared data.
Reasons for Synchronization
- Resource Sharing: Needed in environments where multiple processes cooperate.
- Examples:
- Buffer sharing between a producer and consumer.
- Scheduling for better CPU and I/O time utilization.
- Benefits: Modularity and convenience in software development.
Buffer Sharing Problem
- Setup: Producer adds to buffer, consumer removes from buffer.
- Rules:
- Producer must not add to a full buffer.
- Consumer must not remove from an empty buffer.
- Solution: Implement a synchronization mechanism to enforce these rules.
Critical Section and Mutual Exclusion
- Critical Section: Code block where shared resources are accessed.
- Problem: Inconsistent state when two processes access a shared data.
- Solution: Mutual exclusion - ensuring only one process accesses the critical section at a time.
Semaphore and Monitors
- Semaphore: A synchronization tool with an integer value.
- Operations:
wait (decrement) and signal (increment).
- Binary Semaphore: Represents lock/unlock states, used as mutex locks.
- Monitors: Higher-level synchronization construct.
Reader-Writer Problem
- Scenario: Multiple readers, single writer.
- Conditions:
- Multiple readers can read simultaneously.
- Only one writer can write at a time.
- No reading during writing.
- Solution: Use semaphores for synchronization.
- Mutex for read count management.
- WRT semaphore for controlling access to writing.
Implementing Synchronization
- Atomic Instructions: Essential for implementing semaphores.
- Examples: Test and set, swap instructions in microprocessors.
- Deadlock Prevention: Ensure no circular wait conditions.
Key Concepts
- Mutual Exclusion: Only one process accesses critical section among n processes.
- Progress: Process should enter critical section if no others are present.
- Bounded Waiting: Process should access critical section within a bounded time.
Implications
- Deadlock: Conditions leading to perpetual blocking.
- Security: Synchronization critical for preventing race conditions and denial of service.
Summary
- Synchronization is key for operating system consistency and security.
- Understanding critical sections, semaphores, and mutual exclusion is crucial for OS administration and security.
- Further reading: textbooks like Galvin and MOOC courses on operating systems.
Note: This lecture provides a foundational understanding, further study recommended for comprehensive knowledge.