摘要: 这一章偏向于I/O库的讲解,半数以上都是函数解析,概念相对于前几章较少。 具体函数的参数表和返回值请自行查阅。 10.1 Unix I/O 一个Linux文件就是一个m个字节的序列:B0,B1,…,Bk,…,Bm-1 所有的I/O设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当 阅读全文
posted @ 2020-10-27 23:06 Yoke_cc 阅读(138) 评论(0) 推荐(0)
摘要: 9.7 案例研究:Intel Core i7/Linux内存系统 9.7.1 Core i7地址翻译 9.7.2 Linux虚拟内存系统 Linux虚拟内存区域 Linux将虚拟内存组织成一些区域(也叫做段)的集合。一个区域(area)就是已经存在着的(已分配的)虚拟内存的连续片(chunk),这些 阅读全文
posted @ 2020-10-22 20:28 Yoke_cc 阅读(748) 评论(0) 推荐(0)
摘要: 虚拟内存的重要能力 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存 它为每个进程提供了一致的地址空间,从而简化了内存管理 它保护了每个进程的地址空间不被其他进程破坏。 学习虚拟内存的原因 虚拟内存是 阅读全文
posted @ 2020-10-22 20:26 Yoke_cc 阅读(132) 评论(0) 推荐(0)
摘要: 现代系统通过使控制流发生突变来对这些情况做出反应。一般而言,我们把这些突变称为异常控制流(Fxceptional Control Flow,ECF)。 理解ECF将帮助你理解重要的系统概念 理解ECF将帮助你理解应用程序是如何与操作系统交互的 理解ECF将帮助你编写有趣的新应用程序 理解ECF将帮助 阅读全文
posted @ 2020-10-16 18:50 Yoke_cc 阅读(166) 评论(0) 推荐(0)
摘要: 链接是将各种代码和数据片段搜集并组合成为一个单一文件的过程。 链接器使得分离编译成为可能。 学习链接的目的 理解链接器将帮助你构造大型程序 理解链接器将帮助你避免一些危险的编程错误 理解链接器将帮助你理解语言的作用域规则是如何实现的 理解链接器将帮助你理解其他重要的系统概念 理解链接器将使你能够利用 阅读全文
posted @ 2020-10-15 15:34 Yoke_cc 阅读(347) 评论(0) 推荐(0)
摘要: 6.4 高速缓存存储器 6.4.1 通用的高速缓存存储器组织结构 高速缓存存储器结构 6.4.2 直接映射高速缓存 每组只有一行的高速缓存称为直接映射高速缓存 直接映射高速缓存中的组选择 直接映射高速缓存中的行匹配 直接映射高速缓存中的字选择 由组选择和行匹配确定字 直接映射高速缓存中的不命中时的行 阅读全文
posted @ 2020-09-20 21:14 Yoke_cc 阅读(403) 评论(0) 推荐(0)
摘要: 存储器系统是一个具有不同容量,成本和访问时间的存储器的层次结构。 局部性原理 6.1 存储技术 6.1.1 随机访问存储器 随机访问存储器RAM分为两类 静态SRAM 每个位存储在一个双稳态的存储器单元 动态DRAM 每个位存储为对一个电容的充电 对干扰敏感且不恢复 传统的DRAM 每个DRAM芯片 阅读全文
posted @ 2020-09-20 21:13 Yoke_cc 阅读(121) 评论(0) 推荐(0)
摘要: 前言 写程序的目标 正确工作 可读性好 运行效率 必须选择一组适当的算法和数据结构 必须编写出编译器能够有效优化以转换成高效可执行代码的源代码 即使是最好的编译器也受到妨碍优化的因素的阻碍,妨碍优化的因素就是程序行为中那些严重依赖于执行环境的方面。 程序优化 第一步就是消除不必要的工作,让代码尽可能 阅读全文
posted @ 2020-09-18 19:12 Yoke_cc 阅读(406) 评论(0) 推荐(0)
摘要: 4.5.5 流水线冒险 当相邻指令存在相关时可能会导致流水线产生计算错误,称为冒险 数据冒险(优先级高) 数据相关:下一条指令会使用到这一条指令计算出的结果 数据冒险的类型 控制冒险 控制相关:一条指令要确定下一条指令的位置时 在周期7开始以后,两条irmovq都已经通过写回阶段,所以寄存器文件保存 阅读全文
posted @ 2020-08-18 21:59 Yoke_cc 阅读(384) 评论(0) 推荐(0)
摘要: 4.3.4 SEQ阶段的实现 HCL描述中使用的常数值 nop指令只是简单的经过各个阶段,除了要将PC加1,不进行任何处理 halt指令使得处理器状态被设置为HLT,导致处理器停止运行 SEQ不同阶段的HCL实现 取指阶段 imem_error指明指令地址是否合法 根据icode的值计算三个1位的信 阅读全文
posted @ 2020-08-18 21:57 Yoke_cc 阅读(391) 评论(0) 推荐(0)