Fork me on GitHub
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 99 下一页
摘要: 在32bit中的Linux内核中一般采用3层映射模型,第1层是页面目录(PGD),第2层是页面中间目录(PMD),第3层才是页面映射表(PTE)。 但在ARM32系统中只用到两层映射,因此在实际代码中就要3层映射模型中合并一层 。在ARM32架构中,可以按段(section)来映射,这时采用单层映射 阅读全文
posted @ 2020-05-03 11:19 yooooooo 阅读(2052) 评论(0) 推荐(1) 编辑
摘要: 在上一篇文章中,介绍了cpufreq的core层,core提供了cpufreq系统的初始化,公共数据结构的建立以及对cpufreq中其它子部件提供注册功能。core的最核心功能是对policy的管理,一个policy通过cpufreq_policy结构中的governor字段,和某个governor 阅读全文
posted @ 2020-05-01 16:59 yooooooo 阅读(1791) 评论(0) 推荐(0) 编辑
摘要: Linux动态频率调节系统CPUFreq之二:核心(core)架构与API 上一节中,我们大致地讲解了一下CPUFreq在用户空间的sysfs接口和它的几个重要的数据结构,同时也提到,CPUFreq子系统把一些公共的代码逻辑组织在一起,构成了CPUFreq的核心部分,这些公共逻辑向CPUFreq和其 阅读全文
posted @ 2020-04-28 13:57 yooooooo 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: Linux动态频率调节系统CPUFreq之一:概述 随着技术的发展,我们对CPU的处理能力提出了越来越高的需求,芯片厂家也对制造工艺不断地提升。现在的主流PC处理器的主频已经在3GHz左右,就算是智能手机的处理器也已经可以工作在1.5GHz以上,可是我们并不是时时刻刻都需要让CPU工作在最高的主频上 阅读全文
posted @ 2020-04-28 10:25 yooooooo 阅读(1437) 评论(0) 推荐(0) 编辑
摘要: 1、PGD: Page Global Directory Linux系统中每个进程对应用户空间的pgd是不一样的,但是linux内核 的pgd是一样的。当创建一个新的进程时,都要为新进程创建一个新的页面目录PGD,并从内核的页面目录swapper_pg_dir中复制内核区间页面目录项至新建进程页面目 阅读全文
posted @ 2020-04-27 11:28 yooooooo 阅读(9267) 评论(0) 推荐(2) 编辑
摘要: 类似于从zone中的分配,如果无法从指定的迁移类型分配到页,则会按照fallbacks指定的次序从备用迁移类型中尝试分配,它定义在page_alloc.c中。 虽然该特性总是编译进去的,但是该特性只有在系统中有足够的内存可以分配到每种迁移类型对应的链表时才有意义,也就是说每个可以迁移性链表都要有“适 阅读全文
posted @ 2020-04-12 20:18 yooooooo 阅读(1687) 评论(0) 推荐(0) 编辑
摘要: 承接内存管理相关概念讲解相关数据结构。主要有 pg_data_t: 表示节点; zone: 内存域; page: 页帧; pglist_data定义如下: node_zones是一个数组,包含节点中各内存域(ZONE_DMA, ZONE_DMA32, ZONE_NORMAL...)的数据结构; no 阅读全文
posted @ 2020-04-11 14:22 yooooooo 阅读(1262) 评论(0) 推荐(0) 编辑
摘要: 在直接内存回收过程中,有可能会造成当前需要分配内存的进程被加入一个等待队列,当整个node的空闲页数量满足要求时,由kswapd唤醒它重新获取内存。这个等待队列头就是node结点描述符pgdat中的pfmemalloc_wait。如果当前进程加入到了 这个等待队列中,那么进程就不会进行直接内存回收, 阅读全文
posted @ 2020-04-11 13:55 yooooooo 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 内核中把物理内存的低端区域作为直接映射区,高地址区域定义为高端内存,通过一个变量high_memory来界定他们的分界线。high_memory是一个虚拟地址,定义了高端内存被允许映射到内核的起始地址。 它在arm平台上的定义如下: 阅读全文
posted @ 2020-04-06 20:57 yooooooo 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 1.概述 Android底层还是基于Linux,在Linux中低内存是会有oom killer去杀掉一些进程去释放内存,而Android中的lowmemorykiller就是在此基础上做了一些调整来的。因为手机上的内存毕竟比较有限,而Android中APP在不使用之后并不是马上被杀掉,虽然上层Act 阅读全文
posted @ 2020-03-29 17:07 yooooooo 阅读(3059) 评论(0) 推荐(1) 编辑
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 99 下一页