Computer Science Deadlock কী এবং এর কারণ গাইড ও নোট

698

Deadlock হল একটি পরিস্থিতি যেখানে দুটি বা ততোধিক প্রক্রিয়া একে অপরের জন্য অপেক্ষা করে, কিন্তু কোনটিই এগিয়ে যেতে পারে না। এটি সাধারণত সেই সময় ঘটে যখন একটি প্রক্রিয়া একটি সম্পদ (resource) অর্জন করে এবং পরে অন্য সম্পদ অর্জনের জন্য অপেক্ষা করতে থাকে, যখন অন্য একটি প্রক্রিয়া সেই সম্পদটি অর্জন করতে চায় যা প্রথম প্রক্রিয়াটির কাছে রয়েছে। ফলস্বরূপ, উভয় প্রক্রিয়া একে অপরের জন্য অপেক্ষা করে, এবং সিস্টেম কোনটিই অগ্রসর হয় না।

Deadlock এর কারণ

Deadlock ঘটার জন্য সাধারণত চারটি শর্ত থাকা প্রয়োজন, যা Hold and Wait, No Preemption, Mutual Exclusion, এবং Circular Wait হিসাবে পরিচিত:

১. Mutual Exclusion (মিউচুয়াল এক্সক্লুশন):

  • সম্পদগুলি শুধুমাত্র এক সময়ে একটি প্রক্রিয়া দ্বারা ব্যবহার করা যায়। অর্থাৎ, যদি একটি প্রক্রিয়া একটি সম্পদ ধরে থাকে, তাহলে অন্য প্রক্রিয়াগুলি সেই সম্পদটি ব্যবহার করতে পারবে না।

২. Hold and Wait (হোল্ড অ্যান্ড ওয়েট):

  • এক বা একাধিক সম্পদ ধারণ করা একটি প্রক্রিয়া অন্য সম্পদগুলির জন্য অপেক্ষা করছে। উদাহরণস্বরূপ, প্রক্রিয়া A একটি সম্পদ ধরে রেখেছে এবং অন্য একটি সম্পদের জন্য অপেক্ষা করছে যা প্রক্রিয়া B ধরে রেখেছে।

৩. No Preemption (নো প্রীএম্পশন):

  • একবার একটি প্রক্রিয়া একটি সম্পদ অর্জন করলে, সেই সম্পদটি অন্য কোনো প্রক্রিয়া দ্বারা জোরপূর্বক নেওয়া যায় না। প্রক্রিয়া A যদি সম্পদ X ধারণ করে এবং সম্পদ Y অর্জনের জন্য অপেক্ষা করে, তবে সম্পদ X কে অন্য প্রক্রিয়াকে দেওয়া যাবে না যতক্ষণ না A নিজে তা মুক্ত না করে।

৪. Circular Wait (সার্কুলার ওয়েট):

  • প্রক্রিয়াগুলির একটি চক্র তৈরি হয় যেখানে প্রতিটি প্রক্রিয়া একটি সম্পদের জন্য অপেক্ষা করছে যা পরবর্তী প্রক্রিয়ার দ্বারা ধরা হয়েছে। উদাহরণস্বরূপ, প্রক্রিয়া A সম্পদ X এর জন্য অপেক্ষা করছে, প্রক্রিয়া B সম্পদ Y এর জন্য অপেক্ষা করছে, এবং প্রক্রিয়া C সম্পদ Z এর জন্য অপেক্ষা করছে, এবং প্রক্রিয়া A আবার সম্পদ Z এর জন্য অপেক্ষা করছে। এটি একটি সার্কুলার চক্র তৈরি করে।

Deadlock এর উদাহরণ

ধরি, দুটি প্রক্রিয়া (A এবং B) এবং দুটি সম্পদ (X এবং Y):

  1. প্রক্রিয়া A সম্পদ X ধারণ করে।
  2. প্রক্রিয়া B সম্পদ Y ধারণ করে।
  3. প্রক্রিয়া A সম্পদ Y এর জন্য অপেক্ষা করছে।
  4. প্রক্রিয়া B সম্পদ X এর জন্য অপেক্ষা করছে।

এখন, A সম্পদ Y এর জন্য অপেক্ষা করছে এবং B সম্পদ X এর জন্য অপেক্ষা করছে। উভয় প্রক্রিয়া একে অপরের জন্য অপেক্ষা করছে এবং এর ফলে deadlock সৃষ্টি হচ্ছে।

Deadlock প্রতিরোধের কৌশল

১. Deadlock Prevention: উপরোক্ত চারটি শর্তের মধ্যে অন্তত একটি শর্ত সরিয়ে ফেলা। উদাহরণস্বরূপ, সম্পদগুলির জন্য প্রি-এম্পশন সক্ষম করা।

২. Deadlock Avoidance: কিছু অ্যালগরিদম ব্যবহার করে (যেমন Banker’s Algorithm) সিস্টেমের অবস্থার উপর নজর রাখা যাতে এটি একটি নিরাপদ অবস্থানে থাকে।

৩. Deadlock Detection and Recovery: একটি ডেডলক ঘটলে তা শনাক্ত করা এবং সেটি থেকে পুনরুদ্ধার করার কৌশল।

উপসংহার

Deadlock একটি গুরুত্বপূর্ণ সমস্যা যা সফটওয়্যার এবং সিস্টেম ডিজাইনে প্রভাব ফেলতে পারে। এটি সঠিকভাবে বোঝা এবং প্রতিরোধ করা প্রয়োজন, যাতে সিস্টেমের কার্যকারিতা এবং স্থায়িত্ব বজায় রাখা যায়। Deadlock এর কারণগুলি চিনতে পারা এবং সঠিক প্রতিকার গ্রহণ করা একটি কার্যকরী সিস্টেম ডিজাইন নিশ্চিত করে।

Promotion

Are you sure to start over?

Loading...