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

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

    教材学习内容总结

    1. 了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
    2. 理解局部性原理
    3. 理解缓存思想
    4. 理解局部性原理和缓存思想在存储层次结构中的应用
    5. 高速缓存的原理和应用

    教材学习中的问题和解决过程

    • 问题1:书中对局限性的概念解释是“计算机程序倾向于引用临近于其他最近引用过的数据项,或者最近引用过的数据项本身”,这里的“临近于”是什么意思呢?是指内存地址上临近吗?

    • 问题1解决方案:通过阅读教材,这里的临近应该指的是时间间距短、内存地址近即与上一次引用的内存位置附近的一个内存位置。一个具有良好的局限性的程序运行速度会更快。高速缓存存储器是用来保存最近被引用的指令和数据项,从而提高对主存的访问速度。

    • 问题2:局限性的两种形式“时间局限性”和“空间局限性”是如何体现的?

    • 问题2解决方案:时间局限性是指被引用过一次的存储器位置在未来会被多次引用(通常在循环中)比如图6-17中的sum变量。空间局限性是指如果一个存储器的位置被引用,那么将来他附近的位置也会被引用,例如v[]数组。

    • 问题3:引入步长概念的意义?

    • 问题3解决方案:通过对比sumarrycols和sumarray可以发现,我们访问内存中的元素时,尽量按着内存中存放的顺序,“一个挨着一个”地读取内存单元中的值,这样步数少,空间局部性高。

    • 总结起来量化评价程序中局限性的简单原则如下:

      • 重复引用同一个变量的程序有良好的时间局部性
      • 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好。
      • 对于取指令来说,循环具有良好的时间和空间局部性。循环体越小,迭代次数越多局部性越好。
    • 问题4:怎么解决冲突不命中?

    • 问题4解决方案:可以按照“时间局限性”的思想,把可能被多次使用的数据元素写入缓存;还可以改变策略,改用映射以外的其他策略。

    代码调试中的问题和解决过程

    • 问题1:高速缓存存储器结构中各个参数的含义是什么?
    • 问题1解决方案:通过反复阅读教材第436页,我的理解是:
      • 第一层划分:高速缓存被分成2^s个高速缓存组;
      • 第二层划分:每个高速缓存租被划分为E行
      • 第三层划分:每行被划分为有效位、标记位、数据块三部分
        • 其中有效位用于标记该行缓存中的数据是否有效
        • 标记位用于标识一个分组中的哪一行

    20155312

    (statistics.sh脚本的运行结果有问题,这周编写了很多代码,但只统计了79行)

    上周考试错题总结

    上周没有测试

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 其他

    本周结对学习情况

    • 20155333
    • 结对照片
    • 结对学习内容
      • 网络编程第11章
      • 教材第3章
      • ...

    其他(感悟、思考等,可选)

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第四周 300/1500 2/9 30/90
    第五周 200/1800 2/11 20/120
    第六周 300/2000 2/13 18/140
    第七周 500/2300 2/14 22/158
    第八周 300/2800 1/16 30/180
    第九周 1000/3800 2/17 20/210

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:20小时

    • 实际学习时间:17小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    Spring注解@Resource和@Autowired区别对比
    Http请求中Content-Type讲解以及在Spring MVC中的应用
    解决SpringMVC的@ResponseBody返回中文乱码
    JVM之类加载器下篇
    JVM之类加载器中篇
    JVM之类加载器上篇
    HashMap的resize和Fail-Fast机制
    HashMap的实现原理
    Tomcat中JVM内存溢出及合理配置
    redis的主从复制,读写分离,主从切换
  • 原文地址:https://www.cnblogs.com/zjy1997/p/7862619.html
Copyright © 2011-2022 走看看