加权公平队列调度算法

加权公平队列调度算法
加权公平队列调度算法

2008年2月

February 2008

—28—

计 算 机 工 程Computer Engineering 第34卷 第4期

Vol.34 No.4 ·博士论文·

文章编号:1000—3428(2008)04—0028—03

文献标识码:A

中图分类号:TP391

一种新的加权公平队列调度算法

尹德斌,谢剑英

(上海交通大学自动化系,上海 200240)

摘 要:传统公平队列调度算法(WFQ 、WRR 等)普遍存在基于数据包的权重参数计算问题,由此产生的高复杂度使其难以获得广泛应用。该文提出一种新的加权公平队列调度算法,使用服务概率和随机数实现加权公平调度,显著降低了算法的复杂度。同时使用自适应服务概率计算解决了数据包变长度带来的不公平性。通过队列管理技术有效地提高了交换机的缓冲区利用率,并减小了排队延迟抖动。仿真结果证明了算法的有效性和实用性。

关键词: 队列调度;加权公平排队;自适应队列管理;分组交换网络

New Weighted Fair Queue Scheduling Algorithm

YIN De-bin, XIE Jian-ying

(Department of Automation, Shanghai Jiaotong University, Shanghai 200240)

【Abstract 】Traditional weighted fair queue algorithms have the main drawback: the calculation of the weight parameters according to each packet.The paper proposes a new weighted fair queueing algorithm(SPFQ), which uses service probability to schedule packets and a random number to decide which packet to be served next. In addition, a novel adaptive service probability parameter calculation method is used to solve the unfair problem induced by the variable packet length and an adaptive queue management technology to improve the utilization of the server's queue buffer and reduce the delay burstiness. Simulation results demonstrate the validity and practicability of SPFQ.

【Key words 】queue scheduling; weighted fair queueing; adaptive queue management; packet switching network

1 概述

队列调度是当前互联网技术领域的一个研究热点。其中,加权公平队列调度算法由于能够根据各业务流的权重进行区分服务而受到广大研究者的广泛关注[1-9]。其中最著名的是加权公平WFQ [1]和加权轮询WRR [6]两类算法。WFQ 及其改进算法[3,5,7]都基于通用处理机共享模型[2],使用虚时间(virtual time)进行数据包转发。WFQ 算法在业务流受漏斗约束的情况下可以提供精确的带宽保证和最大时延上限,并且数据包的转发不受其他业务流特性影响。但是它的计算复杂度太高。WRR [2,6]是另一类复杂度相对较低的常用加权队列调度算法;各业务流在一次轮询中所允许发送的数据包个数由队列权重决定。DRR [4]引入了差额计数器(dificit conter),记录由数据包长度不同引起的服务量差。轮询类算法复杂度较低,但无法提供确定的带宽保证和时延上限。

国内的研究者近年来也提出了许多队列调度算法。文 献[8]针对SS 和BF 两种业务流,提出了一种对数自适应调度算法,但该算法对类内各业务流之间如何调度并没有说明,且不能提供公平服务和隔离特性。文献[9]提出了一种用于区分服务网络的虚时钟核心无状态队列调度算法,各数据包自身携带虚时钟状态信息,中心服务器根据虚时钟进行转发,但需要根据虚时钟将入队列数据包插入到转发队列中,这无疑是一项沉重的计算负担。另外,该算法并未考虑虚时钟清零问题。本文提出了一种新的加权队列调度算法SPFQ 。由于采用了指数移动平均算法和阀值触发的平均数据包长度更新,使得服务概率计算频度大大降低,从而显著降低了算法的复杂度。 2 SPFQ 队列调度算法

2.1 SPFQ 的基本原理

SPFQ 算法依据各业务流的平均数据包长度将它们的权重转换成归一化服务概率,通过该参数实现加权服务。为了降低算法的复杂度,系统采用事件触发方式计算队列的平均长度。在算法实现中,使用单独模块计算服务概率,以减轻调度器的负荷。

2.2 SPFQ 的结构

数据包分类器图1 SPFQ 算法结构

基金项目:国家自然科学基金资助项目(60572157);国家“863”计划基金资助项目(2003AA123310)

作者简介:尹德斌(1978-),男,博士,主研方向:包交换网络的队列调度和管理;谢剑英,教授、博士生导师

收稿日期:2007-03-10 E-mail :yin_db@https://www.360docs.net/doc/185762000.html,

SPFQ 算法结构主要包括:(1)数据包分类器;(2)队列管理器;(3)SPFQ 调度器;(4)数据包长度观察器;(5)自适应服务概率计算器;(6)随机数发生器。随机数发生器生成一个在区间[]0,1内均匀分布的随机数。为了消除数据包长度变化时的服务量差异问题(参见4.2节),

在调度器输出端设计了数据包长度反馈环节,下面分别介绍其余4个模块。 (1)RN 2.3 队列管理器

SPFQ 的队列管理器为各业务流维护一个独立的缓冲区;根据各业务流的时延和速率要求,动态调整其缓冲区长度,最优化缓冲区利用。对于具有带宽、时延要求的数据流,定义队列缓冲区长度满足下式:

max i i bl bl ≤ (1) max min max ()max{, }i j i i k

k AQ N w BL

bl bw w τ∈×=×∑ (2)

其中,是要求的最小带宽;是最大时延;min bw max i τBL 是缓冲区总长度;()AQ N 为当前活动队列集。

对于没有明确QoS 要求的数据流,基于“尽力而为”服务要求,并考虑对其他业务流的保护和网络拥塞控制的要求,定义队列缓冲区长度满足下式:

max j j bl bl ≤ (3) max ()j

j

k

k AQ N w bl BL w ∈=∑

× (4)

其中,j w 是队列权重。

服务器使用统一缓冲区管理策略,即各业务流共享同一空闲缓冲区。当有数据包到达时,如果缓冲区有足够的空闲空间,验证式(1)或式(3),满足则分配缓冲区,数据包入队列;否则丢包。

2.4 数据包长度观测器

长度观测器监测新业务流,根据长度反馈和设定阀值更新各队列的平均数据包长度;自适应服务概率计算器根据数据包平均长度和权重参数动态调整各业务流的服务概率,以消除数据包变长度引起的不公平性。

观测器从数据包长度反馈环节接收当前被转发数据包的长度,用于更新相应的平均数据包长度。为了降低计算复杂度,SPFQ 使用指数移动平均(Exponential Moving Average, EWMA)来估计数据包平均长度

curr 1

j

??(1)j l l μμ+=×+?×j

l (5)

其中,?j l 是当前数据包平均长度估计值;1?j l +是更新后的估计值;是当前被转发数据包的长度;curr j l μ是权重因子,本文取7/8。

