操作系统-段页结合的实际内存管理

段、页结合:程序员希望用段,物理内存希望用页,所以、、、

操作系统-段页结合的实际内存管理

从虚拟内存中割出一个区域来给这个段,段就有了映射,但是这个虚拟内存不能正真的使用,需要把虚拟内存再映射一次,这个时候虚拟内存中的段分割成固定大小的页,每一页再去映射到物理内存中

1. 段、页同时存在

段面向用户,页面向硬件

操作系统-段页结合的实际内存管理

2. 段页同时存在用的重定位

也就是地址翻译

从用户的角度来看就是段的访问,从物理内存的角度就是分成一页一页

操作系统-段页结合的实际内存管理

3. 一个实际的段页结合

操作系统-段页结合的实际内存管理

1. 段页式内存下程序如何载入内存?

虚拟内存割出一段区域给给用户,存放数据段、代码段

把用户的数据段分割成页,再给到物理内存上

操作系统-段页结合的实际内存管理

2. 从fork()开始

分配虚拟内存

建立段表

操作系统-段页结合的实际内存管理

进程0、进程1、进程2的虚拟地址

操作系统-段页结合的实际内存管理

3. 接下来

分配内存

建立页表

操作系统-段页结合的实际内存管理


操作系统-段页结合的实际内存管理


操作系统-段页结合的实际内存管理

4. 子进程和父进程都指向同一页

操作系统-段页结合的实际内存管理

5. 程序+虚拟内存+物理内存

操作系统-段页结合的实际内存管理

6. *p=7?

父进程*p=7 ,

子进程*p=8

操作系统-段页结合的实际内存管理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwzdp.html