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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容

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