Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

ऑपरेटिंग सिस्टम में गतिरोध मुक्त स्थिति के लिए C++ प्रोग्राम

स्मृति में प्रक्रियाओं की पी संख्या और उनके निष्पादन को पूरा करने के लिए उनके द्वारा आवश्यक संसाधनों की एन संख्या के साथ दिया गया है और कार्य संसाधनों की न्यूनतम संख्या को खोजना है जो प्रक्रियाओं को आवंटित किया जाना चाहिए ताकि गतिरोध कभी न हो।

एक गतिरोध क्या है

डेडलॉक एक ऑपरेटिंग सिस्टम की स्थिति है जहां मेमोरी में रहने वाली कई प्रक्रियाएं अपना निष्पादन करने में सक्षम नहीं होती हैं क्योंकि प्रोग्राम निष्पादन के लिए आवश्यक संसाधन किसी अन्य संसाधन द्वारा रखे जा रहे हैं जो पूरा होने के लिए किसी अन्य संसाधन की प्रतीक्षा कर रहा है।

मान लीजिए कि मेमोरी में दो प्रक्रियाएं हैं 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. सी++ में ऑक्टाहेड्रोन के भूतल क्षेत्र के लिए कार्यक्रम

    ऑक्टाहेड्रोन क्या है? शब्द डोडेकेहेड्रॉन ग्रीक शब्दों से लिया गया है, जहां ऑक्टा का अर्थ है आठ और हेड्रॉन चेहरे को निर्दिष्ट करता है। ज्यामितीय में ऑक्टाहेड्रोन एक 3-डी प्लेटोनिक या आठ चेहरों वाला नियमित ठोस है। जैसे, अन्य आकृतियों के अष्टफलक में भी गुण होते हैं और वे हैं - 6 पॉलीहेड्रॉन शिखर 12 प

  1. सी++ में डोडेकाहेड्रॉन के सतह क्षेत्र के लिए कार्यक्रम

    डोडेकाहेड्रॉन क्या है? शब्द डोडेकाहेड्रॉन ग्रीक शब्दों से लिया गया है, जहां डोडेका का अर्थ है बारह और हेड्रॉन चेहरे को निर्दिष्ट करता है। ज्यामितीय में डोडेकाहेड्रॉन एक 3-डी प्लेटोनिक या बारह सपाट चेहरों वाला नियमित ठोस है। जैसे, अन्य आंकड़े डोडेकाहेड्रोन में भी गुण होते हैं और वे हैं - 20 पॉलीहेड

  1. QuickSort के लिए C++ प्रोग्राम?

    क्विकसॉर्ट एक छँटाई तकनीक है जो एक क्रमबद्ध सूची (सरणी) को क्रमबद्ध करने के लिए तुलना का उपयोग करती है। Quicksort को पार्टीशन एक्सचेंज सॉर्ट के रूप में भी जाना जाता है। यह एक स्थिर प्रकार नहीं है, क्योंकि समान प्रकार की वस्तुओं का सापेक्ष क्रम संरक्षित नहीं है। क्विकसॉर्ट एक सरणी पर काम कर सकता है,