Chapter 2 (Hindi)
Topic wise chapter Hindi
5. Process synchronization
Introduction to Process Synchronization
Process Synchronization
Process Synchronization एक mechanism है जो Operating System (OS) में multiple processes के execution को manage करता है, खासकर जब वे shared resources को access करते हैं।
👉 इसका main purpose है:
- Data consistency बनाए रखना
- Race condition को prevent करना
- Deadlock से बचना
Types of Processes (Synchronization के आधार पर)
1. Independent Process
- एक process का execution दूसरे process को affect नहीं करता
- कोई data sharing नहीं होती
2. Cooperative Process
- एक process दूसरे process को affect कर सकता है
- Processes आपस में data share करते हैं
- Synchronization जरूरी होता है
Definition (Simple)
Process Synchronization का मतलब है multiple cooperating processes को इस तरह coordinate करना कि:
- Shared resources का controlled access हो
- Race condition और अन्य problems avoid हों
- System smooth और efficient तरीके से काम करे

Problems due to Improper Synchronization
अगर Process Synchronization सही तरीके से नहीं किया जाता, तो ये problems होती हैं:
1. Inconsistency
जब दो या अधिक processes एक ही shared data को बिना synchronization के access करते हैं, तो data inconsistent हो जाता है।
👉 एक process का update दूसरे द्वारा overwrite हो सकता है।
2. Loss of Data
जब multiple processes एक ही resource पर write करते हैं:
- Data overwrite हो सकता है
- Important information lost हो सकती है
👉 Result: corrupted या incomplete data
3. Deadlock
जब processes एक-दूसरे के resources का wait करते रहते हैं:
- कोई process आगे नहीं बढ़ पाता
- System hang हो सकता है
Role of Synchronization in IPC
✔ Preventing Race Condition
Processes को एक साथ shared data access करने से रोकता है
✔ Mutual Exclusion
एक समय में केवल एक process critical section में जाता है
✔ Process Coordination
Processes को condition के अनुसार wait/execute करने देता है
✔ Deadlock Prevention
Proper resource allocation से deadlock avoid करता है
✔ Safe Communication
Data/messages सही order में send और receive होते हैं
✔ Fairness
हर process को fair chance मिलता है (no starvation)
Types of Process Synchronization
1. Competitive Synchronization
- Processes shared resource के लिए compete करते हैं
- Synchronization न होने पर:
👉 Inconsistency या Data loss
2. Cooperative Synchronization
- Processes एक-दूसरे को affect करते हैं
- एक process का output दूसरे का input होता है
👉 Synchronization न होने पर:
- Deadlock हो सकता है
Example (Linux)
- ps → running processes list देता है
- grep → specific process (chrome) find करता है
- wc → output count करता है
👉 यहाँ:
- ps → producer
- grep → intermediate
- wc → consumer
➡️ यह cooperative processes का example है
Conditions that Require Process Synchronization
1. Critical Section
- Code का वह हिस्सा जहाँ shared variables access होते हैं
- एक समय में केवल एक process allowed
👉 Goal: data consistency maintain करना
2. Race Condition
- जब result execution order पर depend करता है
- Multiple processes एक साथ critical section में access करते हैं
3. Pre-emption
- OS running process को रोककर दूसरे को CPU देता है
- Problem तब होती है जब process shared resource use करते समय interrupt हो जाए
👉 बिना synchronization के:
- दूसरा process गलत (inconsistent) data read कर सकता है