news 2026/8/7 21:57:36

计算机操作系统24

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机操作系统24

第二十四课:连续内存分配


一、什么是连续内存分配?

先理解名字。

连续:

表示:

一个程序:

必须:

占用一整块连续的内存空间。

例如:

程序A:

需要:

100MB。

那么:

分配:

---------------- 程序A 100MB ----------------

必须:

连续。

不能:

拆成:

50MB + 50MB。


早期操作系统:

主要采用:

连续分配。


二、最简单方式:单一连续分配

这是:

最早的方法。

思想:

非常简单:

内存只分给一个用户程序。

结构:

高地址 ------------- 用户程序 ------------- 操作系统 ------------- 低地址

例如:

电脑:

内存:

8GB。

系统:

占:

1GB。

剩下:

7GB:

全部:

给当前程序。


优点

简单。

容易实现。


缺点

最大问题:

浪费。

例如:

一个程序:

只需要:

1GB。

但是:

系统给它:

7GB。

剩下:

6GB:

没人用。


所以:

这种方式:

现在基本不用。


三、固定分区分配

为了:

提高利用率。

操作系统:

把内存:

提前:

划分:

几个固定区域。

例如:

内存:

100MB。

分成:

---------------- 系统 20MB ---------------- 分区1 20MB ---------------- 分区2 30MB ---------------- 分区3 30MB

每个程序:

进入:

一个分区。


例如:

程序A:

需要:

15MB。

进入:

20MB分区。


程序B:

需要:

25MB。

进入:

30MB分区。


四、固定分区的问题

最大问题:

内部碎片。


例子:

分区:

大小:

100MB。

程序:

需要:

70MB。

系统:

给:

100MB。

那么:

剩余:

30MB。

但是:

这个30MB:

别人:

不能使用。

为什么?

因为:

分区已经:

属于:

这个程序。


这就是:

内部碎片。


五、动态分区分配(重点)

固定分区:

太死板。

于是:

出现:

动态分区。

思想:

程序需要多少,就分多少。


例如:

内存:

---------------- 系统 ---------------- 空闲100MB ---------------- 程序A 50MB ---------------- 空闲200MB

来了:

程序B:

需要:

80MB。

系统:

找:

100MB空闲区。

分:

80MB。

变成:

---------------- 程序B 80MB ---------------- 剩余20MB

优点:

减少内部碎片。


但是:

产生:

新的问题。


六、外部碎片出现

假设:

内存:

如下:

程序A 空闲10MB 程序B 空闲20MB 程序C 空闲30MB

总空闲:

60MB。


现在:

来了:

程序D。

需要:

50MB。

能放吗?

不能。

为什么?

虽然:

总共有:

60MB。

但是:

没有:

连续50MB。


这就是:

外部碎片。


七、动态分区如何选择空间?

重点来了。

假设:

有多个空闲区域。

程序来了。

选择哪个?

操作系统:

有几种算法。


1. 首次适应算法(First Fit)★★★★★

英文:

First Fit。

思想:

从低地址开始找,第一个满足的空闲区。


例如:

空闲:

100MB 50MB 200MB

程序:

需要:

40MB。

从头找:

第一个:

100MB。

够。

于是:

放进去。


结果:

简单。

速度快。


缺点:

低地址:

容易:

产生很多小碎片。


口诀:

首次适应:第一个能放就放。


2. 最佳适应算法(Best Fit)★★★★★

思想:

找最小但够用的空闲区。


例如:

空闲:

100MB 50MB 200MB

程序:

需要:

40MB。

比较:

100:

剩60。

50:

剩10。

200:

剩160。

选择:

50MB。


优点:

减少大空间浪费。


缺点:

容易产生大量小碎片。

因为:

总是切小空间。


口诀:

最佳适应:留下最小剩余。

3. 最坏适应算法(Worst Fit)

思想:

总是选择最大的空闲区。


例如:

空闲:

100MB 50MB 200MB

程序:

需要:

40MB。

选择:

200MB。

剩:

160MB。


优点:

剩余空间较大。


缺点:

大空间容易被消耗。


口诀:

最坏适应:拿大块,留大块。


八、三个算法比较(★★★★★)

算法选择方式特点
首次适应第一个满足速度快
最佳适应最小满足碎片多
最坏适应最大空间浪费大空间

九、考试计算题怎么做?

典型题:

空闲区:

100KB 500KB 200KB 300KB 600KB

进程:

P1=212KB P2=417KB P3=112KB P4=426KB

问:

使用首次适应:

如何分配?


步骤:

第一步

P1:

212KB。

从头找:

100:

不够。

500:

够。

分配。


第二步

P2:

417KB。

继续:

找:

剩余空间。


注意:

考试:

一定:

按照顺序模拟。

不能:

凭感觉。


十、连续分配总结

我们学了:

① 单一连续分配

特点:

一个程序。

简单。

浪费大。


② 固定分区

特点:

提前划分。

产生:

内部碎片。


③ 动态分区

特点:

按需分配。

产生:

外部碎片。


④ 三种算法

首次适应 First Fit 最佳适应 Best Fit 最坏适应 Worst Fit

十一、本课重点(★★★★★)

必须掌握:

连续分配:

一个程序占连续内存。


内部碎片:

分给你的比需要的大。


外部碎片:

空闲总量够,但不连续。


三个算法:

口诀:

首次找第一个,最佳找最小,最坏拿大块。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 21:53:22

vuejs-advanced-learning资源精选:2023年必学的Vue高级课程

vuejs-advanced-learning资源精选:2023年必学的Vue高级课程 【免费下载链接】vuejs-advanced-learning A curated list of advanced and/or in-depth learning resources about Vue.js 项目地址: https://gitcode.com/gh_mirrors/vu/vuejs-advanced-learning …

作者头像 李华
网站建设 2026/8/7 21:49:34

安阳网站建设哪家便宜才靠谱?揭秘低价背后的真相与选型指南

在这个移动互联网疯狂渗透_every_个角落的时代,对于安阳本地的中小企业主或者刚起步的创业者来说,拥有一张“网络名片”已经不再是一道选择题,而是一道必答题。打开电脑,看着空空如也的企业官网,心里难免会有些发慌;再看隔壁竞争对手的官网,界面精美、功能齐全,更是让人…

作者头像 李华
网站建设 2026/8/7 21:48:39

Moirai-1.0-R-Large配置文件深度解析:参数调优让预测精度提升30%

Moirai-1.0-R-Large配置文件深度解析:参数调优让预测精度提升30% 【免费下载链接】moirai-1.0-R-large 项目地址: https://ai.gitcode.com/hf_mirrors/Salesforce/moirai-1.0-R-large Moirai-1.0-R-Large是Salesforce推出的高效时间序列预测模型&#xff0c…

作者头像 李华
网站建设 2026/8/7 21:45:26

三步轻松下载国家中小学智慧教育平台电子课本PDF的完整指南

三步轻松下载国家中小学智慧教育平台电子课本PDF的完整指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址: http…

作者头像 李华
网站建设 2026/8/7 21:45:00

B站直播录制终极指南:录播姬5分钟快速上手教程

B站直播录制终极指南:录播姬5分钟快速上手教程 【免费下载链接】BililiveRecorder 录播姬 | mikufans 生放送录制 项目地址: https://gitcode.com/gh_mirrors/bi/BililiveRecorder 你是否曾经因为错过心爱主播的直播而遗憾?或者想要保存精彩的直播…

作者头像 李华