当前位置:文档之家› 移动通信中的调度算法

移动通信中的调度算法

无线资源管理主要包括切换控制、功率控制、接入控制、负荷控制以及分组调度等方面的内容。

无线资源管理是3G系统无线网络控制器(RNC)的重要组成部分,其主要作用是负责空中接口资源的分配和使用,确保用户业务的服务质量、系统规划的覆盖区域以及提高系统容量。

在3G的演进过程中,标准化组织3GPP和3GPP2也在不断完善和增强相关技术。

对于分组调度算法,一方面要考虑到算法实现的复杂度,另一方面需要注意对系统性能指标的影响,如公平性、时延、业务的服务质量(QoS)等。

目前采用比较多的调度算法主要有轮循调度、最大载干比调度、比例公平调度三种类型。

在分组通信中,为了获得统计复用增益,需要多个业务流共享带宽。

因此,当多个用户争用资源时,就需要有一种机制来确定服务次序,有效地分配无线资源,这就是分组调度。

由于无线信道时变特性、带宽资源有限和移动台功率受限等因素的影响,无线网络中的分组调度算法有别于有线网络。

调度器首先根据信道状态监视/预测模块提供的信道信息和用户的队列状态,依据一定的调度算法,计算出每个用户的优先级,然后根据优先级对用户数据排队,并分配无线资源,最后送到发射机。

1.Round Robin 轮叫调度(Round-Robin Scheduling)狭义解释:时间片轮转算法的基本思想是,系统将所有的就绪进程按先来先服务算法的原则,排成一个队列,每次调度时,系统把处理机分配给队列首进程,并让其执行一个时间片。

当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序根据这个请求停止该进程的运行,将它送到就绪队列的末尾,再把处理机分给就绪队列中新的队首进程,同时让它也执行一个时间片。

广义解释:时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法是时间片调度。

每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。

如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。

如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。

调度程序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。

时间片轮转调度中唯一有趣的一点是时间片的长度。

从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表格和队列等。

假如进程切换(process switch) - 有时称为上下文切换(context switch),需要5毫秒,再假设时间片设为20毫秒,则在做完20毫秒有用的工作之后,CPU将花费5毫秒来进行进程切换。

CPU 时间的20%被浪费在了管理开销上。

为了提高CPU效率,我们可以将时间片设为500毫秒。

这时浪费的时间只有1%。

但考虑在一个分时系统中,如果有十个交互用户几乎同时按下回车键,将发生什么情况?假设所有其他进程都用足它们的时间片的话,最后一个不幸的进程不得不等待5秒钟才获得运行机会。

多数用户无法忍受一条简短命令要5秒钟才能做出响应。

同样的问题在一台支持多道程序的个人计算机上也会发生。

结论可以归结如下:时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。

将时间片设为100毫秒通常是一个比较合理的折衷。

