什么是分段和分页?

news2024/9/20 20:19:33

内存管理的必要性

  • 很早之前计算机只能运行单个进程,就算运行批处理程序,也是棑好对,一个一个的进行处理,不存在多个进程并发运行,这时候内核对于内存管理相对比较简单,直接把物理内存地址拿过来是使用即可。

  • 随着计算机演进,支持多进程的OS,多个进程都都使用同一个物理地址空间,很容易多个进程之间相互干扰而引起进程的不可预期的行为。为了解决这个问题,CPU中的MMU(内存管理单元)引入了虚拟地址空间。以32位操作系统经为例,每个进程都可以拥有4G的寻址空间,当进程需要内存时候,通过转换技术和虚拟地址进行关联。MMU通过分页的机制,提供进程的虚拟地址到物理地址的映射方法。段页机制是MMU机制提供,Linux内核是使用者。

MMU的内存管理机制 

  • 在x86体系结构下CPU对内存寻址都是通过分段和分页方式进行,在保护模式下,一个段的可以理解为基地址+段的界线+类型。进程的虚拟地址就是在段中的偏移量;线性地址就是在某个段中基地址+偏移地址得出的地址;在x86中MMU提供了分页机制,如果未开启,那么线性地址就是物理地址;反之需要经过分页机制换算后,线性地址才能转为物理地址。MMU对于内存的管理主要是分段和分页,CPU把生成的逻辑地址交给MMU内的分段单元,分段单元为每个逻辑地址生成一个线性地址,然后再将线性地址交给MMU的分页单元,最终生成物理内存的地址。

分页(Paging) 

分页是一种无需连续分配物理内存的内存管理方案。进程的地址空间被划分为固定大小的块,称为页,而物理内存被划分为固定大小的块,称为帧。

关键概念

  • 页:进程地址空间的固定大小块。

  • 帧:物理内存的固定大小块。

  • 页表:用于将虚拟地址映射到物理地址的数据结构。页表中的每个条目对应一个页面,并包含该页面所在帧的编号。

地址转换过程分为 3 个步骤

  1. 逻辑地址空间:逻辑地址(由 CPU 生成)分为页码和页偏移量。

  2. 页表查找:页码作为页表的索引,用于查找相应的帧号。

  3. 物理地址形成:帧号与页偏移量相结合,形成内存中的物理地址。

优点

  • 消除外部碎片。

  • 简化内存分配。

  • 支持高效的交换和虚拟内存。

缺点

  • 可能导致内部碎片。

  • 页表需要额外内存。

  • 由于多次访问内存,地址转换速度较慢。

分段(Segmentation)

分段是一种内存管理技术,根据程序的逻辑划分(如函数、对象或数据数组),将内存划分为大小可变的段。

关键概念
  • 段:程序的逻辑划分,每个段的大小可变。

  • 段表:将段号映射到段的基地址和长度的数据结构。

地址转换过程分为 3 个步骤
  1. 逻辑地址空间:逻辑地址包括段号和段内偏移量。

  2. 段表查找:段号用作段表的索引,用于查找段的基地址。

  3. 物理地址形成:将基址与偏移量相加,形成内存中的物理地址。

优点
  • 为程序的不同部分提供逻辑分隔。

  • 便于保护和共享程序段。

  • 简化对不断增长的数据结构的管理。

缺点
  • 可能导致外部碎片。

  • 内存管理更复杂。

  • 由于多次访问内存,地址转换速度较慢。

分段和分页的比较

  • 内存分配:分页将内存划分为固定大小的单元,而分段将内存划分为可变大小的单元。

  • 碎片:分页消除了外部碎片,但可能导致内部碎片。分段可导致外部碎片,但可避免内部碎片。

  • 地址转换:分页涉及页表,而分段使用段表。

  • 逻辑视图:分页更直接,但不太符合程序的逻辑视图。分段与程序内的逻辑划分更为一致。

