20145204张亚军第14周博客总结

《信息安全系统设计基础》第14周学习总结

教材学习内容

虚拟存储器
  • 虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互。
  • 为每个进程提供了一致的地址空间,并保护每个进程的地址空间不被其他进程破坏
  • 主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存。
物理和虚拟寻址

如下所示是一个使用虚拟寻址的形式

cpu芯片上的存储器管理单元(MMU)的专用硬件,利用放在主存中的查询表动态翻译虚拟地址。

地址空间
  • 线性地址空间:地址空间中的整数是连续的
  • 虚拟地址空间:CPU从一个有 N=2^n 个地址的地址空间中生成的虚拟地址,地址大小由表示最大地址所需要位数描述的。
  • 物理地址空间:与系统中的物理存储器的M个字节相对应,不要求是2的幂次方。

允许数据对象有多个地址。主存中的每个字节都有一个虚拟地址和一个物理地址。

虚拟存储器作为缓存工具。
  • 在任意时刻,虚拟页面的集合都被分为三个不相交的子集:
    1、未分配的:VM系统还没分配/创建的页,不占用任何磁盘空间
    2、缓存的:当前缓存在物理存储器中的已分配页
    3、未缓存的:没有缓存在物理存储器中的已分配页
  • 物理存储器被分割为物理页(PP),也叫页帧,大小也为P字节
页表
  • 页表就是一个页表条目PTE的数组。
  • PTE是由有效位和一个n位地址字段组成的。
    1、如果设置了有效位:地址字段表示DRAM中相应的物理页的起始位置,这个物理页中缓存了该虚拟页
    2、如果没有设置有效位:
    (1)空地址:表示该虚拟页未被分配

(2)不是空地址:这个地址指向该虚拟页在磁盘上的起始位置。

页命中和缺页
  • 地址翻译硬件将虚拟地址作为一个索引来定位PTE2,通过有效位判断是否已缓存。
  • DRAM缓存不命中引发缺页异常,调用内核中的缺页异常处理程序。
虚拟存储器作为存储器管理工具

1、简化链接:独立的地址空间允许每个进程的存储器映像使用相同的基本格式,而不管代码和数据实际存放在物理存储器的何处
2、简化加载:虚拟存储器使得容易想存储器中加载可执行文件和共享对象文件
3、简化共享:独立地址空间为操作系统提供了一个管理用户进程和操作系统自身之间共享的一致机制
4、简化存储器分配:虚拟存储器为向用户进程提供一个简单的分配额外存储器的机制

动态存储器分配
  • 分配器有两种风格:
    1、显示分配器:要求应用显式地释放任何已经分配的块
    2、隐式分配器:要求分配器检测一个已分配块何时不再被程序所使用,就释放这个块。也叫做垃圾收集器

  • 分配器要求
    1、处理任意请求序列
    2、立即响应请求
    3、只使用堆
    4、对齐块
    5、不修改已分配的块

  • 目标:
    1、最大化吞吐率(吞吐率:每个单位时间里完成的请求数)
    2、最大化存储器利用率——峰值利用率最大化

碎片

1.内部碎片

  • 发生在一个已分配块比有效载荷大的时候
  • 易于量化。

2.外部碎片

  • 发生在当空闲存储器合计起来足够满足一个分配请求,但是没有一个单独的空间块足以处理这个请求时发生
  • 难以量化,不可预测。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 30篇 400小时
第一周 40/40 1/1 20/20
第二周 30/70 1/2 30/50
第三周 21/91 1/3 28/78
第五周 131/222 1/4 20/98
第六周 32/254 1/5 21/119
第七周 200/454 1/5 21/119
第八周 0/454 2/7 10/129
第九周 84/538 2/9 15/144
第10周 441/979 2/11 10/154
第11周 460/1439 2/13 20/174
第12周 300/1739 2/15 20/194
第13周 427/2467 1/16 19/213
第13周 0/2467 1/17 22/235

代码托管

代码链接

参考资料

posted @ 2016-12-18 20:42  20145204张亚军  阅读(167)  评论(1编辑  收藏  举报