本书特色: 贯穿优化理念,重构课程逻辑。本书以系统性能优化为核心主线重组操作系统课程内容。将程、线程、虚拟内存、IO 等核心概念与 cache、指令流水等底层细节有机串联,让读者在学习过程中始终聚焦 “提升性能、提高效率” 的核心目标,实现从“理解原理”到“优化系统” 的能力跃迁。 案例驱动教学,实践层层递。本书以工程实践为导向,设计了“文件整理” 等常见问题与 “矩阵乘法” 等高算力性能挖掘问题的双实践主线。随问题难度的升级,自然引抽象知识,通过编程实践、观察测量等方式将抽象概念具象化,力图解决课程教学中理论与实践脱节的难题。
售 价:¥
纸质售价:¥54.00购买纸书
6.6
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐

丛书序
前言
第一部分 基础知识
第1章 绪论
1.1 对操作系统的感性认知
1.2 常见的操作系统
1.2.1 Windows
1.2.2 macOS
1.2.3 Linux及其衍生系统
1.2.4 HarmonyOS
1.3 操作系统的发展历史
1.3.1 批处理系统
1.3.2 多道程序、分时复用和进程
1.3.3 现代个人计算机
1.4 操作系统为用户提供的交互方式
1.4.1 图形用户界面
1.4.2 命令行终端
1.4.3 系统API
1.5 操作系统支持的典型开发模式
1.5.1 shell编程
1.5.2 Python编程
1.5.3 C语言编程
1.5.4 程序性能优化
1.6 操作系统的代价
第二部分 基础实验
第2章 批量文件重命名
2.1 shell是什么
2.2 进入shell的方式
2.3 shell的原理
2.4 shell命令的功能
2.5 利用shell进行编程
2.5.1 shell的输入/输出
2.5.2 变量
2.5.3 在shell中进行文件重命名
2.5.4 循环与通配符
2.6 shell脚本
2.6.1 执行shell脚本
2.6.2 调试shell脚本
2.7 操作系统的运行权限管理
2.8 任务实现
2.9 shell编程扩展
第3章 正则表达式与文本内容过滤
3.1 shell编程中的字符串
3.1.1 字符串的声明
3.1.2 计算字符串的长度
3.1.3 字符串的拼接
3.1.4 字符串的截取
3.2 正则表达式
3.2.1 普通字符
3.2.2 特殊字符
3.2.3 限定符
3.2.4 运算符优先级
3.3 shell中的文件操作
3.4 文本处理任务的实现
3.5 Linux中的定时任务
3.5.1 何谓定时任务
3.5.2 实现定时任务的工具
3.5.3 Cron的原理
3.5.4 Cron的使用
3.6 Linux中的服务管理
3.7 延伸阅读
3.7.1 独立服务的管理
3.7.2 基于xinetd服务的管理
3.7.3 源码包服务的管理
第4章 单个大规模文件的处理
4.1 文件读写相关的系统调用
4.1.1 read的原理分析
4.1.2 write的原理分析
4.1.3 任务实现
4.1.4 延伸阅读:GDB、makefile的用法
4.1.5 使用读写接口产生的内存消耗
4.2 内存映射相关的系统调用
4.2.1 mmap的原理
4.2.2 缺页异常的处理过程
4.2.3 利用user page fault handler/eBPF的观测分析
4.2.4 任务实现
4.2.5 延伸阅读:中断事件过程分析
4.3 虚拟内存的管理机制
4.3.1 内存资源的观测
4.3.2 内存的分配与回收方法
第5章 多进程与多线程
5.1 Linux的进程管理
5.1.1 Linux的进程模型
5.1.2 阻塞式系统调用
5.2 多进程协作的编程模式
5.2.1 进程管理的系统调用
5.2.2 进程间通信协作的方式
5.2.3 任务实现
5.2.4 共享内存的管理
5.2.5 多进程的资源消耗
5.3 多线程协作的编程模式
5.3.1 线程
5.3.2 多核心任务调度
5.4 线程的编程接口
5.4.1 pthread线程库的线程API
5.4.2 线程同步的API
5.4.3 任务实现
5.5 多进程和多线程的对比
5.6 延伸阅读:线程的软硬件发展
5.6.1 硬件支持的上下文
5.6.2 硬件支持的原子指令
5.6.3 快速系统调用
第6章 多机协作处理
6.1 网络编程
6.1.1 socket()函数
6.1.2 bind()和connect()函数
6.1.3 listen()和accept()函数
6.1.4 send()函数
6.1.5 recv()函数
6.2 基础任务实现
6.2.1 初始化套接字
6.2.2 建立连接
6.2.3 传输数据
6.2.4 调用命令
6.3 多机协作的任务实现
6.3.1 实现细节
6.3.2 分布式通信协议
6.3.3 协议的实现
6.4 异常处理
6.4.1 操作系统的异常处理机制
6.4.2 C++中的异常处理机制
6.5 延伸阅读:MapReduce的设计理念
6.6 分布式系统与单一系统
第三部分 进阶实验
第7章 Python矩阵乘法
7.1 矩阵乘法的Python实现
7.1.1 神经网络中的矩阵乘法
7.1.2 Python实现
7.2 计时方法:函数调用
7.3 性能分析
7.4 Python的解释执行机制
第8章 C矩阵乘法
8.1 矩阵乘法的C语言实现
8.1.1 编译执行机制
8.1.2 编译器的工作流程
8.1.3 编译器的代码优化
8.2 编译器中的优化选项
8.3 性能分析
第9章 面向cache的优化
9.1 基础知识
9.1.1 存储体系结构
9.1.2 cache的工作原理
9.1.3 行主序与列主序
9.2 面向cache优化矩阵乘法
9.2.1 交换循环顺序
9.2.2 分块矩阵乘法
9.3 性能分析
9.3.1 高精度计时方法
9.3.2 perf工具
9.3.3 评价指标
9.3.4 性能对比结果
9.4 延伸阅读:进一步提升cache利用率的方法
第10章 多线程优化
10.1 多线程的矩阵乘法实现
10.1.1 矩阵分块方法
10.1.2 多线程实现矩阵乘法
10.2 并行化程序的设计思路
10.2.1 需求分析与算法确定
10.2.2 工作分解
10.2.3 选择编程模型
10.2.4 性能检查及优化
10.3 性能分析
10.3.1 选择工作负载
10.3.2 加速比的计算
10.3.3 算术平均和几何平均
10.4 并行化程序的优化
10.4.1 优化方案:调整线程数量
10.4.2 优化方案:改变矩阵划分方法
10.4.3 看似正确的优化方案
10.4.4 锁的实现
10.5 延伸阅读
10.5.1 缓存一致性协议
10.5.2 多线程编程—OpenMP
10.5.3 benchmark的制定
第11章 面向硬件加速器的优化
11.1 SIMD指令的原理
11.2 任务实现:基于SIMD指令的矩阵乘法
11.3 延伸阅读:面向SIMD的编译优化和智能优化
11.4 加速器的工作原理(以GPU为例)
11.5 任务实现:基于OpenCL的矩阵乘法
11.6 性能分析
11.7 数据分段分析
11.8 延伸阅读:设备间数据一致性维护与CXL协议
推荐阅读
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