MM
Fred_HBUT
这个作者很懒,什么都没留下…
展开
-
ARM的内存管理单元和高速存储器
本节首先从总体上介绍MMU、Cache和CPU核是如何协同工作的,后面两节分别讲解MMU和Cache的细节。三星公司的S3C2410是一种很常见的采用ARM920T的芯片,涉及到具体的芯片时我们以S3C2410为例。ARM920T的MMU和Cache都集成在CP15协处理器中,MMU和Cache的联系非常密切,以下是CP15协处理器的寄存器列表(摘自[S3C2410用户手册]),和CPU核转载 2013-11-20 14:11:32 · 923 阅读 · 0 评论 -
内存_内存占用分析
转自:http://blog.csdn.net/ithomer/article/details/7031234Dalvik 虚拟机支持垃圾收集,但是这不意味着你可以不用关心内存管理。你应该格外注意移动设备的内存使用,手机和平板的内存空间是受到限制的。在这篇文章里面,我们来看看Android SDK里面的一些内存剖析工具(profiling tools)是如何帮助我们修整应用程序的内转载 2013-09-07 15:36:08 · 713 阅读 · 0 评论 -
内存_页的使用
从2.6.32.25开始,linux在伙伴管理系统中引入迁移类型(migrate type)这么一个概念,用于避免系统在长期运行过程中产生碎片。关于迁移类型的一些概念在介绍伙伴系统的数据结构的时候有提到过(见>),不过考虑到它较为复杂,因此在解析分配页的过程中没有介绍迁移类型是如何工作的,在这里将这部分拿出来单独作为一个部分进行分析。 在分析具体的代码前,再来说一下为什么要引入迁移转载 2013-09-12 15:25:41 · 831 阅读 · 0 评论 -
内存_预留内存与连续内存分配
预留内存分类: Linux Kernel开发 Android系统架构 2012-03-01 16:17 2894人阅读 评论(2)收藏 举报linux内核structmigrationmodulelistreference目录(?)[+]声明连续内存申请连续内存释放连续内存内核内存分配的migratetype转载 2013-09-12 15:35:54 · 2409 阅读 · 0 评论 -
内存_页框回收
页框回收算法(page frame reclaiming algorithm,PFRA) 页框回收算法,是回收一些物理内存页。 在两种情况下会触发这个算法,1, 当进行alloc_page时等申请内存时,但内存中空闲的page已经不够了。就会触发PFRA去回收一些页。得到更多的free的page。2, 如果仅仅在第1个条件才触发PFRA,那alloc_page函数就会等待很长时间。所以转载 2014-01-07 10:10:39 · 1199 阅读 · 0 评论 -
进程虚拟地址空间和内核空间的关系
linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较转载 2013-11-04 23:41:07 · 1790 阅读 · 0 评论 -
用户空间的映射
linux mmap 详解谨以此文纪念过往的岁月一.前言mmap的具体实现以前在学习内核时学习过,但是对于其中的很多函数是一知半解的,有些只能根据其函数名来猜测其具体的功能,在本文中,一起来重新深入理解其具体的实现。二.mmap的用户层应用void *mmap(void *start,size_t length,int prot,int flags,int fd转载 2014-01-07 16:25:13 · 793 阅读 · 0 评论 -
1G和超出1G的物理内存如何映射
高端内存是指物理地址大于 896M 的内存。 对于这样的内存,无法在“内核直接映射空间”进行映射。 为什么? 因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。 实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。 因此,Linux 规定“内核直接映射空间” 最转载 2013-11-20 15:36:04 · 1498 阅读 · 0 评论 -
内核统计到应用占用内存的解读
RSS is the total memory actually held in RAM for a process. RSS can be misleading, because it reports the total all of the shared libraries that the process uses, even though a shared library is only转载 2013-11-30 16:22:08 · 670 阅读 · 0 评论 -
宏观内存信息统计
/proc/meminfo统计信息解释linux下内存的统计信息的解释: 例如 "cat /proc/meminfo":MemTotal: 1031016 kB MemFree: 13548 kBMemShared: 0 kBBuffers: 98064 kBCached: 692320 kBSwapCached: 2244 kBA转载 2013-11-02 09:45:38 · 741 阅读 · 0 评论 -
内存_相关概念
kzalloc实现了kmalloc以及memset的功能,一个函数起到了两个函数的作用。即原来我们每次申请内存的时候都会这么做 , 先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 。而现在省事了 , 一步到位 , 直接调用 kzalloc(), 效果等同于原来那两个函数 , 所有申请的元素都被初始化为 0. kmalloc和get_free_page申请的内转载 2013-09-03 11:10:59 · 1459 阅读 · 0 评论 -
内存_进程内存映射
PMEM使用:PMEM使用比较简单,分单进程使用和共享进程使用同一块PMEM。单进程使用:1. int master_fd = open(“/dev/pmem_xxx”,O_RDWR, 0);2. 然后再mmap就可以使用了。进程间共享PMEM:进程A: 和单进程使用方法一样。进程B:1. int fd = open转载 2013-09-19 17:40:46 · 798 阅读 · 0 评论 -
内存_用户空间程序出现非法页错误
一、 段错误原因分析 1 使用非法的指针,包括使用未经初始化及已经释放的指针(指针使用之前和释放之后置为NULL) 2 内存读/写越界。包括数组访问越界,或在使用一些写内存的函数时,长度指定不正确或者这些函数本身不能指定长度,典型的函数有strcpy(strncpy),sprintf(snprint)等等。 3 对转载 2013-10-30 16:57:19 · 3434 阅读 · 0 评论 -
内存_Highmemory
linux高端内存映射分类: linux系统 linux memory2014-03-03 16:23 101人阅读 评论(0) 收藏 举报目录(?)[+]1 内核空间和用户空间 用户空间:在Linux中,每个用户进程都可以访问4GB的线性虚拟内存空间。其中从0到3GB的虚存地址是用户空间,通过每个进程自己的页目录、页表,用户进程可以直接转载 2014-09-11 20:58:36 · 1071 阅读 · 0 评论 -
内存_PA_MAP_VA
linux kernel内存映射实例分析分类: linux memory2013-10-25 15:28 608人阅读 评论(0) 收藏 举报引子现在android智能手机市场异常火热,硬件升级非常迅猛,arm cortex A9 + 1GB DDR似乎已经跟不上主流配置了。虽说硬件是王道,可我们还是不禁还怀疑这么强大的硬件配置得到充分利用了吗?因此以后我都会正对ARM转载 2014-09-11 20:50:33 · 998 阅读 · 1 评论 -
内存_错误信号
分类:SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。内存问题一直是最令我们头疼的事情,弄清楚两个信号的发生缘由对我们很好的理解程序的运行是大有裨益的。我们来看两段程序://testsigsegv.cint main() { char *pc = (char*)0x00001111; *pc =转载 2014-08-08 20:57:31 · 646 阅读 · 0 评论 -
内存_碎片利用机制
无聊的it玩家们创建了有一个词,叫做scatter/gather,她是一种用于高性能IO的标准技术.她通常意味着一种DMA传输方式,对于一个给定的数据块,她老人家可能在内存中存在于一些离散的缓冲区,换言之,就是说一些不连续的内存缓冲区一起保存一个数据块,如果没有 scatter/gather呢,那么当我们要建立一个从内存到磁盘的传输,那么操作系统通常会为每一个buffer做一次传输,或者干脆就是把转载 2013-12-24 17:36:29 · 701 阅读 · 0 评论 -
内存_新内存管理器
转自http://blog.csdn.net/kris_fei/article/details/8618587ION概念: ION是Google的下一代内存管理器,用来支持不同的内存分配机制,如CARVOUT(PMEM),物理连续内存(kmalloc), 虚拟地址连续但物理不连续内存(vmalloc), IOMMU等。用户空间和内核空间都可以使用ION,用户空间是通过/dev/ion来转载 2013-09-19 17:49:28 · 1382 阅读 · 0 评论 -
内存_内存池
一、 初始化: int __init memory_pool_init(void) { int i; alloc_root = RB_ROOT; mutex_init(&alloc_mutex); for (i = 0; i ARRAY_SIZE(mpools); i++) { mutex_init(&mpo转载 2013-09-19 16:45:57 · 1083 阅读 · 0 评论 -
内存_内存管理的不同阶段
linux内核的内存管理分三个阶段。1. 启动---->bootmem初始化完成为第一阶段。此阶段只能使用memblock_reserve函数分配内存。 此阶段结束标志为:init_bootmem_done = 1.2. bootmem初始化完--->buddy完成前。结束标志为mem_init_done = 1.3. 全部内存初始化完毕,可以用cache和buddy分配内存。转载 2013-09-19 11:50:45 · 1036 阅读 · 0 评论 -
内存_ARM 页目录以及页表
android的ram console是一个辅助调试的内核机制,它用一段物理内存虚拟一个console设备,这样printk的时候会把调试信息写一份到这块ram,最后通过/proc文件系统输出。Ram console 类似于普通的串口console, printk()的内部实现都是向已注册和打开的console输出信息的,console可以基于串口实现,当然也可以基于内存实现,区别是数据流的流向。转载 2013-09-17 10:36:23 · 3373 阅读 · 0 评论 -
内存_页的初始化
Linux Kernel and Android 休眠与唤醒(中文版) Table of Contents· 简介 · 国际化 · 版本信息 · 对于休眠(suspend)的简单介绍 · Linux Suspend 的流程 o 相关的文件: o 准备, 冻结进程 o转载 2013-08-14 10:36:42 · 1284 阅读 · 0 评论 -
内存_内存管理
本篇转载于应公子专栏,所有权利归属原作者。原作者郑重声明:未经本人允许,不得用于商业或非商业的转载和使用,如有需要请联系: yrj1978@hotmail.com 引子为什么要写这个笔记:1,这本书的中文版翻译了太垃圾,没法阅读。阅读英文原版,可以很好的理解作者的思路。作此笔记备忘2,一直以来学习LINUX kernel的知识缺乏系统化,借对这本书的学习转载 2013-08-14 10:05:33 · 1327 阅读 · 0 评论 -
PATCH
1. http://git.kernel.org/cgit/linux/kernel/git/wtarreau/linux-stable.git/diff/?id=9691eac5593ff1e2f82391ad327f21d90322aec1转载 2016-10-28 09:51:46 · 691 阅读 · 0 评论