![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内存管理
文章平均质量分 94
littleSnail.W
这个作者很懒,什么都没留下…
展开
-
Linux内存管理--基本概念
每个进程有它自己的PGD( Page Global Directory),它是一个物理页,并包含一个pgd_t数组。其定义见。进程的pgd_t数据见 task_struct -> mm_struct -> pgd_t * pgd;为了存储保护位,pgprot_t被定义,它拥有相关的flags并经常被存储在page table entry低位(lower bits),其具体的存储方式依赖于CPU架构。每个pte_t指向一个物理页的地址,并且所有的地址都是页对齐的。原创 2022-10-11 22:34:24 · 512 阅读 · 0 评论 -
Linux内存管理 之 KSM功能介绍
共享内存的概念在现代操作系统中很常用了,比如,一个程序启动时会与父进程共用它的全部内存。当其中一个进程发生变化时,就会触发写时复制,把原来的内容写入到新的内存页中,再进行修改。这时其他的未改动的页面仍然是共享的。在执行完exec之后所有的页面不再共享,父子进程各有各的物理页。共享内存是进程间通信的一种手段,多个进程的地址空间共享同一块物理内存,共享内存的进程在进行修改之后同样也会修改物理内存。当linux启用了KSM之后,KSM会检查多个运行中的进程,并比对它们的内存。转载 2022-10-11 21:53:24 · 3189 阅读 · 0 评论 -
Linux内存管理 之 KSM代码实现
关键词:KSM、匿名页面、COW、madvise 、MERGEABLE、UNMERGEABLE。KSM是Kernel Samepage Merging的意思,用于合并内容相同的页面。在虚拟化环境中,同一台主机上存在许多相同OS和应用程序,很多页面内容可能是完全相同的,因此可以被合并,从而释放内存供其它应用程序使用。KSM允许合并同一个进程或不同进程之间内容相同的匿名页面,这对应用程序是不可见的。转载 2022-10-11 21:34:23 · 841 阅读 · 0 评论