调度是什么
由于每个任务的资源消耗情况在任务建立的时候是不可预知的,所以虚拟机中每个vcpu的负载不大可能做到均衡,从而导致pcpu也不大可能是负载均衡的 这样就需要在运行的时候进行适当的处理,使得每个物理cpu能负载均衡,这样更加节能,性能更稳定,更好,这个方法就是---'调度/schedule'有那些调度类型
- 当vcpu负载不均衡的时候,我们可以将vcpu在pcpu上进行调度
- 当vcpu负载不均衡的时候,我们还可以将新建立的任务重新调度到别的vcpu上去(这个还没把握,不确定是不是xen来完成的....)
pcpu-vcpu之间的调度
先来分析下总的调度方法schedule,此函数直接由softirq调用,中断号为0x1.schedule可以支持很多种调度的算法,这里分析默认的credit算法
schedule()
csched_schedule()
csched_load_balance()
csched_runq_steal()
__runq_remove()
context_switch()
