2018-2019 20165203 《信息安全系统设计基础》第五周学习总结
教材学习内容总结
重要概念
- 存储器系统:一个具有不同容量成本和访问时间的存储设备的层次结构。
- 高速缓存存储器------主存储器中数据和指令的缓冲区域------磁盘------通过网络连接其他机器磁盘或磁带上的数据的缓冲区域
- 存储器层次结构:cpu存储器----高速缓存----主存----磁盘(访问速率依次降低)
存储技术
随机访问存储器(RAM)
| 静态RAM |
快、贵 |
SRAM |
作为高速缓存存储器,可以在cpu上,cpu下 |
<=n兆字节 |
| 动态RAM |
慢、便宜 |
DRAM |
作为主存以及图形系统的帧缓冲区 |
几百或几千兆字节 |
SRAM:每个位存储在双稳态的存储单元
只要有电,永远保持它的值,有干扰,干扰消除,电压会恢复到稳定值
DRAM:每个位存储为对一个电容充电
存储器非常敏感,电压被扰乱,永远不会被恢复
磁盘存储
- 磁盘构造:由盘片构成。
- 磁盘驱动器:柱面

- 磁盘容量:一个磁盘上可以记录的最大位数
- 面密度(bit/平方英寸) = 记录密度*磁道密度(与容量有关)
- 计算磁盘容量的公式:


- 磁盘操作:
- 依赖于读/写头以前的位置和传动臂在盘面上移动的速度
- 旋转时间:一旦读/写头定位到了期望的磁道,驱动器等待目标扇区的第一个位置转到读/写头下。
- 最大旋转延迟公式:

- 传送时间:当目标扇区的第一个位位于读/写头下时,驱动器就可以开始读或者写该扇区的内容了。
- 平均传送时间公式:

- 逻辑磁盘块:磁盘控制器----读一个磁盘扇区的数据到主存,操作系统会发送一个命令到磁盘控制器,让它读某个逻辑块号。
- 连接I/O设备:通用串行总线、图形卡、主机总线适配器
- 访问磁盘:如图所示

局部性
- 局部性:倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项的本身。
- 分类:时间局部性和空间局部性
- 对程序数据引用的局部性
- 时间局部性:书中的例子sumvec,因为sum可以被重复使用
- 取指令的局部性
存储器层次结构
存储器的层次结构:见下图

- 存储器层次结构中的缓存
- 存储器结构的中心思想:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。(层次结构中的每一层都缓存来自较低一层的数据对象)
- 存储器被划分成连续的数据对象组块,称为块,每个块都有唯一的地址或名字。
- 缓存命中:程序需要在第k+1层的某个数据对象d时,它首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,那就是缓存命中。
- 缓存不命中:第k层中没有缓存数据对象d,需要在第k层中替换或驱逐某个牺牲块,用到替换策略。
高速缓存存储器
- 高速缓存的组织结构:
- 高速缓存是一个高速缓存组的数组。每个组包含一个或多个行,每个行包含一个有效位,一些标记位,以及一个数据块;高速缓存的结构将m个地址划分成了t个标记位、s个组索引位和b个块偏移位。如图所示
直接映射高速缓存(E=1 只有一行),如图所示

- 工作过程(被请求字的过程)
教材学习中的问题和解决过程
看到教材内容,如图所示
自己总结了一下破坏空间局部性的跳转指令,以后写程序时可以谨慎使用。
解答:C语言:goto语句
汇编语言: 跳转指令分三类:
一、无条件跳转: JMP;
二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);
三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了.
CMP 指令相当于减法操作, 不影响任何寄存器, 执行后: 如果相等则 ZF=1, 否则ZF=0
参考:跳转指令总结
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1:Y86-64中"addq %rax, %rcx"对应的机器码是()
A .6010
B .6001
C.60010000000000000000
D .00000000000000006001
E .00000000000000006010
F .60100000000000000000
答案:B
解析:根据教材中的图,当指令代码部分是6时,不含有8字节的常数字,故选B
- 错题2:Y86-64中"rrmovq %rax, %rcx"对应的机器码是()
A .2001
B .2010
C .20010000000000000000
D .00000000000000002001
E .00000000000000002010
F .20100000000000000000
答案:A
解析:根据教材中的图,当指令代码部分是2时,不含有8字节的常数字,故选A
以上两题的错因均为没有注意常数字的问题,以后要多加注意。
其他(感悟、思考等,可选)
本章是本课的重点,我主要学习了存储器的层次结构以及他们的工作模式,这也让我更加深入理解了计算机的工作过程。其中,关于局部性的学习尤为有帮助,可以让我们在今后编写代码程序时,优化我们的程序,希望自己以后多多加油。
学习进度条
| 目标 |
5000行 |
30篇 |
400小时 |
|
| 第一周 |
200/200 |
2/2 |
20/20 |
|
| 第二周 |
300/500 |
2/4 |
18/38 |
|
| 第三周 |
500/1000 |
3/7 |
22/60 |
|
| 第四周 |
300/1300 |
2/9 |
30/90 |
|
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:XX小时
实际学习时间:XX小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
2018-2019 20165203 《信息安全系统设计基础》第五周学习总结
原文:https://www.cnblogs.com/20165203-xyx/p/9866125.html