
内存管理
文章平均质量分 81
linux内存管理相关部分内容
菜菜的阿庄
这个作者很懒,什么都没留下…
展开
-
内存管理之预留内存
文章目录一、memblock二、cmdline有时候,我们需要预留一段内存不受内核直接管理分配,有什么办法?一、memblockmmeblock是内存的一种管理机制,主要管理这两种内存:一种是系统可用部分的物理内存(usable),也就是/proc/meminfo里看到的总内存都是提供给系统使用的;另一种是用户预留部分的内存(reserved),用户自己特殊使用,这部分在系统总内存里看不到。比如从内存顶部预留512M内存:resv_size = 512*1024*1024;resv_start原创 2022-05-19 15:06:05 · 1808 阅读 · 1 评论 -
dma_alloc_coherent 申请内存用法和问题总结
文章目录1、dma_alloc_coherent用法2、问题3、解决方法1、dma_alloc_coherent用法通过dma_alloc_coherent接口可以申请连续的大块内存。dma_addr_t dma_handle;cpu_addr = dma_alloc_coherent(dev, size, &dma_handle, gfp);入参:dev: ``struct device *``,可设为NULLsize: 想要申请的内存长度,单位为bytesgfp: 分配内原创 2022-04-08 16:02:41 · 10599 阅读 · 0 评论 -
计算机内存管理之内存访问
文章目录一、设备I/O内存访问ioremap & ioremap_nocacheioremap_cachedioremap_wc & ioremap_wtI/O内存访问流程二、设备地址映射到用户空间mmap过程一、设备I/O内存访问在linux上电时,并不会为外设地址空间建立页表。但我们知道,linux访问内存使用的都是虚拟地址,因此如果想访问外设的寄存器(一般包括数据寄存器、控制寄存器与状态寄存器),需要在驱动初始化中将外设所处的物理地址映射为虚拟地址,使用ioremap接口可以实现原创 2022-05-16 19:29:56 · 3037 阅读 · 0 评论 -
计算机内存管理之虚拟内存
文章目录1、虚拟内存是什么,为什么要有虚拟内存2、内存分段3、内存分页3.1 TLB3.2 TTW3.3 多级页表4、linux中的分页机制:5、内存保护:1、虚拟内存是什么,为什么要有虚拟内存如果进程直接访问物理内存,那么不同进程是能够直接访问其它进程的内存空间的,这种行为不安全。为保证不同进程之间内存空间不可见,实现进程内存隔离,需要有一种机制,能够将不同进程的内存物理空间实现隔离。这个机制就是 虚拟内存,为不同的进程分配各自的虚拟地址,这些虚拟地址落在不同的物理地址,实现了不同进程使用的地址隔原创 2022-05-15 15:49:24 · 1631 阅读 · 0 评论