分段与分页
来源:互联网 发布:朝鲜扫码软件 编辑:程序博客网 时间:2024/05/18 14:43
分段
基本思路是把一段与程序所需要的内存空间大小的虚拟空间映射到某个地址空间。
比如程序 A 需要 10 MB 内存,那么我们假设有一个地址从 0x00000000 到 0x00A00000 的 10 MB 大小的一个假想的空间,也就是虚拟空间,然后我们从实际的物理内存中分配一个相同大小的物理地址,假设是物理地址 0x00100000 开始到 0x00B00000 结束的一块空间。然后我们把这两块相同大小的地址一 一映射,即虚拟空间中的每个字节相对应于物理空间中的每个字节。这个映射过程由软件来设置,比如操作系统来设置这个映射函数,实际的地址转换由硬件完成。
分段解决了地址隔离和程序不必关系物理地址变化的问题。
分段没有解决内存使用效率的问题。分段对内存区域的映射还是按照程序为单位,如果内存不足,被换入换出到磁盘的都是整个程序,这样势必会造成大量的磁盘访问操作,从而严重影响速度。
事实上,根据程序的局部性原理,当一个程序在运行时,在某个时间段内,它只是频繁地用到了一小部分数据,也就是说,程序的很多数据其实在一个时间段内都是不会被用到的。
分页
分页的基本方法是把地址空间人为地等分为固定大小的页,每一页的大小由硬件决定;或硬件支持多种大小的页,由操作系统选择决定页的大小。
把进程的虚拟地址空间按页分割,把常用的数据和代码页装载到内存中,把不常用的代码和数据保存在磁盘里,当需要用到时再取出来即可。
把虚拟空间的页叫虚拟页,把物理内存中的页叫物理页,把磁盘中的页叫磁盘页。
虚拟存储的实现需要依靠硬件的支持,对于不同的 CPU 来说是不同的。但是几乎所有的硬件都采用一个叫 MMU (Memory Management Unit) 的部件来进行页映射。
在页映射模式下,CPU 发出的是 Virtual Address,即我们的程序看到的是虚拟地址。经过MMU转换以后就变成了 Physical Address。一般MMU都集成在CPU内部了,不会以独立的部件存在。
阅读全文
0 0
- 内存分页与分段
- 内存分页与分段
- 说说分段与分页
- 分段与分页
- 分段与分页
- 分页 与 分段
- 分页与分段
- 分段与分页
- 【操作系统】分段与分页机制
- 分段与分页机制小结
- 分段与分页存储管理
- 内存分段与分页机制
- 分段与分页机制小结
- 分段与分页存储管理
- 分段与分页,LDT与GDT
- 分段与分页,LDT与GDT
- 操作系统内存管理(分页与分段)
- 内存分段分页与页面置换方法
- 7. Reverse Integer
- 比特币基础概念入门 2
- Angularjs
- Java常用API(二)String
- 深入理解Java中的重写和重载
- 分段与分页
- An Introduction to Flask 16~18
- 虚拟机的三种联网方式——理论篇
- TCP/IP、Http、Socket的区别
- Python机器学习Sklearn入门之神经网络
- Atcoder 083 Restoring Road Network(类弗洛伊德)
- 比特币基础概念入门 3
- 航天集团研发4000公里/小时高铁是一次战略考量
- PAT乙级 1048. 数字加密(20)