Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C/C++ में बर्कले का एल्गोरिथम

बर्कले का एल्गोरिथ्म एक एल्गोरिथ्म है जिसका उपयोग वितरित प्रणालियों में घड़ी के सिंक्रनाइज़ेशन के लिए किया जाता है। इस एल्गोरिथम का उपयोग उन मामलों में किया जाता है जब वितरित नेटवर्क के कुछ या सभी सिस्टम में इनमें से कोई एक समस्या होती है -

  • उ. मशीन के पास सटीक समय स्रोत नहीं है।

  • B. नेटवर्क या मशीन में UTC सर्वर नहीं है।

वितरित प्रणाली इसमें कई नोड होते हैं जो भौतिक रूप से अलग होते हैं लेकिन एक नेटवर्क का उपयोग करके एक साथ जुड़े होते हैं।

C/C++ में बर्कले का एल्गोरिथम

बर्कले का एल्गोरिथम

इस एल्गोरिथम में, सिस्टम एक नोड को मास्टर/लीडर नोड के रूप में चुनता है। यह सर्वर में पूल नोड्स से किया जाता है।

एल्गोरिथम है -

  • चुनाव प्रक्रिया सर्वर में मास्टर नोड चुनती है।

  • नेता तब अनुयायियों का चुनाव करता है जो अपना समय क्रिश्चियन के एल्गोरिथम के समान प्रदान करते हैं , यह समय-समय पर किया जाता है।

  • नेता तब सापेक्ष समय की गणना करता है जिसे अन्य नोड्स को वैश्विक घड़ी के समय में सिंक्रनाइज़ करने के लिए बदलना या समायोजित करना पड़ता है जो कि नेता नोड को प्रदान किए जाने वाले समय का औसत है।

आइए बर्कले एल्गोरिथम का उपयोग करके घड़ी को सिंक्रोनाइज़ करने के लिए अपनाए गए चरणों का सारांश दें,

वितरित सिस्टम में नोड्स उनके घड़ी के समय के साथ -

N1 -> 14:00 (master node)
N2 -> 13: 46
N3 -> 14: 15

चरण 1 - नेता चुना जाता है, नोड N1 सिस्टम में मास्टर होता है।

चरण 2 - नेता सभी नोड्स से समय का अनुरोध करता है।

N1 -> time : 14:00
N2 -> time : 13:46
N3 -> time : 14:20

चरण 3 - नेता समय को औसत करता है और सुधार समय को वापस नोड्स में भेजता है।

N1 -> Corrected Time 14:02 (+2)
N2 -> Corrected Time 14:02 (+16)
N3 -> Corrected Time 14:02 (-18)

यह दिखाता है कि बर्कले के एल्गोरिथम का उपयोग करके एक वितरित सिस्टम के नोड्स का सिंक्रनाइज़ेशन कैसे किया जाता है।


  1. सी ++ में बेलमैन फोर्ड एल्गोरिदम?

    बेलमैन फोर्ड एल्गोरिथम गतिशील प्रोग्रामिंग एल्गोरिथम है जिसका उपयोग किसी भी शीर्ष के सबसे छोटे पथ को खोजने के लिए किया जाता है, जिसे शुरुआती शीर्ष के रूप में माना जाता है। यह एल्गोरिथ्म पुनरावृत्त विधि का अनुसरण करता है और लगातार सबसे छोटा पथ खोजने का प्रयास करता है। भारित ग्राफ़ पर बेलमैन फोर्ड एल्

  1. Linux पर c++ के लिए शीर्ष IDE क्या है?

    केवल टेक्स्ट एडिटर्स पर बड़े प्रोजेक्ट्स को मैनेज करना मुश्किल है। यदि आप ऐसे मामलों में आईडीई का उपयोग करते हैं तो आप अधिक उत्पादक और कम निराश होने की संभावना रखते हैं। विभिन्न प्रकार के आईडीई हैं और आपको अपनी आवश्यकताओं के अनुरूप सही का चयन करना चाहिए। यहाँ Linux के लिए सर्वश्रेष्ठ C/C++ IDE की सू

  1. विंडो पर c++ के लिए शीर्ष IDE क्या है?

    केवल टेक्स्ट एडिटर्स पर बड़े प्रोजेक्ट्स को मैनेज करना मुश्किल है। यदि आप ऐसे मामलों में आईडीई का उपयोग करते हैं तो आप अधिक उत्पादक और कम निराश होने की संभावना रखते हैं। विभिन्न प्रकार के आईडीई हैं और आपको अपनी आवश्यकताओं के अनुरूप सही का चयन करना चाहिए। यहां विंडो के लिए सर्वश्रेष्ठ C/C++ IDE की सू