• Aucun résultat trouvé

Application des dispositions contestées

Dans le document Décision n° 2013 - 348 QPC (Page 8-13)

Segundo Roehrig et al. [103], o escalonamento é definido como o processo de ordenar as tarefas nos recursos computacionais de um sistema. O escalonamento em sistemas distri- buídos envolve duas etapas como foi citado anteriormente. Na primeira etapa é realizado a submissão de tarefas e na segunda, o escalonador local ordena as tarefas para a ocupação dos recursos locais. Para um mesmo conjunto de recursos é possível utilizar diferentes meca- nismos de escalonamento, os quais podem ser classificados de diversas maneiras de acordo com suas características [22, 29, 79]. Apesar de haver diversas propostas de classificação para escalonamento em sistemas distribuídos, focamos nosso trabalho nas definições apre- sentadas por Casavant e Kuhl [29]. A Figura3.2ilustra a classificação hierárquica proposta por Casavant e Kuhl [29]:

Figura 3.2: Classificação hierárquica de escalonadores (adaptado de [29])

O nível mais alto da hierarquia, distingue-se entre escalonamento local e global. O esca- lonamento local está relacionado a associação de um processo (tarefa) às fatias de tempo de um único processador, ou ainda, no caso de máquinas multiprocessadas, decidir em qual pro- cessador o processo será executado. O escalonamento global está relacionado ao problema de decidir entre as várias máquinas, qual será usada para executar um processo (tarefa). O escalonamento local é geralmente realizado pelo sistema operacional. O escalonamento glo- bal envolve algoritmos de escalonamento que devem definir as máquinas nas quais as tarefas serão executadas sob controle dos escalonadores locais.

O escalonamento global (atribuição de tarefas), dependendo do momento em que é con- cretizado, define escalonamentos globais estáticos ou dinâmicos. No caso do escalonamento estático, a distribuição de tarefas é realizada apenas no momento da configuração da aplica- ção na grade computacional. Neste tipo de escalonamento, assume-se que todas as informa- ções a respeito dos recursos, assim como das tarefas a serem executadas sejam conhecidas no momento desta configuração. Desta forma, a decisão do escalonador global é feita em tempo de configuração. No escalonamento dinâmico, assume-se que há pouco conhecimento sobre as informações dos recursos e das aplicações submetidas ao sistema global. Assim, as decisões do escalonador global são tomadas à medida que tarefas são executadas, ou seja, em tempo de execução, na evolução do sistema.

Os escalonadores são também classificados como ótimos ou sub-ótimos. Um escalo- nador ótimo usa um algoritmo que o possibilita chegar a uma solução ótima em relação a algum critério de otimização, desde que as informações a respeito dos recursos e os requi- sitos das aplicações sejam conhecidas de antemão. Exemplos de critérios de otimização são a minimização do tempo total de execução (conhecido também como makespan) ou a maxi- mização da utilização dos recursos. No entanto, em geral, o problema do escalonamento é NP-Completo, podendo não ser viável obter uma solução ótima. Neste caso, um escalona- dor sub-ótimo deve ser usado, no intuito de encontrar uma solução sub-ótima, em um tempo razoável.

Os escalonadores sub-ótimos se dividem em aproximados e heurísticos. No escalona- mento aproximado, é usado o mesmo modelo computacional de um algoritmo ótimo para se encontrar uma solução “boa” em relação a algum critério (soluções sub-ótimas). Os escalo- nadores heurísticos, por sua vez, utilizam informações não necessariamente exatas, as quais influenciam indiretamente o sistema. Tais informações, em geral, são obtidas através de al- goritmos que avaliam a comunicação e o relacionamento entre tarefas para melhor alocá-los ao invés de avaliar características individuais de cada tarefa.

Independentemente do escalonador ser ótimo ou sub-ótimo e aproximado as técnicas de alocação usadas são as mesmas. Segundo a classificação proposta em [29], as técnicas podem ser: enumeração e busca do espaço de soluções, teoria de grafos, programação matemática e teoria de filas.

