存储器管理之分区存储管理

article/2025/8/20 15:33:58

分区式管理是满足多道程序的最简单的存储管理方案。它的基本思想是将内存划分成若干个连续区域,称为分区。每个分区只能存储一个程序,且程序也只能在它所驻留的分区中运行。

⑴固定分区

操作系统预先把可分配的主存空间分割成若干个连续区域,如下图:
在这里插入图片描述

一旦分好,则每个分区的大小固定不再变化,且分区的个数也不再改变。一个分区只能容纳一道作业。
固定分区分配算法:(如右图)

固定分区分配流程图

①固定分区回收算法

只需将分区说明表中相应的分区的占有标志位置成“0”即可。

②固定分区的优缺点

内存分配、回收算法简单,容易实现。(优点)
主存空间利用率不高,容易造成内零头。(缺点)

⑵可变分区

动态地划分内存。即在作业在装入内存时把可用内存“切出”一个连续的区域分配给该作业,且分区大小正好适合作业的需要。为了实现动态分配,系统设立空闲分区链表:
在这里插入图片描述

每个空闲块的前后两个单元,放置必要的说明信息和指针。系统只要设立一个链首指针,指向第一个空闲块即可。分配程序可以依照自由块链表,来查找适合的空闲块进行分配。(如下图)
在这里插入图片描述

①可变分区分配算法

按空闲块链接的方式不同,可以有以下四种算法:
(a)最佳适应法 为作业选择分区时总是寻找其大小最接近于作业所要求的存储区域。
最佳适应算法:(best fit algorithm)。“最佳”的含义是指每次为作业分配主存时 ,总是把既能满足要求,又是最小的空闲区分配给作业,以免由于“大材小用”而浪费主存。为了加速查找,该算法要求将所有的空闲区按其大小递增次序排列。
设作业序列: A:12K B:3K C:10K
在这里插入图片描述

(b)最坏适应法
与最佳适应法相反,它在作业选择存储块时,总是寻找最大的空白区。
作业序列: A:12K B:3K C:10K
在这里插入图片描述

©首次适应法
为作业选择分区时总是按地址从低到高搜索,只要找到可以容纳该作业的空白块,就把该空白块分配给该作业。
首次适应算法:(first fit algorithm)。在该算法中,把主存中所有空闲区按其物理地址递增的次序排列。在为作业分配存储空间时,从低址空闲区开始查找,直到找到第一个能满足要求的空闲区后,从中划出与请求的大小相等的存储空间分配给作业,余下的空闲区仍留在空闲区表或链中。
作业序列: A:12K B:10K C:3K
在这里插入图片描述

(d)下次适应法
类似首次适应法,每次分区时,总是从上次查找结束的地方开始,只要找到一个足够大的空白区,就把它划分后分配出去。
下次适应算法:(next fit algorithm)。该算法是首次适应算法的变形,在为作业分配存储空间时,是从上次所分配的空闲区的下一个空闲区开始查找,直到找到第一个能满足要求的空闲区,从中划出一块与请求的大小相等的一块存储区分配给作业。在该算法中应采取循环查找方式,即最后上个空闲区的大小仍不能满足要求时,应再从第一个空闲区开始查找,故又称为循环造就算法。
作业序列: A:12K B:10K C:3K
在这里插入图片描述

⑵可变分区回收情况

设R:回收区; F1:上邻空白块;
F2:下邻空白块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑶可重定位分区

紧凑技术
为了消除外零头,进一步提高主存的利用率,定时地(或者在主存空间紧张时)把主存中的作业“搬家”集中在主存的一端。另一端就产生了一个大的空闲区。这种技术称为存储器的“紧凑 ”。
在这里插入图片描述

可重定位分区的优缺点
解决了可变分区分配所引入的“外零头”问题。(优点)
消除内存碎片,提高内存利用率。(优点)
提高硬件成本,紧凑时花费CPU时间。(缺点)

⑷多重分区

以上讨论都是基于一个作业在主存中占据的是一个连续分区的假定。为了支持结构化程序设计,操作系统往往把一道作业分成若干片段(如子程序、主程序、数据组等)。这样片段之间就不需要连续了。只要增加一些重定位寄存器,就可以有效地控制一道作业片段之间的调用。
如下图所示,作业A、B分别被分成两个片段放进互不相连的存储区域中。由两个变址寄存器实现控制。
在这里插入图片描述

⑸分区的保护

为了防止一道作业有意或无意地破坏操作系统或其它作业。一般说来,没有硬件支持, 实现有效的存储保护是困难的。通常采取:界限寄存器方式 和保护键方式 两种措施,或二者兼而有之。

①界限寄存器方式

在这里插入图片描述
在这里插入图片描述

②保护键方式

在这里插入图片描述

注意:保护键0是指定分配给操作系统使用的。

欢迎大家加我微信交流讨论(请备注csdn上添加)
在这里插入图片描述


http://chatgpt.dhexx.cn/article/WSxABiVD.shtml

相关文章

存储管理的功能

我是一个有强迫症的人,什么文件都要归类,电脑桌面干干净净的放着几个必要的文件夹,所有的文件对应有不同的文件夹存放,如果看到某个文件(只要不是临时存放的)出现在桌面上,就感觉非常刺眼。 我…

操作系统---存储管理

存储管理 操作系统将外存的文件调入到内存中,以便CPU调用,如果调用的内容不在内存中,则会产生缺页中断;产生缺页中断后,这事需要从外存调数据到内存中,然后CPU接着从断点继续调用内存中的数据;在…

操作系统的存储管理

