CCoW: تحسين النسخ عند الكتابة مع الأخذ في الاعتبار الموقع المكاني في أحمال العمل - الجزء الأول
Apr 02, 2024
خلاصة:
يعد النسخ عند الكتابة (CoW) تقنية أساسية لإدارة الذاكرة تتيح مشاركة الصفحات بكفاءة بين العمليات. على وجه التحديد، عند دمج CoW مع استدعاء نظام الشوكة، يمكن للتطبيقات، حتى مع وجود مساحة كبيرة للذاكرة، التقاط لقطة من البيانات الحالية في الذاكرة بحمل منخفض.
تشير بيانات الذاكرة إلى البيانات المخزنة في ذاكرة الكمبيوتر. وعلى الرغم من أنها تختلف عن الذاكرة البشرية، إلا أن هناك علاقة معينة بين الاثنين.
أولاً، يمكن لبيانات الذاكرة أن تعزز تطور الذاكرة البشرية. على سبيل المثال، يمكننا استخدام وظائف التسجيل والتخزين والاسترجاع لأجهزة الكمبيوتر لمساعدتنا على تعلم المعرفة وتذكرها وفهمها. توفر لنا التكنولوجيا الحديثة طرقًا أكثر فعالية للتذكر والتعلم، مما يضمن قدرتنا على إتقان المعرفة والمهارات بشكل أفضل.
ثانيًا، يمكن لبيانات الذاكرة أيضًا أن تساعد الأشخاص على إدارة ذكرياتهم بشكل أفضل. من خلال تنظيم البيانات وتصنيفها بدقة، يمكننا العثور على المعلومات التي نحتاجها واسترجاعها بسرعة أكبر، وهو أمر مهم جدًا لحياتنا وعملنا ودراستنا.
والأهم من ذلك، أن البيانات الموجودة في الذاكرة تمنع فقدان الذاكرة البشرية. تضعف ذاكرة الإنسان تدريجياً مع مرور الوقت، وهي عملية تسمى "النسيان". ومع ذلك، من خلال تخزين البيانات على القرص الصلب لجهاز الكمبيوتر، يمكننا ضمان إمكانية الاحتفاظ بالمعلومات والذكريات التي نحتاجها واسترجاعها في أي وقت.
ولذلك، يمكن القول أن العلاقة بين بيانات الذاكرة والذاكرة البشرية إيجابية. على الرغم من أننا لا ينبغي أن نعتمد كثيرًا على التكنولوجيا، إلا أن الاستخدام المعقول لبيانات الذاكرة يمكن أن يحسن كفاءة عملنا ونتائج التعلم، ويساعدنا على إدارة الذاكرة بشكل أفضل، ويمنع النسيان. يمكن ملاحظة أننا بحاجة إلى تحسين الذاكرة، ويمكن لـ Cistanche deserticola أن يحسن الذاكرة بشكل كبير لأن Cistanche deserticola هي مادة طبية صينية تقليدية لها العديد من التأثيرات الفريدة، أحدها هو تحسين الذاكرة. تأتي فعالية Cistanche deserticola من المكونات النشطة المتعددة التي يحتوي عليها، بما في ذلك حمض التانيك، والسكريات، وجليكوسيدات الفلافونويد، وما إلى ذلك. ويمكن لهذه المكونات تعزيز صحة الدماغ من خلال مجموعة متنوعة من المسارات.

