Sie sind auf Seite 1von 13

Escalonamento de Processos em Sistemas Computacionais Distribudos

2. Escalonamento

de

Processos

em

Sistemas Computacionais Distribudos


Este captulo aborda a utilizao de sistemas computacionais distribudos,
enfocando as atividades envolvidas no escalonamento de processos e no
balanceamento de cargas nesses sistemas.
O problema do escalonamento de processos em sistemas computacionais
distribudos no novo, mas , ainda, amplamente investigado e discutido na
literatura. As sees que seguem sintetizam as questes chaves discutidas na
literatura.
2.1

Consideraes Iniciais
A utilizao de sistemas computacionais distribudos tem aumentado cada

vez mais em virtude do crescente avano tecnolgico aliado necessidade de


compartilhamento de informaes em diferentes locais. Assim, a computao
distribuda vem ganhando importncia nas ltimas dcadas, como um dos
paradigmas

de

computao

preferido

quando

comparada

computao

centralizada.
Existem vrios campos novos e atrativos de pesquisas em sistemas
computacionais distribudos tais como: agentes mveis (Muhugusa, 1998),
multimdia (Little & Ghafoor, 1990; Little & Ghafoor, 1992) e computao mvel
(Davies et al, 1996; Davies et al, 1998). Por outro lado, existem reas tradicionais e
que ainda no esto totalmente sedimentadas, sendo alvo de interesse de muitas
pesquisas. O desenvolvimento de tcnicas e mtricas eficientes para a distribuio
de processos entre os elementos de processamento ainda um grande desafio
existente em sistemas computacionais distribudos.
Essa atividade de distribuio, conhecida como escalonamento de processos,
visa atingir um conjunto de objetivos relacionados com medidas de desempenho,
como por exemplo: melhorar o compartilhamento de recursos, otimizar o tempo
mdio de resposta, promover o balanceamento de cargas, maximizar a utilizao
dos recursos, entre outros. Esses objetivos so muitas vezes conflitantes e o
8

Escalonamento de Processos em Sistemas Computacionais Distribudos

escalonador, software responsvel pela atividade de escalonamento, deve tomar


decises que so influenciadas por diversos fatores: a carga de trabalho do sistema,
a presena de aplicaes com diferentes caractersticas, o hardware da rede de
comunicao, o sistema operacional nativo e o hardware dos elementos de
processamento (Souza, 2000).
2.2

Conceitos Essenciais de Sistemas Computacionais Distribudos


Muitas das diversas reas nas quais a computao se aplica requerem cada

vez mais potncia computacional, em virtude dos algoritmos cada vez mais
complexos que so utilizados e do tamanho do conjunto de dados envolvido no
processamento. Sendo assim, a busca por melhor tempo de processamento e,
conseqentemente, melhor desempenho na execuo das aplicaes constitui o
fator principal que impulsiona o desenvolvimento da computao paralela distribuda.
A computao paralela consiste, basicamente, no uso de elementos de
processamento que cooperam e comunicam-se entre si para solucionarem
problemas complexos ou no, de maneira mais rpida do que se estivessem sendo
solucionados seqencialmente (Almasi & Guttilieb, 1994). Assim, a computao
paralela (executada em arquiteturas paralelas) surgiu com o objetivo de reduzir o
tempo de processamento de aplicaes especficas que demandam altas taxas de
processamento.
Por outro lado, o surgimento dos sistemas computacionais distribudos deu-se,
basicamente, devido necessidade de compartilhamento de recursos, normalmente
de alto custo e fisicamente separados.
O desenvolvimento e disponibilidade de microprocessadores mais potentes e
de menor custo, aliado ao avano na tecnologia de comunicao de dados
(propiciando a utilizao de redes de computadores de alta velocidade) foram
aspectos que contriburam e estimularam consideravelmente o interesse na
utilizao de sistemas distribudos.
Com o avano tecnolgico foi possvel a unio da computao paralela e dos
sistemas computacionais distribudos, surgindo assim o que constitui a computao
paralela distribuda. Nesse caso tem-se a computao paralela sendo implementada
sobre uma plataforma MIMD com memria distribuda (Tanenbaum, 1992;

Escalonamento de Processos em Sistemas Computacionais Distribudos

Tanenbaum, 1997), podendo-se explorar caractersticas atrativas de ambas as