单位时间内有大量数据包离开服务器,如果对平均长度进行实时更新则计算量太大。因此,SPFQ 使用下列平均长度更新算式

1

??, ?, j j j j j j j l l l l l l l l l νν+??×?=?

?<×??

≥j j

(6) 其中,v 是阈值因子,本文取0.1,它决定了更新精度。 2.5 自适应服务概率计算器

考虑如图1所示的单服务器系统,假设有N 个队列通过该节点转发数据包,其中第个队列的服务权重为,则如果各队列数据包长度相同,则每个队列的服务概率定义为

i (1)i w i N ≤≤()()

() 0 i j

j AQ N i i AQ N i AQ N w w p ∈?∈?

?=??

?∑ (7) 对于变长度数据包网络,式(7)修正为

()()

() 0 i i

j i j AQ N j i AQ N i AQ N w l w p l ∈?∈????=?

????∑ (8) 其中,i l 是数据包长度观测器给出的平均长度。

当i l 发生变化时,长度观测器通知服务概率计算器重新计算各业务流的服务概率。服务概率计算器按下式维护一个

服务概率表供调度器使用

(1) 1 2 1 i i i i p i P p i P i N ?=??

N +<=??=?

≤ (9)

这样为闭区间内的递增序列。

(1)i P i N ≤≤1[,1]p 2.6 SPFQ 队列调度器

SPFQ 算法是非抢占的,它依据各队列的服务概率进行数据包转发。同一队列中的数据包按先来先服务(FCFS)原则转发。调度器基本原理是:在一次转发中,调度器从随机数发生器中获取随机数,查询服务概率表,找到满足下式的

(1)RN i P (1)(1)i P RN ?i P <≤ (10) 则队列i 的头数据包被转发。当所有服务队列都为空时服务器进入空闲状态(服务保持)。

3 SPFQ 算法复杂度分析

分析图1中SPFQ 算法的结构,长度观测器和自适应服务概率计算器以及随机数发生器都可用单独模块实现;它们只和调度器交换数据,不增加调度器的计算负荷。与其他调度算法相比,SPFQ 增加了一个队列管理器。对于一个实际运行的路由器,这是必不可少的。这样算法的主要改进集中在SPFQ 队列调度器。

队列调度器的任务是将随机数与按照式(9)计算得到的服务概率表中的数据相比较,找到符合式(10)式的队列,然后转发它的头数据包。这样,调度器的实现便是一个线性表查询问题。由于服务概率表单调递增,因此可以使用二分查找法。唯一不同的是查找目标不是和随机数相等,而是符合式(10)。二分查找法的最坏复杂度是,所以SPFQ 队列调度器的最坏复杂度为。

(1)RN i (log )O n (log )O n 与基于GPS 的调度算法相比,SPFQ 只需要为每个活动业务流维护一个服务概率参数,而不需要维护基于每个数据包的参数集。这样,只有当系统中出现新业务流或当前活动业务流变为空闲以及数据包长度发生较大变化时,才需要重新计算服务概率参数。很明显,这类事件的发生频度要远远小于数据包的到来和离开,因此SPFQ 的计算复杂度要远远低于基于虚时间的调度算法。即使与基于轮询的加权轮询和紧急轮询等算法相比,由于不需要进行基于数据包的权重跟踪,因此SPFQ 的复杂度也低于这类算法。

4 仿真结果

本节使用网络模拟软件NS-2对SPFQ 算法进行仿真。分别验证算法的加权公平性和其在数据包长度发生变化时的 性能。

—29—

4.1 算法公平性验证

仿真所用网络拓扑如图2所示,节点0~节点3分别通过10 Mb/s 链路与节点4相连,均使用DropTail 算法。节点4与节点5通过7.5 Mb/s 链路相连,使用本文提出的SPFQ 算法。各节点的参数和权重如表1所示。4个业务流全部使用CBR 数据流,仿真时间为100 s 。图3给出了仿真结果,其中左侧带宽是每0.5 s 采样一次的结果,右侧服务量是实时 数据。

图2 网络拓扑结构(公平性验证) 表1 各数据流的参数分配

节点数据流类型速率/(Mb ·s -1)数据包长度/B 权重0 CBR 1 250

1 1 CBR

2 500 2 2 CBR 4 750 4

3 CBR

8

1 000 8

图3 各业务流获得的带宽和服务量

从图3可以看出,100 s 内4个业务流所获得的带宽在权重所定的理论值上下小范围波动;仿真结束时,4个业务流获得的服务量分别为50 Mb, 100 Mb, 200 Mb 和400 Mb ,这和由链路4-5的带宽(7.5 Mb/s)和各个节点的权重分配(1:2:4:8)所得理论值严格相符。该仿真验证了SPFQ 算法的公平性。 4.2 数据包长度变化时的算法性能

本节所用网络拓扑如图4所示,n0和n1是两个数据源,权重相等,发送速率都为2 Mb/s ;节点4和节点5间的带宽为2 Mb/s ,各链路时延为1 ms ,仿真时间20 s 。仿真开始时,节点0的数据包长度为250 B ,节点1的数据包长度为500 B ;在第10 s 时,节点0的数据包长度变为1 000 B ,直至仿真结束;节点1的数据包长度在整个仿真中保持不变。为了对比

图4 网络拓扑结构(数据包长度变化)

图5给出的仿真结果中禁用了调度器输出端的长度反馈环节,而改由长度观测器直接根据入队列数据包的长度信息来更新数据包平均长度参数。从图5可以看出,由于长度观测器(图1)是在数据包入队列之前采样长度信息,这样在第10 s 处,随着队列0的数据包长度增大,它的服务概率立即减小(式(7));但此时队列缓冲区内还有长度较小的数据包在排队等候转发,所以该业务流0获得的带宽降低,业务流1

获得带宽便相应增加。当缓冲区中排队的长度较小数据包被转发完毕后,业务流0和业务流1所获带宽恢复正常(大约在12 s 处)。

Flow0

仿真时间/s

2

4

6

8

10

12

14

16

18

20

实时服务量/(M b ·s -1)

7142107

1421

所获带宽/(M b ·s -1)

0.3

0.60.91.21.81.50.30.6

0.91.21.81.5Flow1

图5 数据包长度变化对带宽和服务量的影响1

图6给出的仿真曲线是按照图1中的结构,使用出队列数据包的长度反馈信息来更新数据包平均长度。在这两组曲线中,左侧是两个业务流获得的带宽(20 s 内采样100次),右侧是相应的实时服务量曲线。在图6中,由于是在出队列时采样数据包长度信息,这样数据包长度的变化和队列中要转发的数据包一致,因此数据包长度变化对业务流所获带宽和服务量便没有任何影响。这说明SPFQ 可以很好地保证变长度数据包环境下的公平性。

