Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Sistemas Operacionais Distribuídos
Mecanismos de Linguagens e Threads Apresentado por: Júlio Cezar Estrella Wanderlei Pereira Alves Junior Orientação: Prof. Dr. Norian Marranghello
2
Tópicos Abordados Introdução: Classificação dos Sistemas Operacionais
Surgimento dos Sistemas Operacionais Distribuídos O que é um SO Distribuído? Threads Control Blocks Comparação entre ramificações e processos Custo de criação e de implementação de ramificações O modelo cliente/servidor Mecanismos de Sincronização Especificação de Atividades Concorrentes Sincronização e Comunicação entre processos Execução não determinística de processos
3
Tópicos Abordados Estruturas de programas Estruturas de dados
Estruturas de controle Sincronização de variáveis compartilhadas Semáforos Monitores Regiões críticas condicionais Path Expressions Sincronização por passagem de mensagens Chamada remota a procedimentos Ada Rendevouz Processos Concorrentes
4
Introdução Autonomia Centralizados, Distribuídos, Em Rede Autônomos
Classificação dos sistemas operacionais quanto ao grau de acoplamento: Centralizados, Distribuídos, Em Rede Autônomos Critérios de classificação: Autonomia Transparência Interoperabilidade
5
Introdução Avanços na tecnologia Redes de alta velocidade
O que fez surgir os primeiros sistemas distribuídos? Avanços na tecnologia Redes de alta velocidade Microprocessadores poderosos O que atrapalha o desenvolvimento dessa tecnologia? Software!
6
Sistemas Operacionais Distribuídos
Motivação: necessidade de compartilhar recursos e informações redução de custos de estações proliferação do uso de redes maturação das tecnologias de software
7
O que é um Sistema Operacional Distribuído
Vantagens de um sistema distribuído sobre um sistema centralizado: Melhor relação custo/benefício Facilidade de resolver problemas Maior escalabilidade Maior confiabiliade Vantagens sobre estações de trabalho independentes: Compartilhamento de dados e serviços Melhor comunicação pessoa-a-pessoa Flexibilidade
8
O que é um Sistema Operacional Distribuído
Desvantagens de um sistema distribuído Falta de software apropriado Falhas na rede de comunicação Necessidade de se tolerar faltas Segurança
9
O que é um Sistema Operacional Distribuído
4/21/2017 O que é um Sistema Operacional Distribuído Considerações para o projeto de um sistema operacional distribuído: Eficiência Robustez Flexibilidade Consistência Transparência Desempenho: Associado a possibilidade de migração dos dados na rede de comunicação
10
Threads O que são threads? Quais suas funcionalidades? Multithreads
Exemplo: Netscape com Hot Java
11
Comparação entre ramificações e processos
4/21/2017 Comparação entre ramificações e processos Diferenças Processos Possui 3 estados: PRONTO ATIVO BLOQUEADO Threads Inclui um quarto estado: CONCLUÍDO
12
Custo de criação e implementação de ramificações
Onde são implementados? Qual o custo de criação e implementação? Aplicações Processos servidores que prestam serviços à processos clientes Tipos de ramificações Estáticas Dinâmicas
13
Ramificações no servidor ou no núcleo
Onde deve ser implementada a ramificação? Quais as vantagens e desvantagens em cada um dos casos? Qual a importância no projeto de ramificações de fluxo de controle?
14
Algumas Aplicações Multithreads
Programação Reativa Programação Interativa Paralelismo físico/ distribuição
15
Ramificações em multiprocessadores
Como os threads são executados em multiprocessadores? Como fica o desempenho em sistemas multiprocessados?
16
Modelo Cliente-Servidor
Não baseado no estabelecimento de uma conexão Vantagens do modelo cliente-servidor Desvantagens do modelo cliente-servidor Primitivas de comunicação
17
Modelo Cliente-Servidor
Modelo mais usado para aplicações distribuídas não paralelas Um processo servidor está sempre a espera de comunicação O processo cliente tem a iniciativa de começar a comunicação, quando deseja algum serviço
18
Processos Concorrentes
Execução em paralelo Não implica em execução simultânea Casos de execução concorrente: Pseudo-Paralela Paralela Distribuída
19
Processos Concorrentes
Objetivos: Reduzir o tempo total de processamento Aumentar a confiabilidade e a disponibilidade Implementar aplicações distribuídas
20
Sincronização e Comunicação de Processos
Variáveis Compartilhadas: Semáforo Monitor Região Crítica Condicional Expressão de Caminho Passagem de Mensagem Processamento Seqüencial Concorrente Chamada a Procedimentos Remotos Rendezvous
21
Construções de Linguagens
Estrutura do programa Estrutura de dados Estrutura de controle Chamada a procedimentos e ao sistema
22
Semáforo É uma variável inteira positiva Primitivas: P V
Classificação: Semáforos binários Semáforos de contagem
23
Semáforo Primitivas: P(S) : se S > 0 então S:=S-1
senão Bloqueie o processo na fila do semáforo V(S) : se algum processo está bloqueado no semáforo S então desbloquear o processo senão S:=S+1
24
Monitor MONITORES Primitiva de alto nível
Conjunto de procedimentos variáveis e estruturas apenas 1 processo pode estar ativo dentro do monitor Variáveis de Condição, WAIT e SIGNAL
25
Regiões Críticas Condicionais
4/21/2017 Regiões Críticas Condicionais Versão estruturada de semáforos Região Crítica é expressa por region-begin-end Condição testada pelo atributo when
26
Expressão de Caminho Path 1:([read], write) end
1: número de atividades simultaneas nos parenteses Chaves: leitores podem ser concorrentes
27
Sincronização por Passagem de Mensagem
4/21/2017 Sincronização por Passagem de Mensagem Forma de comunicação em sistemas distribuídos Assíncrona send não bloqueia Síncrona send bloqueia
28
Chamada remota a procedimentos
Objetivo: Procedimentos em outras máquinas chamados como procedimentos locais Facilita implementação de aplicações cliente-servidor Esconde do programador detalhes de comunicação pela rede
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.