- 博客(11)
- 问答 (1)
- 收藏
- 关注
原创 第十七章 回收页框
页框回收算法是一种操作系统内存管理的策略,其主要目标是通过从用户态进程和内核中的页高速缓存窃取页框,补充伙伴系统的空闲块链表。页框回收算法的目标之一就是保存最少的空闲页框,以便内核可以安全的从内存紧张中恢复过来。 页框回收算法(PFRA)的目标就是,获得页框并将之释放到伙伴系统中。显然这些页框之前不是空闲的,也就是不在伙伴系统中。页框回收算法按照页框所含的内容,以不同的方式处理页框。页类型说明回收操作不可回收页空闲页(包含在伙伴系统列表中) 保留页(PG_reserved标志置位)
2025-06-11 14:40:54
911
原创 第8章补:Linux-5.10.110中的内存分配
因此,我们这里获取他的匹配程度,分别是FL_FIT_TYPE(完全匹配),LE_FIT_TYPE(左匹配),RE_FIT_TYPE(右匹配),NE_FIT_TYPE(非边缘匹配)。gfp_mask:我们传入的gfp_mask;总结,上面的分配流程有一下三步,也就是从freelist中分配,或者将c->partical中的页赋给c->page,然后再从c->freelist中分配,或者将node->partical中的页分配c->page与c->partical,然后从c->freelist中分配。
2025-06-10 10:44:30
714
原创 深入理解LINUX内核——专栏介绍
这个专栏是在阅读《深入理解LINUX内核》这一本书的时候,总结的笔记。所以,专栏的章节结构也是和《深入理解LINUX内核》这本书保持一致。由于书中描述的是Linux2.6.11版本,太老了,所以基于Linux5.10.110版本对书中的内容做了补充。
2025-06-09 16:02:27
221
原创 Makefile学习笔记
其中,makefile中的$$?表示shell中的$?,也就是shell中,上一个执行指令的返回值(返回0表示指令执行正常,其他的值表示指令执行不正常)。1:在makefile中使用shell命令,或者引用shell变量。
2023-04-06 20:04:54
140
原创 第八章 内存管理
内存中,某些部分被永久的分配给内核,用来存放内核代码和静态内核数据结构。其余的部分叫做动态内存。本章描述了内核如何给自己分配动态内存。一般情况下,我们使用kmalloc分配小块内存,使用vmalloc分配大块内存。 下面的图就显示了内存中,动态内存或者被保留的内存的分布情况。 页框,也就是物理内存上的4K或者其它大小的物理页。内核必须记录每个页框的当前状态。这些状态信息保存在一个page结构体中,这个结构体叫做页描述符。struct page { unsigned
2022-12-15 19:24:57
321
原创 第二章 内存寻址
对于x86_64架构和arm64架构,这个临时页表都包含了两块映射,分别是1比1的映射(用于实模式下的地址翻译),以及内核的虚拟地址(vmlinux.lds.S中定义)到物理地址之间的映射。某一次CPU查询一个char类型的量,没有在cache中,这时候会直接加载char变量附近的8字节到cache中,而不是只加载一个字节的char变量。可以想象,还是之前那个数组的例子,这时候,我们访问数组的时候,a[0][0],a[1][0]会同时存储在cache中。在分段单元的保护中,使用的是段描述符的DPL。
2022-12-13 15:52:54
907
1
如何使用xml schema和libxml2库对多个xml文件中的数据关系进行验证
2021-08-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人