当前位置:首页 > 内存 > 正文

linux段页式内存管理

  • 内存
  • 2024-05-28 12:45:41
  • 9171

一、内存管理:一文读懂Linux内存组织结构及页面布局

1.什么是记忆?

1)内存也叫主存,是CPU可以直接寻址的存储空间,由半导体器件组成

2)内存的特点是访问速度快;速度和中断计算机一般不保存数据,也不是持久性设备;

2.内存的作用

1)临时存储CPU计算数据

2)外接硬盘等通过内存交换的数据

3)保证稳定性和高计算机CPU的性能

1Linux内存地址空间Linux内存管理概述

2.内存地址:用户态和内核态

3.内存地址-MMU地址转换

1)Fu段选择

更多Linux内核文档和视频教程资料可后台私信【内核】免费获取。

内核学习网站:

Linux内核源码/内存优化/文件系统/进程管理/设备驱动/Linux内核学习视频教程网络协议-腾讯课堂

2)分段实施

5.内存地址-分页机制(32位)

6.用户态地址空间

7

8。处理内存空间

内存管理算法:讨厌自己管理内存的人的天赐之物

1)基本原理

2)如何避免内存碎片

2.合伙人体系算法-组织架构

1)理念

2)外部碎片化

3.伙伴系统算法:申请与回收

1)申请算法

2)回收算法

3)条件

4.如何分配超过4MB的内存?

1)为什么要限制大块内存的分配?

2)如何实现内核内存超过4MB

5系统-机制抗碎片

1)不可移动页面

2)可回收页面

6Slab算法-基本原理

1)概念基本

2)内部碎片

分配器结构

详细参考:

图解优化Linux内存性能的主要思想

缓存

1)普通缓存

2)专用缓存

9

1)基本原理

2)内核API

10个用户模式内存池

1)C++示例

内存

1)什么是DMA

2)DMA信号

内存不足的时代已经结束了吗?不行,内存再充裕,也不能随意使用。

1.内存使用场景

2.用户态内存分配函数

a)如果当前块连续内存足够realloc,则只需对p的空间进行扩展,并返回p的指针地址。此时q和p指向的地址是相同的

b)如果当前块连续内存不够长,则找足够长的地方,分配新的内存q,并添加p指向的内容复制到q,返回q。并删除p

3表示的内存空间。内核态内存分配函数

4Malloc应用于缺页异常

6。用户进程访问内存分析

7.共享内存

1)原理

2)shm接口

1.C内存泄漏

2.野指针C

3.C资源访问冲突

4STL迭代器错误

不好的例子:如果当前迭代器被删除,迭代器将不再有效

正确的例子:当迭代器被删除,必须保存下一个迭代器

511个智能指针

(1)原理分析:

(2)数据结构:

(3)用法:

6.C++11更小、更快、更安全

6如何检查内存

可以通过命令cat/proc/slabinfo查看

可以通过/proc/sys/vm/drop_caches查看来删除


二、linux内存管理?

Linux内存管理是操作系统内核对物理内存的分配和管理。Linux内存管理有两个基本任务:一是为程序使用可用内存,二是从交换区(即硬盘)中找到当前不需要的数据并将其移至交换区,以在物理内存耗尽时获得更多的数据。是不够的。以下是一些关键内容:

内存分配:内存分配是为应用程序分配物理内存的过程。在Linux中,物理内存分为用户空间和内核空间,由内核管理。内核必须保证每个进程有足够的内存,避免浪费内存。

虚拟内存:虚拟内存是指利用磁盘交换文件来扩展物理内存,从而允许更灵活地使用内存。当物理内存不足时,操作系统会将一些暂时不用的内存数据转移到硬盘的交换区,以释放物理内存。

页面替换:页面替换是将物理内存耗尽的页面移动到交换区的过程。当物理内存不足时,操作系统会选择一部分被占用且长期不使用的内存数据移至交换区,以释放物理内存。

内存回收:内存回收涉及释放已分配给进程但不再使用的内存。在Linux中,内核使用一种称为“页面缓存”的机制,将文件数据缓存在磁盘上,以提高文件访问速度。当物理内存不足时,内核将首先获取页面缓存并将其移动到交换区域。

以上就是Linux内存管理的主要内容Linux利用上述机制来保证系统合理使用内存,从而提高系统的稳定性和效率。