csapp
OneGoal
这个作者很懒,什么都没留下…
展开
-
深入理解计算机操作系统第二章家庭作业
2.55 编译运行下列代码,并且确定机器字节顺序。 #include <stdio.h> typedef unsigned char *byte_pointer; void show_bytes(byte_pointer start, size_t len) { // size_t == unsigned 8bit integer size_t i; for (i...原创 2019-06-12 06:41:33 · 1050 阅读 · 0 评论 -
csapp3e 第五章 优化程序性能
前言 高效程序:1. 适当的算法和数据结构。1. 将源代码编码成能够被编译器优化成高效可执行代码(消除连续的函数调用,消除不必要的内存引用)。3, 将运算量特别大的计算任务分成多个部分,这些部分可在多核和多处理器的某种组合上并行计算(第12章)(展开循环,多个累计变量,重新结合,条件转移)。 5.1优化编译器的能力和局限性 指针与指针操作,函数调用一般很少优化。因...原创 2019-07-18 21:29:59 · 632 阅读 · 0 评论 -
csapp3e 第六章 存储器层次结构
前言 事实上模型复杂,包含:寄存器,cache,主存,SSD,磁盘,磁带,网盘。抽象来看,层次储存像是个有着最高层次的速度和最低层次的成本的存储池。 访问所需周期:寄存器,0;cache,4~75;主存,几百;磁盘,几千万; 局部性可以使得在 Core i7 上,使得两个矩阵相乘的速度差40倍。 本章会讲:SRAM,DRAM,ROM,...原创 2019-07-16 17:48:07 · 312 阅读 · 0 评论 -
CSAPP 第10章 系统级 I/0
输入输出是主存和外部设备(例如磁盘驱动器、终端、网络等)之间复制数据的过程。语言都是高级IO,语言通过Linux内核提供的Unix IO实现高级IO。 为什么学习unix io:1. 理解它与其他系统概念之间的循环依赖。2. 有些功能高级io无法实现,必须系统级io。 10.1 Unix I/O 622 一致的方式:打开文件、进程开始都打开三个标准文件、改变当前的文件光标位置、读写文件(读超...原创 2019-07-30 17:05:08 · 210 阅读 · 0 评论 -
csapp3e 第七章 链接
链接 链接步骤:符号解析,同节合并,确定地址,修改引用。 7.1编译器驱动程序 7.2静态链接 链接器完成连两个主要任务,1. 符号(函数,全局变量,静态变量)解析,2. 重定位。 符号解析:编译器将定义的符号存放在一个符号表(symbol table)中,将每个符号的引用都与一个确定的符号定义建议关联。 重定位:将多个代码段和数...原创 2019-07-22 13:08:23 · 411 阅读 · 0 评论 -
CSAPP 第8章 异常控制流
第8章 异常控制流 内容太多,直接看书去吧 异常控制流是操作系统用来实现I/O、进程和虚拟内存的基本机制。 应用程序利用一个叫做陷进或者系统调用的异常控制流形式来向操作系统请求服务。 异常控制流是实现并发的基本机制。 非本地跳转是一种应用层异常控制流,在C中通过setjump和longjump函数提供的。 之前都是学应用如何和硬件交互,本周介绍应用和操作系统交互。这些交互都围绕异常...原创 2019-07-26 16:23:21 · 302 阅读 · 0 评论 -
csapp unix I/0 RIO 精简 web 服务器
系统调用 read、write #include <unistd.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> #include <fcntl.h> void unix_error(char *message) { fprintf(stderr, "%s...原创 2019-08-05 09:46:28 · 461 阅读 · 0 评论