总之,分页和分段都有自己独特的内存管理方法,各有利弊。在某些系统中,它们还可以结合使用,以发挥两种技术的优势。

混合分页和分段

有些系统结合使用这两种技术,以发挥各自的优势。例如,可以将一个分段划分为多个页面,以便从分段的逻辑组织和分页的简便性中获益。这种混合方法有助于减轻单独使用其中一种技术的缺点。

优点
  • 结合了分页和分段的优点。

  • 减少外部碎片(来自分段)和内部碎片(来自分页)。

缺点
  • 增加了内存管理的复杂性。

  • 由于需要同时管理段表和页表,因此开销较大。

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

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

相关文章

网络编程TCP和UDP

将TCP的CS模型再敲一遍 TCP服务器 1->创建原始的套接字描述符 2->将原始套接字与主机ip绑定 3->将原始套接字设置监听状态 4->接收客户端连接,获取客户端信息,因为原始套接字被用了,所以创建新的套接字描述符用于客户端通信…

2区SCI仅52天直录!9月甄选SCI/SSCI合集(含各领域)

【SciencePub学术】我处SciencePub学术2024年9月SCI/SSCI/EI/CNKI刊源表已更新!内含多本中科院TOP、CCF推荐以及进展超顺的优质期刊,最快1-2个月录用! 计算机领域重点SCI 环境地质化学领域重点SCI 生物医学领域重点SCI 数学材料物理领域重点S…

拥有这些AI绘画网站,让你轻松告别手绘时代!

在这个充满无限可能的数字世界里,AI 绘画动漫网站已经成为了许多艺术家和设计师的新宠。从手绘时代的岁月如歌,到今天科技的飞速发展,我们已经可以用AI技术创作出令人惊叹的艺术作品,打开了全新的创作空间。接下来,就让…

图形化编程011

项目描述: 点击绿旗,点击空格键,角色向上游动,松开空格键,角色向下飘落。 浮游生物碰到角色会发出声音并隐藏,碰到舞台边缘会重新出现。 30秒后程序结束 。 拆解步骤: 1、添加背景和角色以及…

如何打造一个智能化的远程在线考试系统?

远程教育与在线考试已成为提升知识传播效率和学习灵活性的重要手段。 土著刷题在线考试系统,凭借其完善的多功能考试模块,为教育机构、学校乃至企业提供了一个智能化的远程在线考试解决方案。 接下来将介绍土著刷题在线考试系统如何助力用户构建一个高效…

第L3周:机器学习-逻辑回归

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标: 逻辑回归适用于分类问题,主要用于解决二分类或多分类的问题。比如:用户购买某商品的可能性,某病人患有某…

单端输入与差分输入

单端输入: 单端输入测量的是一根导线与地之间的电压差,然后将这个差值放大以提供输出。 然而,单端输入容易受到噪声的影响,因为承载信号的导线会吸收电背景噪声。此外,单端输入上的信号还可能受到地环路的影响。 例…

鸿蒙(API 12 Beta6版)图形【NativeDisplaySoloist开发指导】方舟2D图形服务

如果开发者想在独立线程中进行帧率控制的Native侧业务,可以通过DisplaySoloist来实现,如游戏、自绘制UI框架对接等场景。 开发者可以选择多个DisplaySoloist实例共享一个线程,也可以选择每个DisplaySoloist实例独占一个线程。 接口说明 函…

【MySQL00】【 杂七杂八】

文章目录 一、前言二、MySQL 文件1. 参数文件2. 日志文件3. 套接字文件4. pid 文件5. 表结构定义文件6. InnoDB 存储引擎文件 二、BTree 索引排序三、InnoDB 关键特性1. 插入缓冲1.1 Insert Buffer 和 Change Buffer1.1 缓冲合并 2. 两次写2. 自适应哈希索引3. 异步IO4. 刷新邻…

宝藏!《联盟现代控制特训班题库》(麒麟篇) 讲义部分:甄选内容