reas.
Apesar de serem amplamente disseminados e existirem diversas linhas de
pesquisa, verifica-se que no existe consenso sobre uma definio nica e exata do
que seja um sistema distribudo. Mesmo diante da divergncia do conceito, existem
alguns pontos em comum tais como interligao de computadores atravs de rede
de comunicao e gerenciamento por um software de sistema distribudo, que
sempre so apresentados quando da explanao desses sistemas.
Neste trabalho, um sistema distribudo ser visto como uma coleo de
computadores autnomos e interligados por uma rede de comunicao, possuindo
um sistema operacional distribudo que ser responsvel por coordenar as
atividades desenvolvidas, alm de permitir o compartilhamento dos recursos
existentes no sistema.
Os

sistemas

computacionais

distribudos

apresentam

uma

srie

de

caractersticas que podem torn-los atrativos quando comparados s mquinas


paralelas

convencionais

ou

confiabilidade,

expansibilidade,

concorrncia,

compartilhamento

aos

sistemas

tolerncia
de

recursos,

centralizados:
falhas,
e

um

disponibilidade,

transparncia,
possvel

abertura,

aumento

de

desempenho (Tanenbaum, 1992; Mllender, 1993; Coulouris, 1994).


A heterogeneidade constitui outra caracterstica importante dos sistemas
computacionais distribudos (Zhou et al, 1993). Essa heterogeneidade pode ser
apresentada de inmeras formas: heterogeneidade configuracional, onde mquinas
possuem diferentes capacidades de

processamento,

espao

de

memria,

armazenamento em disco e assim por diante; heterogeneidade arquitetural, a qual


dificulta a execuo de um mesmo cdigo em diferentes mquinas; heterogeneidade
do sistema operacional onde as caractersticas dos sistemas nas diferentes
mquinas variam, podendo ser incompatveis; e por ltimo a heterogeneidade
temporal ou dinmica, proposta nesta tese com objetivo de indicar se a plataforma
est ou no heterognea (que ser apresentada no captulo 5).
Diversos estudos indicam a importncia de se explorar adequadamente o
potencial representado pelo uso de plataformas distribudas. Minimizar o tempo de
execuo, minimizar os atrasos na comunicao, maximizar a utilizao dos
recursos, maximizar o throughput do sistema, entre outros, so alguns dos objetivos
10

Escalonamento de Processos em Sistemas Computacionais Distribudos

desses estudos. Uma das formas de se alcanar esses objetivos atravs de um


melhor gerenciamento e melhor alocao dos recursos relacionados carga
computacional do sistema.
Assim, as plataformas distribudas e heterogneas possuem algumas
caractersticas interessantes, que contribuem para a sua grande utilizao e
destacam a importncia da atividade de escalonamento. A melhor relao custo x
benefcio um dos fatores responsveis pela ateno dada atividade de
escalonamento nessas plataformas.
2.3

Escalonamento em Sistemas Distribudos


O escalonamento estudado e praticado em reas do conhecimento onde se

deseja atribuir ou distribuir tarefas para recursos, os quais realizaro algum


processamento sobre esses servios.

O escalonamento de processos pode ser

considerado, de uma maneira bem simplificada, como a atividade responsvel pela


alocao dos processos aos processadores.
As pesquisas desenvolvidas sobre esse tema abordam, de modo geral, uma
viso algortmica do problema (Baumgartner & Wah, 1991; Chapin, 1993; Lling et
al, 1993; Henderson, 1995; El-Rewini et al., 1995; Alanyali & Hajek, 1995; Xu & Lau,
1997; Schopf, 1997; Beaumont et al, 2003).
2.3.1 Componentes de um Algoritmo de Escalonamento
Os algoritmos de escalonamento so compostos por polticas e por
mecanismos, sendo os ltimos responsveis por manipular os objetivos desses
algoritmos. Esses mecanismos so responsveis pela definio de como o
escalonamento ser efetuado (Song et al, 1997). As polticas so responsveis por
definir o que deve ser feito para que ocorra o escalonamento. Embora no haja um
consenso na determinao dos componentes de um escalonador de processos, os
seguintes so bastante difundidos na literatura (Shivaratri et al., 1992):

