কম্পিউটার

অপারেটিং সিস্টেমে ডেডলক মুক্ত অবস্থার জন্য C++ প্রোগ্রাম


মেমরিতে প্রসেসগুলির P সংখ্যা এবং তাদের সম্পাদন সম্পূর্ণ করার জন্য প্রয়োজনীয় সংস্থানগুলির N সংখ্যা দেওয়া এবং কাজটি হল ন্যূনতম সংখ্যক সংস্থান খুঁজে বের করা যা প্রক্রিয়াগুলিতে বরাদ্দ করা উচিত যাতে অচলাবস্থা কখনই ঘটবে না।

একটি অচলাবস্থা কি

ডেডলক হল একটি অপারেটিং সিস্টেমের পরিস্থিতি যেখানে মেমরিতে থাকা একাধিক প্রসেস তাদের কার্য সম্পাদন করতে সক্ষম হয় না কারণ প্রোগ্রাম নির্বাহের জন্য প্রয়োজনীয় সংস্থানগুলি অন্য কোনও সংস্থান দ্বারা ধরে রাখা হয় যারা সম্পূর্ণ হওয়ার জন্য অন্য কোনও সংস্থানের জন্য অপেক্ষা করছে৷

ধরা যাক মেমরিতে P1 এবং P2 দুটি প্রসেস আছে যেখানে P1 এর জন্য রিসোর্স R1 এবং P2 এর জন্য রিসোর্স R2 প্রয়োজন, কিন্তু P1 যখন রিসোর্স R2 ধরে রাখে এবং রিসোর্স R1 এর জন্য অপেক্ষা করে একইভাবে P2 রিসোর্স R1 ধরে রাখে এবং রিসোর্স R2 এর জন্য অপেক্ষা করে তখন অচলাবস্থা দেখা দেয়। .

অপারেটিং সিস্টেমে ডেডলক মুক্ত অবস্থার জন্য C++ প্রোগ্রাম

এটি বৃত্তাকার অপেক্ষার উদাহরণ যা অচলাবস্থার অন্যতম কারণ। সুতরাং, অচলাবস্থা প্রতিরোধ করার জন্য আমাদের প্রক্রিয়াগুলির জন্য উপলব্ধ সংস্থানগুলির সংখ্যা গণনা করতে হবে যাতে অচলাবস্থা ঘটবে না৷

ডেডলক মুক্ত শর্ত

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

  1. C++ এ পিরামিডের আয়তনের জন্য প্রোগ্রাম

  2. C++ এ অক্টেহেড্রনের সারফেস এরিয়ার জন্য প্রোগ্রাম

  3. C++ এ ডোডেকাহেড্রনের সারফেস এরিয়ার জন্য প্রোগ্রাম

  4. QuickSort-এর জন্য C++ প্রোগ্রাম?