本文内容,全部选自自动化考研联盟的:初试《现代控制特性班题库》(麒麟篇),分为讲义和习题两个部分,本文为讲义部分的甄选内容,一本书帮你学透现控。 目录 Part1:资料封面&目录 讲义部分目录 Part2&…

为什么很多人都还用着Win10 而不投向Win11的怀抱?

前言 自从Windows 11发布(2021年6月)不知不觉已经过去了3年了。在这三年期间,Windows 11经历了几个大版本的更新。 Windows 10从正式发布开始(2015年7月)至现在已经有9年的历史。而Windows 10的最后一个版本22H2即将在…

2024年河南省成人高考报名指南

2024年河南省成人高考报名指南 河南省成人高考预计9月初g网报名,一般一周时间结束,预计到9月中旬报名截止‼不清楚报名流程同学看过来,今天老师给大家详细介绍一下! 想参加河南成人高考需要什么条件,具体的报名流程是什…

AD19基础应用技巧:捕捉对象功能的讲解鼠标”绿色十字”大光标、小光标切换

AD PCB 中心点捕捉功能: 线段、圆、边框中心点捕捉。 有时候不想要鼠标自动捕捉中心点怎么办? 关于Altium Designer 20 的捕抓功能的讲解(https://blog.csdn.net/weixin_44599693/article/details/126177841) ——- AD PCB画板…

基于VsCode和Git的代码版本管理

基础回退 在项目文件夹右键打开git bash,输入命令git log 查看提交的历史 commit,git log --prettyoneline将版本信息压缩到一行 使用git log可能会显示不全,按enter逐行查看,按end跳至末尾查看完成后,按q即可退出 …

湖南省工业废水高氯酸盐排放新标准解析与技术应对策略

随着工业化进程的加快,环境污染问题变得尤为突出。特别是在某些特定行业产生的污染物,如高氯酸盐,因其对环境和人体健康的潜在危害,越来越受到关注。为了解决这一问题,湖南省生态环境厅与省市场监督管理局联合制定了《…

AN7536PT时钟电路

目录 1 时钟电路概述2 时钟晶振电路2.1 需求分析2.2 晶振选型(Datasheet表5-7解读)2.3 设计晶振电路(表4-1、图5-4) 1 时钟电路概述 时钟电路是一种用于产生稳定、周期性脉冲信号的电子电路。它通常由晶体振荡器和相关逻辑电路组…

Kettle 锁表原因及解决办法【源码级分析】

文章目录 背景源码分析锁表场景1:资源库锁表锁表场景2:写日志锁表在哪里配置的kettle_log_table?官方解释自增 SQL 获取 BatchI 原理解决自增 SQL 获取 BatchID背景 Kettle 7.1.0 经常出现锁表的情况,体现为在数据库里有一条锁表 SQL,然后整个 Kettle 都无法运行。😂�…

java简介以及单个或两个及以上java安装与环境变量配置

目录 1.java简介 1.1 Java 的主要特点包括 1.2 Java 的主要用途包括: 1.3 java下载地址 2.安装java 2.1 安装程序 2.2选择安装路径 2.3等待安装 3.首先,进入环境变量 3.1 找到设置(第一个win11,第二个win10)…

走心机加工滚花滚齿工艺

走心机加工滚花工艺是一种高精度、高效率的加工方式,广泛应用于需要精细纹理和美观外观的零部件制造中。以下是对走心机加工滚花工艺的详细解析: 一、工艺概述 走心机加工滚花工艺,顾名思义,是利用走心机(也称为走心车…

卷积神经网络(Datawhale X 李宏毅苹果书AI夏令营)

卷积神经网络(Datawhale X 李宏毅苹果书AI夏令营) 卷积神经网络是一种非常典型的网络 架构,常用于图像分类等任务。 一张图像是一个三维的张量,其中一维代表图像的 宽,另外一维代表图像的高,还有一维代表图像的通道(…