Você está na página 1de 12

Algoritmos de Escalonamento

FEUP/DEEC 2005/06
Jos Ruela

Escalonamento necessidade
A partilha de recursos em redes de comunicao e, em particular, a adopo de estratgias de multiplexagem estatstica, originam situaes de conteno, devido competio pela utilizao de recursos Em redes que suportam integrao de servios torna-se necessrio providenciar QoS diferenciada por categorias de servio (ou classes de trfego), oferecendo garantias de desempenho a aplicaes crticas e ao mesmo tempo permitindo uma partilha de recursos de acordo com critrios de equidade (fairness) Os algoritmos de escalonamento (scheduling algorithms) so um componente essencial para atingir estes objectivos, uma vez que determinam as disciplinas de servio a aplicar a fluxos aceites pela rede Um algoritmo de escalonamento realiza duas funes
decide a ordem de servio de fluxos em competio (pedidos de servio) gere as filas de pedidos de servio

Escalonamento objectivos
Os algoritmos de escalonamento so usados em qualquer sistema ou camada protocolar em que ocorra conteno por recursos, mas em especial em elementos de rede (routers, comutadores, etc.) Desempenham um papel importante na proviso de diferentes nveis de QoS a diferentes aplicaes, permitindo controlo diferenciado de atraso, largura de banda ou taxa de perdas
aplicaes com requisitos de tempo real necessitam de garantias absolutas aplicaes best-effort no necessitam de quaisquer garantias, mas desejvel que a partilha de recursos entre estas aplicaes seja feita de forma equitativa (fair)

Em geral pretende-se que os algoritmos de escalonamento sejam simples (fceis de implementar), tratem de forma equitativa trfego best-effort e garantam ao restante trfego os nveis de desempenho negociados e facilitem os mecanismos associados de controlo de admisso de conexes

Fairness
A atribuio equitativa de recursos habitualmente baseada no critrio designado por max-min fairness, que atribui recursos do seguinte modo:
Os recursos so atribudos por ordem ascendente dos valores solicitados Nenhum fluxo obtm uma quota de utilizao superior ao solicitado Fluxos cujos requisitos no podem ser satisfeitos so tratados de forma idntica (recebem a mesma quota de utilizao fair share)

Exemplo (capacidade a partilhar: 15)


Pedidos: 1, 2, 5, 8, 10 Atribuio: 1, 2, 4, 4, 4

O objectivo de partilha equitativa global, enquanto que os algoritmos de escalonamento tm carcter local; assim, os recursos atribudos a uma fluxo correspondem ao menor valor atribudo ao longo do percurso O critrio max-min fairness oferece ainda um mecanismo de proteco relativamente a fontes que tentam transmitir acima da respectiva quota

Opes
Na concepo de um mecanismo de escalonamento possvel considerar quatro graus de liberdade (opes)
Nmero de nveis de prioridade Disciplina work-conserving ou non-work-conserving em cada nvel Grau de agregao de fluxos em cada nvel Ordem de servio em cada nvel

Prioridade
A cada conexo atribudo um nvel de prioridade S so servidos pacotes num determinado nvel de prioridade se no existirem pacotes espera de ser servidos em qualquer nvel com prioridade mais alta Quanto mais elevado for o nvel de prioridade mais baixo o atraso mdio sofrido pelos pacotes Uma possvel consequncia desta estratgia a negao de servio (starvation) a pacotes nos nveis de prioridade mais baixos, o que pode ser combatido com polticas de controlo de admisso (limitando a capacidade disponvel para cada nvel, excepto o mais baixo) e de policiamento

Work-conserving versus non-work-conserving


Em disciplinas work-conserving um servidor est inactivo (idle) apenas quando no existe qualquer pacote para transmitir Em disciplinas non-work-conserving um servidor pode estar inactivo, mesmo que exista(m) pacote(s) para transmitir
a cada pacote atribudo um instante em que elegvel para transmisso, com o objectivo de controlar o dbito (garantindo conformidade com um dado descritor) ou a variao do atraso (de modo a compensar o jitter introduzido no passo anterior) se um pacote no for elegvel, no ser transmitido (ser atrasado at ser elegvel), mesmo que o servidor esteja livre

