الضرب (علوم الحاسوب)

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

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

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

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

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

ملخص

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

تُخصَّص للبرامج عددٌ مُحدَّد من الصفحات حسب حاجة نظام التشغيل . توجد صفحات الذاكرة النشطة في كلٍّ من ذاكرة الوصول العشوائي (RAM) والقرص الصلب. تُزال الصفحات غير النشطة من ذاكرة التخزين المؤقت (الكاش ) وتُكتب إلى القرص الصلب عندما تمتلئ الذاكرة الرئيسية.

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

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

الأسباب

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

غالبًا ما ينتج اضطراب النظام عن زيادة مفاجئة في طلب الصفحات من عدد قليل من البرامج قيد التشغيل. تُعدّ Swap-token [ 3 ] آلية حماية خفيفة الوزن وديناميكية ضدّ هذا الاضطراب. تقوم فكرتها الأساسية على تعيين رمز مميز في النظام، يُمنح عشوائيًا للعملية التي تواجه أخطاء في الصفحات عند حدوث الاضطراب. تُمنح العملية التي تمتلك الرمز المميز امتيازًا لتخصيص المزيد من صفحات الذاكرة الفعلية لبناء مجموعة العمل الخاصة بها، والتي يُتوقع منها إنهاء تنفيذها بسرعة وتحرير صفحات الذاكرة لعمليات أخرى. يُستخدم طابع زمني لتسليم الرموز المميزة واحدًا تلو الآخر. طُبّق الإصدار الأول من Swap-token في نظام Linux . يُطلق على الإصدار الثاني اسم preempt swap-token . في هذا الإصدار المُحدّث من Swap-token، يُعيّن عداد أولوية لكل عملية لتتبع عدد صفحات التبديل. يُمنح الرمز المميز دائمًا للعملية ذات الأولوية العالية، والتي لديها عدد كبير من صفحات التبديل. إن طول الطابع الزمني ليس ثابتًا ولكنه يتحدد حسب الأولوية: فكلما زاد عدد صفحات التبديل في عملية ما، زاد طول الطابع الزمني الخاص بها.

استخدامات أخرى

يُعرف التذبذب بشكل أفضل في سياق الذاكرة والتخزين، ولكن تحدث ظواهر مماثلة لموارد أخرى ، بما في ذلك:

