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 है।