انقر فوق تعرف على 10 طرق لتحسين الذاكرة
ومع ذلك، نظرًا لأن CoW يحدث لكل صفحة في معالج خطأ الصفحة، ففي كل مرة يحدث خطأ الصفحة، يجب أن يتدخل نظام التشغيل. ويؤدي هذا إلى تدهور كبير في الأداء بالنسبة لأحمال العمل كثيفة الكتابة.
تقترح هذه الورقة النسخ والكتابة على أساس التغطية (CCoW)، وهو مخطط CoW الأمثل مع الأخذ في الاعتبار الموقع في الوصول إلى الذاكرة للتخفيف من مشكلة CoW. تقيس CCoW الموقع المكاني في مساحات عنوان العملية بمفهوم التغطية.
أثناء معالجة CoW، تقوم CCoW بنسخ صفحات متعددة مقدمًا لمناطق الذاكرة عالية المحلية، وبالتالي تقليل مشاركة نظام التشغيل لأحمال العمل كثيفة الكتابة. نوضح التحديات التي تواجه قياس المنطقة ونوفر التحسين لتنفيذ المفهوم.
يوضح التقييم باستخدام نموذج أولي أن هذا الأسلوب يمكنه تحسين الأداء العام للتطبيقات بنسبة تصل إلى 10% مع مقدار صغير من حمل الذاكرة.
الكلمات المفتاحية: النسخ عند الكتابة؛ نظام الذاكرة الافتراضية شوكة؛ ريديس؛ خطأ في الصفحة.
1 المقدمة
الدور الأساسي لنظام التشغيل (OS) هو إدارة موارد النظام الثمينة، وتعد النسخ عند الكتابة (CoW) واحدة من أهم تقنيات إدارة الذاكرة الأساسية التي تتبناها معظم أنظمة التشغيل المعاصرة.
عندما تحتاج عمليتان أو أكثر إلى الحصول على نفس البيانات، يسمح نظام CoW للعمليات بمشاركة نفس الصفحات بدلاً من تكرار الصفحات على الفور. يتم تكرار الصفحات المشتركة عند الطلب، فقط عندما تقوم إحدى العمليات بالكتابة إلى الصفحات المشتركة.
يمكن لأنظمة الذاكرة الظاهرية أن توفر بشكل فعال مشاركة البيانات بين العمليات، ويتم تنفيذ ميزات الذاكرة الافتراضية المختلفة، مثل تكرار مساحة العنوان أثناء شوكات العملية، وإلغاء تكرار الصفحات نفسها، ومشاركة الصفحات الصفرية، بناءً على النسخ عند الكتابة [1-3]. ونظرًا لهذه الميزات، يمكن للتطبيقات إنشاء نسخة من نفسها بمساحة علوية منخفضة، واستخدام النسخة بشكل مناسب.
على سبيل المثال، يستخدم Redis، وهو أحد أنظمة تخزين قيمة مفتاح الذاكرة الشائعة [4]، النسخ عند الكتابة جنبًا إلى جنب مع نظام الشوكة لاستدعاء البيانات الموجودة في الذاكرة المستمرة إلى وحدة التخزين. أثناء تقديم الطلبات الواردة، تُنتج عملية Redis الرئيسية بشكل دوري عملية فرعية باستخدام الشوكة. تبدأ العملية الفرعية بلقطة ذاكرة مماثلة للعملية الرئيسية لحفظ البيانات الموجودة في الذاكرة في المخزن.

نظرًا لأن اللقطة معزولة عن مساحة عنوان العملية الرئيسية ولكن تتم إدارتها بواسطة النسخ عند الكتابة، فإن العمليات الرئيسية والتابعة لا تتطلب أي آلية معقدة للحفاظ على الاتساق بين البيانات الحالية واللقطة.
وبالتالي، يمكننا أن نعتبر أن النسخ عند الكتابة ضروري في نظام الذاكرة الافتراضية. ومع ذلك، فإن النسخ عند الكتابة الحالية يمثل مشكلة في التطبيقات كثيفة الذاكرة مع أحمال العمل كثيفة الكتابة. على وجه التحديد، يحدث تكرار البيانات عادةً في معالج خطأ الصفحة في نظام التشغيل. نظرًا لأنه تتم معالجة تكرار البيانات لكل صفحة، مع العديد من عمليات الكتابة، فقد تؤدي العملية إلى حدوث عدد كبير من أخطاء الصفحات.
نظام التشغيل متورط في خطأ كل صفحة، مما يؤدي إلى تبديل وضع المستخدم والنواة بشكل متكرر. وبالنظر إلى البصمة الهائلة للذاكرة في التطبيقات كثيفة الاستهلاك للذاكرة، فإن عدد مفاتيح الوضع كبير.
بالإضافة إلى ذلك، يتم تعديل جدول الصفحة أثناء النسخ، مما يؤدي إلى إلغاء المخزن المؤقت للترجمة (TLB) لجميع النوى في النظام. كل هذه الأمور تتكبد نفقات عامة لا يمكن إهمالها وتؤدي إلى تدهور أداء التطبيقات.
تقترح هذه الورقة النسخ عند الكتابة (CCoW) على أساس التغطية، وهو نظام جديد لتحسين النسخ عند الكتابة. عند الوصول إلى صفحة للكتابة، فمن المحتمل أيضًا أن يتم الوصول إلى صفحاتها القريبة قريبًا للكتابة بسبب الموقع المكاني في عمليات الوصول إلى الذاكرة. تستغل CCoW المنطقة المكانية لتقليل عدد أخطاء الصفحات عند النسخ عند الكتابة. على وجه التحديد، تقوم CCoW بمعالجة النسخ عند الكتابة بتفاصيل كبيرة (تسمى المنطقة).
من خلال نسخ صفحات متعددة في معالج أخطاء الصفحة، يمكن لـ CCoW تقليل عدد كبير من أخطاء الصفحات للنسخ عند الكتابة والنفقات العامة المصاحبة. ومع ذلك، فإن درجة المنطقة المكانية تختلف بشكل كبير اعتمادًا على الموقع في مساحة عنوان العملية، كما أن تكرار أجزاء المنطقة المنخفضة من الذاكرة لا يؤدي إلا إلى تحمل النفقات العامة من حيث الزمان والمكان.
للتغلب على هذا القصور، نقترح آلية دقيقة منخفضة الحمل لتقييم المنطقة المكانية في مساحة عنوان العملية. تقوم CCoW بحساب عدد النسخ عند الكتابة والكتابة في كل منطقة.
من خلال نقل معلومات المنطقة المحلية عبر الشوكات، يمكننا تقدير درجة المنطقة المكانية، وتقوم CCoW بشكل فعال بإجراء النسخ المسبق فقط للمناطق عالية المحلية. لقد قمنا بتنفيذ مخطط CCoW المقترح في نواة Linux.
نظرًا لدمجها في نظام الذاكرة الافتراضية لنظام التشغيل، يمكن للتطبيقات الاستفادة من CCoW دون تعديل. لقد قمنا بتحليل خصائص الأداء باستخدام معيار مصغر، ويظهر التقييم باستخدام المعيار مع أحمال عمل واقعية أن CCoW يمكنها تحسين أداء التطبيق بنسبة تصل إلى 10% مع قدر معقول من حمل الذاكرة.

