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


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

    教材学习内容总结

    1. 理解虚拟存储器的概念和作用
    • 虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互。
    • 虚拟存储器作为虚拟的工具:
      唯一的虚拟抵制是作为到数组的索引的。
      磁盘上数据的内容被缓存在主存中。
      VM系统通过将虚拟存储器分割为称为虚拟页(VP)。
      每个虚拟页的大小为P=2^P字节。
      物理存储器被分割为物理页(PP,也称为页帧),大小为P字节。
      在任何时刻,虚拟页面的三个子集:
      未分配的:VM系统还未分配的页
      缓存的:当前缓存在物理存储器中的已分配页
      未缓存的:没有缓存在物理存储器中的已分配页
    1. 理解地址翻译的概念
    • 地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理空间地址(PAS)中元素之间的映射,MAP:VAS→PAS∪Ø
    • 利用TLB加速地址翻译
    1. 理解存储器映射
    • Linux通过将一个虚拟存储器与一个磁盘上的对象关联起来,以初始化这个虚拟存储器区域的内容,这个过程称为存储器映射。
    • 虚拟存储器区域可以映射到两种类型的对象中的一种:
    • Unix文件系统中的普通文件
    • 匿名文件
    • 一旦一个虚拟页面被初始化,它就在一个由内核维护的专门的交换文件之间换来换去。
    • 交换文件也叫做交换空间或者交换区域。
    • 一个对象可以被映射到虚拟存储器的一个区域,要么作为共享对象,要么作为私有对象。
    • 一个映射共享对象的虚拟存储器区域叫做共享区域。类似的,还存在私有区域。
    • 私有对象使用写时拷贝技术被映射到虚拟存储器中。
    1. 掌握动态存储器分配的方法
    • 动态存储器分配器维护着一个进程的虚拟存储器区域,称为堆(heap)。
    • 对于每个进程,内核维护着一个变量brk,它指向堆的顶部。
    • 分配器将堆视为一组不同大小的块的集合来维护。
    • 每个块就是一个连续的虚拟存储器片,要么是已分配的,要么是空闲的。
    • 分配器有两种基本风格:
      显式分配器:要求应用显式地释放任何已分配的块。
      隐式分配器:要求分配器检测一个已分配块何时不再被程序所使用,那么就释放这块。
    • 隐式分配器页叫做垃圾收集器,而自动释放未使用的已分配的块的过程叫做垃圾收集。
    1. 理解垃圾收集的概念
    • 垃圾收集器:动态存储分配器
    • 垃圾:程序不再需要的已分配块
    • 垃圾收集:自动回收堆存储的过程
    1. 了解C语言中与存储器有关的错误
    • 间接引用坏指针
    • 读为初始化的存储器
    • 允许栈缓冲区溢出
    • 假设指针和它们所指向的对象是相同大小的
    • 造成错位错误
    • 引用指针,而不是它所指向的对象
    • 误解指针运算
    • 引用不存在的变量
    • 引用空闲堆块中的数据
    • 引起存储器泄漏

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

    • 问题1:mallock和free函数
    • 问题1解决方案:程序通过调用malloc函数来从堆中分配块。
      malloc函数返回一个指针,指向大小为至少size字节的存储器块,这个块会为可能包含在这块内的任何数据对象类型做对齐。
      free函数来释放已分配的堆块

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

    • 问题1:实验4
    • 问题1解决方案:

    代码托管

    上周考试错题总结

    博客

    结对及互评

    点评模板:

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

    本周结对学习情况

    - [结对同学学号1](博客链接)
    - 结对照片
    - 结对学习内容
        - XXXX
        - XXXX
        - ...
    

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

    xxx
    xxx

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第11周 200/2200 2/2 11/20

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

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

    • 计划学习时间:11小时

    • 实际学习时间:20小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    vim黏贴代码格式混乱的解决方法
    fopen()和fclose()的用法
    简谈switch case
    【转】如何确定Kafka的分区数、key和consumer线程数
    【转】Kafka producer原理 (Scala版同步producer)
    【转】 使用maven创建web项目
    【转】使用Eclipse构建Maven项目 (step-by-step)
    eclipse的安装环境及eclipse下maven的配置安装
    strtol,strtoll,strtoul, strtoull字符串转化成数字
    Kafka Producer相关代码分析【转】
  • 原文地址:https://www.cnblogs.com/javasyn/p/7967943.html
Copyright © 2020-2023  润新知