linux内存

目录
1、物理内存的主要问题?
2、Linux段页式存储中的页表
3、进程访问内存基本流程
4、进程访问虚拟地址时如何确认是否有页?
5、缺页异常是什么?如何处理?
6、page分页的策略与page status
7、swaping和paging的区别与联系
8、overcommit 和OOM killer

1、物理内存:

1)多个进程时,每个进程都给4G物理内存,分配完了只能等待;
2)进程直接访问物理内存,可修改其他进程的数据/内核地址数据;
3)内存随机分配,容易出现错误。

2、页表共三个部分组成:

此处讨论两级页表:
线性地址
CR3 -- 页目录表(包含目录项) -- 页表 ( 包含页表项)
物理地址
(页表项)--页面

3、内存访问:

进程 -- 内存 -- 虚拟地址 -- 物理内存 -- 物理地址

4、根据线性地址中的偏移量决定

偏移量占低12位,第0位是存在位,P=1表示页表项指向的该页在内存中,如果P=0,表示该页不在内存中。

5、缺页异常:

页表中对应的数据不在物理内存中。
处理:
把进程需要的数据从磁盘上缓存到物理内存中。内核调用页面异常处理程序:
通过“页面置换算法”,找一个目标覆盖页,将该页内容写到磁盘中,将进程所需数据缓存到物理页上,有效位变为1。

6、page status共四种:

1)已分配内存,未mapping(minor page fault)

free中的shared buffer作为虚拟地址中的一部分,当虚拟地址没有完全mapping到物理内存,虚拟地址不够用的时候,会引发soft(minor) page fault,需要等一小会儿完全mapping 了才行。

2)未分配物理内存(major page fault)。

3)已分配物理内存并已经mapping。

这是正常类型的page

4)已经分配物理内存已经mapping,但被swap out了。

这种情况下是物理内存不够用了,整个程序都被swap出去了。

进程的working set是指当前在物理内存中,属于该进程的pages组成的集合。
shrink working set指的是进程运行过程中缩小working set
page分为free page和dirty page,swap指的是将dirty page写到交换分区去。
OOM是指系统已经没有足够的内存给进程使用,即能free的都已经free了,能swap out的也已经swap out了,再也不能挤出物理内存的情况。

page的四种交换策略:

需要时才交换;

系统空闲时交换;

换出但不立即释放;

把页面换出推迟到不能再推迟为止。

7、swapping针对程序,paging针对页面

swapping指的整个进程,在物理内存和磁盘间swap in/swap out
tips:swap的数据kernel还是知道,因为metadata还在内核内存中。
进程中的线程结构,堆,栈必须被swap。
paging指的物理内存不够用时程序中的页面移入/移出磁盘

8、overcommit和OOM killer

linux虚拟内存的分配一般是“请求多少分配多少”,然而分配后不会完全映射到物理内存上,比如请求4M内存,内存仅有1M也答应;因为通常不一定会用到4M;
但也会有真的不够用的情况,类似银行的“挤兑危机”。这时候就需要有相应机制来处理,这就是OOM。当物理内存不够用,磁盘该swap out的也swap out了,这时候就会出现OOM(out-of-memory),于是内核调用OOM killer将一些进程kill以释放内存。

overcommit setting文件:

/proc/sys/vm/overcommit_memory

OOM配置文件:

/proc/1/oom_score_adj

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在linux下,使用top,free等命令查看系统或者进程的内存使用情况时,经常看到buff/cache meme...
    analanxingde阅读 762评论 0 2
  • 在linux下我们经常会使用到top,vmstat,free等命令查看系统或者进程的内存使用情况,经常会看到buf...
    tracy_668阅读 3,407评论 1 1
  • 1 内存寻址 1.1 物理地址、虚拟地址以及线性地址 物理地址: 物理内存的内存单元地址 虚拟地址: 程序员看到的...
    疯狂小王子阅读 3,126评论 3 21
  • >计算机系统中有几类存储设备:cache、内存、外存。cache的存取速度最高,可以和CPU匹配,因此其代价最高,...
    一生信仰阅读 1,278评论 0 0
  • 一、目标果实 我近期的目标6月12号前累计达成3万的收入。今年年底拥有自己的车子,价值15万。财富收入每月不断倍增...
    徐建君阅读 132评论 0 0

友情链接更多精彩内容