注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計程序設(shè)計綜合深入理解計算機系統(tǒng)(修訂版)

深入理解計算機系統(tǒng)(修訂版)

深入理解計算機系統(tǒng)(修訂版)

定 價:¥85.00

作 者: (美)Randal E. Bryant,(美)David O'Hallaron著;龔奕利,雷迎春譯;龔奕利譯
出版社: 中國電力出版社
叢編項: 國外經(jīng)典計算機科學教材系列
標 簽: 暫缺

ISBN: 9787508321752 出版時間: 2004-05-01 包裝: 膠版紙
開本: 23cm 頁數(shù): 873 字數(shù):  

內(nèi)容簡介

  ·AMAZON五星圖書,最偉大計算機科學教材之一;·卡耐基梅隆大學計算機學院院長,IEEE和ACM雙院士傾力推出;·超過80所美國和世界一流大學計算機專業(yè)選用本書為教材;本書被贊譽為價值超過等重量黃金的無價資源寶庫;第一本將軟件和硬件理論結(jié)合講述的教程;覆蓋計算機導(dǎo)論、體系結(jié)構(gòu)和處理器設(shè)計等多門課程;經(jīng)過大量學生使用,效果優(yōu)秀,并獲教師和學生一致推崇;完善的教學網(wǎng)站,為教師和學生提供在線支持。所有想寫出更快、更可靠程序的開發(fā)人員必讀之書!Randal E. Bryant 1973年獲得密歇根大學(University of Michigan)學士學位,隨即就讀麻省理工學院(Massachusetts Institute of Technology)的研究生院,并在1981年獲計算機博士學位。他在加州理工學院(California Institute of Technology)做了三年助教,從1984年至今一直是卡內(nèi)基梅隆大學(Carnegie Mellon)的教師。他現(xiàn)在是計算機科學的主任級教授和計算機科學系的系主任。他同時還受邀于電子和計算機工程系。 他從事本科和研究生計算機系統(tǒng)方面課程的教學超過20年。在講授計算機體系結(jié)構(gòu)課程多年后,他開始把關(guān)注點從如何設(shè)計計算機轉(zhuǎn)移到程序員如何在更好地了解系統(tǒng)的情況下編寫出更有效和更可靠的程序。他和O’Hallaron教授一起在卡內(nèi)基梅隆大學開設(shè)了“計算機系統(tǒng)導(dǎo)論”課程,那便是此書的基礎(chǔ)。他還教授一些算法和編程方面的課程。 Bryant教授的研究涉及幫助硬件設(shè)計者驗證其系統(tǒng)正確性的軟件工具的設(shè)計。其中,包括幾種類型的模擬器,以及用數(shù)學方法來證明設(shè)計正確性的形式化驗證工具。他發(fā)表了100多篇技術(shù)論文。包括Intel、Motorola、IBM和Fujitsu在內(nèi)的主要計算機制造商都使用他的研究成果。他還因他的研究獲得過數(shù)項大獎。其中包括Semiconductor Research Corporation頒發(fā)的兩個發(fā)明榮譽獎和一個技術(shù)成就獎,美國計算機學會(Association for Computer Machinery,ACM)頒發(fā)的Kanellakis理論與實踐獎,還有電氣和電子工程師協(xié)會(Institute of Electrical and Electronics Engineers,IEEE)授予的W. R. G. Baker獎和50年金質(zhì)獎?wù)拢╝ Golden Jubilee Medal)。他同時是ACM和IEEE的院士。 David R. O’Hallaron 1986年在維吉尼亞大學(University of Virginia)獲得計算機科學的博士學位。在通用電氣工作一段時間后,于1989年作為系統(tǒng)科學家成為卡內(nèi)基梅隆大學的教員。他目前是計算機科學系和電子及計算機工程系的副教授。 他教授一些本科生和研究生的計算機系統(tǒng)方面的課程,例如計算機體系結(jié)構(gòu)、計算機系統(tǒng)緒論、并行處理器設(shè)計和Internet服務(wù)。和Bryant教授一起,他開設(shè)了“計算機系統(tǒng)導(dǎo)論”課程,那便是此書的基礎(chǔ)。 O’Hallaron教授和他的學生從事計算機系統(tǒng)領(lǐng)域的研究。特別的,他們開發(fā)了一些軟件系統(tǒng),幫助科學家和工程師在計算機上模擬自然界。其中最著名的是Quake項目,一群計算機科學家、土木工程師和地震學家致力于在強烈地震中預(yù)測大地運動的能力,這些強烈地震包括南加洲、古巴、日本、墨西哥和新西蘭的大地震。同Quake項目中其它人員一起,他獲得了CMU計算機科學院頒發(fā)的Allen Newell優(yōu)秀研究獎?wù)隆K麨镼uake項目創(chuàng)立的基準程序,183.equake,被SPEC(Standards Performance Evaluation Corporation)選入非常有影響的SPEC CPU和OMP(Open Mp)基準程序包中。從程序員的視角,看計算機系統(tǒng)!本書適用于那些想要寫出更快、更可靠程序的程序員。通過掌握程序是如何映射到系統(tǒng)上,以及程序是如何執(zhí)行的,讀者能夠更好的理解程序的行為為什么是這樣的,以及效率低下是如何造成的。粗略來看,計算機系統(tǒng)包括處理器和存儲器硬件、編譯器、操作系統(tǒng)和網(wǎng)絡(luò)互連環(huán)境。而通過程序員的視角,讀者可以清晰地明白學習計算機系統(tǒng)的內(nèi)部工作原理會對他們今后作為計算機科學研究者和工程師的工作有進一步的幫助。它還有助于為進一步學習計算機體系結(jié)構(gòu)、操作系統(tǒng)、編譯器和網(wǎng)絡(luò)互連做好準備。本書的主要論題包括:數(shù)據(jù)表示、C程序的機器級表示、處理器結(jié)構(gòu),程序優(yōu)化、存儲器層次結(jié)構(gòu)、鏈接、異常控制流、虛擬存儲器和存儲器管理、系統(tǒng)級I/O、網(wǎng)絡(luò)編程和并發(fā)編程。書中所覆蓋的內(nèi)容主要是這些方面是如何影響應(yīng)用和系統(tǒng)程序員的。例如,在講述數(shù)據(jù)表示時,本書說明了用來表示數(shù)字的表示方法是有限的,它能夠近似地表示整數(shù)和實數(shù),但是這種表示方法是有限制的,程序員必須了解。在講述高速緩存時,本書討論了矩陣代碼中的循環(huán)變量的順序是如何影響程序的性能的。在討論網(wǎng)絡(luò)互連時,本書描述了并發(fā)服務(wù)器如何能有效地處理來自多個客戶端的請求。本書基于Intel兼容(IA32)機器,在Unix或者相關(guān)的操作系統(tǒng)(例如,Linux)上執(zhí)行C程序。雖然書中包括了一些幫助讀者將Java轉(zhuǎn)化成C的提示,但是還是要求讀者對C或者C++有一定的了解。您可以通過本書的Web網(wǎng)站www.csapp.cs.cmu.edu獲得完整的資料,包括實驗和作業(yè),授課筆記和代碼示例。本書英文版久負盛名,被眾多專業(yè)人士稱為“最偉大的計算機教材”之一,著名的美國卡內(nèi)基梅隆大學計算機科學系一直將本書作為教材使用,程序員眼中的透徹講述計算機系統(tǒng)的扛鼎之作。作者Randal E. Bryant是卡耐基梅隆大學的計算機科學系主任,ACM和IEEE雙院士(Fellow),其研究成果多次獲得ACM和IEEE頒發(fā)的大獎。本書共分十三章,分別介紹了信息的表示和處理、程序的機器級表示、處理器體系結(jié)構(gòu)、存儲器層次結(jié)構(gòu)、靜態(tài)和動態(tài)鏈接、虛擬存儲器、系統(tǒng)級I/O、網(wǎng)絡(luò)編程和并發(fā)編程等精彩內(nèi)容。其目的是解釋計算機系統(tǒng)的所有本質(zhì)概念,并向讀者展示這些概念是如何實際地影響應(yīng)用程序的正確性、性能和實用性。與其他主要針對系統(tǒng)構(gòu)造人員的系統(tǒng)類書籍不同,這本書是寫給程序員的,是從程序員的角度來描述的。本書為軟件和硬件之間搭起了一個橋梁,它給出了一種幫助讀者分別從硬件和軟件的角度去理解一個程序及其行為的途徑,這也填補了國內(nèi)計算機系統(tǒng)教學中的一個空白。本書的最大優(yōu)點是幫助讀者理解概念,讓讀者很清楚地在腦海中構(gòu)造一個層次型的計算機系統(tǒng),從最低層數(shù)據(jù)在內(nèi)存中的表示(如我們一直陌生的浮點數(shù)表示),到流水線指令的構(gòu)成,到虛擬存儲器,到編譯系統(tǒng),到動態(tài)加載庫,到最后的用戶應(yīng)用。本書提供了大量的例子和練習及部分答案。尤其值得一提的是,對于每一個基本概念都有相應(yīng)的筆頭或程序試驗,加深讀者的理解。

