06 2017 档案
摘要:2017-06-27 上篇文章简要介绍了Linux进程调度,以及结合源代码窥探了下CFS的调度实例。但是没有深入内部区分析调度下面的操作,比如就绪队列的维护以及进程时间的更新等。本节就这些问题做深入讨论。 回想进程调度,在thread_info中有一个重调度位,标识当前进程是否需要被调度,如果该位被
阅读全文
摘要:上篇文章大致描述了Linux时间管理的基本情况,看了一些大牛们的博客感觉自己写的内容很匮乏,但是没办法,只能通过这种方式提升自己……闲话不说,本节介绍下时间管理下重要的数据结构 设备相关数据结构 //时钟源结构 struct clocksource{} //时钟设备结构 struct tick_de
阅读全文
摘要:2017/6/21 时间这一概念在生活中至关重要,而在操作系统中也同样重要,其在系统中的功能绝不仅仅是给用户提供时间这么简单,内核的许多机制都依赖于时间子系统。但凡是要在某个精确的时间执行某个事件,必然会用到时间子系统。而内核中定时器的发展可以以2.6版本的内核作为一个分界点。之前主要是低分辨率定时
阅读全文
摘要:2017-06-20 Linux的内核模块机制允许开发者动态的向内核添加功能,我们常见的文件系统、驱动程序等都可以通过模块的方式添加到内核而无需对内核重新编译,这在很大程度上减少了操作的复杂度。模块机制使内核预编译时不必包含很多无关功能,把内核做到最精简,后期可以根据需要进行添加。而针对驱动程序,因
阅读全文
摘要:2017-06-03 周末闲暇无事,聊聊内核中的wait_event*类函数的具体实现,等待事件必定涉及到某个条件,而这些函数的区别主要是等待后唤醒的方式……直奔主题,上源码 wait_event_interruptible 调用该宏首先会先检查条件,如果条件已经满足,则不用等了呀,返回吧……,否则
阅读全文
摘要:在内核中分配内存,最后要通过伙伴系统接口进行实际物理页面的分配,一个重要的接口便是alloc_page.本文介绍下alloc_page的主要流程,各个部分的执行。主要包含正常分配流程,当页面不足的时候的处理方式。先定位到核心调用 order是分配页面的阶,即2的指数个页面 nid指定了从哪个NUMA
阅读全文

浙公网安备 33010602011771号