What is Virtual Memory?
هي تقنية تستخدم جزءاً من القرص الصلب (Hard Disk) ليعمل كامتداد للذاكرة الرئيسية (RAM).
الفائدة الرئيسية
زيادة سعة الذاكرة الظاهرية (Capacity) دون شراء RAM إضافية، مما يسمح بتشغيل برامج أكبر من حجم الذاكرة الفيزيائية.
المصطلحات الأساسية
- Virtual Address: العنوان الذي ينشئه البرنامج (وهمي).
- Physical Address: العنوان الحقيقي في الـ RAM.
- Page Fault: عندما تكون البيانات المطلوبة ليست في RAM بل في القرص.
Paging & Address Translation
Virtual Address
Page Table
Mapping Center
Physical Address
TLB: Speeding Things Up
لماذا نحتاج الـ TLB؟
جدول الصفحات (Page Table) مخزن في الذاكرة (RAM). هذا يعني أن كل عملية وصول للبيانات تتطلب عمليتين قراءة من الذاكرة (واحدة للجدول، وواحدة للبيانات). هذا بطيء جداً!
الحل (TLB):
هو "كاش خاص" وسريع جداً داخل المعالج، يخزن آخر التحويلات (Page -> Frame).
إذا وجدنا العنوان في TLB (Hit) ← لا داعي للذهاب للذاكرة لقراءة الجدول.
Fragmentation (التجزئة)
| الطريقة | الوصف | نوع التجزئة (المشكلة) |
|---|---|---|
| Paging (التقسيم لصفحات) | تقسيم الذاكرة والبرامج لقطع متساوية الحجم (Pages/Frames). |
Internal Fragmentation: آخر صفحة في البرنامج قد لا تكون ممتلئة، مما يضيع مساحة داخل الصفحة. |
| Segmentation (التقسيم لقطاعات) | تقسيم الذاكرة لقطع متغيرة الحجم حسب الحاجة (Logical segments). |
External Fragmentation: ظهور فراغات صغيرة متناثرة بين القطاعات يصعب استغلالها. |
Effective Access Time (EAT)
معطيات: Memory Access = 200ns, Page Fault rate = 1%, Disk access = 10ms.
(انتبه: 10ms = 10,000,000ns).
EAT = 0.99(400ns) + 0.01(10,000,000ns)
EAT = 396 + 100,000 = 100,396 ns
لاحظ كيف دمر الـ Page Fault الأداء!
The "Valid" Bit
في جدول الصفحات (Page Table):
إذا كان الـ Valid Bit = 1: الصفحة موجودة في RAM (كمل شغلك).
إذا كان الـ Valid Bit = 0: الصفحة غير موجودة (Page Fault)، يجب جلبها من القرص.