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 तरीके से काम करे

imgk

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 | grep "chrome" | wc
 
  • 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 कर सकता है