作者簡介

  RandalE.Bryant1973年獲得密歇根大學(UniversityofMichigan)學士學位,隨即就讀麻省理工學院(MassachusettsInstituteofTechnology)的研究生院,并在1981年獲計算機博士學位。他在加州理工學院(CaliforniaInstituteofTechnology)做了三年助教,從1984年至今一直是卡內(nèi)基梅隆大學(CarnegieMellon)的教師。他現(xiàn)在是計算機科學的主任級教授和計算機科學系的系主任。他同時還受邀于電子和計算機工程系。他從事本科和研究生計算機系統(tǒng)方面課程的教學超過20年。在講授計算機體系結(jié)構(gòu)課程多年后,他開始把關(guān)注點從如何設(shè)計計算機轉(zhuǎn)移到程序員如何在更好地了解系統(tǒng)的情況下編寫出更有效和更可靠的程序。他和O’Hallaron教授一起在卡內(nèi)基梅隆大學開設(shè)了“計算機系統(tǒng)導(dǎo)論”課程,那便是此書的基礎(chǔ)。他還教授一些算法和編程方面的課程。Bryant教授的研究涉及幫助硬件設(shè)計者驗證其系統(tǒng)正確性的軟件工具的設(shè)計。其中,包括幾種類型的模擬器,以及用數(shù)學方法來證明設(shè)計正確性的形式化驗證工具。他發(fā)表了100多篇技術(shù)論文。包括Intel、Motorola、IBM和Fujitsu在內(nèi)的主要計算機制造商都使用他的研究成果。他還因他的研究獲得過數(shù)項大獎。其中包括SemiconductorResearchCorporation頒發(fā)的兩個發(fā)明榮譽獎和一個技術(shù)成就獎,美國計算機學會(AssociationforComputerMachinery,ACM)頒發(fā)的Kanellakis理論與實踐獎,還有電氣和電子工程師協(xié)會(InstituteofElectricalandElectronicsEngineers,IEEE)授予的W.R.G.Baker獎和50年金質(zhì)獎?wù)拢╝GoldenJubileeMedal)。他同時是ACM和IEEE的院士。DavidR.O’Hallaron1986年在維吉尼亞大學(UniversityofVirginia)獲得計算機科學的博士學位。在通用電氣工作一段時間后,于1989年作為系統(tǒng)科學家成為卡內(nèi)基梅隆大學的教員。他目前是計算機科學系和電子及計算機工程系的副教授。他教授一些本科生和研究生的計算機系統(tǒng)方面的課程,例如計算機體系結(jié)構(gòu)、計算機系統(tǒng)緒論、并行處理器設(shè)計和Internet服務(wù)。和Bryant教授一起,他開設(shè)了“計算機系統(tǒng)導(dǎo)論”課程,那便是此書的基礎(chǔ)。O’Hallaron教授和他的學生從事計算機系統(tǒng)領(lǐng)域的研究。特別的,他們開發(fā)了一些軟件系統(tǒng),幫助科學家和工程師在計算機上模擬自然界。其中最著名的是Quake項目,一群計算機科學家、土木工程師和地震學家致力于在強烈地震中預(yù)測大地運動的能力,這些強烈地震包括南加洲、古巴、日本、墨西哥和新西蘭的大地震。同Quake項目中其它人員一起,他獲得了CMU計算機科學院頒發(fā)的AllenNewell優(yōu)秀研究獎?wù)?。他為Quake項目創(chuàng)立的基準程序,183.equake,被SPEC(StandardsPerformanceEvaluationCorporation)選入非常有影響的SPECCPU和OMP(OpenMp)基準程序包中。

