摘要: 图:反向映射的基本概念 图:反向映射的原理 图:反向映射应用之内存回收 第一个场景是内存回收,内存不足时内核会从不活跃的lru链表尾部回收一些页面,而对于映射到进程地址空间的物理页面,我们需要在回收之前对他做解除映射处理。 对于匿名页,由于里面的数据是进程运行过程中产生的有用数据,不能随意丢弃,需要 阅读全文
posted @ 2022-04-11 20:29 penghan 阅读(107) 评论(0) 推荐(0) 编辑
摘要: #流畅性 专栏,9篇 Systrace 流畅性实战 1 :了解卡顿原理 https://www.androidperformance.com/2021/04/24/android-systrace-smooth-in-action-1/ Systrace 流畅性实战 2 :案例分析 - MIUI 桌 阅读全文
posted @ 2022-03-10 15:10 penghan 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 之前的调度器cfs之前的linux调度器一般使用用户设定的静态优先级,加上对于进程交互性的判断来生成动态优先级,再根据动态优先级决定进程被调度的顺序,以及调度后可以运行的时间片。反过来,随着进程的运行,内核可能发现其交互性发生改变,从而调整其动态优先级(奖励睡眠多的交互式进程、惩罚睡眠少的批处理进程 阅读全文
posted @ 2021-06-30 10:06 penghan 阅读(240) 评论(0) 推荐(0) 编辑
摘要: What: /sys/power/ Date: August 2006 Contact: Rafael J. Wysocki <rjw@rjwysocki.net> Description: The /sys/power directory will contain files that will 阅读全文
posted @ 2019-04-10 10:01 penghan 阅读(526) 评论(0) 推荐(0) 编辑
摘要: fs: https://github.com/psankar/simplefs https://github.com/gzc/isystem/blob/master/basic/Crash_Consistency.md schedule: mem: interrupt: debug: https:/ 阅读全文
posted @ 2019-03-28 15:57 penghan 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 很全面的网站,下面的网站基本都可以从该地址找到。 新手必备 subscrible/unsubscrible mail list mail list archive kernel git mainline kernel kernel patch work kernel online source co 阅读全文
posted @ 2019-01-17 16:17 penghan 阅读(228) 评论(0) 推荐(0) 编辑
摘要: vmalloc是一个接口函数, 内核代码使用它来分配在虚拟内存中连续但在物理内存中不一定连续的内存。 只需要一个参数,以字节为单位。 使用vmalloc的最著名的实例是内核对模块的实现. 因为模块可能在任何时候加载, 如果模块数据比较多, 那么无法保证有足够的连续内存可用, 特别是在系统已经运行了比 阅读全文
posted @ 2018-12-28 16:54 penghan 阅读(6625) 评论(0) 推荐(1) 编辑
摘要: 基本操作: 读出、写入、擦除: 因为NAND闪存单元的组织结构限制,单独读写一个闪存单元是不可能的。存储单元被组织起来并有着十分特别的属性。要知道这些属性对于为固态硬盘优化数据结构的过程和理解其行为来说是很重要的。我 在下方描述了关于读写擦除操作的SSD的基本属性 读是以页大小对齐的 一次读取少于一 阅读全文
posted @ 2018-12-26 10:54 penghan 阅读(2686) 评论(0) 推荐(0) 编辑
摘要: ext2硬盘layout如下: 下面做了ext2的一些验证,主要为了验证对ext2的 Disk Organization的理解, 诸如Block Group Descriptor, Inode Table之类.给定一个ext2镜像, 遍历其所有文件, 并显示文件内容.假定该镜像的文件大小都比较小, 阅读全文
posted @ 2018-12-24 15:06 penghan 阅读(895) 评论(0) 推荐(0) 编辑
摘要: kmem_cache如下: kmem_cache_cpu定义如下: kmem_cache_node定义如下: 总的来说,slub分配object,先从c->freelist找,如果为空,再从c->page里transfer object到freelist(get_freelist).如果依然找不着, 阅读全文
posted @ 2018-12-21 17:51 penghan 阅读(633) 评论(0) 推荐(0) 编辑