![](https://img-blog.csdnimg.cn/20210815181118797.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机系统原理
文章平均质量分 96
记录《深入理解计算机系统》第3版、《程序员自我修养——链接、装载与库》等系统软件读书笔记
yelvens
我很懒,什么都没留下…
展开
-
位运算实战技巧总结
两个负数相加可能会产生负溢出,负溢出结果会变为正数。如果两个数x和y符号相同,符号位异或结果为0;符号不同,符号位异或结果为1。如果一个正数是2的次幂,则这个数的二进制表示中只含有一个1。循环消去,当最后x值为0时,便可以求出二进制中1的个数。会找到第一个大于x的数,且它正好是n的整数倍。则是先对b按位取反,再将结果与a按位与运算。是最高权重,如果x,y的和数据溢出,则和模。运算的二进位结果,相异为1,相同为0。设整数n类型为int_8,值为3,则。成立,n为偶数,否则为奇数。比x,y中的任何一个值都小。原创 2023-02-15 18:11:24 · 444 阅读 · 0 评论 -
CSAPP:第十章——系统级I/O
系统级I/O一、Unix IO二、文件三、打开和关闭文件四、读和写文件五、用RIO包健壮地读写六、读取文件元数据七、读取目录内容八、共享文件九、I/O重定向十、该使用那些I/O函数一、Unix IO二、文件三、打开和关闭文件四、读和写文件五、用RIO包健壮地读写六、读取文件元数据七、读取目录内容八、共享文件九、I/O重定向十、该使用那些I/O函数...原创 2021-06-16 20:15:23 · 424 阅读 · 0 评论 -
CSAPP:第九章——虚拟内存(下)
虚拟内存(下)九、动态内存分配9.1 malloc 和 free 函数9.2 为什么要使用动态内存分配9.3 分配器的约束条件和目标9.4 碎片9.5 隐式空间链表9.6 放置已分配的块9.7 分割空闲块9.8 合并空闲块9.9 带边界标记的合并9.10 实现一个简单分配器9.11 显式空闲链表9.12 分离的空闲链表十、垃圾收集10.1 垃圾收集的基本知识10.2 Mark & Sweep 垃圾收集器10.3 C程序的保守 Mark & Sweep十一、C程序中常见的与内存有关的错误九、原创 2021-06-11 09:15:15 · 779 阅读 · 2 评论 -
CSAPP:第九章——虚拟内存(上)
虚拟内存一、物理和虚拟寻址二、地址空间三、虚拟内存作为缓存的工具四、虚拟内存作为内存管理的工具五、虚拟内存作为内存保护的工具六、地址翻译七、Linux 内存系统八、内存映射九、动态内存分配十、垃圾收集十一、C程序中常见的与内存有关的错误一、物理和虚拟寻址二、地址空间三、虚拟内存作为缓存的工具四、虚拟内存作为内存管理的工具五、虚拟内存作为内存保护的工具六、地址翻译七、Linux 内存系统八、内存映射九、动态内存分配十、垃圾收集十一、C程序中常见的与内存有关的错误...........原创 2021-05-25 21:13:47 · 1596 阅读 · 0 评论 -
CSAPP:第八章——异常控制流
异常控制流一、异常1.1 异常处理1.2 异常的类别1.3 Linux/x86-64 系统中的异常二、进程2.1 逻辑控制流2.2 并发流2.3 私有地址空间2.4 用户模式和内核模式2.5 上下文切换三、系统调用错误处理四、进程控制4.1 获取进程 ID4.2 创建和终止进程4.3 回收子进程4.4 让进程休眠4.5 加载并运行程序4.6 利用 fork 和 execve 运行程序五、信号5.1 信号术语5.2 发送信号5.3 接受信号5.4 阻塞和解除则塞信号5.5 编写信号处理程序5.6 同步流以避免原创 2021-05-11 21:39:09 · 1496 阅读 · 0 评论 -
CSAPP:第七章——链接
文章目录什么是连接?一、编译器驱动程序二、静态链接三、目标文件四、可重定位目标文件五、符号和符号表六、符号解析6.1 链接器如何解析多重定义的全局符号6.2 与静态库链接6.3 链接器如何使用静态库来解析引用七、重定位八、可执行目标文件九、加载可执行目标文件十、动态链接共享库十一、从应用程序中加载和链接共享库十二、位置无关代码十三、库打桩机制什么是连接?链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程。这个文件可被加载(拷贝)到内存中并执行:链接可以执行于编译时,也就是源代码翻译成机器原创 2021-05-07 21:20:10 · 1974 阅读 · 1 评论 -
CSAPP:第六章——存储器层次结构
文章目录一、存储技术1.1 随机访问存储器1.1 随机访问存储器二、局部性三、存储器层次结构四、高速缓存存储器五、编写高速缓存有好的代码六、高速缓存对程序性能的影响如果数据在寄存器中,指令执行期间,访问需要0个始终周期;在高速缓存中,需要4~75个周期;在主存中,需要上百个周期;在磁盘中,大约要几千万个周期。一、存储技术1.1 随机访问存储器随机访问存储器(Random-Access Memory,RAM)分两类:静态(SRAM)和动态(DRAM)。都具有易失性,断电后数据丢失。SRAM比DR原创 2022-03-28 09:04:33 · 1258 阅读 · 0 评论 -
CSAPP:第四章——处理器体系结构(下)
文章目录四、流水线的通用原理4.1 计算流水线4.2 流水线操作的详细说明4.3 流水线的局限性4.4 带反馈的流水线系统五、Y86-64的流水线实现5.1 SEQ+:重新安排计算阶段5.2 插入流水线寄存器5.3 对信号进行重新排列和标号5.4 预测下一个PC5.5 流水线冒险5.6 异常处理5.7 PIPE各阶段的实现5.8 流水线控制逻辑5.9 性能分析5.10 未完成工作四、流水线的通用原理4.1 计算流水线4.2 流水线操作的详细说明4.3 流水线的局限性4.4 带反馈的流水线系统五、原创 2021-12-28 19:39:16 · 1436 阅读 · 0 评论 -
CSAPP:第四章——处理器体系结构(上)
文章目录概述一、Y86-64指令体系结构1.1 程序员可见状态1.2 Y86-64指令1.3 指令编码1.4 Y86-64异常1.5 Y86-64程序1.6 一些Y86-64指令的详情二、逻辑设计和硬件控制语言HCL三、Y86-64的顺序实现四、流水线的通用原理五、Y86-64的流水线实现概述指令被编码为由一个或多个字节序列组成的二进制格式,一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture,ISA),如LoongArch ISA指令a原创 2021-10-19 20:06:47 · 1958 阅读 · 0 评论 -
CSAPP:第二章——信息的表示和处理
文章目录一、信息存储1.1 十六进制表示法1.2 字数据大小1.3 寻址和字节顺序1.4 十六进制表示法1.5 十六进制表示法二、整数表示三、整数运算四、浮点数一、信息存储机器级程序将存储器视为一个非常大的字节数组,称为虚拟内存。内存的每个字节由一个唯一的数字表示,称为它的地址,所有可能地址的集合称为虚拟地址空间。顾名思义,这个虚拟地址空间只是展现给机器级程序的概念性影像,实际的实现是将动态随机访问存储器、闪存、磁盘、特殊硬件和操作系统结合起来,为程序提供一个看上去统一的字节数组。【注】 C语言中一个原创 2021-01-31 13:24:31 · 854 阅读 · 0 评论 -
CSAPP:第一章——计算机系统漫游
计算机系统漫游一、所谓信息,就是位+上下文二、程序被编译成不同的格式三、处理器读并解释存储在内存中的指令四、高速缓存五、存储设备层次结构六、操作系统管理硬件七、系统之间利用网络通信一、所谓信息,就是位+上下文系统中的所有信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据,都是由一串比特序列(也可以说是字节序列,一个字节八个位,即八比特)表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如,在不同的上下文中,一个同样的字节序列可能表示一个整数、浮点数、字符串或原创 2020-12-31 00:42:23 · 531 阅读 · 0 评论 -
计算机网络基础篇
文章目录计算机网络体系分类:1、物理层2、数据链路层3、网络层(重点)4、运输层(重点)5、应用层6、附加面试题计算机网络体系分类:计算机网络整个体系有两个大的分类:一个是国际组织制定的OSI七层模型,一种是实际使用中的TCP/IP四层模型。1、物理层物理层主要是实现主机和网络之间的物理连接,规定一些与传输媒体接口有关的一些特性。【如果你网络知识原本掌握的就可以,你现在的时间比较紧...原创 2019-08-29 15:18:37 · 1389 阅读 · 0 评论