上一篇博文中,我介绍了zmalloc.c文件中几个常用的函数,接下来给大家介绍一下该文件中的其他函数,其实本文中的很多函数要比上一篇文章中的函数要更有趣的,但也更难,并且涉及到很多操作系统的知识。对操作系统,内存分配的底层原理感兴趣的童鞋不容错过。前面几个函数比较简单,一笔带过,后面几个是学习的重点。...
分类:
其他好文 时间:
2015-04-01 17:38:39
阅读次数:
254
PHP中刷新输出缓冲详解分类:PHPWeb开发2011-07-23 17:421795人阅读评论(0)收藏举报phpbuffer浏览器outputapache模块脚本 buffer是一个内存地址空间,Linux系统默认大小一般为4096(1kb),即一个内存页。主要用于存储速度不同步的设备或者优先级...
分类:
Web程序 时间:
2015-03-29 14:51:15
阅读次数:
262
工作原理
基本概念:slab,page,chunk。
slab,是一个逻辑概念。它是在启动memcached实例的时候预处理好的,每个slab对应一个chunk size,也就是说不同slab有不同的chunk size。具体分配多少个slab由参数 -f (增长因子)和 -n (chunk最小尺寸)决定的。
page,可以理解为内存页。大小固...
分类:
系统相关 时间:
2015-03-19 20:27:03
阅读次数:
172
内存读写断点的实现,是把相关内存页属性设置为PAGE_NOACCESS,这样当此页内内存被读写的时候会有异常传给调试器。当异常传给调试器时候,debugee进程被挂起,调试器把内存页属性重新修改回去,同时设置一个单步调试断点。这样debugee进程才可以正常执行过去,否则会一直被挂起。因为被设置了单...
分类:
其他好文 时间:
2015-03-13 20:19:17
阅读次数:
151
这篇说说Linux的页缓存数据同步和页回收机制。数据同步和页回收是两个独立的概念,数据同步处理的是内存/缓存的数据和后备设备的数据一致问题,页回收处理的是在内存空间不足时如何回收已分配的物理内存页,来获得足够空间分配干净页,支持优先级更高的工作。数据同步在任意时刻都有可能触发,页回收则是在物理内存使用达到一定阀值的时候触发。
数据同步就是把物理内存和页缓存中的脏页写回到后备设备的文件中去...
分类:
其他好文 时间:
2015-03-12 15:13:39
阅读次数:
159
A reworked contiguous memory allocatorhttp://lwn.net/Articles/447405/June 14, 2011 分配大块物理上连续内存的问题一直在被讨论。虚拟内存,天生的在系统上分散使用内存页,内核运行一会儿就只剩下很少的连续空闲的页。多年以来....
分类:
其他好文 时间:
2015-02-04 18:23:23
阅读次数:
198
主要参考《深入Linux内核架构》、《深入理解Linux内核》及内核linux-3.18.3
页表用于建立用户进程的虚拟地址空间和系统物理内存(内存、页帧)之间的映射。IA-32系统默认使用两级分页系统,但是内核中总是使用四级页表,第三和第四级页表由特定于体系结构的代码模拟。
页表管理分为两个部分,第一部分依赖于体系结构,第二部分体系结构无关。但是所有的数据结构和操作数据结...
分类:
系统相关 时间:
2015-02-04 00:38:09
阅读次数:
1710
linux系统每过一定时间就会唤醒kswapd进程,看看内存是否紧张,如果不紧张,则睡眠,在kswapd中,有2个阀值,pages_hige和pages_low,当空闲内存页的数量低于pages_low的时候,kswapd进程就会扫描内存并且每次释放出32个freepages,直到freepage的数量到达pages_high.linux在负载比..
分类:
移动开发 时间:
2015-01-07 19:06:14
阅读次数:
205
32bits系统内存划分:
1. ZONE_DMA 包含低于16MB的内存页框
2. ZONE_NORMAL 包含高于16MB且低于896MB的内存页框
3. ZONE_HIGHMEM 包含从896MB开始于896MB的内存页框
ZONE_HIGHMEM又划分为如下三个部分:
1. VMALLOC区:VMALLOC_START ~ VMALLOC_END
2. 永久内核映射区:...
分类:
其他好文 时间:
2014-12-25 00:16:09
阅读次数:
172
为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕过,我们只要将这些部分修改为可写属性就可以了,不过当我们的事情做完后记得把它们恢复为只读属性,不然会造成一些很难预料到的后果。 c....
分类:
其他好文 时间:
2014-12-21 23:21:11
阅读次数:
239