当前位置: 首页 > backend >正文

内存管理(第五、六章)

功能

内存空间的分配与回收

地址转换(地址映射)——逻辑地址转换为物理地址,实现内存的访问和管理

内存空间的扩充,即虚拟内存

存储保护

管理内存的方式

连续分配

单一连续分配

内存分为系统区和用户区

简单但内存利用率低

固定分区分配

分区划分有大小相等,也有大小不等

将分区大小进行排队

产生内碎片(不连续、零散的未被使用的小块内存)问题,造成内存浪费

动态分区分配

数据结构:动态分区表和动态分区链

分配算法:

基于顺序搜索的动态分区分配算法——

首次适应算法【空闲分区地址递增】

循环首次适应

最佳适应【空闲分区容量递增】

最坏适应【空闲分区容量递减】

基于索引搜索的动态分区分配算法——

快速适应算法

伙伴系统【二叉树】

哈希算法【哈希函数映射】

分区分配与回收:

分配内存

回收内存——

①回收区上面的分区是空闲分区->空闲区容量增大为原来空闲区和回收区的容量之和

②回收区下面的分区是空闲分区->空闲区和回收区合并的容量为新的空闲区的容量,新的空闲区在空闲链表中的地址使用之前回收区的地址

③回收区上下面的分区都是空闲分区->两个空闲区和回收区合并的容量为新的空闲区的容量,新的空闲区在空闲链表中的地址使用回收区上面的空闲区地址

④回收区上下面的分区都不是空闲分区->新建一个单独的地址节点存放到空闲链表中,大小为回收区的大小

动态重定位分区分配

紧凑-时间换空间的策略

离散分配

分页存储管理方式

单级分页

进程的虚拟地址空间被划分为相同大小的页,物理内存也被划分为相同大小的物理块(页框)

核心思想:虚拟地址(一维)映射到物理地址

逻辑地址分离成逻辑页号和页内偏移量

访问一个数据需要访存2次,快表(最近访存表)中需要访存1次

多级分页

每一个一级页表的每个表项对应一个区域,区域又分别包含一个二级页表,进一步映射到物理页

页表基址寄存器存放的是顶级页表的起始物理地址

没有外碎片,但有页内碎片

分段存储管理方式

段是一个逻辑上相关的内存区域,每个段都有自己的起始地址和长度以及属性

段表——二维表

逻辑地址——段号+段内偏移量,二维地址

地址变换机构

优点:方便编程、信息共享、信息保护、动态链接、动态增长

外部碎片

段页式存储管理方式

段中分页——段表,段内页表

逻辑地址——段号+段内页号+页内偏移量

产生内碎片

地址变换机构

碎片:分段无内碎片

扩充内存

多道程序环境下逻辑扩充内存的方法

覆盖

划分模块

大型程序,不需要内存支持,但程序设计复杂

对换/交换

暂时移到磁盘或其他存储介质

内存不足的情况下

性能开销

虚拟内存管理

虚拟存储器:请求调入功能和置换功能,容量=内存+外存,运行速度->内存运行速度,每位成本->外存

局部性原理:时间局部性,空间局部性

特征:多次性(对应传统的一次性)(多次调入内存)、对换性(对应传统的驻留性)、虚拟性

※作业在运行前,不必全部装入内存,且运行过程中也不必一直驻留内存

管理内存方式:

请求分页管理方式——

请求调页功能、

页表、

缺页中断机构、

地址变换机构、

内存分配【页面分配策略:固定分配,局部置换;固定分配,全局置换;可变分配,局部置换。物理块分配算法:平均分配算法,按比例分配算法,考虑优先权算法】、

页面调入策略、【何时:预调页策略、请求调页策略。何处:文件区、对换区。缺页率

页面置换功能【最佳置换算法(无法实现),先进先出页面置换算法(会有Belady现象),最近最久未用页面置换算法LRU,最少适用页面置换算法(最先淘汰被修改且没访问的页面),Clock时钟页面置换算法(淘汰最近未用的页面)】

调入页面的时机【预调页策略、请求调页策略】

异常:抖动

※发生抖动时,可以采取的有效策略:撤销部分进程

请求分段管理方式

虚拟容量:

最大不超过计算机的地址位数

内存和外存的容量之和

http://www.xdnf.cn/news/8919.html

相关文章:

  • RV1126的RGA模块讲解
  • 7.Java String类深度解析:从不可变魔法到性能优化实战
  • 【电机控制】基于STM32F103C8T6的四轮智能车设计——直流有刷有感PID控制(硬件篇)
  • Java基础知识回顾
  • CLion-2025 嵌入式开发调试环境详细搭建
  • Mysql 中的锁
  • 2025京麒CTF挑战赛 计算器 WriteUP
  • 2024 CKA模拟系统制作 | Step-By-Step | 5、题目搭建-查看Pod CPU资源使用量
  • 滑动窗口算法:高效处理数组与字符串子序列问题的利器
  • (九)PMSM驱动控制学习---无感控制之高阶滑膜观测器
  • 61580 RT控制
  • SCI与EI期刊分区及影响因子汇总
  • 超越UniAD!百度哈工大X-Driver:基于视觉语言模型的可解释自动驾驶
  • 多线程的基础知识以及应用
  • 校园二手交易系统
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月25日第88弹
  • 法律大模型之阿里云通义法睿
  • DataX的json配置文件,{},[]讲解
  • 华硕FL8000U加装16G+32G=48G内存条
  • 英语六级-阅读篇
  • 分布式缓存:BASE理论实践指南
  • YOLOv1到YOLOv12各版本发展2025.5.25
  • Jetpack Compose 导航 (Navigation)
  • mysql 导入导出数据
  • Cache写策略
  • 【深度学习】1. 感知器,MLP, 梯度下降,激活函数,反向传播,链式法则
  • Unity3D 彩色打印
  • 【基础工程搭建】Load Bus Error异常问题分析
  • 双深度Q网络(Double DQN)基础解析与python实例:训练稳定倒立摆
  • 2021年认证杯SPSSPRO杯数学建模A题(第二阶段)医学图像的配准全过程文档及程序