写在前面:我们都希望计算机拥有一个私有的,无限大的,速度无限快并且是永久性的存储器,但是这样额要求必定会价格昂贵,经过多年的探索,人们提出了“分层存储管理体系”,在这个体系中有&#xff1…

页式存储管理

页式存储管理为操作系统中的内容,但是在计算机组成原理中的虚拟存储器部分也用到了这一方式。 分区式存储管理最大的缺点是碎片问题严重,内存利用率低。究其原因,主要在于连续分配的限制,即它要求每个作用在内存中必须占一个连续…

计算机操作系统-3-存储管理

Lecture3-存储管理 存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源——内存储器。内存空间一般分为两部分 系统区:存放操作系统内核程序和数据结构等。用户区:存放应用程序和数据。 存储管理包括以下功能: 存储…

(存储管理)存储管理的四大基本功能

存储管理的四大基本功能 1、内存分配与回收 当有作业进入系统时,存储管理模块就会根据当前内存情况来分配内存给它;当作业完成后,就会回收作业占用的内存,将这部分内存设置为可分配状态。 分配方式主要有两种: 静态…

实验三、存储管理

目录 实验三、存储管理实验目的实验内容实验步骤1、虚拟内存信息检测2、分配虚拟内存 实验三、存储管理 实验目的 (1)通过实验了解windows内存的使用,学习如何在应用程序中管理内存、体会Windows应用程序内存的简单性和自我防护能力&#x…

操作系统存储管理

目录 - 3.1 内存的基础知识 - 3.1.1 什么是内存,有何作用 - 3.1.2 进程运行的基本原理 - 3.2 内存管理的概念 - 3.3 覆盖与交换 - 3.4 连续分配管理方式 - 3.5 动态分区分配算法 - 3.6 基本分页存储管理的基本概念 - 3.7 基本地址变换机构 - 3.8 具有快表的…

计算机操作系统--存储管理

基本概念 1. 存储器的结构 存储器顾名思义,就是用来保存数据的东西。随着科技的进步,存储器正朝着高速度、大容量、小体积方向发展。一般情况下,存储器的结构有如下两类: 寄存器-主存-外存寄存器-缓存-主存-外存 对于存储器有…

操作系统——存储管理

文章目录 1.存储管理概述1.1存储层次结构1.2存储器管理的功能1.2.1内存分配1.2.2地址映射1.2.3存储保护1.2.4内存扩充 1.3地址重定位1.3.1名字空间、地址空间和存储空间1.3.2地址重定位1.3.2.1静态重定位1.3.2.2动态重定位 2.存储器连续分配2.1单一连续分配管理方式2.2分区存储…

拉格朗日乘数法基础

背景 线性可分 SVM 的目标函数最终转换为一个带约束条件的求极值问题,而拉格朗日乘子法,恰恰是一种多元函数在变量受到条件约束时,求极值的方法。正好可以用来解决 SVM 的目标函数最优化。 那么拉格朗日乘数法的理论过程如何呢?…

拉格朗日乘子法和KKT条件

拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。前提是:只有当目标函数为凸函数时,使用这两种方法才保证求得的是…

拉格朗日乘子法几何意义

为什么出现拉格朗日乘子法? 最短路径问题从几何意义中获得灵感:从数学公式中获得灵感推广到高维空间 一个最短路径问题 假设你在M点,需要先到河边(上图右侧曲线 )再回到C点,如何规划路线最短?…

拉格朗日乘子法(自己总结一些要点)

主要是研究SVM算法的时候涉及到了拉格朗日乘子法,由于是大学数学的内容,开始看懂,也不高兴认真去看。后来发现绕不开,于是打算认真去研究下。主要还是百度百科(https://baike.baidu.com/item/%E6%8B%89%E6%A0%BC%E6%9C…

拉格朗日乘子法:写得很通俗的文章

拉格朗日乘子法 最近在学习 SVM 的过程中,遇到关于优化理论中拉格朗日乘子法的知识,本文是根据几篇文章总结得来的笔记。由于是刚刚接触,难免存在错误,还望指出?。另外,本文不会聊到深层次的数学推导,仅仅…

拉格朗日数乘法

拉格朗日乘数法(Lagrange Multiplier Method)之前听数学老师授课的时候就是一知半解,现在越发感觉拉格朗日乘数法应用的广泛性,所以特意抽时间学习了麻省理工学院的在线数学课程。新学到的知识一定要立刻记录下来,希望…

真正理解拉格朗日乘子法和KKT条件

转载自:https://www.cnblogs.com/xinchen1111/p/8804858.html 这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容。 首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: minf(x) m i n f ( x ) min…

【最优化】拉格朗日乘子法

拉格朗日乘子法 前面几节讲述的都是无约束优化问题的相关算法,但是在实际生活中碰到的几乎都是有约束问题模型。 等式约束的拉格朗日乘子法 算法框架 1. 问题描述 以下对约束优化问题中常出现的概念做一下简要解释: 可行解:所有满足约束条…

拉格朗日乘子法的通俗理解

拉格朗日乘子法的通俗理解 1. 举例2. 求偏导3. 拉格朗日乘子法4. 乘子 1. 举例 这里举个简单的例子吧 在家里做蛋糕,假如只计算鸡蛋和牛奶的价格 其中鸡蛋的价格为4.5¥/斤,牛奶为12¥/升,而预算刚好是20¥ 那…

拉格朗日乘数法计算技巧

昨天有位朋友让我看了一道题(见下图),方法是使用拉格朗日乘数法进行求解的,我刚开始算的时候感到非常困难,后来在答案的帮助下发现可以从x,y,z的对称性以及成比例暗示中着手,经此一题,我不由发问…