当前位置:首页 > 工业技术
计算机系统基础  第2版
计算机系统基础  第2版

计算机系统基础 第2版PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:袁春风,余子濠著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111604891
  • 页数:416 页
图书介绍:本书主要介绍与计算机系统相关的核心概念,解释这些概念如何相互关联并最终影响程序执行的结果和性能。本书共分8章,主要内容包括数据的表示和运算、程序的转换及机器级表示、程序的链接、程序的执行、存储器层次结构、虚拟存储器、异常控制流和I/O操作的实现等。本书将计算机系统每个抽象层涉及的重要概念通过程序的开发和运行串联起来,内容详尽,反映现实,概念清楚,通俗易懂,实例丰富,并提供大量典型习题以供读者练习。本书可以作为计算机专业本科或大专院校学生计算机系统方面的基础性教材,也可以作为有关专业研究生或计算机技术人员的参考书。
《计算机系统基础 第2版》目录

第一部分 系统概述和可执行目标文件的生成 2

第1章 计算机系统概述 2

1.1计算机基本工作原理 2

1.1.1冯·诺依曼结构基本思想 2

1.1.2冯·诺依曼机基本结构 3

1.1.3程序和指令的执行过程 4

1.2程序的开发与运行 7

1.2.1程序设计语言和翻译程序 7

1.2.2从源程序到可执行文件 9

1.2.3可执行文件的启动和执行 10

1.3计算机系统的层次结构 12

1.3.1计算机系统抽象层的转换 12

1.3.2计算机系统核心层之间的关联 14

1.3.3计算机系统的不同用户 16

1.4计算机系统性能评价 18

1.4.1计算机性能的定义 19

1.4.2计算机性能的测试 19

1.4.3用指令执行速度进行性能评估 21

1.4.4用基准程序进行性能评估 22

1.4.5Amdahl定律 23

1.5本书的主要内容和组织结构 24

1.6小结 27

习题 27

第2章 数据的机器级表示与处理 30

2.1数制和编码 30

2.1.1信息的二进制编码 30

2.1.2进位计数制 32

2.1.3定点与浮点表示 36

2.1.4定点数的编码表示 36

2.2整数的表示 41

2.2.1无符号整数和带符号整数的表示 41

2.2.2C语言中的整数及其相互转换 42

2.3浮点数的表示 44

2.3.1浮点数的表示范围 44

2.3.2浮点数的规格化 45

2.3.3IEEE 754浮点数标准 45

2.3.4C语言中的浮点数类型 49

2.4十进制数的表示 51

2.4.1用ASCII码字符表示 51

2.4.2用BCD码表示 51

2.5非数值数据的编码表示 52

2.5.1逻辑值 52

2.5.2西文字符 52

2.5.3汉字字符 53

2.6数据的宽度和存储 55

2.6.1数据的宽度和单位 55

2.6.2数据的存储和排列顺序 57

2.7数据的基本运算 61

2.7.1按位运算和逻辑运算 61

2.7.2左移运算和右移运算 61

2.7.3位扩展运算和位截断运算 63

2.7.4整数加减运算 64

2.7.5整数乘除运算 68

2.7.6常量的乘除运算 71

2.7.7浮点数运算 72

2.8小结 78

习题 79

第3章 程序的转换及机器级表示 87

3.1程序转换概述 87

3.1.1机器指令及汇编指令 88

3.1.2指令集体系结构 89

3.1.3生成机器代码的过程 89

3.2IA-32指令系统概述 94

3.2.1数据类型及其格式 95

3.2.2寄存器组织和寻址方式 96

3.2.3机器指令格式 101

3.3IA-32常用指令类型及其操作 103

3.3.1传送指令 103

3.3.2定点算术运算指令 106

3.3.3按位运算指令 109

3.3.4控制转移指令 110

3.3.5x87浮点处理指令 115

3.3.6MMX/SSE指令集 116

3.4C语言程序的机器级表示 118

3.4.1过程调用的机器级表示 118

3.4.2选择语句的机器级表示 132

3.4.3循环结构的机器级表示 136

3.5复杂数据类型的分配和访问 139

3.5.1数组的分配和访问 139

3.5.2结构体数据的分配和访问 144

3.5.3联合体数据的分配和访问 146

3.5.4数据的对齐 148

3.6越界访问和缓冲区溢出 151

3.6.1缓冲区溢出 151

3.6.2缓冲区溢出攻击 153

3.6.3缓冲区溢出攻击的防范 155

3.7兼容IA-32的64位系统 158

3.7.1x86-64的发展简史 158

3.7.2x86-64的基本特点 159

3.7.3x86-64的基本指令和对齐 159

3.7.4x86-64的过程调用 161

3.7.5x86-64的浮点操作与SIMD指令 165

3.8小结 166

习题 167

第4章 程序的链接 182

4.1编译、汇编和静态链接 182

