
Linux内存管理
文章平均质量分 88
Farmwang
博采众长,兼收并蓄!
展开
-
伙伴系统的概述
转自:http://blog.youkuaiyun.com/vanbreaker/article/details/7605367 伙伴系统的概述 Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生。Linux采用伙伴系统解决外部碎片的问题,采用slab解决内部碎片的问题,在这里我们先讨论外部碎片问题。避免外部碎片的方法有两种:一种是之前介绍过的转载 2017-03-27 18:10:46 · 1727 阅读 · 0 评论 -
Linux的inode的理解
转自:http://www.ruanyifeng.com/blog/2011/12/inode.htmlhttp://blog.s135.com/post/295/ http://hi.baidu.com/leejun_2005/blog/item/d9aa13a53b3af6e99152ee7e.html 一、inode是什么?理解inode,要从文件储转载 2017-03-27 21:33:05 · 305 阅读 · 0 评论 -
Why Does Not X86_64 Have ZONE_HIGHMEM
如果你稍微了解过Linux内核的内存管理,那么对内存分区的概念一定不陌生,Linux内核把物理内存分成了3个区,0 – 16M 为ZONE_DMA区,16M – 896M 为ZONE_NORMAL区,高于896M 为ZONE_HIGHMEM区我没有去考证过为什么要取896这个数字,但是可以肯定的是这样的划分在当时看来是合理的,然而计算机行业的发展今非昔比,现在4G的物理内存已经转载 2017-03-27 20:53:20 · 749 阅读 · 1 评论 -
linux内核内存管理(zone_dma zone_normal zone_highmem)
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。 Linux内核地址空间划分通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核转载 2017-03-27 20:48:42 · 4076 阅读 · 1 评论 -
node & zone
接下来一段时间打算整理一下Linux内存管理的内容,一是为了梳理、巩固之前的所学,二是为了从全局、从更高层次上来窥探Linux内存管理的精髓。 本文以x86的NUMA模型进行描述,所涉及的内容均基于内核版本Linux-v3.2.40。 先上个图,看一下Linux中内存的布局情况,然后对几个术语进行说明:在NUMA模型中,每个CPU都有自己的本地内存节点(memo转载 2017-03-27 19:51:01 · 1315 阅读 · 0 评论 -
struct page
struct page是内存管理中第三个重要的数据结构,它代表系统内存的最小单位。 其数据结构如下所示:struct page { /* First double word block */ unsigned long flags; /* Atomic flags, some possibly * updated a转载 2017-03-27 19:44:19 · 10054 阅读 · 2 评论 -
内存的反碎片技术-伙伴系统&内存分类
本文内容均基于内核版本Linux-v3.2.40。 内存碎片是内存管理中非常重要又非常棘手的问题,就算强大的Linux也没有办法完全解决,但好在经过多年的发展,Linux已经有一套相当成熟的反碎片技术,包括:针对页外碎片的伙伴系统和针对页内碎片的slab分配技术。本文主要对伙伴系统及其涉及的内存分类进行说明。1. 伙伴系统1.1 什么是伙伴系统 伙伴系统是基于内存块转载 2017-03-27 19:35:49 · 1245 阅读 · 1 评论 -
内存分配掩码(gfp_mask) - 内存域修饰符 & 内存分配标志
本文内容均基于内核版本Linux-v3.2.40。 先说说GFP吧,曾几何时,每次写代码遇到kmalloc、alloc_page时都会疑惑,到底是GFP_KERNEL还是GPF_KERNEL,一直搞不清楚,每次都要先搜个例子看看,到后来才知道,原来GFP是get free page的缩写!现在想想,都快要被以前的自己蠢哭了,^_^ 好了,切入正题,本文主要讲解内存分配中转载 2017-03-27 19:27:23 · 10737 阅读 · 0 评论 -
Linux 内存管理
内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决)。所有内核的内存管理必须要简洁而且高效。主要内容:内存的管理单元获取内存的方法获取高端内存内核内存的分配方式总结1. 内存的管理单元内存最基本的管理单元是页,同时按照内存地址的大小,大致分为3个区。1.1 页页的大小与体系结构有关转载 2017-03-27 19:00:09 · 420 阅读 · 0 评论 -
dentry与inode有什么联系和区别
w转载 2017-03-27 21:34:45 · 1747 阅读 · 0 评论