图6 数据包长度变化对带宽和服务量的影响2

5 结束语

本文提出了一种新的加权公平队列调度算法SPFQ 。该算法使用服务概率实现加权服务。与传统的加权队列调度算法相比,SPFQ 最大的优势是计算复杂度低,无需维护基于数据包的状态跟踪,所需的路由器计算负荷小。仿真结果说明算法具有极好的长期和短期公平性,并能很好地解决数据包变长度引起的不公平性问题。

本文的主要工作有:(1)通过服务概率函数体现不同业务流的权重,从而避免了大多数加权队列调度算法中需要跟踪计算各个业务流权重变化的问题,极大地简化了算法的复杂度。(2)考虑了缓冲区长度问题,对各个业务流的最大队列长度进行了限制。(3)使用数据包平均长度估计值进行服务概率计算,虽然损失了一定的精确性,却极大地简化了服务概率函数的计算,使算法可以运行在高速网络中。

本文还使用了一种较简单的队列管理机制,用于限制各业务流的缓冲区队列长度。根据队列调度和主动队列管理这两种算法在路由器中的运行位置和各自的功能。下一步工作要考虑联合设计这两种算法,以期实现组合性能优化。

参考文献

[1] Demers A, Keshav S, Shenker S. Analysis and Simulation of a Fair

Queueing Algorithm[J]. Internetworking: Research and Experience, 1990, 1(1): 3-26.

[2] Parekb A K, Gallager R G. A Generalized Processor Sharing

(下转第33页)

1.8

21

Flow1 仿真时间/s

1.5实时服务量/(M b ·s

所获带宽/(M b ·s -1

)

-1)140

2468101214161820

0.3

0.60.91.21.81.50

7

1421070.3

0.60.91.2Flow0

—30—

操作系统综合实验

华北科技学院计算机学院综合性实验实验报告 课程名称《计算机操作系统》 实验学期2015 至2016 学年第一学期学生所在系部计算机系 年级2013 专业班级计科B133 学生姓名谢培旗学号201307014319 任课教师王祥仲 实验成绩

计算机学院制 华北科技学院计算机学院综合性实验报告 》课程综合性实验报告《计算机操作系统年 12 月 4 日 2015 基础二开课实验室:

页1 第 华北科技学院计算机学院综合性实验报告 (5)分析程序运行的结果,谈一下自己的认识。

四、实验结果及分析 本实验设计到三个进程调度,分别是:先来先服务调度算法,非抢占式短进程调度算法,最高响应比优先调度算法。以下为本次实验结果截图及分析: 程序运行界面截图: 先来先服务调度算法1.

页2 第 华北科技学院计算机学院综合性实验报告 分析: 当在进程调度中采用FCFS算法时,每次调度是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后,进程调度才将处理机分配给其它进程。 程序计算结果如图,设有5个进程:a、b、c、d、e在不同时间到达,按其到达时间排序则为:a->b->c->d->e,即调用先来先服务算法以后进程运行的顺序是:a->b->c->d->e。 2.非抢占式短进程调度算法 算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所SJF算法可以分别用于作业调度和进程调度。在把短作业优先调度算SJF要求的运行时间来衡量的。优先将法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,它们调入内存运行。在不同时间到达,按其所需服务时间长ed、ca程序计算结果如图,设有5个进程:、b、、,即调用非抢占式短进程优先调度算法以后进程运行的顺序是:短排序则为: a->b->e->c->d 。a->b->e->c->d 页3 第

多级反馈队列调度算法的实现

学生实习报告 课程名称_ 数据结构与数据处理应用训练 题目名称多级反馈队列调度算法的实现 学生学院计算机与计算科学 专业班级 学号 学生姓名 指导教师 2012年 2月 16 日 多级反馈队列调度算法的实现 【摘要】 多级反馈队列调度算法是操作系统中CPU处理机调度算法之一,该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成。UNIX操作系统便采取这种算法,而本次试验就是试用C语言模拟某多级反馈队列调度算法。本次试验中前三级就绪队列采用时间片轮转法,时间片大小分别为2、4和8,最后一级就绪队列采用FIFO调度,将任务进入多级队列进行模拟,任务从优先级高的队列到优先级地的队列的顺序逐一进入,还用了算法支持抢占式,最后完成模拟,得到各个任务先后完成的顺序,还有得到各个任务的响应时间、离开时间、周转时间。 【关键词】队列优先级任务时间 1 内容与要求 【内容】 多级反馈队列调度算法是操作系统中CPU处理机调度算法之一,该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成。UNIX操作系统便采取这种算法,本次试验就是试用C语言模拟某多级反馈队列调度算法,通过输入任务号、到达时间、运行时间,求出任务完成的先后顺序以及各个任务

的响应时间、离开时间、周转时间。 【要求】 多级反馈队列调度算法描述: 1、该调度算法设置四级就绪队列:前三级就绪队列采用时间片轮转法,时间片大小分别为 2、4和8;最后一级就绪队列采用FIFO调度。 2、任务在进入待调度的队列等待时,首先进入优先级最高的队列等待。 3、首先调度优先级高的队列中的任务。若高优先级中队列中已没有调度的任务,则调度次优先级队列中的任务,依次类推。 4、对于同一个队列中的各个任务,按照队列指定调度方法调度。每次任务调度执行后,若没有完成任务,就被降到下一个低优先级队列中。 5、在低优先级的队列中的任务在运行时,又有新到达的任务,CPU马上分配给新到达的任务。(注:与原来的题目不同,原题是在低优先级的队列中的任务在运行时,又有新到达的任务时,要在运行完这个时间片后,CPU马上分配给新到达的任务,而本题不需要在运行完这个时间片,即正在进行的任务立刻停止,CPU 马上分配给新到达的任务) 6、为方便实现,时间以1为单位,用整数数据表示;且每个时间点,最多只有一个任务请求服务(即输入)。 2 总体设计 算法总体思路: 这是建立在一个时间轴上的,即时刻,一个一个时刻(时间点)进行。 2.1.1 主函数思路:

加权公平队列调度算法