Os escalonadores dinâmicos podem ser classificados em distribuídos ou não-distribuí- dos (centralizados). Esta classificação define se o trabalho envolvido na tomada de decisões, ou seja, a responsabilidade pelo escalonamento dinâmico global, deve ser feito por um único processador (centralizado), ou se esta responsabilidade deve ser distribuída entre diversos processadores. Os escalonamentos centralizados, em geral, possuem bom desempenho mas não são escaláveis, enquanto que os distribuídos precisas trocar um número maior de men- sagens, mas permitem a gerência de um número maior de recursos.

Dentro do escalonamento distribuído, há os mecanismos que envolvem a cooperação entre os diversos processadores distribuídos na tomada de decisões (cooperativos) e aqueles

em que as ações dos processadores individuais são tomadas independentemente das ações dos outros processadores (não-cooperativo).

Casavant e Kuhl [29] também apresentam um outro conjunto de características que os escalonadores podem apresentar. A primeira característica refere-se à capacidade de adap- tação, classificando o escalonamento em adaptativo ou não-adaptativo. Um escalonador adaptativo é aquele capaz de alterar dinamicamente o seu comportamento (parâmetros ou algoritmos), com base no comportamento anterior e atual do sistema. Já um escalonador não-adaptativo, de modo oposto, não modifica seu comportamento baseado no histórico de comportamentos passados do sistema.

A segunda característica diz respeito ao balanceamento de carga. Um escalonador que faz o balanceamento de carga procura distribuir igualmente a carga computacional entre os recursos do sistema, evitando que em algum momento existirá um recurso ocioso enquanto existir uma tarefa à espera de execução em outro recurso. Para que esse esquema possa funcionar de maneira adequada, é preciso garantir que os recursos do sistema sejam capazes de fornecer informações sobre suas características dinâmicas, como a carga atual e a taxa de utilização de memória, entre outras. Se as informações forem pouco precisas a esse respeito, é provável que o escalonador não consiga tomar boas decisões.

Outra característica apresentada refere-se aos escalonadores probabilistas. Tais escalo- nadores, ao invés de examinarem analiticamente o espaço de soluções, utilizam a idéia de atribuir tarefas aos processadores de maneira aleatória, de acordo com alguma determinada distribuição de probabilidade.

Uma outra característica apresentada diz respeito à atribuição de tarefas. Neste caso, há os escalonadores que permitem a redistribuição das tarefas, ou seja, permitem que as tarefas sejam retiradas de um recurso e atribuídas a outro mesmo depois de sua execução ter sido iniciada. A idéia por trás deste tipo de escalonamento é a de que, uma vez que as caracte- rísticas do sistema mudam dinamicamente, pode ser vantajoso mudar a atribuição de tarefas de maneira igualmente dinâmica. Obviamente, deve haver critérios bem definidos para se determinar quando é vantajoso fazer a migração de uma tarefa, caso contrário corre-se o risco de fazer com que as tarefas sejam migradas com muita freqüência, o que claramente irá degradar o desempenho do sistema. De modo oposto, há os escalonadores que não permitem este tipo de redistribuição das tarefas, ou seja, a tarefa permanecerá no recurso ao qual foi atribuída inicialmente até o final de sua execução.

Por fim, outra importante classificação é o escalonamento dedicado e o oportunista [128]. O escalonamento oportunista envolve a alocação das tarefas em recursos não-dedicados, le- vando em consideração que estes recursos podem não estar disponíveis durante toda a exe- cução da tarefa. Portanto, quando o escalonamento é oportunista, os recursos são utilizados assim que estiverem disponíveis e as tarefas podem migrar quando os recursos não estiverem mais disponíveis. No escalonamento dedicado assume-se que os recursos estarão constante-

mente disponíveis para a execução das tarefas, ou mesmo, estarão disponíveis em períodos pré-determinados.

Dans le document Décision n° 2013 - 348 QPC (Page 8-13)

Documents relatifs