poltica de transferncia: determina se uma mquina est apta a


participar do processo como emissora ou como receptora, conforme
sua carga;

poltica de seleo: escolhe a tarefa a ser transferida (geralmente a


iniciada mais recentemente);

11

Escalonamento de Processos em Sistemas Computacionais Distribudos

poltica de localizao: responsvel por encontrar uma mquina


parceira de transferncia (emissora ou receptora) adequada para
uma outra mquina, assim que a poltica tenha decidido que esta
mquina emissora ou receptora;

poltica de informao: decide quando as informaes sobre os


estados de outras mquina no sistema devem ser coletadas, de
onde sero coletadas, e quais informaes sero coletadas.
Existem trs tipos de polticas de informao:

poltica orientada demanda: uma mquina coleta o


estado das outras mquina somente quando ela se torna
emissora ou receptora;

poltica peridica: as informaes so coletadas de


tempos em tempos;

poltica orientada mudana de estado: as informaes


das mquina so divulgadas conforme mude o grau de
seu estado.

Os mecanismos, por outro lado, podem ser divididos em:

mecanismo de mtrica da carga: indica o mtodo utilizado para


medir a carga em cada uma das mquinas;

mecanismo de comunicao da carga: define o mtodo atravs do


qual ser efetuada a comunicao das informaes de carga entre
as diversas mquinas; e

mecanismo de migrao: define o protocolo a ser utilizado quando


da ocorrncia de migrao de processos entre as mquinas.

Funcionalmente e hierarquicamente falando, a atividade de escalonamento


poderia estar disposta como apresentado na Figura 2.1.

12

Escalonamento de Processos em Sistemas Computacionais Distribudos

Algoritmo de Escalonamento
Mecanismo

Poltica

Informao

Participao

Localizao

Carga

Transferncia

Migrao

Seleo
Mtricas

Comunicao

Figura 2.1 - Classificao hierrquica da composio dos algoritmos de escalonamento.

Sendo assim, o escalonamento , normalmente, tratado segundo as polticas


e os mecanismos inseridos no algoritmo do escalonador.
Cada algoritmo de escalonamento possui seus objetivos e, atrelados a esses
objetivos devem estar presentes as mtricas, cuja meta principal a avaliao do
escalonamento. Essas mtricas devem estar voltadas para os objetivos do
escalonamento e, assim como eles, devem ser flexveis.
Mesmo fixando um objetivo, um algoritmo de escalonamento pode apresentar
desempenhos distintos, ficando extremamente difcil afirmar que exista um nico
algoritmo capaz de produzir resultados excelentes em todas as possveis
combinaes de hardware e software. Essas variaes ocorridas no desempenho
devem-se principalmente influncia direta de trs fatores: a plataforma
computacional (principalmente as distribudas, por serem em sua maioria
heterogneas), o algoritmo de escalonamento e as classes de aplicaes
executadas. Assim, todo algoritmo de escalonamento tem como objetivo atuar em
tipos especficos de aplicaes, de modo a tentar prever o tipo e a quantidade de
trabalho que ir ocorrer.
desejvel que uma estratgia de escalonamento de processos
possua as seguintes propriedades (Wang & Morris, 1985):

desempenho ideal do sistema como um todo: a capacidade total de


processamento deve ser maximizada;

eqidade de servio: o desempenho deve ser uniforme, independente


da origem das tarefas;
13

Escalonamento de Processos em Sistemas Computacionais Distribudos

tolerncia a falhas: a robustez do desempenho deve ser mantida na


presena de falhas parciais do sistema.
O escalonamento pode ser dividido em fisicamente distribudo e

fisicamente no distribudo. No fisicamente distribudo, cada elemento de


