sistemas operacionais distribuídos apresentado por: júlio cezar estrella júlio cezar estrella...

28
Sistemas Operacionais Distribuídos Apresentado por: Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Wanderlei Pereira Alves Junior Junior Orientação: Orientação: Prof. Dr. Norian Prof. Dr. Norian Marranghello Marranghello Mecanismos de Mecanismos de Linguagens e Threads Linguagens e Threads

Upload: maria-julia-flores-costa

Post on 07-Apr-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Sistemas Operacionais Distribuídos

Apresentado por:Apresentado por: Júlio Cezar EstrellaJúlio Cezar Estrella Wanderlei Pereira Alves JuniorWanderlei Pereira Alves Junior

Orientação:Orientação: Prof. Dr. Norian MarranghelloProf. Dr. Norian Marranghello

Mecanismos de Linguagens Mecanismos de Linguagens e Threadse Threads

Page 2: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Tópicos Abordados Introdução: Classificação dos Sistemas OperacionaisIntrodução: Classificação dos Sistemas Operacionais Surgimento dos Sistemas Operacionais DistribuídosSurgimento dos Sistemas Operacionais Distribuídos O que é um SO Distribuído?O que é um SO Distribuído? Threads Control BlocksThreads Control Blocks Comparação entre ramificações e processosComparação entre ramificações e processos Custo de criação e de implementação de ramificaçõesCusto de criação e de implementação de ramificações O modelo cliente/servidorO modelo cliente/servidor Mecanismos de SincronizaçãoMecanismos de Sincronização Especificação de Atividades ConcorrentesEspecificação de Atividades Concorrentes Sincronização e Comunicação entre processosSincronização e Comunicação entre processos Execução não determinística de processosExecução não determinística de processos

Page 3: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Tópicos Abordados Estruturas de programasEstruturas de programas Estruturas de dadosEstruturas de dados Estruturas de controleEstruturas de controle Sincronização de variáveis compartilhadasSincronização de variáveis compartilhadas SemáforosSemáforos MonitoresMonitores Regiões críticas condicionaisRegiões críticas condicionais Path ExpressionsPath Expressions Sincronização por passagem de mensagensSincronização por passagem de mensagens Chamada remota a procedimentosChamada remota a procedimentos Ada RendevouzAda Rendevouz Processos ConcorrentesProcessos Concorrentes

Page 4: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Introdução Classificação dos sistemas operacionais quanto ao Classificação dos sistemas operacionais quanto ao

grau de acoplamentograu de acoplamento:

– Centralizados,Centralizados, – Distribuídos, Distribuídos, – Em Rede Em Rede – AutônomosAutônomos

Critérios de classificação:Critérios de classificação:

AutonomiaAutonomia Transparência Transparência

InteroperabilidadeInteroperabilidade

Page 5: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Introdução O que fez surgir os primeiros sistemas distribuídosO que fez surgir os primeiros sistemas distribuídos?

Avanços na tecnologiaAvanços na tecnologia Redes de alta velocidadeRedes de alta velocidade

Microprocessadores poderososMicroprocessadores poderosos

O que atrapalha o desenvolvimento dessa tecnologia?O que atrapalha o desenvolvimento dessa tecnologia?

Software!Software!

Page 6: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Sistemas Operacionais Distribuídos

Motivação:Motivação:

necessidade de compartilhar recursos e informaçõesnecessidade de compartilhar recursos e informações

redução de custos de estaçõesredução de custos de estações

proliferação do uso de redesproliferação do uso de redes

maturação das tecnologias de softwarematuração das tecnologias de software

Page 7: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

O que é um Sistema Operacional Distribuído

Vantagens de um sistema distribuído sobre um sistema Vantagens de um sistema distribuído sobre um sistema centralizadocentralizado:

Melhor relação custo/benefícioMelhor relação custo/benefício Facilidade de resolver problemasFacilidade de resolver problemas Maior escalabilidadeMaior escalabilidade Maior confiabiliadeMaior confiabiliade

Vantagens sobre estações de trabalho independentes:Vantagens sobre estações de trabalho independentes:

Compartilhamento de dados e serviçosCompartilhamento de dados e serviços Melhor comunicação pessoa-a-pessoaMelhor comunicação pessoa-a-pessoa FlexibilidadeFlexibilidade

Page 8: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

O que é um Sistema Operacional Distribuído

Desvantagens de um sistema distribuídoDesvantagens de um sistema distribuído

Falta de software apropriadoFalta de software apropriado

Falhas na rede de comunicaçãoFalhas na rede de comunicação

Necessidade de se tolerar faltasNecessidade de se tolerar faltas

SegurançaSegurança

Page 9: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

O que é um Sistema Operacional Distribuído

Considerações para o projeto de um sistema Considerações para o projeto de um sistema operacional distribuído:operacional distribuído:

EficiênciaEficiência Robustez Robustez

FlexibilidadeFlexibilidade ConsistênciaConsistência

TransparênciaTransparência

DesempenhoDesempenho:: Associado a possibilidade de migração Associado a possibilidade de migração dos dados na rede de comunicaçãodos dados na rede de comunicação

Page 10: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Threads O que são threads?O que são threads?

Quais suas funcionalidades?Quais suas funcionalidades?

MultithreadsMultithreads

Exemplo:Exemplo: Netscape com Hot Java

Page 11: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Comparação entre ramificações e processos DiferençasDiferenças Processos Processos Possui 3 estados:Possui 3 estados:

PRONTOPRONTO ATIVOATIVO BLOQUEADOBLOQUEADO

ThreadsThreads Inclui um quarto estado:

CONCLUÍDOCONCLUÍDO

Page 12: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Custo de criação e implementação de

ramificações Onde são implementados?Onde são implementados?

