本系列分享是《奔跑吧Linux内核》中进程管理章节的思考题。
内存管理思考题总链接:内存管理思考题(七)和(八) - i.MX - 恩智浦技术社区 (nxpic.org.cn)
进程管理思考题(一):
1. 在内核中如何获取当前进程的task_struct数据结构 2. 用户空间进程的页表是什么时候分配的,其中一级页表和二级页表是什么时候? 3. 简述对进程调度器的理解,早期内核调度器(O(N)和O(1))是如何工作的?
4. 简述进程优先级、nice值和权重之间的关系 5. 简述CFS调度器是如何工作的 6. CFS调度器中vruntime值是如何计算的? 7. CFS调度器中的min_vruntime有什么作用?
进程管理思考题(二):
1. CFS调度器对新创建的进程和刚唤醒的进程有何关照? 2. 如何计算普通进程的平均负载load_avg_contrib?runnable_avg_sum和runnable_avg_perid分别是什么含义? 3. 内核代码中定义了若干个表,说出它们的含义,比如prio_to_weight,prio_to_wmult,runnable_avg_yN_inv,runnable_avg_yN_sum. 4. 如果一个普通进程在就绪队列里等了很长时间才被调度,那么它的平均负载该如何计算?
|