CCoW: تحسين النسخ عند الكتابة مع الأخذ في الاعتبار الموقع المكاني في أعباء العمل الجزء 3

Apr 02, 2024

3. تصميم اتفاقية العمل

في هذا القسم، نقدم أولاً دوافعنا وراء تحسين النسخ عند الكتابة ونشرح المفهوم الأساسي للنسخ عند الكتابة (CCoW) القائم على التغطية. ثم نشرح الطريقة التي تلتقط بها CCoW المنطقة في ظل سيناريوهات مختلفة والتحسين لالتقاط المنطقة بحمل منخفض.

الذاكرة هي قدرة الأشخاص على اكتساب المعلومات وتخزينها واسترجاعها. سوف تختلف ذكريات الناس أيضًا في سيناريوهات مختلفة. في هذه المقالة، سوف نستكشف العلاقة بين الذاكرة في سيناريوهات مختلفة.

الأول هو سيناريو التعلم. التعلم هو وسيلة مهمة للإنسان لاكتساب المعرفة والمهارات. في عملية التعلم، تلعب الذاكرة دورًا حيويًا. إذا كانت لديك ذاكرة قوية، فيمكنك إتقان المعرفة الجديدة بشكل أسرع والاحتفاظ بالمعرفة المكتسبة بسهولة أكبر. لذلك، في سيناريوهات التعلم، نحتاج إلى الحفاظ على تفكيرنا واضحًا ومركزًا لتحسين الذاكرة بشكل أفضل.

والثاني هو المشهد السياحي. يتيح لنا السفر تجربة ثقافات وبيئات مختلفة، مما يثري آفاقنا بشكل كبير. أثناء السفر، يمكننا اكتساب معرفة ثقافية غنية من خلال تذكر المواقع الجغرافية والأشخاص والعادات وغيرها من المعلومات. لذلك، في مشهد السفر، نحتاج إلى مراقبته بعناية وتجربته بنشاط، لتحسين ذاكرتنا بشكل أفضل.

مرة أخرى، إنه مشهد عمل. في العمل، نحتاج إلى التعامل مع كمية كبيرة من المعلومات، مثل البيانات وجهات الاتصال والمهام والخطط وما إلى ذلك. إذا لم تكن ذاكرتنا قوية بما يكفي، فسوف يؤثر ذلك على كفاءة عملنا وإنجازاتنا. لذلك، في سيناريوهات العمل، نحتاج إلى القيام بعمل جيد في التسجيل والتنظيم ومحاولة تضييق نطاق "اتصال المعلومات" قدر الإمكان. بهذه الطريقة، يمكننا تحسين ذاكرتنا بشكل أفضل.

وأخيرا، هناك مشاهد الحياة. يحتاج الإنسان إلى تذكر العديد من الأشياء اليومية، مثل العناوين وأرقام الهواتف والمهام اليومية وما إلى ذلك. إذا لم تكن ذاكرتنا جيدة بما فيه الكفاية، فسوف تنشأ العديد من المشاكل في الحياة. ولذلك، في مشاهد الحياة، نحن بحاجة إلى ممارسة قدرتنا على الذاكرة. يمكننا تحسين ذاكرتنا من خلال بناء التفكير الترابطي والتكرار بصمت.

خلاصة القول، الذاكرة في سيناريوهات مختلفة ترتبط ارتباطا وثيقا. يمكننا تحسين ذاكرتنا وتحقيق أداء أفضل في سيناريوهات مختلفة من خلال الممارسة والتركيز المتعمدين. دعونا نسعى إلى حياة ومهنة أفضل بموقف متفائل. يمكن ملاحظة أننا بحاجة إلى تحسين الذاكرة، ويمكن لـ Cistanche deserticola أن يحسن الذاكرة بشكل كبير، لأن Cistanche deserticola يمكنه أيضًا تنظيم توازن الناقلات العصبية، مثل زيادة مستويات الأسيتيل كولين وعوامل النمو. هذه المواد مهمة جدًا للذاكرة والتعلم. بالإضافة إلى ذلك، يمكن لـ Cistanche deserticola أيضًا تحسين تدفق الدم وتعزيز توصيل الأكسجين، مما يضمن حصول الدماغ على العناصر الغذائية والطاقة الكافية، وبالتالي تحسين حيوية الدماغ والقدرة على التحمل.