processamento possui autonomia para decidir a respeito do escalonamento, ou seja,
o processo de deciso distribudo entre os elementos de processamento do
sistema. O processo de escalonamento pode ser feito de forma cooperativa
(considerando o estado dos outros processadores que fazem parte do sistema) ou
no cooperativa (no considerando o estado dos outros processadores).
No escalonamento fisicamente no distribudo, existe um nico processador
responsvel pelo escalonamento em todo o sistema. Essa categoria engloba trs
grupos:
a) abordagem determinstica: mecanismo mais simples, onde o
algoritmo envia o i-simo processo para o processador i mod N. Esse
algoritmo funciona bem em sistemas com poucos processadores e processos
independentes uns dos outros;
b) abordagem aleatria: semelhante ao anterior, entretanto, quando um
processo gerado, verificado o estado de carga desse processador. Caso
sua carga seja baixa, o processo executado, caso contrrio o processo
distribudo aleatoriamente a outro processador;
c) distribuio mestre-escravo (farmer): existe um processo mestre que
distribui um conjunto de dados de um problema para um conjunto de
processos escravos que residem em outros processadores. A distribuio dos
processos feita durante a compilao e os dados so distribudos durante a
execuo.
2.3.2 Classificao dos Mtodos de Escalonamento
Com o intuito de contemplar o maior nmero possvel de caractersticas
existentes nos algoritmos de escalonamento, diversos autores tem sugerido
taxonomias para a rea de escalonamento de processos (Casavant & Kuhl, 1988;
Shirazi et al, 1995a, 1995b; Xu & Lau, 1997; Lling et al, 1993; Lling & Monien,
1993).

14

Escalonamento de Processos em Sistemas Computacionais Distribudos

No que concerne classificao e taxonomia dos escalonadores de


processos, tambm no existe uma regra ou consenso geral, de modo que os
algoritmos de escalonamento podem ser classificados de vrias maneiras.
Dentre as diversas taxonomias propostas destaca-se a de Casavant
(Casavant & Kuhl, 1988) por ser mais abrangente e de grande aceitao. A
estratgia proposta por Casavant apresentada na Figura 2.2, sendo destacados os
itens de classificao que so de interesse para este trabalho.
Essa estratgia de escalonamento feita com base: (i) nos tipos de
informaes usadas para que as tarefas sejam escalonadas; (ii) onde as tarefas
sero alocadas quando efetuado o re-escalonamento; (iii) onde e de que forma so
efetuadas as tomadas de deciso (centralizadas ou distribudas) e a obteno de
informaes. As estratgias de interesse para este trabalho, em particular, so
representadas pelas caixas pontilhadas.

Figura 2.2 Classificao Hierrquica Proposta por Casavant (Casavant & Kuhl, 1988)

A estratgia local consiste em distribuir os perodos de tempo de um


processador entre os processos em execuo (time-slice) (Tanenbaum, 1992).
Nesse caso considerada apenas a existncia de um processador. A estratgia
15

Escalonamento de Processos em Sistemas Computacionais Distribudos

global consiste na definio do elemento de processamento no qual um processo


dever ser executado em um sistema multiprocessador. Esse controle pode ser feito
de forma no distribuda onde as tarefas e as responsabilidades da distribuio so
feitas por apenas um processador, ou de forma distribuda, na qual as tarefas e
responsabilidades so feitas por diversos elementos de processamento. A estratgia
de distribuio fisicamente distribuda a alternativa preferida quando as tarefas
podem ser iniciadas em qualquer elemento do sistema.
A estratgia esttica feita antes que os processos comecem a ser
executados, no levando em considerao a condio de tempo de execuo das
cargas j existentes no processador. Isso s possvel tendo-se conhecimento
prvio sobre os tempos de execuo das tarefas e sobre os recursos de
processamento. Entretanto, mtodos desse tipo no admitem preempo (Casavant
& Kuhl, 1988; Shirazi et al, 1995a, 1995b). A estratgia dinmica, por outro lado,
efetua deciso de escalonamento em tempo de execuo, principalmente fazendo
uso de ndices de carga para distinguir entre mquinas ociosas e sobrecarregadas.
A estratgia dinmica pode ainda ser preemptiva ou no-preemptiva, sendo
que a primeira permite a migrao de processos que esto sendo executados,
enquanto que a segunda no. Se as cargas forem alteradas drasticamente durante
uma execuo, uma estratgia dinmica preemptiva permite que re-alocaes das
cargas sejam feitas, enquanto que a dinmica no-preemptiva no permite.
Shivaratri (Shivaratri et al., 1992) prope ainda que os algoritmos de
escalonamento de processos sejam caracterizados como adaptativos: os algoritmos
adaptativos compem uma classe especial dos algoritmos dinmicos. Esse tipo de
algoritmo adapta sua atividade dinamicamente, mudando seus parmetros ou
mesmo sua poltica. interessante utilizar esses algoritmos em sistemas que
estejam uniformemente sobrecarregados, pois a transferncia de carga entre as
mquinas no traria benefcio algum. Nessa situao, o algoritmo adaptativo
suspenderia sua atividade por algum tempo.
2.3.3 Balanceamento de Carga em Sistemas Distribudos
A atividade de escalonamento consiste em selecionar uma tarefa e o local
onde esta tarefa ser executada. Essa atividade comum tanto aos sistemas
distribudos quanto aos sistemas com multiprocessadores (Zaluska, 1991).

