O documento discute algoritmos de coordenação distribuída para exclusão mútua e eleição de coordenadores. Aborda algoritmos centralizados e distribuídos para exclusão mútua baseados em fichas e permissões. Também explica algoritmos de eleição como o do valentão, do anel, para redes sem fio e sistemas de grande escala.
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
O documento discute algoritmos para exclusão mútua, coordenação e acordo em sistemas distribuídos. Apresenta soluções baseadas em fichas, permissões centralizadas, descentralizadas e distribuídas. Também aborda algoritmos de eleição como o do ditador e do anel para escolha de um coordenador.
O documento discute soluções para o problema de exclusão mútua em sistemas distribuídos. Apresenta três algoritmos: centralizado, distribuído e em anel. O algoritmo centralizado usa um processo coordenador para controlar o acesso à região crítica. O algoritmo distribuído ordena eventos globalmente através de troca de mensagens. O algoritmo em anel passa um token circularmente entre os processos.
O documento discute algoritmos para sincronização de relógios lógicos e físicos em sistemas distribuídos, incluindo o algoritmo de Lamport para relógios lógicos e algoritmos centralizados e distribuídos para relógios físicos. Também aborda algoritmos para exclusão mútua, detecção e prevenção de deadlocks e controle de concorrência.
1) O documento discute processos e threads em sistemas operacionais modernos, abordando tópicos como criação e término de processos, estados de processos, comunicação entre processos e uso de threads.
2) É explicado que um processo é uma entidade dinâmica que consiste em um programa em execução e seus recursos, e que threads permitem múltiplas execuções dentro do mesmo processo.
3) Problemas de condição de corrida ocorrem quando processos acessam recursos compartilhados simultaneamente e são evitados por
O documento discute técnicas de sincronização entre processos e threads, incluindo regiões críticas, exclusão mútua, semáforos, monitores e o problema dos leitores e escritores. Aborda modelos de processos e threads, escalonamento, condições de corrida e como evitá-las através de mecanismos de sincronização.
O documento descreve algoritmos de eleição para sistemas distribuídos, incluindo o algoritmo do ditador, onde o processo com maior ID se torna coordenador, e variações do algoritmo em anel, onde uma mensagem circular o anel para eleger o processo com maior ID.
Este documento discute técnicas de sincronização em sistemas distribuídos, incluindo algoritmos de relógio lógico e físico, algoritmos de eleição de coordenador como Bully e Token Ring, e algoritmos para exclusão mútua como o de Lamport. A sincronização é necessária para coordenar ações em sistemas distribuídos sem um relógio global.
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
O documento discute algoritmos para exclusão mútua, coordenação e acordo em sistemas distribuídos. Apresenta soluções baseadas em fichas, permissões centralizadas, descentralizadas e distribuídas. Também aborda algoritmos de eleição como o do ditador e do anel para escolha de um coordenador.
O documento discute soluções para o problema de exclusão mútua em sistemas distribuídos. Apresenta três algoritmos: centralizado, distribuído e em anel. O algoritmo centralizado usa um processo coordenador para controlar o acesso à região crítica. O algoritmo distribuído ordena eventos globalmente através de troca de mensagens. O algoritmo em anel passa um token circularmente entre os processos.
O documento discute algoritmos para sincronização de relógios lógicos e físicos em sistemas distribuídos, incluindo o algoritmo de Lamport para relógios lógicos e algoritmos centralizados e distribuídos para relógios físicos. Também aborda algoritmos para exclusão mútua, detecção e prevenção de deadlocks e controle de concorrência.
1) O documento discute processos e threads em sistemas operacionais modernos, abordando tópicos como criação e término de processos, estados de processos, comunicação entre processos e uso de threads.
2) É explicado que um processo é uma entidade dinâmica que consiste em um programa em execução e seus recursos, e que threads permitem múltiplas execuções dentro do mesmo processo.
3) Problemas de condição de corrida ocorrem quando processos acessam recursos compartilhados simultaneamente e são evitados por
O documento discute técnicas de sincronização entre processos e threads, incluindo regiões críticas, exclusão mútua, semáforos, monitores e o problema dos leitores e escritores. Aborda modelos de processos e threads, escalonamento, condições de corrida e como evitá-las através de mecanismos de sincronização.
O documento descreve algoritmos de eleição para sistemas distribuídos, incluindo o algoritmo do ditador, onde o processo com maior ID se torna coordenador, e variações do algoritmo em anel, onde uma mensagem circular o anel para eleger o processo com maior ID.
Este documento discute técnicas de sincronização em sistemas distribuídos, incluindo algoritmos de relógio lógico e físico, algoritmos de eleição de coordenador como Bully e Token Ring, e algoritmos para exclusão mútua como o de Lamport. A sincronização é necessária para coordenar ações em sistemas distribuídos sem um relógio global.
Leslie Lamport é um cientista da computação conhecido por suas contribuições fundamentais para a teoria de sistemas distribuídos. Ele desenvolveu os relógios lógicos de Lamport, que permitem a ordenação total de eventos em sistemas distribuídos através da atribuição de marcas temporais aos eventos. O algoritmo de Lamport é amplamente utilizado em algoritmos distribuídos como exclusão mútua e multicast totalmente ordenado.
O documento discute processos e threads em sistemas operacionais, incluindo: (1) o que é um processo e como é representado no sistema, (2) os diferentes tipos e estados de processos, e (3) como o escalonador do sistema operacional agenda qual processo receberá tempo de CPU.
Este documento discute o escalonamento de processos em sistemas operacionais. Apresenta uma introdução ao escalonamento e descreve o comportamento de processos orientados a CPU e E/S. Também explica quando o escalonamento ocorre, como nos sistemas em lote e multiprogramados, e as técnicas de escalonamento preemptivo e não preemptivo.
O documento discute conceitos importantes de sincronização e comunicação entre processos, incluindo semáforos, monitores, troca de mensagens e deadlock. Semáforos são usados para exclusão mútua e sincronização condicional através de operações wait e signal. Monitores fornecem exclusão mútua automática e sincronização condicional com variáveis de condição e procedimentos. A troca de mensagens permite a comunicação direta e indireta entre processos. Deadlock ocorre quando um processo aguarda um recurso que nunca
1) A tolerância a falhas é uma característica importante em sistemas distribuídos que permite que o sistema continue funcionando mesmo quando alguns de seus componentes falham.
2) A redundância, como a replicação de processos em grupos, é uma técnica fundamental para mascarar falhas e manter a disponibilidade do sistema.
3) Protocolos de consenso como Paxos e PBFT são usados para que processos replicados cheguem a um acordo sobre operações mesmo na presença de falhas.
O documento discute os conceitos de escalonamento de threads no Windows, incluindo: (1) O Windows implementa um escalonador multinível do tipo feedback queue; (2) As threads possuem prioridades que variam de 0 a 31, divididas em tempos reais e variáveis; (3) O escalonador ajusta periodicamente as prioridades das threads para evitar postergação indefinida.
1) O documento discute os modelos OSI e TCP/IP, comparando suas camadas e protocolos.
2) TCP/IP é o modelo de fato usado na Internet, com quatro camadas principais: acesso à rede, internet, transporte e aplicação.
3) Os protocolos IP, TCP e UDP atuam nas camadas internet e transporte, sendo responsáveis pelo endereçamento, roteamento, controle de fluxo e entrega confiável ou não confiável de dados.
O documento discute firewalls e o iptables, um firewall de filtragem de pacotes. Ele explica que firewalls isolam redes internas da internet e implementam políticas de controle de acesso. Em seguida, descreve características e tipos de firewalls, incluindo filtragem de pacotes e gateways de camada de aplicação. Por fim, fornece detalhes sobre como o iptables funciona, incluindo cadeias, tabelas, regras, ações e política padrão.
1) A comunicação entre processos em sistemas distribuídos é feita através da troca de mensagens, ao invés de memória compartilhada.
2) Protocolos de comunicação utilizam camadas para facilitar a implementação e entendimento da troca de mensagens entre sistemas heterogêneos.
3) O Modelo OSI define sete camadas de funcionalidade para a comunicação entre sistemas abertos de forma estruturada.
O documento discute a infraestrutura da Internet e servidores web, incluindo: 1) a arquitetura cliente-servidor e os protocolos TCP/IP e HTTP; 2) populares servidores web como Apache, Nginx e Varnish; e 3) bancos de dados como MySQL e PostgreSQL usados com servidores web.
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
O documento apresenta o conceito e uso de filas de processamento para comunicação assíncrona entre processos. É discutido como filas podem liberar a interface do usuário, inverter a comunicação de servidor para cliente e granularizar processos. Exemplos de ferramentas para filas incluem RabbitMQ, Apache ActiveMQ, Kafka e ferramentas em nuvem como Amazon SQS e Azure Service Bus.
Definir formalmente o conceito de processo
Descrever as várias funcionalidades relacionadas à manipulação de processos pelo sistema operacional, incluindo escalonamento, criação, terminação e comunicação
Apresentar as principais formas de comunicação utilizadas por sistemas cliente-servidor
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfIvanSaboia1
O documento introduz conceitos básicos sobre desenvolvimento de exploits, incluindo:
1) Define o que são exploits, vulnerabilidades de dia zero (0day), provas de conceito (PoC), shellcode e buffer overflows.
2) Explica conceitos como pilha, heap, bits de 32 e 64, egghunters e espaço de endereço virtual.
3) Apresenta exemplos de algoritmos, conceitos avançados como heap spraying e ASLR.
O documento discute a implementação de threads em Java para melhorar o desempenho de aplicações. Threads permitem a execução paralela de tarefas dentro de um mesmo processo, oferecendo maior eficiência do que processos separados. O texto explica como criar, gerenciar e sincronizar threads, apresentando métodos como start(), sleep(), yield() e synchronized.
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
O documento discute processos em sistemas operacionais. Aborda conceitos como criação, término e hierarquia de processos, além de estados de processos e escalonamento de processos. Explica diferentes algoritmos de escalonamento como FIFO, Round Robin e múltiplas filas. Também discute threads como forma de dividir um processo em tarefas concorrentes.
O documento discute os conceitos e funcionamento de barramentos em computadores. Explica que barramentos são conjuntos de linhas de comunicação que permitem a interligação entre dispositivos como CPU, memória e periféricos. Descreve também que os principais componentes de um barramento são as linhas de dados, endereços e controle, e que barramentos permitem a transferência de instruções, dados e sinais entre esses componentes.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC.
"Apresentação atualizada, pois o SlideShare não permite re-upload."
Vídeo da primeira parte - Apresentação
https://youtu.be/ZWQO0bLB8gU
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesRogério Almeida
O documento discute o uso da ferramenta Nmap para varredura de rede e mapeamento de portas, e o protocolo Syslog e ferramenta Syslog-ng para gerenciamento de logs de sistemas. O Nmap é apresentado com suas principais características, técnicas de descoberta de hosts e varredura de portas. O Syslog é descrito como um padrão para transmissão de logs em redes IP, com foco na implementação Syslog-ng e suas funcionalidades no armazenamento e processamento centralizado de mensagens de log.
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
This is the first of a two part presentation about on line distributed systems for data stream processing. It was presented at VI Escola Regional de Alto Desempenho, UNESP, São José do Rio Preto-SP. File in Portuguese.
Leslie Lamport é um cientista da computação conhecido por suas contribuições fundamentais para a teoria de sistemas distribuídos. Ele desenvolveu os relógios lógicos de Lamport, que permitem a ordenação total de eventos em sistemas distribuídos através da atribuição de marcas temporais aos eventos. O algoritmo de Lamport é amplamente utilizado em algoritmos distribuídos como exclusão mútua e multicast totalmente ordenado.
O documento discute processos e threads em sistemas operacionais, incluindo: (1) o que é um processo e como é representado no sistema, (2) os diferentes tipos e estados de processos, e (3) como o escalonador do sistema operacional agenda qual processo receberá tempo de CPU.
Este documento discute o escalonamento de processos em sistemas operacionais. Apresenta uma introdução ao escalonamento e descreve o comportamento de processos orientados a CPU e E/S. Também explica quando o escalonamento ocorre, como nos sistemas em lote e multiprogramados, e as técnicas de escalonamento preemptivo e não preemptivo.
O documento discute conceitos importantes de sincronização e comunicação entre processos, incluindo semáforos, monitores, troca de mensagens e deadlock. Semáforos são usados para exclusão mútua e sincronização condicional através de operações wait e signal. Monitores fornecem exclusão mútua automática e sincronização condicional com variáveis de condição e procedimentos. A troca de mensagens permite a comunicação direta e indireta entre processos. Deadlock ocorre quando um processo aguarda um recurso que nunca
1) A tolerância a falhas é uma característica importante em sistemas distribuídos que permite que o sistema continue funcionando mesmo quando alguns de seus componentes falham.
2) A redundância, como a replicação de processos em grupos, é uma técnica fundamental para mascarar falhas e manter a disponibilidade do sistema.
3) Protocolos de consenso como Paxos e PBFT são usados para que processos replicados cheguem a um acordo sobre operações mesmo na presença de falhas.
O documento discute os conceitos de escalonamento de threads no Windows, incluindo: (1) O Windows implementa um escalonador multinível do tipo feedback queue; (2) As threads possuem prioridades que variam de 0 a 31, divididas em tempos reais e variáveis; (3) O escalonador ajusta periodicamente as prioridades das threads para evitar postergação indefinida.
1) O documento discute os modelos OSI e TCP/IP, comparando suas camadas e protocolos.
2) TCP/IP é o modelo de fato usado na Internet, com quatro camadas principais: acesso à rede, internet, transporte e aplicação.
3) Os protocolos IP, TCP e UDP atuam nas camadas internet e transporte, sendo responsáveis pelo endereçamento, roteamento, controle de fluxo e entrega confiável ou não confiável de dados.
O documento discute firewalls e o iptables, um firewall de filtragem de pacotes. Ele explica que firewalls isolam redes internas da internet e implementam políticas de controle de acesso. Em seguida, descreve características e tipos de firewalls, incluindo filtragem de pacotes e gateways de camada de aplicação. Por fim, fornece detalhes sobre como o iptables funciona, incluindo cadeias, tabelas, regras, ações e política padrão.
1) A comunicação entre processos em sistemas distribuídos é feita através da troca de mensagens, ao invés de memória compartilhada.
2) Protocolos de comunicação utilizam camadas para facilitar a implementação e entendimento da troca de mensagens entre sistemas heterogêneos.
3) O Modelo OSI define sete camadas de funcionalidade para a comunicação entre sistemas abertos de forma estruturada.
O documento discute a infraestrutura da Internet e servidores web, incluindo: 1) a arquitetura cliente-servidor e os protocolos TCP/IP e HTTP; 2) populares servidores web como Apache, Nginx e Varnish; e 3) bancos de dados como MySQL e PostgreSQL usados com servidores web.
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
O documento apresenta o conceito e uso de filas de processamento para comunicação assíncrona entre processos. É discutido como filas podem liberar a interface do usuário, inverter a comunicação de servidor para cliente e granularizar processos. Exemplos de ferramentas para filas incluem RabbitMQ, Apache ActiveMQ, Kafka e ferramentas em nuvem como Amazon SQS e Azure Service Bus.
Definir formalmente o conceito de processo
Descrever as várias funcionalidades relacionadas à manipulação de processos pelo sistema operacional, incluindo escalonamento, criação, terminação e comunicação
Apresentar as principais formas de comunicação utilizadas por sistemas cliente-servidor
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfIvanSaboia1
O documento introduz conceitos básicos sobre desenvolvimento de exploits, incluindo:
1) Define o que são exploits, vulnerabilidades de dia zero (0day), provas de conceito (PoC), shellcode e buffer overflows.
2) Explica conceitos como pilha, heap, bits de 32 e 64, egghunters e espaço de endereço virtual.
3) Apresenta exemplos de algoritmos, conceitos avançados como heap spraying e ASLR.
O documento discute a implementação de threads em Java para melhorar o desempenho de aplicações. Threads permitem a execução paralela de tarefas dentro de um mesmo processo, oferecendo maior eficiência do que processos separados. O texto explica como criar, gerenciar e sincronizar threads, apresentando métodos como start(), sleep(), yield() e synchronized.
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
O documento discute processos em sistemas operacionais. Aborda conceitos como criação, término e hierarquia de processos, além de estados de processos e escalonamento de processos. Explica diferentes algoritmos de escalonamento como FIFO, Round Robin e múltiplas filas. Também discute threads como forma de dividir um processo em tarefas concorrentes.
O documento discute os conceitos e funcionamento de barramentos em computadores. Explica que barramentos são conjuntos de linhas de comunicação que permitem a interligação entre dispositivos como CPU, memória e periféricos. Descreve também que os principais componentes de um barramento são as linhas de dados, endereços e controle, e que barramentos permitem a transferência de instruções, dados e sinais entre esses componentes.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC.
"Apresentação atualizada, pois o SlideShare não permite re-upload."
Vídeo da primeira parte - Apresentação
https://youtu.be/ZWQO0bLB8gU
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesRogério Almeida
O documento discute o uso da ferramenta Nmap para varredura de rede e mapeamento de portas, e o protocolo Syslog e ferramenta Syslog-ng para gerenciamento de logs de sistemas. O Nmap é apresentado com suas principais características, técnicas de descoberta de hosts e varredura de portas. O Syslog é descrito como um padrão para transmissão de logs em redes IP, com foco na implementação Syslog-ng e suas funcionalidades no armazenamento e processamento centralizado de mensagens de log.
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
This is the first of a two part presentation about on line distributed systems for data stream processing. It was presented at VI Escola Regional de Alto Desempenho, UNESP, São José do Rio Preto-SP. File in Portuguese.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
2. Coordenação – Exclusão mútua
• Uma questão fundamental em SD é a
concorrência e a colaboração entre vários
processos
• Como garantir que o acesso concorrente de
recursos não gere situações de inconsistência
de dados?
• São necessárias soluções que garantam o
acesso mutualmente exclusivo pelos processos
• Algoritmos distribuídos de exclusão mútua
podem ser classificados em duas categorias
• Baseados em ficha e Baseados em permissão
3. Exclusão Mútua
• Uma questão fundamental em SD é a
concorrência e a colaboração entre vários
processos
• Como garantir que o acesso concorrente de
recursos não gere situações de inconsistência
de dados?
• São necessárias soluções que garantam o
acesso mutualmente exclusivo pelos processos
• Algoritmos distribuídos de exclusão mútua
podem ser classificados em duas categorias
• Baseados em ficha e Baseados em permissão
4. EXCLUSÃO MÚTUA - ALGORITMO
CENTRALIZADO
• Simula o que é feito em um sistema
monoprocessador:
• Um processo é eleito como coordenador
• Sempre que um processo quiser acessar
determinado recurso, é necessário pedir permissão
ao coordenador, através de uma mensagem
• O coordenador permite acesso ao recurso através de
uma mensagem de concessão, desde que nenhum
outro processo esteja acessando o recurso naquele
momento
• Para usar uma região crítica: REQUISIÇÃO,
CONCESSÃO e LIBERAÇÃO
6. EXCLUSÃO MÚTUA - ALGORITMO
CENTRALIZADO
• Prós:
• Simples, fácil de entender e de implementar
• É justo (segue o FCFS)
• Como no FCFS, não há inanição (starvation)
• Contras:
• Como todo sistema centralizado um ponto de
erro e um ponto de gargalo
• Processos não conseguem distinguir
coordenador inativo de permissão negada, caso
se o recurso não está disponível nenhuma
mensagem é enviada
7. EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Requer ordenação total de todos os
eventos no sistema
• Para isso será usado... Algoritmo de Lamport!
• Funcionamento:
• Quando processo deseja acessar um recurso
compartilhado, monta uma mensagem que
contém o nome do recurso, seu número de
processo e a hora corrente (lógica).
• Envia mensagem para todos processos, inclusive
ele mesmo
8. EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Requer ordenação total de todos os
eventos no sistema
• Para isso será usado... Algoritmo de Lamport!
• Funcionamento:
• Quando processo deseja acessar um recurso
compartilhado, monta uma mensagem que
contém o nome do recurso, seu número de
processo e a hora corrente (lógica).
• Envia mensagem para todos processos, inclusive
ele mesmo
9. EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Funcionamento (continuação):
• Quando um processo recebe uma mensagem de
requisição de outro, executa uma ação de acordo
com seu próprio estado em relação ao recurso:
1. Se o receptor não estiver acessando o recurso nem
quer acessá-lo, devolve “OK” ao remetente
2. Se já tem acesso ao recurso, não responde e coloca
requisição em uma fila
3. Se receptor também quer acessar o recurso, mas ainda
não possui a permissão, compara a marca de tempo da
mensagem que chegou com a marca de tempo da
mensagem que enviou a todos. Se a que recebeu é mais
baixa envia OK, senão coloca requisição na fila e não
manda nada
10. EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Funcionamento (continuação):
• Após enviar requisições que peçam permissão,
um processo aguarda recebimento de todas as
respostas
• Quando houver permissão de todos, processo
acessa o recurso
• Processo libera o recurso enviando um “OK” a
todos os processos que estão em sua fila
12. EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Vantagens:
• Exclusão mútua é garantida
• Não há deadlock nem starvation
• Desvantagens:
• Ponto de falha único foi substituído por n pontos de
falha
• Trocou 1 gargalo por n gargalos
• Pode melhorar enviando sempre uma resposta. Se
não chegar resposta quem pediu pode concluir que o
nó morreu
• Tem que ter uma comunicação multicast ou manter
uma lista de associação ao grupo em cada processo
13. EXCLUSÃO MÚTUA – ALGORITMO TOKEN
RING
• Algoritmo baseado em ficha que circula
ao redor do anel lógico
• Se o processo quer acessar recurso e
tem a ficha, usa recurso e quando acaba
passa ficha
• Se não quer usar recurso, passa a ficha
14. EXCLUSÃO MÚTUA – ALGORITMO TOKEN
RING
• Garante a exclusão mútua
• Não há deadlock nem starvation
• A dificuldade é recuperar uma ficha
perdida
• Como saber o tempo razoável para um
token não aparecer?
• Se um processo morreu, um vizinho que
tenta enviar o token para ele pode
detectar, e anel pode ser reconfigurado
16. ALGORITMOS DE ELEIÇÃO
• Usados quando há necessidade de um nó
agir como coordenador. São exemplos
tradicionais de algoritmos de eleição:
• Algoritmo do valentão
• Algoritmo de anel
• Além disso, existem soluções para
ambientes específicos:
• Algoritmos para redes sem fio
• Algoritmos para sistemas de grande escala (como
P2P)
17. ALGORITMOS DE ELEIÇÃO – ALGORITMO DO
VALENTÃO(BULLY)
• Todos nós possuem um identificador
• Sempre que um nó P percebe que o
coordenador não responde, P inicia uma
eleição:
1. P envia uma mensagem ELEIÇÃO a todos os
processos de números mais altos
2. Se nenhum responder, P vence a eleição e se torna o
coordenador
3. Se um dos processos de número mais alto responder,
ele toma o poder e o trabalho de P está concluído
• Dessa forma é eleito o nó com maior identificador
19. ALGORITMOS DE ELEIÇÃO – ALGORITMO DO
ANEL
• Baseado na utilização de anel (físico ou
lógico), mas não usa ficha:
• Quando qualquer processo nota que o coordenador
não está funcionando, monta uma mensagem
ELEIÇÃO com seu número
• A mensagem é enviada a seu sucessor ou próximo
que esteja em funcionamento
• A cada etapa, o remetente adiciona seu número de
modo a se tornar também um candidato à eleição de
coordenador
• Quando a mensagem retorna ao processo que iniciou
a eleição, este envia a mensagem COORDENADOR
com o número mais alto da sua lista
21. ELEIÇÕES EM AMBIENTES SEM FIO
• Necessários em ambientes onde a troca de
mensagens não é confiável e a topologia da
rede muda com frequência
• Visa eleger o melhor líder
• Exemplo: o nó o que possui maior bateria restante
• Um nó fonte P inicia a eleição enviando a
mensagem ELEIÇÃO a seus vizinhos
• Quando um nó Q recebe a mensagem
ELEIÇÃO pela primeira vez, designa o
remetente como seu pai e envia uma
mensagem ELEIÇÃO a todos vizinhos exceto
seu pai
22. ELEIÇÕES EM AMBIENTES SEM FIO
• Se Q recebe uma mensagem ELEIÇÃO de um
nó não-pai, apenas confirma o recebimento
• Se todos vizinhos de um nó R já possuem um
pai, R é um nó folha, portanto pode reportar de
volta a Q, passando informações úteis
• Quando Q recebe todas as respostas, reporta a
seu pai qual é o melhor dos recebidos por Q
• O nó P recebe os melhores candidatos e decide
pelo melhor, informando a todos via broadcast.
24. ELEIÇÕES EM SISTEMAS DE GRANDE
ESCALA
• Há situações em que é preciso trabalhar com
redes maiores
• Exemplo: é necessário eleger Superpares em redes P2P
• Requisitos a serem cumpridos por superpar:
1. Nós normais devem ter baixa latência de acesso com
superpares
2. Superpares devem estar uniformemente distribuídos pela
rede de sobreposição
3. Deve haver uma porção predefinida de superpares em
relação ao número total de nós na rede de sobreposição
4. Cada superpar não deve precisar atender mais do que um
número fixo de nós normais