Xen CPU调度算法

  1. SEDF (Simple earliest deadline first)
    SEDF是按照最早截止日期优先调度的算法。
    其基本思想:
    每一个vm都有一个三元组(s,p,x)p表示周期的时间,s表示一个周期需要完成的任务数,x表示完成指定任务后等待还是直接进入下一个周期工作,x的取值只有0或者是1,0表示等待一个周期的全部执行才进入下一个周期,1则表示不用等待直接进入下一个周期。在CPU执行的每一个时刻会重新统计每个vm的最早截止日期并执行最早截止的vm.
    SEDF Example
    vm1(1,2,0) vm1(2,7,0)
    sedf算法
    注:<<表示正无穷,优先级变为最低, vm1 vm2 都为正无穷的时候 表示cpu不会执行,等待下一个时刻的计算。
    vm1 的CPU的利用率 50%
    vm2的CPU的利用率为 4/7
    总的CPU利用率为 11/14

当三元组的x为1的时候
CPU不再等待,工作完成直接进入下一个周期
这里写图片描述
总的CPU利用率为100%

优点是:效率很高、实现容易;易于推断及计算;支持working-conserving和non-working-conserving;支持实时性较强的应用;当系统负载较轻时,其处理器的利用率最高可达100%。

2.BVT(Borrowed Virtual Time)
BVT是一种公平性优先的调度算法
计算方法为Vi =Vt + t/wi
At为上一时刻的计算值, t为一个时间片 wi为每一个vm的权值
BVT example
这里写图片描述

vm1: t1 = 0 + 1/0.1 = 10 vm2 : 0 + 1/0.05=20 < vm1 执行 vm1
t2= 10 + 1/0.1=20 vm2: 0+1/0.05=20 =vm1 随意执行 假设执行vm2
t3=10 + 1/0.1=20 vm2: 20+1/0.05=40

猜你喜欢

转载自blog.csdn.net/qq_33460865/article/details/79574648
XEN