内存的基本知识与连续分配管理

news2024/10/5 12:55:36

目录

  • 一. 内存的基础知识
    • 1.1. 什么是内存
    • 1.2 指令的工作原理
    • 1.2.1 装入的三种方式 - 绝对装入
    • 1.2.2 可重定位装入
    • 1.2.3 动态重定位装入
    • 1.3 从写程序到程序运行
  • 二. 基本内存管理的概念
  • 三. 覆盖与交换
    • 3.1 覆盖技术
    • 3.2 交换技术
  • 四. 连续分配管理方式
    • 4.1 单一连续分配
    • 4.2 固定分区分配
    • 4.3 动态分区分配
  • 五. 动态分区分配算法
    • 5.1 首次适应算法(First Fit)
    • 5.2 最佳适应算法(Best Fit)
    • 5.3 最坏适应算法(Worst Fit)
    • 5.4 邻近适应算法(Next Fit)

在这里插入图片描述

\quad

一. 内存的基础知识

\quad

1.1. 什么是内存

\quad

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

\quad

1.2 指令的工作原理

\quad

在这里插入图片描述
可见,我们写的代码要翻译成CPU能识别的指令。这些指令会告诉CPU应该去内存的哪个地址读/写数据,这个数据应该做什么样的处理。在这个例子中,我们默认让这个进程的相关内容从地址#O开始连续存放,指令中的地址参数直接给出了变量x的实际存放地址(物理地址)。

思考:如果这个进程不是从地址0开始存放的,会影响指令的正常执行吗?

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

在这里插入图片描述

\quad

1.2.1 装入的三种方式 - 绝对装入

\quad

在这里插入图片描述
\quad

1.2.2 可重定位装入

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

1.2.3 动态重定位装入

\quad

在这里插入图片描述
\quad

1.3 从写程序到程序运行

\quad

在这里插入图片描述
在这里插入图片描述
先链接后装入
\quad
在这里插入图片描述
边装入边链接
\quad
在这里插入图片描述
需要用到时才装入链接

在这里插入图片描述

\quad

二. 基本内存管理的概念

\quad

内存空间的分配与回收
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

\quad

三. 覆盖与交换

\quad
在这里插入图片描述

\quad

3.1 覆盖技术

\quad

在这里插入图片描述
\quad

在这里插入图片描述
调用顺序, A, B, C…
同一层, 比如: B和C不能同时调用

\quad

3.2 交换技术

\quad

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

在这里插入图片描述

\quad

四. 连续分配管理方式

\quad

在这里插入图片描述

\quad

4.1 单一连续分配

\quad

在这里插入图片描述
\quad

\quad

4.2 固定分区分配

\quad

在这里插入图片描述

在这里插入图片描述

\quad

4.3 动态分区分配

\quad

在这里插入图片描述
\quad

在这里插入图片描述
\quad

在这里插入图片描述
\quad
\quad
第一种情况(进来的比原来的小)
在这里插入图片描述
\quad
第二种情况(进来的和原来的相等)
在这里插入图片描述

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

在这里插入图片描述

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

\quad

五. 动态分区分配算法

\quad

在这里插入图片描述
\quad

5.1 首次适应算法(First Fit)

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

5.2 最佳适应算法(Best Fit)

\quad

在这里插入图片描述
在这里插入图片描述
缺点:每次都选最小的分区进行分配,会留下越来越多的、很小的、难以利用的内存块。因此这种方法会产生很多的外部碎片。

\quad

5.3 最坏适应算法(Worst Fit)

\quad
在这里插入图片描述
缺点:每次都选最大的分区进行分配,虽然可以让分配后留下的空闲区更大,更可用,但是这种方式会导致较大的连续空闲区被迅速用完。如果之后有“大进程”到达,就没有内存分区可用了

\quad

5.4 邻近适应算法(Next Fit)

\quad

在这里插入图片描述

首次适应算法每次都要从头查找,每次都需要检索低地址的小分区。但是这种规则也决定了当低地址部分有更小的分区可以满足需求时,会更有可能用到低地址部分的小分区,也会更有可能把高地址部分的大分区保留下来(最佳适应算法的优点)

邻近适应算法的规则可能会导致无论低地址、高地址部分的空闲分区都有相同的概率被使用,也就导致了高地址部分的大分区更可能被使用,划分为小分区,最后导致无大分区可用(最坏适应算法的缺点)

四种算法中,首次适应算法的效果反而更好

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1697467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【全开源】赛事报名系统源码(Fastadmin+ThinkPHP和Uniapp)

基于FastadminThinkPHP和Uniapp开发的赛事报名系统,包含个人报名和团队报名、成绩查询、成绩证书等。 构建高效便捷的赛事参与平台 一、引言:赛事报名系统的重要性 在举办各类赛事时,一个高效便捷的报名系统对于组织者和参与者来说都至关重…

前后端部署笔记

windows版: 如果傻呗公司让用win电脑部署,类似于我们使用笔记本做局域网服务器,社内使用。 1.安装win版的nginx、mysql、node、jdk等 2.nginx开机自启参考Nginx配置及开机自启动(Windows环境)_nginx开机自启动 wind…

mapboxGL中山体背景+边界阴影的一种实现方案

概述 很多地图可视化的项目中有要求实现如下的效果,本文借助QGIS、PS和turf.js,在mapboxGL中实现山体背景+边界阴影的效果。 实现效果 实现 1. 需要数据 要实现这样的效果,我们需要如下数据: 山体背景图地级市数据…

[卷积神经网络]RepConv和重参数化

