Computer Systems: A Programmer's Perspective, 2/e (IE-Paperback)
暫譯: 計算機系統:程式設計師的觀點,第二版 (IE-平裝本)

Randal E. Bryant

買這商品的人也買了...

相關主題

商品描述

 

DescriptionFew students studying computer science or computer engineering will ever have the opportunity to build a computer system. On the other hand, most students will be required to use and program computers on a near daily basis. Computer Systems: A Programmer's Perspective introduces the important and enduring concepts that underlie computer systems by showing how these ideas affect the correctness, performance, and utility of application programs. The text's hands-on approach (including a comprehensive set of labs) helps students understand the “under-the-hood” operation of a modern computer system and prepares them for future courses in systems topics such as compilers, computer architecture, operating systems, and networking.

Features

 

 

  • Extensive sets of practice problems interspersed throughout the chapters encourage students to read actively
  • An extensive set of homework problems, rated by difficulty level
  • A set of labs (including the well known “Binary Bomb Lab”) with supporting software and detailed discussion for instructors
  • Web asides, parenthetical remarks that supplement the main presentation of the book, are referenced within the book, and are available from the CS:APP web page.

    New to This Edition
  • Chapter 2: Representing and Manipulating Information. The authors added more careful explanations of concepts and many more practice and homework problems to make the material more accessible. Some of the more theoretical aspects are moved to web asides. A description of some of the security vulnerabilities that arise due to the overflow properties of computer arithmetic is included.
  • Chapter 3: Machine-Level Representation of Programs. Coverage is extended to include x86-64, the extension of x86 processors to a 64-bit word size. Code is used that is generated by a more recent version of gcc. Coverage of buffer overflow vulnerabilities is enhanced. Web asides are included on two different classes of instructions for floating point, and also a view of the more exotic transformations made when compilers attempt higher degrees of optimization.
  • Chapter 4: Processor Architecture. A more careful exposition of exception detection and handling in processor design. A new web aside showing a mapping of the processor designs into Verilog, enabling synthesis into working hardware.
  • Chapter 5: Optimizing Program Performance. Greatly enhanced coverage of how an out-of-order processor operates and a new, simple technique for analyzing program performance based on the paths in a data-flow graph representation of a program. A web aside describes how C programmers can write programs that make use of the SIMD (single-instruction, multiple-data) instructions found in more recent versions of x86 processors.
  • Chapter 6: The Memory Hierarchy. Added material in solid-state disks, and an updated presentation based on the memory hierarchy of an Intel Core i7 processor.
  • Chapter 8: Exceptional Control Flow. An enhanced discussion of how the process model introduces some fundamental concepts of concurrency, such as nondeterminism.
  • Chapter 9: Virtual Memory. The memory system case study is updated to describe the 64-bit Intel Core i7 processor. The sample implementation of malloc is updated to work for both 32 and 64-bit execution.
  • Chapter 12: Concurrent Programming. Increased coverage of the general principles of concurrency, and a description of how programmers can use thread-level parallelism to make programs run faster on multi-core machines.
  • The old Chapter 9 (Measuring Program Execution Time), has been deleted. In addition, a number of practice and homework problems have been added or revised.

    Table of Contents
    1 A Tour of Computer Systems
    I Program Structure and Execution
    2 Representing and Manipulating Information
    3 Machine-Level Representation of Programs
    4 Processor Architecture
    5 Optimizing Program Performance
    6 The Memory Hierarchy
    II Running Programs on a System
    7 Linking
    8 Exceptional Control Flow
    9 Virtual Memory
    III Interaction and Communication Between Programs
    10 System-Level I/O
    11 Network Programming
    12 Concurrent Programming

 

商品描述(中文翻譯)

描述
學習計算機科學或計算機工程的學生幾乎沒有機會建立一個計算機系統。另一方面,大多數學生幾乎每天都需要使用和編程計算機。計算機系統:程序員的視角通過展示這些概念如何影響應用程序的正確性、性能和實用性,介紹了計算機系統的基本和持久概念。這本書的實踐方法(包括一整套實驗室)幫助學生理解現代計算機系統的“內部運作”,並為他們未來的系統主題課程(如編譯器、計算機架構、操作系統和網絡)做好準備。

特點
- 在各章中穿插大量練習題,鼓勵學生主動閱讀
- 一整套按難度級別評估的家庭作業問題
- 一套實驗室(包括著名的“二進位炸彈實驗室”),附有支持軟件和詳細的教師討論
- 書中提到的網頁附註,補充了書本的主要內容,並可從CS:APP網頁獲得。

本版新內容
- 第2章:信息的表示和操作。作者增加了對概念的更仔細解釋和更多的練習及家庭作業問題,以使材料更易於理解。一些更理論的內容被移至網頁附註中。包括了一些由於計算機算術的溢出特性而產生的安全漏洞的描述。
- 第3章:程序的機器級表示。擴展了對x86-64的覆蓋,這是x86處理器擴展到64位字大小的版本。使用了由更新版本的gcc生成的代碼。增強了對緩衝區溢出漏洞的覆蓋。網頁附註中包括了兩類浮點指令的不同類別,以及編譯器在嘗試更高級別的優化時所做的更奇特的轉換的視圖。
- 第4章:處理器架構。對處理器設計中的異常檢測和處理進行了更仔細的闡述。新增的網頁附註顯示了處理器設計映射到Verilog的過程,實現合成為可工作的硬件。
- 第5章:優化程序性能。大幅增強了對無序處理器運作的覆蓋,並提出了一種基於程序數據流圖表示中的路徑分析程序性能的新簡單技術。網頁附註描述了C程序員如何編寫利用最近版本x86處理器中發現的SIMD(單指令,多數據)指令的程序。
- 第6章:內存層次結構。增加了固態硬碟的材料,並基於Intel Core i7處理器的內存層次結構更新了展示。
- 第8章:異常控制流。增強了對過程模型如何引入一些基本的並發概念(如非確定性)的討論。
- 第9章:虛擬內存。內存系統案例研究已更新,以描述64位Intel Core i7處理器。malloc的示例實現已更新,以適用於32位和64位執行。
- 第12章:並發編程。增加了對並發的一般原則的覆蓋,並描述了程序員如何利用線程級並行性使程序在多核機器上運行得更快。
- 舊的第9章(測量程序執行時間)已被刪除。此外,增加或修訂了多個練習和家庭作業問題。

目錄
1 計算機系統概覽
I 程序結構與執行
2 信息的表示和操作
3 程序的機器級表示
4 處理器架構
5 優化程序性能
6 內存層次結構
II 在系統上運行程序
7 連結
8 異常控制流
9 虛擬內存
III 程序之間的互動與通信
10 系統級I/O
11 網絡編程
12 並發編程