الميموري واللي منها

4 min read
Z
Zeyad
Author
الميموري واللي منها

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

1. الرام (RAM)

إيه هي الرام؟

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

خناقة جانبية DRAM vs SRAM

DRAM (Dynamic RAM): بتستخدم مكثفات (Capacitors) لتخزين الداتا.
المكثفات دي زيّ "قزازة المية" بتنقط – محتاجة إعادة شحن كل 64 مللي ثانية.

استخدامها: في الرام الرئيسية (اللي بتشوفها في مواصفات اللاب).

SRAM (ٍٍStatic RAM): بتستخدم من 4 لـ 6 ترانزستورات لكل bit.
الداتا بتفضل موجودة طول ما الكهربا شغالة .

استخدامها: في الـCache جوا البروسيسور.

📌 لم الموضوع معايا : معظم الأجهزة بتستخدم DRAM لأنها توازن بين السرعة والحجم، مع إن بعض المناطق الحرجة في البروسيسور بتستخدم SRAM لأنها أسرع بكتير.

2. الستاك والهيب (Stack vs Heap)

الستاك (Stack)

  • بتشتغل إزاي: بتتعامل مع الداتا المؤقته .
  • نظامها: LIFO – آخر حاجة تدخل تطلع أول حاجة (زي مثال الكتب الشهير).
  • المشكلة: لو حطيت فيها أكتر من طاقتها، يحصل Stack Overflow .

الهيب (Heap)

  • بتشتغل إزاي: بتخزن الداتا اللي عمرها طويل (زي الصور في الـِApps).

  • الميزة: تقدر تحجز مكان يدويًا (بـnew في الجافا أو malloc في السي).

  • المشكلة: لو نسيت تشيل الداتا، بيحصل Memory Leak (زي ما تنسى تلم اللي وراك لحد متشيل الماده يا معلم !).

📌 الفرق في جملة:

  • الستاك: "خد الداتا هتتشال بعد شوية!"

  • الهيب: "الميموري هنا مسؤوليتك، متنسهاش!".

انصحك تشوف فيديوهات وتقرا اكتر فالموضوع ده لانه ممتع ومحتاج له بلوج لوحده

3. الكاش (Cache):


الكاش هي أسرع ميموري في الكمبيوتر، وبتشتغل زي الـ"مساعد الشخصي" البروسيسور .

ليه البروسيسور محتاج 3 طبقات كاش؟

  1. L1 Cache:
    • السرعة: تكاد تكون سرعة الضوء.
    • الحجم: 64KB (زي صفحة في كشكول صغير).
    • الدور: بتخزن الـinstructions اللي البروسيسور بيستخدمها دلوقتي.
  2. L2 Cache:
    • السرعة: أبطأ شوية من L1.
    • الحجم: حتى 2MB (زي كتاب صغير).
    • الدور: بتخزن الداتا اللي ممكن يحتاجها البروسيسور قريب.
  3. L3 Cache:
    • السرعة: أبطأ من L2.
    • الحجم: حتى 32MB (زي مكتبة صغيرة).
    • الدور: بتنسق بين كل Cores البروسيسور .

📌 نصيحة للمبرمجين: لو عايز أداء أسرع، خلي الداتا اللي بتستخدمها كتير متقاربة في الميموري(استخدام arrays بدل الـlinked list).

4. الـGarbage Collector

اللغات اللي بتنضف وراك واللي لا ومميزاتهم وعيوبهم

Java و Python: عندهم (GC) بيشيل الداتا اللي مبتستخدمهاش.
الميزة: مفيش هم إدارة الميموري.
العيب: ممكن يوقف البرنامج فجأة عشان ينضف
(محصلتش معايا الصراحه بس امان)!

C وC++: مفيش (GC)– إنت المسؤول عن كل حاجه.
الميزة: تحكم كامل في الأداء.
العيب: لو غلطت، هتتعب.

Rust: عندها "Ownership System" اللي بيضمن إنك متنساش أي داتا – من غير ما تحتاج لـ(GC)!

📌 الفرق في جملة:
Java: "وسخ واحنا ننضف!"
C/C++: "لم وراك يا حبيب اخوك!"
Rust: "وربنا مانت موسخ !"

5. الخدعة اللي بتنقذك (Virtual Memory)


لما الرام تتملي، النظام بيستخدم جزء من الهارد ديسك كذاكرة إضافية. المشكلة؟ سرعة الهارد أبطأ من الرام بـــ100 مرة!

إزاي تتجنب البطء؟

لو لابك قديم ومعاك فلوس: بدل الHDD بSSD – الفرق هيكون زي الفرق بين عربية ربع نقل وسبورت كار!

6. Primary Memory (RAM) vs Secondary Memory (Hard Disk)

ايه بقا الفرق بين الرام والهارد ديسك ؟

(Primary Memory) الذاكرة الأساسية : دي الذاكرة اللي بيستخدمها الكمبيوتر بشكل فوري وسريع.
مثال: الرام (RAM).
وظيفتها: بتخزن الداتا والبرامج اللي الجهاز بيشغلها في الوقت الحالي.
السرعة: سريعة جداً عشان تقدر تدير العمليات الحالية بسرعة.
دائمية: لا! لو الكمبيوتر اتقفل، كل حاجة فيها بتروح.
استخدام: بتستخدم بشكل مستمر خلال العمليات اللي بتحتاجها التطبيقات في الوقت الحالي.

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

مثال عملي:
لما تفتح لعبة زي ليج اوف ليجند مثلا والعياذ بالله:

اللعبة نفسها مخزنة في الهارد (Secondary).
أول ما تفتحها، بيتحمّل جزء منها في الرام (Primary) عشان البروسيسور يشتغل بسرعة.
البروسيسور بيستخدم الـكاش (L1/L2/L3) عشان يوصل لأسرع جزء من الداتا.
لو الرام اتملت، النظام هيستخدم جزء من الهارد كـذاكرة افتراضية (Virtual Memory)، لكن الأداء هيتباطأ.

📌 الفرق في جملة:
الذاكرة الأساسية : "معاك النهارده بكره هنساك !" (الرام).
الذاكرة الثانوية: "هفتكر وافكرك بكل حاجه حتى لو نسيت!" (الهارد).

العلاقة بينهم؟
البروسيسور بيشتغل مع الذاكرة الأساسية مباشرة، لكن الداتا اللي متخزنة في الثانوية لازم تتنقل للأساسية عشان يتعامل معاها.
كل ما تمشي شمال :
الهارد -> الرام -> الكاش -> البروسيسور
الداتا أسرع وأصغر وأغلى!

فهم الفرق بينهم بيخليك تختار قطع الهاردوير المناسبة لاحتياجاتك، وتoptimize أداء الجهاز أو السيرفر بتاعك! 🚀


بس كده يا معلم دي كانت رحلة سريعة فالميموري واللي منها واتمنى اكون قدرت الم الموضوع كله على السريع ويكون عندك اسألة وشغف اكتر عن موضوع شائك من مشاكلة ممتع في عالمه هروح انا انام ولو عوزتني في اي وقت كلم زيو