-
内容大纲
本书尽可能介绍一个编程初学者所需了解的知识,特别着重于这些知识背后的动机。全书共8章,分为3部分。第1部分偏体系结构,主要讨论冯·诺依曼体系架构下的CPU计算过程。第2部分偏操作系统,主要介绍同时运行多道程序的抽象。第3部分偏数据结构与计算理论,主要介绍红黑树与λ表达式。
本书提供了不少代码供读者参考,代码量比较大的部分有:一个支持部分RISC-V指令的解释器,一个高速缓存模拟器,一个红黑树管理器,以及一个无类型的λ表达式解释器。感兴趣的读者请尽情改造这些代码,让它们更加健壮,可以畅快地在计算机中运行。 -
作者介绍
Yangmin,为赵阳旻的笔名,现就职于微软(Microsoft)M365部门,负责网络服务的开发与维护。毕业于复旦大学计算机专业,卡内基梅隆大学软件工程专业。 -
目录
第1部分 冯·诺依曼机器的雏形
第1章 电容器中的数据
1.1 电容器与晶体管
1.2 整数类型
1.3 字符与字符串
1.4 阅读材料
第2章 指令计算的艺术
2.1 指令即数据
2.2 URM:一种理论计算机
2.3 RISC-V解释器
2.4 读取指令:IF
2.5 指令译码:ID
2.6 执行指令:EX
2.7 访问内存:MEM
2.8 写回寄存器:WB
2.9 解释执行样例程序
2.10 阅读材料
第3章 过程调用的魔法
3.1 控制转移与返回
3.2 栈:表达式求值器
3.3 Prologue与Epilogue
3.4 分配局部变量
3.5 参数传递与返回值
3.6 返回值
3.7 递归函数
3.8 阅读材料
第4章 容量与速度的均衡
4.1 多层次储存
4.2 伟大的洞见:局部性原理
4.3 组相联式映射
4.4 查找缓存行
4.5 缓存行的状态
4.6 淘汰策略:LRU
4.7 缓存中的Load/Store
4.8 计数器分析
4.9 矩阵转置问题
4.10 线程级并行中的缓存一致性
4.11 阅读材料
第2部分 系统与应用的对话
第5章 虚拟与物理的内存
5.1 从源代码到进程
5.2 进程的虚拟地址空间
5.3 多级页表:虚拟地址映射
5.4 共享页:写时复制的诡计
5.5 页错误处理程序
5.6 按需分配/分页
5.7 页回收机制
5.8 反向映射:从PPN到PTE
5.9 TLB:缓存
5.10 阅读材料
第6章 同时运行多道程序
6.1 进程的幻觉
6.2 进程控制块
6.3 中断与异常
6.4 内核栈与Trapframe
6.5 切换虚拟内存
6.6 Fork系统调用
6.7 阅读材料
第3部分 精彩纷呈的程序
第7章 红黑树索引
7.1 从VMA开始
7.2 二叉搜索树
7.3 AVL树
7.4 红黑树的平衡性
7.5 红黑树的结构体
7.6 链表的插入与删除
7.7 红黑树的插入操作
7.8 红黑树的旋转
7.9 红黑树的删除操作
7.10 处理双黑结点
7.11 区间查询
7.12 红黑树索引程序
7.13 阅读材料
第8章 λ表达式求值器
8.1 λ表达式
8.2 抽象语法树
8.3 α归约与约束变量
8.4 β归约与二叉树操作
8.5 β范式与归约策略
8.6 实现λ表达式求值器
8.7 常见的λ表达式
8.8 递归函数与不动点组合子
8.9 阅读材料
附录A 常用的C语言标准库函数
附录B RISC-V指令释义
参考书目
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...