🧠
محاكي الذاكرة — من الكود إلى RAM والـ Swap
اكتب كود JavaScript بسيط وشاهد أثره على Stack وHeap، ثم انتقل إلى
الذاكرة الافتراضية وشاهد Page Fault وSwap وخوارزميات الاستبدال.
المحاكاة الحية Code → Stack/Heap
الذاكرة الافتراضية RAM ↔ SSD
المقارنة FIFO · LRU · Optimal
Stack Vars: 0
Heap Objects: 0
RAM: 0 / 4
Swap: 0
Page Faults: 0
System: مستقر
🧠 المحاكاة الحية 💾 RAM / Swap ⚖️ مقارنة الخوارزميات 🎯 تحديات
محرر الكود
تشغيل
▶ Execute خطوة واحدة Reset
أمثلة جاهزة
قيم بسيطة References Garbage Collection Heap كبير + Swap هياكل البيانات
ملاحظة
يدعم المحاكي أوامر تعليمية محدودة مثل
let age = 17 و
let nums = [1,2] و new Queue() و
new SinglyLinkedList() و
new BinarySearchTree() .
من الكود إلى الذاكرة
السطر الحالي قيمة كائن بلا مرجع
Fetch
Decode
Execute
Store
🧾 الشرح الحي
Lesson
اضغط Execute لتبدأ. القيم البسيطة تذهب إلى Stack، والمصفوفات
والكائنات تذهب إلى Heap والـ Stack يحتفظ بمرجع لها.
🟢 RAM Pages
تتأثر بالكائنات الكبيرة
Virtual Memory
RAM Swap Page Fault
Fetch
Decode
Execute
Store
💽 SSD / Swap
Pages خارج RAM
نتائج المقارنة
خطوات FIFO
تحديات تعليمية
Reference
ما قيمة a بعد تنفيذ الكود؟
let a = [1,2];
let b = a;
b.push(3);
إظهار الإجابة
القيمة هي [1,2,3] لأن b و a يشيران إلى نفس الكائن في Heap.
Garbage Collection
متى يصبح الكائن جاهزًا للحذف؟
let x = {name:"Ali"};
x = null;
إظهار الإجابة
عندما لا يبقى أي متغير يشير إليه. عندها يصبح Orphan Object
وجاهزًا للـ GC.
FIFO
RAM فيها A B C، ودخلت D. من يخرج؟
Frames: A B C
Request: D
Policy: FIFO
إظهار الإجابة
تخرج A لأنها أول صفحة دخلت RAM.