16

Escalonamento de Processos em Sistemas Computacionais Distribudos

Apesar dos termos escalonamento de processos e balanceamento de


carga freqentemente serem empregados como sinnimos, o escalonamento de
processos deve ser visto como uma atividade que tem como objetivo o
balanceamento da carga entre os vrios elementos de processamento (Wang &
Morris, 1985; Casavant & Kuhl, 1988; Shivaratri et. al., 1992; El-Rewini et al., 1995;
Becker, 1995; Berman, Charikar & Karpinski, 1997).
O balanceamento de carga tenta distribuir uniformemente os recursos
compartilhados, evitando a situao em que um elemento de processamento est
sobrecarregado enquanto que outro est com a carga de processamento leve. A
Figura 2.3 ilustra um sistema distribudo sem balanceamento de carga (Shivaratri et
al., 1992).

Figura 2.3. Um sistema distribudo sem balanceamento de carga (Shivaratri et al., 1992)

Sabendo-se que o objetivo principal dos sistemas computacionais distribudos


tem convergido para a busca de alto desempenho e que, para que esse objetivo seja
alcanado, no basta apenas existirem sistemas com grande nmero de
processadores ou de estaes, fica clara a necessidade em garantir que todos os
elementos de processamento pertencentes ao sistema sejam bem aproveitados.
O bom aproveitamento do sistema pode ser obtido pela distribuio dos
processos entre os processadores existentes. Entretanto, para que se possa obter o
melhor aproveitamento desse sistema, essa distribuio deve garantir que haja
trabalho suficiente e compatvel com a capacidade total do sistema e que todos os
elementos de processamento tenham uma carga uniforme (levando-se em
considerao as caractersticas peculiares de cada mquina e a carga de trabalho
existente nessa), de modo que se possa evitar que alguns se tornem ociosos
17

Escalonamento de Processos em Sistemas Computacionais Distribudos

enquanto outros esto sobrecarregados. A distribuio adequada de tarefas nos


diversos processadores fundamental para o melhor desempenho do sistema. A
identificao dessa distribuio ideal de tarefas caracteriza o problema de
balanceamento de carga.
Na literatura, inmeras vezes, as nomenclaturas e as terminologias so
confusas, de modo que balanceamento e escalonamento podem ser confundidos
(Becker, 1995; Berman, Charikar & Karpinski, 1997; Xu & Lau, 1997). O
balanceamento de cargas apenas um dos objetivos do escalonamento de
processos podendo ser alcanado atravs da utilizao de polticas bem definidas.
Escalonar de modo a obter um balanceamento de cargas implica, no somente em
distribuir a carga atravs dos recursos disponveis no sistema, mas garantir que a
carga esteja equilibrada em todos esses recursos.
A funo principal de uma estratgia de escalonamento de processos visando
o balanceamento de cargas recomendar decises que permitam um aumento de
desempenho. A escolha do objetivo do desempenho depende basicamente do
usurio e do tipo de aplicao.
Entretanto, seja qual for o objetivo do aumento de desempenho, a estratgia
de balanceamento de carga composta basicamente de: medidas de carga que
caracterizam o nvel de carregamento de cada elemento do sistema e polticas de
deciso, as quais determinam tanto a condio quanto o destino de cada tarefa a ser
migrada. Polticas de balanceamento de carga provm regras que permitem a
utilizao de medidas de carga para que decises no escalonamento global possam
ser tomadas, como, por exemplo, onde seria melhor a execuo de uma tarefa que
est chegando.
Um algoritmo de escalonamento, tendo em vista o balanceamento de cargas,
deve ser capaz de controlar o efeito de diferentes fatores de desequilbrio que
ocorrem em diversas aplicaes e arquiteturas. Dentre esses fatores podem ser
destacados: a heterogeneidade tanto da arquitetura quanto do sistema operacional
presente em um sistema computacional distribudo; o desconhecimento da
quantidade de processamento envolvida em cada tarefa; a criao dinmica de
tarefas; a migrao de tarefas; alm da heterogeneidade e da variao da carga
externa aplicao nos diversos processadores de um ambiente no dedicado,

