zoukankan      html  css  js  c++  java
  • 2018-2019 20165203 《信息安全系统设计基础》第五周学习总结

    2018-2019 20165203 《信息安全系统设计基础》第五周学习总结

    教材学习内容总结

    重要概念

    • 存储器系统:一个具有不同容量成本和访问时间的存储设备的层次结构。
    • 高速缓存存储器------主存储器中数据和指令的缓冲区域------磁盘------通过网络连接其他机器磁盘或磁带上的数据的缓冲区域
    • 存储器层次结构:cpu存储器----高速缓存----主存----磁盘(访问速率依次降低)

    存储技术

    随机访问存储器(RAM)

    • 对比:
    名称 特点 简称 用处 容量
    静态RAM 快、贵 SRAM 作为高速缓存存储器,可以在cpu上,cpu下 <=n兆字节
    动态RAM 慢、便宜 DRAM 作为主存以及图形系统的帧缓冲区 几百或几千兆字节

    SRAM:每个位存储在双稳态的存储单元
    只要有电,永远保持它的值,有干扰,干扰消除,电压会恢复到稳定值
    DRAM:每个位存储为对一个电容充电
    存储器非常敏感,电压被扰乱,永远不会被恢复

    • 传统的DRAM:电路模式

    • 内存模块:DARM芯片封装在内存模块中

    • 增强的DRAM:

      • 快页模式DRAM:允许对同一行连续地访问可以直接从行缓冲区得到服务。
      • 扩展数据输出DRAM:允许各个CAS信号在时间上靠得更紧密一点。
      • 同步DRAM:SDRAM能够比那些异步的存储器更快地输出它的超单元的内容。
      • 双倍数据速率同步DRAM:它通过使用两个时钟沿作为控制信号,使DRAM翻倍。
      • 视频RAM:用在图形系统的帧缓冲区中。
    • 非易失性存储器:即使在关电后仍然保存着他们的信息。

    • 访问主存:数据流通过总线在处理器和DRAM主存之间来来回回。

      • 总线能携带地址、数据和控制信号。
      • 携带的信号会同步事务,并标识出当前正在被执行的事务的类型。
    • 计算机系统处理指令图

    磁盘存储

    • 磁盘构造:由盘片构成。

      • 盘片表面:磁性记录材料、磁道、扇区、间隙
      • 盘片中央:主轴----使盘片以固定旋转速率转
      • 磁盘驱动器:柱面
    • 磁盘容量:一个磁盘上可以记录的最大位数

      • 记录密度(bit/inch)
      • 磁道密度(道/inch)
      • 面密度(bit/平方英寸) = 记录密度*磁道密度(与容量有关)
      • 计算磁盘容量的公式:

    • 磁盘操作:

      • 读/写头:读写存储在磁性表面的位
      • 寻道时间:移动传动臂所需的时间
        • 依赖于读/写头以前的位置和传动臂在盘面上移动的速度
      • 旋转时间:一旦读/写头定位到了期望的磁道,驱动器等待目标扇区的第一个位置转到读/写头下。
      • 最大旋转延迟公式:
      • 传送时间:当目标扇区的第一个位位于读/写头下时,驱动器就可以开始读或者写该扇区的内容了。
      • 平均传送时间公式:
    • 逻辑磁盘块:磁盘控制器----读一个磁盘扇区的数据到主存,操作系统会发送一个命令到磁盘控制器,让它读某个逻辑块号。

    • 连接I/O设备:通用串行总线、图形卡、主机总线适配器

    • 访问磁盘:如图所示

    局部性

    • 局部性:倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项的本身。
    • 分类:时间局部性空间局部性
    • 对程序数据引用的局部性
      • 时间局部性:书中的例子sumvec,因为sum可以被重复使用
      • 空间局部性:
        • 每隔k个元素进行访问,就称为步长为k的引用模式
        • 步长为1的引用模式称为顺序引用模式
        • 顺序引用模式具有很好的空间局部性
    • 取指令的局部性
      • for循环具有良好的空间局部性

    存储器层次结构

    • 存储器的层次结构:见下图

    • 存储器层次结构中的缓存

      • 存储器结构的中心思想:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。(层次结构中的每一层都缓存来自较低一层的数据对象)
      • 存储器被划分成连续的数据对象组块,称为块,每个块都有唯一的地址或名字。
      • 缓存命中:程序需要在第k+1层的某个数据对象d时,它首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,那就是缓存命中。
      • 缓存不命中:第k层中没有缓存数据对象d,需要在第k层中替换驱逐某个牺牲块,用到替换策略。
      • 缓存管理:硬件和软件的结合。

    高速缓存存储器

    • 高速缓存的组织结构:

      • (S, E, B, m)的通用组织:
      • 高速缓存是一个高速缓存组的数组。每个组包含一个或多个行,每个行包含一个有效位,一些标记位,以及一个数据块;高速缓存的结构将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小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    7月15日考试 题解(链表+状压DP+思维题)
    暑假集训日记
    C# .NET 使用 NPOI 生成 .xlsx 格式 Excel
    JavaSE 基础 第42节 局部内部类
    JavaSE 基础 第41节 匿名内部类
    JavaSE 基础 第40节 内部类概述
    JavaSE 基础 第39节 接口的应用
    JavaSE 基础 第38节 接口的实现
    JavaSE 基础 第37节 接口概述
    JavaSE 基础 第36节 抽象类概述与使用
  • 原文地址:https://www.cnblogs.com/20165203-xyx/p/9866125.html
Copyright © 2011-2022 走看看