登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2025年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2026年01月出版新書

2025年12月出版新書

2025年11月出版新書

2025年10月出版新書

2025年09月出版新書

2025年08月出版新書

2025年07月出版新書

2025年06月出版新書

2025年05月出版新書

2025年04月出版新書

2025年03月出版新書

2025年02月出版新書

2025年01月出版新書

2024年12月出版新書

『簡體書』深入解析计算机系统

書城自編碼: 4199912
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: [美]苏珊娜·J. 马修斯[Suzanne J. Matth
國際書號(ISBN): 9787115638151
出版社: 人民邮电出版社
出版日期: 2026-01-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 917

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
奇迹时刻:获得全新的认知与领悟,如何爱自己,打破原生家庭限制,找寻真正的自由与自爱
《 奇迹时刻:获得全新的认知与领悟,如何爱自己,打破原生家庭限制,找寻真正的自由与自爱 》

售價:NT$ 305
学会卓越
《 学会卓越 》

售價:NT$ 510
365日自我肯定之书:你是你自己人生的主角!增强自我肯定感
《 365日自我肯定之书:你是你自己人生的主角!增强自我肯定感 》

售價:NT$ 356
小儿推拿轻松学,脾肺同养百病消
《 小儿推拿轻松学,脾肺同养百病消 》

售價:NT$ 184
海洋之思:俄罗斯的海洋观(1997~2021)
《 海洋之思:俄罗斯的海洋观(1997~2021) 》

售價:NT$ 653
国语(全二册)中国古代史学丛书
《 国语(全二册)中国古代史学丛书 》

售價:NT$ 653
新安医学古籍整理发掘研究
《 新安医学古籍整理发掘研究 》

售價:NT$ 500
如何提出一个好问题(全新升级版)
《 如何提出一个好问题(全新升级版) 》

售價:NT$ 561

編輯推薦:
【权威作者与专业翻译】国外计算机领域专家联袂撰写,精准传递核心知识。
【分层递进体系清晰】按抽象层次编排内容,从 C 语言基础逐步延伸至硬件架构、汇编语言、并行计算等,呈现完整计算机系统全景图。
【软硬件全覆盖】涵盖计算机组成、操作系统、内存管理、代码优化、多核编程等核心主题,兼顾理论与实践,满足多维度学习需求。
【实用工具与安全案例】详解 GDB、Valgrind 等调试工具,剖析缓存区溢出等经典安全问题,助力提升工程实践与问题排查能力。
【适配多场景使用】既可作为计算机系统相关课程教材,也适合有编程基础的从业者自学,部分章节可作为高级课程背景阅读材料。
【资源与时俱进】内容紧跟计算机领域发展,涵盖云计算、MapReduce 等前沿主题,适配多核时代需求。
內容簡介:
计算机系统是计算机专业的常见课程,也是学习编程过程中的重要学习内容。本书是计算机系统的入门图书,介绍了现代计算机系统的主要硬件和软件。本书按抽象层次设置各章节,从常用于编写操作系统的 C 语言基础知识逐步衍生,先介绍现代计算机的组成、结构、操作系统原理、汇编语言,再介绍各种计算机体系结构的代码优化方法、使用共享内存实现并行计算、多核 CPU环境下的内存管理等。
本书适合作为计算机系统相关课程的教材,也适合有编程基础的人阅读。
關於作者:
苏珊娜·J. 马修斯,西点军校计算机科学副教授。蒂亚·纽霍尔,斯沃斯莫尔学院计算机科学教授。凯文·C. 韦布,斯沃斯莫尔学院计算机科学副教授。
目錄
第 1 章 靠近 C,靠近 C,靠近美丽的 C  1
1.1 开始使用 C 编程  2
 1.1.1 编译和运行 C 程序  4
 1.1.2 C 类型  6
1.2 输入和输出(函数 printf 和 scanf)  9
 1.2.1 printf 函数  9
 1.2.2 scanf 函数  11
1.3 条件和循环  13
 1.3.1 C 中的布尔值  15
 1.3.2 C 中的循环  16
1.4 函数  20
1.5 数组和字符串  25
 1.5.1 数组介绍  25
 1.5.2 数组访问方法  27
 1.5.3 数组和函数  28
 1.5.4 C 字符串和字符串库介绍  30
1.6 结构体  31
 1.6.1 定义结构体类型  32
 1.6.2 声明结构体类型的变量  32
 1.6.3 访问字段值  33
 1.6.4 向函数传递结构体  36
1.7 总结  39

第 2 章 深入理解 C 语言  40
2.1 程序内存的组成部分和作用域  40
2.2 C 指针变量  43
2.3 指针与函数  46
2.4 动态内存分配  48
 2.4.1 堆内存  48
 2.4.2 函数 malloc 和 free  49
 2.4.3 动态分配数组和字符串  50
 2.4.4 指向堆内存和函数的指针  52
2.5 C 中的数组  53
 2.5.1 一维数组  53
 2.5.2 二维数组  56
2.6 C 字符串和字符串库  62
 2.6.1 C 语言对静态分配字符串(char 数组)的支持  62
 2.6.2 动态分配字符串  63
 2.6.3 用于操作 C 字符串和字符的库  64
2.7 C 结构体  71
 2.7.1 复习 C 结构体类型  71
 2.7.2 指针和结构体  73
 2.7.3 结构体中的指针字段  74
 2.7.4 结构体数组  76
 2.7.5 自引用结构体  77
2.8 C 中的 I/O(标准 I/O 和文件 I/O)  79
 2.8.1 标准 I/O  79
 2.8.2 文件 I/O  83
 2.8.3 在 C 程序中使用文本文件  83
 2.8.4 stdio.h 中的标准 I/O 和文件 I/O 函数  84
2.9 C 语言的一些高级特性  87
 2.9.1 switch 语句  87
 2.9.2 命令行参数  89
 2.9.3 void *类型及类型转换  90
 2.9.4 指针运算  91
 2.9.5 C 库的使用、编译和链接  95
 2.9.6 编写和使用自己的 C 库  100
 2.9.7 编译 C 源文件为汇编代码,以及编译并链接汇编代码  104
2.10 总结  107

第 3 章 C 调试工具  108
3.1 使用 GDB 调试程序  108
 3.1.1 GDB 入门  109
 3.1.2 GDB 会话示例  110
3.2 GDB 命令详情  118
 3.2.1 GDB 常用快捷键  118
 3.2.2 常用 GDB 命令  118
3.3 利用 Valgrind 调试内存  124
 3.3.1 堆内存访问错误示例  125
 3.3.2 如何使用 Memcheck 调试工具  127
3.4 GDB 高级功能  129
 3.4.1 GDB 和 make 命令  129
 3.4.2 将 GDB 附加到正在运行的进程  129
 3.4.3 跟踪分叉进程  130
 3.4.4 信号控制  131
 3.4.5 DDD 设置和 bug 修复  131
3.5 调试汇编代码  131
 3.5.1 使用 GDB 检查二进制代码  132
 3.5.2 在汇编代码级别使用 DDD 进行调试  133
 3.5.3 GDB 汇编代码调试命令和示例  134
 3.5.4 汇编调试常用命令快速摘要  135
3.6 使用 GDB 调试多线程程序  135
 3.6.1 GDB 和线程  136
 3.6.2 GDB 线程特定命令  136
 3.6.3 示例  137
3.7 总结  139

第 4 章 二进制与数据表示法  140
4.1 基数和无符号数  142
 4.1.1 十进制数  142
 4.1.2 无符号二进制数  143
 4.1.3 十六进制  144
 4.1.4 存储限制  145
4.2 数制转换  146
 4.2.1 二进制和十六进制之间的转换  146
 4.2.2 转换为十进制  147
 4.2.3 从十进制转换  147
4.3 有符号二进制数  149
 4.3.1 原码  149
 4.3.2 补码  150
4.4 二进制算术运算  153
 4.4.1 加法  153
 4.4.2 减法  155
 4.4.3 乘法和除法  155
4.5 溢出  156
 4.5.1 用里程表作类比  156
 4.5.2 二进制溢出  157
 4.5.3 溢出总结  160
 4.5.4 溢出后果  160
4.6 位运算符  161
 4.6.1 按位与(AND)  161
 4.6.2 按位或(OR)  162
 4.6.3 按位异或(XOR)  163
 4.6.4 按位非(NOT)  163
 4.6.5 移位  164
4.7 整数字节序  165
4.8 二进制中的实数  167
 4.8.1 定点数表示法  167
 4.8.2 浮点数表示法  168
 4.8.3 舍入结果  169
4.9 总结  169

第 5 章 冯 诺依曼计算机体系结构  171
5.1 现代计算机体系结构的起源  172
 5.1.1 图灵机  173
 5.1.2 早期电子计算机  173
 5.1.3 冯·诺依曼知道些什么  175
5.2 冯 诺依曼体系结构  175
 5.2.1 CPU  176
 5.2.2 运算器  176
 5.2.3 控制器  176
 5.2.4 存储器  176
 5.2.5 输入/输出(I/O)设备  177
 5.2.6 冯·诺依曼计算机的运行:执行程序  177
5.3 逻辑门  179
 5.3.1 基础逻辑门  179
 5.3.2 其他逻辑门  180
5.4 电路  181
 5.4.1 算术/逻辑电路  182
 5.4.2 控制电路  186
 5.4.3 存储电路  190
 5.4.4 RS 锁存器  190
5.5 构建处理器:将它们放在一起  193
 5.5.1 ALU  193
 5.5.2 寄存器堆  195
 5.5.3 CPU  196
5.6 处理器执行程序指令  197
 5.6.1 时钟驱动程序指令的执行  200
 5.6.2 将它们放在一起:完整计算机中的 CPU  201
5.7 流水线:让 CPU 更快  202
5.8 高级流水线指令注意事项  204
 5.8.1 流水线注意事项:数据冒险  204
 5.8.2 流水线冒险:控制冒险  205
5.9 展望未来:现代 CPU 技术  207
 5.9.1 指令级并行  207
 5.9.2 多核和硬件多线程  208
 5.9.3 一些处理器示例  210
5.10 总结  210

第 6 章 C 语言底层:深入理解汇编  212
6.1 学习汇编的好处  212
6.2 你将在接下来的章节中学到什么  214

第 7 章 64 位 x86(x86-64)汇编  215
7.1 x86-64 汇编基础知识  216
 7.1.1 寄存器  217
 7.1.2 高级寄存器符号  217
 7.1.3 指令结构  218
 7.1.4 操作数示例  219
 7.1.5 指令后缀  220
7.2 常见指令  220
7.3 算术指令  226
 7.3.1 移位指令  226
 7.3.2 位指令  227
 7.3.3 加载有效地址指令  228
7.4 条件和循环  228
 7.4.1 预备知识  228
 7.4.2 汇编中的 if 语句  232
 7.4.3 汇编中的循环语句  237
7.5 汇编中的函数  242
 7.5.1 函数参数  243
 7.5.2 通过示例进行追踪  243
 7.5.3 通过 main 函数进行追踪  245
7.6 递归函数  257
7.7 数组  259
7.8 矩阵  261
 7.8.1 连续二维数组  262
 7.8.2 非连续矩阵  264
7.9 汇编中的结构体  267
7.10 真实世界:缓存区溢出  270
 7.10.1 缓存区溢出经典案例  270
 7.10.2 初步探索:猜谜游戏  271
 7.10.3 进一步了解(在C 环境下)  272
 7.10.4 缓存区溢出:首次尝试  275
 7.10.5 更聪明的缓存区溢出:再次尝试  276
 7.10.6 缓存区溢出防御  278

第 8 章 32 位 x86(IA32)汇编  281
8.1 IA32 汇编基础知识  282
 8.1.1 寄存器  283
 8.1.2 高级寄存器符号  283
 8.1.3 指令结构  284
 8.1.4 操作数示例  284
 8.1.5 指令后缀  285
8.2 常见指令  286
8.3 算术指令  291
 8.3.1 移位指令  291
 8.3.2 位指令  292
 8.3.3 加载有效地址指令  292
8.4 条件和循环  293
 8.4.1 预备知识  293
 8.4.2 汇编中的 if 语句  296
 8.4.3 汇编中的循环语句  301
8.5 汇编中的函数  305
 8.5.1 通过示例进行追踪  307
 8.5.2 通过 main 函数进行追踪  308
8.6 递归函数  322
8.7 数组  323
8.8 矩阵  326
 8.8.1 连续二维数组  327
 8.8.2 非连续矩阵  328
8.9 汇编中的结构体  331
8.10 真实世界:缓存区溢出  334
 8.10.1 缓存区溢出经典案例  334
 8.10.2 初步探索:猜谜游戏  334
 8.10.3 进一步了解(在C 环境下)  336
 8.10.4 缓存区溢出:首次尝试  338
 8.10.5 更聪明的缓存区溢出:再次尝试  340
 8.10.6 缓存区溢出防御  341

第 9 章 ARM 汇编  345
9.1 ARM 汇编基础知识  346
 9.1.1 寄存器  347
 9.1.2 高级寄存器符号  347
 9.1.3 指令结构  348
 9.1.4 操作数示例  348
9.2 常见指令  349
9.3 算术指令  354
 9.3.1 移位指令  355
 9.3.2 位指令  356
9.4 条件和循环  356
 9.4.1 预备知识  356
 9.4.2 汇编中的 if 语句  360
 9.4.3 汇编中的循环语句  365
9.5 汇编中的函数  370
 9.5.1 函数参数  372
 9.5.2 通过示例进行追踪  372
 9.5.3 通过 main 函数进行追踪  373
9.6 递归函数  385
9.7 数组  387
9.8 矩阵  390
 9.8.1 连续二维数组  391
 9.8.2 非连续矩阵  393
9.9 汇编中的结构体  395
9.10 真实世界:缓存区溢出  398
 9.10.1 缓存区溢出经典案例  399
 9.10.2 初步探索:猜谜游戏  399
 9.10.3 进一步了解(在C 环境下)  400
 9.10.4 缓存区溢出:首次尝试  403
 9.10.5 更聪明的缓存区溢出:再次尝试  404
 9.10.6 缓存区溢出防御  406

第 10 章 汇编要点  409
10.1 共同特点  409
10.2 进一步阅读  410

第 11 章 存储和内存层次结构  411
11.1 内存层次结构  412
11.2 存储设备  413
 11.2.1 主存储设备  414
 11.2.2 辅助存储设备  415
11.3 局部性  417
 11.3.1 代码中的局部性示例  418
 11.3.2 从局部性到缓存  419
 11.3.3 时间局部性  420
 11.3.4 空间局部性  421
11.4 CPU 缓存  421
 11.4.1 直接映射缓存  422
 11.4.2 缓存未命中和关联设计  429
 11.4.3 集合关联缓存  430
11.5 缓存分析和 Valgrind  434
 11.5.1 理论分析和基准测试  436
 11.5.2 现实世界中的缓存分析:Cachegrind  437
11.6 展望未来:多核处理器上的缓存  439
 11.6.1 缓存一致性  441
 11.6.2 MSI 协议  441
 11.6.3 实现缓存一致性协议  443
 11.6.4 有关多核缓存的更多信息  443
11.7 总结  444

第 12 章 代码优化  445
12.1 优化之前:了解编译器  445
 12.1.1 编译器已经做了什么  445
 12.1.2 编译器无法始终完成的任务:学习代码优化的好处  447
 12.1.3 与编译器合作:一个示例程序  450
12.2 代码优化第 一步:代码分析  451
 12.2.1 使用Callgrind 进行性能分析  453
 12.2.2 循环不变代码移动  455
12.3 其他编译器优化技术:循环展开和函数内联  457
 12.3.1 函数内联  457
 12.3.2 循环展开  458
12.4 内存注意事项  460
 12.4.1 循环交换  460
 12.4.2 用于改进局部性的其他一些编译器优化技术:循环裂变和融合  461
 12.4.3 使用 Massif 进行内存分析  463
12.5 总结  465

第 13 章 操作系统  467
13.1 操作系统的工作原理及运行方式  468
 13.1.1 操作系统的引导过程  469
 13.1.2 让操作系统执行任务:中断和陷阱  469
13.2 进程  472
 13.2.1 多道程序设计和上下文切换  472
 13.2.2 进程状态  473
 13.2.3 创建(和销毁)进程  475
 13.2.4 退出和等待  480
13.3 虚拟内存  482
 13.3.1 内存地址  484
 13.3.2 虚拟地址到物理地址的转换  485
 13.3.3 分页  486
 13.3.4 内存效率  492
13.4 进程间通信  494
 13.4.1 信号  495
 13.4.2 消息传递  499
 13.4.3 共享内存  500
13.5 总结  501

第 14 章 在多核时代利用共享内存  503
14.1 编程多核系统  505
 14.1.1 多核系统对进程执行的影响  505
 14.1.2 使用线程加速进程执行  506
14.2 编写你的第 一个多线程程序  508
 14.2.1 创建和加入线程  509
 14.2.2 线程函数  511
 14.2.3 运行代码  511
 14.2.4 重新审视标量乘法  512
 14.2.5 改进标量乘法:传递多个参数  514
14.3 线程同步  515
 14.3.1 互斥  521
 14.3.2 信号量  528
 14.3.3 其他同步机制  529
14.4 并行程序的性能测量  534
 14.4.1 并行程序性能测量基础  534
 14.4.2 并行程序性能测量进阶  537
14.5 缓存一致性和虚假共享  538
 14.5.1 多核系统中的缓存  539
 14.5.2 虚假共享  540
 14.5.3 解决虚假共享  542
14.6 线程安全  543
14.7 OpenMP 中的隐式线程  547
 14.7.1 常用编译指示  548
 14.7.2 为 OpenMP 增添趣味  548
 14.7.3 一个更复杂的示例:OpenMP 中的 CountSort 算法  550
 14.7.4 了解更多关于 OpenMP 的知识  552
14.8 总结  552

第 15 章 展望:其他并行系统和并行编程模型  554
15.1 异构计算:硬件加速器、GPGPU 计算和 CUDA  555
 15.1.1 硬件加速器  555
 15.1.2 GPU 体系结构简介  556
 15.1.3 GPGPU 计算  557
 15.1.4 CUDA  557
 15.1.5 其他 GPGPU 编程语言  561
15.2 分布式内存系统、消息传递和MPI  561
 15.2.1 并行和分布式处理模型  563
 15.2.2 通信协议  563
 15.2.3 消息传递接口  564
 15.2.4 MPI Hello World  564
 15.2.5 MPI 标量乘法  566
 15.2.6 分布式内存系统面临的挑战  572
15.3 迈向百亿亿次计算:云计算、大数据和计算科学的未来  572
 15.3.1 云计算  574
 15.3.2 MapReduce  575
 15.3.3 展望未来:机遇与挑战  579

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2026 (香港)大書城有限公司 All Rights Reserved.