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