讀完《深入理解電腦系統》(原書第二版)

來源:互聯網
上載者:User

  今天終於讀完了CSAPP(Computer Systems: A Programmer’s Perspective),花了大約2個月的時間。平時我也比較注重基礎知識的積累,特別是電腦底層的只是,所以讀完這本書剛好能豐富一下這些知識。

 

  這本書主要特點就是“軟硬結合”。下至CPU、流水線、緩衝、儲存空間、彙編,上至C語言、編譯、連結、程式設計,讀過之後能夠在大腦中對電腦整個系統產生一棵樹。

 

  這本書中,第3章《程式的機器級表示》,第5章《最佳化程式效能》,第6章《儲存空間階層》、第7章《連結》和第9章《虛擬儲存空間》我認為是最有價值讀的。下面對這本書進行一下總結。

 

第1章《電腦系統漫遊》:理解這個公式“information=bit+context”,理解編譯連結大致過程,瞭解電腦的整個結構。

 

第2章《資訊的表示和處理》:有符號數和無符號數,無符號數運算時溢出,有符號數如果太大也會溢出。浮點數運算要注意,我就有一次利用浮點數計算區間時導致區間個數少了一個的情況。

 

第3章《程式的機器級表示》:彙編和C語言之間的關係,寄存器和C語言程式的關係,程序呼叫的本質,資料對齊的原因,緩衝區溢位攻擊等等。

 

第4章《處理器體繫結構》:書上設計了一個簡單的流水線處理器和自訂的指令集Y86。理解CPU流水線吧。

 

第5章《最佳化程式效能》:不錯的內容,如何提高程式的效能(還提了一些關於引用的編譯器最佳化問題):消除引用、減少調用、迴圈展開、結合變換、條件傳送。

 

第6章《儲存空間階層》:利用局部性來提高緩衝的命中率,進而最佳化程式效能。理解緩衝是怎麼工作的。

 

第7章《連結》:很好的一章啊,理解目標檔案的格式,理解符號,理解連結器怎麼把多個目標檔案組合起來的,還有動態連結的內容。

 

第8章《異常控制流程》:異常、進程和訊號的概念,UNIX中進程建立和回收,訊號的阻塞和丟棄引發的問題。

 

第9章《虛擬儲存空間》:這一章提升到了OS的高度。虛擬儲存空間的組織(頁表,頁目錄表)、地址翻譯的過程,虛擬儲存空間和緩衝如何協調,虛擬儲存空間和異常如何配合,UNIX中的共用對象和寫時拷貝機制,動態儲存裝置器分配(隱式空閑鏈表和顯示空閑鏈表)和方法,還講了GC(記憶體回收)機制。

 

第10~12章《系統級I/O》、《網路編程》、《並發編程》:作為UNIX下C編程的內容還是少了一些,不過用來判斷線程之間的同步的進度圖方法倒是讓我嘗到了鮮。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.