Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouOrlando Jonathan Rijo Bennert Alterado mais de 8 anos atrás
1
Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal
2
Redes e Sistemas Distribuídos II Comunicação e Sincronização de Processos 1/8/2015 Mater Christi 2
3
Roteiro Linhas de Controle Alocação do Processador Sincronização através do Clock Exclusão Mútua Algoritmos Eletivos Transações Atômicas 1/8/2015 Mater Christi 3
4
Linhas de Controle Introdução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo 1/8/2015 Mater Christi 4
5
Introdução Processos Processos convencionais Um espaço de endereçamento Uma linha de controle Sistemas Distribuídos Várias linhas de controles Compartilhamento o espaço de endereçamento Vantagens e desvantagens 1/8/2015 Mater Christi 5
6
Introdução Exemplo: Servidor de Arquivos Bloqueado aguardando a solução de tarefas solicitadas Executando várias linhas de controle A 2ª linha não depende exclusivamente da 1ª linha Aumento da vazão dos sistema 1/8/2015 Mater Christi 6
7
Introdução Processos Comuns Contador de Programa Pilha de Execução Conjunto de Registradores Espaço de endereçamento Processo com várias linhas de controle Assemelham-se com processos comuns, só que em escala reduzida 1/8/2015 Mater Christi 7
8
Introdução Processo com várias linhas de controle Cada linha executa de forma sequencial Contador de Programa individual Pilha de execução individual Compartilhamento do processador Paralelismo real em sistemas Multiprocessador Capacidade de criar linhas filhas Podendo ocasionar bloqueios 1/8/2015 Mater Christi 8
9
Introdução Processo com várias linhas de controle Falta de independência Compartilhamento de variáveis globais Compartilhamento de endereço de memória Capacidade de ler, escrever e apagar a pilha de execução de outra linha Estados Executando, bloqueado, pronto ou terminado 1/8/2015 Mater Christi 9
10
Introdução 1/8/2015 Mater Christi 10 Itens por Linha de Controle Contador de Programa Pilha Conjunto de Registradores Estado Itens por Processo Espaço de endereçamento Variáveis Globais Arquivos Abertos Processos-Filhos Temporizadores Sinais Semáforos Informações para contabilização do uso dos recursos Conceitos relativos a linhas de controle e conceitos relativos a processos.
11
Introdução 1/8/2015 Mater Christi 11 Computador Processos Linhas de Controle Contador de Programa (a)Três Processos, cada um com sua própria linha de controle e (b) Um processo com três linhas de controle (a) (b)
12
Linhas de Controle Introdução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo 1/8/2015 Mater Christi 12
13
Utilização Linhas de controle combinam Conceitos de paralelismo Execução Sequencial Bloqueio durante execução de chamadas de sistema 1/8/2015 Mater Christi 13
14
Utilização Exemplo: Servidor de Arquivos A linha de controle (dispatcher), coleta requisições entrantes Exame da requisição, escolha de uma de uma linha de controle livre (bloqueada) (linha de trabalho) E transfere a requisição, escrevendo um ponteiro para a mensagem a ser tratada em uma palavra especial associada com cada linha de trabalho A linha dispacher acorda a linha de trabalho executando um UP no semáforo no qual ela está dormindo 1/8/2015 Mater Christi 14
15
Utilização Exemplo: Servidor de Arquivos Ao acordar a linha de trabalho verifica se a requisição pode ser satisfeita a partir do bloco armazenado na cache compartilhada Caso negativo, e sendo uma leitura, ela envia uma mensagem para o disco para obter o bloco necessário e vai dormir esperando a conclusão da operação O escalonador é chamado e outra linha de trabalho é ativada 1/8/2015 Mater Christi 15
16
Utilização Projeto de sistemas com Mais de uma linha de controle Apenas uma linha de controle Apenas uma linha de controle como uma máquina de estados Utiliza uma tabela para armazenar o estado corrente das requisições Simulação das linhas de controle – o estado da computação precisa ser salvo e restaurado explicitamente da tabela 1/8/2015 Mater Christi 16
17
Utilização As linhas de controle retém a ideia de processo sequencial que fica bloqueado devido as chamadas de sistema E permitem que exista um certo grau de paralelismo O bloqueio torna mais fácil a programação E o paralelismo aumenta a performance 1/8/2015 Mater Christi 17
18
Utilização ModeloCaracterísticas Linhas de controleParalelismo, chamadas de sistemas bloqueadas Processo com uma única linha de controle Não há paralelismo, chamadas de sistema bloqueadas Máquina de estados finitosParalelismo, chamadas de sistema não-bloqueadas 1/8/2015 Mater Christi 18 Três maneiras de se construir um servidor de arquivos
19
Utilização Outros modelos de projeto de sistemas Modelo do time Todas as linhas são iguais, e cada uma obtém e processa suas próprias requisições Não existe a linha de dispatcher Nesse caso algumas vezes um trabalho chega a linha de controle que não é capaz de manipular, especialmente no caso de linhas especializadas Utiliza-se uma fila de jobs, com os trabalhos pendentes Primeiramente a linha deve verificar a fila de jobs antes de olhar para a caixa do correio 1/8/2015 Mater Christi 19
20
Utilização Outros modelos de projeto de sistemas As linhas pode estar organizadas em forma de pipeline Nesse modelo uma linha gera alguns dados que são mandados para a próxima linha para que sejam processados Os dados continuam passando de linha para linha com o processamento seguindo a cada passagem 1/8/2015 Mater Christi 20
21
Introdução 1/8/2015 Mater Christi 21 Três organizações das linhas de controle em um processo: (a)Modelo da dispatcher/trabalhadora (b)Modelo do time (c) Modelo de pipeline (a)(b)(c) Caixa de Correio Chegada de Requisições de Trabalho Kernel Cache compartilhada
22
Utilização Outras utilidades para linhas de controle Programação de processos-clientes, no modelo cliente-servidor Exemplo: quando há a necessidade de replicar um arquivo entre servidores haverá uma linha para cada servidor Manipulação dos sinais – interrupções A linha permanece bloqueada até a chegada de um sinal Elimina interrupções no nível de usuário 1/8/2015 Mater Christi 22
23
Utilização Outras utilidades para linhas de controle Linha de controle facilitam a programação Usando processos paralelos As linhas de controle em um único espaço de endereçamento executam realmente em paralelo em sistemas multiprocessador 1/8/2015 Mater Christi 23
24
Linhas de Controle Introdução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo 1/8/2015 Mater Christi 24
25
Projeto Pacotes de linhas de controle Conjunto de primitivas (chamadas de rotinas de biblioteca) disponíveis ao usuário Aspectos relativos a implementação Gerência das linhas de controle Sincronização Escalonamento 1/8/2015 Mater Christi 25
26
Projeto Gerência das Linhas de Controle Linhas estáticas – quando a escolha do número linhas de controle é feita quando o programa é escrito e/ou compilado Alocação de pilhas de tamanho fixo Simplicidade, porém inflexível Linhas dinâmicas – criadas e destruídas durante a execução Utiliza um ponteiro para o código, especifica o tamanho da pilha, e faz menção a outros parâmetros, como prioridade Pode-se criar tantas linha quanto forem necessárias 1/8/2015 Mater Christi 26
27
Projeto Uma linha de controle pode terminar de duas maneiras Por conta própria E por ação de uma entidade externa No exemplo do servidor de arquivos as linhas nunca são terminadas Como as linhas compartilham uma memória em comum Os dados compartilhados normalmente são programados usando regiões críticas Para evitar que várias linhas acessem o mesmo dados ao mesmo tempo 1/8/2015 Mater Christi 27
28
Projeto Sincronização Regiões críticas são implementadas facilmente usando semáforos, monitores e construções similares Linhas de controle utilizam uma construção mutex – um tipo de semáforo binário Uma variável mutex apresenta dois estado Aberto ou fechado Existem três operações feitas sobre linhas de controle: Lock, Unlock, TryLock 1/8/2015 Mater Christi 28
29
Projeto Sincronização Lock – tenta fechar uma variável mutex Quando uma operação é executada a variável estará aberta e será fechada em uma operação única e atômica Unlock – tentar abrir uma variável mutex Quando uma ou mais linhas estão esperando na fila uma delas é ativada Trylock – semelhante a lock, porém retorna um código de indicação em caso de sucesso ou de falha 1/8/2015 Mater Christi 29
30
Projeto Sincronização Variáveis de condição Similar a variáveis de sincronização em monitores Semelhante as variáveis mutex Diferencia-se no tempo de bloqueio, cujos são mais longos A exemplo pela espera de determinado recurso 1/8/2015 Mater Christi 30
31
Projeto Escalonamento Utilização de diversos algoritmos Prioridade Round-Robin 1/8/2015 Mater Christi 31
32
Linhas de Controle Introdução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo 1/8/2015 Mater Christi 32
33
Linhas de Controle Introdução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo 1/8/2015 Mater Christi 33
34
Linhas de Controle Introdução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo 1/8/2015 Mater Christi 34
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.