RepConv是Yolov7,YoloV9中一个重要的结构,其主要用于在保持精度不退化的情况下提升推理速度。RepConv在学习阶段和推理阶段拥有不同的结构,这使得其推理阶段的复杂度大大降低。这项技术的核心在于重参数化。 一、重参数化 重参数化的主要思想是将卷积(C…

2024年弘连网络FIC大会竞赛题线下决赛题

总结: FIC决赛的时候,很多小问题没发现,在pve平台做题确实很方便。 这套题目复盘完,服务器这块的知识确实收获了很多,对pve集群平台和网络拓扑也有了一定的认识,感谢各位大佬悉心指导。 接下来&#xff0…

工具使用-网络性能测试工具(iperf)-TCP 和 UDP 的吞吐量-包转发率参数的理解

时间戳:2024年5月26日15:18:39 iperf 和 netperf 都是最常用的网络性能测试工具,测试 TCP 和 UDP 的吞吐量。它们都以客户端和服务器通信的方式,测试一段时间内的平均吞吐量。 接下来,我们就以 iperf 为例,看一下 TC…

C语言PTA练习题:三角形类别,输入三角形三条边,求面积,四则计算器,猴子吃桃

7-1 三角形类别 输入三个整数,以这三个数为边长,判断是否构成三角形;若不能输出"no",若构成三角形,进一步判断它们构的是:锐角三角形或直角三角形或钝角三角形.分别输出"ruijiao",&qu…

Spring MVC+mybatis项目入门:旅游网(四)用户注册——mybatis的配置与使用以及Spring MVC重定向

个人博客:Spring MVCmybatis项目入门:旅游网(四)用户注册2-持久化 | iwtss blog 先看这个! 这是18年的文章,回收站里恢复的,现阶段看基本是没有参考意义的,技术老旧脱离时代(2024年…

qt-C++笔记之QThread使用

qt-C笔记之QThread使用 ——2024-05-26 下午 code review! 参考博文: qt-C笔记之使用QtConcurrent异步地执行槽函数中的内容,使其不阻塞主界面 qt-C笔记之QThread使用 文章目录 qt-C笔记之QThread使用一:Qt中几种多线程方法1.1. 使用 QThread 和 Lambda…

【二叉树】LeetCode.144:二叉树的前序遍历(小细节把握)

🎁个人主页:我们的五年 🔍系列专栏:初阶初阶结构刷题 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 1.题目描述:​编辑 2.问题分析: 🍔函数解读: …

功率电感的设计步骤

文章目录 1:高导磁气隙(铁氧体)1.1设计原理1.2 设计步骤 2 铁粉芯2.1:设计原理2.2:设计步骤 TI电感设计 学习视频原链接 截图 1 截图1 截图1 截图 2 截图2 截图2 1:高导磁气隙(铁氧体&#…

solidworks画螺栓学习笔记

螺栓 单位mm 六边形 直径16mm 水平约束 拉伸 选择厚度6mm 拉伸切除 画相切圆 切除厚度6mm,反向切除 ,拔模角度45 螺栓 直径9mm,长度30mm 倒角 直径1mm,角度45 异形孔向导 螺纹线 偏移打勾,距离为2mm&#…

【C语言】八进制、十六进制

前言 在我们日常生活中使用的数往往是十进制的,而当我们学习C语言后我们会接触到许多不同的进制并且时常需要去思考与使用这些不同的进制(尤其是2的幂相关的进制,因为这种计数系统比十进制更接近于计算机的二进制系统)&#xff0…

牛客网刷题 | BC100 直角三角形图案

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…

爽!AI手绘变插画,接单赚爆了!

我最近发现一款名叫Hyper-SD15-Scribble的AI项目,可以实现一键手绘变插画的功能,而且它搭载了字节出品的超快速生成图片的AI大模型Hyper-SD15,可以实现几乎实时生成图片,有了它,拿去接一些手绘商单分分钟出图&#xff…

java生产制造执行系统MES源码:系统环境:Java EE 8、Servlet 3.0、Apache Maven 3 2;

MES系统技术选型 系统环境:Java EE 8、Servlet 3.0、Apache Maven 3 2; 主框架:Spring Boot 2.2.x、Spring Framework 5.2.x、Spring Security 5.2.x 3 持久层:Apache MyBatis 3.5.x、Hibernate Validation 6.0.x、Alibaba Dru…

基于STM32实现智能气体检测报警系统

⬇帮大家整理了单片机的资料 包括stm32的项目合集【源码开发文档】 点击下方蓝字即可领取,感谢支持!⬇ 点击领取更多嵌入式详细资料 问题讨论,stm32的资料领取可以私信! 目录 引言环境准备智能气体检测报警系统基础代码示例&…

ZDH-智能营销-插件服务

目录 主题 项目源码 预览地址 安装包下载地址 插件服务 插件服务使用场景 插件服务日志 感谢支持 主题 本篇文章主要介绍ZDH-智能营销平台下的插件服务,包含插件的应用场景 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 zdh_magic_mirror: …

AIGC002-LoRA让大模型微调更加轻盈方便!

AIGC002-LoRA让大模型微调更加轻盈方便! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 这篇论文名为 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS,作者是 Edward Hu 等人。它提出了一种名为 低秩自适应 (Low-Rank Adaptation, LoRA) 的新方…

AI 谈“浔川AI翻译机”

在天工AI,天工AI在全网搜索“浔川AI翻译机”。 1 创作助手谈“浔川AI翻译机”: “浔川AI翻译机”是一个利用人工智能技术进行语言翻译的设备或应用程序。它可以将一种语言的文字或口语翻译成另一种语言,以实现不同语言之间的沟通和理解。浔…