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

Apr 03, 2024

3.3. تتبع الوصول إلى الصفحات المنسوخة مسبقًا

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

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

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

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

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

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

10 ways to improve memory

انقر فوق معرفة كيفية تحسين الذاكرة قصيرة المدى

في نظام النسخ عند الكتابة الأصلي، يتم التقاط أول عملية كتابة لكل صفحة بواسطة معالج خطأ الصفحة.

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

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

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

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

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

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

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

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

ways to improve memory

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

improve memory

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

يوضح الشكل 2 الحالة التي يتم فيها حساب التغطية بعد النسخ المسبقة. لنفترض أنه تم نسخ كلتا المنطقتين (مظللتين باللون الأحمر)، وأن الصفحات 0 و2 و3 و4 و11 جميعها تحتوي على مجموعة dirtybit.

لحساب التغطية أثناء معالجة الشوكة، يستخدم النظام البت القذر بدلاً من عدد النسخ عند الكتابة حيث يتم نسخ المناطق في العصر الحالي. وبالتالي، تتمتع المنطقة 0 بتغطية تبلغ 66%.
حيث تبلغ نسبة تغطية المنطقة 1 15%. لمعالجة خطأ الصفحة للصفحة 3، يتم نسخ المنطقة 0 مرة أخرى، بينما تتم معالجة خطأ الصفحة للصفحة 9 بالآلية الأصلية. وبهذه الطريقة، يمكننا أن نحافظ على المناطق المحلية العالية من الانزلاق خارج نطاق التركيز.

boost memory

3.4. الاستيلاء على المنطقة

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

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

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

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

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

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

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

memory enhancement


For more information:1950477648nn@gmail.com

قد يعجبك ايضا