Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064



Documentos relacionados
SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Sistemas Distribuídos

Processos (Threads,Virtualização e Migração de Código)

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Sistemas Distribuídos

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Sistema Operacional Correção - Exercício de Revisão

Processos e Threads (partes I e II)

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Programação Concorrente Processos e Threads

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Operacionais

Profs. Deja e Andrei

Sistemas Distribuídos

Sistemas Operacionais Processos e Threads

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Sistemas Operacionais

Ciência de Computadores Sistemas Distribuídos e Móveis

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Tipos de Servidores. Servidores com estado

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Figura 01 Kernel de um Sistema Operacional

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Prof. José Maurício S. Pinheiro UniFOA

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Estruturas do Sistema de Computação

SISTEMAS OPERACIONAIS

Sistemas Operacionais Gerência de Dispositivos

Sistemas Distribuídos

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS

Sistemas Distribuídos

8 Threads. 8.1 Introdução

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Threads. 8 de janeiro de 2015

Arquitetura dos Sistemas de Informação Distribuídos

Sistemas Operacionais

Virtualização Gerencia de Redes Redes de Computadores II

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Sistemas Operacionais

UNIVERSIDADE. Sistemas Distribuídos

SISTEMAS OPERACIONAIS

Escalonamento no Linux e no Windows NT/2000/XP

Programação de Sistemas

Programação de Sistemas

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Capítulo 8 Arquitetura de Computadores Paralelos

SISTEMAS OPERACIONAIS

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Organização e Arquitetura de Computadores

MODELO CLIENTE SERVIDOR

Introdução ao Modelos de Duas Camadas Cliente Servidor

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

ESTUDO DE CASO WINDOWS VISTA

Infra-Estrutura de Software. Introdução. (cont.)

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais

3 SCS: Sistema de Componentes de Software

Estrutura, Processos e Threads

SISTEMAS DISTRIBUÍDOS


Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Arquitetura de Sistemas Operativos

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 1)

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução aos Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

Arquitetura e Organização de Computadores I

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Fundamentos de Sistemas Computacionais Introdução

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Arquitetura de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Arquitetura e Organização de Computadores

Aula 02 Conceitos básicos elipse. INFORMÁTICA INDUSTRIAL II ENG1023 Profª. Letícia Chaves Fonseca

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Processos. Adão de Melo Neto

Transcrição:

Sistemas Distribuídos Professora: Ana Paula Couto DCC 064

Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem em relação a esta abordagem? Nem todo nó em uma rede P2P deve se tornar um superpar. Cite requisitos razoáveis que um superpar deve ter.

Processos- Threads,Virtualização Capítulo 3

Agenda Processos Threads Threads e sistemas não distribuídos Threads e sistemas distribuídos Virtualização Virtualização em sistemas distribuídos Arquiteturas de máquinas virtuais

Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa Para monitorar os processadores virtuais o sistema operacional tem uma tabela de processos que contém entradas para armazenar valores de registradores de CPU, mapas de memória, arquivos abertos, etc.

Processos Processos: Programa em execução Sistema Operacional é responsável por assegurar que processos independentes não afetem (modos intencional, malicioso ou acidental) a correção do comportamento dos outros processos sendo executados Transparência no compartilhamento da mesma CPU e outros recursos de hardware

Processos Transparência implica em custo: Criação de espaço de endereços completamente independente Chavear a CPU entre dois processos Salvar o contexto da CPU Troca de informações entre disco e memória principal

Processos Em sistemas tradicionais, cada processo possui o seu próprio espaço de endereçamento e um único fluxo de execução

Processos No entanto, em alguns casos é desejável haver diversos fluxos de execução compartilhando um único espaço de endereçamento,ou seja, mesma região de memória

Único fluxo de execução? Um servidor de arquivos deve esperar por requisições feitas ao disco. O fluxo de execução que fez a requisição é bloqueado aguardando a resposta. PERDA DE DESEMPENHO

Solução Vários Fluxos de Execução Se o servidor de arquivos é implementado usando diferentes fluxos de execução, outras requisições de clientes podem ser processadas, enquanto o primeiro fluxo aguarda a resposta do disco MELHOR VAZÃO (THROUGHPUT) E GANHO DE DESEMPENHO

Processos versus Threads Processos Thread PC

Threads Cada um dos fluxos de execução de um processo é chamado de thread Threads podem ser vistas como mini-processos Cada thread executa sua própria porção de código Threads compartilham a CPU do mesmo modo que diferentes processos (timesharing)

Threads em sistemas nãodistribuídos Threads que fazem parte de um mesmo processo não são independentes como o caso de diferentes processos TODOS threads em um mesmo processo possuem mesma região de memória, compartilhando as mesmas variáveis globais Um determinado thread pode ler, escrever ou mudar a pilha de dados de um outro thread Proteção deve ser feita pela 'aplicação'

Threads em sistemas nãodistribuídos Threads podem estar em diferentes estados: executando, bloqueado, pronto ou finalizado Itens Por Thread PC Pilha Registradores Threads Filhas Estado Itens Por Processo Espaço de endereçamento Variáveis Globais Arquivos abertos Processos filhos Sinais Timers Informações da Conta Semáforos

Threads em sistemas nãodistribuídos Principais Vantagens: 1) Explorar paralelismo ao executar um programa em um sistema multiprocessador Ex.: Cada thread é designado a uma CPU, enquanto dados compartilhados são armazenados em memória compartilhada 1) Grandes aplicações, desenvolvidas como um conjunto de programas cooperativos Evita chaveamento entre diferentes processos devido comunicação através de Interprocess Communication (IPC)

