Notas de Aula - MAC 5755 - Sistemas Operacionais Distribuídos

Aula 12 - 21/9/2001

Modelos de Sistemas Distribuídos

  1. antigamente: um computador de grande porte + vários terminais
  2. década de 80 e início da década de 90: computadores pessoais desconectados ou fracamente conectados
  3. recentemente: estações de trabalho ligadas a redes locais ligadas à Internet:

Escalonamento em Sistemas Distribuídos

Escalonamento Global

  1. Tipo da distribuição de carga (objetivos diferentes):
    1. Balanceamento de carga (de forma homogênea)
    2. Compartilhamento de carga (de forma a evitar máquinas sobrecarregadas)
  2. Tipo do algoritmo de escalonamento:
    1. algoritmo otimal (busca uma solução ótima)
    2. algoritmo sub-otimal (busca uma solução boa que não necessariamente é a melhor)
      1. Algoritmos de Aproximação
        • similar a algoritmos otimais mas não testam todas as possibilidades
        • limitam o espaço de busca de forma a achar uma solução boa mais rápido
        • Exemplos: Resfriamento Simulado (Simulated Annealing), Algoritmos Genéticos, Busca Tabu
      2. Algoritmos com Heurísticas
        • usa regras ou intuições sobre escalonamento
        • não é possível provar que funcionam, não há justificativa formal para o método
        • mas, em geral, funcionam. Exemplos:
          1. processos inter-dependentes que "conversam" muito devem ser colocados na mesma máquina ou, pelo menos, próximos
          2. processos que compartilham arquivos devem ser colocados na mesma máquina
          3. processos sem nenhuma inter-relação aparente devem ser distribuídos homogeneamente pelo sistema
          4. se uma máquina está com alta carga, não escalone mais processos para ela
          5. ao escalonar um novo processo, escolha a máquina que esteja com carga mais livre.
        • heurísticas funcionam bem em sistemas dinâmicos onde não se conhece a priori os processos.
  3. Momento da escolha da máquina
    1. em qual momento o sistema define em qual nó cada processo será executado
      1. tempo de criação do programa executável (estático)
      2. tempo de execução (dinâmico)
    2. hoje em dia, praticamente só dinâmico é aceitável; estático soa meio ridículo :-)
  4. Responsabilidade pelo escalonamento
    1. centralizada em um nó coordenador
    2. distribuída
  5. Tipo de participação das máquinas do sistema distribuído
    1. voluntária
    2. obrigatória
  6. Permanência das decisões de escalonamento
    1. decisão imutável, uma vez escolhido o nó, não muda mais
    2. adaptável, usa reconfiguração dinâmica / migração para mudar o escalonamento global
Referências
  • Capítulo 7 do Galli, seções 4.2 e 4.3 do Tanenbaum e capítulo 7 e 8 do Sinha.

  • Próxima Aula
    Aula Anterior
    Página de MAC 5755
    Página do Fabio
    Página do DCC