- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 Linux readahead文件预读
Linux read/mmap 时将文件从磁盘读区到内存当中,read读取文件操作必然会带来IO如果能直接从内存当中读取文件这样就能有效的解决IO及延迟问题。page cache的诞生就是解决这个问题,文件读取后将文件对应的物理page 添加到redix tree当中管理后续在做同样的读取操作时就直接从page cache当中直接读取文件。这个机制本质上来讲与硬件架构的cache原理上是想通的,理解cache机制有助于理解page cache。
2024-03-31 23:11:41 785
原创 Linux likely、unlikely
1、likely,unlikely同if else一样进行分支判断;likely 期望执行if (true)为真的分支;unlikely 期望执行 if (true) 当中的else分支, 直接运 行else分支代码。 2、likely, unlikely 通过分支预测指令的预取能提高代码的执行效率。
2024-01-02 00:16:22 755
原创 Linux file-backed page fault
回头看这个do_fault_around 如果有这种机制的情况下一次最多可以映射 fault_around_bytes/PAGE_SIZE个pages,这样提高了fault的效率,如果没有这个机制一次只能映射一个page这样效率是低下的。总结以上三个流程核心流程是都是__do_fault 文件页的page fault的核心思想就是从page cache缓存当中读取文件,这样提高文件的page fault效率,这其中的预读,预fault都发挥重大作用。
2023-12-28 03:02:43 784
原创 Linux anonymous page fault
getchar();getchar();return 0;Active(anon): 524 kB //映射且没有做写操作Active(anon): 102956 kB //102956 - 524 = 100M,可以看到anon active list 增加100MActive(anon): 692 kB //释放内存。
2023-11-29 22:32:12 784
原创 Linux page fault
Linux在设计时有一个很重要的特性就是copy-on-write,这个特性就引出page fault,在用户态内存分配时,假如申请了1G内存,此时在没有使用的情况下Linux kernel 并没有提供实际的物理内存,只有当写访问时才会触发异常完成物理内存的分配,这个过程简单来讲就是page fault。通过以下demo能更加详细的认识这个page fault过程,做两个测试demo分别:demo01 memset 填充内存、demo02不填充内存。
2023-11-29 02:29:51 824
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人