2017-2018-1 20155324 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
RAM
随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储单元的工作原理,随机存储器又分为静态随机存储器(英文:Static RAM,SRAM)和动态随机存储器(英文Dynamic RAM,DRAM)。
- 随机存取
- 易失性
- 对静电敏感
- 访问速度
- 需要刷新(再生)
ROM
ROM 是 ROM image(只读内存镜像)的简称,常用于手机定制系统玩家的圈子中。 一般手机刷机的过程,就是将只读内存镜像(ROM image)写入只读内存(ROM)的过程。 常见的 ROM image 有 img、zip 等格式,前者通常用 fastboot 程序通过数据线刷入(线刷),后者通常用 recovery 模式从 sd刷入(卡刷),故 img 镜像也被称为线刷包,zip 镜像也被称为卡刷包。 国内的定制系统开发者,经常会陷入自己的产品究竟是应该称为 OS还是 UI的争论,为了避免此类争论和表示谦虚,会自称为 ROM。很多定制系统玩家也会统一将定制系统称为 ROM。
磁盘
计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。
文件系统:曾将圆形的磁性盘片装在一个方形的密封盒子里。有了磁盘之后,人们使用计算机就方便多了,不但可以把数据处理结果存放在磁盘中,还可以把很多输入到计算机中的数据存储到磁盘中,这样这些数据可以反复使用,避免了重复劳动。可是不久之后,人们又发现了另一个问题:人们要存储到磁盘上的内容越来越多,众多的信息存储在一起,很不方便。这样就导致了文件系统的产生。
只有低格才对磁盘有很大的伤害,其它的读写是不要紧的。
固态硬盘
固态硬盘(Solid State Drives),简称固盘,固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。
其芯片的工作温度范围很宽,商规产品(070℃)工规产品(-4085℃)。虽然成本较高,但也正在逐渐普及到DIY市场。由于固态硬盘技术与传统硬盘技术不同,所以产生了不少新兴的存储器厂商。厂商只需购买NAND存储器,再配合适当的控制芯片,就可以制造固态硬盘了。新一代的固态硬盘普遍采用SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口和SFF-8639接口。[1]
局部性原理
局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
三种不同类型的局部性:
时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。
程序循环、堆栈等是产生时间局部性的原因。
-
空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
-
顺序局部性(Order Locality):在典型程序中,除转移类指令外,大部分指令是顺序进行的。
-
顺序执行和非顺序执行的比例大致是5:1。此外,对大型数组访问也是顺序的。
指令的顺序执行、数组的连续存放等是产生顺序局部性的原因。
存储器层次结构
一般而言,高层往底层走,存储设备变的更慢、更便宜、更大。
中心思想:每一层存储设备都是下一层的缓存。
缓存管理:
某种形式的逻辑必须管理缓存,而管理缓存的逻辑可以是硬件、软件,或者两者的集合。
教材学习中的问题和解决过程
- 问题1:高速缓存和高速缓冲有什么区别?
- 问题1解决方案:高速缓冲主要作用是在一定程度上减少对IO设备访问的次数,可以起到流量整形的作用,也提升了系统的性能,毕竟IO操作和内存和cpu的处理速度差距还是很大的,比如下载一个文件,是积攒到一定量才写回磁盘,而不是下载一个字节写回一个字节,这样过不了多久,磁盘就损坏了。
高速缓存主要作用是缓解处理数据的两端速度不匹配这种情况带来的时间上的浪费,这样做就加快了访问速度。比如大家都知道的cpu和内存之间的速度差异就特别大,所以需要cache缓存数据,以便提高速度。
总之一句话,高速缓冲主要解决了空间上的问题,而高速缓存主要解决了时间上的问题。
- 问题2:块和行的区别是什么?
- 问题2解决方案:行是高速缓存中存储块以及其它信息的容器,块是高速缓存存储器和下一层存储器传输的基本单位。因为一行总是存储一个块,术语“行”和“块”总是互换使用
代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 85/85 | 1/1 | 5/5 | |
第二周 | 150/230 | 1/2 | 10/15 | |
第三周 | 50/280 | 1/3 | 7/22 | |
第四周 | 70/350 | 1/4 | 5/27 | |
第五周 | 100/450 | 2/6 | 5/32 | |
第六周 | 50/500 | 1/7 | 10/42 | |
第七周 | 70/570 | 2/9 | 10/55 | |
第八周 | 80/650 | 1/10 | 8/63 | |
第九周 | 100/750 | 3/13 | 8/71 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)