连续分配管理方式(单一连续分配 固定分区分配 动态分区分配) | 您所在的位置:网站首页 › 什么是动态分区什么是静态分区 › 连续分配管理方式(单一连续分配 固定分区分配 动态分区分配) |
文章目录
前言知识总览单一连续分配固定分区分配动态分区分配1. 系统要用什么样的数据结构记录内存的使用情况?2. 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配?3. 如何进行分区的分配与回收操作?分配方式一分配方式二回收情况一:回收区的后面有一个相邻的空闲分区回收情况二:回收区的前面有一个相邻的空闲分区回收情况三:回收区的前、后各有一个相邻的空闲分区回收情况四:回收区的前、后都没有相邻的空闲分区
碎片问题4. 思考==动态分区分配==应使用哪种装入方式?“紧凑”之后需要做什么处理?
知识回顾与重要考点
前言
此篇文章是我在B站学习时所做的笔记,大部分图片都是课件老师的PPT,方便复习用。此篇文章仅供学习参考。 提示:以下是本篇文章正文内容 知识总览
重点!!! MS—DOS 的存储管理采用了单一连续分配方式 只能用于单用户、单任务的操作系统!!! 内存中只能有一道用户程序,用户程序独占整个用户区空间。 缺点:会产生内部碎片 解说: 由于整个系统当中同一时刻只会有一个用户程序的运行,所以采用这种分配方式的系统当中,不一定需要采用内存保护,有的系统当中,它也会设置那种越界检查了一些机制,但是像早期的个人操作系统,微软的MS-DOS系统就没有采用这种内存保护的机制,因为系统中只会运行一个用户程序,那么即使这个用户程序出问题了,那也只会影响用户进程本身,或者说即使这个用户程序越界,把操作系统的数据损坏了,那这个数据一般来说也可以通过重启计算机就可以很方便地这进行修复,所以说采用单一连续分配的系统当中,不一定采取内存保护,那这也是它的优点呐,另一方面这个方式的缺点也很明显,就是只适用于单用户,单任务的操作系统,它并不支持多道程序并发运行,并且这种方式会产生内部碎片,那所谓的内部碎片就是指我们分配给某一个进程,或者说程序的内存区间当中,如果有重要部分没有被用上,那这就是所谓的内部碎片,像这个例子当中,本来整个用户区都是分配给这个用户进来的,但是有这么大一块,它是空闲的,暂时没有用起来,那本来给这个进程分配了,但是这个进程没有用上了这一部分内存区就是所谓的内部碎片,所以这个方式也会导致存储器的利用率很低。 固定分区分配
无外部碎片,会产生内部碎片 动态分区分配动态分区分配又称为可变分区分配。这种分配方式不会预先划分内存分区,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。因此系统分区的大小和数目是可变的。(eg:假设某计算机内存大小为64MB,系统区8MB,用户区共56 MB.….) 两种数据结构:空闲分区表和空闲分区链 假设系统采用的数据结构是“空闲分区表”… 如何回收? 空闲分区表为例 分配方式一
合并前的分区: 合并前: 合并前: 合并前: 重点!!! 动态分区分配没有内部碎片,但是有外部碎片。 可以通过紧凑(拼凑,Compaction)技术来解决外部碎片。即将各个进程挪位,挪出一个连续的空闲区域出来👇 答:①显然之前介绍的三种装入方式当中,动态重定位的方式,其实是最方便实现进程在内存当中移动位置这件事,所以我们应该采用的是 动态重定位 的方式。 ②紧凑之后,需要各个进程的起始地址给修改掉,进程的起始地址信息一般存放在进程对应的PCB当中,当进程要上CPU运行之前,会把进程的起始地址那个信息放到重定位寄存器里或者叫基址寄存器里。 知识回顾与重要考点 |
CopyRight 2018-2019 实验室设备网 版权所有 |