欢迎您的访问
专注于Java技术系列文章的Java技术分享网站

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

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

78_1.png

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

1. 段、页同时存在

段面向用户,页面向硬件

78_2.png

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

也就是地址翻译

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

78_3.png

3. 一个实际的段页结合

78_4.png

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

1、 虚拟内存割出一段区域给给用户,存放数据段、代码段
2、 把用户的数据段分割成页,再给到物理内存上

78_5.png

2. 从fork()开始

1、 分配虚拟内存
2、 建立段表

78_6.png

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

78_7.png

3. 接下来

1、 分配内存
2、 建立页表

78_8.png
78_9.png
78_10.png

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

78_11.png

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

78_12.png

6. *p=7?

父进程*p=7 ,

子进程*p=8

78_13.png

文章永久链接:https://tech.souyunku.com/?p=37195

赞(83) 打赏



版权归原创作者所有,任何形式转载请联系作者;搜云库 » 操作系统-段页结合的实际内存管理

本站:免责声明!

评论 抢沙发

一个专注于Java技术系列文章的技术分享网站

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