2017-2018-1 20155227 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
第六章
随机访问存储器
随机访问存储器分为:静态RAM(SRAM)和动态RAM(DRAM),静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多。
(1)静态RAM
SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的。
属性:它可以无限制地保持在两个不同的电压配置或状态之一。其他任何状态都是不稳定的。
特点:由于SRAM的双稳态特性,只要有电,它就会永远地保持它的值,即使有干扰,如电子噪音,来扰乱电压,当干扰消除,电路也能恢复到稳定值。
应用:高速缓存存储器,即可以在CPU芯片上,也可以在片下。
(2)动态DRAM
DRAM将每个位存储为对电容的充电。电容约为30×10-15F。
特点:对干扰特别敏感,当电容的电压被扰乱之后,它就永远不会恢复了。暴露在光线下会导致电容电压改变。
应用:主存以及图形系统的帧缓冲区。
非易失性存储器(ROM)
存储在ROM设备中的程序通常称为固件。
磁盘存储
-
磁盘构造:
由盘片构成,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料。盘片中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转,通常是5400~15000转每分钟(RPM)
每个表面是由一组称为磁道的同心圆组成;每个磁道被划分成一组扇区;每个扇区包含相等数量的数据位(通常是512字节);这些数据编码在扇区上的磁性材料中。扇区之间由一些间隙分隔开,这些间隙中不存在数据位。间隙存储用来标识扇区的格式化位。
-
磁盘容量:
一个磁盘上可以记录的最大位数称为它的最大容量/容量。
磁盘容量的决定因素:
记录密度:磁道一英寸的段可以放入的位数。 磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数。 面密度:记录密度与磁道密度的乘积。 磁盘是重点,涉及到后面的i/o和文件系统,做好相关练习
公式:
磁盘操作:
磁盘用读写头来读写存储在磁性表面的位,而读写头连接到一个转动臂一端。寻道就是通过沿着半径轴前后移动这个转动臂,使得驱动器可以将读写头定位在盘面上的任何磁道上。
访问时间:
寻道时间:为了读取某个目标扇区的内容,传动臂把读/写头首先定位到包含目标扇区的磁道上,所需时间即为寻道时间,约等于最大旋转时间。
旋转时间:定位到期望的磁道后,驱动器等待目标扇区的第一个位旋转到读/写头下。依赖于当读写头到达目标扇区时盘面的位置和磁盘旋转速度。最大旋转时间 = 1/最大旋转数率 。平均旋转时间 = (1/2) * 最大旋转时间。
传送时间:当目标扇区的第一个位位于读写头下时,驱动器就可以开始读或者写该扇区的内容。依赖于旋转速度和每条磁道的扇区数目。平均传送时间 = (1/最大旋转数率) * (1/每磁道的平均扇区数)
逻辑磁盘块
磁盘控制器:磁盘中一个小的硬件、固件设备,维护着逻辑块号和实际物理磁盘扇区之间的映射关系。
现代磁盘构造复杂,有多个盘面,这些盘面上有不同的记忆区。为了对操作系统隐藏这样的复杂性,现代磁盘将他们的构造呈现为一个简单的试图,一个B个扇区大小的逻辑块的序列,编号为0,1,...,B-1。
连接到I/O设备
通用串行总线(USB):包括键盘、鼠标、调制解调器、数码相机、游戏操纵杆、打印机、外部磁盘驱动器和固态硬盘等。
I/O总线比系统总线比存储器总线慢,但是它可以容纳种类繁多的第三方I/O设备。
访问磁盘
直接存储器访问:设备可以自己执行读或者写总线事务,而不需要CPU干涉的过程。这种数据传送称为DMA传送。
基本思想:中断会发信号到CPU芯片的一个外部引脚上。这会导致CPU暂停它当前正在做的工作,跳转到一个操作系统例程。这个程序会记录下I/O已经完成,然后将控制返回到CPU被中断的地方。
固态磁盘
固态硬盘是一种基于闪存的存储技术。
优点:由半导体构成,没有移动的部件;随机访问时间比旋转磁盘要快、能耗低、结实。
缺点:易磨损、更贵。
局部性
局部性:倾向于引用邻近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身,这种倾向性,被称为局部性原理。
两种不同形式:空间局部性、时间局部性。
硬件层:局部性原理允许计算机设计者通过引入高速缓存存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度。
操作系统级:局部性原理允许系统使用主存作为虚拟地址空间最近被引用块的高速缓存,用主存来缓存磁盘文件系统中最近被使用的磁盘块。
应用程序中:例如,Web浏览器将最近被引用的文档放在本地磁盘上。
存储器层次结构
一般而言,高层往底层走,存储设备变的更慢、更便宜、更大。
中心思想:每一层存储设备都是下一层的缓存。
缓存管理:
某种形式的逻辑必须管理缓存,而管理缓存的逻辑可以是硬件、软件,或者两者的集合。
高速缓存存储器
高速缓存是一个高速缓存组的数组,高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。
结构:
m:每个存储器地址有m位,形成M=2^m个不同的地址
S:这个数组中有S=2^s个高速缓存组
E:每个组包含E个高速缓存行
B:每个行是由一个B=2^b字节的数据块组成的
教材学习中的问题和解决过程
-
问题1:高速缓存和高速缓冲有什么区别?
-
问题1解决:
高速缓冲主要作用是在一定程度上减少对IO设备访问的次数,可以起到流量整形的作用,也提升了系统的性能,毕竟IO操作和内存和cpu的处理速度差距还是很大的,比如下载一个文件,是积攒到一定量才写回磁盘,而不是下载一个字节写回一个字节,这样过不了多久,磁盘就损坏了。
高速缓存主要作用是缓解处理数据的两端速度不匹配这种情况带来的时间上的浪费,这样做就加快了访问速度。比如大家都知道的cpu和内存之间的速度差异就特别大,所以需要cache缓存数据,以便提高速度。
总之一句话,高速缓冲主要解决了空间上的问题,而高速缓存主要解决了时间上的问题。 -
问题2: 为什么组索引不采用高位地址,而是中间的地址?
-
问题2解决:
这是因为如果采用高位地址,会导致连续的块被映射到相同的高速缓存块。
-
问题3:块和行的区别是什么?
-
问题3解决:
行是高速缓存中存储块以及其它信息的容器,块是高速缓存存储器和下一层存储器传输的基本单位。因为一行总是存储一个块,术语“行”和“块”总是互换使用
代码调试中的问题和解决过程
无
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
无
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
-[20155318](http://www.cnblogs.com/lxy1997/)
- 结对照片
- 结对学习内容
- 教材第六章内容
- XXXX
- ...
其他(感悟、思考等,可选)
通过这一章的学习,加深了对存储器的模式的了解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 133/133 | 1/1 | 8/8 | |
第三周 | 159/292 | 1/3 | 10/18 | |
第五周 | 121/413 | 1/5 | 10/28 | |
第七周 | 835/3005 | 2/7 | 10/38 | |
第八周 | 1702/4777 | 1/8 | 10/48 | |
第九周 | 1664/6441 | 3/11 | 10/58 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:15小时
-
实际学习时间:10小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)