Disciplinas non-work-conserving aumentam o atraso mdio dos pacotes, desperdiam largura de banda (que pode no entanto ser reutilizada por trfego best-effort) e penalizam sempre fontes que excedem o dbito contratado (mesmo que haja recursos livres)

Grau de agregao de fluxos


possvel considerar vrios graus de agregao de fluxos Num extremo, no existe qualquer agregao, isto , os fluxos so tratados individualmente, o que permite diferenciar QoS por fluxo mas requer a manuteno de informao de estado por ligao e portanto implica uma maior complexidade do escalonador No outro extremo a agregao total, usando-se uma nica varivel de estado para descrever todas as ligaes, que partilham a mesma QoS (o escalonador mais simples, mas a diferenciao impossvel) Uma soluo intermdia consiste em agrupar fluxos em classes; necessrio manter informao de estado por classe e os pacotes da mesma classe recebem tratamento idntico (a diferenciao de QoS feita por classe) Para algumas disciplinas de servio, quanto maior for o grau de agregao menor o nmero de ligaes que podem ser aceites
Para garantir limites de desempenho negociados a qualquer fluxo numa classe (por exemplo, o atraso mximo), a impossibilidade de diferenciar e controlar fluxos individuais obriga a que o algoritmo de admisso de conexes considere o caso mais desfavorvel (por exemplo, a ocorrncia de bursts simultneos dos fluxos)

Ordem de Servio
necessrio decidir a ordem pela qual devem ser servidos, em cada nvel de prioridade, os pacotes de fluxos individuais ou agregados A estratgia mais simples consiste em servir os pacotes pela ordem de chegada (FCFS First Come First Serve); esta estratgia no permite oferecer garantias quanto a atrasos nem proteco relativamente a fluxos que tentem monopolizar o uso da largura de banda, isto , a atribuio de recursos no obedece ao critrio max-min fairness A alternativa consiste em servir os pacotes por uma ordem diferente da ordem de chegada, de acordo com uma etiqueta de servio (service tag) associada a cada pacote
as propriedades de um algoritmo de escalonamento e as garantias de desempenho associadas (dbito, atraso, etc.) dependem da forma como so calculadas as etiquetas qualquer disciplina de servio que no seja FCFS implica um overhead acrescido

Exemplos de Algoritmos de Escalonamento


Work-conserving
Generalized Processor Sharing (GPS) / Fluid Fair Queueing (FFQ) (ideais) Round-Robin (RR) e Weighted Round-Robin (WRR) Fair Queueing (FQ), Weighted Fair Queueing (WFQ), Worst-case Fair Weighted Fair Queueing (WF2Q) e Self-Clocked Fair Queueing (SCFQ) Virtual Clock (VC) Delay Earliest-Due-Date (D-EDD)

Non-work-conserving
Stop-and-Go (SG) Hierarchical Round-Robin (HRR) Jitter Earliest-Due-Date (J-EDD) Rate-Controlled Static Priority (RCSP)

GPS Generalized Processor Sharing


O objectivo deste algoritmo a atribuio de recursos de acordo com o critrio max-min fairness GPS uma disciplina work-conserving ideal (no implementvel) Existe uma fila por ligao (fluxo)
Durante qualquer intervalo de tempo em que existam N filas no vazias, o servidor serve simultaneamente os N pacotes cabea das filas, cada um com um dbito igual a 1/N da capacidade da ligao fsica (N varia medida que se completam e/ou iniciam servios) De forma equivalente se pode dizer que servida uma quantidade de dados infinitesimal em cada visita a uma fila (uma aproximao consistiria em servir rotativamente um bit de cada fila no vazia)

Nenhuma disciplina realizvel pode ser to justa (no sentido max-min) quanto GPS, pois enquanto um pacote servido, existe injustia para os restantes; o grau de injustia (unfairness) pode ser limitado possvel associar pesos s ligaes; as ligaes recebem servio proporcionalmente aos pesos sempre que a fila no esteja vazia

GPS Generalized Processor Sharing


Uma ligao diz-se backlogged sempre que existam dados na sua fila Considerando N ligaes com pesos associados i e que partilham um canal com capacidade C, em qualquer instante o dbito de uma ligao C i sendo B() o nmero de filas no vazias nesse instante
jB ( )

Seja S (i, t1, t2) a quantidade de dados da ligao i servida no intervalo [t1, t2]. Para uma ligao i que esteja backlogged no intervalo [t1, t2] e qualquer outra ligao j, verifica-se a relao S (i, t1, t 2) i S ( j , t1, t 2) j
Uma ligao no backlogged recebe o servio de que necessita; ligaes backlogged (recebem menos servio do que o pretendido) partilham a capacidade remanescente proporcionalmente aos seus pesos

A designao FFQ (Fluid Fair Queueing) tambm usada como sinnimo de GPS

Emulao de GPS
A disciplina GPS (ou FFQ) no implementvel Vrias disciplinas de servio foram propostas com o objectivo de emular GPS A emulao mais simples de GPS a disciplina Round-Robin (RR), que admite uma variante com pesos associados s ligaes Weighted Round-Robin (WRR) As disciplinas Weighted Fair Queueing (WFQ), tambm designada por Packetized Generalized Processor Sharing (PGPS) e Worst-case Fair Weighted Fair Queueing (WF2Q) so emulaes mais elaboradas de GPS A complexidade computacional de WFQ e WF2Q motivou a proposta de uma disciplina de servio mais simples, designada Self-Clocked Fair Queueing (SCFQ)

WRR Weighted Round-Robin


Round-Robin serve rotativamente um pacote de cada fila no vazia (em vez de realizar servio infinitesimal, como em GPS)
Aproxima razoavelmente GPS se os pacotes tiverem comprimento fixo e se as ligaes tiverem o mesmo peso; no justo se os pacotes tiverem diferentes comprimentos e os pesos no forem iguais

WRR serve as ligaes proporcionalmente aos pesos atribudos


Caso 1: pesos diferentes e pacotes com comprimento fixo; servido mais do que um pacote por fila e por ciclo, aps normalizao para obter pesos inteiros Caso 2: pesos diferentes e pacotes com comprimento varivel; os pesos so normalizados pelo tamanho mdio dos pacotes, como exemplificado a seguir

pesos {0.5, 0.75, 1.0}, tamanho mdio dos pacotes {50, 500, 1500} pesos normalizados: {0.5/50, 0.75/500, 1.0/1500} = {60, 9, 4}

WRR Weighted Round-Robin


O algoritmo WRR pressupe o conhecimento do tamanho mdio dos pacotes gerados por cada fonte, o que em muitos casos imprevisvel e impede uma distribuio de recursos de acordo com o critrio max-min fairness O algoritmo justo apenas em escalas temporais superiores durao de um ciclo, podendo ser injusto durante ciclos longos para ligaes com pequeno peso ou quando existe um nmero elevado de ligaes, como se exemplifica
Ligao T3 (45 Mbit/s) com 500 ligaes (250 com peso 1 e 250 com peso 10); tamanho mdio dos pacotes: 500 bytes Tempo de transmisso de um pacote: 500 * 8 / 45 = 88.8 s Durao de um ciclo: (250 * 10 + 250 *1) * 88.8 = 244.2 ms Em intervalos muito menores do que 244.2 ms, algumas ligaes obtm uma quota de servio muito superior de outras

WFQ Weighted Fair Queueing


O algoritmo WFQ no assume tamanhos infinitesimais dos pacotes (como GPS) nem requer conhecimento do tamanho mdio dos pacotes (como WRR) Em WFQ, quando o servidor est pronto a transmitir um novo pacote no instante , selecciona entre os pacotes espera nesse instante o primeiro que completaria o seu servio num servidor GPS de referncia, admitindo que nenhum outro pacote chegava depois de
O primeiro pacote a completar o seu servio no servidor GPS de referncia pode no estar presente no sistema no instante

Uma vez que WFQ apenas tem em conta os tempos de concluso do servio no servidor GPS de referncia, considera elegveis todos os pacotes presentes no instante em que um novo servio se pode iniciar, incluindo os que em GPS apenas iniciariam o seu servio mais tarde, e que assim podem beneficiar da concluso do servio corrente antes do que ocorreria em GPS

WF2Q Worst-case Fair Weighted Fair Queueing


O algoritmo WF2Q considera, para alm dos tempos de concluso de servio no servidor GPS, os tempos de incio de servio Quando selecciona um pacote para incio de um novo servio no instante , o servidor considera elegveis apenas os pacotes que nesse instante j tinham comeado (e eventualmente acabado) o respectivo servio no servidor GPS; ser seleccionado (como em WFQ) o pacote com menor tempo de concluso de servio GPS Em WFQ e WF2Q o servio acumulado por ligao nunca se atrasa, em relao a GPS, mais do que o tamanho do maior pacote
WFQ e WF2Q apresentam o mesmo limite superior para o atraso

WFQ pode adiantar-se significativamente em relao a GPS (o que no acontece com WF2Q, em que o avano ou o atraso no excedem o tamanho de um pacote)

WFQ e WF2Q algoritmo


Exceptuando a condio de elegibilidade dos pacotes, os algoritmos so k semelhantes e baseiam-se na actualizao de uma varivel de estado F i , j (Virtual Finish Time), associada a cada pacote k, no servidor i e na ligao j

k i, j

max{V i ( ai , j ), F i , j
k

k 1

L }+

k j

i, j

sendo V (t ) Virtual time do sistema (medida do progresso do servio)

L a

k j

Tamanho do pacote (bits) Instante de chegada do pacote

i, j

A funo V definida em intervalos [t1, t2] em que se realiza servio por V ( ) 1 = t1 t 2 V ( t1 ) = 0 e jB ( )


j

sendo B() o nmero de ligaes backlogged no sistema PGS de referncia

WFQ e WF2Q exemplo


Assume-se que o tamanho dos pacotes idntico e normalizado (valor igual a 1) e que a velocidade de transmisso no canal partilhado 1 Consideram-se 11 ligaes com as seguintes caractersticas Ligao 1

Dbito a garantir = 0.5 Gera 11 pacotes com incio nos instantes t = k (k = 0, ..., 10) Dbito a garantir = 0.05 Geram 1 pacote com incio em t = 0

Ligaes 2 a 11 (idnticas)

Instantes de incio e concluso de servio no servidor GPS de referncia Ligao 1


Incio dos servios 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 Concluso dos servios 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21 Incio dos servios 0 Concluso dos servios 20

Ligaes 2 a 11

WFQ e WF2Q exemplo


L1

L2 - L11

Servio WFQ

Servio WF2Q

SCFQ Self-Clocked Fair Queueing


A complexidade computacional do clculo e actualizao da varivel Virtual Finish Time usada em WFQ e WF2Q para emular um servidor GPS est na origem do algoritmo SCFQ (Self-Clocked Fair Queueing) que permite estimar de forma aproximada o valor dessa varivel A aproximao consiste em substituir o valor corrente da funo V ( t ) pelo instante em que o pacote actualmente a ser servido no sistema SCFQ completa o servio Este algoritmo, embora simples, pode provocar situaes de injustia relativa em intervalos de tempo curtos, podendo causar atrasos no servio muito superiores aos que ocorrem em WFQ

WFQ e SCFQ exemplo


Assume-se que o tamanho dos pacotes idntico e normalizado (valor igual a 1) e que a velocidade de transmisso no canal partilhado 1 Consideram-se 11 ligaes com as seguintes caractersticas Ligao 1

Dbito a garantir = 0.5 Gera 11 pacotes com incio nos instantes t = 2k (k = 0, ..., 10) Dbito a garantir = 0.05 Geram 1 pacote com incio em t = 0

Ligaes 2 a 11 (idnticas)

Instantes de incio e concluso de servio no servidor GPS de referncia Ligao 1


Incio dos servios 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 Concluso dos servios 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21 Incio dos servios 0 Concluso dos servios 20

Ligaes 2 a 11

WFQ e SCFQ exemplo


L1

L2 - L11

Servio WFQ

Servio SCFQ

VC Virtual Clock
O algoritmo Virtual Clock tem como objectivo emular um sistema TDM (Time Division Multiplexing) A cada pacote atribudo um instante virtual de transmisso (virtual transmission time), correspondente a um servio TDM; os pacotes so servidos por ordem crescente desses tempos O algoritmo baseia-se na actualizao da varivel de estado auxVC (auxiliary Virtual Clock)

auxVC
sendo

k i, j

max{ ai , j , auxVC i , j } + Vtick i , j


k k

Vtick o intervalo mdio entre chegadas de pacotes na ligao j


i, j

Você também pode gostar