Qual o custo de criação e implementação?Qual o custo de criação e implementação?

AplicaçõesAplicações

Processos servidores que prestam serviços à Processos servidores que prestam serviços à processos clientesprocessos clientes

Tipos de ramificaçõesTipos de ramificações

Estáticas Estáticas DinâmicasDinâmicas

Page 13: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Ramificações no servidor ou no núcleo

Onde deve ser implementada a ramificação?Onde deve ser implementada a ramificação?

Quais as vantagens e desvantagens em cada um dos Quais as vantagens e desvantagens em cada um dos casos?casos?

Qual a importância no projeto de ramificações de fluxo Qual a importância no projeto de ramificações de fluxo de controle?de controle?

Page 14: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Algumas Aplicações Multithreads

Programação Reativa Programação Reativa

Programação Interativa Programação Interativa

Paralelismo físico/ distribuiçãoParalelismo físico/ distribuição

Page 15: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Ramificações em multiprocessadores

Como os threads são executados em multiprocessadores?

Como fica o desempenho em sistemas multiprocessados?

Page 16: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Modelo Cliente-Servidor

Não baseado no estabelecimento de uma conexãoNão baseado no estabelecimento de uma conexão

Vantagens do modelo cliente-servidorVantagens do modelo cliente-servidor

Desvantagens do modelo cliente-servidorDesvantagens do modelo cliente-servidor

Primitivas de comunicaçãoPrimitivas de comunicação

Page 17: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Modelo Cliente-Servidor Modelo mais usado para aplicações Modelo mais usado para aplicações

distribuídas não paralelasdistribuídas não paralelas

Um processo servidor está sempre a espera Um processo servidor está sempre a espera de comunicaçãode comunicação

O processo cliente tem a iniciativa de começar O processo cliente tem a iniciativa de começar a comunicação, quando deseja algum serviçoa comunicação, quando deseja algum serviço

Page 18: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Processos Concorrentes Execução em paraleloExecução em paralelo

Não implica em execução simultâneaNão implica em execução simultânea

Casos de execução concorrente:Casos de execução concorrente:

Pseudo-ParalelaPseudo-Paralela

ParalelaParalela

DistribuídaDistribuída

Page 19: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Processos Concorrentes Objetivos:Objetivos:

Reduzir o tempo total de processamentoReduzir o tempo total de processamento

Aumentar a confiabilidade e a disponibilidadeAumentar a confiabilidade e a disponibilidade

Implementar aplicações distribuídasImplementar aplicações distribuídas

Page 20: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Sincronização e Comunicação de

Processos Variáveis Compartilhadas:Variáveis Compartilhadas:

SemáforoSemáforo MonitorMonitor Região Crítica CondicionalRegião Crítica Condicional Expressão de CaminhoExpressão de Caminho

Passagem de MensagemPassagem de Mensagem Processamento Seqüencial ConcorrenteProcessamento Seqüencial Concorrente Chamada a Procedimentos RemotosChamada a Procedimentos Remotos RendezvousRendezvous

Page 21: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Construções de Linguagens

Estrutura do programaEstrutura do programa

Estrutura de dadosEstrutura de dados

Estrutura de controleEstrutura de controle

Chamada a procedimentos e ao sistemaChamada a procedimentos e ao sistema

Page 22: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Semáforo É uma variável inteira positivaÉ uma variável inteira positiva

Primitivas:Primitivas: PP VV

Classificação:Classificação: Semáforos bináriosSemáforos binários Semáforos de contagemSemáforos de contagem

Page 23: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Semáforo

Primitivas:Primitivas:

P(S) : se S > 0 então S:=S-1P(S) : se S > 0 então S:=S-1

senão Bloqueie o processo na fila senão Bloqueie o processo na fila do semáforodo semáforo

V(S) : se algum processo está bloqueado V(S) : se algum processo está bloqueado no semáforo S no semáforo S

então desbloquear o processoentão desbloquear o processo

senão S:=S+1senão S:=S+1

Page 24: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Monitor MONITORESMONITORES Primitiva de alto nívelPrimitiva de alto nível

Conjunto de procedimentos variáveis e estruturasConjunto de procedimentos variáveis e estruturas

apenas 1 processo pode estar ativo dentro do monitorapenas 1 processo pode estar ativo dentro do monitor

Variáveis de Condição, WAIT e SIGNALVariáveis de Condição, WAIT e SIGNAL

Page 25: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Regiões Críticas Condicionais

Versão estruturada de semáforosVersão estruturada de semáforos

Região Crítica é expressa por region-begin-endRegião Crítica é expressa por region-begin-end

Condição testada pelo atributo Condição testada pelo atributo whenwhen

Page 26: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Expressão de Caminho

Path 1:([read], write) end

1: número de atividades simultaneas nos parenteses

Chaves: leitores podem ser concorrentes

Page 27: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Sincronização por Passagem de Mensagem

Forma de comunicação em sistemas distribuídosForma de comunicação em sistemas distribuídos

AssíncronaAssíncrona

send não bloqueiasend não bloqueia

SíncronaSíncrona

send bloqueiasend bloqueia

Page 28: Sistemas Operacionais Distribuídos Apresentado por: Júlio Cezar Estrella Júlio Cezar Estrella Wanderlei Pereira Alves Junior Wanderlei Pereira Alves Junior

Chamada remota a procedimentos

Objetivo: Procedimentos em outras máquinas Objetivo: Procedimentos em outras máquinas chamados como procedimentos locaischamados como procedimentos locais

Facilita implementação de aplicações cliente-servidorFacilita implementação de aplicações cliente-servidor

Esconde do programador detalhes de comunicação Esconde do programador detalhes de comunicação pela redepela rede