কম্পিউটার

ডিস্ট্রিবিউটেড শেয়ার্ড মেমরি বাস্তবায়নের জন্য অ্যালগরিদম


শেয়ার করা মেমরি মেমরি ব্লক যা একাধিক প্রোগ্রাম দ্বারা অ্যাক্সেস করা যেতে পারে। একটি শেয়ার্ড মেমরি ধারণা যোগাযোগের একটি উপায় প্রদান করতে এবং কম অপ্রয়োজনীয় মেমরি ব্যবস্থাপনা প্রদান করতে ব্যবহৃত হয়।

ডিস্ট্রিবিউটেড শেয়ার্ড মেমরি সংক্ষেপে DSM বিতরণ করা সিস্টেমে ভাগ করা মেমরি ধারণার বাস্তবায়ন। ডিএসএম সিস্টেম শেয়ার্ড মেমরি মডেলগুলিকে ঢিলেঢালাভাবে সংযুক্ত সিস্টেমে প্রয়োগ করে যা সিস্টেমে একটি স্থানীয় শারীরিক ভাগ করা মেমরি থেকে বঞ্চিত হয়। এই ধরনের সিস্টেমে বিতরণ করা শেয়ার্ড মেমরি একটি ভার্চুয়াল মেমরি স্পেস প্রদান করে যা সমস্ত সিস্টেমের দ্বারা অ্যাক্সেসযোগ্য (নোড নামেও পরিচিত। ) বিতরণ করা অনুক্রমের।

কিছু সাধারণ চ্যালেঞ্জ যা ডিএসএম-

বাস্তবায়নের সময় মনে রাখতে হবে
  • শেয়ার করা মেমরিতে দূরবর্তীভাবে সংরক্ষিত ডেটার মেমরি ঠিকানা (অবস্থান) ট্র্যাক করা।

  • দূরবর্তী ডেটার রেফারেন্সের সাথে যুক্ত যোগাযোগের বিলম্ব এবং উচ্চ ওভারহেড কমাতে।

  • DSM-এ শেয়ার করা ডেটার একযোগে অ্যাক্সেস নিয়ন্ত্রণ করা।

এই চ্যালেঞ্জগুলির উপর ভিত্তি করে বিতরণ করা শেয়ার্ড মেমরি বাস্তবায়নের জন্য ডিজাইন করা হয়েছে অ্যালগরিদম। চারটি অ্যালগরিদম আছে -

  • সেন্ট্রাল সার্ভার অ্যালগরিদম
  • মাইগ্রেশন অ্যালগরিদম
  • প্রতিলিপি অ্যালগরিদম পড়ুন
  • সম্পূর্ণ প্রতিলিপি অ্যালগরিদম

সেন্ট্রাল সার্ভার অ্যালগরিদম

সমস্ত ভাগ করা ডেটা কেন্দ্রীয় সার্ভার দ্বারা রক্ষণাবেক্ষণ করা হয়৷ . বিতরণ করা সিস্টেমের অন্যান্য নোডগুলি ডেটা পড়ার এবং লেখার জন্য অনুরোধ সার্ভারে যা অনুরোধ পরিবেশন করে এবং আপডেট করে বা স্বীকৃতি বার্তা সহ ডেটাতে অ্যাক্সেস প্রদান করে .

এই স্বীকৃতি বার্তাগুলি সার্ভার দ্বারা পরিবেশিত ডেটা অনুরোধের অবস্থা প্রদান করতে ব্যবহৃত হয়। যখন কলিং ফাংশনে ডেটা পাঠানো হয়, তখন এটি এমন একটি সংখ্যাকে স্বীকার করে যা একযোগ বজায় রাখার জন্য ডেটার অ্যাক্সেস ক্রম দেখায়। এবং ব্যর্থতার ক্ষেত্রে টাইম-আউট ফেরত দেওয়া হয়।

বৃহত্তর বিতরণ সিস্টেমের জন্য, একাধিক সার্ভার থাকতে পারে। এই ক্ষেত্রে, সার্ভারগুলি তাদের ঠিকানা ব্যবহার করে বা ম্যাপিং ফাংশন ব্যবহার করে অবস্থিত৷

ডিস্ট্রিবিউটেড শেয়ার্ড মেমরি বাস্তবায়নের জন্য অ্যালগরিদম

মাইগ্রেশন অ্যালগরিদম