يتم تنظيم باقي هذه الورقة على النحو التالي. في القسم 2، نلقي نظرة عامة على الخلفية والأعمال ذات الصلة بالورقة، بما في ذلك الذاكرة الافتراضية والشوكة. نوضح تفاصيل تصميم اتفاقية العمل وتنفيذها في القسم 3. ويعرض القسم 4 نتائج تقييم اتفاقية العمل. وأخيرا، نختتم هذه الورقة في القسم 5.
2. الخلفية والأعمال ذات الصلة
2.1. الترحيل والذاكرة الافتراضية
تعتمد جميع أجهزة الكمبيوتر وأنظمة التشغيل الحديثة تقريبًا الترحيل والذاكرة الافتراضية كنظام أساسي لإدارة الذاكرة [5]. تنقسم الذاكرة الرئيسية إلى صفحات بنفس الحجم، وتقوم أنظمة التشغيل بتخصيص أو إلغاء تخصيص الذاكرة من عمليات المستخدم في وحدة الصفحة.
تحافظ أنظمة التشغيل أيضًا على تعيينات مساحات عنوان العمليات للموقع الفعلي على النظام. يتم تعيين كل صفحة منطقية في مساحة عنوان العملية إلى موقعها الفعلي، ويتم تخزين هذا التعيين في شكل جدول صفحات.
للتعامل مع مرجع الذاكرة لعملية ما، تقوم وحدة إدارة الذاكرة (MMU)، وهي أحد مكونات الأجهزة في المعالج، بترجمة العنوان المطلوب إلى عنوانه الفعلي عن طريق الإشارة إلى جدول الصفحات. يشتمل جدول الصفحة على إدخالات جدول الصفحات (PTEs). يحتوي كل PTE على معلومات التعيين وقد يحتوي على حقول إضافية لوصف حالة الصفحة المقابلة والتعيين.
حجم الصفحة، على الرغم من أنه خاص بالبنية، عادةً ما يكون 4 كيلو بايت في معظم البنيات. وهذا يعني أن كل 4 كيلو بايت في مساحة عنوان العملية يجب أن تحتوي على PTE واحد. وبالنظر إلى الحجم الضخم لمساحة عنوان العملية، فإن حجم جدول الصفحات، حتى بالنسبة لعملية واحدة، يمكن أن يكون هائلاً.
على سبيل المثال، سيكون حجم جدول الصفحة لعملية في بنية 64-بت تحتوي على صفحات 4 كيلوبايت و8-بايت PTE هو 32 بيتابايت (264/212 × 8=255 بايت) في الحجم. ومع ذلك، مساحة العنوان عادة ما تكون ذات كثافة سكانية منخفضة، ومعظم مساحة العنوان غير مطلوبة.
وهذا يوضح التنظيم الهرمي لجدول الصفحات. يتم تقسيم جدول الصفحة بأكمله إلى أجزاء من جدول الصفحات تتناسب مع الصفحة. لم يتم تخصيص أجزاء جدول الصفحة لمناطق العناوين غير المخصصة.

يمكن تلخيص أجزاء جدول الصفحة المملوءة كأجزاء جدول صفحات ذات مستوى أعلى. يتم تكرار هذا الاتجاه غير المباشر حتى توجد أجزاء فقط في صفحة واحدة، مما يسمح بتكوين شكل مضغوط من جداول الصفحات.
For more information:1950477648nn@gmail.com






