View
217
Download
1
Embed Size (px)
Citation preview
Redes e Sistemas Distribuídos II – Cód. 30127Prof. MSc. Ronnison Reges Vidal
Redes e Sistemas Distribuídos IIComunicação e Sincronização de Processos
27/04/23
Mater Christi
2
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
Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo
27/04/23
Mater Christi
4
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
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
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
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
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
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.
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)
Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo
27/04/23
Mater Christi
12
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
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
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
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
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
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
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
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
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
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
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
Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo
27/04/23
Mater Christi
24
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
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
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
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
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
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
Projeto Escalonamento
Utilização de diversos algoritmos Prioridade Round-Robin
27/04/23
Mater Christi
31
Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo
27/04/23
Mater Christi
32
Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo
27/04/23
Mater Christi
33
Linhas de ControleIntrodução, Utilização, Projeto, Implementação, Chamadas Remotas, Exemplo
27/04/23
Mater Christi
34