出版時(shí)間:2010年 出版社:機(jī)械工業(yè)出版社 作者:(美)Randal E.Bryant,David O'Hallaron 頁(yè)數(shù):702 譯者:龔奕利,雷迎春
Tag標(biāo)簽:無(wú)
前言
本書(shū)通過(guò)程序員的視角來(lái)介紹計(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)的理解來(lái)改善程序的性能等問(wèn)題。本書(shū)強(qiáng)調(diào)對(duì)計(jì)算機(jī)系統(tǒng)概念的理解,但并不意味著不動(dòng)手。如果按照本書(shū)的安排做每一章后面的習(xí)題,將有助于加深對(duì)正文所述概念和知識(shí)的理解,更可以從實(shí)際動(dòng)手中學(xué)習(xí)到新的知識(shí)。本書(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)程控制。本書(shū)的最大優(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ū)的一條主線是使程序員在設(shè)計(jì)程序時(shí),能充分意識(shí)到計(jì)算機(jī)系統(tǒng)的重要性,建立起所寫(xiě)程序可能被執(zhí)行的數(shù)據(jù)或指令流圖,明白執(zhí)行程序時(shí)到底發(fā)生了什么事,從而能設(shè)計(jì)出高效、可移植、健壯的程序,并能夠更快地對(duì)程序排錯(cuò)、改進(jìn)程序性能等。原書(shū)是卡內(nèi)基-梅隆大學(xué)(CMU)的教材,現(xiàn)在很多國(guó)內(nèi)外著名的大學(xué)也選用其作為教材或輔助性資料,因此,本書(shū)的讀者不僅僅是那些因?yàn)楣ぷ骱团d趣而關(guān)注本書(shū)的人,還包括一些在校的大學(xué)生。我們認(rèn)為,在校學(xué)生越早接觸本書(shū)的內(nèi)容,將越有利于他們學(xué)習(xí)計(jì)算機(jī)的相關(guān)課程,培養(yǎng)對(duì)計(jì)算機(jī)系統(tǒng)的研究興趣??偟膩?lái)說(shuō),本書(shū)是一座橋梁,它幫助程序員銜接了計(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)書(shū)籍。
內(nèi)容概要
本書(shū)從程序員的視角詳細(xì)闡述計(jì)算機(jī)系統(tǒng)的本質(zhì)概念,并展示這些概念如何實(shí)實(shí)在在地影響應(yīng)用程序的正確性、性能和實(shí)用性。全書(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ā)編程等。書(shū)中提供子大量的例子和練習(xí)題,并給出部分答案,有助于讀者加深對(duì)正文所述概念和知識(shí)的理解。
本書(shū)適合作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)本科牛、研究生的教材,也可供想要寫(xiě)出更快、更可靠程序的程序員及專業(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年
書(shū)籍目錄
第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章 異??刂屏?br /> 第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)用程序的最終目的。本書(shū)的余下部分會(huì)講述硬件和軟件的詳細(xì)內(nèi)容,通過(guò)了解這些詳細(xì)內(nèi)容,你可以寫(xiě)出更快速、更可靠和更安全的程序。我們?cè)诖藦?qiáng)調(diào)幾個(gè)貫穿計(jì)算機(jī)系統(tǒng)所有方面的重要概念作為本章的結(jié)束。我們還會(huì)在本書(shū)中的多處討論這些概念的重要性。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í)間共享以來(lái),計(jì)算機(jī)系統(tǒng)中就開(kāi)始有了對(duì)并發(fā)執(zhí)行的支持。傳統(tǒng)意義上,這種并發(fā)執(zhí)行只是模擬出來(lái)的,是通過(guò)使一臺(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è)窗口中開(kāi)啟Web瀏覽器,在另一窗口中運(yùn)行字處理器,同時(shí)又播放音樂(lè)。在以前,即使處理器必須在多個(gè)任務(wù)間切換,大多數(shù)實(shí)際的計(jì)算也都是由一個(gè)處理器來(lái)完成的。這種配置稱為單處理器系統(tǒng)。
媒體關(guān)注與評(píng)論
“2005年,我開(kāi)始采用Bryant和O’Hallaron的這本書(shū)作為本科生計(jì)算機(jī)系統(tǒng)課程的教材?,F(xiàn)今,這本書(shū)仍然是我的計(jì)算機(jī)系統(tǒng)課程教科書(shū)的首選。” ——Mirela Damian,維拉諾瓦大學(xué) “本書(shū)表述清晰、恰到好處——舉重若輕地呈現(xiàn)了那些非常復(fù)雜的內(nèi)容。” ——Ibrahim Matta,波士頓大學(xué) “這是一本學(xué)習(xí)計(jì)算機(jī)硬件和軟件如何‘真正’協(xié)同工作的好書(shū),還教會(huì)你為什么了解這些知識(shí)會(huì)使你成為一個(gè)更有價(jià)值的程序員。本書(shū)還幫你為學(xué)習(xí)像操作系統(tǒng)和編譯器這樣的高級(jí)課程做好準(zhǔn)備。在本書(shū)中,我最喜歡的章節(jié)是關(guān)于緩存的,當(dāng)我第一次發(fā)現(xiàn)緩存有多重要時(shí),真是難以置信!” ——Vishal Shah,Ask.com總架構(gòu)師
編輯推薦
《深入理解計(jì)算機(jī)系統(tǒng)》:計(jì)算機(jī)科學(xué)叢書(shū)。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
深入理解計(jì)算機(jī)系統(tǒng)(原書(shū)第2版) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版