Proyek ini adalah jawaban saya atas percobaan pendukung edisi ketiga "Pemahaman Mendalam Sistem Komputer" dan catatan yang saya tulis. File percobaan ada di direktori lab dan berasal dari Tugas Lab.
Berisi semua file lab, serta dokumen referensi yang disediakan oleh CMU, dan juga menyertakan file solusi yang saya tulis. Lingkungan eksperimental saya adalah Ubuntu 16.04 amd-64, tempat sumbernya menyimpan file asli semua lab;
Berikut catatan yang saya tulis:
Ini melibatkan operasi bit, komplemen dua dan angka floating point, dll., yang semuanya merupakan pertanyaan pemrograman bahasa C
Membongkar bom biner dapat sangat meningkatkan kemampuan Anda membaca kode perakitan.
Lab ini terutama melibatkan pengacakan tumpukan, metode perlindungan tumpukan seperti unexecutability, stack overflow, serangan ROP, dll.
Lab Arsitektur melibatkan set instruksi Y86-64
, implementasi SEQ dan PIPE, dan pengoptimalan program. Anda dapat memahami bahasa perakitan dan perangkat keras HCL
.
Lab ini telah digantikan oleh Cache Lab di CMU. Mengingat Cache Lab lebih sulit, maka Anda dapat mempraktekkan lab ini terlebih dahulu. Berdasarkan Bab 5 dan 6 buku ini, program ini dioptimalkan, terutama menggunakan metode seperti pemblokiran loop untuk menghilangkan kesalahan cache dan menghilangkan kesalahan prediksi cabang.
Bagian A memerlukan penulisan simulator cache, dan Bagian B memerlukan pengoptimalan fungsi transpos matriks untuk mengurangi jumlah cache yang hilang. Lab ini dapat memperdalam pemahaman Anda tentang caching. Bagian A telah ditulis.