4.1.1编译和汇编 182

4.1.2可执行目标文件的生成 184

4.2目标文件格式 186

4.2.1ELF目标文件格式 186

4.2.2可重定位目标文件格式 187

4.2.3可执行目标文件格式 190

4.2.4可执行文件的存储器映像 192

4.3符号表和符号解析 193

4.3.1符号和符号表 193

4.3.2符号解析 196

4.3.3与静态库的链接 199

4.4重定位 201

4.4.1重定位信息 202

4.4.2重定位过程 202

4.5动态链接 206

4.5.1动态链接的特性 207

4.5.2程序加载时的动态链接 207

4.5.3程序运行时的动态链接 209

4.5.4位置无关代码 210

4.6小结 214

习题 215

第二部分 可执行目标文件的运行 222

第5章 程序的执行 222

5.1程序执行概述 222

5.1.1程序及指令的执行过程 222

5.1.2CPU的基本功能和组成 224

5.1.3打断程序正常执行的事件 226

5.2数据通路基本结构和工作原理 227

5.2.1数据通路基本结构 227

5.2.2数据通路的时序控制 229

5.2.3总线式数据通路 230

5.2.4单周期数据通路 235

5.3流水线方式下指令的执行 238

5.3.1指令流水线的基本原理 238

5.3.2适合流水线的指令集特征 241

5.3.3CISC和RISC风格指令集 242

5.3.4指令流水线的实现 245

5.3.5高级流水线实现技术 248

5.4小结 249

习题 250

第6章 层次结构存储系统 253

6.1存储器概述 253

6.1.1存储器的分类 253

6.1.2主存储器的组成和基本操作 255

6.1.3存储器的主要性能指标 255

6.1.4各类存储元件的特点 256

6.1.5存储器的层次结构 257

6.2主存与CPU的连接及其读写操作 257

6.2.1主存芯片技术 257

6.2.2主存与CPU的连接及其读写 260

6.2.3“装入”指令和“存储”指令操作过程 263

6.3硬盘存储器 266

6.3.1磁盘存储器的结构 266

6.3.2磁盘存储器的性能指标 268

6.3.3磁盘存储器的连接 269

6.3.4固态硬盘 270

6.4高速缓冲存储器 271

6.4.1程序访问的局部性 271

6.4.2cache的基本工作原理 273

6.4.3cache行和主存块的映射 275

6.4.4cache中主存块的替换算法 281

6.4.5cache一致性问题 282

6.4.6影响cache性能的因素 283

6.4.7IA-32的cache结构举例 284

6.4.8cache和程序性能 285

6.5虚拟存储器 289

6.5.1虚拟存储器的基本概念 289

6.5.2虚拟地址空间 290

6.5.3虚拟存储器的实现 291

6.5.4存储保护 299

6.6IA-32+Linux中的地址转换 300

6.6.1逻辑地址到线性地址的转换 301

6.6.2线性地址到物理地址的转换 306

6.7实例:Intel Core i7+Linux存储系统 308

6.7.1Core i7的层次化存储器结构 308

6.7.2Core i7的地址转换机制 308

6.7.3Linux系统的虚拟存储管理 311

6.8小结 314

习题 315

第7章 异常控制流 322

7.1进程与进程的上下文切换 322

7.1.1程序和进程的概念 322

7.1.2进程的逻辑控制流 323

7.1.3进程的上下文切换 325

7.1.4进程的存储器映射 326

7.1.5程序的加载和运行 329

7.2异常和中断 332

7.2.1基本概念 333

7.2.2异常的分类 334

7.2.3中断的分类 337

7.2.4异常和中断的响应过程 338

7.3IA-32+Linux中的异常和中断 340

7.3.1IA-32的中断向量表 340

7.3.2IA-32的中断描述符表 341

7.3.3IA-32中异常和中断的处理 342

7.3.4Linux对异常和中断的处理 344

7.3.5IA-32+Linux的系统调用 348

7.4小结 350

习题 351

第8章 I/O操作的实现 354

8.1I/O子系统概述 354

8.2用户空间I/O软件 357

8.2.1用户程序中的I/O函数 358

8.2.2文件的基本概念 359

8.2.3系统级I/O函数 361

8.2.4C标准I/O库函数 363

8.2.5用户程序中的I/O请求 368

8.3I/O硬件与软件的接口 370

8.3.1I/O设备 370

8.3.2基于总线的互连结构 371

8.3.3I/O接口的功能和结构 374

8.3.4I/O端口及其编址 376

8.3.5I/O控制方式 377

8.4内核空间I/O软件 384

8.4.1与设备无关的I/O软件 384

8.4.2设备驱动程序 386

8.4.3中断服务程序 387

8.5小结 389

习题 390

附录A 数字逻辑电路基础 395

附录B gcc的常用命令行选项 409

附录C GDB的常用命令 411

参考文献 414

返回顶部