第六章 存储器层次结构在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置。
虽然是一个行之有效的模型,但没有反应现代系统实际工作方式。
实际上,存储器系统(memory system)是一个具有不同容量,成本和访问时间的存储设备的层次结构。
CPU寄存器保存着最常用的数据。(0周期)
靠近CPU的小的,快速的高速缓存存储器(cache memory)作为一部分存储在...
分类:
移动开发 时间:
2016-05-23 15:19:24
阅读次数:
405
学了这么久的计算机,并发与并行的概念理解的一直不够透彻。考研复习那会儿,以为自己懂了,然而直到看了CSAPP才算是真正明白了这俩个概念。 并发(concurrency) 流X和流Y并发运行是指,流X在流Y开始之后结束之前开始运行,或者流Y在流X开始之后结束之前开始运行。 如图,进程A与进程B并发,进 ...
分类:
移动开发 时间:
2016-05-11 23:41:03
阅读次数:
210
csapp.h其实就是一堆头文件的打包,在http://csapp.cs.cmu.edu/public/code.html 这里可以下载。这是《深入理解计算机系统》配套网站。 在头文件的#end if前面加上一句#include “csapp.c”,因为那个头文件要把csapp.c文件包含了进去. ...
分类:
移动开发 时间:
2016-05-11 21:34:38
阅读次数:
1007
异常控制流
控制转移
控制流
系统必须能对系统状态的变化做出反应,这些系统状态不是被内部程序变量捕获,也不一定和程序的执行相关。现代系统通过使控制流 发生突变对这些情况做出反应。我们称这种突变为异常控制流( Exceptional Control Flow,ECF)异常控制流发生在系统的各个层次。理解ECF很重要
理解ECF将帮助你理解重要的系统概念。
理解ECF将帮助你理解应用程序如何与操作系统交...
分类:
移动开发 时间:
2016-05-11 09:39:13
阅读次数:
486
信息的表示和处理2.1 信息存储
机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器。
存储器的每个字节由一个唯一的数字表示,称为它的地址
所有可能地址的集合称为虚拟地址空间
2.1.1 十六进制表示法python 中十六进制的转变方法a=15;
print(hex(a))//print:0xf
2.1.2 字
字长决定虚拟地址空间的最大大小
32位的是4G(2^32)
2.1.3 数据大小...
分类:
移动开发 时间:
2016-05-09 07:00:01
阅读次数:
257
在做csapp的malloc实验,一开始是按照书上的隐式链表法,发现得分很低。这种方法确实很挫,需要遍历一遍以找到合适的空闲块。于是我想到《STL源码剖析》中stl的内存池,感觉应该可以用类似的方法做,因为malloc要做的事情实际就是为了防止内存碎片和减少系统调用,实际就是一个内存池。但是书上介绍 ...
分类:
其他好文 时间:
2016-05-01 19:15:06
阅读次数:
251
转载自 http://condor.depaul.edu/glancast/374class/docs/csapp_compile_guide.html Compiling with the CSAPP library The csapp collection of useful auxilliar ...
分类:
移动开发 时间:
2016-04-21 20:27:58
阅读次数:
453
CSAPP缓冲区溢出攻击实验(上) 下载实验工具。最新的讲义在这。网上能找到的实验材料有些旧了,有的地方跟最新的handout对不上。只是没有关系,大体上仅仅是程序名(sendstring)或者參数名(bufbomb -t)的差异,不影响我们的实验。 1.实验工具 1.1 makecookie 后面 ...
分类:
移动开发 时间:
2016-04-04 13:15:02
阅读次数:
626
CSAPP Tiny Web 服务器源码分析 运行结果
1. Web基础web客户端和服务器之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议)。一个web客户端(即浏览器)打开一个到服务器的因特网连接,并且请求某些内容。服务器响应所请求的内容,然后关闭连接。浏览器读取这些内容,并把它显示在屏幕上。 对于web客户端和服务器而言,内容是与一个MIME类型相关的字节序列。常见的MIME类型:...
分类:
移动开发 时间:
2016-03-26 06:57:12
阅读次数:
355
一、背景 csapp的网络编程粗略的介绍了关于网络编程的一些知识,在最后的一节主要就实现了一个小型的Webserver。这个server名叫Tiny,它是一个小型的可是功能齐全的Webserver。在短短300行左右的代码中,结合了很多思想,比如,进程控制,unix I/O、套接字、H...
分类:
Web程序 时间:
2016-01-08 22:05:28
阅读次数:
381