كيف تعمل الذاكرة المبرمجة: من البتات إلى الكومة

آخر تحديث: 10/23/2025
نبذة عن الكاتب: ج مصدر تريل
  • تحدد تشغيلات الذاكرة (ذاكرة التخزين المؤقت وذاكرة الوصول العشوائي والتخزين) زمن الوصول والتكاليف والاستمرارية.
  • يتم إنشاء العملية بواسطة كود، بيانات ثابتة، كومة وكومة، كل واحدة مع حلقة من الحياة الخاصة.
  • En C، sizeof y & son أساسيات للأنواع والاتجاهات؛ تكون الماكينة أوتوماتيكية أو كومة أو يدوية أو بواسطة GC.
  • ذاكرة الوصول العشوائي سريعة ومتقلبة؛ التخزين الآمن والذاكرة الافتراضية ذات سعة كبيرة.

memoria en programacion

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

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

وحدات البت إلى وحدات البايت: الحد الأدنى غير واضح

يتم إنشاء كل شيء من الوحدة الدنيا: الجزء الذي يمكن أن يساوي 0 أو 1 فقط؛ يتم تجميع البتات بالبايت (تختار البايتات حسب الممارسة الحديثة) ، وأي قيمة لبرنامجك تشغل وحدة بايت واحدة أو عدة بايتات حسب نوع البيانات وكذلك المترجم الذي يقوم بتفسيره.

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

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

عند استخدام برامج لغة C، لا يمكنك استخدام "العين": استخدم عامل التشغيل sizeof للحصول على حجم بايت من نوع واحد أو متغير محدد على منصتك . نحن نتجنب الاحتياجات الهشة أثناء العمل مع المخازن المؤقتة والهياكل واتصالات النظام التي تتطلب قدرًا كبيرًا من الدقة.

أيضًا في لغة C، يقوم المشغل unario & (علامة الضم) بالاتجاه إلى ذاكرة البايت الأولي لمتغير واحد؛ وبهذه القيمة، يمكن للنقطة أن "ترسل" إلى الحياة الحقيقية للبيانات الموجودة في الذاكرة ، ومن ثم يمكن تمرير المراجع إلى الوظائف أو تصحيح الكتل المتجاورة.

نعم، كما هو الحال الآن، نقطة نطق بسيطة: "بايت" هي نفسها التي تقرر "الطعم" . لا تنقذ استثناءً، ولكن عليك أن تكتسب نقاطًا من الأسلوب.

الذاكرة المادية والذاكرة: ما هو أفضل غطاء

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

توجد فئات مختلفة من الذاكرة، بسرعات وتكاليف مختلفة: SRAM (سريع، متطاير، يستخدم كذاكرة تخزين مؤقت)، DRAM (أكثر كثافة وقوة، قاعدة النظام RAM)، VRAM (مخصص للرسومات)، ROM (غير متطاير)، فلاش (غير متطاير وقابل لإعادة التدوير)، ذاكرة افتراضية وذاكرة فئة التخزين أو SCM التي تهدف إلى قطع المسافة بين ذاكرة الوصول العشوائي والتخزين التقليدي.

ذاكرة الوصول العشوائي (RAM) متغيرة ورائعة للوسيط: توفر الوصول السريع إلى البيانات التي تحتاجها وحدة المعالجة المركزية "أنت" ، وذلك بسبب اختراق المحتوى الخاص بك عند رفع الجهاز. من أجل ذلك يتم تخزينها على تخزين ثانوي (HDD، SSD، البصريات)، وهو أكثر بطئًا ولكنه ثابت بما يصل إلى جيجابايت.

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

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

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

ما هي ذاكرة الوصول العشوائي (RAM) الأساسية (وما الذي لا يمكن سهمه)

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

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

الذاكرة الرئيسية، التخزين الأولي والثاني

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

الذاكرة الرئيسية

  • Acceso directo de la CPU للمحاضرات والكتب عالية السرعة.
  • ذاكرة الوصول العشوائي (RAM) متطايرة وذاكرة القراءة فقط (ROM) غير متطايرة، كل واحدة بها ورقها.
  • هي مساحة العمل عبر نظام التشغيل والتطبيقات.