improve working memory

انقر فوق معرفة المكملات الغذائية لتحسين الذاكرة

3.1. تحفيز

كما ناقشنا سابقًا، تلعب آلية النسخ عند الكتابة دورًا رئيسيًا في تنفيذ ميزات الذاكرة الافتراضية في أنظمة التشغيل الحديثة. ومع ذلك، فإن مزاياها من حيث المساحة تتضاءل في بيئات الحوسبة الحديثة وأحمال العمل كثيفة الكتابة، وهي شائعة في مراكز البيانات [21،22].

تتيح تقنيات الذاكرة الناشئة مثل ذاكرة التخزين (SCM) والذاكرة الدائمة زيادة كثافة البيانات لوحدات الذاكرة مع خفض التكلفة لكل وحدة من البيانات.

في الوقت الحاضر، أصبح بناء عقدة ذات كمية هائلة من الذاكرة بمقياس تيرابايت أرخص من أي وقت مضى. بالإضافة إلى ذلك، أبلغ مقدمو الخدمات السحابية أن العقد في مراكز البيانات تعاني من انخفاض استخدام الذاكرة، مما يترك 40-50٪ من الذاكرة غير مستخدمة [23-26]. في هذه الحالة، يصبح من الممكن استبدال مساحة الذاكرة بالأداء في الأنظمة ذات الأداء الحرج [27]. وقد تضاءلت المزايا من حيث الأداء أيضًا.

يمكن تمييز فائدة الأداء للنسخ عند الكتابة من خلال تكرار وأداء معالجة أخطاء الصفحة. أثناء إنتاج عملية فرعية، تم إسقاط إذن الكتابة لجميع الصفحات. ومن ناحية الصواب فهذا أمر لا مفر منه؛ ومع ذلك، فإنه يؤدي إلى أخطاء متكررة في الصفحة بعد الشوكة، في خدمة كل طلب كتابة. لا تحدث عاصفة أخطاء كتابة الصفحات هذه في العمليات الفرعية فحسب، بل تحدث أيضًا في العملية الأصلية.

ومما زاد الطين بلة، أن وقت معالجة خطأ الصفحة لم يتحسن مؤخرًا ولكنه يميل إلى الإطالة لأسباب أمنية. في الماضي، تم تعيين مساحة عنوان kernel بالكامل باستمرار إلى جزء من مساحة عنوان عملية المستخدم.

ومع ذلك، يسمح تخطيط مساحة العنوان هذا لعمليات المستخدم الضارة بقراءة البيانات الهامة في مساحة عنوان kernel بشكل غير مباشر من خلال استغلال التنفيذ التخميني في المعالجات [28،29].

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

في هذا العمل، نهدف إلى تقليل الحمل الزائد للنسخ عند الكتابة من خلال الاستفادة من الموقع المكاني لمراجع الذاكرة. في الوقت الحالي، تتم عملية النسخ عند الكتابة لكل صفحة، وفي كل مرة يحدث خطأ في الصفحة، يجب أن يتدخل نظام التشغيل. فكرتنا الأساسية هي تقليل تكرار مشاركة نظام التشغيل من خلال الاستفادة من المنطقة المكانية للوصول إلى الذاكرة. إذا تم الوصول إلى صفحة Ifa للكتابة، فمن المحتمل أيضًا أن يتم الوصول إلى الصفحات القريبة للكتابة قريبًا.

وبالتالي، إذا قمنا بإجراء النسخ عند الكتابة ليس فقط للصفحة المعيبة ولكن أيضًا للصفحات القريبة معًا (على سبيل المثال، النسخ المسبق للصفحات القريبة)، فيمكننا استهلاك النفقات العامة للنسخ عند الكتابة أثناء معالجة خطأ الصفحة. ومع ذلك، يجب أن نكون حذرين، حتى لا نقوم دائمًا بنسخ جميع الصفحات القريبة بشكل أعمى.

إذا تمت كتابة الصفحات المنسوخة لاحقًا، فسيتم سداد النفقات العامة المتكبدة للنسخة المسبقة. ومع ذلك، إذا لم تتم كتابة الصفحات المنسوخة بعد ذلك، فإن النسخة المسبقة لا تتحمل سوى نفقات إضافية من حيث الزمان والمكان.

ways to improve your memory