圖書目錄

第1章 計算機系統(tǒng)漫游
1.1 信息就是比特+上下文
1.2 程序被其他程序翻譯成不同的格式
1.3 了解編譯系統(tǒng)如何工作是大有益處的
1.4 處理器讀并解釋儲存在存儲器中的指令
1.4.1 系統(tǒng)的硬件組成
1.4.2 執(zhí)行hello程序
1.5 高速緩存
1.6 形成層次結(jié)構(gòu)的存儲設(shè)備
1.7 操作系統(tǒng)管理硬件
1.7.1 進程 
1.7.2 線程 
1.7.3 虛擬存儲器
1.7.4 文件
1.8 利用網(wǎng)絡(luò)系統(tǒng)和其他系統(tǒng)通信 
1.9 下一步
1.10 小結(jié) 
參考文獻說明
第2章 信息的表示和處理
2.1 信息存儲
2.2 整數(shù)表示
2.3 整數(shù)運算
2.4 浮點
2.5 小結(jié)
參考文獻說明
家庭作業(yè)
練習題答案
第3章 程序的機器級表示
3.1 歷史觀點
3.2 程序編碼
3.3 數(shù)據(jù)格式
3.4 訪問信息
3.5 算術(shù)和邏輯操作
3.6 控制
3.7 過程
3.8 數(shù)組分配和訪問
3.9 異類的數(shù)據(jù)結(jié)構(gòu)
3.10 對齊(alignment)
3.11 綜合:理解指針 
3.12 現(xiàn)實生活:使用GDB調(diào)試器 
3.13 存儲器的越界引用和緩沖區(qū)溢出
3.14 *浮點代碼 
3.15 *在C程序中嵌入?yún)R編代碼
3.16 小結(jié)
第4章 處理器體系結(jié)構(gòu)
4.1 Y86指令集體系結(jié)構(gòu)
4.2 邏輯設(shè)計和硬件控制語言HCL 271
4.3 Y86的順序(sequential)實現(xiàn)
4.4 流水線的通用原理
4.5 Y86的流水線實現(xiàn)
4.6 小結(jié)
第5章 優(yōu)化程序性能
5.1 優(yōu)化編譯器的能力和局限性
5.2 表示程序性能
5.3 程序示例
5.4 消除循環(huán)的低效率
5.5 減少過程調(diào)用
5.6 消除不必要的存儲器引用
5.7 理解現(xiàn)代處理器
5.8 降低循環(huán)開銷
5.9 轉(zhuǎn)換到指針代碼 
5.10 提高并行性 
5.11 綜合:優(yōu)化合并代碼的效果小結(jié) 
5.12 分支預(yù)測和預(yù)測錯誤處罰 
5.13 理解存儲器性能
5.14 現(xiàn)實生活:性能提高技術(shù) 
5.15 確認和消除性能瓶頸 
5.16 小結(jié) 
第6章 存儲器層次結(jié)構(gòu) 
6.1 存儲技術(shù)
6.2 局部性
6.3 存儲器層次結(jié)構(gòu)
6.4 高速緩沖存儲器
6.5 編寫高速緩存友好的代碼
6.6 綜合:高速緩存對程序性能的影響
6.7 綜合:利用你程序中的局部性
6.8 小結(jié)
參考文獻說明
家庭作業(yè)
練習題答案
第7章 鏈接
7.1 編譯器驅(qū)動程序
7.2 靜態(tài)鏈接
7.3 目標文件
7.4 可重定位目標文件
7.5 符號和符號表
7.6 符號解析
7.7 重定
7.8 可執(zhí)行目標文件
7.9 加載可執(zhí)行目標文件
7.10 動態(tài)鏈接共享庫
7.11 從應(yīng)用程序中加載和鏈接共享庫
7.12 *與位置無關(guān)的代碼(PIC)
7.13 處理目標文件的工具
7.14 小結(jié)
第8章 異常控制流
8.1 異常 
8.2 進程 
8.3 系統(tǒng)調(diào)用和錯誤處理 
8.4 進程控制 
8.5 信號 
8.6 非本地跳轉(zhuǎn) 
8.7 操作進程的工具 
8.8 小結(jié) 
第9章 測量程序執(zhí)行時間 
9.1 計算機系統(tǒng)上的時間流 
9.2 通過間隔計數(shù)(interval counting)來測量時間 
9.3 周期計數(shù)器 
9.4 用周期計數(shù)器來測量程序執(zhí)行時間 
9.5 于gettimeofday函數(shù)的測量 
9.6 綜合:一個實驗協(xié)議 
9.7 展望未來 
9.8 現(xiàn)實生活:K次最優(yōu)測量方法 
9.9 得到的經(jīng)驗教訓(xùn) 
9.10 小結(jié) 
第10章 虛擬存儲器 
10.1 物理和虛擬尋址 
10.2 地址空間 
10.3 VM作為緩存的工具 
10.4 VM作為存儲器管理的工具 
10.5 VM作為存儲器保護的工具 
10.6 地址翻譯 
10.7 案例研究:Pentium/Linux存儲器系統(tǒng) 
10.8 存儲器映射 
10.9 動態(tài)存儲器分配 
10.10 垃圾收集 
10.11 C程序中常見的與存儲器有關(guān)的錯誤 
10.12扼要重述一些有關(guān)虛擬存儲器的關(guān)鍵概念 
10.13 小結(jié) 
第11章 系統(tǒng)級I/O 
11.1 Unix I/O 
11.2 打開和關(guān)閉文件 
11.3 讀和寫文件 
11.4 用RIO包進行健壯地讀和寫 
11.5 讀取文件元數(shù)據(jù) 
11.6 共享文件 
11.7 I/O重定向 
11.8 標準I/O 
11.9 綜合:我該使用哪些I/O函數(shù)? 
11.10 小結(jié) 
第12章 網(wǎng)絡(luò)編程 
12.1 客戶端-服務(wù)器編程模型 
12.2 網(wǎng)絡(luò) 
12.3 全球IP因特網(wǎng) 
12.4 套接字接口 
12.5 Web服務(wù)器 
12.6 綜合:TINY Web服務(wù)器 
12.7 小結(jié) 
第13章 并 發(fā) 編 程 
13.1 基于進程的并發(fā)編程 
13.2 基于I/O 多路復(fù)用的并發(fā)編程 
13.3 基于線程的并發(fā)編程 
13.4 多線程程序中的共享變量 
13.5 用信號量同步線程 
13.6 綜合:基于預(yù)線程化的并發(fā)服務(wù)器 
13.7 其他并發(fā)性問題 
13.8 小結(jié) 
參考文獻說明 
家庭作業(yè)習題 
練習題答案 
附錄A 處理器控制邏輯的 HCL描述 
A.1 HCL參考手冊 
A.2 SEQ 
A.3 SEQ+ 
A.4 PIPE 
附錄B 錯 誤 處 理 
B.1 Unix系統(tǒng)中的錯誤處理 
B.2 錯誤處理包裝函數(shù) 
B.3 csapp.h頭文件 
B.4 csapp.c源文件 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號