18

Escalonamento de Processos em Sistemas Computacionais Distribudos

adaptativo e no uniforme (instvel) (Casavant & Kuhl, 1988; Shirazi et al, 1995a,
1995b; Silva, 1997; Souza et al, 1999; Mehra, 1993).
Atualmente, os problemas de escalonamento, principalmente quando se
deseja o balanceamento de cargas, que tm emergido em sistemas computacionais
distribudos so os no-determinsticos, uma vez que informaes exatas sobre os
recursos e as aplicaes raramente esto disponveis. Pode-se ainda adicionar a
isso a no uniformidade ou instabilidade do sistema.
Alm de suas caractersticas de software e hardware, as classes de software
bem como a carga de trabalho que um sistema tem que processar, tambm
influenciam seu desempenho.
2.4

Consideraes Finais
Este captulo discutiu a importncia do uso de escalonamento de processos

em sistemas distribudos mostrando que as vantagens da utilizao de sistemas


computacionais distribudos sobre os sistemas monoprocessadores so muitas e
para se fazer uso dessas vantagens, diversos algoritmos foram propostos com o
objetivo de controlar da melhor maneira possvel o compartilhamento dos recursos
existentes nesse tipo de sistema.
A literatura da rea demonstra que os algoritmos de escalonamento se
propem a uma grande variedade de objetivos: compartilhamento de carga,
aumento da utilizao do processador, reduo do tempo de resposta, reduo do
tempo de execuo, balanceamento de cargas, entre outros (Shirazi & Hurson,
1992; Mllender, 1993; Feitelson et al, 1997; Feitelson & Rudolph, 1995, 1996, 1998;
Xu & Lau, 1997).
A utilizao dos algoritmos de escalonamento, visando o balanceamento de
cargas, pode prover um aumento considervel no desempenho do sistema, uma vez
que a otimizao e a eficcia do sistema esto diretamente relacionadas com a
melhor utilizao da capacidade de processamento existente. Desse modo, a
escolha correta da poltica de balanceamento de cargas implica diretamente no
desempenho final do sistema e, indiscutivelmente, o balanceamento de cargas
indispensvel em um sistema computacional distribudo.
Entretanto, qualquer que seja a poltica de escalonamento a ser utilizada,
objetivando, contudo, promover o balanceamento de cargas do sistema, precisa
19

Escalonamento de Processos em Sistemas Computacionais Distribudos

utilizar informaes sobre a carga de trabalho e a situao de operao de cada um


dos elementos envolvidos no processo.
Essas informaes podem ser obtidas atravs dos ndices de carga, ou mais
adequadamente atravs dos ndices de desempenho, que podem, potencialmente,
fornecer uma informao que leve em considerao a heterogeneidade das
mquinas existentes.
Pesquisas e, mais especificamente, medies, tm mostrado que os
benefcios, como o aumento de desempenho, que podem ser obtidos atravs do
balanceamento de carga so extremamente dependentes desses ndices de carga.
Dessa maneira, acredita-se que um maior aumento de desempenho possa ser
obtido com a utilizao de ndices de desempenho.
Partindo dessas premissas, o prximo captulo apresenta definies e discute
conceitos de ndice de carga em sistemas computacionais distribudos, bem como a
caracterizao da carga de trabalho.

20

Das könnte Ihnen auch gefallen