Precedence Graphs

Introduction (परिचय)

Operating System में कई बार multiple processes या tasks को एक साथ execute करना होता है।
लेकिन हर task को किसी भी order में execute नहीं किया जा सकता।

कुछ tasks ऐसे होते हैं जो दूसरे task के complete होने के बाद ही start हो सकते हैं।
यानी tasks के बीच एक dependency relation होता है।

इसी dependency को diagram के रूप में दिखाने के लिए Precedence Graph का use किया जाता है।

Precedence Graph क्या होता है

Precedence Graph एक graphical representation है, जो यह दिखाता है कि कौन सा process या task पहले execute होगा और कौन सा बाद में।

Simple Definition

Precedence Graph वह graph है जो tasks या processes के execution order और dependency को show करता है।

Main Idea

अगर कोई task T2, task T1 पर depend करता है,
तो इसका मतलब है:

  • पहले T1 complete होगा
  • उसके बाद ही T2 start होगा

यही precedence relation कहलाता है।

Graph में क्या दिखाया जाता है

Precedence Graph में generally दो चीजें होती हैं:

1. Node

हर node एक task या process को represent करता है

2. Directed Edge

Arrow dependency को show करता है

अगर arrow T1 → T2 है,
तो इसका मतलब है:

T1 पहले execute होगा, फिर T2

Example (Basic समझो)

मान लो 3 tasks हैं:

  • T1 = Data read करना
  • T2 = Data process करना
  • T3 = Result print करना

अब dependency यह है:

  • पहले data read होगा
  • फिर processing होगी
  • फिर result print होगा

तो graph होगा:

T1 → T2 → T3

यह एक simple precedence graph है।

Another Example

मान लो tasks हैं:

  • T1
  • T2
  • T3
  • T4

Dependency:

  • T1 के बाद T2 और T3 दोनों हो सकते हैं
  • लेकिन T4 तभी होगा जब T2 और T3 दोनों complete हो जाएँ

तो relation होगा:

  • T1 → T2
  • T1 → T3
  • T2 → T4
  • T3 → T4

यह graph बताता है कि T2 और T3 parallel भी चल सकते हैं, लेकिन T4 को wait करना पड़ेगा।

Precedence Graph की जरूरत क्यों पड़ती है

1. Execution Order समझने के लिए

कौन सा task पहले होगा और कौन सा बाद में

2. Dependency समझने के लिए

कौन सा task किस पर depend करता है

3. Parallel Execution पहचानने के लिए

कौन से tasks एक साथ run हो सकते हैं

4. Synchronization Problems समझने के लिए

Processes के बीच सही coordination बनाना

Important Point: Parallelism

Precedence Graph का एक बहुत important use यह है कि इससे हम समझते हैं कि कौन से tasks parallel execute हो सकते हैं।

Example:

अगर graph में T2 और T3 दोनों केवल T1 पर depend करते हैं,
और दोनों के बीच direct dependency नहीं है,
तो T2 और T3 parallel run कर सकते हैं।

यह system performance improve करने में useful होता है।

Rules to Understand Precedence Graph

Rule 1

अगर A → B है, तो B, A से पहले execute नहीं हो सकता

Rule 2

अगर दो nodes के बीच कोई dependency नहीं है, तो वे parallel execute हो सकते हैं

Rule 3

Arrow हमेशा execution order और dependency को show करता है

Precedence Graph और Synchronization

Synchronization topics में precedence graph बहुत useful होता है, क्योंकि यह बताता है कि shared tasks किस order में होने चाहिए।

Example:

अगर दो processes shared data use कर रही हैं,
तो precedence graph से decide किया जा सकता है कि कौन पहले data write करेगा और कौन बाद में read करेगा।

Real Life Analogy

मान लो खाना बनाना है:

  • T1 = सब्जी काटना
  • T2 = मसाला तैयार करना
  • T3 = सब्जी पकाना
  • T4 = serve करना

अब:

  • T3 तब तक नहीं हो सकता जब तक T1 और T2 complete न हों
  • T4 तब तक नहीं हो सकता जब तक T3 complete न हो

तो यहाँ भी precedence relation बनता है।

Advantages of Precedence Graph

1. Easy Visualization

Task dependency आसानी से समझ आती है

2. Better Planning

Execution order clear हो जाता है

3. Parallelism Detection

Parallel tasks पहचानना आसान होता है

4. Useful in Synchronization

Coordination और ordering problems solve करने में मदद मिलती है

Limitations

1. Large systems में graph complex हो सकता है

अगर tasks बहुत ज्यादा हों, तो graph बड़ा और कठिन हो जाता है

2. Timing information नहीं देता

यह order दिखाता है, लेकिन exact execution time नहीं बताता


Exam Focus Points

Precedence Graph topic में अक्सर ये चीजें पूछी जाती हैं:

  • Precedence Graph की definition
  • Node और edge का meaning
  • Dependency relation
  • Parallel execution
  • Small example के साथ graph explanation

Conclusion

Precedence Graph Operating System में task dependency और execution order को समझने का एक important tool है।
यह बताता है कि कौन सा task पहले होगा, कौन सा बाद में होगा, और कौन से tasks parallel चल सकते हैं।

Synchronization और process coordination को समझने के लिए यह topic बहुत useful है।

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top