进程管理之调度与负载均衡--问答

1.请简述进程优先级、nice值和权重之间的关系。
2.请简述CFS是如何工作的。3.CFS中vruntime是如何计算的?4.vruntime是何时更新的?5.CFS中的min_vruntime有什么作用?6.CFS对新创建的进程和刚唤醒的进程有何特殊处理?

7.内核代码中定义了若干个表,请分别说出它们的含义,如prio_to_weight、prio_to_wmult、runnable_avg_yN_inv。8.如果一个普通进程在就绪队列里等待了很长时间才被调度,那么它的量化负载该如何计算?9.为什么switch_to()函数有3个参数?prev和next就足够了,为何还需要last?10.switch_to()函数后面的代码(如finish_task_switch(prev)),该由谁来运行?什么时候运行?11.假设进程A和进程B都是在用户空间运行的两个进程,它们不主动陷入内核态,调度器要做切换,那么需要做什么事情才能把进程A切换到进程B?
12.接上题,进程B运行的时候,它从什么地方开始运行第一条指令?直接运行被暂停在用户空间的那条指令吗?为什么?13.在进程切换时需要刷新TLB,在ARM64处理器中如何提高TLB的性能?14.CFS在什么时候检查是否需要调度?15.在一个双核处理器里,CPU0和CPU1的就绪队列中都只有一个进程在运行,而且进程的优先级和权重相同,但是CPU0上的进程一直在占用CPU0,而CPU1上的进程是走走停停的,那么CPU0和CPU1的负载是否相同呢?16.请简述负载衰减的意义。

17.请简述PELT算法中量化负载的计算方法。18.请简述什么是处理器的额定算力和当前实际算力。19.在PELT算法中,LOAD_AVG_MAX宏代表什么含义?20.在PELT算法中,如何计算第n个周期的衰减?21.在PELT算法中,如何计算一个进程的可运行状态的量化负载load_avg?22.在PELT算法中,如何计算一个调度队列的可运行状态的量化负载runnable_load_avg?23.在PELT算法中,如何计算一个进程的实际算力util_avg?24.一个4核处理器中的每个物理CPU拥有独立L1高速缓存且不支持超线程技术,4个物理CPU被分成两个簇cluster0和cluster1,每个簇包含两个物理CPU,簇中的CPU共享L2高速缓存。请画出该处理器在Linux内核里调度域和调度组的拓扑关系。25.假设CPU0和CPU1属于同一个调度域且它们都不是空闲的CPU,那么CPU1可以做负载均衡吗?26.如何查找出一个调度域里最繁忙的调度组?27.如果一个调度域负载不均衡,请问如何计算需要迁移的负载量呢?
28.如果使用内核提供的唤醒进程接口函数(如wake_up_process())来唤醒一个进程,那么进程唤醒后应该在哪个CPU上运行呢?是调用wake_up_process()的那个CPU,还是之前运行该进程的那个CPU,或者是其他CPU呢?29.绿色节能调度器如何衡量一个进程的计算能力?30.当一个进程被唤醒时,绿色节能调度器如何选择在哪个CPU上运行?31.绿色节能调度器是否会做CPU间的负载均衡呢?32.目前在Linux 5.0内核中,CPU动态调频调压模

块CPUFreq和进程调度器之间是如何协同工作的?有什么优缺点?33.什么是能效模型?34.绿色节能调度器如何读取能效模型的数据?35.绿色节能调度器如何计算一个CPU的功耗?36.什么是硬实时和软实时?37.如何计算实时系统的延时?38.请列举产生中断延时的场景。39.请列举产生中断处理延时的场景。40.请列举产生调度延时的场景

41.调度的时机是什么?操作系统在什么时候会发生调度?42.如何合理选择下一个进程?43.什么是进程上下文?进程上下文包含哪些内容?44.进程上下文保存到哪里?45.进程切换时需要切换哪些东西?

你可能感兴趣的:(性能优化,linux)