2008年2月 February 2008 —28— 计 算 机 工 程Computer Engineering 第34卷 第4期 Vol.34 No.4 ·博士论文· 文章编号:1000—3428(2008)04—0028—03 文献标识码:A 中图分类号:TP391 一种新的加权公平队列调度算法 尹德斌,谢剑英 (上海交通大学自动化系,上海 200240) 摘 要:传统公平队列调度算法(WFQ 、WRR 等)普遍存在基于数据包的权重参数计算问题,由此产生的高复杂度使其难以获得广泛应用。该文提出一种新的加权公平队列调度算法,使用服务概率和随机数实现加权公平调度,显著降低了算法的复杂度。同时使用自适应服务概率计算解决了数据包变长度带来的不公平性。通过队列管理技术有效地提高了交换机的缓冲区利用率,并减小了排队延迟抖动。仿真结果证明了算法的有效性和实用性。 关键词: 队列调度;加权公平排队;自适应队列管理;分组交换网络 New Weighted Fair Queue Scheduling Algorithm YIN De-bin, XIE Jian-ying (Department of Automation, Shanghai Jiaotong University, Shanghai 200240) 【Abstract 】Traditional weighted fair queue algorithms have the main drawback: the calculation of the weight parameters according to each packet.The paper proposes a new weighted fair queueing algorithm(SPFQ), which uses service probability to schedule packets and a random number to decide which packet to be served next. In addition, a novel adaptive service probability parameter calculation method is used to solve the unfair problem induced by the variable packet length and an adaptive queue management technology to improve the utilization of the server's queue buffer and reduce the delay burstiness. Simulation results demonstrate the validity and practicability of SPFQ. 【Key words 】queue scheduling; weighted fair queueing; adaptive queue management; packet switching network 1 概述 队列调度是当前互联网技术领域的一个研究热点。其中,加权公平队列调度算法由于能够根据各业务流的权重进行区分服务而受到广大研究者的广泛关注[1-9]。其中最著名的是加权公平WFQ [1]和加权轮询WRR [6]两类算法。WFQ 及其改进算法[3,5,7]都基于通用处理机共享模型[2],使用虚时间(virtual time)进行数据包转发。WFQ 算法在业务流受漏斗约束的情况下可以提供精确的带宽保证和最大时延上限,并且数据包的转发不受其他业务流特性影响。但是它的计算复杂度太高。WRR [2,6]是另一类复杂度相对较低的常用加权队列调度算法;各业务流在一次轮询中所允许发送的数据包个数由队列权重决定。DRR [4]引入了差额计数器(dificit conter),记录由数据包长度不同引起的服务量差。轮询类算法复杂度较低,但无法提供确定的带宽保证和时延上限。 国内的研究者近年来也提出了许多队列调度算法。文 献[8]针对SS 和BF 两种业务流,提出了一种对数自适应调度算法,但该算法对类内各业务流之间如何调度并没有说明,且不能提供公平服务和隔离特性。文献[9]提出了一种用于区分服务网络的虚时钟核心无状态队列调度算法,各数据包自身携带虚时钟状态信息,中心服务器根据虚时钟进行转发,但需要根据虚时钟将入队列数据包插入到转发队列中,这无疑是一项沉重的计算负担。另外,该算法并未考虑虚时钟清零问题。本文提出了一种新的加权队列调度算法SPFQ 。由于采用了指数移动平均算法和阀值触发的平均数据包长度更新,使得服务概率计算频度大大降低,从而显著降低了算法的复杂度。 2 SPFQ 队列调度算法 2.1 SPFQ 的基本原理 SPFQ 算法依据各业务流的平均数据包长度将它们的权重转换成归一化服务概率,通过该参数实现加权服务。为了降低算法的复杂度,系统采用事件触发方式计算队列的平均长度。在算法实现中,使用单独模块计算服务概率,以减轻调度器的负荷。 2.2 SPFQ 的结构 数据包分类器图1 SPFQ 算法结构 基金项目:国家自然科学基金资助项目(60572157);国家“863”计划基金资助项目(2003AA123310) 作者简介:尹德斌(1978-),男,博士,主研方向:包交换网络的队列调度和管理;谢剑英,教授、博士生导师 收稿日期:2007-03-10 E-mail :yin_db@https://www.360docs.net/doc/185762000.html,

操作系统进度调度算法实验

华北科技学院计算机系综合性实验 实验报告 课程名称操作系统C 实验学期 2012 至 2013 学年第 2 学期学生所在系部计算机学院 年级 10级专业班级网络B102 学生姓名刘状学号 201007024205 任课教师杜杏菁 实验成绩 计算机系制