وبالتالي، من الضروري تحديد الصفحات المستهدفة المناسبة للنسخ. وقد تم استخدام طرق مشابهة لتقليل عبء معالجة خطأ الصفحة. يستخدم Linux ما يسمى بميزة "الخطأ". أثناء معالجة خطأ الصفحة، يبدأ Linux معالجة خطأ الصفحة للصفحات الموجودة حول الصفحة الخاطئة [2]. ومع ذلك، يتم تطبيق هذه الميزة فقط على أخطاء قراءة الصفحة لمناطق الذاكرة المدعومة بالملفات.

نظرًا لأن الفكرة المقترحة تركز على كتابة أخطاء الصفحات للصفحات المجهولة، يمكننا القول بأن نهجنا يختلف عن ميزة تجاوز الأخطاء. وقد تم اقتراح العديد من التصميمات الحديثة [12-17] لتحسين استخدام صفحات ضخمة في نظام التشغيل.

تقدم هذه الأنظمة، بشكل مشترك، مخططًا لتحديد أفضل الصفحات المرشحة لتحويلها إلى صفحات ضخمة وللترقية بكفاءة إلى (أي تحويل الصفحات الأساسية إلى صفحة ضخمة) أو التخفيض من (أي تحويل صفحة ضخمة إلى صفحات أساسية) صفحات ضخمة.

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

3.2. تحديد الموقع المكاني

لتحقيق المخطط المقترح، ينبغي لنا أن ننظر في قضيتين صعبة. أولاً، يجب تحديد الصفحات المستهدفة بدقة وفي الوقت المناسب، بحيث يتم تعظيم الاستفادة من النسخة المسبقة مع تقليل النفقات العامة للنسخة المسبقة.

بمجرد قيام الكاتب بنسخ الصفحة، لن تؤدي الصفحة إلى حدوث أي أخطاء أخرى في الصفحة. وهذا يعني بشكل فعال أن النظام فقد الفرصة لتحسين الوصول إلى الكتابة. وبالتالي، يجب أن يكون النظام قادرًا على توقع استخدام الصفحة في المستقبل لتحديد الصفحات التي يجب نسخها والصفحات التي لا يجب نسخها. ثانيًا، يجب أن يكون تحديد الصفحات المستهدفة منخفضًا نظرًا لأن أنظمة التشغيل لا يمكنها تحمل المعالجة التي تستغرق وقتًا طويلاً في النظام الفرعي لإدارة الذاكرة ذات الأداء الحرج.

كما تمت مناقشته في القسم 2، تعتمد العديد من ميزات الذاكرة الافتراضية في أنظمة التشغيل الحديثة على آلية النسخ عند الكتابة. وبالتالي، يمكن أن تفوق النفقات العامة بسهولة فائدة النسخ عند الكتابة المحسنة إذا لم يكن التنفيذ الشامل فعالاً بما فيه الكفاية.

للتنبؤ بمستقبل الصفحة، نقوم أولاً بجمع تاريخ التشعبات لعمليات المستخدم. وعلى وجه التحديد، يراقب نظام التشغيل عدد التفرعات التي تستدعيها كل عملية. يشير العدد المنخفض لعملية ما إلى أن هناك فرصة ضئيلة لاستغلال العملية، ولا يحتاج نظام التشغيل إلى تتبع أخطاء صفحة الكتابة لهذه العملية بشكل كامل.

في المقابل، عندما تستدعي عملية استدعاء نظام الشوكة أكثر من عتبة، يمكن للنظام أن يتوقع فرصة التحسين. يحدث هذا مع Redis، الذي يستدعي التشعبات بشكل دوري لالتقاط لقطات في الذاكرة، أو مع برنامج Shell النصي الذي يتفرع من أوامر سطر الأوامر المتعددة. واستجابة لذلك، يبدأ النظام في تتبع أخطاء الصفحات الخاصة بالعملية.

improve brain

بعد ذلك، نقترح طريقة للتنبؤ بفرصة التحسين من السجل، على افتراض أن السلوك العام للتطبيقات لا يتغير بشكل كبير. ولتحقيق هذه الغاية، نقوم بتقسيم مساحة عنوان العملية إلى مناطق ذات حجم ثابت. تحتفظ كل منطقة بصورة نقطية، حيث يتوافق كل بت مع صفحة في المنطقة. يتم إنشاء العملية مع مسح كافة الصور النقطية، كما هو الحال بالنسبة لمناطق الذاكرة الظاهرية (VMAs) المأهولة حديثًا. عندما يتم إلغاء تعيين جزء أو VMA بالكامل، يتم أيضًا تحرير الصور النقطية في نطاق العناوين المقابل.

