03 2017 档案

摘要:2017-03-02 在Linux下的物理内存管理中,对SLAB机制大致做了介绍,对SLAB管理结构对象也做了介绍,但是对于小内存块的分配没有介绍,本节重点介绍下slab对小内存块的管理。 内核中使用全局的kmem_cache数组kmalloc_caches组织不同大小的缓存块,每个缓存块由一个km 阅读全文
posted @ 2017-03-21 10:25 jack.chen 阅读(2673) 评论(0) 推荐(0)
摘要:11:42:30 11:42:30 11:42:30 C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生 阅读全文
posted @ 2017-03-19 11:43 jack.chen 阅读(662) 评论(0) 推荐(0)
摘要:最近看各种上下文,发现和ThreadInfo中的preemption字段密切,于是便调查了下。 看下Linux源码中的注释: /* * We put the hardirq and softirq counter into the preemption * counter. The bitmask 阅读全文
posted @ 2017-03-19 10:30 jack.chen 阅读(2169) 评论(0) 推荐(0)
摘要:2017-02-23 一、伙伴系统 LInux下用伙伴系统管理物理内存页,伙伴系统得益于其良好的算法,一定程度上可以避免外部碎片为何这么说?先回顾下Linux下虚拟地址空间的分布。 在X86架构下,系统有4GB的虚拟地址空间,其中0-3GB作为用户空间,而3-4GB是系统地址空间。linux系统系统 阅读全文
posted @ 2017-03-03 19:01 jack.chen 阅读(7209) 评论(0) 推荐(0)
摘要:2017-03-03 很遗憾之前在介绍进程调度的文章中,虽然涉及到了内核抢占,但是却没有对其进行深入介绍,今天就稍微总结下内核抢占。 内核抢占在一定程度上减少了对某种事件的响应延迟,这也是内核抢占被引入的目的。之前的内核中,除了显示调用系统调度器的某些点,内核其他地方是不允许中重新调度的,如果内核在 阅读全文
posted @ 2017-03-03 18:11 jack.chen 阅读(3657) 评论(0) 推荐(0)

以马内利