《操作系统C》课程综合性实验报告 开课实验室:基础六机房2013年6月3日 实验题目进程调度算法模拟 一、实验目的 通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。 二、设备与环境 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如C \C++\Java 等编程语言环境。 三、实验内容 (1)用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度。 (2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段: ?进程标识数ID。 ?进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。 ?进程已占用CPU时间CPUTIME。 ?进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。 ?进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进 入阻塞状态。 ?进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将 转换成就绪状态。 ?进程状态STATE。 ?队列指针NEXT,用来将PCB排成队列。 (3)优先数改变的原则: ?进程在就绪队列中呆一个时间片,优先数增加1。 ?进程每运行一个时间片,优先数减3。 (4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。 (5)分析程序运行的结果,谈一下自己的认识。

常用的分组调度算法

[编辑本段]常用的分组调度算法 对于调度算法有两个重要的设计参数:一个是吞吐量,另一个是公平性。调度算法是数据业务系统的一个特色,目的是充分利用信道的时变特性,得到多用户分集增益,提高系统的吞吐量。吞吐量一般用小区单位时间内传输的数据量来衡量。公平性指小区所有用户是否都获得一定的服务机会,最公平的算法是所有用户享有相同的服务机会。奸的调度算法应该兼顾吞吐量和公平性,根据算法的特点,调度算法主要可分为:轮询(Round Robin, RR)算法;最大C/I算法(MaxC/1);正比公平(Proportional Fair,PP)算法。 (1)轮询算法 在考虑公平性时,一般都把循环调度算法作为衡量的标准。这种算法循环地调用每个用户,即从调度概率上说,每个用户都以同样的概率占用服务资源(时隙、功率等)。循环调度算法每次调度时,与最大C/I算法相同,并不考虑用户以往被服务的情况,即是无记忆性方式。循环调度算法是最公平的算法,但算法的资源利用率不高,因为当某些用户的信道条件非常恶劣时也可能会得到服务,因此系统的吞吐量比较低。 图7-35给出了以时分方式使用高速下行共享信道(High Speed Downlink Share CHannel, HS-DSCH)信道的一种可能的资源分配方式。从图中可以看出,尽管UEl和UE2的信道环境不同(与基站的距离不同),但是分配了相同的信道使用时间给UEl和UE2。 (2)最大C/I算法 最大C/I算法在选择传输用户时,只选择最大载干比C/I的用户,即让信道条件最好的用户占用资源传输数据,当该用户信道变差后,再选择其他信道最好的用户。基站始终为该传输时刻信道条件最好的用户服务。 最大C/I算法获取的吞吐量是吞吐量的极限值,但在移动通信中,用户所处的位置不同,其所接收的信号强度不一样,最大C/I算法必然照顾了离基站近、信道好的用户,而其他离基站较远的用户则无法得到服务,基站的服务覆盖范围非常小。这种调度算法是最不公平的。 图7-36给出了以时分方式使用HS-DSCH信道的一种可能的资源分配方式。该图假定了服务过程中UEl的信道条件始终好于UE2。从图中可以看出,只有当信道条件较好的UEI缓冲区数据全部传输完毕,系统才调度UE2服务。

LTE上下行调度原理和过程

下行调度 调度器主要决定(输出): ?被调度的UE ?MCS ?分配的RB数、RB位置和TBS ?对应的MIMO传输模式 下行调度用户的选择: 下行调度支持四种调度算法:最大载干比算法(MaxC/I)、轮询算法(RR)、比例公平算法(PF)和增强型比例公平算法(EPF)。四种调度算法的差异主要体现在选择调度用户的优先级计算方面, MaxC/I 相比, 保GBR GBR ?当DlMbrCtrlSwitch打开时 GBR承载的调度速率将介于MBR和GBR之间,这时候需要和Non-GBR承载一起进行资源协调分配。因此,优先级计算采用和Non-GBR相同的计算方式。 Non-GBR业务的优先级: Non-GBR业务的优先级考虑用户的信道质量、用户历史传输速率、业务的QCI级别和服务流的权重等,并保证UE所有的Non-GBR业务不超过配置的UE-AMBR,其调度优先级计算如下: 上行调度 上行调度器每TTI调度的流程,就是按照优先级依次调度: 上行调度的触发流程如下:

1.当UE有数据要发送时,会在其所属的PUCCHSRI(SchedulingRequestIndicator)资源上发送SR (SchedulingRequest)给eNodeB。 2.eNodeB收到SR,会响应SR并对该用户进行调度,这种用户称为SR用户。 3.SR用户在eNodeB分配的资源上传送MACPDU,包括BSR(BufferStatusReport)等。 4.如果eNodeB收到的BSR大于0,会继续调度该用户,使得UE进行数据传输。 上行动态调度的初传包括调度用户选择、调度资源获取、调度用户MCS选择和调度用户RB数及 位置选择等功能。 1、调度用户选择 上行调度和下行调度类似,也支持四种调度方式:MaxC/I,RR,PF,EPF。与下行调度不同的是,下行调度输入的信道质量信息为UE上报的CQI信息,上行调度输入的信道质量信息为系统测量 的上行SINR。 益。即图 利用( SINR(SINR

多级反馈队列调度算法

#include #include <> #include<> #define NULL 0 #define MAL(type) (type *)malloc(sizeof(type)) using namespace std; typedef struct LNode {char name[5]; char state; int runtime; int needtime; struct LNode *next; }LNode; LNode *H; int T,D,J; void print() {LNode *p=H; printf("\n进程名需执行时间已执行时间状态\n"); for(int i=0;iname,p->needtime,p->runtime,p->state); p=p->next; } system("PAUSE");

void input() {int i; printf("请输入进程数:"); scanf("%d",&J); for(i=0;iname); printf("请输入第%d个进程需要的执行时间:",i+1); scanf("%d",&q->needtime); if(q->needtime<=0) {printf("所需时间要大于0\n 请重新输入——\n");i--;} else {q->runtime=0; q->state='N'; q->next=NULL; } if(i==0) H=p=q; else {p->next=q;p=q;} } printf("\n进程初始化态为:"); print();

LTE上行资源比例公平调度算法研究

2010年9月 第15卷第5期 西 安 邮 电 学 院 学 报 JO U RNAL OF XI A N U N IV ERSIT Y OF POST S A ND T EL ECOM M U NI CAT ION S Sept.2010Vol 15N o 5 收稿日期:2010-03-13 作者简介:亓 飞(1985-),男,山东莱芜人,西安邮电学院通信与信息工程学院硕士研究生; 卢光跃(1971-),男,河南南阳人,西安邮电学院通信与信息工程学院教授,博士,博士生导师。 LT E 上行资源比例公平调度算法研究 亓 飞,卢光跃 (西安邮电学院通信与信息工程学院,陕西西安 710121) 摘要:3G PP 采用SC FDM A(Single carrier F DMA )作为长期演进(Long T erm Evolution,LT E)上行多址接入技术,SC FDM A 要求在同一时隙内分配给任一用户的所有资源块(Resource Blo ck,RB)必须是连续的,因此L T E 下行中常用的比例公平(Proportional Fair,PF)算法不能直接用到SC FDM A 中。为在LT E 上行链路中使用PF 算法,必须对已有算法进行改进,以满足这种连续RB 分配限制。本文论述并分析了LT E 上行链路中几种PF 算法,针对这几种算法的优缺点提出了一种PF 算法,并与之前论述的算法进行比较分析。通过仿真,从系统吞吐量和公平性两方面完成算法的性能比较,并验证了理论分析结果。关键词:SC F DMA ;比例公平;连续RB 分配限制 中图分类号:T N 91 4.51 文献标识码:A 文章编号:1007-3264(2010)05-0009-05 0 引言 作为LTE 下行多址技术(Orthogonal Frequency Division Multiple Access,OFDMA)具有频谱效率高、抗多径衰落、带宽扩展性强等优点,但输出信号是多个子信道信号的叠加,导致OFDM 符号具有很高的峰均比(PAPR)。由于终端成本和功率限制,高PA PR 使得OFDMA 不易于在上行链路实现。SC FD MA 具有低PAPR 的特点,并兼有OFDMA 的诸多优点,因此3GPP 采用SC FDM A 作为LTE 的上行多址技术方案。 目前关于多载波系统的资源分配工作,很多是针对OFDMA 系统的 [1 3] ,基于用户的信道情况,通 过频域分组调度(Frequency Dom ain Packet Schedul ing,FDPS),将系统带宽内的不同频带分配给不同的用户。大多数下行FDPS 采用PF 算法,即采用PF 算法作为调度准则,独立地对每一个RB 分别进行调度。然而,由于SC FDMA 要求在同一时隙内分配给任一用户的所有RB 必须是连续的,因此上述针对OFDMA 系统的算法不能直接应用于LTE 上行链路。另外,文献[4,5]中提出的针对SC FD MA 的FDPS 算法也没有考虑这一限制。 LTE 上行FDPS 必须遵循 连续RB 分配!原则,基于此原则,本文论述了几种改进PF 算法,理论上比较分析了算法的优缺点,并通过仿真,从系统容量和公平性角度对算法性能进行了验证。 1 系统模型 1.1 调度原理 分布在不同的空域位置上的不同用户,有不同的信道传输函数(信道增益和子载波频率的关系)。就一个用户而言,在不同频率子载波上的增益不同;就多个用户而言,不同用户的信道间是不相关或弱相关的。因此,对一个用户而言是处于深衰落的那些子载波,对其他用户可能是质量较好的频率资源。另外,当用户移动时,信道函数会随时间变化。因此,在基站端需要有一个调度器来周期性地检测用户信道质量,并按照调度算法不断更新资源分配方案,再将其以控制流方式发送给终端,以获得频率选择增益和多用户分集增益。调度原理如图1。

几种操作系统调度算法

保证调度算法 基本思想:向用户做出明确的性能保证,然后去实现它.如你工作时有n个用户的登录,则你将获得cpu处理能力的1/n 算法实现:跟踪计算各个进程已经使用的cpu时间和应该获得的cpu时间,调度将转向两者之比最低的进程 五,保证调度算法 思想:向用户做出明确的性能保证,然后去实现它. 算法:容易实现的一种保证是:当工作时己有n个用户登录在系统,则将获得CPU处理能力的1/n.类似的,如果在一个有n个进程运行的用户系统中,每个进程将获得CPU处理能力的1/n. 实现方法:OS应记录及计算,各个进程在一定时间段内,已经使用的CPU时间和应该得到的CPU时间,二者之比小者优先级高. 5. 保证调度 一种完全不同的调度算法是向用户作出明确的性能保证,然后去实现它。一种很实际并很容易实现的保证是:若用户工作时有n个用户登录,则用户将获得CPU处理能力的1/n。类似地,在一个有n个进程运行的单用户系统中,若所有的进程都等价,则每个进程将获得1/n的CPU时间。看上去足够公平了。 为了实现所做的保证,系统必须跟踪各个进程自创建以来已使用了多少CPU时间。然后它计算各个进程应获得的CPU时间,即自创建以来的时间除以n。由于各个进程实际获得的CPU时间是已知的,所以很容易计算出真正获得的CPU时间和应获得的CPU时间之比。比率为0.5说明一个进程只获得了应得时间的一半,而比率为2.0则说明它获得了应得时间的2倍。于是该算法随后转向比率最低的进程,直到该进程的比率超过它的最接近竞争者为止。 彩票调度算法 基本思想:为进程发放针对系统各种资源(如cpu时间)的彩票;当调度程序需要做出决策时,随机选择一张彩票,持有该彩票的进程将获得系统资源 合作进程之间的彩票交换 六,彩票调度算法 彩票调度算法: 为进程发放针对各种资源(如CPU时间)的彩票.调度程序随机选择一张彩票,持有该彩票的进程获得系统资源. 彩票调度算法的特点: 平等且体现优先级:进程都是平等的,有相同的运行机会.如果某些进程需要更多的机会,可被给予更多彩票,增加其中奖机会. 易计算CPU的占有几率:某进程占用CPU的几率,与所持有的彩票数成正比例.该算法可实现各进程占用CPU的几率. 响应迅速 各个进程可以合作,相互交换彩票. 容易实现按比例分配如图象传输率,10帧/s,15帧/s,25帧/s

操作系统论文-----多级反馈队列调度算法

在多道程序环境下,主存中有着多个进程,其数目往往多过于处理机数目。这就要求系统能按某种算法,动态的把处理机分配给就绪队列中的一个进程,使之执行。 在OS中的调度的实质是一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法,目前存在的多种调度算法中,有的算法适用于作业电镀,有的算法适用于进程调度;但也有些调度算法即可用于作业调度,也可用于进程调度。 多级反馈队列调度算法是一种CPU处理机调度算法,它不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。 多级反馈队列调度算法的思想 设置多个就绪队列,并为各个队列赋予不同的优先级和不同长度的时间片;第一个队列的优先级最高,进程所执行时间片最小。 新创建的进程挂到第一优先级的队列后,然后按FCFS 原则排队等待调度。当轮到其执行时,如它能在时间片内完成,便撤离系统;如果不能完成,便被挂入第二级队列后,……; 仅当第一级队列空闲时,调度程序才调度第二级队列中的进程运行,依次类推……;新进程可抢占低级进程的处理机。 多级(假设为N级)反馈队列调度算法可以如下原理: 1、设有N个队列(Q1,Q2....QN),其中各个队列对于处理机的优先级是不一样的,也就是说位于各个队列中的作业(进程)的优先级也是不一

样的。一般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么讲,位于Q1中的任何一个作业(进程)都要比Q2中的任何一个作业(进程)相对于CPU的优先级要高(也就是说,Q1中的作业一定要比Q2中的作业先被处理机调度),依次类推其它的队列。 2、对于某个特定的队列来说,里面是遵循时间片轮转法。也就是说,位于队列Q2中有N个作业,它们的运行时间是通过Q2这个队列所设定的时间片来确定的(为了便于理解,我们也可以认为特定队列中的作业的优先级是按照FCFS来调度的)。 3、各个队列的时间片是一样的吗?不一样,这就是该算法设计的精妙之处。各个队列的时间片是随着优先级的增加而减少的,也就是说,优先级越高的队列中它的时间片就越短。同时,为了便于那些超大作业的完成,最后一个队列QN(优先级最低的队列)的时间片一般很大(不需要考虑这个 问题)。 多级反馈队列调度算法描述: 1、进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。 2、首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,只有在Q1中没有进程等待时才去调度Q2,同理,只有Q1,Q2都为空时才会去调度Q3。 3、对于同一个队列中的各个进程,按照时间片轮转法调度。比如Q1 队列的时间片为N,那么Q1中的作业在经历了N个时间片后若还没有完成,则进入Q2队列等待,若Q2的时间片用完后作业还不能完成,一直进入下一级队列,直至完成。 4、在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。 我们来看一下该算法是如何运作的: 假设系统中有3个反馈队列Q1,Q2,Q3,时间片分别为2,4,8。 现在有3个作业J1,J2,J3分别在时间 0 ,1,3时刻到达。而它们所需要的CPU时间分别是3,2,1个时间片。 1、时刻0 J1到达。于是进入到队列1 ,运行1个时间片,时间片还未到,此时J2到达。 2、时刻1 J2到达。由于时间片仍然由J1掌控,于是等待。 J1在运行了1个时间片后,已经完成了在Q1中的 2个时间片的限制,于是J1置于Q2等待被调度。现在处理机分配给 J2。 3、时刻2 J1进入Q2等待调度,J2获得CPU开始运行。 4、时刻3 J3到达,由于J2的时间片未到,故J3在Q1等待调度,J1也在Q2等待调度。

OFDMA系统用户调度算法比较研究

OFDMA系统用户调度算法的比较研究 摘要:OFDMA系统的资源调度是解决多个业务竞争共享资源问题及提高系统容量的一种有效方法。本文基于OFDMA系统下行链路,针对支持非实时业务的三种经典分组调度算法进行了对比研究,仿真了系统总吞吐量和算法公平性,仿真结果表明,与轮询调度、最大载干比调度相比之下,比例公平调度算法实现了系统吞吐量和公平性的良好折中,具有明显的优越性。最后指出资源调度算法的改进方向。 关键词:OFDMA;资源调度;吞吐量;公平性 Comparative study of users scheduling algorithm in OFDMA system Abstract:The resource scheduling in the system of OFDMA can solve the problem in competition among multi-service when resource be shared and a effective method on improving the system throughput. This paper based on the down-link in the OFDMA system, aiming at studying three classic packet scheduling algorithms which supported Non-Real-Time(NRT) sevices and make comparative study. Simulated the system total throughput and fairness, the results show that, comparing with RR scheduling and Max C/I scheduling , the PF scheduling algorithm get a excellent compromise between throughput and fairness, more comparable than the two other. The improved direction of resource scheduling is given finally. Key words:OFDMA; resource scheduling; throughput; fairness 正交频分多址(Orthogonal Frequency Division Multiple Access,OFDMA) 为多载波无线通信系统,其多载波之间相互正交重叠,极大提高了频谱资源利用率,在一定程度上解决了未来频谱资源紧张的 问题,在无线通信领域,由于无线资源(如频谱)是及其有限的,而用户的需求是相对无限的,研究资源调度算法对提高无线资源的利用率有重要意义。本文对比研究了三种经典的无线分组调度算法,有助于继续深入研究改进的调度算法,对提高系统的吞吐量和用户的稳定性具有重要的作用。 1、系统概述与无线分组调度 由于基站更容易对下行传输做统一调度。假设在OFDMA系统下行链路中,一个小区有k个用户等待调度并分配子载波(子载波数为N),调度器中有基站下行链路排队状态的全部信息,同时信道检测器能完全监测并反馈用户信道信息给调度器。每个时隙开 始的时刻,调度器根据信道状态,通过预设算法准则,选择符合条件的用户发送数据。 无线资源调度是为了合理分配无线资源给用户,最大限度的满足用户的通信需求;它的最重要的两个目标就是最大化系统的容量和给每个用户提供公平的接入信道的机会。调度问题的根源在于对资源的争用和分配。目前经典的分组调度算法有轮询调度(Round-Robin ,RR)[1-2],最大载干比调度(Max C/I)[3]和比例公平调度(Proportional Fair ,PF)[5]。无线分组调度模型如图1所示。 图1 无线分组调度模型

多级反馈队列_实验_操作系统

实验名称:多级反馈队列调度 09091201丁奎荣 一、实验目的: 1、综合应用下列知识点设计并实现操作系统的进程调度,进程状态转换,多组级反馈队列进程调度算法。 2、加深理解操作系统进程调度的过程。 3、加深理解多级反馈队列进程调度算法。 二、实验内容: 1、采用一种熟悉的语言,编制程序,最好采用C/C++,界面设计可采用其它自己喜欢的语言。 2、采用多级反馈队列进程调度算法进行进程调度。 3、每个进程对应一个PCB。在PCB中包括进程标识符pid、进程的状态标志status、进程优先级priority、进程的队列指针next和表示进程生命周期的数据项life(在实际系统中不包括该项)。 4、创建进程时即创建一个PCB,各个进程的pid都是唯一的,pid时在1到100范围的一个整数。可以创建一个下标为1到100的布尔数组,“真”表示下标对应的进程号是空闲的,“假”表示下标对应的进程号已分配给某个进程。 5、进程状态status的取值为“就绪ready”或“运行run”,刚创建时,状态为“ready”。被进程调度程序选中后变为“run”。 6、进程优先级priority是0到49范围内的一个随机整数。 7、生命周期life是1到5范围内的一个随机整数。 8、初始化时,创建一个邻接表,包含50各就绪队列,各就绪队列的进程优先级priority分别是0到49。 9、为了模拟用户动态提交任务的过程,要求动态创建进程。进入进程调度循环后,每次按ctrl+f即动态创建一个过程,然后将该PCB插入就绪队列中。按ctrl+q 退出进程调度循环。 10、在进程调度循环中,每次选择优先级最大的就绪进程来执行。将其状态从就绪变为运行,通过延时一段时间来模拟该进程执行一个时间片的过程,然后优先级减半,生命周期减一。设计图形用户界面GUI,在窗口中显示该进程和其他所

无线资源管理中的调度算法研究

无线资源管理中的调度算法研究 李英杰,雷海鹏,杨大成 北京邮电大学电信工程学院,北京 (100876) E-mail :lyjbupt@https://www.360docs.net/doc/185762000.html, 摘 要:在无线系统中进行通信,必须占有一定的无线资源。而对于任何无线系统来说,资源总是有限的,所以通常会在满足服务质量(Quality of Service, QoS)的情况下通过资源共享向多个用户提供业务,通过采用资源控制的调度技术,合理地为用户分配资源,从而使得系统性能达到最大化。本文介绍并比较了3G 以及B3G 系统中的一些调度算法,分析了新一代无线通信中主要分组调度算法的特点。 关键词:调度算法 ,公平性 吞吐量,效用函数 1. 前言 无线通信系统是资源受限的,如何利用有限的系统资源满足日益增长的用户需求,已经成为移动通信系统制造商和运营商亟需解决的问题。作为一项关键技术,无线资源管理已经成为衡量一个移动通信系统体制是否可行、系统服务质量优劣的准则。无线资源管理的目标就是在有限带宽的条件下,为网络内无线用户终端提供业务质量保障,其基本出发点是在网络话务量分布不均匀、信道起伏变化的情况下,灵活分配和动态调整无线传输部分和网络的可用资源,最大程度提高无线频谱利用率、防止网络拥塞和保持尽可能小的信令负荷。 无线资源管理主要包括功率控制、速率控制、信道分配、调度、切换控制、接入控制、端到端QoS 调配、无线链路自适应,以及无线资源预留。 2. 调度算法概述 调度算法为无线用户的各种分组业务分配无线资源,针对初期满Buffer 的数据业务,调度算法研究中需要考虑的两个重要方面:吞吐量和公平性。 吞吐量一般用单位时间内正确传输的数据量来表示,公平性一般以公平性准则来衡量 [1],该准则是用各用户吞吐量归一化分布函数(CDF ,Cumulative Distribution Function )曲线来表示,用所有用户的平均吞吐量做归一化。如果用户k 的吞吐量为T put (k),相对于所有用户平均吞吐量的归一化吞吐量)(~k T put 为 )}({)()(~,...,1j T avg k T k T put K j put put == 准则由表1的3个点表示 表1 CDF 准则 归一化吞吐量 0.10.2 0.5CDF 0.1 0.20.5 该准则实质上是限制了低吞吐量用户占总用户数的比例,比如低于0.1倍平均吞吐量的用户数不能超过总用户数的10%。按照该准则,所有满足公平性要求的调度算法,其CDF 曲线一定在这三点连成的直线的右侧,否则就是违反了公平性准则。

基于MU-MIMO的流分配比例公平调度方法与制作流程

本技术公开了一种基于MU MIMO的流分配比例公平调度方法,主要解决现有技术中忽略用户服务质量的比例公平调度问题。其实现步骤为:1、根据实际调度问题设置相应的参数; 2、根据发射概率满足正态分布的均值计算效用函数中的用户权值; 3、产生发射概率的样本值并根据用户权值计算样本的效用函数值; 4、筛选出性能好的样本值以更新正态分布的均值; 5、记录均值的变化情况并根据相应的规则切换不同阶段的方差; 6、根据终止条件结束迭代过程,得到满足比例公平的调度结果。本技术在可用无线资源充足和不足的情况下均能得到满意的调度结果,且计算复杂度低、迭代次数少,提高了基站的调度效率,可用于采用MIMO技术的单基站系统。 权利要求书

1.基于MU-MIMO的流分配比例公平调度方法,包括如下步骤: (1)设置初始化参数: 设基站发射模式数为F,需要服务的用户数为M,发射概率的均值向量为gt= (g1,t,...,gk,t,...,gF,t),其中gk,t表示第k种发射模式服从正态分布的发射概率的均值,初始值发射概率均服从正态分布; 设在快速迭代阶段的标准差均为σ1,在搜索稳定阶段的标准差均为σ2,且0<σ2<σ1<0.05; 依据用户的实际业务需求设定设用户的服务质量Q=[Q1,...,Qm,...,QM],其中Qm表示第m个用户的服务质量要求,m=1,...,M; 设置迭代终止参数d=5; t表示迭代次数,初始化t=1。 (2)令t=t+1,计算用户权值: (2a)计算t-1次迭代后,各用户分得的空间流为: [S1,t-1,...,Sm,t-1,...,SM,t-1]=[g1,t-1,...,gk,t-1,...,gF,t-1]V, 其中Sm,t-1表示第m个用户根据第t-1次迭代后各发射模式的发射概率得到的空间流,V为基站发射模式矩阵; (2b)根据t-1次迭代后用户分得的空间流,计算在第t次迭代中用户的服务缺失率cm,t: 当Sm,t-1<Qm时,

经典调度算法的实现

经典调度算法的实现 学院: 专业: 姓名: 学号: 指导老师: 2014-3-18

目录 一、课设简介 (3) 1. 课程设计题目 (3) 2. 课程设计目的 (3) 3. 课程设计的内容 (3) 4. 课程设计要求 (3) 二、原理分析 (4) 1. 先来先服务算法介绍与分析 (4) 2. 短作业优先算法介绍与分析 (4) 3. 高响应比优先调度算法介绍与分析 (4) 4. 流程图 (5) 三、主要功能模块 (7) 1. 先来先服务算法实现代码 (7) 2. 短作业优先算法实现代码 (8) 3. 高响应比优先调度算法实现代码 (8) 四、测试与运行结果 (9) 1. 主界面 (9) 2. 先来先服务算法测试 (10) 3. 短作业优先算法测试 (11)

4. 高响应比优先调度算法测试 (13) 五、总结 (16) 六、参考文献 (16) 七、附录 (16)

一、课设简介 1.课程设计题目 经典调度算法的实现 2.课程设计目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 ●进一步巩固和复习操作系统的基础知识。 ●培养学生结构化程序、模块化程序设计的方法和能力。 ●提高学生调试程序的技巧和软件设计的能力。 ●提高学生分析问题、解决问题以及综合利用 C 语言进行程序设计的能力。 3.课程设计的内容 实现以下几种调度算法 1 FCFS 2 SJF 3 高响应比优先调度算法。 4.课程设计要求 1.不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。对程序其它部分也进行必要的注释。 2.对系统进行功能模块分析、画出总流程图和各模块流程图。 3.用户界面要求使用方便、简洁明了、美观大方、格式统一。所有功能可以反复使用,最好使用菜单。 4.通过命令行相应选项能直接进入某个相应菜单选项的功能模块。 5.所有程序需调试通过。

操作系统第三章作业讲解

第三章 作业讲解 1、有5个作业进入就绪队列等待运行,预计它们的运行时间分别为9、6、3、5与X ,它们以什么样的调度顺序运行时会取得最小的响应时间?(答案与X 值有关) 答:短作业优先调度算法是使响应时间最小的调度算法: 0 < X ≤ 3时,调度顺序为: X 、3、5、6、9 3 < X ≤ 5时,调度顺序为: 3、X 、5、6、9 5 < X ≤ 6时,调度顺序为: 3、5、X 、6、9 6 < X ≤ 9时,调度顺序为: 3、5、6、X 、9 X > 9时,调度顺序为: 3、5、6、9、X 2、假设一个系统中有4个进程,它们的到达时间和服务时间如表所示,忽略I/O 以及其他开销时间,若分别按先来先服务(FCFS )、非抢占及抢占的短进程优先(SPF )、高响应比优先(HRRN )、时间片轮转(RR ,时间片=1)、多级反馈队列调度算法(FB ,第i 级队列的时间片=2i-1)进行CPU 调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。 算法 时间 进程 平均时间 A B C D FCFS 完成时间 周转时间 带权周转时间 5 5 1 7 6 3 16 13 1.44 23 1 7 2.43 10.25 1.97 SPF (非抢占) 完成时间 周转时间 带权周转时间 5 5 1 7 6 3 23 20 2.22 14 8 1.14 9.75 1.835 SPF (抢占) 完成时间 周转时间 带权周转时间 7 7 1.4 3 2 1 23 20 2.22 14 8 1.14 9.25 1.435 HRRN 完成时间 周转时间 带权周转时间 5 5 1 7 6 3 16 13 1.44 23 17 2.43 10.25 1.97 RR (q=1) 完成时间 周转时间 带权周转时间 12 12 2.4 4 3 1.5 23 20 2.22 22 16 2.29 12.75 2.1 FB (q=2i-1) 完成时间 周转时间 带权周转时间 13 13 2.6 6 5 2.5 23 20 2.22 21 15 2.14 13.25 2.365 3、若有4个周期性任务,任务A 要求每30ms 执行一次,执行时间为15ms ;任务B 要求每50ms 执行一次,执行时间为5ms ;任务C 要求每50ms 执行一次,执行时间为15ms ;任务D 要求每100ms 执行一次,执行时间为10ms ,应如何按最低松弛度优先算法对它们进行CPU 调试? (要求画出0-150ms 时段的调度时序图,并列出每次切换时每个任务的松弛度) 进程 到达时间 服务时间 A 0 5 B 1 2 C 3 9 D 6 7

相关文档
最新文档