Fork me on GitHub

04 2020 档案

摘要:Linux动态频率调节系统CPUFreq之二:核心(core)架构与API 上一节中,我们大致地讲解了一下CPUFreq在用户空间的sysfs接口和它的几个重要的数据结构,同时也提到,CPUFreq子系统把一些公共的代码逻辑组织在一起,构成了CPUFreq的核心部分,这些公共逻辑向CPUFreq和其 阅读全文
posted @ 2020-04-28 13:57 yooooooo 阅读(2174) 评论(0) 推荐(0) 编辑
摘要:Linux动态频率调节系统CPUFreq之一:概述 随着技术的发展,我们对CPU的处理能力提出了越来越高的需求,芯片厂家也对制造工艺不断地提升。现在的主流PC处理器的主频已经在3GHz左右,就算是智能手机的处理器也已经可以工作在1.5GHz以上,可是我们并不是时时刻刻都需要让CPU工作在最高的主频上 阅读全文
posted @ 2020-04-28 10:25 yooooooo 阅读(1599) 评论(0) 推荐(0) 编辑
摘要:1、PGD: Page Global Directory Linux系统中每个进程对应用户空间的pgd是不一样的,但是linux内核 的pgd是一样的。当创建一个新的进程时,都要为新进程创建一个新的页面目录PGD,并从内核的页面目录swapper_pg_dir中复制内核区间页面目录项至新建进程页面目 阅读全文
posted @ 2020-04-27 11:28 yooooooo 阅读(9788) 评论(0) 推荐(2) 编辑
摘要:类似于从zone中的分配,如果无法从指定的迁移类型分配到页,则会按照fallbacks指定的次序从备用迁移类型中尝试分配,它定义在page_alloc.c中。 虽然该特性总是编译进去的,但是该特性只有在系统中有足够的内存可以分配到每种迁移类型对应的链表时才有意义,也就是说每个可以迁移性链表都要有“适 阅读全文
posted @ 2020-04-12 20:18 yooooooo 阅读(1776) 评论(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 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:在直接内存回收过程中,有可能会造成当前需要分配内存的进程被加入一个等待队列,当整个node的空闲页数量满足要求时,由kswapd唤醒它重新获取内存。这个等待队列头就是node结点描述符pgdat中的pfmemalloc_wait。如果当前进程加入到了 这个等待队列中,那么进程就不会进行直接内存回收, 阅读全文
posted @ 2020-04-11 13:55 yooooooo 阅读(626) 评论(0) 推荐(0) 编辑
摘要:内核中把物理内存的低端区域作为直接映射区,高地址区域定义为高端内存,通过一个变量high_memory来界定他们的分界线。high_memory是一个虚拟地址,定义了高端内存被允许映射到内核的起始地址。 它在arm平台上的定义如下: 阅读全文
posted @ 2020-04-06 20:57 yooooooo 阅读(697) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示