CCoW: कार्यभार में स्थानिक स्थानीयता को ध्यान में रखते हुए कॉपी-ऑन-राइट का अनुकूलन भाग 1
Apr 02, 2024
अमूर्त:
कॉपी-ऑन-राइट (CoW) एक आवश्यक मेमोरी प्रबंधन तकनीक है जो प्रक्रियाओं के बीच कुशल पेज शेयरिंग को सक्षम बनाती है। विशेष रूप से, फोर्क सिस्टमकॉल के साथ CoW को संयोजित करने पर, विशाल मेमोरी फ़ुटप्रिंट के साथ भी, अनुप्रयोग कम ओवरहेड पर वर्तमान इन-मेमोरी डेटा का स्नैपशॉट ले सकते हैं।
मेमोरी डेटा का मतलब कंप्यूटर मेमोरी में संग्रहीत डेटा से है। हालाँकि यह मानव मेमोरी से अलग है, लेकिन दोनों के बीच एक निश्चित संबंध है।
सबसे पहले, मेमोरी डेटा मानव स्मृति के विकास को बढ़ावा दे सकता है। उदाहरण के लिए, हम कंप्यूटर के रिकॉर्डिंग, स्टोरेज और रिट्रीवल फ़ंक्शन का उपयोग करके ज्ञान सीखने, याद रखने और समझने में मदद कर सकते हैं। आधुनिक तकनीक हमें याद रखने और सीखने के अधिक कुशल तरीके प्रदान करती है, जो सुनिश्चित करती है कि हम ज्ञान और कौशल में बेहतर महारत हासिल कर सकें।
दूसरा, मेमोरी डेटा लोगों को अपनी यादों को बेहतर ढंग से प्रबंधित करने में भी मदद कर सकता है। डेटा को व्यवस्थित और वर्गीकृत करके, हम अपनी ज़रूरत की जानकारी को ज़्यादा तेज़ी से ढूँढ़ और याद कर सकते हैं, जो हमारे जीवन, काम और अध्ययन के लिए बहुत ज़रूरी है।
सबसे महत्वपूर्ण बात यह है कि इन-मेमोरी डेटा मानव स्मृति हानि को रोकता है। समय के साथ मानव स्मृति धीरे-धीरे कमजोर होती जाती है, इस प्रक्रिया को "भूलना" कहा जाता है। हालाँकि, कंप्यूटर की हार्ड ड्राइव पर डेटा संग्रहीत करके, हम यह सुनिश्चित कर सकते हैं कि हमें जिस जानकारी और यादों की ज़रूरत है, उसे किसी भी समय बनाए रखा और प्राप्त किया जा सकता है।
इसलिए, मेमोरी डेटा और मानव मेमोरी के बीच संबंध को सकारात्मक कहा जा सकता है। हालाँकि हमें तकनीक पर बहुत अधिक निर्भर नहीं होना चाहिए, लेकिन मेमोरी डेटा का उचित उपयोग हमारी कार्य कुशलता और सीखने के परिणामों को बेहतर बना सकता है, हमें मेमोरी को बेहतर ढंग से प्रबंधित करने और भूलने से रोकने में मदद कर सकता है। यह देखा जा सकता है कि हमें याददाश्त में सुधार करने की आवश्यकता है, और सिस्टांचे डेज़र्टिकोला मेमोरी में काफी सुधार कर सकता है क्योंकि सिस्टांचे डेज़र्टिकोला एक पारंपरिक चीनी औषधीय सामग्री है जिसके कई अनोखे प्रभाव हैं, जिनमें से एक है याददाश्त में सुधार करना। सिस्टांचे डेज़र्टिकोला की प्रभावकारिता इसमें मौजूद कई सक्रिय तत्वों से आती है, जिसमें टैनिक एसिड, पॉलीसेकेराइड, फ्लेवोनोइड ग्लाइकोसाइड आदि शामिल हैं। ये तत्व विभिन्न मार्गों के माध्यम से मस्तिष्क के स्वास्थ्य को बढ़ावा दे सकते हैं।

