A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal.

Apresentações semelhantes


Apresentação em tema: "Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal."— Transcrição da apresentação:

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


Carregar ppt "Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal."

Apresentações semelhantes


Anúncios Google