操作系统之内存空间分配方式

目录

一、传统存储管理

二、连续分配管理方式

单一连续分配

固定分区分配

动态分区分配

三、非连续分配管理方式


一、传统存储管理

传统存储管理分为连续分配方式和非连续分配方式,

  • 一次性(塞不下,并发度下降)

  • 驻留性(导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源)

二、连续分配管理方式

分配的必须是一个连续的内存空间

逻辑地址->物理地址:通过重定位寄存器

单一连续分配

单一连续分配是最简单的内存管理方式。

  • 系统区与用户区:内存被分为系统区和用户区,系统区仅供操作系统使用,通常位于低地址部分,而用户区则为用户提供,内存中只存在一道程序
  • 优点:实现简单,无外部碎片,可以采用覆盖技术扩充内存。
  • 缺点:只适用于单用户、单任务操作系统,内存利用率低,存在内部碎片。

固定分区分配

固定分区分配将用户内存空间划分为若干个固定大小的分区,每个分区装入一道作业。

  • 分区说明表:每个表项对应一个分区,包含分区大小、起始地址和状态等信息。
  • 分类:
    • 分区大小相等:适用于相同对象控制的场合,缺乏灵活性。
    • 分区大小不等:根据作业大小划分,增加灵活性。
  • 优点:实现简单,无外部碎片。
  • 缺点:可能产生内部碎片,内存利用率低,不能实现多进程共享内存。

动态分区分配

动态分区分配在进程装入内存时动态创建分区,分区大小正好满足进程需求。其特点包括:

  • 存储方式:
    • 空闲分区表:记录空闲分区的信息,如分区号、大小和起始地址。
    • 空闲分区链:通过指针链接空闲分区,记录分区信息。
  • 优点:没有内部碎片。
  • 缺点:存在外部碎片,需要合并相邻的空闲分区。

动态分区分配的算法包括:

  • 首次适应算法:空闲分区按照地址递增的次序进行查找,第一个满足条件的进行分配。性能较好,但可能导致内存碎片。
  • 最佳适应算法:按容量递增的顺序进行查询分区,第一个满足条件的进行分配。尽量保留大片空闲区,但可能导致外部碎片。
  • 最坏适应算法(最大适应算法):空闲分区按照容量递减的次序进行查找,第一个满足条件的进行分配。可能无法有效利用大内存块。
  • 邻近适应算法(循环首次适应算法):从上次查找结束的位置开始继续查找。可能导致尾部空间分裂成小碎块,但分配时无需重新排序链表。

三、非连续分配管理方式

基本分页存储管理

基本分页存储管理将内存和进程分为大小相等的页框和页,通过页表实现逻辑地址到物理地址的转换。这种方式无外部碎片,但存在少量页内碎片。

操作系统之基本分页存储管理_页号块号-优快云博客

基本分段存储管理

基本分段存储管理按照程序自身的逻辑关系划分为若干个段,每个段在内存中占据连续空间。这种方式便于实现信息的共享和保护,但会产生外部碎片。

操作系统之基本分段存储管理_什么是分段存储管理一句话概括-优快云博客

段页式存储管理

段页式存储管理将进程按逻辑模块分段,再将各段分页。这种方式结合了分段和分页的优点,但地址转换过程较为复杂。

操作系统之段页式存储管理-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值