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

C++ में ऑपरेटिंग सिस्टम में फिक्स्ड (स्थिर) पार्टीशनिंग


परिचय

इस ट्यूटोरियल में हम ऑपरेटिंग सिस्टम में फिक्स्ड पार्टीशनिंग (Fixed Partitioning) के बारे में सीखेंगे।

फिक्स्ड पार्टीशनिंग क्या है?

फिक्स्ड पार्टीशनिंग ऑपरेटिंग सिस्टम में मेमोरी प्रबंधन की एक पुरानी तकनीक है। यह मेमोरी को समान आकार के ब्लॉक्स में विभाजित करती है। प्रत्येक ब्लॉक का आकार पूर्वनिर्धारित होता है और इसे बदला नहीं जा सकता।

यह मेमोरी सन्निहित (contiguous) प्रोसेसेज के लिए उपयोग की जाती है।

उदाहरण

आइए एक नमूना प्रोग्राम देखते हैं जो प्रोसेस साइज के आधार पर मेमोरी आवंटित करता है।

#include<iostream>
using namespace std;

int main() {
    int blockNumber = 5, processesNumber = 3;
    int blockSize[5] = {4, 4, 4, 4, 4}, processSize[3] = {1, 2, 3};
    int flags[5], allocation[5];
    for(int i = 0; i < 5; i++) {
        flags[i] = 0;
        allocation[i] = -1;
    }
    // ब्लॉक्स को प्रोसेसेज को आवंटित करना
    for(int i = 0; i < processesNumber; i++) {
        for(int j = 0; j < blockNumber; j++) {
            if(flags[j] == 0 && blockSize[j] >= processSize[i]) {
                allocation[j] = i;
                flags[j] = 1;
                break;
            }
        }
    }
    for (int i = 0; i < blockNumber; i++) {
        if (flags[i] == 1) {
            cout << "Process " << processSize[allocation[i]] << " is allocated" << endl;
        }
    }
    return 0;
}

आउटपुट

Process 1 is allocated
Process 2 is allocated
Process 3 is allocated

निष्कर्ष

फिक्स्ड पार्टीशनिंग सरल है लेकिन आंतरिक विखंडन (internal fragmentation) का कारण बनती है क्योंकि प्रोसेस ब्लॉक से छोटा हो सकता है। आधुनिक ऑपरेटिंग सिस्टम अधिक लचीली तकनीकों जैसे डायनामिक पार्टीशनिंग या पेजिंग का उपयोग करते हैं। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।


  1. C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें

    समस्या विवरण मान लीजिए हमारे पास 2D तल पर n बिंदु हैं, हमें जांचना है कि क्या y-अक्ष के समानांतर कोई रेखा है जो दिए गए बिंदुओं को सममित रूप से प्रतिबिंबित करती है, दूसरे शब्दों में, जांचें कि क्या कोई ऐसी रेखा मौजूद है जो सभी बिंदुओं को दी गई रेखा पर प्रतिबिंबित करने के बाद मूल बिंदुओं का समुच्चय प

  1. C++ में डायगोनल ट्रैवर्स II C++ में डायगोनल ट्रैवर्स II

    मान लीजिए हमारे पास nums नामक लिस्ट ऑफ लिस्ट है, हमें nums के सभी एलिमेंट्स को डायगोनल क्रम में दिखाना है।इसलिए, यदि इनपुट हैतो आउटपुट होगा [1,6,2,8,7,3,9,4,12,10,5,13,11,14,15,16]इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:एक ऐरे ret परिभाषित करेंएक 2D ऐरे v परिभाषित करेंi := 0 से शुरू करें,

  1. - C++ में स्टैटिक ऑब्जेक्ट्स कब नष्ट होते हैं?

    स्टैटिक ऑब्जेक्ट्स को static कीवर्ड के साथ घोषित किया जाता है। वे केवल एक बार इनिशियलाइज़ होते हैं और स्टैटिक स्टोरेज एरिया में संग्रहीत होते हैं। स्टैटिक ऑब्जेक्ट्स केवल तब नष्ट होते हैं जब प्रोग्राम समाप्त होता है यानी वे प्रोग्राम समाप्ति तक जीवित रहते हैं। C++ में स्टैटिक ऑब्जेक्ट्स को प्रदर्शित