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