Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal 2 30/06/2017 Redes e Sistemas Distribuídos II Comunicação e Sincronização de Processos Mater Christi 3 30/06/2017 Roteiro Linhas de Controle Alocação do Processador Sincronização através do Clock Exclusão Mútua Algoritmos Eletivos Transações Atômicas Mater Christi 4 30/06/2017 Alocação do Processador Introdução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos Mater Christi 5 30/06/2017 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? Mater Christi 6 30/06/2017 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 Mater Christi 7 30/06/2017 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 Mater Christi 8 30/06/2017 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 Mater Christi 9 30/06/2017 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 Mater Christi 10 30/06/2017 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 Mater Christi 11 30/06/2017 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 Mater Christi 12 30/06/2017 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 Mater Christi 13 30/06/2017 Alocação do Processador Introdução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos Mater Christi 14 30/06/2017 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 Mater Christi 15 30/06/2017 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 Mater Christi 16 30/06/2017 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 Mater Christi 17 30/06/2017 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 Mater Christi 18 30/06/2017 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 Mater Christi 19 30/06/2017 Modelos de Alocação Objetivos O dos algoritmos de alocação Otimizar algum aspecto Caso contrário seria feitas atribuições randômicas ou em ordem numérica que pode ser otimizado? Varia de um sistema para o outro Mater Christi 20 30/06/2017 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 Mater Christi 21 30/06/2017 Modelos de Alocação Minimização Tempo médio de resposta Processo A (100 milhões de instruções) B (300 milhões de instruções) Processador de 1 Processador de 2 Não há fila Fila de 5s 10s 30s 6s 8s Mater Christi 22 30/06/2017 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? 23 30/06/2017 Alocação do Processador Introdução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos Mater Christi 24 30/06/2017 Aspectos do Projeto dos Algoritmos de Alocação Questões-chave algoritmos que envolvem o 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 25 30/06/2017 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 Mater Christi 26 30/06/2017 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 Mater Christi 27 30/06/2017 Aspectos do Projeto dos Algoritmos de Alocação Algoritmos distribuídos centralizados versus 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 Mater Christi 28 30/06/2017 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 Mater Christi 29 30/06/2017 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 Mater Christi 30 30/06/2017 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 Mater Christi 31 30/06/2017 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 Mater Christi 32 30/06/2017 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 Mater Christi 33 30/06/2017 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 Mater Christi 34 30/06/2017 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 A máquina anuncia sua disponibilidade A máquina decide que está Com muito trabalho Mater Christi 35 30/06/2017 Alocação do Processador Introdução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos Mater Christi 36 30/06/2017 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 37 30/06/2017 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 38 30/06/2017 Implementação dos Algoritmos de alocação Aumento da complexidade Medição da qualidade dos algoritmos Medidas experimentais Simulação de tais parâmetros Determinando-os analiticamente Pouco se considera a complexidade do algoritmo Utilização do processador Tempo de resposta Taxa de utilização Implicações óbvias: performance, robustez e correção Estabilidade do Algoritmo 39 Implementação dos Algoritmos de alocação 30/06/2017 40 30/06/2017 Alocação do Processador Introdução, Modelos de Alocação, Aspectos do Projeto e Implementação dos Algoritmos de Alocação, Exemplos de Algoritmos Mater Christi 41 30/06/2017 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 Mater Christi 42 30/06/2017 Referências TANENBAUM, A. S. Sistemas Operacionais Modernos. 2. Ed. Prentice Hall, 2003. Mater Christi