هذا المشروع هو إجابتي للتجارب الداعمة للإصدار الثالث من "الفهم المتعمق لأنظمة الكمبيوتر" والملاحظات التي كتبتها، والملفات التجريبية موجودة في دليل المعامل وتأتي من مهام المختبر.
يحتوي على جميع ملفات المختبر، بالإضافة إلى المستندات المرجعية المقدمة من CMU، ويتضمن أيضًا ملفات الحلول التي كتبتها. البيئة التجريبية الخاصة بي هي Ubuntu 16.04 amd-64، حيث يحفظ المصدر الملفات الأصلية لجميع المختبرات؛
وهذه هي الملاحظات التي كتبتها:
أنها تنطوي على عمليات بت، وأرقام النقطة المكملة والعائمة، وما إلى ذلك، وكلها أسئلة برمجة لغة C
يمكن أن يؤدي تفكيك القنابل الثنائية إلى تحسين قدرتك على قراءة كود التجميع بشكل كبير.
يتضمن هذا التمرين المعملي بشكل أساسي التوزيع العشوائي للمكدس، وطرق حماية المكدس مثل عدم قابلية التنفيذ، وتجاوز سعة المكدس، وهجمات ROP، وما إلى ذلك.
يشتمل مختبر الهندسة المعمارية على مجموعة تعليمات Y86-64
، وتنفيذ SEQ وPIPE، وتحسين البرنامج. يمكنك التعرف على لغة التجميع والأجهزة HCL
.
تم استبدال هذا الدرس بمختبر Cache Lab في CMU، نظرًا لأن Cache Lab أكثر صعوبة، يمكنك التدرب على هذا الدرس أولاً. استنادًا إلى الفصلين 5 و6 من الكتاب، تم تحسين البرنامج، وذلك باستخدام طرق مثل حجب الحلقات للتخلص من أخطاء ذاكرة التخزين المؤقت وإزالة أخطاء التنبؤ بالتفرع.
يتطلب الجزء أ كتابة محاكي ذاكرة التخزين المؤقت، ويتطلب الجزء ب تحسين وظيفة تبديل المصفوفة لتقليل عدد مرات فقدان ذاكرة التخزين المؤقت. يمكن لهذا التمرين المعملي أن يعمق فهمك للتخزين المؤقت. تمت كتابة الجزء أ.