专题:Linux内存管理专题 关键词:LockDep、spinlock、mutex。 lockdep是内核提供协助发现死锁问题的功能。 本文首先介绍何为lockdep,然后如何在内核使能lockdep,并简单分析内核lockdep相关代码。 最后构造不同死锁用例,并分析如何根据lockdep输出发现 ...
分类:
系统相关 时间:
2018-08-13 22:55:14
阅读次数:
292
1.Segmentation Fault是什么?什么情况下会导致它的出现?怎么解决? Segmentation Fault中文是段错误,在Linux系统中,段错误一般是是由用户程序非法访问内存引起的(访问指读、写或者执行),即程序访问的内存超出了系统所分配的内存空间,就会出现以上错误。段错误就是访问 ...
分类:
编程语言 时间:
2018-08-04 20:19:28
阅读次数:
145
关键词:VSS、RSS、PSS、USS、_mapcount、pte_present、mem_size_stats。 在Linux里面,一个进程占用的内存有不同种说法,可以是VSS/RSS/PSS/USS四种形式,这四种形式首字母分别是Virtual/Resident/Proportional/Uni ...
分类:
系统相关 时间:
2018-07-29 18:49:26
阅读次数:
1072
之前写过一篇简单的介绍mmap()/munmap()的文章《Linux内存管理 (9)mmap》,比较单薄,这里详细的梳理一下。 从常用的使用者角度介绍两个函数的使用;然后重点是分析内核的实现流程;最后对mmap()/munmap()进行一些验证测试。 mmap系统调用并不完全是为了共享内存而设计的 ...
分类:
系统相关 时间:
2018-07-28 00:11:11
阅读次数:
792
一、Linux 内存管理的基本框架 线性地址的映射分为4步: 1.线性地址最高的位段作为下标 在PGD(页面目录)中找到表项,该表项指向PMD(中间目录)。 2.线性地址第二位段作为下标在PMD中找到表项,该表项指向页面表。 3.线性地址第三位段作为下标在页面表中找到PTE,该表项存放指向物理页面的 ...
分类:
其他好文 时间:
2018-07-03 22:35:28
阅读次数:
176
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。 后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术 ...
分类:
编程语言 时间:
2018-06-29 16:25:26
阅读次数:
147
一、前言 在linux内核中支持3种内存模型,分别是Flat memory model,Discontiguous memory model和Sparse memory model。三种内存模型对应于linux内核的配置选项分别为:CONFIG_FLATMEM,CONFIG_DISCONTIGMEM ...
分类:
系统相关 时间:
2018-06-17 16:07:12
阅读次数:
578
Linux内存中线性地址为4G,0~3G为用户空间,3~4G为内核空间一、????? 内核空间内核空间是3~4G的内存地址,主要用来存储高优先级的代码在X86结构中的内核地址存在三种类型的区域:?????? ? ZONE_DMA???? 内
分类:
系统相关 时间:
2018-06-07 00:35:26
阅读次数:
240
本文转载自:http://blog.chinaunix.net/uid-26859697-id-5573776.html kmalloc()是基于slab/slob/slub分配分配算法上实现的,不少地方将其作为slab/slob/slub分配算法的入口,实际上是略有区别的。 现在分析一下其实现: ...
分类:
系统相关 时间:
2018-05-11 10:44:23
阅读次数:
277
本文转载自:http://blog.chinaunix.net/uid-26859697-id-5758037.html 分析完kmemleak实现后,照常实验一下,以确定功能正常。 如kmemcheck一样,该功能需要在内核开启的情况下才能够使用。主要的配置项有:CONFIG_DEBUG_KERN ...
分类:
系统相关 时间:
2018-05-09 20:49:35
阅读次数:
218