Threads em sistemas nãodistribuídos Threads comunicação pode ser feita com a utilização de dados Compartilhados Chaveamento espaço de usuário

Implementação de Threads em Sistemas não-distribuídos Implementação no nível usuário Threads rodam sobre o runtime system coleção de procedimentos que gerenciam as threads Quando um thread executa uma chamada de sistema, 'dorme', opera um semáforo ou mutex, o runtime system verifica se o thread deve ser suspenso

Implementação de Threads em Sistemas não-distribuídos Implementação no nível de usuário Sistema Suporte SO

Implementação de Threads em Sistemas não-distribuídos Nível usuário Custo da criação custo de alocar memória para a pilha Chaveamento de contexto de thread pode ser feito em apenas algumas instruções: não há necessidade de mudar mapas de memória, descarregar o TLB (Translation Lookaside Buffer)» Ex.: Threads que precisam entrar em sincronia

Implementação de Threads em Sistemas não-distribuídos Desvantagem de threads de nível de usuário: Problema está em como chamadas de sistemas bloqueantes são implementadas Ex.: ler um pipe vazio chamada de sistema bloqueio Todos os threads são bloqueados!

Implementação de Threads em Sistemas não-distribuídos Implementação no kernel SO

Implementação de Threads em Sistemas não-distribuídos Implementação no kernel Criação, encerramento, sincronização deverão ser feitos pelo kernel Chamadas de sistema deverão ser realizadas Chavear contextos de threads é tão caro quanto chavear contexto de processos

Implementação de Threads em Sistemas Distribuídos Importante propriedade de threads é que eles podem proporcionar um meio conveniente de permitir chamadas bloqueantes de sistema sem bloquear o processo inteiro

Implementação de Threads em Sistemas Distribuídos Threads são particurlamente atraentes para utilização em sistemas distribuídos facilitam muito expressar comunicação na forma de manter múltiplas conexões lógicas ao mesmo tempo

Clientes Multithreads Sistemas distribuídos que operam em redes de longa distância escondem longos tempos de propagação de mensagens entre processos A maneira de ocultar latências de comunicação é iniciar a comunicação e imediatamente prosseguir com outra atividade

Clientes Multithreads Browsers Web Documento Web consiste em: texto, imagens, ícones, etc. A cada elemento, browser esttabelece uma conexão TCP/IP, para ler os dados e passar ao monitor do usuário Operações bloqueadoras: estabelecimento da conexão, leitura de dados

Clientes Multithreads Browsers Web Browsers começam a exibir dados enquanto a medida em que novas informações chegam Enquanto o texto está sendo disponibilizado para o usuário, incluindo as facilidades de rolamento, p.ex., o browser continua buscando outros arquivos, como imagens Vantagem: usuário não precisa esperar até que todos os componentes sejam buscados

Clientes Multithreads Browsers Web Browser como clientes multithread simplifica Threads separados são ativados para se encarregar de buscar diferentes partes de uma página Caso o servidor esteja em sobrecarga, ter um cliente multithread possibilita estabelecer conexões com diferentes servidores, permitindo transmissão dos dados em paralelo Cliente pode manipular fluxos de dados de entrada em paralelo Threads!

Servidores Multithreads Servidor de arquivos normalmente espera pela entrada de uma requisição para uma operação de arquivo e, na sequência, executa a requisição e então devolve a resposta. Como aumentar o desempenho?

Servidores Multithreads Funcionamento de servidores multithreads: requisições são enviadas por clientes para uma porta no servidor Thread despachante lê requisições que entram para uma operação de arquivo Servidor escolhe um thread operário Se o thread escolhido estiver suspenso, outro thread é selecionado para ser executado: p.ex., o thread despachante pode ser selecionado para adquirir mais trabalho

Servidores Multithreads

Servidores Multithreads Se o servidor é inteiramente CPU bound, não existe necessidade de diversos threads. Aumento de complexidade sem ganho de desempenho

Virtualização Threads e processos podem ser vistos como um modo de fazer diversas tarefas ao mesmo tempo Em computadores monoprocessador, execução simultânea é uma ilusão única CPU, somente uma instrução de um único thread ou processo será executada por vez Virtualização de recursos: fingir que um determinado recurso está replicado no sistema

Virtualização Estende ou substitui uma interface existente de modo a imitar o comportamento de um outro sistema

Virtualização Na década de 1970 a virtualização foi aplicada com sucesso nos mainframes IBM, que ofereciam uma máquina virtual para executar softwares que incluiam aplicações e também os sistemas operacionais

Virtualização Softwares em nível mais alto são mais estáveis que o hardware e sistemas de software de baixo nível virtualização pode ajudar transportando as interfaces de softwares para novas plataformas. Novas plataformas são capazes de executar softwares existentes anteriormente

Arquiteturas de máquinas virtuais Existem vários modos pelos quais a virtualização pode ser realizada na prática Existem quatro tipos diferentes de interfaces em quatro níveis diferentes

Virtualização Essência da virtualização é imitar o comportamento das interfaces (instruções de máquina, chamadas de sistema)

Virtualização Máquina virtual de processo Aplicações desenvolvidas para um SO são executadas em outro SO Virtualização feita somente para um único processo emuladores imitar chamadas de sistema Não é trivial

Virtualização Monitor de máquina virtual Fornece o conjunto de instruções completo do hardware Vários sistemas operacionais diferentes executando independente e concorrentemente na mesma plataforma Importantes no contexto de confiabilidade e segurança isolamento de uma aplicação e seu ambiente falhas não afetam a máquina inteira Ex.: VMware

Virtualização

Próxima Aula Processos: Clientes, Servidores e Migração de processos