![]()
内容推荐 本书作为一本初学编程者的入门书,帮助读者了解整个计算机系统背后的思想。全书共分为三部分:第一部分偏体系结构,主要讨论冯诺依曼体系架构下的CPU计算过程。第二部分偏操作系统,主要介绍同时运行多道程序的抽象。第三部分偏数据结构与计算理论,主要介绍红黑树与lambda表达式。 目录 目 录
第 1 部分 冯·诺依曼机器的雏形 第 1 章 电容器中的数据 \t3 1.1 电容器与晶体管 \t3 1.2 整数类型 \t9 1.3 字符与字符串 \t29 1.4 阅读材料\t36 第 2 章 指令计算的艺术 \t37 2.1 指令即数据\t38 2.2 URM:一种理论计算机 \t42 2.3 RISC-V 解释器\t45 2.4 读取指令:IF \t48 2.5 指令译码:ID \t55 2.6 执行指令:EX \t62 2.7 访问内存:MEM \t69 2.8 写回寄存器:WB \t72 2.9 解释执行样例程序\t74 2.10 阅读材料\t79 第 3 章 过程调用的魔法 \t80 3.1 控制转移与返回 \t80 3.2 栈:表达式求值器\t86 3.3 Prologue 与 Epilogue \t91 3.4 分配局部变量.\t97 3.5 参数传递与返回值\t99 3.6 返回值 \t104 3.7 递归函数\t106 3.8 阅读材料\t119 第 4 章 容量与速度的均衡\t120 4.1 多层次储存\t120 4.2 伟大的洞见:局部性原理\t124 4.3 组相联式映射 \t126 4.4 查找缓存行\t127 4.5 缓存行的状态 \t132 4.6 淘汰策略:LRU \t135 4.7 缓存中的 Load/Store \t137 4.8 计数器分析\t140 4.9 矩阵转置问题 \t142 4.10 线程级并行中的缓存一致性\t146 4.11 阅读材料\t154 第 2 部分 系统与应用的对话 第 5 章 虚拟与物理的内存\t159 5.1 从源代码到进程 \t159 5.2 进程的虚拟地址空间\t164 5.3 多级页表:虚拟地址映射\t168 5.4 共享页:写时复制的诡计\t182 5.5 页错误处理程序 \t184 5.6 按需分配/分页 \t186 5.7 页回收机制\t187 5.8 反向映射:从 PPN 到 PTE \t194 5.9 TLB:缓存.\t197 5.10 阅读材料\t199 第 6 章 同时运行多道程序\t200 6.1 进程的幻觉\t200 6.2 进程控制块\t202 6.3 中断与异常\t207 6.4 内核栈与 Trap frame \t214 6.5 切换虚拟内存 \t217 6.6 Fork 系统调用\t220 6.7 阅读材料\t225 第 3 部分 精彩纷呈的程序 第 7 章 红黑树索引.\t229 7.1 从 VMA 开始 \t229 7.2 二叉搜索树\t230 7.3 AVL 树.\t233 7.4 红黑树的平衡性 \t235 7.5 红黑树的结构体 \t237 7.6 链表的插入与删除\t239 7.7 红黑树的插入操作\t242 7.8 红黑树的旋转 \t245 7.9 红黑树的删除操作\t249 7.10 处理双黑结点 \t254 7.11 区间查询\t258 7.12 红黑树索引程序\t260 7.13 阅读材料\t266 第 8 章 λ 表达式求值器\t267 8.1 λ 表达式 \t267 8.2 抽象语法树\t271 8.3 α 归约与约束变量\t272 8.4 β 归约与二叉树操作\t276 8.5 β 范式与归约策略\t279 8.6 实现 λ 表达式求值器\t285 8.7 常见的 λ 表达式.\t292 8.8 递归函数与不动点组合子\t295 8.9 阅读材料\t300 附录 A 常用的 C 语言标准库函数\t302 附录 B RISC-V 指令释义\t307 参考书目\t311 |