Deadlock কি?

Operating system এ deadlock হতে পারে যদি কোন নির্দিষ্ট সময়ে দুটি বা তার বেশি process তাদের execution সম্পূর্ণ করার জন্য কোন নির্দিষ্ট resource এর access করতে চায়, যা সেই মুহূর্তে অন্য process দ্বারা বাবহ্রিত হচ্ছে ।

ওপরের ছবিতে –

process 1 এর কাছে resource 1 আছে এবং resource 2 ব্যবহার করতে চাইছে।

একই রকম ভাবে process ২ এর কাছে resource ২ আছে এবং resource ১ ব্যবহার করতে চাইছে।

এক্ষেত্রে Process 1 এবং process 2 দুটিতে deadlock তৈরি হয়েছে, কারন এরা দুজনই একে অপরের resource ব্যবহার করতে চাইছে।

Coffman Conditions

চারটি Coffman condition তৈরি হলে deadlock হতে পারে।

Coffman condition গুলি হল −

  • Mutual Exclusion কোন একটি নির্দিষ্ট সময়ে একটি resource কে একটি process দ্বারা অধিকৃত বা allocated হতে হবে।
  • Hold and Wait process এর কাছে আকাধিক resources থাকা সত্বেও অন্য processes এর কাছ থেকে resources , request করছে।
  • No Preemption resource কে process থেকে জোর পূর্বক আলাদা করা সম্ভহব হচ্ছে না ।
  • Circular Wait process, resource এর জন্য অপেখ্যা করছে যা অন্য process দ্বারা অধিকৃত। দ্বিতীয় process টি আবার তৃতীয় কোন process দ্বারা অধিকৃত অন্য resource এর জন্য অপেক্ষা করছে। একই ভাবে তৃতীয় process টি আবার প্রথম process দ্বারা অধিকৃত resource এর জন্য অপেক্ষা করছে। এই ভাবে একটি Circular Wait তৈরি হবে।

Deadlock Detection

Deadlock, resource scheduler এর সাহায্যে detect করা সম্ভব কারন resource scheduler সব resource কে track করে। কোন deadlock, detect হবার পর নিম্ন লিখিত পদ্ধতি অনুসরন করে তা resolve করা সম্ভব −

  • যে সমস্ত process গুলির মধ্যে deadlock হয়েছে তাদের terminate করা।
  • কিছু Resource কে কিছু process থেকে পরাস্থ করা যাতে deadlock টি resolve হতে পারে।