2017-2018-1 20155320 《信息安全系统设计基础》第九周学习总结
参考老师提供的教材内容导读
教材学习内容总结
- 随机访问存储器(RAM)分为两类:静态和动态的
- 静态RAM(SRAM):快,作为高速缓存存储器。(几百几千兆)
动态RAM(DRAM):作为主存,图形系统的帧缓冲区。(<=几兆)
2.静态RAM:具有双稳定状态,它可以无期限地保持在两个不同的电压配置(状态)其中的一个。也可以保持在亚稳定状态,但这个状态易被干扰。由于它具有双稳定性,所以即使有干扰,当干扰消除时,它能很快地恢复到稳定值。
动态RAM
DRAM芯片封装在内存模块中,将每个位存储为对一个电容充电。对干扰非常敏感,电容的电压被干扰之后就永远不会恢复了。
- 非易失性存储器:非易失性的意思断电后不会丢失信息。SRAM、DRAM都是易失性存储器。
- ROM:只读存储器(read-only memory)它有的类型既能读也能写,历史原因这样称呼它。
ROM分类:(依据能被重新编程、写的次数和 编程所用的机制)
PROM:只能被编程一次。
可擦写可编程ROM(EPROM):被编程105次
-
闪存:基于EEPROM,为大量的电子设备提供快速持久的非易失性存储。
-
固件:存储在ROM设备中的程序。
总线
- 总线是一组并行的导线,能够携带地址,数据和控制信号。
1.系统总线——连接CPU和I/O桥
2.存储器总线——连接I/O桥和主存
3.I/O总线:I/O桥将系统总线的电子信号翻译成存储器总线的电子信号,也将系统总线和存储器总线连接到I/O总线
-
CPU与主存之间的数据传送:通过总线的共享电子电路在处理器和DRAM主存来回往返。
-
总线事务:读事务(主存传送数据到CPU,即cpu从主存读)、写事务(CPU传送到主存)
-
磁盘是由盘片构成的,每个盘片有两面或者称为表面,每个表面由一组成为磁道的同心圆组成
-
磁盘容量由记录密度、磁道密度、面密度决定
-
对扇区的访问时间有三个主要部分:寻道时间、旋转时间、传送时间
-
逻辑磁盘块:内存可以看成字节数组、磁盘可以看成块数组
-
I/O总线连接了CPU,主存和I/O设备
-
磁盘是由盘片构成的,每个盘片有两面或者称为表面,每个表面由一组成为磁道的同心圆组成
-
磁盘容量由记录密度、磁道密度、面密度决定
-
对扇区的访问时间有三个主要部分:寻道时间、旋转时间、传送时间
-
逻辑磁盘块:内存可以看成字节数组、磁盘可以看成块数组
-
I/O总线连接了CPU,主存和I/O设备
-
局部性原理:程序倾向于引用邻近最近引用过的数据项或者就是数据项本身。
-
时间局部性:存储器位置多次被引用。
-
空间局部性:存储器位置附近的位置在不远的将来被引用。
-
步长为k的引用模式:一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式,一般来说,随着步长增加,空间局部性下降
-
取指令的局部性
-
对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好
-
存储器层次结构:
-
存储器层次结构中的缓存
高速缓存:下一层(对它本身来说更大更慢的设备)的缓冲区域。使用高速缓存的过程叫做缓存。
-
存储器结构层次的中心思想:每层存储设备都是下一层的“缓存”。
-
从高层往底层走,存储设备变得更慢、更便宜、更大
层次结构中的每一层都缓存来自较低一层的数据对象 -
在任何时刻,第k层的缓存包含第k+1层块的一个子集的拷贝。数据总是以块大小为传送单元在第k层和第k+1层之间来回拷贝的
缓存不命中时,第k层缓存会从第k+1层缓存中取出包含d的那个块。如果第k层缓存已满,就可能会覆盖现存的一个块 -
替换(覆盖、驱逐)策略
随机替换策略-随机牺牲一个块
最近最少被使用替换策略LRU-牺牲最后被访问的时间距离现在最远的块
-
缓存命中:程序需要K+1层的数据对象d,并且d刚好在K层的一个块中。
-
缓存不命中:与缓存命中相反
-
强制性不命中:上一层缓存是空的导致的不命中。
-
冲突不命中:缓存够大,由于严格的放置策略会使K+1层不同对象映射到K层同一个块引起的不命中。
-
容量不命中:缓存不够大引起的不命中。
- 高速缓存是一个有S个高速缓存组的数组,每个数组包含E个高速缓存行,每个行包含一个有效位,一些标记位t,一个数据块B。
- 标记位t=m-(b+s)唯一地标识存储在这个高速缓存行中的块,有效位指明这个行是否包含有意义的信息。
- 高速缓存的结构将m个地址划分成了t个标记位、s个组索引位和b个块偏移位
- 高速缓存的大小C = S * E * B
- 高速缓存确定一个请求是否命中,然后抽取出被请求的字的过程,分为三步
1、组选择
2、行匹配
3、字抽取
- 一个1 < E < C/B的告诉缓存通常称为E路组相联高速缓存
- 一个全相联高速缓存是由一个包含所有高速缓存行的组(E = C/B)组成的
教材学习中的问题和解决过程
-
问题1:磁盘和内存有什么关系
-
问题1解决方案:他们的共同点是都是数组,区别是磁盘是块数组,内存是字节数组
代码调试中的问题和解决过程
-
问题1:在编译运行时出现提示权限不够
-
问题1解决方案:后来发现在命令前加上sudo,给予root权限就可以了
-
问题2:其他问题在上一篇博客里
代码托管
结对及互评
本周结对学习情况
- 20155326
- 结对照片
-
结对学习内容
- 第六章
其他(感悟、思考等,可选)
本周学习的内容主要与系统的存储管理相关,实践内容相对较少,但是实验和pwd的实现难度较大,其中有许多函数没有用过,需要自己学习,但感觉受益匪浅。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 200小时 | |
第一周 | 5/5 | 1/1 | 15/15 | |
第二周 | 1/2 | 23/38 | ||
第三周 | 206/327 | 1/3 | 28/66 | |
第四周 | 206/327 | 1/4 | 10/77 | |
第五周 | 285/568 | 1/5 | 20/97 | 主要学习了汇编及反汇编的相关知识 |
第六周 | 160/683 | 3/8 | 20/107 | |
第七周 | / | 2/10 | 20/127 | 第四章学习内容和第二次实验 |
第八周 | 2/12 | 22/149 | 第十一章、第十二章 | |
第九周 | 408/ 2582 | 3/15 | 21/170 | 第六章内容、第三次实验、课后pwd的实现 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 | ||||
耗时估计的公式 | ||||
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。 |
-
计划学习时间:20小时
-
实际学习时间:21小时
-
改进情况:第六章内容、第三次实验、课后pwd的实现
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)