2018-2019-1 20165329 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
-
物理寻址:CPU访问内存的最自然的方式就是使用物理地址,这种方式被称为物理寻址。
- 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有一个唯一的物理地址。
-
虚拟寻址:CPU通过生成一个虚拟地址来访问主存,这个虚拟地址在被送到内存之前先转换成适当的物理地址。
-
地址翻译:将一个虚拟地址转换为物理地址的任务。
-
地址空间:地址空间是一个非负整数地址的有序集合。
-
线性地址空间:如果地址空间中的整数是连续的,那么我们说它是一个线性地址空间。
-
虚拟地址空间:在一个带虚拟空间的系统中,CPU从一个有 N=2^n 个地址的地址空间中生成虚拟地址,这个地址空间成为称为虚拟地址空间。
-
物理地址空间:对应系统中的物理存储器的M个字节。
-
-
在任意时刻,虚拟页面的集合都分为三个不相交的子集:
- 未分配的:VM系统还未分配的页。
- 缓存的:当前已缓存在物理内存中的已分配页。
- 未缓存的:未缓存在物理内存中的已分配页。
-
Linux虚拟内存空间:Linux为每个进程维护了一个单独的虚拟地址空间,形式如图。
-
内核虚拟内存包含内核中的代码和数据结构。内核虚拟存储内存的某些区域被映射到所有进程共享的物理页面。内核虚拟内存的其他区域包含每个进程都不相同的数据。
-
Linux将虚拟内存组织成一些区域的集合。一个区域就是已经存在着的虚拟内存的连续片,这些页是以某种方式相关联的。
一个具体区域的区域结构包含下面的字段:
vm_start:指向这个区域的起始处。
vm_end:指向这个区域的结束处
vm_prot:描述这个区域内包含的所有页的读写许可权限。
vm_flags:描述这个区域内的页面是与其他进程共享的,还是这个进程私有的。
vm_next:指向链表中下一个区域结构。
-
内存映射:Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域内容的过程。
-
虚拟内存区域可以映射到两种类型的对象中的一种:
1、Linux文件系统中的普通文件:一个区域可以映射到一个普通磁盘文件的连续部分;
2、匿名文件:一个区域可以映射到一个匿名文件,匿名文件是由内核创建的,包含的全是二进制零。