redes e sistemas distribuídos ii – cód. 30127 prof. msc. ronnison reges vidal

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

Upload: orlando-jonathan-rijo-bennert

Post on 07-Apr-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

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

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

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

Redes e Sistemas Distribuídos IIComunicação e Sincronização de Processos

27/04/23

Mater Christi

2

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

Roteiro Linhas de Controle Alocação do Processador Sincronização através do Clock Exclusão Mútua Algoritmos Eletivos Transações Atômicas

27/04/23

Mater Christi

3

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

Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo

27/04/23

Mater Christi

4

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

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

27/04/23

Mater Christi

5

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

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

27/04/23

Mater Christi

6

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

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

27/04/23

Mater Christi

7

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

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

27/04/23

Mater Christi

8

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

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

27/04/23

Mater Christi

9

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

Introdução

27/04/23

Mater Christi

10

Itens por Linha de ControleContador de ProgramaPilhaConjunto de RegistradoresEstado

Itens por ProcessoEspaço de endereçamentoVariáveis GlobaisArquivos AbertosProcessos-FilhosTemporizadoresSinaisSemáforosInformações para contabilização do uso dos recursos

Conceitos relativos a linhas de controle e conceitos relativos a processos.

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

Introdução

27/04/23

Mater Christi

11

Computador 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)

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

Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo

27/04/23

Mater Christi

12

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

Utilização Linhas de controle combinam

Conceitos de paralelismo Execução Sequencial Bloqueio durante execução de chamadas

de sistema

27/04/23

Mater Christi

13

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

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

27/04/23

Mater Christi

14

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

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

27/04/23

Mater Christi

15

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

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

27/04/23

Mater Christi

16

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

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

27/04/23

Mater Christi

17

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

UtilizaçãoModelo CaracterísticasLinhas de controle Paralelismo, chamadas de

sistemas bloqueadasProcesso com uma única linha de controle

Não há paralelismo, chamadas de sistema bloqueadas

Máquina de estados finitos Paralelismo, chamadas de sistema não-bloqueadas

27/04/23

Mater Christi

18

Três maneiras de se construir um servidor de arquivos

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

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

27/04/23

Mater Christi

19

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

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

27/04/23

Mater Christi

20

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

Introdução

27/04/23

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 deRequisições deTrabalho

KernelCachecompartilhada

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

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

27/04/23

Mater Christi

22

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

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

27/04/23

Mater Christi

23

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

Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo

27/04/23

Mater Christi

24

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

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

27/04/23

Mater Christi

25

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

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

27/04/23

Mater Christi

26

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

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

27/04/23

Mater Christi

27

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

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

27/04/23

Mater Christi

28

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

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

27/04/23

Mater Christi

29

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

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

27/04/23

Mater Christi

30

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

Projeto Escalonamento

Utilização de diversos algoritmos Prioridade Round-Robin

27/04/23

Mater Christi

31

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

Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo

27/04/23

Mater Christi

32

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

Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo

27/04/23

Mater Christi

33

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

Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo

27/04/23

Mater Christi

34