操作系统之分页存储管理

由于连续分配方式的以下两点不足:①固定分区分配会导致产生大量的内部碎片,内存的利用率很低,缺乏灵活性;②动态分区分配会产生很多外部碎片,虽然可以用“紧凑”技术来处理,但是”紧凑“技术所耗费的时间代价更高。那么有学者提出,如果允许将一个进程分散的装入到许多不相邻的分区之中,就可以充分的利用内存,而无需在进行“紧凑“。
基本分页存储管理的思想:把内存分为一个个相等的小分区,在按照分区大小把进程拆分成一个个小部分
示例:假设进程A大小为23MB,但是每个分区大小只有10MB,如果进程只能占用一个分区,那显然放不下。
解决思路:如果允许进程占用多个分区,那么可以把进程拆分成10MB+10MB+3MB三个部分,再把这三个部分分别放到三个分区中(这些分区不要求连续) …;同理,我们可以将每一个小分区拆分的更加小,这样的话进程拆分以后产生的内部碎片就会更少内存利用率会更高
分页存储管理的基本概念:将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页框”, 或称“页帧”、 “内存块”、“物理块”。每个页框有一个编号,即“页框号”(或者“内存块号”、“页帧号”、“物理块号”)页框号从0开始。
将用户进程的地址空间也分为与页框大小相等的一一个个区域,”称为**“页”或“页面**。
, 每个页面也有一个编号,即**“页号”页号也是从0开始。(注:进程的最后一个页面可能没有一个页框那么大。因此,页框不能太大否则可能产生过大的内部碎片)
操作系统
以页框为单位为各个进程分配内存空间**。进程的每个页面分别放入一个页框中。也就是说,进程的页面与内存的页框有一一对应的关系。各个页面不必连续存放,也不必按先后顺序来,可以放到不相邻的各个页框中
进程在内存中连续存放时2,操作系统通过重定位寄存器来实现逻辑地址到物理地址的转换。其核心思想为:模块在内存中的 “起始位置”+ 目标内存单元相对于起始位置的 “偏移量”。
操作系统之分页存储管理_第1张图片
下图给出了响应的计算逻辑地址和物理地址的一些方法。
操作系统之分页存储管理_第2张图片

你可能感兴趣的:(Operating,System)