2018-2019-1 20165203 《信息安全系统设计基础》第十一周学习总结
教材学习内容总结
虚拟内存
- 三个重要能力:
-
- 将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和驻村之间来回传送数据。
-
- 为每个进程提供了一致的地址空间,从而简化了内存管理。
-
- 保护了每个进程的地址空间不被其他进程破坏。
- 三大特点
-
- 核心的
-
- 强大的
-
- 危险的
物理寻址
- 定义:使用物理地址访问内存的过程是物理寻址。
- 过程:如果CPU读取从物理地址4处开始的4个字节。当CPU执行这条加载指令时,会生成一个有效的物理地址,通过内存总线,把它传递给主存。主存取出从物理地址4处开始的4字节,并将它返回给CPU,CPU会将它存放在一个寄存器里,如图所示。
虚拟寻址
- 定义:现代处理器的寻址方式。
- 过程:CPU会通过生成一个虚拟地址来访问主存,这个虚拟地址在被送到内存之前先通过地址翻译转换成适当的物理地址。如图所示,
地址空间
- 定义:一个非负整数地址的有序集合。
- 线性地址空间:地址空间的数是连续的。
- 一个包含N=2n个地址的虚拟地址空间就叫做一个n位地址空间。
虚拟内存作为缓存的工具
- VM系统通过将虚拟内存分割为称为虚拟页的大小固定的块来处理这个问题。
- 虚拟页面的集合的子集:
-
- 未分配的(unallocated)
-
- 缓存的(cached)
-
- 未缓存的(uncached)
- VM系统使用主存作为缓存的过程。
DRAM缓存的组织结构
- 表示虚拟内存系统的缓存,它在主存中缓存虚拟页。
页表
- 一个页表条目(PTE)的数组。
- 虚拟地址空间中的每个页在页表中一个固定偏移量处都有一个PTE,假设每个PTE是由一个有效位和一个n位地址字段组成的。有效位表明了该虚拟页当前是否被缓存在DRAM中。如果设置了有效位,那么地址字段就表示DRAM中相应的物理页的起始位置,这个物理页中缓存了该虚拟页。如果没有设置有效位,那么一个空地址表示这个虚拟页还未被分配。否则,这个地址就指向该虚拟页在磁盘上的起始位置。
- 页表示例。
地址翻译
-
定义:地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中的元素之间的映射。
-
所需符号,如图所示。
-
使用页表的地址翻译。
利用TLB加速地址翻译
- 第1步:CPU产生一个虚拟地址。
- 第2步和第3步:MMU从TLB中取出相应的PTE。
- 第4步:MMU将这个虚拟地址翻译成一个物理地址,并且将它发送到高速缓存/主存。
- 第5步:高速缓存/主存将所请求的数据字返回给CPU。
内存映射
- 定义:Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容的过程。
- 虚拟内存区域可以映射到两种类型的对象(Linux文件系统中的普通文件和匿名文件)。
再看fork函数
- 当fork函数被当前进程调用时,内核为新进程创建各种数据结构,并分配给它一个唯一的PID。
再看execve函数
- 作用:加载和执行程序。
- 在当前进程中的程序执行了如下的execve调用:
execve("a.out", NULL, NULL");
- 加载运行a.out的步骤:
-
- 删除已存在的用户区域。
-
- 映射私有区域。
-
- 映射共享区域。
-
- 设置程序计数器(PC)。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 |
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)