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