تآكل ذاكرة التخزين المؤقت
عندما يتم الوصول إلى الذاكرة الرئيسية بنمط يؤدي إلى تنافس مواقع متعددة في الذاكرة الرئيسية على نفس خطوط التخزين المؤقت، ينتج عن ذلك أخطاء مفرطة في التخزين المؤقت . ومن المرجح أن يكون هذا الأمر إشكاليًا بالنسبة لذاكرات التخزين المؤقت ذات خاصية التجميع .
تشمل أنماط الوصول التي تُسبب تنازعًا على الذاكرة المؤقتة وجود مجموعة كبيرة جدًا من البيانات "الساخنة" في الذاكرة أو غيرها من أشكال ضعف التوزيع المكاني. في الذاكرة المؤقتة الترابطية، تُسبب أنماط الوصول التي تؤدي إلى تصادم المفاتيح تنازعًا أيضًا. ومن الأمثلة الكلاسيكية على ذلك حلقة الزيادة التدريجيةfor (k = 0; k < N; k += 256) v[k] += 1; . [ 4 ]
ضربة TLB
عندما يكون حجم مخزن الترجمة المؤقت (TLB)، الذي يعمل كذاكرة تخزين مؤقتة لوحدة إدارة الذاكرة (MMU) التي تترجم العناوين الافتراضية إلى عناوين فعلية، صغيرًا جدًا بالنسبة لمجموعة صفحات العمل، قد يحدث تذبذب في حجم المخزن المؤقت (TLB thrashing) حتى في حال عدم حدوث تذبذب في ذاكرة التخزين المؤقت للتعليمات أو البيانات، وذلك لأن أحجام التخزين المؤقت تختلف. تُخزن التعليمات والبيانات في كتل صغيرة ( أسطر التخزين المؤقت )، وليس في صفحات كاملة، ولكن يتم البحث عن العناوين على مستوى الصفحة. وبالتالي، حتى لو كانت مجموعات عمل التعليمات والبيانات تتسع في ذاكرة التخزين المؤقت، فإذا كانت مجموعات العمل مجزأة عبر صفحات متعددة، فقد لا تتسع مجموعة عمل العناوين الافتراضية في مخزن الترجمة المؤقت (TLB)، مما يؤدي إلى تذبذب حجم المخزن المؤقت (TLB thrashing).
قد يحدث تذبذب TLB أيضًا عند حدوث تصادمات زائدة في ذاكرته الترابطية الداخلية (أي عندما تتنافس مواقع الذاكرة على عدد قليل من الخانات المحددة). يمكن أن يحدث هذا عند البحث الثنائي في مخزن مؤقت كبير (≥  512  كيلوبايت) بحجم يُمثل قوة دقيقة للعدد اثنين. يمكن تجنب ذلك بتوزيع "المفتاح" للذاكرة الترابطية الداخلية (عادةً البتات الدنيا من العنوان) عن طريق تقليل محاذاة الوصول؛ في البحث الثنائي، يمكن استخدام تقسيم الإزاحة 31/64 . هذه حالة نادرة حيث تؤثر المحاذاة الزائدة سلبًا على الأداء . [ 5 ]
سحق الكومة
يُشار إلى عملية جمع البيانات المهملة المتكررة ، نتيجةً لعدم تخصيص ذاكرة لكائن ما، أو بسبب عدم كفاية الذاكرة الحرة، أو عدم كفاية الذاكرة الحرة المتجاورة بسبب تجزئة الذاكرة، باسم "التقليب المفرط للذاكرة". [ 6 ]
معالجة الإرهاق
وتحدث ظاهرة مماثلة بالنسبة للعمليات: فعندما لا يمكن جدولة مجموعة عمل العملية بشكل مشترك ، أي عندما لا يتم جدولة جميع العمليات المتفاعلة لتشغيلها في نفس الوقت، فإنها تعاني من "اضطراب العملية" بسبب جدولتها وإلغاء جدولتها بشكل متكرر، مما يؤدي إلى تقدم بطيء فقط. [ 7 ]

انظر أيضاً

مراجع

  1. دينينغ، بيتر ج. (1968). "الاضطراب: أسبابه وسبل الوقاية منه" (ملف PDF) . وقائع مؤتمر AFIPS المشترك للخريف للحاسوب . 33 : 915-922 . تاريخ الاسترجاع : 15 فبراير 2012 .
  2. ل.، هينيسي، جون (2012). هندسة الحاسوب: منهج كمي . باترسون، ديفيد أ.، أسانوفيتش، كرست . ( الطبعة الخامسة). والتهام، ماساتشوستس: مورغان كوفمان. ISBN  9780123838728. OCLC 755102367 . {{cite book}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط )
  3. سونغ جيانغ، وشياودونغ تشانغ (2005). "خوارزمية LRU المرتبة حسب الرمز المميز: سياسة فعالة لاستبدال الصفحات وتطبيقها في أنظمة لينكس" . تقييم الأداء. ص 5-29 . doi : 10.1016/j.peva.2004.10.002 . 
  4. "ترابط الذاكرة المؤقتة - Algorithmica" . en.algorithmica.org . تم الاطلاع عليه بتاريخ 18-08-2025 .
  5. "البحث الثنائي حالة شاذة بالنسبة لذاكرة التخزين المؤقت - بول خونغ: بعض لغة ليسب" . pvk.ca .
  6. تقنيات تحسين الأداء وضبط معالجات IBM، بما في ذلك IBM POWER8 ، "heap+thrashing" صفحة 170
  7. أوسترهوت، جيه كيه (1982). "تقنيات الجدولة للأنظمة المتزامنة" (ملف PDF) . وقائع المؤتمر الدولي الثالث حول أنظمة الحوسبة الموزعة . الصفحات 22-30 .