【操作系统】固定分区和可变分区 您所在的位置:网站首页 什么是分区管理模式 【操作系统】固定分区和可变分区

【操作系统】固定分区和可变分区

2023-11-04 12:18| 来源: 网络整理| 查看: 265

下面先介绍一个概念:

页:一个固定长度的数据块,存储在二级存储器中(如磁盘)。数据页可以临时复制入内存的页框中。

段:一个变长的数据块,存储在二级存储中,整个段可以临时复制到内存的可用区域(分段),或者将段分成许多页,将页单独复制到内存中(分段分页相结合)。

重定位:就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程

​ 操作系统存储至少要分成两级:内存和外存。内存提供快速的访问,成本相对较高,是易失性的,不能永久存储。外存比内存慢,但是便宜,非易失性,可以长期存储程序和数据。而较小的内存用于保存当前使用的程序和数据。

​ 内存管理最基本的操作时由处理器把程序装入内存中执行。

固定分区:

原理:又称定长分区或静态分区模式,是满足多道程序设计需要的最简单的存储管理技术。基本思想:给进入主存的用户作业划分一块连续存储区域,把作业装入该连续存储区域,若有多个作业装入主存,则它们可并发执行。

使用大小相等的固定分区有两个难点:程序可能太大而不能放到一个分区中,内存的,利用率很低。由于被装入的数据块小于分区大小,从而导致分区内部有浪费现象,成为“内部碎片”。对与大小不等的分区策略,最简单的方法就是把每个进程分配到能够容纳它的最小分区中。

目前已经基本上没有什么场合使用固定分区。

优势:实现简单,只需要极少的操作系统开销

缺点:有内部碎片,对内存的使用不充分,活动进程的最大数目是固定的。

可变分区:可变分区存储管理不是预先把内存中的用户区域划分成若干固定 分区,而是在作业要求装入内存时,根据用户作业的大小和当时内存空间使用情况决定是否为该作业分配一个分区。因此分区大小不是预先固定的,而是按作业需求量来划分的;分区的个数和位置也不是预先确定的。它有效地克服了固定分区方式中,由于分区内部剩余内存空置造成浪费的问题。

一、主存空间的分配和回收   系统初启时,整个用户区可看作一个大的空闲区。当作业要求装入时,根据作业对内存需求量,从空闲区中划出一个与作业大小一致的分区来装入该作业,剩余部分仍为空闲区。当空闲区能满足需求时(即空闲区长度>=作业长度),作业可装入;否则,作业暂时不能装入。图3.9是可变分区存储空间分配示意。

img

装入内存的作业执行结束后,所占分区被收回成为一个空闲区,这个空闲区又可用于装入其他作业。随着作业不断装入和撤离,内存空间被分成许多分区,有的被作业占用,有的空闲。如图3.10所示。可见内存中空闲区数目和大小是在不断变化的。

img

系统设置一张“ 空闲区表 ”,用来记录空闲区的起始地址和长度。当有作业要装入内存时,在空闲区表中找一找“ 未分配 ”的栏目,从中找出一个能容纳作业的空闲区。若空闲区大于作业的长度时则被分成两部分,一部分分配给作业;另一部分仍作为空闲区登记在表中。若找到的空闲区等于作业长度时,分配后该栏目状态改为“空”状。当有作业撤离收回所占分区后,应把收回区域的起始地址和长度登记在状态为“空”的栏目中,且将状态改为“未分配”。如果收回的区域正好和某一空闲区相邻,则应将其合并成一个分区后登记。如图3.11所示。

img

可变分区方式常用的内存分配算法有:“最先适应”分配算法、“最优适应”分配算法、“最坏适应”分配算法。   1.最先适应分配算法

  每次分配总是顺序查找空闲区表,找到能满足长度要求的空闲区就分配。优点是实现简单,缺点是可能将大的空闲区分割成许多小的空闲区,形成许多不连续的“碎片”。碎片长度可能不能满足作业要求,降低了内存利用率。   改进方法,可把空闲区按地址顺序从小到大登记在空闲区表中,有利于大作业。问题是归还空区时须按地址插入表中适当位置。   2.最优适应分配算法   按作业要求从所有空闲区中挑选一个能满足要求的最小空闲区,这样保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。实现办法:将空闲区按长度以递增次序登记在表中,分配时按空闲区表顺序查找即可。缺点是可能碎片更小而无法使用。回收时也要按长度扦入。   3.最坏适应分配算法   这种算法总是挑选一个最大的空闲区分割一部分给作业使用,使剩下部分不致太小,仍可供分配使用。实现办法:空闲区表中的登记项按空闲区长度递减顺序排列,按序查找分配。图3.12是上述分配算法的示例。

img

img

img

二、地址转换和存储保护

  采用可变分区方式时,一般采用动态重定位方式装入作业。因此要有硬件的地址转换机构支持。硬件设置两个专用的控制寄存器:基址寄存器和限长寄存器,以及一些加法和比较线路等。如图3.13所示。img

  当某作业可以占用处理器时,进程调度便把该作业所占分区首地址(如a)送入基址寄存器,将作业所占分区最大地址(如a+k)送入限长寄存器。CPU 每执行一条指令时都要由硬件的地址转换机构把逻辑地址转换成绝对地址。其绝对地址应满足下式:        基址寄存器内容



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有