ওএসে সেমফোর এবং মনিটরের মধ্যে পার্থক্য
কন্টেন্ট
সেমাফোর এবং মনিটর উভয়ই প্রক্রিয়াগুলিকে পারস্পরিক বর্জনে ভাগ করা সংস্থানগুলিতে অ্যাক্সেসের অনুমতি দেয়। উভয়ই প্রক্রিয়া সিঙ্ক্রোনাইজেশন সরঞ্জাম। পরিবর্তে, তারা একে অপরের থেকে খুব আলাদা। কোথায় সেমফোর্ একটি পূর্ণসংখ্যার পরিবর্তনশীল যা কেবলমাত্র অপেক্ষা () এবং সিগন্যাল () অপারেশন দ্বারা আরম্ভের বাইরে চালিত হতে পারে। অন্যদিকে, মনিটর প্রকার একটি বিমূর্ত ডেটা টাইপ যার গঠন একটি সময়ে একটি প্রক্রিয়া সক্রিয় করতে দেয়। এই নিবন্ধে, আমরা নীচে প্রদর্শিত তুলনা চার্ট সাহায্যে semaphore এবং মনিটরের মধ্যে পার্থক্য আলোচনা করব।
- তুলনা রেখাচিত্র
- সংজ্ঞা
- মূল পার্থক্য
- উপসংহার
তুলনা রেখাচিত্র
তুলনা করার জন্য বেস | সেমফোর্ | মনিটর |
---|---|---|
মৌলিক | Semaphores একটি পূর্ণসংখ্যার পরিবর্তনশীল এস। | মনিটর একটি বিমূর্ত ডেটা ধরণ। |
কর্ম | সেমাফোর এস এর মান সিস্টেমে ভাগ করা সংস্থাগুলির সংখ্যা নির্দেশ করে | মনিটরের ধরণে ভাগ করা ভেরিয়েবল এবং প্রক্রিয়াগুলির সেট রয়েছে যা ভাগ করা ভেরিয়েবলের উপর কাজ করে। |
প্রবেশ | যখন কোনও প্রক্রিয়া ভাগ করা সংস্থানগুলিতে অ্যাক্সেস করে তখন এস এ অপেক্ষা () অপারেশন করে এবং যখন এটি ভাগ করা সংস্থানগুলি ছেড়ে দেয় তখন এটি এস-এ সিগন্যাল () অপারেশন করে when | যখন কোনও প্রক্রিয়া মনিটরে ভাগ করা ভেরিয়েবলগুলি অ্যাক্সেস করতে চায়, তখন প্রক্রিয়াগুলির মাধ্যমে এটি অ্যাক্সেস করা দরকার। |
শর্ত পরিবর্তনশীল | সেমফোরে শর্ত ভেরিয়েবল নেই। | মনিটরের শর্ত ভেরিয়েবল রয়েছে। |
সেমফোর সংজ্ঞা
প্রক্রিয়া সিঙ্ক্রোনাইজেশন সরঞ্জাম হওয়া, সেমফোর্ একটি পূর্ণসংখ্যার পরিবর্তনশীল এস। এই পূর্ণসংখ্যার ভেরিয়েবল এস এর ক্ষেত্রে আরম্ভ করা হয় সংস্থান সংখ্যা সিস্টেমে উপস্থিত Semaphore S এর মানটি কেবল দুটি ফাংশন দ্বারা পরিবর্তিত হতে পারে অপেক্ষার() এবং সংকেত() সূচনা ছাড়াও।
অপেক্ষার () এবং সিগন্যাল () অপারেশনটি semaphore S এর মানকে অবিচ্ছেদ্যভাবে পরিবর্তন করে। যার অর্থ যখন কোনও প্রক্রিয়া যখন সেমফোরের মানটি সংশোধন করে, তখন অন্য কোনও প্রক্রিয়া একই সাথে সেমফোরের মানটি সংশোধন করতে পারে না। তদ্ব্যতীত, অপারেটিং সিস্টেম সমুদ্রের দুটি অংশ পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পৃথক পার্থক্য।
মধ্যে সেমফোর গণনা করা হচ্ছে, সেমফোর এস এর মান সিস্টেমে উপস্থিত সংখ্যার সংখ্যার সাথে সূচনা করা হয়। যখনই কোনও প্রক্রিয়া ভাগ করা সংস্থানগুলিতে অ্যাক্সেস করতে চায় তখন তা সম্পাদন করে অপেক্ষার() যা semaphore অপারেশন decrements এক এক করে সেমফোরের মান। যখন এটি ভাগ করা সংস্থানটি প্রকাশ করে, তখন এটি সম্পাদন করে সংকেত() যা semaphore অপারেশন বাড়তি এক এক করে সেমফোরের মান। যখন semaphore গণনা যায় 0এর অর্থ সমস্ত সম্পদ দখল করা হয় প্রক্রিয়া দ্বারা যদি কোনও প্রক্রিয়াটির জন্য যখন সেমফোরের গণনা 0 হয় তবে কোনও সংস্থান ব্যবহার করা দরকার, এটি অপেক্ষা () এবং কার্যকর করে অবরুদ্ধ ভাগ করা সংস্থানগুলি ব্যবহার করার প্রক্রিয়া যতক্ষণ না এটি প্রকাশ করে এবং সেমফোরের মান 0 এর চেয়ে বেশি হয়ে যায়।
মধ্যে বাইনারি সেমফোরসেমফোরের মান 0 এবং 1 এর মধ্যে রয়েছে It এটি মুটেক্স লকের মতো, তবে মিউটেক্স একটি লকিং মেকানিজম, যদিও সেমফোর একটি সংকেত প্রক্রিয়া। বাইনারি সেমফোরে, কোনও প্রক্রিয়া যদি সংস্থানটি অ্যাক্সেস করতে চায় তবে সেমোফোরে ওয়েট () অপারেশন করে এবং decrements 1 থেকে 0 পর্যন্ত semaphore এর মান। প্রক্রিয়া যখন রিসোর্সটি প্রকাশ করে, এটি একটি করে সংকেত() সেমফোরে অপারেশন এবং এর মান 1 বৃদ্ধি করে the
মনিটরের সংজ্ঞা
প্রক্রিয়া সিঙ্ক্রোনাইজেশনের জন্য সেমফোর ব্যবহার করার সময় ঘটে যাওয়া সময়ের ত্রুটিগুলি কাটিয়ে ওঠার জন্য গবেষকরা একটি উচ্চ-স্তরের সিঙ্ক্রোনাইজেশন কনস্ট্রাক্ট চালু করেছেন অর্থাৎ মনিটরের ধরণ। একটি মনিটর টাইপ হয় একটি বিমূর্ত তথ্য প্রকার এটি প্রক্রিয়া সিঙ্ক্রোনাইজেশনের জন্য ব্যবহৃত হয়।
একটি বিমূর্ত ডেটা টাইপ মনিটর টাইপ হ'ল শেয়ারড ডেটা ভেরিয়েবল যা সমস্ত প্রক্রিয়া এবং কিছু প্রোগ্রামার-সংজ্ঞায়িত দ্বারা ভাগ করা উচিত অপারেশন যা মনিটরের মধ্যে পারস্পরিক বর্জনে প্রক্রিয়াগুলি কার্যকর করতে দেয়। একটি প্রক্রিয়া পারে সরাসরি অ্যাক্সেস না মনিটরে শেয়ারড ডেটা ভেরিয়েবল; প্রক্রিয়া এটি অ্যাক্সেস আছে প্রক্রিয়া মাধ্যমে মনিটরে সংজ্ঞায়িত করা হয় যা মনিটরে একবারে ভাগ করা ভেরিয়েবলগুলি অ্যাক্সেসের জন্য কেবল একটি প্রক্রিয়াটিকে অনুমতি দেয়।
মনিটরের বাক্য গঠনটি নিম্নরূপ:
মনিটরের মনিটর_নাম {// ভাগ করা পরিবর্তনশীল ঘোষণা প্রক্রিয়া পি 1 (।।) P} পদ্ধতি পি 2 (।)}} পদ্ধতি পিএন (।)}} সূচনা কোড (।।) {}}
একটি মনিটর এমন একটি কনস্ট্রাক্ট যেমন মনিটরের মধ্যে এক সময় কেবলমাত্র একটি প্রক্রিয়া সক্রিয় থাকে। যদি অন্য প্রক্রিয়া মনিটরে ভাগ করে নেওয়া ভেরিয়েবল অ্যাক্সেস করার চেষ্টা করে তবে এটি ব্লক হয়ে যায় এবং পূর্বে অ্যাক্সেস করার প্রক্রিয়াটি যখন প্রকাশ করে তখন ভাগ করা ডেটাতে অ্যাক্সেস পেতে কাতারে দাঁড়িয়ে থাকে।
শর্তাধীন ভেরিয়েবল অতিরিক্ত সিঙ্ক্রোনাইজেশন প্রক্রিয়া জন্য চালু করা হয়েছিল। শর্তসাপেক্ষ পরিবর্তনশীল একটি প্রক্রিয়া মনিটরের ভিতরে অপেক্ষা করার অনুমতি দেয় এবং অন্যান্য প্রক্রিয়া সংস্থানগুলি রিলিজ করলে অপেক্ষার প্রক্রিয়াটি তত্ক্ষণাত পুনরায় শুরু করার অনুমতি দেয়।
দ্য শর্তাধীন পরিবর্তনশীল মাত্র দুটি অপারেশন শুরু করতে পারে অপেক্ষার() এবং সংকেত()। যেখানে যদি একটি প্রক্রিয়া পি অপেক্ষা করে () অপারেশন এটি অন্যান্য প্রক্রিয়া না হওয়া পর্যন্ত মনিটরে স্থগিত হয়ে যায় প্রশ্ন ইনোভেল সিগন্যাল () অপারেশন অর্থাত্ একটি প্রক্রিয়া দ্বারা চালিত একটি সিগন্যাল () অপারেশন স্থগিত প্রক্রিয়া পুনরায় শুরু করে।
- সেমফোর এবং মনিটরের মধ্যে মূল পার্থক্য হ'ল সেমফোর্ একটি পূর্ণসংখ্যার পরিবর্তনশীল এস যা সিস্টেমে উপলব্ধ সংস্থানগুলির সংখ্যা নির্দেশ করে whereas মনিটর হয় বিমূর্ত তথ্য প্রকার যা একসাথে সমালোচনামূলক বিভাগে কেবল একটি প্রক্রিয়া সম্পাদন করতে দেয়।
- Semaphore এর মান দ্বারা পরিবর্তন করা যেতে পারে অপেক্ষা করুন () এবং সংকেত () শুধুমাত্র অপারেশন। অন্যদিকে, একটি মনিটরের অংশীদারি ভেরিয়েবলগুলি এবং প্রক্রিয়াগুলি কেবল সেই প্রক্রিয়াগুলির মাধ্যমে ভাগ করা ভেরিয়েবলগুলি অ্যাক্সেস করতে পারে has
- সেমাফোরে যখন কোনও প্রক্রিয়া ভাগ করা সংস্থানগুলিতে অ্যাক্সেস করতে চায় তখন প্রক্রিয়া সম্পাদন করে অপেক্ষার() অপারেশন এবং সংস্থানগুলি রিসোর্স করে এবং যখন এটি সম্পাদন করে সংস্থানগুলি ছেড়ে দেয় সংকেত() অপারেশন. মনিটরে যখন কোনও প্রক্রিয়া ভাগ করে নেওয়া সংস্থানগুলিতে অ্যাক্সেস প্রয়োজন তখন মনিটরে পদ্ধতিগুলির মাধ্যমে সেগুলি অ্যাক্সেস করতে হবে।
- মনিটরের ধরণ রয়েছে শর্ত পরিবর্তনশীল যা semaphore নেই।
উপসংহার:
সেমফোরের তুলনায় মনিটরগুলি প্রয়োগ করা সহজ, এবং সেমোফোরের তুলনায় মনিটরে ভুল হওয়ার খুব কম সম্ভাবনা রয়েছে।