Sistemas Distribuídos

Documentos relacionados
SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

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

Processos ca 3 pítulo

SSC0640 Sistemas Operacionais I

Sistemas Distribuídos Capítulo 3 - Aula 3

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Sistemas Operacionais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas de Informação. Sistemas Operacionais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Sistemas Operacionais. Processos e Threads

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

Sistemas Distribuídos Aula 3

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Sistemas Operacionais

Sistemas Operacionais

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Distribuídos

Programação Paralela e Distribuída

Sistemas Operacionais

Arquiteturas. capítulo

Concorrência em Processos

Programação Concorrente

Arquitetura de Computadores. Processamento Paralelo

Computadores e Programação (DCC/UFRJ)

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Componentes do Sistema Operacional (Parte 2)

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

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Caracterização de Sistemas Distribuídos

Microarquiteturas Avançadas

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Projeto Lógico de Computadores. Profa. MSc. Carolina Melo Santana

Curso: Redes de Computadores

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Programação de Sistemas em Tempo Real

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

SOP - TADS Fundamentos de Sistemas Operacionais

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais

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

Introdução à Informática

Características de Sistemas Distribuídos

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

SISTEMAS DISTRIBUÍDOS

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Características de Sistemas Distribuídos

Sistemas Operacionais (SO)

Sistemas Distribuídos. Edy Hayashida

PROVA 03/07 Segunda-feira (semana que vem)

Sistemas Distribuídos

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Sistemas Distribuídos

Estruturas de Sistemas Operacionais

Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

EEL770 Sistemas Operacionais

Sistemas Distribuídos

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Ferramentas para Programação em Processadores Multi-Core

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais Aula 3

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Operacionais. Sistema de entrada e Saída

Arquiteturas. Capítulo 2

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Sistemas Operacionais I

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Davidson Rodrigo Boccardo

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

SOP - TADS Processos. Revisão Ultima aula

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

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Sistemas Operacionais I

Sistemas Distribuídos

Parte I Multiprocessamento

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula

Sistemas Distribuídos

Transcrição:

Sistemas Distribuídos Processos Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1

- Processos Conceito originado do campos de sistemas operacionais no qual, em geral, são definidos como programas em execução Do ponto de vista de um sistema operacional, o gerenciamento e escalonamento de processos são as questões mais importantes a discutir Do ponto de vista de sistemas distribuídos outras questões se mostram ser de igual ou maior importância 2

- Processos Ex.: para organizar sistemas cliente-servidor com eficiência, muitas vezes é conveniente usar técnicas de multithreading Threads permitem que clientes e servidores sejam construídos de modo tal que comunicação e processamento local possam se sobrepor, resultando em alto nível de desempenho 3

- Threads Para entender o papel dos threads em sistemas distribuídos, é importante entender o que é um processo e como processos e threads se relacionam Ao executar um programa o sistema operacional cria vários processadores virtuais Cada qual para executar um programa diferente O SO mantém uma tabela de processos que contém entradas para armazenar valores de registrados de CPU, mapas de memória, arquivos abertos, informações de contabilidade, privilégios, etc 4

- Threads Aspecto importante: o SO toma grande cuidado para assegurar que processos independentes não possam afetar, de modo intencional, ou não intencional, a correção do comportamento um do outro Os processos podem compartilhar concorrentemente a mesma CPU e outros recursos de hardware de forma transparente Essa transparência tem preço relativamente alto 5

- Threads Cada vez que um processo é criado, o SO deve criar um espaço de endereços completos independente Alocação pode significar iniciar segmentos de memória: por exemplo, zerando um segmento de dado, copiando o programa associado para um segmento de texto e estabelecendo uma pilha para dados temporários Chaver a CPU entre dois processos pode ser igualmente caro Caso o SO suporte mais processos do que pode conter simultaneamente na memória principal, terá que efetuar troca dinâmica de processos entre a memória principal e o disco antes que o chaveamento propriamente dito possa ocorrer 6

