মেমরিতে প্রসেসগুলির P সংখ্যা এবং তাদের সম্পাদন সম্পূর্ণ করার জন্য প্রয়োজনীয় সংস্থানগুলির N সংখ্যা দেওয়া এবং কাজটি হল ন্যূনতম সংখ্যক সংস্থান খুঁজে বের করা যা প্রক্রিয়াগুলিতে বরাদ্দ করা উচিত যাতে অচলাবস্থা কখনই ঘটবে না।পি>
একটি অচলাবস্থা কি
ডেডলক হল একটি অপারেটিং সিস্টেমের পরিস্থিতি যেখানে মেমরিতে থাকা একাধিক প্রসেস তাদের কার্য সম্পাদন করতে সক্ষম হয় না কারণ প্রোগ্রাম নির্বাহের জন্য প্রয়োজনীয় সংস্থানগুলি অন্য কোনও সংস্থান দ্বারা ধরে রাখা হয় যারা সম্পূর্ণ হওয়ার জন্য অন্য কোনও সংস্থানের জন্য অপেক্ষা করছে৷
ধরা যাক মেমরিতে P1 এবং P2 দুটি প্রসেস আছে যেখানে P1 এর জন্য রিসোর্স R1 এবং P2 এর জন্য রিসোর্স R2 প্রয়োজন, কিন্তু P1 যখন রিসোর্স R2 ধরে রাখে এবং রিসোর্স R1 এর জন্য অপেক্ষা করে একইভাবে P2 রিসোর্স R1 ধরে রাখে এবং রিসোর্স R2 এর জন্য অপেক্ষা করে তখন অচলাবস্থা দেখা দেয়। .
এটি বৃত্তাকার অপেক্ষার উদাহরণ যা অচলাবস্থার অন্যতম কারণ। সুতরাং, অচলাবস্থা প্রতিরোধ করার জন্য আমাদের প্রক্রিয়াগুলির জন্য উপলব্ধ সংস্থানগুলির সংখ্যা গণনা করতে হবে যাতে অচলাবস্থা ঘটবে না৷
ডেডলক মুক্ত শর্ত
R>=P * (N - 1) + 1
যেখানে, R হল সম্পদ, P হল প্রসেস এবং N হল প্রসেসের প্রয়োজন
উদাহরণ
Input-: processes = 5, need = 3 Output-: minimum required resources are: 11 Input-: Processes = 7, need = 2 Output-: minimum required resources are: 8
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি −
- মেমরিতে প্রসেসের সংখ্যা এবং প্রয়োজনীয়তা ইনপুট করুন
- প্রয়োজনীয় সম্পদের সংখ্যা গণনা করার জন্য প্রদত্ত সূত্রটি প্রয়োগ করুন
- ফলাফল প্রদর্শন করুন
অ্যালগরিদম
START Step 1-> declare function to calculate the minimum number of resources needed int min_resource(int process, int need) declare int calculate = 0 set calculate = process * (need - 1) + 1 return calculate Step 2-> In main() Declare int process = 5 and need = 3 Call min_resource(process, need) STOP
উদাহরণ
#include <bits/stdc++.h> using namespace std; //calculate minimum number of resources needed int min_resource(int process, int need) { int calculate = 0; calculate = process * (need - 1) + 1; return calculate; } int main() { int process = 5, need = 3; cout << "minimum required resources are : " <<min_resource(process, need); return 0; }
আউটপুট
minimum required resources are : 11