zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155206 《信息安全系统设计基础》第十四周学习总结

    2017-2018-1 20155206 《信息安全系统设计基础》第十四周学习总结

    学习目标

    找出全书你认为学得最差的一章,深入重新学习一下,要求(期末占5分):主要学习第四章
    、 总结新的收获
    、 给你的结对学习搭档讲解或请教,并获取反馈
    、 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《信息安全系统设计基础》第十四周学习总结”,博客(随笔)要通过作业提交,截至时间本周日 23:59。

    教材学习内容总结

    三种常见存储技术:RAM/ROM/磁盘;
    1、随机访问存储器RAM
    (1)静态RAM

    SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的。
    属性:它可以无限制地保持在两个不同的电压配置或状态之一。其他任何状态都是不稳定的。
    特点:由于SRAM的双稳态特性,只要有电,它就会永远地保持它的值,即使有干扰,如电子噪音,来扰乱电压,当干扰消除,电路也能恢复到稳定值。
    应用:高速缓存存储器,即可以在CPU芯片上,也可以在片下。

    (2)动态DRAM

    DRAM将每个位存储为对电容的充电。电容约为30×10-15F。
    特点:对干扰特别敏感,当电容的电压被扰乱之后,它就永远不会恢复了。暴露在光线下会导致电容电压改变。
    应用:主存以及图形系统的帧缓冲区。

    2、非易失性存储器(ROM)
    (1)区分:能被重编程的次数和对他们进行重编程所用的机制。

    PROM:只能被编程一次。
    EPROM:可擦写可编程ROM,紫外线光照清除单元内容,可擦写次数数量级1000。
    E2PROM:电子可擦除PROM,可以直接在印制电路卡上编程,可擦写次数数量级10^5。
    FLASH:闪存,基于EEPROM。(固态硬盘SSD基于闪存)
    (2)存储在ROM设备中的程序通常称为固件。

    磁盘存储
    1、磁盘构造
    (1)由盘片构成,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料。盘片中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转,通常是5400~15000转每分钟(RPM)

    (2)每个表面是由一组称为磁道的同心圆组成;每个磁道被划分成一组扇区;每个扇区包含相等数量的数据位(通常是512字节);这些数据编码在扇区上的磁性材料中。扇区之间由一些 间隙分隔开,这些间隙中不存在数据位。间隙存储用来标识扇区的格式化位。

    2、磁盘容量
    (1)一个磁盘上可以记录的最大位数称为它的最大容量/容量。

    (2)磁盘容量的决定因素:

    记录密度:磁道一英寸的段可以放入的位数。
    磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数。
    面密度:记录密度与磁道密度的乘积。
    磁盘是重点,涉及到后面的i/o和文件系统,做好相关练习

    磁盘操作
    1、磁盘用读写头来读写存储在磁性表面的位,而读写头连接到一个转动臂一端。寻道就是通过沿着半径轴前后移动这个转动臂,使得驱动器可以将读写头定位在盘面上的任何磁道上。

    任何时刻,所有的读写头都位于同一柱面上。
    在传动臂末端的读/写头在磁盘表面高度约0.1微米处一层薄薄的气垫上飞翔,速度大约为80km/h。
    磁盘以扇区大小的块来读写数据。

    2、访问时间:
    (1)寻道时间:为了读取某个目标扇区的内容,传动臂把读/写头首先定位到包含目标扇区的磁道上,所需时间即为寻道时间,约等于最大旋转时间。

    寻道时间Tseek依赖于读写头以前的位置和转动臂在盘面上移动的速度。
    (2)旋转时间:定位到期望的磁道后,驱动器等待目标扇区的第一个位旋转到读/写头下。依赖于当读写头到达目标扇区时盘面的位置和磁盘旋转速度。

    定位到期望的磁道后,驱动器等待目标扇区的第一个位旋转到读/写头下。
    最大旋转时间 = 1/最大旋转数率
    平均旋转时间 = (1/2) * 最大旋转时间。
    (3)传送时间:当目标扇区的第一个位位于读写头下时,驱动器就可以开始读或者写该扇区的内容。依赖于旋转速度和每条磁道的扇区数目。
    平均传送时间 = (1/最大旋转数率) * (1/每磁道的平均扇区数)
    逻辑磁盘块

    1、内存可以看成字节数组、磁盘可以看成块数组

    2、现代磁盘构造复杂,有多个盘面,这些盘面上有不同的记忆区。为了对操作系统隐藏这样的复杂性,现代磁盘将他们的构造呈现为一个简单的试图,一个B个扇区大小的逻辑块的序列,编号为0,1,...,B-1。

    3、磁盘中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际(物理)扇区之间的映射关系。

    4、控制器上的固件执行一个快速表查找,将一个逻辑块号翻译一个(盘面、磁道、扇区)的三元组,这个三原则唯一地表示了对应的物理扇区。控制器上的硬件解释这个三元组,将读写头移动到适当的煮面,等待扇区移动到读写头下,将读写头感知到的位放在控制器上的一个小缓冲区中,然后将他们拷贝到主存中。

    连接到I/O设备
    1、想图形卡、监视器、鼠标、键盘和磁盘这样的输入输出设备,都是通过I/O总线连接到CPU和主存的。

    2、系统总线和存储器总线是与CPU相关的,I/O总线设计成与底层CPU无关。

    3、I/O总线比系统总线比存储器总线慢,但是它可以容纳种类繁多的第三方I/O设备。

    通用串行总线USB:2.0最大带宽60MB/S,3.0最大带宽600MB/S
    图形卡(适配器)
    主机总线适配器
    访问磁盘

    1、CPU使用一种存储器映射I/O技术来向I/O设备发出命令,在使用存储器映射I/O的系统中,地址空间中有一块地址是为与I/O设备通信保留的,称为I/O端口。当一个设备连接到总线时,它与一个或多个端口相连。

    2、直接存储器访问:设备可以自己执行读或者写总线事务,而不需要CPU干涉的过程。这种数据传送称为DMA传送。

    固体磁盘
    1、固态硬盘是一种基于闪存的存储技术。

    2、一个SSD包由一个或多个闪存芯片和闪存翻译层组成,闪存芯片替代传统旋转磁盘中机械驱动器;闪存翻译层(一个硬件/固件设备)替代磁盘控制器,将对逻辑块的请求翻译成对底层物理设备的访问。

    3、性能特性

    顺序读和写(CPU按顺序访问逻辑磁盘块)性能相当,顺序读比顺序写稍快一点。
    随机顺序访问逻辑块时,写比读慢一个数量级。
    读写性能差别是由底层闪存基本属性决定的。
    4、优缺点

    (1)优点:
    由半导体构成,没有移动的部件
    随机访问时间比旋转磁盘要快、能耗低、结实
    (2)缺点:易磨损、更贵

    存储技术趋势
    1、不同的存储技术有不同的价格和性能折中,不同存储技术的价格和性能属性以截然不同的速率变化着(增加密度从而降低成本比降低访问时间更容易)

    2、DRAM和磁盘的性能滞后于CPU的性能
    访问主存

    1、读事务:从主存传送数据到CPU。

    读事务语句:movl A,%eax

    CPU将地址A放到存储器总线
    主存从总线读出A,接收字x,然后将x放到总线上
    CPU从总线读出字x,并将它copy到寄存器eax中。
    2、写事务:从CPU传送数据到主存。

    写事务语句:movl %eax,A

    CPU将地址A放到存储器总线,主存读出这个地址,等待接收数据字
    CPU将数据字y放到总路上
    主存从总线读数据字y,并将它存储在地址A。
    3、总线:一组并行的导线,能携带地址、数据的控制信号。分为:数据总线、控制总线、地址总线

    局部性
    分类:
    时间局部性
    空间局部性
    应用:

    1.硬件层:

    通过引入高速缓存存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度。

    2.操作系统级:

    系统使用主存作为虚拟地址空间最近被引用块的高速缓存,用主存来缓存磁盘文件系统中最近被使用的磁盘块

    3.应用程序中:

    Web浏览器将最近被引用的文档放在本地磁盘上。

    一、对程序数据引用的局部性

    步长为k的引用模式

    定义:一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式。

    步长为1的引用模式:就是顺序访问一个向量的每个元素,有时也被称为顺序引用模式,它是程序中 空间局部性常见和重要的来源。

    一般来说,随着步长增加,空间局部性下降。

    存储器层次结构
    一、缓存
    高速缓存:是一个小而快速的存储设备,它作为存储在更大、更慢的设备中的数据对象的缓冲区域。

    缓存:使用高速缓存的过程称为缓存。

    数据总是以块大小为传送单元在第k层与第k+1层之间来回拷贝。任一对相邻的层次之间块大小是固定的,但是其他的层次对之间可以有不同的块大小。

    一般来说:层越低,块越大。

    1.缓存命中

    当程序需要第k+1层的某个数据对象d时,首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,就称为缓存命中。

    该程序直接从第k层读取d,比从第k+1层中读取d更快。

    2.缓存不命中

    即第k层中没有缓存数据对象d。

    这时第k层缓存会从第k+1层缓存中取出包含d的那个块。如果第k层缓存已满,就可能会覆盖现存的一个块。

    3.缓存不命中的种类

    (1)强制性不命中/冷不命中

    即第k层的缓存是空的(称为冷缓存),对任何数据对象的访问都不会命中。

    (2)冲突不命中

    由于一个放置策略:将第k+1层的某个块限制放置在第k层块的一个小的子集中,这就会导致缓存没有满,但是那个对应的块满了,就会不命中。

    (3)容量不命中

    当工作集的大小超过缓存的大小时,缓存会经历容量不命中,就是说缓存太小了,不能处理这个工作集。

    高速缓存存储器
    L1高速缓存:

    位于CPU寄存器文件和主存之间,访问速度2-4个时钟周期

    L2高速缓存:

    位于L1高速缓存和主存之间,访问速度10个时钟周期

    L3高速缓存:

    位于L2高速缓存和主存之间,访问速度30或40个时钟周期

    一、通用的高速缓存存储器结构
    高速缓存是一个高速缓存组的数组,它的结构可以用元组(S,E,B,m)来描述:

    S:这个数组中有S=2^s个高速缓存组
    E:每个组包含E个高速缓存行
    B:每个行是由一个B=2^b字节的数据块组成的
    m:每个存储器地址有m位,形成M=2^m个不同的地址
    除此之外还有标记位和有效位:

    有效位:每个行有一个有效位,指明这个行是否包含有意义的信息
    标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块
    组索引位:s
    块偏移位:b
    高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。

    二、直接映射高速缓存
    根据E(每个组的高速缓存行数)划分高速缓存为不同的类,E=1的称为直接映射高速缓存,以此为例:

    高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:

    1.组选择
    2.行匹配
    3.字抽取

    三、组相联高速缓存
    E路组相联高速缓存:1<E<C/B

    1.组选择

    和直接的一样。

    2.行匹配和字选择

    形式是(key, value),用key作为标记和有效位去匹配,匹配上了之后返回value。

    3.行替换

    有空行替换空行,没有空行,应用替换策略:

    随机替换
    最不常使用策略LFU:替换在过去某个时间窗口内引用次数最少的那一行。
    最近最少使用策略LRU:替换最后一次访问时间最久远的那一行。

    课后习题

  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/zf011/p/8098590.html
Copyright © 2011-2022 走看看