出版時間:2010年 出版社:機械工業(yè)出版社 作者:(美)Randal E.Bryant,David O'Hallaron 頁數(shù):702 譯者:龔奕利,雷迎春
Tag標簽:無
前言
本書通過程序員的視角來介紹計算機系統(tǒng),首先把高級語言轉(zhuǎn)換成計算機所能理解的一種中間格式(如匯編語言),然后描述計算機如何解釋和執(zhí)行這些中間格式的程序,系統(tǒng)的哪一部分影響程序的執(zhí)行效率。在講述計算機系統(tǒng)知識的同時,也給出了關(guān)于C語言和匯編語言的編程、閱讀技巧以及基本的系統(tǒng)編程工具,還給出一些方法幫助程序員基于對計算機系統(tǒng)的理解來改善程序的性能等問題。本書強調(diào)對計算機系統(tǒng)概念的理解,但并不意味著不動手。如果按照本書的安排做每一章后面的習題,將有助于加深對正文所述概念和知識的理解,更可以從實際動手中學習到新的知識。本書的主要內(nèi)容是關(guān)于計算機體系結(jié)構(gòu)與編譯器和操作系統(tǒng)的交互,包括:數(shù)據(jù)表示,匯編語言和匯編級計算機體系結(jié)構(gòu),處理器設計,程序的性能度量和優(yōu)化,程序的加載器、鏈接器和編譯器,I/O和設備的存儲器層次結(jié)構(gòu),虛擬存儲器,外部存儲管理,中斷、信號和進程控制。本書的最大優(yōu)點是為程序員描述計算機系統(tǒng)的實現(xiàn)細節(jié),幫助其在大腦中構(gòu)造一個層次型的計算機系統(tǒng),從最底層的數(shù)據(jù)在內(nèi)存中的表示(如大多數(shù)程序員一直陌生或疑惑的浮點數(shù)表示),到流水線指令的構(gòu)成,到虛擬存儲器,到編譯系統(tǒng),到動態(tài)加載庫,到最后的用戶態(tài)應用。貫串本書的一條主線是使程序員在設計程序時,能充分意識到計算機系統(tǒng)的重要性,建立起所寫程序可能被執(zhí)行的數(shù)據(jù)或指令流圖,明白執(zhí)行程序時到底發(fā)生了什么事,從而能設計出高效、可移植、健壯的程序,并能夠更快地對程序排錯、改進程序性能等。原書是卡內(nèi)基-梅隆大學(CMU)的教材,現(xiàn)在很多國內(nèi)外著名的大學也選用其作為教材或輔助性資料,因此,本書的讀者不僅僅是那些因為工作和興趣而關(guān)注本書的人,還包括一些在校的大學生。我們認為,在校學生越早接觸本書的內(nèi)容,將越有利于他們學習計算機的相關(guān)課程,培養(yǎng)對計算機系統(tǒng)的研究興趣??偟膩碚f,本書是一座橋梁,它幫助程序員銜接了計算機系統(tǒng)各個領域的知識,為程序員構(gòu)造了一個概念性框架。要想獲取更多關(guān)于計算機系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、編譯器、網(wǎng)絡、并發(fā)編程方面的知識,還需要進一步閱讀相關(guān)書籍。
內(nèi)容概要
本書從程序員的視角詳細闡述計算機系統(tǒng)的本質(zhì)概念,并展示這些概念如何實實在在地影響應用程序的正確性、性能和實用性。全書共12章,主要內(nèi)容包括信息的表示和處理、程序的機器級表示、處理器體系結(jié)構(gòu)、優(yōu)化程序性能、存儲器層次結(jié)構(gòu)、鏈接、異??刂屏?、虛擬存儲器、系統(tǒng)級i/o、網(wǎng)絡編程、并發(fā)編程等。書中提供子大量的例子和練習題,并給出部分答案,有助于讀者加深對正文所述概念和知識的理解。
本書適合作為高等院校計算機及相關(guān)專業(yè)本科牛、研究生的教材,也可供想要寫出更快、更可靠程序的程序員及專業(yè)技術(shù)人員參考。
作者簡介
Randal E. Bryant 1973年于密歇根大學(University of
Michigan)獲得學士學位,隨即就讀于麻省理工學院(Massachusetts Institute of
Technology)的研究生院,并在1981年獲計算機博士學位。他在加州理工學院(California Institute of
Technology)做了三年助教,從1984年
書籍目錄
第1章 計算機系統(tǒng)漫游
第一部分 程序結(jié)構(gòu)和執(zhí)行
第2章 信息的表示和處理
第3章 程序的機器級表示
第4章 處理器體系結(jié)構(gòu)
第5章 優(yōu)化程序性能
第6章 存儲器層次結(jié)構(gòu)
第二部分 在系統(tǒng)上運行程序
第7章 鏈接
第8章 異常控制流
第9章 虛擬存儲器
第三部分 程序間的交互和通信
第10章 系統(tǒng)級i/o
第11章 網(wǎng)絡編程
第12章 并發(fā)編程
附錄a 錯誤處理
參考文獻
章節(jié)摘錄
插圖:1.9 重要主題在此,總結(jié)一下我們旋風式的系統(tǒng)漫游。這次討論得出一個很重要的觀點,那就是系統(tǒng)不僅僅只是硬件。系統(tǒng)是硬件和系統(tǒng)軟件互相交織的集合體,它們必須共同協(xié)作以達到運行應用程序的最終目的。本書的余下部分會講述硬件和軟件的詳細內(nèi)容,通過了解這些詳細內(nèi)容,你可以寫出更快速、更可靠和更安全的程序。我們在此強調(diào)幾個貫穿計算機系統(tǒng)所有方面的重要概念作為本章的結(jié)束。我們還會在本書中的多處討論這些概念的重要性。1.9.1 并發(fā)和并行數(shù)字計算機的整個歷史中,有兩個需求是驅(qū)動進步的持續(xù)動力:一個是我們想要計算機做得更多,另一個是我們想要計算機運行得更快。當處理器同時能夠做更多事情時,這兩個因素都會改進。我們用的術(shù)語并發(fā)(concurrency)是一個通用的概念,指一個同時具有多個活動的系統(tǒng);而術(shù)語并行(parallelism)指的是用并發(fā)使一個系統(tǒng)運行得更快。并行可以在計算機系統(tǒng)的多個抽象層次上運用。在此,我們按照系統(tǒng)層次結(jié)構(gòu)中由高到低的順序重點強調(diào)三個層次。1.線程級并發(fā)構(gòu)建進程這個抽象,我們能夠設計出同時執(zhí)行多個程序的系統(tǒng),這就導致了并發(fā)。使用線程,我們甚至能夠在一個進程中執(zhí)行多個控制流。從20世紀60年代初期出現(xiàn)時間共享以來,計算機系統(tǒng)中就開始有了對并發(fā)執(zhí)行的支持。傳統(tǒng)意義上,這種并發(fā)執(zhí)行只是模擬出來的,是通過使一臺計算機在它正在執(zhí)行的進程間快速切換的方式實現(xiàn)的,就好像一個雜技演員保持多個球在空中飛舞。這種并發(fā)形式允許多個用戶同時與系統(tǒng)交互,例如,當許多人想要從一個Web服務器獲取頁面時。它還允許一個用戶同時從事多個任務,例如,在一個窗口中開啟Web瀏覽器,在另一窗口中運行字處理器,同時又播放音樂。在以前,即使處理器必須在多個任務間切換,大多數(shù)實際的計算也都是由一個處理器來完成的。這種配置稱為單處理器系統(tǒng)。
媒體關(guān)注與評論
“2005年,我開始采用Bryant和O’Hallaron的這本書作為本科生計算機系統(tǒng)課程的教材?,F(xiàn)今,這本書仍然是我的計算機系統(tǒng)課程教科書的首選?!? ——Mirela Damian,維拉諾瓦大學 “本書表述清晰、恰到好處——舉重若輕地呈現(xiàn)了那些非常復雜的內(nèi)容?!薄 狪brahim Matta,波士頓大學 “這是一本學習計算機硬件和軟件如何‘真正’協(xié)同工作的好書,還教會你為什么了解這些知識會使你成為一個更有價值的程序員。本書還幫你為學習像操作系統(tǒng)和編譯器這樣的高級課程做好準備。在本書中,我最喜歡的章節(jié)是關(guān)于緩存的,當我第一次發(fā)現(xiàn)緩存有多重要時,真是難以置信!” ——Vishal Shah,Ask.com總架構(gòu)師
編輯推薦
《深入理解計算機系統(tǒng)》:計算機科學叢書。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
深入理解計算機系統(tǒng)(原書第2版) PDF格式下載