- Threads Assim como um processo, um thread executa sua própria porção de código Todavia, ao contrário dos processos, nenhuma tentativa é feita para conseguir alto grau de transparência de concorrência se isso resultar em degradação do desempenho Threads em geral mantém a mínima informação que permita à CPU ser compartilhada por vários threads 7

- Threads Informações que não são estritamente necessárias para gerenciar múltiplos threads em geral são ignoradas Por essa razão, proteger dados contra acesso inadequado por threads dentro de um único processo fica inteiramente a cargo dos desenvolvedores da aplicação 8

- Threads Threads não são automaticamente protegidos uns contra os outros, como acontece com os processos Sendo assim o desenvolvimento de aplicações multithread requer esforço intelectual adicional Elaborar adequadamente o projeto e manter as coisas simples ajuda muito 9

- Threads O benefício mais importante em sistemas multithread é sempre que for executada uma chamada bloqueadora por uma das threads o processo como um todo não é bloqueado. Caso contrário se for um sistema monothread Outra vantagem de sistema multithread é que se torna possível explorar paralelismo ao executar o programa em um sistema multiprocessador Nesse caso, cada thread é designado a uma CPU diferente, enquanto dados compartilhados são armazenados em memória principal 10

- Threads Em sistemas Unix a cooperação entre programas (processos) é implementada por meio de mecanismos de comunicação entre processos (IPC Interprocess Communication) Como IPC requer intervenção de núcleo, em geral um processo terá que chavear primeiro de modo usuário para modo núcleo Isto requer trocar mapa de memória MMU e descarregar o TLB 11

- Threads 12

- Threads O chaveamento de thread às vezes pode ser feito inteiramente em espaço de usuário O efeito pode ser uma drástica melhoria em desempenho Ex.: Threads cooperativos. Processador de texto pode usar threads separados para manipular entrada de usuário, verificação de ortografia e gramática, apresentação do documento, geração de índice, etc 13

- Implementação de thread Threads são fornecidas em pacotes que contém operações de criação, finalização, sincronismo Duas abordagens para implementação de um pacote de threads Construção de bibliotecas executa inteiramente em modo usuário Ciência do núcleo sobre a existências dos threads e que sejam escalonados 14

- Implementação de thread Vantagens threads modo usuário Criar e terminar threads são baratos (custo de alocação de memória para estabelecer uma pilha de threads) Chaveamento de contexto de thread pode ser feito em apenas algumas instruções. Basicamente somente valores dos registradores de CPU precisam ser armazenados 15

- Implementação de thread Desvantagen threads modo usuário Uma invocação de uma chamada bloqueadora de sistema imediatamente bloqueará todo o processo ao qual o thread pertence Este problema pode ser contornado pela implementação de threads no núcleo do sistema operacional, mas o custo é alto Outra solução está em uma forma híbrida de threads de nível de usuário e nível de núcleo, denominado LWP (Lightweight Processes) 16

- Implementação de thread 17

- Implementação de thread Vantagens do LWP em combinação com threads nível de usuário Criar, destruir e sincronizar threads é relativamento barato e não envolve absolutamente nenhuma intervenção do núcleo Contanto que um processo tenha LWPs suficientes, uma chamada bloqueadora de sistema não suspenderá o processo inteiro A aplicação não tem conhecimento dos LWPs. Tudo é visto como threads de nível de usuário LWPs podem ser usados com facilidade em ambientes de multiprocessamento, pela execução de diferentes LWPs em diferentes CPUs 18

- Threads em Sist. Distribuídos Threads podem proporcionar um meio conveniente de permitir chamadas bloqueadoras de sistema sem bloquear o processo inteiro Esta propriedade torna-se atrativa na utilização em sisetmas distribuídos, uma vez que facilitam comunicação na forma de manter múltiplas conexões lógicas ao mesmo tempo Caso de uso comunicação cliente/servidor multithread 19

