تسرب الذاكرة

عودة للموسوعة

تسرب الذاكرة

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

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

نتائج تسرب الذاكره

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

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

الحالات حينقد يكون التسرب أكثر خطوره قد تتضمن:

  • حين يهجر البرنامج المخطئ يعمل، ويستهلك ذاكره أكثر فأكثر مع مرور الوقت (مثل المهمات الخلفيه، في خادمات الويب، ولكن أكثر في الأجهزه المضمنه والتي يمكن حتى تهجر تعمل لسنين عديده"مثال: راوتر")
  • حينقد يكون البرنامج قادرا على طلب ذاكره (مثال: ذاكره مشهجره shared memory) لم يتم إفراغها، حتى وإن اغلق البرنامج.
  • حين يحدث التسرب بسبب نظام التشغيل.
  • حين تكون الذاكره قليله جدا، مثال: داخل نظام مضمن embedded system أوجهاز محمول.


مثال لشخص عادي

هذا المثال يهدف لتوضيح كيفية حدوث تسرب بالذاكره، ونتائجه، بدون الحاجه إلى اي معهده بفهم البرمجه. يرجى ملاحظة ان هذا مثال توضيحي.

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

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

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

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

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

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

هل هوتسرب بالذاكره؟

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

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

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

مثال سهل لذاكره لا يمكن الوصول اليها في لغة سي

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

#include <stdio.h>
int f(void) 
{ 
    char* s; 
    s = (char *)malloc(50); /* get memory */ 
    if (s==NULL) return 1; /* no memory available */ 
    else 
    {   /* memory available */ 
        return 0;  /* memory leak - see note below */ 
      
    /* 
     * Memory was available and pointed to by s، but not saved. 
     * After this function returns، the pointer is destroyed، 
     * and the allocated memory becomes unreachable 
     * 
     * to "fix" this code، you would add the statement "free(s)" to 
     * the else block before the "return 0" statement 
     */ 
  
int main(void) 
{ 
    /* this is an infinite loop calling the above function */ 
    while (1) f(); /* This function call will fail to malloc sooner or later */ 
return 0 ; 
 

أنظر أيضا

  • Buffer overflow
  • إدارة الذاكره Memory management
  • مصلح الذاكره Memory debugger
تاريخ النشر: 2020-06-04 09:29:42
التصنيفات:

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

تحويط الحريق الغابوي المندلع بغابة “جبل أمزيز” بوازان

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:36
مستوى الصحة: 30% الأهمية: 49%

فرق مكافحة النيران تقترب من السيطرة على حريق العرائش

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:41
مستوى الصحة: 37% الأهمية: 48%

باولو ديبالا على بُعد خطوة واحدة من الانتقال إلى روما

المصدر: البطولة - المغرب التصنيف: رياضة
تاريخ الخبر: 2022-07-18 00:16:20
مستوى الصحة: 45% الأهمية: 69%

المنتخب المغربي يواجه نظيره الشيلي استعدادا لمونديال قطر

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:43
مستوى الصحة: 45% الأهمية: 41%

أول تعليق من "الصحة" عن تحويل مستشفيات كاملة للعزل

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-07-17 21:26:12
مستوى الصحة: 45% الأهمية: 64%

ثانوية ابن تومرت التأهيلية بمراكش.. كبرياء التاريخ وشموخ الحياة

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:34
مستوى الصحة: 33% الأهمية: 35%

14 جامعة حكومية تفتح أبوابها.. و5 شروط للتسجيل

المصدر: صحيفة اليوم - السعودية التصنيف: مجتمع
تاريخ الخبر: 2022-07-17 21:26:34
مستوى الصحة: 38% الأهمية: 47%

وفق جدول منتظم.. «الخطوط السعودية» تواصل نقل الحجاج

المصدر: صحيفة اليوم - السعودية التصنيف: مجتمع
تاريخ الخبر: 2022-07-17 21:26:41
مستوى الصحة: 43% الأهمية: 35%

المغرب يحقق إنجازا كبيرا في قطاع صناعة السيارات

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:40
مستوى الصحة: 32% الأهمية: 43%

إشادات عالمية بالدور الهام لجلالة الملك في فتح معبر اللنبي

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:39
مستوى الصحة: 43% الأهمية: 49%

مصالح الأمن تفك لغز جريمة سرقة وكالة لتحويل الأموال

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:42
مستوى الصحة: 38% الأهمية: 49%

"سبورت": برشلونة قرر تجديد عقد عبد الصمد الزلزولي

المصدر: البطولة - المغرب التصنيف: رياضة
تاريخ الخبر: 2022-07-18 00:16:22
مستوى الصحة: 53% الأهمية: 51%

محافظ الأحساء يؤكد أهمية التنسيق لدعم تطوير المساجد

المصدر: صحيفة اليوم - السعودية التصنيف: مجتمع
تاريخ الخبر: 2022-07-17 21:26:26
مستوى الصحة: 37% الأهمية: 36%

قائمة الناجحين في شهادة البكالوريا 2022 الشلف

المصدر: صوت الشلف - الجزائر التصنيف: مجتمع
تاريخ الخبر: 2022-07-17 21:26:21
مستوى الصحة: 51% الأهمية: 54%

حسام أمعنان ينضم إلى صفوف نادي أحد السعودي لموسم واحد قابل للتجديد

المصدر: البطولة - المغرب التصنيف: رياضة
تاريخ الخبر: 2022-07-18 00:16:19
مستوى الصحة: 55% الأهمية: 58%

الحكومة توضح حقيقة تعرض مصر لاختفاء سلع غذائية

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-07-17 21:26:11
مستوى الصحة: 59% الأهمية: 70%

حاليا بالمغرب.. 14 الف و861 مصابا بكورونا

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:33
مستوى الصحة: 45% الأهمية: 37%

السيطرة على الواجهة الشمالية للحريق الغابوي بتطوان

المصدر: كِشـ24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-07-18 00:15:35
مستوى الصحة: 36% الأهمية: 38%

تحميل تطبيق المنصة العربية