Roteiro Linhas de Controle Alocação do Processador Sincronização através do Clock Exclusão Mútua Algoritmos Eletivos Transações Atômicas
13/05/23
Mater Christi
3
Alocação do ProcessadorIntrodução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos
13/05/23
Mater Christi
4
Introdução Sistemas Distribuídos (Tanenbaun)
consistem em diversos processadores que podem ser organizados como um conjunto de estações de trabalho pessoais, como um pool público de processadores ou de alguma forma híbrida
Questionamentos Como fazer? Quando fazer?
13/05/23
Mater Christi
5
Introdução Como fazer?
Utiliza-se um algoritmo para decidir qual processo deve rodar em qual máquina
Quando fazer? Modelo de sistema
Modelo de estação de trabalho Modelo de pool de processadores
13/05/23
Mater Christi
6
Introdução Modelo de sistema
Diferentes organizações para processadores em sistemas distribuídos
Modelo de estação de trabalho Simplicidade Compostos por várias estações de trabalho
(computadores pessoais de alto desempenho) espalhados geograficamente e conectados através de uma rede local de alta velocidade
Em algum momento do dia por algum instante de tempo as estações estão ociosas
13/05/23
Mater Christi
7
Introdução Modelo de estação de trabalho
Estações de trabalho diskless Sistema de arquivos é implementado em um
ou mais servidores em qualquer ponto da rede As requisições para leitura e escrita são
enviadas ao servidor que realiza a operação solicitada e envia de volta o resultado
Facilidade de manutenção Evita barulhos causados pelos discos Simetria e Flexibilidade
13/05/23
Mater Christi
8
Introdução Modelo de pool de processadores
O que acontece quando é possível fornecer 10 ou 100 vezes mais processadores do que o número de usuários ativos?
Construir um pool de processadores é uma metodologia alternativa Possuir uma prateleira de cheia de
processadores, e alocá-los dinamicamente aos usuários, sob demanda
13/05/23
Mater Christi
9
Introdução Modelo de pool de processadores
Motivação Redução de gastos com energia Aumento de poder computacional Economia Financeira Desacoplamento do número de usuários e
do número de estações de trabalho Crescimento computacional incremental Todos os processadores pertencem
igualmente a todos os usuários
13/05/23
Mater Christi
10
Introdução Modelo de pool de processadores
Principal Motivação Teoria das Filas
Sistemas de filas são a situação onde na qual os usuários geram requisições de trabalho randômicas para um servidor
Quando o servidor estiver ocupado, os usuários são enfileirados e atendidos em ordem de chegada conforme a disponibilidade do servidor
13/05/23
Mater Christi
11
Introdução Modelo Híbrido
Fornece uma estação de trabalho para todos os usuários e forma ainda um pool de processadores
Custo alto Combinação das vantagens das duas
abordagens Simplifica o projeto do sistema Trabalhos interativos e não-interativos
13/05/23
Mater Christi
12
Alocação do ProcessadorIntrodução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos
13/05/23
Mater Christi
13
Modelos de Alocação Modelo, Objetivos de Trabalho de Alocação
Máquinas idênticas ou no mínimo compatíveis em nível de código
Alguns sistemas podem ser constituídos de vários pools disjuntos Cada um composto do mesmo tipo de
processador, ou seja cada um é homogêneo É assumido que o sistema é totalmente
interconectado Cada processador pode se comunicar com
todos os outros
13/05/23
Mater Christi
14
Modelos de Alocação As mensagens podem ser repassadas
passo a passo por uma sequência de máquinas Algumas redes facilitam o broadcast e o
multicast e alguns algoritmos fazem uso dessas facilidades
Início de uma trabalho Quando um processo em execução decide
criar um subprocesso
13/05/23
Mater Christi
15
Modelos de Alocação Início de uma trabalho
Exemplo Quando o interpretador de comando (shell)
executa algum comando usuário Processo de usuário cria um ou mais
processos filhos Ganha performance, pode executar em
paralelo
13/05/23
Mater Christi
16
Modelos de Alocação Estratégias de alocação do processador
Não-migratórias Migratórias
Não-Migratórias Na criação de um processo é tomado a decisão
de onde este deve ser colocado para rodar Uma vez determinada a máquina o processo
permanece lá até terminar Não pode ser executada em outra máquina não importa o quão sobrecarregada esteja Nem se existirem outras máquinas livres
13/05/23
Mater Christi
17
Modelos de Alocação Migratórias
Um processo pode trocar de máquinas , mesmo que sua execução tenha iniciado
Permitem melhor balanceamento de carga de trabalho
Substancialmente mais complexas Maior impacto no projeto do sistema
13/05/23
Mater Christi
18
Modelos de Alocação Objetivos dos algoritmos de alocação
Otimizar algum aspecto Caso contrário seria feitas atribuições
randômicas ou em ordem numérica O que pode ser otimizado?
Varia de um sistema para o outro
13/05/23
Mater Christi
19
Modelos de Alocação Maximização
Utilização do processador Maximiza o número de ciclos do
processador efetivamente executados em benefícios de tarefas de usuário
Sinônimo de eliminação que qualquer custo de tempo ocioso
13/05/23
Mater Christi
20
Modelos de Alocação Minimização
Tempo médio de resposta
13/05/23
Mater Christi
21
Não há fila Fila de 5s
ProcessoA (100 milhões de instruções)B (300 milhões de instruções)
Processador de 1 Processador de 2
10s30s
6s8s
Modelos de Alocação Minimização
Taxa de resposta É o tempo gasto por um processo para
executar em determinada máquina, dividido pelo tempo que gasta para executar em um processador sem nenhuma carga
Considerados por uns mais importante que o tempo de resposta Qual a situação mais eficiente?
Um job de 1s que executa em 5s? Um job de 1min que executa em 70s?
13/05/2322
Alocação do ProcessadorIntrodução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos
13/05/23
Mater Christi
23
Aspectos do Projeto dos Algoritmos de Alocação Questões-chave que envolvem o
algoritmos Principais decisões de projeto
Algoritmos heurísticos versus determinísticos Algoritmos centralizados versus distribuídos Algoritmos ótimos versus subótimos Algoritmos locais versus globais Algoritmos iniciados pelo transmissor versus
iniciados pelo receptor
13/05/2324
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos heurísticos versus
determinísticos Algoritmos determinísticos
Conhecimento por antecedência de tudo a respeito do comportamento do processo Necessidades computacionais, arquivamento,
comunicação, entre outros Alocação perfeita
13/05/23
Mater Christi
25
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos heurísticos versus
determinísticos Algoritmos Heurísticos
Imprevisibilidade – Carga de trabalho Carga de trabalho depende das requisições
dos usuários, podendo mudar a todo instante
Utiliza-se técnicas heurísticas
13/05/23
Mater Christi
26
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos centralizados versus
distribuídos Algoritmos Centralizados
Alocação em um único lugar permite melhor tomada de decisões Pouco robusto, carga de trabalho excessiva
Sugeridos na ausência de alternativas descentralizadas
13/05/23
Mater Christi
27
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos Ótimos versus Subótimos
Tem relação com os dois primeiros aspectos “Estamos interessados em encontrar o
melhor algoritmo de alocação, ou simplesmente buscamos um algoritmo aceitável?”
Algoritmos Ótimos Podem ser encontradas com maiores custo
que as soluções subótimas
13/05/23
Mater Christi
28
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos Ótimos versus Subótimos
Algoritmos Ótimos Coleta de muitas informações Processamento mais rigoroso
A maioria dos algoritmos empregados em sistemas distribuídos são heurísticos, distribuídos e subótimos
Devido a imensa dificuldade de se obter a solução ótima
13/05/23
Mater Christi
29
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos Locais versus Globais
Conhecido como política de transferência Tomada de decisão a respeito do fato de ele
poder ou não rodar na máquina em que foi gerado
Caso a máquina esteja sobrecarregada um novo processo deve ser transferido para outra máquina
A questão é, se devemos fundamentar a decisão de transferência exclusivamente nas informações disponíveis localmente ou se devemos lançar mão de informações globais
13/05/23
Mater Christi
30
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos Locais versus Globais
Utilização de algoritmo local caso a máquina esteja abaixo de um valor-limite
Caso contrário o algoritmo deve sinalizar a necessidade de encontrar uma outra máquina para o processo
Outra opção seria coletar informações globais sobre a carga das demais máquinas e fazer a decisão
13/05/23
Mater Christi
31
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos Locais versus Globais
Ambas as situações têm vantagens e desvantagens
Algoritmos locais são simples, contudo estão distantes do ótimo
Algoritmos globais têm um resultado um pouco melhor ao custo de maior complexidade
13/05/23
Mater Christi
32
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos iniciados pelo transmissor
versus iniciados pelo receptor Relativo a política de localização
Baseado no caso onde a máquina deve se livrar do processo e encontrar outra máquina para receber o processo
Não pode ser local Necessidade do conhecimento das cargas
alheias para poder tomar alguma decisão
13/05/23
Mater Christi
33
Aspectos do Projeto dos Algoritmos de Alocação Algoritmos iniciados pelo transmissor
versus iniciados pelo receptor Há duas maneiras
O transmissor começa a trocar informações O receptor quem toma a iniciativa
13/05/23
Mater Christi
34
A máquina decide que estáCom muito trabalho
A máquina anuncia suadisponibilidade
Alocação do ProcessadorIntrodução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos
13/05/23
Mater Christi
35
Implementação dos Algoritmos de alocação Assume-se que cada máquina conhece sua
própria carga de trabalho Afim de informar se esta se encontra
sobrecarregada ou se está abaixo de sua capacidade
Medida da carga Contabilidade de processos em cada máquina
Processos em background contribuem muito pouco para a carga da máquina
Conta-se apenas os processos que estão executando efetivamente ou prontos para executar
Determinar a taxa de utilização do processador
13/05/2336
Implementação dos Algoritmos de alocação Medição da taxa de utilização
Inicialização de um interruptor A cada interrupção é analisado o estado do
processador Para determinar a fração de tempo gasta em
um loop ocioso Tratamento do Overhead
Overhead produzido pela coleta das informações e do movimento dos processos
13/05/2337
Implementação dos Algoritmos de alocação Aumento da complexidade Medição da qualidade dos algoritmos
Medidas experimentais Utilização do processador Tempo de resposta Taxa de utilização
Simulação de tais parâmetros Determinando-os analiticamente Pouco se considera a complexidade do algoritmo
Implicações óbvias: performance, robustez e correção
Estabilidade do Algoritmo
13/05/2338
Alocação do ProcessadorIntrodução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos
13/05/23
Mater Christi
40
Exemplos de Algoritmos Exercício
Resuma os algoritmos: Determinístico Baseado na Teoria dos
Grafos Centralizados Hierárquicos Heurístico Distribuído Leiloeiro
Data Limite: 18/10/2013
13/05/23
Mater Christi
41