يتم تخصيص الصورة النقطية فقط لأجزاء VMA التي يتم ملؤها، ويتم تلخيص معلومات الصفحة التي يبلغ حجمها 4 كيلوبايت في بت واحد. ومن ثم، فإن المساحة الزائدة للصورة النقطية تبلغ تقريبًا 0.003% من مساحة العنوان المملوءة. في البداية، تتم معالجة عمليات الكتابة من خلال النسخ عند الكتابة كما هي.

يتم احتجاز الوصول للكتابة إلى معالج خطأ الصفحة، حيث يتم تعيين إدخال الصورة النقطية المقابل. مع مرور الوقت، تلتقط الصورة النقطية بشكل فعال الوصول إلى المنطقة، ويمكننا تحديد درجة التغطية. يتم حساب تغطية المنطقة كنسبة مئوية من الصفحات المكتوبة على جميع الصفحات في المنطقة، على النحو التالي:

improve cognitive function

لنفترض أن النظام يستخدم صفحات بحجم 4 كيلوبايت وأن مساحة العنوان مقسمة إلى مناطق تبلغ مساحتها 2 ميغابايت.

ثم تحتوي كل منطقة على 512 4 صفحة كيلو بايت. إذا تم نسخ 300 صفحة أثناء الكتابة، تكون تغطية المنطقة 300/512 × 100=58.6%. كلما زادت تغطية المنطقة، زادت استفادة المنطقة من فرصة تحسين النسخة المسبقة. يتم نقل معلومات التغطية هذه عبر الشوكة واستخدامها كمقياس لتحديد فائدة نسخ الصفحات القريبة.

على وجه التحديد، إذا كانت منطقة الذاكرة تتمتع بتغطية عالية، فمن المحتمل أن يتم نسخ الصفحات الموجودة في المنطقة كتابتها في نهاية المطاف. وبالتالي، سيكون من المفيد إجراء نسخ مسبق لصفحات أخرى في المنطقة أثناء معالجة خطأ كتابة صفحة لصفحة ما. وحيث أن فرصة التحسين في النسخ المسبق للصفحات تكون قليلة إذا كانت التغطية منخفضة. ومن ثم، يتم نسخ الصفحة المعيبة فقط بواسطة معالج خطأ الصفحة.

من الآن فصاعدا، سوف نشير إلى هذا المخطط باسم التغطية على أساس النسخ عند الكتابة أو CCoW لبقية الورقة. ويوضح الشكل 1 مفهوم CCoW. هناك منطقتان، المنطقتان 0 و1، تضم كل منهما ست صفحات. 

يتم ملء الصفحات ذات الظل الأخضر بالنسخ عند الكتابة. عندما تستدعي العملية استدعاء نظام الشوكة، اكتب إذنًا لجميع الصفحات، بما في ذلك الصفحات الخضراء، التي سيتم إسقاطها أثناء الشوكة. لنفترض أن الحد الأدنى لتحديد المنطقة المحلية العالية هو 60%. في المنطقة 0، تم نسخ أربع صفحات (الصفحات 1 و2 و3 و4) قبل الانقسام، مما يوفر تغطية بنسبة 4/6=66%.

وبالتالي، تعتبر هذه المنطقة ذات محلية مكانية عالية، ويتم نسخ كافة الصفحات لمعالجة خطأ الصفحة للصفحة 3، كما هو مظلل باللون الأحمر. حيث أن المنطقة السفلية توفر تغطية بنسبة 33% حيث تم نسخ صفحتين من أصل ست صفحات قبل الانقسام.

ولذلك، تتمتع هذه المنطقة بتغطية أقل من العتبة، مما يعني انخفاض المحلية المكانية في المنطقة. وبالتالي، عند الوصول إلى الصفحة 9 للكتابة، يتم نسخ الصفحة المعيبة فقط عند الكتابة في معالج خطأ الصفحة، تمامًا مثل إجراء النسخ عند الكتابة العادي.

improve memory


For more information:1950477648nn@gmail.com

قد يعجبك ايضا