内存管理笔记七、页式内存管理

本文主要探讨了页式内存管理,以解决交换分区中的外部碎片和地址空间增长困难问题。分页系统通过将虚拟和物理内存划分为相同大小的页面,实现无外部碎片并允许程序部分加载。内存管理单元(MMU)负责地址翻译,页表记录虚拟到物理页面的映射。然而,分页系统面临页表占用空间大和访问速度降低的问题,通过多级页表和TLB缓存来缓解。此外,文章还讨论了页面尺寸选择、内存抖动和缺页中断等问题。
摘要由CSDN通过智能技术生成

内存管理笔记七、页式内存管理

引言:内存管理就是要将各种媒介组建成一体,形成一个巨无霸似的虚拟存储系统。第六篇笔记,介绍了非固定分区内存管理方式,本篇笔记将分析其存在的问题,并就此引出页式内存管理。


  在前面几篇笔记中,分别介绍了固定加载地址的内存管理(仅适用于单道编程)、固定分区的内存管理非固定分区的内存管理和交换内存管理。固定分区的形式浪费内部的空间,造成内部碎片。非固定分区可以解决内部碎片,但是不利于程序增长。交换分区解决了程序增长,但也有外部碎片和空间增长困难的问题。

一、Swap交换存在的问题
1.1、大量的外部碎片

  随着程序在内存与磁盘间的交换,内存将变得越来越碎片化,即内存将被不同程序分割成尺寸大小无法使用的小片空间。这种散步在进程之间的闲置空间称为外部碎片,这是因为从进程的粒度来看,这种碎片处于进程空间的外面,这种碎片化的进程也称为”外部碎片化“。

  例如,我们运行8个程序,A、B、C、D、E、F、G、H,其启动、内存需要和交换过程如下:(偷懒直接截图啦)

这里写图片描述
图1、进程启动及切换过程

  在A~G,7个进程执行序列后,当前内存尚有200KB的闲置空间,分别处于地址1050KB ~1199KB和1550KB~1599KB。但因为不连续,所以无法容纳新的进程H,而进程H的空间需求只有200KB。随着进程的进进出出,外部碎片将浪费大量的内存空间。图2显示的是外部碎片化过程的示意图:

这里写图片描述
图2、交换系统中外部碎片的产生过程

1.2、地址空间增长困难

  除了外部碎片以外,交换的内存管理模式还存在着地址空间增长困难的问题:
1)、效率低下:指磁盘操作耗时,先将程序倒在磁盘上,再在内存寻找一片更大的空间将程序倒回来,这种做法效率低;
2)、交换能带来的空间增长有限:这个限制就是单一程序不能超过物理内存空间(减去操作系统占用部分)。

二、分页内存管理引入
2.1、Swap交换问题产生原因

  想解决Swap交换存在的问题,要需要分析其产生的根源是什么。空间碎片化的根源是每个程序大小不一样,这样在空间分配时存在不一致性。解决的办法自然是将空间按照某种大小进行分配,只要将虚拟内存和物理内存分成一样的部分,我们称为页,按也进行内存分配可以解决外部碎片问题。

  程序增长有限制是因为一个程序必须全部加在到内存才能运行,解决的办法就是使一个程序无需全部加载就可以运行,将需要的页面放在内存里,其他暂时不需要的页面放在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值