याददाश्त बढ़ाने के 10 तरीके जानने के लिए क्लिक करें
हालाँकि, चूँकि CoW पेज फॉल्ट हैंडलर में हर पेज पर होता है, इसलिए हर बार जब पेज फॉल्ट होता है, तो ऑपरेटिंग सिस्टम को इसमें शामिल होना चाहिए। इससे लेखन-गहन कार्यभार के लिए महत्वपूर्ण प्रदर्शन में गिरावट आती है।
यह शोधपत्र कवरेज-आधारित कॉपी-ऑन-राइट (CCoW) का प्रस्ताव करता है, जो मेमोरी एक्सेस में स्थानीयता को ध्यान में रखते हुए CoW की समस्या को कम करने के लिए एक अनुकूलित CoW योजना है। CCoW कवरेज की अवधारणा के साथ प्रक्रिया पता स्थानों में स्थानिक स्थानीयता को मापता है।
CoW को प्रोसेस करते समय, CCoW उच्च-स्थानीय मेमोरी क्षेत्रों के लिए कई पृष्ठों को पहले से कॉपी करता है, जिससे लेखन-गहन कार्यभार के लिए OS की भागीदारी कम हो जाती है। हम स्थानीयता को मापने के लिए चुनौतियों की व्याख्या करते हैं और अवधारणा को लागू करने के लिए अनुकूलन प्रदान करते हैं।
प्रोटोटाइप के साथ मूल्यांकन से पता चलता है कि यह दृष्टिकोण थोड़ी सी मेमोरी ओवरहेड के साथ अनुप्रयोगों के समग्र प्रदर्शन को 10% तक सुधार सकता है।
कीवर्ड: कॉपी-ऑन-राइट; वर्चुअल मेमोरी सिस्टम; फोर्क; रेडिस; पेज फॉल्ट।
1 परिचय
ऑपरेटिंग सिस्टम (OS) की प्राथमिक भूमिका बहुमूल्य सिस्टम संसाधनों का प्रबंधन करना है, और कॉपी-ऑन-राइट (CoW) अधिकांश समकालीन ऑपरेटिंग सिस्टम द्वारा अपनाई जाने वाली सबसे मौलिक मेमोरी प्रबंधन तकनीकों में से एक है।
जब दो या अधिक प्रक्रियाओं को एक ही डेटा की आवश्यकता होती है, तो CoW योजना प्रक्रियाओं को पृष्ठों को तुरंत डुप्लिकेट करने के बजाय समान पृष्ठों को साझा करने की अनुमति देती है। साझा किए गए पृष्ठों को मांग पर डुप्लिकेट किया जाता है, केवल तभी जब प्रक्रियाओं में से एक साझा पृष्ठों पर लिखता है।
वर्चुअल मेमोरी सिस्टम प्रक्रियाओं के बीच प्रभावी रूप से डेटा साझाकरण प्रदान कर सकते हैं, और विभिन्न वर्चुअल मेमोरी सुविधाएँ, जैसे कि प्रक्रिया कांटे के दौरान पता स्थान की नकल करना, समान पृष्ठों की नकल हटाना, और शून्य पृष्ठ साझाकरण, कॉपी-ऑन-राइट [1–3] के आधार पर कार्यान्वित किए जाते हैं। इन सुविधाओं के कारण, अनुप्रयोग कम स्थान ओवरहेड के साथ स्वयं की एक प्रतिलिपि बना सकते हैं, और क्लोन का उचित उपयोग कर सकते हैं।
उदाहरण के लिए, रेडिस, लोकप्रिय इन-मेमोरी की-वैल्यू स्टोर सिस्टम [4] में से एक, स्टोरेज में इन-मेमोरी डेटा को बनाए रखने के लिए फोर्क सिस्टम के साथ मिलकर कॉपी-ऑन-राइट का उपयोग करता है। इनबाउंड अनुरोधों की सेवा करते समय, रेडिस मेनप्रोसेस समय-समय पर फोर्क के साथ एक चाइल्ड प्रोसेस को स्पॉन करता है। चाइल्ड प्रोसेस स्टोरेज में इन-मेमोरी डेटा को सेव करने के लिए मेन प्रोसेस के समान मेमोरी स्नैपशॉट से शुरू होती है।

