CSAPP Labs
1.0.0
這個專案是我對《深入理解電腦系統》第三版配套實驗的解答和我寫的筆記,實驗文件在目錄labs下,來源Lab Assignments。
包含所有的lab文件,以及CMU給的參考文檔,也包含我寫的解答文件,我的實驗環境是Ubuntu 16.04 amd-64,其中source保存了所有lab的原始文件;
是我寫的筆記:
涉及了位元運算,補碼和浮點數等內容,都是C
語言程式設計題。
拆除二進位炸彈,可以大幅提升看彙編程式碼的能力。
這個lab主要涉及了棧隨機化,不可執行等棧保護的方法和使棧溢位、ROP攻擊等內容。
Architecture Lab,涉及了Y86-64
指令集,和SEQ和PIPE的實作方式,以及程式最佳化等內容,可以熟悉彙編和硬體語言HCL
。
這個lab在CMU已經被Cache Lab取代了,考慮到Cache Lab比較難,可以先做這個lab練練手。基於書上第五、六章對程式進行最佳化,主要用了循環分塊消除快取不命中、消除分支預測錯誤等方法。
Part A要求寫一個快取模擬器,Part B要求最佳化矩陣轉置函數,減少快取不命中數。這個lab可以加深對緩存的理解。已寫完Part A。