從程序員的視角,看計算機系統!程序員
本書適用於那些想要寫出更快、更可靠程序的程序員。經過掌握程序是如何映射到系統上,以及程序是如何執行的,讀者可以更好的理解程序的行爲爲何是這樣的,以及效率低下是如何形成的。粗略來看,計算機系統包括處理器和存儲器硬件、編譯器、操做系統和網絡互連環境。而經過程序員的視角,讀者能夠清晰地明白學習計算機系統的內部工做原理會對他們從此做爲計算機科學研究者和工程師的工做有進一步的幫助。它還有助於爲進一步學習計算機體系結構、操做系統、編譯器和網絡互連作好準備。編程
本書的主要論題包括:數據表示、C程序的機器級表示、處理器結構,程序優化、存儲器層次結構、連接、異常控制流、虛擬存儲器和存儲器管理、系統級I/O、網絡編程和併發編程。書中所覆蓋的內容主要是這些方面是如何影響應用和系統程序員的。例如,在講述數據表示時,本書說明了用來表示數字的表示方法是有限的,它可以近似地表示整數和實數,可是這種表示方法是有限制的,程序員必須瞭解。在講述高速緩存時,本書討論了矩陣代碼中的循環變量的順序是如何影響程序的性能的。在討論網絡互連時,本書描述了併發服務器如何能有效地處理來自多個客戶端的請求。緩存
本書基於Intel兼容(IA32)機器,在Unix或者相關的操做系統(例如,Linux)上執行C程序。雖然書中包括了一些幫助讀者將Java轉化成C的提示,可是仍是要求讀者對C或者C++有必定的瞭解。服務器
連接: https://pan.baidu.com/s/1JXngIu0MtgC6h0IjzGXgTA
密碼在公衆號「編程指北」後臺回覆「csapp」便可獲取 高清有書籤的版本
網絡