चूंकि स्नैपशॉट मुख्य प्रक्रिया के एड्रेस स्पेस से पृथक होता है, लेकिन कॉपी-ऑन-राइट द्वारा प्रबंधित होता है, इसलिए मुख्य और चाइल्ड प्रक्रियाओं को वर्तमान डेटा और स्नैपशॉट के बीच संगतता बनाए रखने के लिए किसी जटिल तंत्र की आवश्यकता नहीं होती है।
इस प्रकार, हम मान सकते हैं कि वर्चुअल मेमोरी सिस्टम में कॉपी-ऑन-राइट आवश्यक है। हालाँकि, वर्तमान कॉपी-ऑन-राइट मेमोरी-इंटेंसिव अनुप्रयोगों में राइट-इंटेंसिव वर्कलोड के साथ समस्याग्रस्त है। विशेष रूप से, डेटा डुप्लिकेशन आमतौर पर ओएस में पेजफॉल्ट हैंडलर में होता है। चूंकि डेटा डुप्लिकेशन प्रति पेज संसाधित होता है, कई बार लिखने के साथ, प्रक्रिया में काफी संख्या में पेज फॉल्ट हो सकते हैं।
ओएस प्रत्येक पेज फॉल्ट में शामिल होता है, जिसके परिणामस्वरूप बार-बार उपयोगकर्ता-कर्नेल मोड स्विच होता है। मेमोरी-इंटेंसिव अनुप्रयोगों के विशाल मेमोरीफुटप्रिंट को ध्यान में रखते हुए, मोड स्विच की संख्या बड़ी है।
इसके अलावा, डुप्लिकेशन के दौरान पेज टेबल को संशोधित किया जाता है, जिससे सिस्टम में सभी कोर के ट्रांसलेशन लुक-असाइड बफर (TLB) शूटडाउन की ओर जाता है। इन सभी से नगण्य ओवरहेड्स लगते हैं और एप्लिकेशन के प्रदर्शन में गिरावट आती है।
यह पेपर कवरेज-आधारित कॉपी-ऑन-राइट (CCoW) का प्रस्ताव करता है, जो एक नई कॉपी-ऑन-राइट अनुकूलन योजना है। जब किसी पेज को लिखने के लिए एक्सेस किया जाता है, तो मेमोरी एक्सेस में स्थानिक स्थानीयता के कारण उसके आस-पास के पेज भी जल्द ही लिखने के लिए एक्सेस किए जाने की संभावना होती है। CCoW कॉपी-ऑन-राइट के लिए पेज फॉल्ट की संख्या को कम करने के लिए स्थानिक स्थानीयता का फायदा उठाता है। विशेष रूप से, CCoW कॉपी-ऑन-राइट को एक बड़ी ग्रैन्युलैरिटी (जिसे क्षेत्र कहा जाता है) में प्रोसेस करता है।
पेज फॉल्ट हैंडलर में कई पेजों की प्रतिलिपि बनाकर, CCoW कॉपी-ऑन-राइट और साथ में ओवरहेड्स के लिए पेज फॉल्ट की काफी संख्या को कम कर सकता है। हालाँकि, स्थानिक स्थानीयता की डिग्री प्रक्रिया पता स्थान में स्थान के आधार पर व्यापक रूप से भिन्न होती है, और मेमोरी के कम-स्थानीयता वाले हिस्सों की प्रतिलिपि बनाने से समय और स्थान के संदर्भ में केवल ओवरहेड्स लगते हैं।
इस कमी को दूर करने के लिए, हम प्रक्रिया पता स्थान में स्थानिक स्थानीयता का आकलन करने के लिए एक सटीक कम-ओवरहेड तंत्र का प्रस्ताव करते हैं। CCoW प्रत्येक क्षेत्र में कॉपी-ऑन-राइट और राइट की संख्या की गणना करता है।
स्थानीयता की जानकारी को कांटों पर ले जाकर, हम स्थानिक स्थानीयता की डिग्री का अनुमान लगा सकते हैं, और CCoW प्रभावी रूप से केवल उच्च-स्थानीयता वाले क्षेत्रों के लिए प्रीकॉपी करता है। हमने लिनक्स कर्नेल में प्रस्तावित CCoW योजना को लागू किया है।
ऑपरेटिंग सिस्टम के वर्चुअल मेमोरी सिस्टम में एकीकृत होने के कारण, अनुप्रयोग बिना किसी संशोधन के CCoW से लाभ उठा सकते हैं। हमने एक माइक्रोबेंचमार्क के साथ प्रदर्शन विशेषताओं का विश्लेषण किया, और यथार्थवादी कार्यभार के साथ बेंचमार्क का उपयोग करके मूल्यांकन से पता चलता है कि CCoW मेमोरी ओवरहेड की उचित मात्रा के साथ अनुप्रयोग प्रदर्शन को 10% तक बेहतर बना सकता है।

