Operating Systems Deadlock ও Banker's Algorithm
সংক্ষেপে মনে রাখুন
দ্রুত রিভিশনের জন্য মূল কথা
- ডেডলক ঘটার ৪টি আবশ্যিক শর্ত মুখস্থ রাখা
- Need Matrix = Max - Allocation হিসাব করা
- Banker's Algorithm প্রয়োগ করে Safe Sequence বের করতে পারা
অপারেটিং সিস্টেমে ডেডলক ঘটার জন্য এডওয়ার্ড কফম্যানের ৪টি শর্ত একযোগে পূরণ হতে হয়। শর্টকাট নেমোনিক "M-H-N-C":…
ডেডলক এভয়ডেন্স (Banker's Algorithm) এবং ডেডলক প্রিভেনশন কিন্তু এক নয়। প্রিভেনশন ৪টি শর্তের যেকোনো একটি ভেঙে দেয় (সিস্টেম ডিজাইনে), আর এভয়ডেন্স রানটাইমে রিসোর্স বরাদ্দের আগে সেফ স্টেট যাচাই করে রিসোর্স দেয়।
কফম্যানের ৪টি আবশ্যক শর্ত (Coffman Conditions)
ডেডলক ঘটতে হলে নিচের চারটি শর্ত একসাথে পূরণ হতে হবে:
- Mutual Exclusion: অন্তত একটি রিসোর্স নন-শেয়ারেবল হতে হবে।
- Hold and Wait: একটি প্রসেস রিসোর্স ধরে রেখে অন্যের জন্য অপেক্ষা করবে।
- No Preemption: জোরপূর্বক রিসোর্স কেড়ে নেওয়া যাবে না।
- Circular Wait: প্রসেসদের মধ্যে বৃত্তাকার অপেক্ষার শৃঙ্খল থাকবে ($P_0 \to P_1 \to P_2 \to P_0$)।
Banker's Algorithm এর ডেটা স্ট্রাকচার
- $\text{Available}[m]$: প্রতিটি রিসোর্স টাইপের বর্তমান ফাঁকা সংখ্যা
- $\text{Max}[n][m]$: প্রসেসের সর্বোচ্চ চাহিদা
- $\text{Allocation}[n][m]$: বর্তমানে বরাদ্দকৃত রিসোর্স
- $\text{Need}[n][m] = \text{Max}[n][m] - \text{Allocation}[n][m]$
> ⚡ ৫-সেকেন্ড শর্টকাট (Exam Shortcut): > পরীক্ষার প্রশ্নে সর্বদা $\text{Need} \le \text{Available}$ যাচাই করুন। কাজ শেষ হলে তার $\text{Allocation}$ কারেন্ট $\text{Available}$-এর সাথে যোগ হয়ে নতুন $\text{Available}$ তৈরি হবে।
> ⚠️ পরীক্ষার ফাঁদ (Exam Trap): > ডেডলক ডিটেকশন আর ডেডলক প্রিভেনশন এক নয়। একটি শর্ত ভেঙে ডেডলক প্রতিরোধ করা হলো প্রিভেনশন; আর রানিং সিস্টেমে সেফ স্টেট চেক করা হলো অ্যাভয়েডেন্স (যেমন Banker's)।
পরের ধাপ
এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন
পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে