内存管理分配,连续分配、分页存储、分段存储、段页式

2023-11-08

目录

1. 连续分配管理

1.1 固定分区分配

 1.2 动态分区分配

 2. 非连续分配方式

2.1 基本分页式内存分配管理

2.1.1 基本分页式内存思想与方法

2.1.2 进程逻辑地址与内存物理地址如何转换?

 2.1.3 页面在内存中的起始地址——页表

 2.1.4 基本地址变换机构——页表寄存器

 2.1.5 具有快表的地址变换机构

 2.1.6 两级页表

 2.2 分段式内存

2.2.1  分段式数据结构

 2.2.2 地址变换——段表

 2.3 段页式管理方式


注:本文讨论的是适合多道程序的内存分配管理方式

1. 连续分配管理

连续分配:指为用户进程分配的必须是一个连续的内存空间

1.1 固定分区分配

 

 1.2 动态分区分配

 2. 非连续分配方式

非连续分配:可以将进程进行拆分,然后装载到不连续的内存空间中。

2.1 基本分页式内存分配管理

2.1.1 基本分页式内存思想与方法

2.1.2 进程逻辑地址与内存物理地址如何转换?

 2.1.3 页面在内存中的起始地址——页表

操作系统为每个进程建立一张页表

 2.1.4 基本地址变换机构——页表寄存器

 2.1.5 具有快表的地址变换机构

1)局部性原理

 2)快表

 3)思路 

先查快表,没有再查慢表(上一节内存中的页表)

 2.1.6 两级页表

前几节讨论的都是单级页表,存在缺点:对于32位系统,假设页面大小4KB占用12位,页表项长度4B,则剩余20位用于表示页号,故一个页表最多将占用内存=2^20 * 4B = 2^22B,相当于占用2^10个页框占用过多连续的页框。 且根据局部性原理,没必要让整个页表常驻内存。

 解决方法:两级页表

1)思想

对大的页表进行分组,构建一个新的数据结构,称为页目录表、顶级页表。

这样的好处是,依然可以表示2^20个页面,但是页表不一定要占用连续的页框。

 地址转换时,先查组号,然后找到页号,最后找到内存块号,算出物理地址。

 可以利用缺页中断,对页表进行调入调出(内外存)。

 2.2 分段式内存

2.2.1  分段式数据结构

 2.2.2 地址变换——段表

 2.3 段页式管理方式

先分段,再分页,构成段页式管理。