التخزين الأساسي

  • إذا تم استخدامه عدة مرات كحواجز تتضمن الذاكرة الرئيسية و موارد أخرى لتخزين الأداء العالي, حول كل ما يتعلق بمؤسسات الأعمال.
  • يعمل كنقطة دخول بين وحدة المعالجة المركزية والتخزين الثانوي movilizar datos con fluidez.

التخزين الثانوي

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

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

كيفية تنظيم ذاكرة البرنامج: المناطق الرئيسية الأربعة

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

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

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

صف من المكالمات (المكدس) : في كل مرة تقوم فيها إحدى الوظائف داخل المشهد، يتم "ربط" سياق جديد (إطار) باستخدام المعلمات والمتغيرات المحلية . يتم تحويل التحكم (العودة) إلى "إزالة" ومساحة حرة تلقائيًا.

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

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

استدعاء المكالمات: ما الذي يحدث في وظائف الاستدعاء

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

إذا قمت بتسلسل المكالمات مثل Saludar(1)، Saludar(2)، Saludar(3)، فسترى كيف يتم استدعاء الإطارات وإزالتها بشكل متتابع . هذه الآلية التلقائية تبسط الحياة: لا تملك "تحرير" المتغيرات المحلية؛ Mueren al Salir de la función.

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

الكومة: الذاكرة الديناميكية منخفضة الطلب

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

في لغة C، يتم عادةً الحجز وتحرير صيغة صريحة؛ في اللغات المزودة بذاكرة أساسية (GC)، يحدد وقت التشغيل وقت استعادة الذاكرة . في العديد من الحالات، يتجنب الهروب ونسخ الملكية التي تعوق الحفاظ عليها.

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

الاتجاهات والأنواع في C: وحجمها مثل البروجولا

إذا كنت ترغب في فحص المنصة، فاكتب برنامجًا صغيرًا يطبع حجمًا من أنواع مختلفة (char، int، long، punteros...). ستعرف بالضبط مقدار وحدات البايت التي تشغل كل واحدة وتتمكن من تحديد الهياكل والبروتوكولات بدقة.

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

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

Objetos y POO: حلقة الحياة والمكان

في البرمجة الموجهة للأشياء، "يعيش" كائن يعتمد على اللغة ونمط الاستخدام. يمكن لـ C++ إنشاء كائنات تلقائية (في كتلة) أو ديناميكيات (في كومة) ؛ في Java أو C#، من المفترض أن تكون الكائنات موجودة في كومة وقت التشغيل، وهي تعتمد على المراجع.

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

ما الذي يوجد في نظام التشغيل Windows 10: مدير الملفات والذاكرة

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

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

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

نصائح عملية لعدم استخدام الذاكرة

Primero، mide y verifica: no asumas tamaños؛ اطلب حجمًا وسجل استهلاكًا حقيقيًا . ثانيًا، قم بتعيين الذاكرة حيث يكون لديك إحساس: قطعة من الأشياء الصغيرة والملفات؛ كومة للمجموعات وهياكل الحياة الممتدة.

تجنب المزيد من المسؤوليات: إذا كانت الوظيفة محفوظة، والتي يتم تحريرها أيضًا، أو الوثيقة بوضوح هي "الثاني" . في لغة C وC++، فإن عقد الملكية الأساسي هو حل الوسائط الخاطفة والتحرير المزدوج.

Piensa en la jerarquía: الوصول إلى شكل خطي ومسبق للمساعدة في التخزين المؤقت، وهذا يتم ترجمته إلى أداء . إعادة تنظيم الهياكل (SoA vs AoS) إذا كانت تتطلب المزيد من تشغيل وحدة المعالجة المركزية.

يمكنك استعادة القيود: ذاكرة الوصول العشوائي (RAM) سريعة ولكنها محدودة ومتقلبة . تأكد من الثبات عند الضغط على (الحماية قبل الإغلاق) والنظر في آليات الذاكرة الافتراضية والخرائط وSCM إذا قمت بتحميلها يمكنك الموافقة.

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

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

الوظائف ذات الصلة: