• No results found

6.0 Analyse av verkene

6.1.1 I ‒ Adagio non troppo

Em geral, os servidores Web atendem suas requisi¸c˜oes por meio da disciplina FCFS (First Come First Served ), em que a primeira requisi¸c˜ao a chegar ´e a primeira a ser atendida. As pol´ıticas de escalonamento para servidores Web para prover servi¸cos diferenciados tem como objetivo modificar esse tipo de atendimento das filas dos servidores.

Assim, a implementa¸c˜ao de algoritmos de diferencia¸c˜ao de servi¸cos necessita de altera¸c˜oes no sistema operacional dos servidores Web, pois ´e necess´aria a adequa¸c˜ao do algoritmo de escalonamento de processos, ou de threads. Os novos algoritmos dependem das diretrizes esti- puladas para o atendimento de requisi¸c˜oes no servidor Web. Essas diretrizes devem refletir a filosofia estipulada pelo servidor visando prover a diferencia¸c˜ao de servi¸cos.

Teixeira et al. [Teixeira et al. 2005] implementa um algoritmo de diferencia¸c˜ao de servi¸cos, chamado Mecanismo de Prioridades Rigoroso, baseado no m´etodo que atende todas as re- quisi¸c˜oes da classe de maior n´ıvel de prioridade, obedecendo a ordem de chegada, para ent˜ao, atender as requisi¸c˜oes das classes de prioridade inferior. Assim, a ordem de atendimento das requisi¸c˜oes depende estritamente das prioridades das classes. Como as requisi¸c˜oes de prioridade

46 Pol´ıticas de Controle de Admiss˜ao e Diferencia¸c˜ao de Servi¸cos

inferior s˜ao atendidas somente se n˜ao houver requisi¸c˜oes das classes superiores aguardando na fila, pode haver nega¸c˜ao de servi¸co para essas requisi¸c˜oes de menor prioridade, caso em que as requisi¸c˜oes de alta prioridade monopolizem os recursos do sistema.

O Mecanismo de Prioridades Adaptativo [Teixeira et al. 2005] faz uso das prioridades, por´em, de forma intensificada ou relaxada, dependendo da necessidade. Nesse algoritmo ´e utilizado um parˆametro, denominado look-ahead, que determina quantas posi¸c˜oes ser˜ao percor- ridas na fila de espera do servidor Web, em busca de uma requisi¸c˜ao de determinada prioridade. Caso n˜ao seja encontrada nenhuma requisi¸c˜ao desta prioridade, o algoritmo passa a buscar por requisi¸c˜oes da classe de prioridade imediatamente inferior, e assim por diante. Esse algoritmo introduz certa flexibilidade na escolha da pr´oxima requisi¸c˜ao a ser atendida, ao se atribuir um valor para o look-ahead dando maior ou menor importˆancia as requisi¸c˜oes de mais alta priori- dade. Assim, ´e evitado que as requisi¸c˜oes de prioridade superior monopolizem os recursos do sistema, pois as requisi¸c˜oes de prioridade inferior n˜ao devem ficar indefinidamente esperando nas filas.

O algoritmo Weighted Fair Queuing (WFQ) [Traldi et al. 2006] [Traldi 2006], desenvolvido inicialmente para a camada de rede, deixa de trabalhar com pacotes e passa a trabalhar com requisi¸c˜oes HTTP, na camada de aplica¸c˜ao. Esse algoritmo considera um servidor Web com m´ultiplas filas, uma para cada classe de prioridade, e para cada classe ´e atribu´ıdo um peso, que indica o n´umero de requisi¸c˜oes que ser˜ao atendidas de sua respectiva fila. Ap´os o atendimento das requisi¸c˜oes desta classe, as requisi¸c˜oes da classe de prioridade imediatamente inferior ser˜ao atendidas, segundo o algoritmo Round-Robin.

Barbato [Barbato 2007] propˆos um algoritmo que atende a sess˜oes ao inv´es de requisi¸c˜oes individuais, denominado Algoritmo de Escalonamento Baseado em Sess˜ao (Session-Based Sche- duling Algorithm - SBSA). Seu objetivo ´e priorizar as sess˜oes mais longas, caracterizadas por possu´ırem maior n´umero de requisi¸c˜oes. Assim, cada sess˜ao possui um parˆametro, chamado look-ahead, que aumenta `a medida que as suas requisi¸c˜oes chegam ao sistema. O servidor Web possui informa¸c˜oes de todas as sess˜oes conduzidas a ele, e dos valores de look-ahead ; e uma ´

unica fila de espera. Assim que o atendimento de uma requisi¸c˜ao ´e conclu´ıdo, a pr´oxima re- quisi¸c˜ao a ser buscada ´e aquela que pertence `a sess˜ao de maior look-ahead, cujo valor ´e la1. A busca inicia-se no in´ıcio da fila de espera e s˜ao percorridas, no m´aximo, la1 posi¸c˜oes. Caso n˜ao seja encontrada nenhuma requisi¸c˜ao desta sess˜ao nas primeiras la1 posi¸c˜oes, ´e iniciada a busca pela requisi¸c˜ao pertencente `a segunda maior sess˜ao, cujo valor do look-ahead ´e la2, em que la2 ≤ la1, e assim sucessivamente. A velocidade de crescimento do look-ahead de uma sess˜ao ´e obtida em fun¸c˜ao do n´umero de requisi¸c˜oes que chegam ao sistema, pertencentes a essa sess˜ao.

4.3 Diferencia¸c˜ao de Servi¸cos 47

O Algoritmo de Escalonamento Baseado em Sess˜ao com Servi¸cos Diferenciados (Session- Based Scheduling Algorithm with Differentiated Services - SBSA-DS) [Barbato 2007] consiste de uma pequena adapta¸c˜ao do algoritmo SBSA. Seu objetivo ´e diferenciar os servi¸cos dados aos clientes, considerando seu hist´orico, e levando em conta as sess˜oes. Neste caso, existe a necessidade de classifica¸c˜ao dos clientes em classes de servi¸co. Assim, um cliente pode pertencer a classe alta, m´edia ou baixa ou a classe A, B ou C. A diferen¸ca entre o algoritmo SBSA-DS e o SBSA est´a na defini¸c˜ao da fun¸c˜ao que determina o valor do look-ahead das sess˜oes, pois no SBSA-DS, o valor de look-ahead ´e definido em fun¸c˜ao do n´umero de requisi¸c˜oes, e tamb´em, em fun¸c˜ao da classe da sess˜ao.

Casagrande et al. [Casagrande et al. 2007] implementa uma pol´ıtica de escalonamento de tempo real para fornecimento de QoS absoluto para servidores Web, denominada EBS (Exigency-Based Scheduling). Esta pol´ıtica tem como objetivo fornecer respostas em menor tempo para as requisi¸c˜oes mais urgentes sem, no entanto, degradar a qualidade de servi¸co em todo o sistema.