操作系统学习笔记(八):连续内存分配

您所在的位置:网站首页 解决内部碎片的方法 操作系统学习笔记(八):连续内存分配

操作系统学习笔记(八):连续内存分配

2023-09-12 05:58| 来源: 网络整理| 查看: 265

系统运行过程中,碎片越来越多,很可能无法获取需要的较大的内存空间。我们需要解决这个问题,这就是碎片整理的意义,可以通过碎片整理获得更大的连续内存空间,以便于满足进程的应用空间需求。碎片整理是通过调整进程占用的分区位置来减少或避免分区碎片的。碎片整理有很多种方式,比如碎片紧凑、分区对换。

碎片紧凑: 实现方式:通过移动分配给进程的内存分区,以合并外部碎片。条件:所有的应用程序可以动态重定位。这是因为程序中可能有很多地址引用,如果引用了绝对地址,移动分配的内存位置可能就会出错。因此需要动态重定位,执行到命令的时候才生成内存地址。时机:进程处于等待状态时搬动。开销:移动已分配的内存分区是有开销的,因此不会为了一小块碎片就进行紧凑。具体开销暂且按下不讲。 分区对换:

分区对换是通过抢占并回收处于等待状态进程的分区,以增大可用内存空间。即将等待状态进程的数据存储到外存中,也就是对换到对换区。可以结合下面的图示理解:假设系统运行到某个时刻处于如下第一张图片的状态,图中下侧为内存与外存状态,上侧为操作系统维护的进程状态数据结构示意图,即有三个进程P1、P2、P3占满了内存区,而P1处于等待状态,P2处于运行状态,P3处于就绪状态。此时又有第四个进程要运行,而内存是不够的。则进行分区对换,对换后如第二张图所示,将处于等待状态的进程P1移动到外存,此时就有足够的内存空间。通过这种方式,我们可以让更多的进程在系统中交替进行。

由于对换是在内存与外存之间,对换速度是非常慢的,开销很大,因此需要解决一个问题,就是到底要交换哪些进程。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3