内存管理
文章平均质量分 82
ymj321
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CPU的贴身侍卫ITCM和ICache
"叮铃铃…叮铃铃…""谁呀?"黛丝博士打开了家门,"哇,高飞,你怎么来了?"高飞狗:"好久不见,想来看看你,还买了你最喜欢吃的纯黑巧克力。"黛丝:"以往都是布鲁托领着你来的,今天你独自上门,必定不怀好意。买了这么多巧克力,必是别有他图吧?"高飞狗:"你这说的什么话,咱俩一块长大的,怎么会不怀好意?别有他图倒是真的。"黛丝:"我就知道你无事不登八宝殿!说吧,又遇到什么伤脑筋的难题了。"高飞狗:"是这样的,这两年以Cortex-M7(以下简称CM7)为核心的MCU越来越多,CPU周...转载 2021-06-04 12:01:24 · 1355 阅读 · 0 评论 -
内存管理与内存管理单元(MMU)
本片文章继续学习处理器相关的知识-内存管理。包括:内存管理单元MMU的作用,虚拟内存与物理内存之间的映射方式,页表的概念,高速缓存(Cache)的作用,物理内存与高速缓存之间的映射关系等。当然,想要深入了解,本文并不适合,本文只是从原理上,讲述以上几者之间的关系。文章目录1、内存管理单元MMU1.1、虚拟内存1.2、 页式内存管理1.21 页的概念1.22 页表的概念1.23 页命...转载 2019-11-10 18:12:15 · 1216 阅读 · 0 评论 -
Linux内存管理 mmap(补充)
之前写过一篇简单的介绍mmap()/munmap()的文章《Linux内存管理 (9)mmap》,比较单薄,这里详细的梳理一下。从常用的使用者角度介绍两个函数的使用;然后重点是分析内核的实现流程;最后对mmap()/munmap()进行一些验证测试。mmap系统调用并不完全是为了共享内存而设计的,它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件操作。m...转载 2019-11-10 18:12:52 · 560 阅读 · 0 评论 -
Linux内存管理 mmap
mmap/munmap是常用的一个系统调用,使用场景是:分配内存、读写大文件、连接动态库文件、多进程间共享内存。1. mmap/munmap介绍mmap/munmap函数声明如下:#include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags, ...转载 2019-11-10 18:12:39 · 322 阅读 · 0 评论 -
用户空间访问硬件设备的方式
明确:不管是在用户空间还是在内核空间,软件一律不能去直接访问设备的物理地址; linux的线程只能访问虚拟地址,不管是不是内核,ioremap应用,比如有个寄存器地址是0xe8000000你要用ioremap映射后,才能访问地址0xe8000000。这两个地址是不同的,mmu会帮你搞定,对你是透明的。 对于一个系统来讲,会有很多的外设,那么这些外设的管理都是通过CP...原创 2019-11-10 18:12:32 · 1148 阅读 · 1 评论 -
mmap映射区和shm共享内存的区别总结
linux中的两种共享内存。一种是我们的IPC通信System V版本的共享内存,另外的一种就是我们今天提到的存储映射I/O(mmap函数)在说mmap之前我们先说一下普通的读写文件的原理,进程调用read或是write后会陷入内核,因为这两个函数都是系统调用,进入系统调用后,内核开始读写文件,假设内核在读取文件,内核首先把文件读入自己的内核空间,读完之后进程在内核回归用户态,内核把读入内核内...转载 2019-11-07 12:47:35 · 231 阅读 · 0 评论 -
共享内存之——mmap内存映射
共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制。共享内存可以通过mmap()映射普通文件 (特殊情况下还可以采用匿名映射)机制实现,也可以通过systemV共享内存机制实现。应用接口和原理很简单,内部机制复杂。为了实现更安全通信,往往还与信号灯等同步机制共同使用。 这一篇详解mmap内存文件映射原理及其案例,system V共享内存 以及他们的...转载 2019-11-07 11:42:17 · 588 阅读 · 0 评论 -
深度分析mmap:是什么 为什么 怎么用 性能总结
mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实...转载 2019-11-07 11:36:37 · 191 阅读 · 0 评论 -
内存管理分析之三:了解这些概念就了解了整个MMU机制
使用虚拟地址的好处现代操作系统使用了虚拟地址的方式管理各个进程对内存的使用,这使得应用层编程方便、安全,主要体现在如下方面:1,让每个进程拥有了相同的、独立内存空间,相互之间不会干扰2,读写内存更安全。由于系统和MMU的限制,使得进程无法操作到其他进程的数据。3,不连续的物理空间可以映射成连续的虚拟地址空间4,进程分配的内存空间只有在实际使用时,才会触发缺页异常...转载 2019-11-07 11:26:13 · 180 阅读 · 0 评论 -
内存管理分析之二:MMU机制在进程中使用时的一些问题
32位linux系统中每个进程拥有4GB的虚拟地址空间(上文介绍:Linux进程空间与虚拟地址的好处),那么虚拟地址空间如何与实际物理内存进行对应呢—MMU(Memory Management Unit)。关于MMU的实现细节即分页处理的原理,网上分析的很多,下面我列出了部分疑惑的问题;MMU的作用:将虚拟地址转换为物理地址,解决应用程序使用的内存总大小会大于物理内存总大小的问题...转载 2019-11-07 11:23:18 · 379 阅读 · 1 评论 -
内存管理分析之一:Linux进程空间与虚拟地址的好处
内存管理分析之一:Linux进程空间与虚拟地址的好处内存管理分析之二:MMU机制在进程中使用时的一些问题内存管理分析之三:了解这些概念就了解了整个MMU机制使用虚拟地址的好处现代操作系统使用了虚拟地址的方式管理各个进程对内存的使用,这使得应用层编程方便、安全,主要体现在如下方面:1,让每个进程拥有了相同的、独立内存空间,相互之间不会干扰2,读写内存更安全。由于系统和MM...转载 2019-11-07 11:10:15 · 504 阅读 · 0 评论 -
物理内存与虚拟内存之间的映射
1、用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。2、虚拟存储器的容量限制:主存容量+辅存(硬盘)容量。3、物理内存:在应用中,真实存在的,插在主板内存槽上的内存条的容量的大小。从本质上来说,物理内存是代码和数据在其中运行的窗口。4、虚拟内存:使程...转载 2019-11-07 11:08:16 · 323 阅读 · 0 评论 -
虚拟地址与虚拟内存
在最开始看书的时候,我知道程序在运行时,不是全部加入内存当中的,当然,这个现在依旧正确,在有了虚拟地址空间这个概念以后,我一直认为是在硬盘中划分出一块虚拟内存出来,然后给每个程序4G的硬盘空间,作为这个程序的虚拟内存,然后就需要运行哪一块然后哪一块装入内存当中。后来发现这个是错误的。大家可以在我错误的地方来看看自己的理解,纠正自己的问题。首先,虚拟地址空间是不等于虚拟内存的(我的一本L...转载 2019-11-07 11:06:02 · 319 阅读 · 0 评论
分享