-
>
闖進數學世界――探秘歷史名題
-
>
中醫基礎理論
-
>
當代中國政府與政治(新編21世紀公共管理系列教材)
-
>
高校軍事課教程
-
>
思想道德與法治(2021年版)
-
>
毛澤東思想和中國特色社會主義理論體系概論(2021年版)
-
>
中醫內科學·全國中醫藥行業高等教育“十四五”規劃教材
深入理解計算機系統-(英文版.第3版) 版權信息
- ISBN:9787111561279
- 條形碼:9787111561279 ; 978-7-111-56127-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
深入理解計算機系統-(英文版.第3版) 本書特色
本書從程序員的視角詳細闡述計算機系統的本質概念,并展示這些概念如何實實在在地影響應用程序的正確性、性能和實用性。全書共12章,主要包括信息的表示和處理、程序的機器級表示、處理器體系結構、優化程序性能、存儲器層次結構、鏈接、異常控制流、虛擬存儲器、系統級I/O、網絡編程、并發編程等內容。書中提供了大量的例子和練習題,并給出部分答案,有助于讀者加深對正文所述概念和知識的理解。
深入理解計算機系統-(英文版.第3版) 內容簡介
本書系統地介紹了整個計算機系統的工作原理,可幫助讀者系統性地理解計算機如何執行程序、存儲信息和通信;全書包括9個配套的實驗,讀者在新鮮有趣的實驗中理解系統原理,培養動手能力;本書緊跟時代的發展,加入了x86-64指令集等新技術內容;該教材從程序員的角度看待計算機系統,重點討論系統的不同結構對于上層應用軟件編寫、執行和數據存儲的影響,以培養程序員在更廣闊空間應用計算機系統知識的能力。
深入理解計算機系統-(英文版.第3版) 目錄
Preface xix About the Authors xxxv
1
A Tour of Computer Systems 1
1.1Information Is Bits Context 3
1.2Programs Are Translated by Other Programs into Different Forms 4
1.3It Pays to Understand How Compilation Systems Work 6
1.4Processors Read and Interpret Instructions Stored in Memory 7
1.4.1Hardware Organization of a System 8
1.4.2Running the helloProgram 10
1.5Caches Matter 11
1.6Storage Devices Form a Hierarchy 14
1.7The Operating System Manages the Hardware 14
1.7.1Processes 15
1.7.2Threads 17
1.7.3Virtual Memory 18
1.7.4Files 19
1.8Systems Communicate with Other Systems Using Networks 19
1.9Important Themes 22
1.9.1Amdahl’s Law 22
1.9.2Concurrency and Parallelism 24
1.9.3The Importance of Abstractions in Computer Systems 26
1.10Summary 27 Bibliographic Notes 28 Solutions to Practice Problems 28
Part I Program Structure and Execution
2
Representing and Manipulating Information 31
2.1Information Storage 34
2.1.1Hexadecimal Notation 36
2.1.2Data Sizes 39
2.1.3 Addressing and Byte Ordering 42
2.1.4 Representing Strings 49
2.1.5 Representing Code 49
2.1.6 Introduction to Boolean Algebra 50
2.1.7 Bit-Level Operations in C 54
2.1.8 Logical Operations in C 56
2.1.9 Shift Operations in C 57
2.2 Integer Representations 59
2.2.1 Integral Data Types 60
2.2.2 Unsigned Encodings 62
2.2.3 Two’s-Complement Encodings 64
2.2.4 Conversions between Signed and Unsigned 70
2.2.5 Signed versus Unsigned in C 74
2.2.6 Expanding the Bit Representation of a Number 76
2.2.7 Truncating Numbers 81
2.2.8 Advice on Signed versus Unsigned 83
2.3 Integer Arithmetic 84
2.3.1 Unsigned Addition 84
2.3.2 Two’s-Complement Addition 90
2.3.3 Two’s-Complement Negation 95
2.3.4 Unsigned Multiplication 96
2.3.5 Two’s-Complement Multiplication 97
2.3.6 Multiplying by Constants 101
2.3.7 Dividing by Powers of 2 103
2.3.8 Final Thoughts on Integer Arithmetic 107
2.4 Floating Point 108
2.4.1 Fractional Binary Numbers 109
2.4.2 IEEE Floating-Point Representation 112
2.4.3 Example Numbers 115
2.4.4 Rounding 120
2.4.5 Floating-Point Operations 122
2.4.6 Floating Point in C 124
2.5 Summary 126
Bibliographic Notes 127
Homework Problems 128
Solutions to Practice Problems 143
3
Machine-Level Representation of Programs 163
3.1 A Historical Perspective 166
3.2Program Encodings 169
3.2.1Machine-Level Code 170
3.2.2Code Examples 172
3.2.3Notes on Formatting 175
3.3Data Formats 177
3.4Accessing Information 179
3.4.1Operand Speci.ers 180
3.4.2Data Movement Instructions 182
3.4.3Data Movement Example 186
3.4.4Pushing and Popping Stack Data 189
3.5Arithmetic and Logical Operations 191
3.5.1Load Effective Address 191
3.5.2Unary and Binary Operations 194
3.5.3Shift Operations 194
3.5.4Discussion 196
3.5.5Special Arithmetic Operations 197
3.6Control 200
3.6.1Condition Codes 201
3.6.2Accessing the Condition Codes 202
3.6.3Jump Instructions 205
3.6.4Jump Instruction Encodings 207
3.6.5Implementing Conditional Branches withConditional Control 209
3.6.6Implementing Conditional Branches withConditional Moves 214
3.6.7Loops 220
3.6.8Switch Statements 232
3.7Procedures 238
3.7.1The Run-Time Stack 239
3.7.2Control Transfer 241
3.7.3Data Transfer 245
3.7.4Local Storage on the Stack 248
3.7.5Local Storage in Registers 251
3.7.6Recursive Procedures 253
3.8Array Allocation and Access 255
3.8.1Basic Principles 255
3.8.2Pointer Arithmetic 257
3.8.3Nested Arrays 258
3.8.4Fixed-Size Arrays 260
3.8.5Variable-Size Arrays 262
3.9 Heterogeneous Data Structures 265
3.9.1 Structures 265
3.9.2 Unions 269
3.9.3 Data Alignment 273
3.10 Combining Control and Data in Machine-Level Programs 276
3.10.1 Understanding Pointers 277
3.10.2 Life in the Real World: Using the gdbDebugger 279
3.10.3 Out-of-Bounds Memory References and Buffer Over.ow 279
3.10.4 Thwarting Buffer Over.ow Attacks 284
3.10.5 Supporting Variable-S
深入理解計算機系統-(英文版.第3版) 作者簡介
Randal E. Bryant
1973年獲得密歇根大學學士學位,隨即就讀麻省理工學院的研究生院,并在1981年獲得計算機博士學位。從1984年至今一直任教于卡內基-梅隆大學,現在是卡內基-梅隆大學計算機科學學院院長、教授,同時受邀任教于工學院電子與計算機工程系。他還是ACM院士、IEEE院士和美國國家工程院院士。其研究成果獲得過數項大獎,其中包括Semiconductor Research Corporation頒發的兩個發明榮譽獎和一個技術成就獎,ACM頒發的Kanellakis理論與實踐獎,還有IEEE頒發的W. R. G. Baker獎、Emmanuel Piore獎和Phil Kaufman獎。
David R. O,Hallaron
擁有弗吉尼亞大學計算機科學博士學位,現為Intel匹茲堡實驗室主任,卡內基-梅隆大學計算機科學和電子與計算機工程副教授。他曾獲得卡內基-梅隆大學計算機科學學院頒發的Herbert Simon杰出教學獎,并同Quake項目中其他成員一起獲得了高性能計算領域中的高國際獎項——Gordon Bell獎。
- >
莉莉和章魚
- >
二體千字文
- >
詩經-先民的歌唱
- >
人文閱讀與收藏·良友文學叢書:一天的工作
- >
推拿
- >
經典常談
- >
巴金-再思錄
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)