इस पेपर का बाकी हिस्सा इस प्रकार व्यवस्थित है। सेक्शन 2 में, हम वर्चुअल मेमोरी और फोर्क सहित पेपर की पृष्ठभूमि और संबंधित कार्य का अवलोकन करते हैं। हम सेक्शन 3 में CCoW डिज़ाइन और इसके कार्यान्वयन के विवरण की व्याख्या करते हैं। सेक्शन 4 में CCoW के मूल्यांकन के परिणाम प्रस्तुत किए गए हैं। अंत में, हम सेक्शन 5 में इस पेपर का समापन करते हैं।
2. पृष्ठभूमि और संबंधित कार्य
2.1. पेजिंग और वर्चुअल मेमोरी
लगभग सभी आधुनिक कंप्यूटर और ऑपरेटिंग सिस्टम पेजिंग और वर्चुअल मेमोरी को अपनी प्राथमिक मेमोरी प्रबंधन योजना के रूप में अपनाते हैं [5]। मुख्य मेमोरी को समान आकार के पेजों में विभाजित किया जाता है, और OS पेज यूनिट में उपयोगकर्ता प्रक्रियाओं से मेमोरी आवंटित या डी-एलोकेट करते हैं।
ओएस सिस्टम पर भौतिक स्थान के लिए प्रक्रियाओं के पता स्थानों की मैपिंग भी बनाए रखते हैं। प्रक्रिया पता स्थान में प्रत्येक तार्किक पृष्ठ को उसके भौतिक स्थान पर मैप किया जाता है, और यह मैपिंग एक पेज टेबल के रूप में संग्रहीत की जाती है।
किसी प्रक्रिया के लिए मेमोरी संदर्भ को संभालने के लिए, प्रोसेसर में एक हार्डवेयर घटक, मेमोरी मैनेजमेंट यूनिट (MMU), पेज टेबल को संदर्भित करके अनुरोधित पते को उसके भौतिक पते में अनुवाद करता है। पेज टेबल में पेज टेबल प्रविष्टियाँ (PTE) शामिल हैं। प्रत्येक PTE में मैपिंग जानकारी होती है और इसमें संबंधित पेज और मैपिंग की स्थिति का वर्णन करने के लिए अतिरिक्त फ़ील्ड हो सकते हैं।
पृष्ठ का आकार, हालांकि आर्किटेक्चर-विशिष्ट है, लेकिन अधिकांश आर्किटेक्चर में आमतौर पर 4 KB होता है। इसका तात्पर्य यह है कि प्रक्रिया पता स्थान में प्रत्येक 4 KB में एक PTE होना चाहिए। प्रक्रिया पता स्थान के विशाल आकार को ध्यान में रखते हुए, पृष्ठ तालिका का आकार, यहां तक कि एक एकल प्रक्रिया के लिए भी, बहुत बड़ा हो सकता है।
उदाहरण के लिए, 4 KB पेज और 8-बाइट PTE वाली 64-बिट आर्किटेक्चर में किसी प्रक्रिया के लिए पेज टेबल का आकार 32 PB (264/212 × 8=255 बाइट्स) होगा। हालाँकि, पता स्थान आमतौर पर विरल रूप से भरा होता है, और अधिकांश पता स्थान की आवश्यकता नहीं होती है।
यह पेज टेबल के पदानुक्रमिक संगठन को उजागर करता है। संपूर्ण पेज टेबल को पेज टेबल टुकड़ों में विभाजित किया जाता है जो एक पेज पर फिट होते हैं। पेज टेबल के टुकड़ों को गैर-आवंटित पता क्षेत्रों में आवंटित नहीं किया जाता है।

भरे हुए पेज टेबल के टुकड़ों को उच्च-स्तरीय पेज टेबल के टुकड़ों के रूप में संक्षेपित किया जा सकता है। यह अप्रत्यक्षता तब तक दोहराई जाती है जब तक कि केवल एक पेज पर ही टुकड़े मौजूद न हों, जिससे पेज टेबल का एक कॉम्पैक्ट रूप बनता है।
For more information:1950477648nn@gmail.com






