সেমিফোর এবং মনিটর মধ্যে পার্থক্য

Anonim

স্যামফোরা বনাম মনিটর

স্যামফোরা একটি ডেটা স্ট্রাকচার যা একাধিক প্রসেসগুলি একটি সাধারণ অ্যাক্সেস না করে তা নিশ্চিত করতে ব্যবহৃত হয়। সমান্তরাল প্রোগ্রামিং পরিবেশে একই সময়ে রিসোর্স বা একটি জটিল বিভাগ। মৃত লক এবং জাতি শর্তগুলি এড়াতে Semaphores ব্যবহার করা হয়। মনিটর একটি প্রোগ্রামিং ভাষা গঠন যা একই সময়ে একই রিসোর্স ব্যবহার করে একাধিক প্রসেস এড়ানোর জন্য ব্যবহার করা হয় সুতরাং পারস্পরিক বর্জনের নিশ্চয়তা দেয়। মনিটর এই টাস্কটি অর্জনের জন্য শর্তাধীন ভেরিয়েবল ব্যবহার করে।

স্যামফোরা কি?

সেমিফোর একটি ডাটা স্ট্রাকচার যা জটিল অংশগুলিতে পারস্পরিক বর্ধিতকরণের জন্য ব্যবহৃত হয়। স্যামফোরাস প্রধানত দুই অপারেশনকে সমর্থন করে (অপেক্ষা ঐতিহাসিকভাবে পি হিসাবে পরিচিত) এবং সিগন্যাল (ঐতিহাসিকভাবে V হিসাবে পরিচিত)। অপেক্ষা অপারেশন একটি প্রক্রিয়া অবরোধ করে যতক্ষণ না সেমফার খোলা থাকে এবং সংকেত অপারেশনটি অন্য প্রক্রিয়াকে (থ্রেড) প্রবেশ করতে দেয়। প্রতিটি স্যামসাংয়ের অপেক্ষা প্রক্রিয়ার একটি সারি সঙ্গে যুক্ত করা হয়। অপেক্ষা অপারেশন একটি থ্রেড দ্বারা বলা হয়, যদি স্যামসাং খোলা হয়, থ্রেড অবিরত করতে পারেন। অপেক্ষা অপারেশন একটি থ্রেড দ্বারা বলা হয় যখন সেমিফার বন্ধ করা হয়, থ্রেড অবরুদ্ধ এবং এটি সারিতে অপেক্ষা করতে হবে। সিগন্যাল অপারেশন একটি স্যামসাফার প্রর্দশিত হয় এবং যদি ইতিমধ্যে একটি কক্ষটি অপেক্ষা করে একটি থ্রেড থাকে, তবে এই প্রক্রিয়াটি এগিয়ে যাওয়ার অনুমতি দেওয়া হয় এবং যদি কোনও থ্রেড কিউএটিতে অপেক্ষা না করে তবে পরবর্তী থ্রেডের জন্য সংকেতটি মনে রাখা হয়। দুই ধরনের semaphores mutex semaphores নামক এবং semaphores গণনা আছে। Mutex semaphores একটি সম্পদ একটি একক এক্সেস এবং গণনা semaphores একাধিক থ্রেড একটি সম্পদ অ্যাক্সেস করতে অনুমতি দেয় (যা অনেক ইউনিট পাওয়া যায়)

একটি মনিটর কি?

একটি মনিটর একটি প্রোগ্রামিং ভাষা গঠন যা ভাগ ডেটা অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহৃত হয়। মনিটরগুলি ভাগ করা ডেটা স্ট্রাকচার, পদ্ধতি (যেগুলি ভাগ করা ডেটা স্ট্রাকচারগুলিতে কাজ করে) এবং সমকক্ষ পদ্ধতির আমন্ত্রণগুলির মধ্যে সিঙ্ক্রোনাইজেশন অন্তর্ভুক্ত করে। একটি মনিটর নিশ্চিত করে যে তার ডেটা অবাঞ্ছিত অ্যাক্সেস এবং গ্যারান্টি প্রদানের সম্মুখীন হয় না যা ট্র্যাক করে (যা মনিটর এর ডেটা দ্বারা তার পদ্ধতিগুলি ব্যবহার করে) বৈধভাবে যোগাযোগ করে। একটি মনিটর একটি নির্দিষ্ট সময় কোনও মনিটর প্রক্রিয়া চালানোর জন্য শুধুমাত্র একটি থ্রেড অনুমোদন করে পারস্পরিক বর্জনের গ্যারান্টি দেয়। যদি আরেকটি থ্রেড মনিটরে একটি পদ্ধতি চালু করতে চেষ্টা করে, তবে একটি থ্রেড ইতিমধ্যে মনিটরে একটি পদ্ধতি সম্পাদন করছে, তবে দ্বিতীয় পদ্ধতিটি বন্ধ করা হয়েছে এবং এটি সারিতে অপেক্ষা করতে হবে। হোয়ার মনিটর এবং মেটা মনিটর নামে দুটি ধরনের মনিটর আছে তারা প্রধানত তাদের নির্দিষ্ট সময়সূচী মধ্যে পার্থক্য।

স্যামফোরা এবং মনিটর মধ্যে পার্থক্য কি?

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