sistemas operacionais distribuídos apresentado por: júlio cezar estrella júlio cezar estrella...
TRANSCRIPT
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
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
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
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
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!
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
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
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
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
Threads O que são threads?O que são threads?
Quais suas funcionalidades?Quais suas funcionalidades?
MultithreadsMultithreads
Exemplo:Exemplo: Netscape com Hot Java
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
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
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?
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
Ramificações em multiprocessadores
Como os threads são executados em multiprocessadores?
Como fica o desempenho em sistemas multiprocessados?
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
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
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
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
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
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
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
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
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
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
Expressão de Caminho
Path 1:([read], write) end
1: número de atividades simultaneas nos parenteses
Chaves: leitores podem ser concorrentes
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
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