- Threads em Sist. Distribuídos Clientes multithread Sistemas distribuídos que operam em redes de longa distância podem precisar esconder longos tempos de propagação (latência) de mensagens entre processos A maneira usual de ocultar latências de comunicação é iniciar a comunicação e imediatamente prosseguir com alguma outra coisa Ex.: requisição WEB. O navegador busca o arquivo html e já vai exibindo o conteúdo. Para cada objeto que compõe o arquivo são criados threads em separados para estabelecer conexão e buscar estes objetos 20

- Threads em Sist. Distribuídos Clientes multithread 21

- Threads em Sist. Distribuídos Clientes multithread 22

- Threads em Sist. Distribuídos Clientes multithread Ao ser usado clientes multithread, podem ser estabelecidas conexões com diferentes réplicas do servidor web Isto determina que o documento web inteiro seja totalmente exibido em tempo muito menor do que com um servidor não replicado Essa abordagem só é possível se o cliente manipular fluxos de dados de entrada verdadeiramente paralelos. Threads são ideais para essa finalidade 23

- Threads em Sist. Distribuídos Servidores multithread A principal utilização de multithread em sistemas distribuídos é encontrada no lado do servidor Multithread não somente simplifica consideravelmente o código do servidor, mas também facilita muito o desenvolvimento de servidores que exploram paralelismo para alto desempenho 24

- Threads em Sist. Distribuídos Servidores multithread 25

- Virtualização Threads e processos permitem construir programas que parecem ser executados simultaneamente Em sistemas monoprocessados dá a ideia de que programas estão sendo executados em paralelo por causa do chaveamente rápido entre threads e processos Virtualização de recursos 26

- Virtualização O papel da virtualização em sistemas distribuídos Todo sistema de computador oferece uma interface de programação de software de alto nível Há vários tipos de interfaces (instruções oferecidas por uma CPU, conjunto de interfaces de programação de middleware) Em essência, a virtualização trade de estender ou substituir uma interface existente de modo a imitar o comportamento de um outro sistema 27

- Virtualização O papel da virtualização em sistemas distribuídos 28

- Virtualização O papel da virtualização em sistemas distribuídos Uma das questões mais importantes para introduzir a virtualização foi permitir que software herdado executasse em caros hardwares de mainframe A virtualização ajuda, em muito, a administração de diversas plataformas e máquinas, reduzindo a quantidade de máquinas 29

- Virtualização Arquiteturas de máquinas virtuais Quatro tipos diferentes de interfaces Instruções de máquinas: interface entre o hardware e o software. Podem ser invocadas por qualquer programa Instruções privilegiadas: interface entre o hardware e o software. Invocadas somente por programas privilegiados, como o SO Chamadas de sistema: oferecidas por um sistema operacional Interface de aplicação de programação: chamadas de bibliotecas (ocultam a chamada de sistema) 30

- Virtualização Arquiteturas de máquinas virtuais Quatro tipos diferentes de interfaces 31

- Virtualização Arquiteturas de máquinas virtuais Dois modos de virtualização 32

- Virtualização Arquiteturas de máquinas virtuais Dois modos de virtualização Explicar a arquitetura do XEN 33

- Clusters de servidores Organização geral Conjunto de máquinas conectadas por uma rede, no qual cada máquina executa um ou mais servidores Logicamente um cluster de servidores é organizado em três camadas 34

- Clusters de servidores Organização geral 35

- Clusters de servidores Organização geral 36

- Clusters de servidores Servidores distribuídos Conjunto de máquinas que possivelmente muda dinamicamente Mas se apresenta para o mundo externo como uma única e poderosa máquina Ex.: cluster de dinâmico configurado por máquinas de usuários finais 37

- Clusters de servidores Servidores distribuídos Suporte de mobilidade para IPv6 (MIPv6) Nó móvel tem uma rede nativa e possui endereço estável associado (endereço nativo Home Address HA) Rede nativa possui um repassador especial (agente nativo) 38

- Clusters de servidores Servidores distribuídos Ao se desligar da rede nativa e for para a rede externa o nó receberá um endereço externo (Care-of Address COA) O COA é informado ao agente nativo 39

- Clusters de servidores Servidores distribuídos 40

- Clusters de servidores Servidores distribuídos 41