Buscar

Sistemas Distribuídos e Paralelos

Prévia do material em texto

1
Sistema Distribuído
Conjunto de máquinas (CPU + memória) 
interligadas em rede. 
Processador 1
Memória 1
Processador 2
Memória 2
Processador 3
Memória 3
Rede
Sistema Distribuído
Sistema operacional distribuído trata este 
conjunto como um único sistema 
computacional.
Processador 1
Memória 1
rede
Estação 1 Estação 2 Estação 3
Disco Disco Disco
Processador 2
Memória 2
Processador 3
Memória 3
Aplicações Distribuídas
Aplicações que “se espalham” por várias 
máquinas.
aplicações concorrentes onde cada processo que 
compõe a aplicação pode ser executado em uma 
máquina arbitrária
Em sistemas distribuídos: qualquer aplicação 
pode ser executada de forma distribuída.
Em sistemas operacionais convencionais: 
aplicação deve ser programada de forma 
explicitamente distribuída. 
Conceitos Básicos
Paralelismo:
vários processos executando simultaneamente em vários 
computadores compartilhando ou não memória
Só é possível em Sistemas multiprocessadores.
Pseudo-Paralelismo (Paralelismo Abstrato):
vários processos compartilhando um mesmo processador 
ou outros recursos de um computador.
Ilusão de que vários programas estão rodando ao mesmo 
tempo
2
Sistemas Paralelos
Barramento
Cache
Processo A
Cache
Processo B
Cache
Processo C
Sistema Operacional
Fila Execução: D, E
A (executando)
B (executando)
C (executando)
Disco
D (pronto)
E (pronto)
Memória
Sistema Distribuído X Sistema 
Paralelo
Processador 1
Memória 1
Processador 2
Memória 2
Processador 3
Memória 3
Red
Sistema Distribuído:
Sistema Paralelo ou Memória Compartilhada:
Processador 1 Processador 2 Processador 3
Memória
Sistema todo age como um sistema clássico de processador único
Paralelização de Problemas
Diminuição do tempo necessário para obter 
o resultado de uma computação;
Um programa paralelo poderia igualmente 
ser executado em um sistema distribuído ou 
em uma máquina paralela;
Execução em sistema distribuído permite 
que o recurso de processamento tenha 
várias funções;
Viabilidade depende da quantidade de 
comunicação necessária.
Sistemas Operacionais de Rede
Conjunto de máquinas interligadas em rede.
Sistema operacional inclui funções para 
comunicação remota
Processador 1
Memória 1
rede
Estação 1 Estação 2 Estação 3
Disco Disco Disco
Processador 2
Memória 2
Processador 3
Memória 3
Executar processo X na estação 2
3
Sistemas Operacionais de Rede
Login Remoto
TELNET
Transferência de Arquivos
FTP
SO de Rede X SO Distribuído
Sistema Distribuído
Conjunto de Computadores que age como uma 
única máquina (Sistema Coeso)
Requisito Fundamental: Transparência
Sistema em Rede
Coleção de computadores independentes
Concorrência
Programa Concorrente:
Concorrência = várias tarefas em progresso ao mesmo 
tempo
programas executados em paralelismo ou pseudo-
paralelismo
Tipicamente, em pseudo-paralelismo o processo não 
tem controle sobre o instante em que perderá o 
controle da CPU
Exemplos de Concorrência
Sistema 
Operacional
gerenciamento de 
arquivos 
gerenciamento de 
memória
suporte a 
comunicação
aplicação: acesso a base de dados
administrador 
consultando log
programa batch 
atualizando dados
usuário interativo 
consultando base
4
Conceitos Básicos
Processador 1
Memória 1
Processador 2
Memória 2
Processador 3
Memória 3
Sistema Distribuído:
Sistema Paralelo ou Memória Compartilhada:
Processador 1 Processador 2 Processador 3
Memória
Sistemas Distribuídos
Finalidade
Compartilhamento de Dados
Compartilhamento de Recursos (Periféricos, 
CPU)
Comunicação entre Pessoas
Flexibilidade
Sistemas Distribuídos
Características
Mecanismo de Comunicação entre Processos
Kernels idênticos em cada máquina do 
Sistema
Mesmo Gerenciamento de Processos em 
todas as máquinas
Mesmo Sistema de Arquivos
Sistemas Distribuídos
Problemas
Pouco Software
Dependência da Rede
Saturação e Falhas na rede afetam o sistema
Segurança
O fácil acesso aos dados também se aplica aos dados 
secretos
5
Sistemas Distribuídos
Requisitos de Software
Transparência
Flexibilidade
Confiabilidade
Desempenho
Escalabilidade
Transparência
A Nível de Usuário
A Nível do Programador
Transparência
Localização
Migração
Replicação
Concorrência
Paralelismo
Transparência de Localização
Usuário não precisa saber onde se encontra o 
recurso
Nome do Recurso não incorpora a sua 
localização
arq1.c
arq1.c arq1.c
oxum oxalá obaluaê logum-ede
6
Transparência de Migração
Liberdade de Migração
Sem mudança de nome
Sem conhecimento do usuário
arq1.c
arq1.c arq1.c
oxum oxalá obaluaê logum-ede
arq1.c
Transparência de Replicação
Usuário não precisa saber da replicação
arq1.c
arq1.c arq1.c
oxum oxalá obaluaê logum-ede
Transparência de Concorrência
Sistema se encarrega da Exclusão Mútua ao 
recurso compartilhado
Transparência de Paralelismo
Sistema Operacional + Compilador efetivem 
o paralelismo
7
Flexibilidade
Usuário
Microkernel
Servidor de 
Processos
Microkernel
Servidor de 
Diretório
Microkernel
Servidor de 
Arquivos
Microkernel
Rede
Kernel Monolítico
Micro Kernel
Usuário
kernel
Monolítico
Inclui Arquivos,
Diretórios e 
Gerenciamento de Processos
Kernel Monolítico x Microkernel
Vantagens do MicroKernel
Interface modular para cada serviço
simplicidade no adicionamento ou mudança de 
um serviço 
Flexibilidade
Vantagem do Kernel Monolítico
Desempenho
Confiabilidade
Disponibilidade
Segurança
Tolerância a Falhas
Classes de Aplicações 
Distribuídas
Aplicações Inerentemente Distribuídas 
Aumento de Desempenho 
Aplicações Tolerantes a Falha
Aplicações usando especialização funcional
8
Aplicações de Natureza 
Distribuída
sistemas para comunicação: correio 
eletrônico, teleconferência, www, etc;
programas para manutenção da própria 
rede: algoritmos de roteamento, 
gerenciamento da rede, etc;
sistemas operacionais distribuídos;
ambientes de trabalho em grupo: 
desenvolvimento de software e de 
documentos;
jogos...
Distribuição Funcional
Determinadas máquinas podem ter 
configurações de hardware ou software mais 
apropriadas para execução de dadas tarefas:
sistemas de arquivos
processamento numérico
capacidade de memória
Requisitos para Suporte a 
Programação Distribuída
controle do uso de múltiplos processadores
cooperação entre os processadores 
(comunicação e sincronização)
potencial para detectar e recuperar uma 
falha parcial do Sistema
Processo
Programa em execução
Conceito central de Sistemas Operacionais
Possui todas as informações necessárias 
para executar um programa:
um programa executável
seus dados 
seu contador de programa
sua pilha de execução
registradores
etc.
9
Processo
Em um Sistema de Tempo Comparilhado
(Timesharing) periodimente o SO pára de executar 
um processo e começa a executar outro processo 
(realiza preempção)
Todas as informações sobre cada processo são 
armazenadas na Tabela de Processos
A
B
C
D
Tempo
Processos
Processo
Processos Daemon: (UNIX)
é um processo que executa em “background” 
esperando que algum evento ocorra para que ele 
possa realizar alguma tarefa 
Exemplo:
Daemon de Impressão

Continue navegando