程序员需要管理分段情况,续给出段号和段内地址。

 数据结构:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内存管理分配,连续分配、分页存储、分段存储、段页式 的相关文章

  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • MySQL基础(非常全)

    MySQL基础 一 MySQL概述 1 什么是数据库 答 数据的仓库 如 在ATM的示例中我们创建了一个 db 目录 称其为数据库 2 什么是 MySQL Oracle SQLite Access MS SQL Server等 答 他们均是
  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西 那么需要遵守每种东西的规范 如果想要提供一种通用模式来对这些具体的东西统一管理 需要使用一种古老的技术 抽象 抽象是将多种具体的东西 管理时需要遵守的规范 的共同点抽取出来 放入到更高一层的抽象层 在抽象层不定义或少
  • Linux内核内存检测工具KASAN

    KASAN k z n KASAN 是 Kernel Address Sanitizer 的缩写 它是一个动态检测内存错误的工具 主要功能是检查内存越界访问和使用已释放的内存等问题 KASAN 集成在 Linux 内核中 随 Linux 内
  • linux内存调节之CMA

    本文贴代码过头了 以后想起来再优化一下吧 目录 概述 数据结构 构建初始化 DTS CONFIG DMA CMA 页表与物理页初始化 分配器激活 分配器使用 CMA部署 实战 概述 CMA Contiguous Memory Allocat
  • mapengpeng1999@163.com 操作系统4~处理机调度

    处理机调度 1 三级调度体系 1 处理机调度主要是对处理机运行时间进行分配 即 按照一定算法或策略 将处理机运行时间分配给各个并发进程 同时尽量提高处理机的使用效率 2 现代操作系统中 按调度所实现的功能分3种类型 高级调度 中级调度和低级
  • Ubuntu 10.10下安装TFTP的步骤 tftp-hpa版本

    背景 由于想要在tq2440板子上用tftp下载kernel 所以要在自己的PC机的Ubuntu 10 10上安装tftp服务 所以就去网上找了些教程 但是很悲剧 按照那些教程去操作 结果还都是无法正常运行tftp服务 最后还是从一个外国人
  • Linux系统编程:多线程交替打印ABC

    引言 分享关于线程的一道测试题 因为网上基本都是Java的解决方法 决定自己写一篇来记录一下线程的学习 问题描述 编写一个至少具有三个线程的程序 称之为线程 A B 和 C 其中线程 A 输出字符 A 线程 B 输出字符 B 线程 C 输出
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • InfoQ视频直播分享报名:前贝尔实验室、Oracle架构师为你在线揭秘分布式平台内核...

    报名方式 关注InfoQ微信公众号 ID infoqchina 回复 InfoQ 即可观看在线直播技术分享 分享地点 u0026amp 时间 InfoQ直播微课堂将在熊猫 TV 网站播出 看腻了卖肉的女主播 来看看QCon 的明星讲师如何
  • Linux,Network manager 导致节点异常重启

    推断是Network manager 导致的 原因待查今天在VmWare的虚拟机上装了个测试RAC 又遇到了一个摸不到头绪的问题CRS装好后 一旦登陆图形界面 节点就重启 事情就有这么巧不登陆图形界面 观察了1个小时没问题 一旦登陆后 立刻
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • Windows运行常用命令(win+R)

    1 calc 启动计算器 2 notepad 打开记事本 3 write 写字板 4 mspaint 画图板 5 snippingtool 截图工具 支持无规则截图 6 mplayer2 简易widnows media player 7 S
  • Windows驱动开发(一)第一个驱动程序

    首先我们需要了解 在操作系统中 是分两种权限的 一种是内核态 我们也称为0环 一种是用户态 称之为3环 而在我们的电脑中 驱动程序是运行在内核态的 这意味着和操作系统内核是在同一权限的 而普通的应用程序的权限是最低的 高权限谁不想拥有呢 因
  • Anaconda 安装 Python 库(MySQLdb)的方法-(转)

    安装python库的过程中 最重要的地方就是版本需要兼容 其中操作系统为64位 Python为2 X 64位 下载安装文件的时候也要注意版本匹配 其中文件名中包含的cp27表示CPython 2 7版本 cp34表示CPython 3 4
  • linux 使用systemctl 启动服务报错: Error: No space left on device

    By default Linux only allocates 8192 watches for inotify which is ridiculously low And when it runs out the error is als
  • java IO、NIO、AIO详解

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 IO流 同步 阻塞 二 NIO 同步 非阻塞 三 NIO2 异步 非阻塞 正文 回到顶部 概述 在我们学习Java的IO流之前 我们都要了解几个关键词 同步与异步 sy
  • CentOS Linux服务器安全设置

    转自 http www osyunwei com archives 754 html 引言 我们必须明白 最小的权限 最少的服务 最大的安全 所以 无论是配置任何服务器 我们都必须把不用的服务关闭 把系统权限设置到最小话 这样才能保证服务器
  • 使用ShellJS提升你的开发效率(一)

    Shelljs Unix shell commands for Node js Shelljs是Node js下的脚本语言解析器 具有丰富且强大的底层操作 Windows Linux OS X 权限 Shelljs本质就是基于node的一层
  • 八股文打卡day20——操作系统(3)

    面试题 线程同步的方式有哪些 我的回答 多线程同时访问和修改某个数据的话 会造成数据的不一致和冲突问题 所以就需要线程同步 线程同步的方式有 1 互斥锁 互斥锁就是 当一个资源被访问和操作时 会对这个资源加锁 把这个资源锁定 其他线程不能对

