<rt id="qlaea"><optgroup id="qlaea"><button id="qlaea"></button></optgroup></rt>
    <rp id="qlaea"><meter id="qlaea"></meter></rp><strong id="qlaea"><span id="qlaea"></span></strong>
      <rp id="qlaea"></rp>
      1. <source id="qlaea"><nav id="qlaea"><strike id="qlaea"></strike></nav></source>

        計算機書籍控

        深入理解計算機系統

        “2005年,我開始采用Bryant和O’Hallaron的這本書作為本科生計算機系統課程的教材。現今,這本書仍然是我的計算機系統課程教科書的首選。” 
          ——Mirela Damian,維拉諾瓦大學 
        “本書表述清晰、恰到好處——舉重若輕地呈現了那些非常復雜的內容。”
          ——Ibrahim Matta,波士頓大學 
        “這是一本學習計算機硬件和軟件如何‘真正’協同工作的好書,還教會你為什么了解這些知識會使你成為一個更有價值的程序員。本書還幫你為學習像操作系統和編譯器這樣的高級課程做好準備。在本書中,我最喜歡的章節是關于緩存的,當我第一次發現緩存有多重要時,真是難以置信!” 
          ——Vishal Shah,Ask.com總架構師
        

        目錄

        
        出版者的話
        譯者序
        前言
        第1章 計算機系統漫游 1
        1.1 信息就是位+上下文 1
        1.2 程序被其他程序翻譯成不同的格式 3
        1.3 了解編譯系統如何工作是大有益處的 4
        1.4 處理器讀并解釋存儲在存儲器中的指令 5
        1.4.1 系統的硬件組成 5
        1.4.2 運行hello程序 7
        1.5 高速緩存至關重要 7
        1.6 存儲設備形成層次結構 9
        1.7 操作系統管理硬件 10
        1.7.1 進程 11
        1.7.2 線程 12
        1.7.3 虛擬存儲器 12
        1.7.4 文件 13
        1.8 系統之間利用網絡通信 13
        1.9 重要主題 15
        1.9.1 并發和并行 15
        1.9.2 計算機系統中抽象的重要性 17
        1.10 小結 17
        參考文獻說明 18

        第一部分 程序結構和執行 第2章 信息的表示和處理 20 2.1 信息存儲 22 2.1.1 十六進制表示法 22 2.1.2 字 25 2.1.3 數據大小 25 2.1.4 尋址和字節順序 26 2.1.5 表示字符串 31 2.1.6 表示代碼 31 2.1.7 布爾代數簡介 32 2.1.8 C語言中的位級運算 34 2.1.9 C語言中的邏輯運算 36 2.1.10 V語言中的移位運算 36 2.2 整數表示 38 2.2.1 整型數據類型 38 2.2.2 無符號數的編碼 39 2.2.3 補碼編碼 40 2.2.4 有符號數和無符號數之間的轉換 44 2.2.5 C語言中的有符號數與無符號數 47 2.2.6 擴展一個數字的位表示 49 2.2.7 截斷數字 51 2.2.8 關于有符號數與無符號數的建議 52 2.3 整數運算 54 2.3.1 無符號加法 54 2.3.2 補碼加法 57 2.3.3 補碼的非 59 2.3.4 無符號乘法 60 2.3.5 補碼乘法 60 2.3.6 乘以常數 63 2.3.7 除以2的冪 64 2.3.8 關于整數運算的最后思考 67 2.4 浮點數 67 2.4.1 二進制小數 68 2.4.2 IEEE浮點表示 70 2.4.3 數字示例 71 2.4.4 舍入 74 2.4.5 浮點運算 76 2.4.6 C語言中的浮點數 77 2.5 小結 79 參考文獻說明 80 家庭作業 80 練習題答案 90

        第3章 程序的機器級表示 102 3.1 歷史觀點 103 3.2 程序編碼 105 3.2.1 機器級代碼 106 3.2.2 代碼示例 107 3.2.3 關于格式的注解 109 3.3 數據格式 111 3.4 訪問信息 112 3.4.1 操作數指示符 112 3.4.2 數據傳送指令 114 3.4.3 數據傳送示例 116 3.5 算術和邏輯操作 118 3.5.1 加載有效地址 118 3.5.2 一元操作和二元操作 119 3.5.3 移位操作 120 3.5.4 討論 120 3.5.5 特殊的算術操作 122 3.6 控制 123 3.6.1 條件碼 124 3.6.2 訪問條件碼 125 3.6.3 跳轉指令及其編碼 127 3.6.4 翻譯條件分支 129 3.6.5 循環 132 3.6.6 條件傳送指令 139 3.6.7 switch語句 144 3.7 過程 149 3.7.1 棧幀結構 149 3.7.2 轉移控制 150 3.7.3 寄存器使用慣例 151 3.7.4 過程示例 152 3.7.5 遞歸過程 156 3.8 數組分配和訪問 158 3.8.1 基本原則 158 3.8.2 指針運算 159 3.8.3 嵌套的數組 159 3.8.4 定長數組 161 3.8.5 變長數組 163 3.9 異質的數據結構 164 3.9.1 結構 164 3.9.2 聯合 167 3.9.3 數據對齊 170 3.10 綜合:理解指針 172 3.11 應用:使用GDB調試器 174 3.12 存儲器的越界引用和緩沖區溢出 175 3.13 x86-64:將ia32擴展到64位 183 3.13.1 x86-64的歷史和動因 184 3.13.2 x86-64簡介 185 3.13.3 訪問信息 187 3.13.4 控制 192 3.13.5 數據結構 200 3.13.6 關于x86-64的總結性評論 200 3.14 浮點程序的機器級表示 201 3.15 小結 201 參考文獻說明 202 家庭作業 202 練習題答案 212

        第4章 處理器體系結構2 30 4.1 Y86指令集體系結構 231 4.1.1 程序員可見的狀態 231 4.1.2 Y86指令 232 4.1.3 指令編碼 233 4.1.4 Y86異常 237 4.1.5 Y86程序 237 4.1.6 一些Y86指令的詳情 241 4.2 邏輯設計和硬件控制語言HCL 242 4.2.1 邏輯門 243 4.2.2 組合電路和HCL布爾表達式 243 4.2.3 字級的組合電路和HCL整數表達式 245 4.2.4 集合關系 248 4.2.5 存儲器和時鐘 248 4.3 y86的順序實現 250 4.3.1 將處理組織成階段 250 4.3.2 SEQ硬件結構 258 4.3.3 SEQ的時序 259 4.3.4 SEQ階段的實現 262 4.4 流水線的通用原理 267 4.4.1 計算流水線 268 4.4.2 流水線操作的詳細說明 269 4.4.3 流水線的局限性 271 4.4.4 帶反饋的流水線系統272 4.5 Y86的流水線實現273 4.5.1 SEQ+:重新安排計算階段 273 4.5.2 插入流水線寄存器 276 4.5.3 對信號進行重新排列和標號 277 4.5.4 預測下一個PC 279 4.5.5 流水線冒險 280 4.5.6 用暫停來避免數據冒險 283 4.5.7 用轉發來避免數據冒險 285 4.5.8 加載/使用數據冒險 288 4.5.9 異常處理 289 4.5.10 pipe各階段的實現 291 4.5.11 流水線控制邏輯 297 4.5.12 性能分析 305 4.5.13 未完成的工作 306 4.6 小結 308 參考文獻說明309 家庭作業309 練習題答案 314

        第5章 優化程序性能 324 5.1 優化編譯器的能力和局限性 325 5.2 表示程序性能 328 5.3 程序示例 330 5.4 消除循環的低效率 332 5.5 減少過程調用 336 5.6 消除不必要的存儲器引用 336 5.7 理解現代處理器 340 5.7.1 整體操作 340 5.7.2 功能單元的性能 343 5.7.3 處理器操作的抽象模型 344 5.8 循環展開 348 5.9 提高并行性 351 5.9.1 多個累積變量 351 5.9.2 重新結合變換 354 5.10 優化合并代碼的結果小結 358 5.11 一些限制因素 359 5.11.1 寄存器溢出359 5.11.2 分支預測和預測錯誤處罰 360 5.12 理解存儲器性能 363 5.12.1 加載的性能 363 5.12.2 存儲的性能 364 5.13 應用:性能提高技術 369 5.14 確認和消除性能瓶頸 369 5.14.1 程序剖析 370 5.14.2 使用剖析程序來指導優化 371 5.14.3 Amdahl定律 374 5.15 小結 375 參考文獻說明 375 家庭作業 376 練習題答案 378

        第6章 存儲器層次結構 382 6.1 存儲技術 382 6.1.1 隨機訪問存儲器 383 6.1.2 磁盤存儲 389 6.1.3 固態硬盤 398 6.1.4 存儲技術趨勢 399 6.2 局部性 401 6.2.1 對程序數據引用的局部性 402 6.2.2 取指令的局部性 403 6.2.3 局部性小結 403 6.3 存儲器層次結構 405 6.3.1 存儲器層次結構中的緩存 406 6.3.2 存儲器層次結構概念小結 408 6.4 高速緩存存儲器 408 6.4.1 通用的高速緩存存儲器結構 409 6.4.2 直接映射高速緩存 410 6.4.3 組相聯高速緩存 416 6.4.4 全相聯高速緩存 418 6.4.5 有關寫的問題 420 6.4.6 一個真實的高速緩存層次結構的解剖 421 6.4.7 高速緩存參數的性能影響 422 6.5 編寫高速緩存友好的代碼 423 6.6 綜合:高速緩存對程序性能的影響 426 6.6.1 存儲器山 426 6.6.2 重新排列循環以提高空間局部性 430 6.6.3 在程序中利用局部性 433 6.7 小結 433 參考文獻說明 434 家庭作業 434 練習題答案 442

        第二部分 在系統上運行程序 第7章 鏈接 448 7.1 編譯器驅動程序 449 7.2 靜態鏈接 450 7.3 目標文件 450 7.4 可重定位目標文件 451 7.5 符號和符號表 452 7.6 符號解析 454 7.6.1 鏈接器如何解析多重定義的全局符號 455 7.6.2 與靜態庫鏈接 457 7.6.3 鏈接器如何使用靜態庫來解析引用 460 7.7 重定位 461 7.7.1 重定位條目 461 7.7.2 重定位符號引用 462 7.8 可執行目標文件 465 7.9 加載可執行目標文件 466 7.10 動態鏈接共享庫 467 7.11 從應用程序中加載和鏈接共享庫 468 7.12 與位置無關的代碼(PIC) 471 7.13 處理目標文件的工具 473 7.14 小結 473 參考文獻說明 474 家庭作業 474 練習題答案 479

        第8章 異常控制流 480 8.1 異常 481 8.1.1 異常處理 481 8.1.2 異常的類別 482 8.1.3 Linux/IA32系統中的異常 484 8.2 進程 487 8.2.1 邏輯控制流 487 8.2.2 并發流 487 8.2.3 私有地址空間488 8.2.4 用戶模式和內核模式 488 8.2.5 上下文切換 489 8.3 系統調用錯誤處理 491 8.4 進程控制 492 8.4.1 獲取進程ID 492 8.4.2 創建和終止進程 492 8.4.3 回收子進程 495 8.4.4 讓進程休眠 499 8.4.5 加載并運行程序500 8.4.6 利用fork和execve運行程序502 8.5 信號 504 8.5.1 信號術語 505 8.5.2 發送信號 506 8.5.3 接收信號 509 8.5.4 信號處理問題 511

        …… 第9章 虛擬存儲器 534 第10章 系統級I/O 596 第11章 網絡編程 614 第12章 并發編程 648 附錄A 錯誤處理 694

        書籍下載

        尊重版權,請購買正版書籍

        正版書籍

        深入理解計算機系統

        163A官方彩票导航网 www.weatherkingdom.net:开阳县| www.carouselshow.com:梁河县| www.ddwbw.cn:涪陵区| www.aryavartcollege.com:台州市| www.lomondtimberframe.com:平谷区| www.cp5561.com:台北县| www.q8685.com:贺州市| www.clubxshow.com:南安市| www.pstee.com:航空| www.wh-tattoo.com:泸溪县| www.ku6s.com:桃江县| www.exteni.com:彭阳县| www.brixton-hardware.com:古浪县| www.ng335.com:梧州市| www.ssulawschool.com:扎鲁特旗| www.alhondigadigital.com:中方县| www.raid88.com:镇原县| www.beldonseattle.com:伊春市| www.house-of-jorob.com:新宁县| www.pmdsales.com:高邑县| www.parrotfm.com:赣榆县| www.corprussia.com:土默特左旗| www.982320.com:闽清县| www.chian-ef.com:卫辉市| www.alexferrismedia.com:武陟县| www.bashmaistora-bg.com:察隅县| www.atarthome.com:汽车| www.stmgqhw.com:昌都县| www.dirload.com:汉阴县| www.solar-toys.org:原阳县| www.mr-impact-windows.com:桐柏县| www.chocville.com:平泉县| www.3iiiii.com:天台县| www.quangvinhexpress.com:博乐市| www.ditr-inc.com:商水县| www.499310.com:阳东县| www.carahedgepeth.com:扎兰屯市| www.bling2day.com:渝北区| www.airshipapperal.com:北票市| www.frederickpress.net:康乐县| www.taifengdianqi.com:延边| www.my-name-is-sam.com:容城县| www.elite-a.com:佛坪县| www.n5883.com:白朗县| www.qipushi.com:昌都县| www.zgspbw.com:灵石县| www.dalyanpatiohotel.com:五河县| www.916850.com:宜兰市| www.qipushi.com:卫辉市| www.316gm.com:英超| www.cardriverentacar.com:隆子县| www.szcompro.com:磐安县| www.shamrockestatesaz.com:湖州市| www.nosdepotsvente.com:顺平县| www.primal2.com:新和县| www.rememberforeverphotography.com:尖扎县| www.globalviewtrans.com:家居| www.creantik.com:葫芦岛市| www.open82.com:启东市| www.arcondb.com:屯昌县| www.janielholidays.com:广西| www.200v200.com:沐川县| www.shishibo4646.com:高阳县| www.qdjcg.com:滨海县| www.headsickpinups.com:辉县市| www.yiju188.com:蒲江县| www.arcondb.com:云阳县| www.petethesweet.com:连平县| www.jonandlaurenwedding.com:广汉市| www.yiyituofu.com:凤山县| www.commonelementllc.com:丽水市| www.crystaltunisia.com:岢岚县| www.tuvikimhac.com:凤庆县| www.f5767.com:项城市| www.cp6557.com:札达县| www.maidou5.com:达拉特旗| www.vailplex.com:汝南县| www.thehappyendisnear.com:滨海县| www.qfaqs.com:莱阳市| www.instantasshole.com:吉首市| www.petethesweet.com:常山县| www.garagedoorsirvine.com:綦江县| www.fitmora.com:中方县| www.cinematocinema.com:合山市|