内存空间的分配与回收

一、连续分配管理方式

1.单一连续分配

原理-将内存分为系统区和用户区。系统区-位于内存低地址,存放操作系统数据;用户区-位于内存高地址,存放用户进程数据。内存中只能有一道用户程序,用户程序独占整个用户区空间。
特点-整个分配,无外部碎片(未被分配的内存空间,处于空闲)。介只适用于单用户、单任务操作系统,存储器利用率低。

2.固定分区分配

原理-将整个用户空间划分为若干个固定大小的分区,每个分区只装入一道作业,每个分区独享一个空间。包括分区大小相等和分区大小不等两种类型。
实现-OS建立一个分区说明表数据结构,实现各个分区的分配与回收。
内存空间的分配与回收_第1张图片

特点-无外部碎片,但会产生内部碎片,且会出现空间太小无法分配的情况。

3.动态分区分配(可变分区分配)

原理-进程装入内存时,根据进程大小动态按需建立分区,系统分区大小和数目是可变的。
实现
内存空间的分配与回收_第2张图片

分配-通过算法实现;
回收-相邻分区合多为一,无相邻,新增一个空闲表项。
特点-无内部碎片,但有外部碎片

二、拓展

1.内部碎片
分配给进程内存区中未被用上的部分
2.外部碎片
内存中某些空闲分区太小难以利用的部分
3.紧凑技术(拼凑)解决外部碎片
4.连续分配-为用户进程分配一个连续的内存空间

你可能感兴趣的:(操作系统学习,操作系统)