![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux 内存管理
文章平均质量分 90
黄先生-?
生活也许不全都要酸酸甜甜,有时候像纯牛奶一样平平淡淡也没什么
展开
-
mmap函数分析
mmap:进程创建匿名的内存映射,把内存的物理页映射到进程的虚拟地址空间。进程把文件映射到进程的虚拟地址空间,可以像访问内存一样访问文件,不需要调用系统调用read()/write()访问文件,从而避免用户模式和内核模式之间的切换,提高读写文件速度(感兴趣的可以搜索下“零拷贝机制”)。再看看匿名映射的函数shmem_zero_setup到底做了什么,其实匿名页实际也映射了文件,只是映射到了/dev/zero上,这样有个好处是,不需要对所有页面进行提前置0,只有当访问到某具体页面的时候才会申请一个0页。原创 2023-03-02 00:15:31 · 513 阅读 · 0 评论 -
内存管理架构
内存管理子系统架构可以分为:用户空间、内核空间及硬件部分3个层面,具体结构如下所示:1、用户空间:应用程序使用malloc()申请内存资源/free()释放内存资源。2、内核空间:内核总是驻留在内存中,是操作系统的一部分。内核空间为内核保留,不允许应用程序读写该区域的内容或直接调用内核代码定义的函数。3、硬件:处理器包含一个内存管理单元(Memory Management Uint,MMU)的部件,负责把虚拟地址转换为物理地址。上面的用户空间和内核空间所指的都是虚拟地址,物理地址没有用户和内核之分。每个项目原创 2023-02-26 23:38:44 · 249 阅读 · 0 评论