一,基本原理在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片.时间片的大小从几ms到几百ms.当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片.这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间.二,时间片大小的确定1.系统对响应时间的要求2.就绪队列中进程的数目3.系统的处理能力三, 多级反馈队列调度算法(1) 设置多个就绪队列,并为各个队列赋予不同的优先级. 第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低.该算法赋予各个队列中进程执行时间片的大小也各不相同:在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小.(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度.当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n队列中便采取按时间片轮转的方式运行.(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行; 仅当第1~(i-1) 队列均空时,才会调度第i队列中的进程运行.如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程.?多级反馈队列调度算法的性能(1)终端型作业用户(2) 短批处理作业用户(3) 长批处理作业用户满足了多数用户的需求3.2.4 优先权调度算法1,优先权调度算法的类型非抢占式优先权算法在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成; 或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程.这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中.2,抢占式优先权调度算法?系统同样把处理机分配给优先权最高的进程,使之执行.但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程.这种抢占式的优先权调度算法,能更好地满足紧迫作业的要求,常用于要求比较严格的实时系统中, 以及对性能要求较高的批处理和分时系统中.2,优先权的类型(1) 静态优先权静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变.一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~7或0~255中的某一整数, 又把该整数称为优先数.只是具体用法各异:有的系统用"0"表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反.确定进程优先权的依据有如下三个方面:1.进程类型.(系统进程/用户进程)2.进程对资源的需求.(需求量的大小)3.用户要求.(用户进程紧迫程度)(2) 动态优先权动态优先权是指在创建进程时所赋予的优先权,可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能.例如,我们可以规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a 提高.若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程,将因其动态优先权变得最高而优先获得处理机,此即FCFS算法.优先权的变化规律可描述为:由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比RP.据此,又可表示为:3,高响应比优先调度算法由上面的式子可以得到以下结论:(1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业.(2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务.(3) 对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高, 从而也可获得处理机.该算法照顾了短作业,且不会使长作业长期得不到服务3.3 实时系统调度3.3.1 实现实时调度的基本条件1-1. 提供必要的信息-就绪时间.1-2. 开始截止时间和完成截止时间.1-3. 处理时间.1-4. 资源要求.1-5. 优先级.2. 系统处理能力强在实时系统中,通常都有着多个实时任务.若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理, 从而导致发生难以预料的后果.假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,系统可调度必须满足下面的限制条件:当系统不可调度时解决的方法是提高系统的处理能力,其途径有二:其一仍是采用单处理机系统,但须增强其处理能力, 以显著地减少对每一个任务的处理时间;其二是采用多处理机系统.假定系统中的处理机数为N,则应将上述的限制条件改为:3. 采用抢占式调度机制当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行.采用这种方式去满足那些开始截止时间即将到来的任务.?4. 具有快速切换机制该机制应具有如下两方面的能力:(1) 对外部中断的快速响应能力.为使在紧迫的外部事件请求中断时系统能及时响应,要求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短,以免耽误时机(其它紧迫任务).?(2) 快速的任务分派能力.在完成任务调度后,便应进行任务切换.为了提高分派程序进行任务切换时的速度, 应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销.1. 非抢占式调度算法非抢占式轮转调度算法.为每一个被控对象建立一个实时任务并将它们排列成一轮转队列,调度程序每次选择队列中的第一个任务投入运行.该任务完成后便把它挂在轮转队列的队尾等待下次调度运行.2. 非抢占式优先调度算法.实时任务到达时,把他们安排在就绪队列的对首,等待当前任务自我终止或运行完成后才能被调度执行.3.3.2 实时调度算法的分类2. 抢占式调度算法基于时钟中断的抢占式优先权调度算法.1. 实时任务到达后,如果该任务的优先级别高于当前任务的优先级并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务.2. 立即抢占的优先权调度算法.在这种调度策略中,要求操作系统具有快速响应外部时间中断的能力.一旦出现外部中断,只要当前任务未处于临界区便立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务.实时进程调度实时进程抢占当前3.3.3 实时调度实例一, 最早截止时间优先算法(EDF)EDF算法用于非抢占调度方式优先级:根据任务的开始截止时间来确定任务的优先级.二,最低松弛优先算法(LLF)例如:系统中有两个周期性实时任务A和B,任务A要求每20ms执行一次,执行时间为10ms;任务B要求每50ms执行一次,执行时间为25ms.这样可知A和B每次必须完成的时间和开始截止时间如图所示优先级:根据任务紧急程度来确定任务优先级A和B任务每次必须完成的时间A1 (10) A2 (30) A3(50) A4 (70) A5(90) A6 (110) A7(130) A8(150)0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150B1(25) B2(75) B3(125)A和B任务每次必须开始的时间时间(ms) A截止时间B截止时间调度对象0 A1(10) B1(25) A110 A2(20) B1(15) B130 A2(0) B1(15) A240 A3(10) B1(5) B145 A3(5) B2(30) A355 A4(15) B2(20) B270 A4(0) B2(20) A4松弛度松弛度( 20-10-0 ) ( 50-25-0 )(40-10-10 ) ( 50-25-10 )(40-10-30) (50-5-30)(60-10-40) (50-5-40)(60-10-45) (100-25-45)(80-10-55) (100-25-55)(80-10-70) (100-10-70 )3.4.1 多处理器系统的类型(1) 紧密耦合(Tightly Coupted)MPS.这通常是通过高速总线或高速交叉开关,来实现多个处理器之间的互连的.它们共享主存储器系统和I/O设备,并要求将主存储器划分为若干个能独立访问的存储器模块,以便多个处理机能同时对主存进行访问.系统中的所有资源和进程,都由操作系统实施统一的控制和管理.3.4 多处理机系统中的调度从处理器之间耦合的紧密程度上划分:松散耦合(Loosely Coupled)MPS.在松散耦合MPS中,通常是通过通道或通信线路,来实现多台计算机之间的互连.每台计算机都有自己的存储器和I/O设备,并配置了OS来管理本地资源和在本地运行的进程.因此,每一台计算机都能独立地工作, 必要时可通过通信线路与其它计算机交换信息,以及协调它们之间的工作.根据系统中所用处理器的相同与否划分:(1) 对称多处理器系统SMPS. 在系统中所包含的各处理器单元,在功能和结构上都是相同的,当前的绝大多数MPS都属于SMP系统.例如,IBM公司的SR/6000 Model F50, 便是利用4片Power PC处理器构成的.?(2) 非对称多处理器系统.在系统中有多种类型的处理单元,它们的功能和结构各不相同,其中只有一个主处理器,有多个从处理器:1. 对称多处理器系统中的进程分配方式在SMP系统中,所有的处理器都是相同的,因而可把所有的处理器作为一个处理器池(Processor pool),由调度程序或基于处理器的请求,将任何一个进程分配给池中的任何一个处理器去处理.在进行进程分配时,可采用以下两种方式之一.1) 静态分配(Static Assigenment)方式2) 动态分配(Dynamic Assgement)方式?3.4.2 进程分配方式静态分配(Static Assigenment)方式一个进程从开始执行直到完成,都被固定分配到一个处理器上去执行.2) 动态分配(Dynamic Assgement)方式系统中设置有公共的就绪队列.分配进程时,可以将进程分配到任何一个处理器上.动态分配方式的主要优点是消除了各处理器忙闲不均的现象2. 非对称MPS中的进程分配方式?对于非对称MPS,其OS大多采用主—从(Master-Slave)式OS,即OS的核心部分驻留在一台主机上(Master),而从机(Slave)上只是用户程序,进程调度只由主机执行.每当从机空闲时,便向主机发送一索求进程的信号,然后,便等待主机为它分配进程.在主机中保持有一个就绪队列,只要就绪队列不空,主机便从其队首摘下一进程分配给请求的从机.从机接收到分配的进程后便运行该进程,该进程结束后从机又向主机发出请求.缺点:对主机要求高,出现故障导致整个系统瘫痪1. 自调度(Self-Scheduling)方式1) 自调度机制?在系统中设置有一个公共的进程或线程就绪队列, 所有的处理器在空闲时,都可自己到该队列中取得一进程(或线程)来运行.在自调度方式中,可采用在单处理机环境下所用的调度算法,如先来先服务(FCFS)调度算法,最高优先权优先(FPF)调度算法和抢占式最高优先权优先调度算法等.3.4.3 进程(线程)调度方式2) 自调度方式的优点?1,系统中的公共就绪队列可按照单处理机系统中所采用的各种方式加以组织;其调度算法也可沿用单处理机系统所用的算法,即很容易将单处理机环境下的调度机制移植到多处理机系统中2,只要系统中有任务(公共就绪队列不空)就不会出现处理机空闲的情况,也不会发生处理器忙闲不均的现象,因而有利于提高处理器的利用率.3)自调度方式的缺点瓶颈问题:1. 整个系统中只有一个就绪队列供多个处理器共享.(2)低效性.线程在其生命周期内多次更换处理器使得高速缓存的使用率很低(3)线程切换频繁.2. 成组调度(Gang Scheduling)方式3.专用处理器分配方式2.最大载干比(max C/I)调度算法最大载干比(max C/I)调度算法保证具有最好链路条件的用户获得最高的优先级。

相关主题