কম্পিউটার

C/C++ এ বার্কলের অ্যালগরিদম


Berkeley's Algorithm হল একটি অ্যালগরিদম যা বিতরণ করা সিস্টেমে ঘড়ি সিঙ্ক্রোনাইজেশনের জন্য ব্যবহৃত হয়। এই অ্যালগরিদমটি এমন ক্ষেত্রে ব্যবহার করা হয় যখন বিতরণ করা নেটওয়ার্কের কিছু বা সমস্ত সিস্টেমে এই সমস্যাগুলির মধ্যে একটি থাকে -

  • উ:মেশিনের সঠিক সময়ের উৎস নেই।

  • 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. C++ এ বেলম্যান ফোর্ড অ্যালগরিদম?

  2. লিনাক্সে C++ এর সেরা IDE কি?

  3. লিনাক্সে c++ এর জন্য শীর্ষ IDE কি?

  4. উইন্ডোতে c++ এর জন্য শীর্ষ IDE কি?