轮询调度算法

1、简述五种常用的调度算法原理(第四章P77)。

最大载干比算法

最大载干比算法的基本思想是基站根据用户反馈的信道状态信息,依据用户的接收信号瞬时载干比值进行优先级排序,并按该优先级顺序选择用户,保证在任意时刻总是瞬时载干比值最好的用户得到服务。如果在某一时隙T内有K个用户需要进行数据服务,用户n的载干比值为。那么被服务的用户n*为:

 

轮询调度(RR)算法

轮询调度算法基本思想是按某种确定的顺序循环调度待服务用户,使得用户循环等时间占用系统无线资源。轮询调度算法以每个用户的服务优先级相等为调度基础,这种调度方式,可以实现用户间的最佳公平机制既可以保证用户间的长期公平性,也可以保证用户间的短期公平性。

比例公平算法

 比例公平(PF)算法折中考虑了系统容量和用户调度的公平性,其基本思路是以用户瞬时传输速率和平均传输速率的比值为优先级,根据优先级的大小进行用户的调度。

最大加权时延优先算法

最大加权时延优先(M-LWDF,Modified Largest Weighted Delay First)算法是针对高速率业务流而提出的。该算法的主要思想是综合考虑分组数据包的时延和信道质量信息,其用户优先级的计算不仅和用户当前的信道质量有关,还和数据包的队列时延有关。其优先级计算公式是在比例公平算法的优先级计算公式中加入对队列分组时延的考虑。

公平吞吐量算法

公平吞吐量调度算法就是依据用户的吞吐量来确定用户优先级,进而决定当前应该调度的用户。这样用户的优先级就和吞吐量成反比,从而保证了吞吐量低的用户优先级高,可以优先调度,使得用户之间吞吐量平衡。

2、模拟一个简单多用户争取资源的模型,编程实现轮询调度(RR)算法。可以自行预定义所需参数,比如参与者数目。

 

# Author:3201318121 阙楷初
user_num = int(input("请输入用户数量:"))
user_time = []
for i in range(user_num):
    user_time.append(int(input("请输入各用户的所需时间:")))
print(user_time)
Time = int(input("请输入时间片大小:"))
m = 0
flag = user_num
Total_time = 0
a = [0] * user_num
while flag != 0:
    flag = 0
    for i in range(user_num):
        if user_time[i] != 0:
            flag = flag + 1
        if user_time[i] <= Time and user_time[i] != 0:
            if user_time[i] == Time:
                a[i] = Total_time + flag * Time
            else:
                a[i] = Total_time + flag * Time - user_time[i]
            user_time[i] = 0
        elif user_time[i] > Time:
            user_time[i] = user_time[i] - Time
    m = m + 1
    Total_time = Total_time + flag * Time
    print("第{}轮用时{}:".format(m, Total_time))
    for i in range(user_num):
        print("此轮后,用户{}还需时间为:{}".format(i + 1, user_time[i]))
    flag = 0
    for i in range(user_num):
        if user_time[i] != 0:
            flag = flag + 1
for i in range(user_num):
    print("用户{}所用时间:{}".format(i + 1, a[i]))

3、描述轮询调度(RR)算法优缺点。

优点:可以实现用户间的最佳公平机制既可以保证用户间的长期公平性,也可以保证用户间的短期公平性。

缺点:由于算法不考虑用户的无线信道情况,对信道条件很差的用户和信道条件好的用户同等对待,这样很容易造成导致系统吞吐量的降低。一般认为轮询调度算法是系统性能较差的一种调度方式,以牺牲系统容量换取系统最大公平性能,这种算法适用于信道条件较为一致的系统中。

实验结果:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值