নাম অনুসারে মাইগ্রেশন অ্যালগরিদম ডেটা উপাদানগুলির মাইগ্রেশনের কাজ করে। প্রতিটি অনুরোধ পরিবেশন করার জন্য একটি কেন্দ্রীয় সার্ভার ব্যবহার করার পরিবর্তে, একটি সিস্টেম দ্বারা অনুরোধ করা ডেটা ধারণকারী ব্লকটি স্থানান্তরিত হয় আরও অ্যাক্সেস এবং প্রক্রিয়াকরণের জন্য এটিতে। এটি অনুরোধে ডেটা স্থানান্তরিত করে৷

যদিও এই অ্যালগরিদমটি ভাল হয় যখন একটি সিস্টেম একাধিকবার ডেটার একই ব্লক অ্যাক্সেস করে এবং ভার্চুয়াল মেমরি সংহত করার ক্ষমতা ধারণা, কিছু ঘাটতি আছে যেগুলো সমাধান করা প্রয়োজন।

শুধুমাত্র একটি নোড একবারে ভাগ করা ডেটা উপাদান অ্যাক্সেস করতে সক্ষম হয় এবং পুরো ব্লকটি সেই নোডে স্থানান্তরিত হয়। এছাড়াও, এই অ্যালগরিদমটি আরও থ্র্যাশিং প্রবণ৷ নোডের অনুরোধে ডেটা আইটেম স্থানান্তরের কারণে।

ডিস্ট্রিবিউটেড শেয়ার্ড মেমরি বাস্তবায়নের জন্য অ্যালগরিদম

প্রতিলিপি অ্যালগরিদম পড়ুন

রিড রেপ্লিকেশন অ্যালগরিদমে, যে ডেটা ব্লকটি অ্যাক্সেস করতে হবে তা হল প্রতিলিপি করা এবং শুধুমাত্র পড়ার অনুমতি আছে সব কপি মধ্যে. যদি একটি লেখার অপারেশন করা হয়, তাহলে সমস্ত কপি আপডেট না হওয়া পর্যন্ত সমস্ত পঠন অ্যাক্সেস বন্ধ করে দেওয়া হয়৷

সামগ্রিক সিস্টেমের কর্মক্ষমতা উন্নত হয়েছে কারণ একসাথে অ্যাক্সেস অনুমোদিত . কিন্তু অপারেশন ব্যয়বহুল লিখুন সঙ্গতি বজায় রাখার জন্য ভাগ করা সমস্ত ব্লক আপডেট করার প্রয়োজনীয়তার কারণে। সামঞ্জস্য বজায় রাখতে ডেটা উপাদানের সমস্ত কপি ট্র্যাক করতে হবে৷

ডিস্ট্রিবিউটেড শেয়ার্ড মেমরি বাস্তবায়নের জন্য অ্যালগরিদম

সম্পূর্ণ প্রতিলিপি অ্যালগরিদম

রেপ্লিকেশন অ্যালগরিদম পড়ার জন্য একটি এক্সটেনশন যা নোডগুলিকে পড়া এবং লিখতে উভয়ই সম্পাদন করতে দেয় একযোগে ভাগ করা ব্লকে অপারেশন। কিন্তু নোডগুলির এই অ্যাক্সেসটি এর ধারাবাহিকতা বজায় রাখার জন্য নিয়ন্ত্রিত হয়৷

সমস্ত নোডের একযোগে অ্যাক্সেসে ডেটার ধারাবাহিকতা বজায় রাখার জন্য ক্রম বজায় রাখা হয় এবং ডেটা একটি মাল্টিকাস্ট-এ করা প্রতিটি পরিবর্তনের পরে পরিবর্তন সহ সমস্ত ডেটা কপি প্রতিফলিত হয়।

ডিস্ট্রিবিউটেড শেয়ার্ড মেমরি বাস্তবায়নের জন্য অ্যালগরিদম


  1. ডেটা স্ট্রাকচারে একটি এক্সপ্রেশন ট্রি তৈরি করার জন্য অ্যালগরিদম

  2. সি প্রোগ্রামের মেমরি লেআউট

  3. মেমরি ম্যানেজমেন্টে সেরা ফিট অ্যালগরিদমের জন্য C++ প্রোগ্রাম

  4. জ্যাঙ্গোতে মডেল রিভার্সন বাস্তবায়ন করা