随机推荐

  • 【SVN内网穿透】远程访问Linux SVN服务

    文章目录 前言 1 Ubuntu安装SVN服务 2 修改配置文件 2 1 修改svnserve conf文件 2 2 修改passwd文件 2 3 修改authz文件 3 启动svn服务 4 内网穿透 4 1 安装cpolar内网穿透 4
  • 【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!

    今天对接公众号 一直提示我签名有问题 但是我的签名和官方生成的签名一致 下面是对应数据比对 我的签名 微信官方提供签名 经过比对 两者是一致的 但是 就是一直提示错误 后面是解决思路 1 首先是需要在公众号管理平台配置对应服务器信息 包含白
  • 软件测试大作业 题目 网站测试,[软件分析与测试大作业] 测试性分析软件

    软件分析与测试 考试大作业 1 假设某单位内部电话号码由三部分组成 分别是 分机号 前缀 后缀 其中 分机号为空白或一位数字 前缀为非 0 开头的二位数字 后缀为非全0的3位数字 假定被测程序能接受一切符合上述规定的电话号码 拒绝所有不符合
  • 2023牛客暑期多校训练营7 I-We Love Strings (分块)

    文章目录 题目大意 题解 参考代码 题目大意 题解 这题给定的 n n n 大小和 s i s i si 的总长度有玄机
  • transformers学习笔记3

    创建model的方法 automodel创建预训练模型 使用automodel直接创建 使用的是hug face官网上的预训练好的模型参数 完成创建后再使用自己本地的数据集进行迁移训练 automodel api 去官网上下载用户指定类型模
  • com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

    com mysql cj jdbc exceptions CommunicationsException Communications link failure 这个问题就是本地sql没有开始 详情请看点击此处
  • 华为机试-称砝码

    文章目录 描述 输入描述 输出描述 代码解析 描述 现有n种砝码 重量互不相等 分别为 m1 m2 m3 mn 每种砝码对应的数量为 x1 x2 x3 xn 现在要用这些砝码去称物体的重量 放在同一侧 问能称出多少种不同的重量 注 称重重量
  • 地平线 AI 芯片工具链 - 03 自定义模型转换

    地平线 AI 芯片工具链 03 自定义模型转换 1 前提条件 2 文件目录 3 模型可视化 4 模型校验 5 模型编译 1 前提条件 地平线 AI 芯片工具链 01 配置安装 待转换模型 onnx 模型 其他类型可转为 onnx 模型 2
  • springboot项目如何开启热部署

    1 添加依赖
  • bert简单介绍和实践

    bert模型是Google在2018年10月发布的语言表示模型 在NLP领域横扫了11项任务的最优结果 可以说是现今最近NLP中最重要的突破 Bert模型的全称是Bidirectional Encoder Representations f
  • Scala下载及IDEA安装Scala插件(保姆级教程超详细)

    一 Scala的下载与安装 Scala语言可以在Windows Linux Mac OS等系统上编译运行 由于Scala是运行在JVM平台上的 所以安装Scala之前必须配置好JDK环境 JDK版本要求不低于1 5 本博客为基于Window
  • 使用Python批量修改文件名

    使用os rename fold newfilename 对文件重命名 coding utf 8 import os filename list os listdir for filename in filename list str re
  • 防火墙简介

    1 什么是防火墙 防火墙也被称为防护墙 它是一种位于内部网络与外部网络之间的网络安全系统 通常 防火墙可以保护内部 私有局域网免受外部攻击 并防止重要数据泄露 它实际上是一种隔离技术 在没有防火墙的情况下 路由器会在内部网络和外部网络之间盲
  • Free MyBatis plugin插件搜不到

    Free MyBatis plugin IntelliJ IDEs Plugin Marketplacehttps plugins jetbrains com plugin 8321 free mybatis plugin versions
  • AXIS2+Myeclipse 开发 Webservices

    一 准备工作 1 安装JDK 我使用的是版本是JDK1 6 下载地址 http java sun com javase downloads index jsp 下载那个rpm的bin包 即jdk 6u1 linux i586 rpm bin
  • 域名与服务器如何绑定?

    新手如何快速搭建自己的云服务器 来源 https www cnblogs com yspace p 10050452 html 相信很多小白对于服务器这个概念可能理解得很模糊 其实服务器说白了就是一台供你远端使用且可以一直开机的电脑而已 说
  • es设置数据备份--新建仓库

    前言 设置es备份首先要新建仓库 然后在kibana中配置 备份策略 多长时间备份一次等 存储库的安装 创建存储库 必须先注册快照存储库 才能执行快照和还原的操作 如果多个集群同时注册同一个快照存储库 只有一个可以有写权限 其余集群设置为r
  • centos6.5 MySQL安全模式修改Root 密码

    错误情况描述 mysql u root p ERROR 1045 28000 Access denied for user root localhost using password YES 解决办法 第一步 关闭MySQL服务 servi
  • 使用Python对Excel文件进行处理的小技巧

    Excel文件是一个常用的电子表格文件格式 它可以包含大量的数据和公式 Python有很多库可以用来处理Excel文件 下面介绍其中一些常用的库和技巧 目录 1 使用pandas库读取Excel文件 2 使用openpyxl库进行Excel
  • 内存管理分配,连续分配、分页存储、分段存储、段页式

    目录 1 连续分配管理 1 1 固定分区分配 1 2 动态分区分配 2 非连续分配方式 2 1 基本分页式内存分配管理 2 1 1 基本分页式内存思想与方法 2 1 2 进程逻辑地址与内存物理地址如何转换 2 1 3 页面在内存中的起始地址