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

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

    教材学习内容总结

    理解虚拟存储器的概念和作用

    • 虚拟内存提供了三个重要的能力:
      • 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存。
      • 它为每个进程提供了一致的地址空间,从而简化了存储器管理。
      • 它保护了每个进程的地址空间不被其他进程破坏。
    • 程序员需要理解虚拟内存
      • 虚拟内存是核心的:有助于理解计算机系统的工作方式
      • 虚拟内存是强大的:给与应用程序强大的能力
      • 虚拟内存是危险的:合理地管理分配内存可以减少出错风险。

    理解地址翻译的概念

    • 地址翻译:一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)之间的映射:MAP: VAS → PAS ∪ ∅
      • MAP = A' ,如果虚拟地址A处的数据在PAS的物理地址A'处
      • MAP = ∅ ,如果虚拟地址A处的数据不在物理存储器中
    • CPU中的一个控制寄存器,页表基址寄存器指向当前页表,n 位的虚拟地址包含两个部分:一个 p 位的虚拟页面偏移(VPO) 和一个(n-p)位的虚拟页号,页表条目中的物理页页号和虚拟地址中的VPO串联起来,就得到了相应的物理地址。

    理解存储器映射

    • 存储器映射:Linux通过将一个虚拟存储器区域与一个磁盘上的对象(object)关联起来,以初始化这个虚拟内存区域的内容的过程。
    • 虚拟内存区域可以映射到两种对象中的一种:
      • Linux 文件系统中的普通文件
      • 匿名文件
    • 一旦一个虚拟页面被初始化了,它就在一个由内核维护的专门的交换文件(swap file)之间换来换去。交换文件也叫交换空间,或交换区域。交换空间限制能够分配的虚拟页面总数。

    掌握动态存储器分配的方法

    • 当运行时需要额外虚拟存储器时,使用动态内存分配器维护一个进程的虚拟存储器区域。
    • 分配器有两种基本风格。两种风格都要求应用显式地分配块。不同在于由哪个实体来负责释放已分配地块:
      • 显示分配器:要求应用显式地释放任何已经分配的块。
      • 隐式分配器:要求分配器检测一个已分配块何时不再被程序所使用,就释放这个块。也叫做垃圾收集器。

    理解垃圾收集的概念

    • 动态内存分配器,自动释放程序不再需要的已分配块。
    • 垃圾收集器将内存视为一张有向可达图,从根节点出发,不可达的堆节点视为垃圾。两个节点的指向关系是其中一个节点包含另一个的位置信息。

    了解C语言中与存储器有关的错误

    • 间接引用坏指针
      • 在进程的虚拟地址空间中有较大的洞,没有映射到任何有意义的数据,如果试图引用一个指向这些洞的指针,操作系统就会以段异常来终止程序。
      • 典型的错误是:scanf("%d",val);,没有加&符号
    • 读未初始化的内存
      • 虽然bass存储器位置总是被加载器初始化为0,但对于堆存储器却并不是这样的。
      • 常见的错误就是假设堆存储器被初始化为0.
    • 允许栈缓冲区溢出
      • 如果一个程序不检查输入串的大小就写入栈中的目标缓冲区,程序就会出现缓冲区溢出错误。
    • 假设指针和指向他们的对象大小是相同的。
    • 造成错位错误。
    • 引用指针,而不是他所指向的对象。
    • 误解指针运算
      • 忘记了指针的算术操作是以它们指向的对象的大小为单位来进行,而这种大小单位不一定是字节。
    • 引用不存在的变量
    • 引用空闲堆块中的数据
    • 引起存储器泄露
      • 当不小心忘记释放已分配块,而在堆里创建了垃圾时,就会引起存储器泄露。

    代码托管

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
    目标 1000行 30篇 400小时
    第一周 156/200 2/2 20/20
    第二周 121/200 2/2 18/30
    第三周 107/200 2/2 15/30
    第四周 111/200 2/2 16/30
    第五周 101/200 1/1 18/30
    第六周 110/200 2/2 19/30
    第七周 90/200 1/1 18/30
    第八周 93/200 1/1 15/30
    第九周 265/200 1/1 25/30
  • 相关阅读:
    比较重量(网易笔试题)
    抽象工厂模式
    简单工厂模式
    R语言dai xie
    Hadoop综合大作业
    hive基本操作与应用
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作,编写MapReduce作业
    爬虫大作业
    第三章 熟悉常用的HDFS操作
  • 原文地址:https://www.cnblogs.com/treebeard123/p/10056356.html
Copyright © 2011-2022 走看看