Capítulo 8 Sistemas com Múltiplos Processadores

Slides:



Advertisements
Apresentações semelhantes
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Advertisements

Banco de Dados Aula 01: Conceitos Básicos
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
BARRAMENTOS Iriam Cristiane Damas e Ronaldo Hornburg
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
Arquitetura de computadores
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
Sistemas Operacionais
Prof. Dr. Helder Anibal Hermini
Prof. Dr. Helder Anibal Hermini
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Criptografia Quântica : Um Estudo
(Como implementar multiplicação e divisão uma vez só :-)
Gustavo Vieira Pereira
Compressão por Hardware
Gerência de Dados em Grades Motivação: – 1a geração de suporte a dados em Grades: ferramentas para transferência e catalogação de réplicas: Globus: GridFTP,
O que é XtremWeb(XW)? Projeto de pesquisa relacionado a light-weight Grids. Plataforma Open Source para a elaboração de grades baseadas em PCs, desenvolvida.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Aplicação GeneAl Treinamento no GRADEp Aplicação GeneAl.
Webcast Gestão da Manutenção Histórico de Aplicações e Manutenções.
Publicidade e Propaganda – Conceitos e Categoria
Servidores e Programação Web Redes de Computadores.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Arquitetura de Computadores I
Serviços Integrados na Arquitetura da Internet Apresentação: Fernando Nadal.
UD de Sorocaba/ Iperó UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Campus de Sorocaba UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Funções de um computador
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
Modulo Especialista.
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
I – Comunicação – Redes – Gerenciamento Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações.
FUNDAÇÃO CARLOS CHAGAS
Trabalho de Formatura - MAC499 Bruno Takahashi C. de Oliveira Projeto: Omnitty Orientador: Prof.
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
OTIMIZAÇÃO DE DESEMPENHO
Organização de Sistemas de Computadores
Arquitetura de ComputadoresProf a Luiza Mourelle Apesar da evolução tecnológica, as CPUs continuam mais rápidas que a memória. O problema não é tecnológico,
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Pipeline É possível obter maior desempenho computacional com:
Hierarquia de Memória No projeto de um sistema digital, deve-se ter em mente que hardware menor geralmente é mais rápido do que hardware maior. A propagação.
Redes Embutidas - Prof a Luiza Mourelle 1 1 Topologias As topologias de redes intrachip podem ser agrupadas em duas classes principais: as redes diretas.
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
The Data Warehouse Toolkit
PRINCÍPIOS DE SISTEMA OPERACIONAL Prof. Helder Cleber Almeida Pereira
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Conceitos Básicos de Redes de Computadores e acesso a Internet
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Programação Concorrente com Thread Java
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.
Sistemas Operacionais
Sistemas Operacionais
Capítulo 8 Sistemas com Múltiplos Processadores
Transcrição da apresentação:

Capítulo 8 Sistemas com Múltiplos Processadores Motivação: Poder Computacional. Ainda há tarefas complexas cujo demanda de processamento não está satisfeita. Estamos no limite da velocidade do relógio para permitir em certo tamanho que o sinal trafegue de uma extremidade a outra e volte dentro de um único ciclo. Uma solução é a adoção de múltiplas CPUs.

Soluções Multiprocessador de memória compartilhada; acesso de 2 a 50 ns; Multicomputador com troca de mensagens; acesso de 10 a 50 µs; Sistema distribuído com rede de longa distância; acesso de 10 a 50 ms.

Multiprocessadores (1) Sistema computacional no qual duas ou mais CPUs compartilham acesso total a uma RAM comum. UMA – Uniform Memory Access: tempo de acesso a memória é uniforme. (1) Multiprocessadores baseados em barramento: Sem utilização de cache; contenção no barramento; Com utilização de caches; coerência de cache; Com memória privadas e caches; gerência mem.

Multiprocessadores (2) Problema de (1): limite do barramento; (2) Multiprocessadores com chaves de crossbar: Reduz a contenção.

Multiprocessadores (3) Problema de (2): excessivo número de cruzamentos – possível para sistemas de porte médio; (3) Multiprocessadores com redes de comutação multiestágio: Uma chave 2x2: 2 entradas e 2 saídas; Uma mensagem que chega na entrada e é chaveada para saída Reduz número de chaves. Número do módulo

Multiprocessadores (4) Problema de UMA: Hardware caro, limitado a não mais que 100 CPUs; NUMA – Nonuniform memory access. Características que diferenciam máquinas NUMA: Espaço de endereçamento único visível a todas as CPUs Acesso à memória remota via comandos LOAD STORE Acesso à memória remota mais lento que acesso à memória local

Multiprocessadores (5) (1) Multiprocessador com base em diretório: Mantém um cache localizando dados através de um diretório Multiprocess. de 256 nós com base em diretório Divisão de end. de mem. de 32 bits em campos. O diretório no nó 36. A linha 2 do nó 36 está na cache do nó 82. Há mta troca de msg! => chips Multicore.

SOs para Multiprocessadores (1) Cada CPU tem seu próprio SO. O código do SO é compartilhado, mas são independentes. Inconvenientes: não permite compartilhamento de processos – processos de um usuário só rodam na CPU1 enquanto CPU2 pode estar ociosa; alocação de memória fixa; caches independentes – difícil manter coerência. Modelo dificilmente usado.

SOs para Multiprocessadores (2) Modelo mestre-escravo. SO na CPU 1 que atribui tarefas para as demais CPUs. Inconvenientes: Mestre se torna gargalo se muitas CPUs. (como ele que executa o SO, chamadas de sistema dos outros tem que passar por ele). Ineficiente para multiprocessadores grandes.

SOs para Multiprocessadores (3) SMP - Symmetric Multiprocessor. (elimina assimetria mestre-escravo) Balanceia dinamicamente processos e memória, havendo um conjunto único de tabelas, sem mestre. 2 ou + CPUs executando o mesmo código pode haver conflitos. Mutexes permitem o compartilhamento do código do SO, que é quebrado em partes independentes. Dificuldade: quebrar em regiões críticas que possam ser executadas simultaneamente por CPUs diferentes sem interferência. Risco de impasse: 2 tabs usadas por 2 CPUs!

SOs para Multiprocessadores (4) Cuidados importantes e difíceis para o funcionamento : Sincronização: desabilitar interrupções funciona para sincronização com um processador. Com mais de um não funciona pois só desabilita em uma CPU. Ex: falha de TSL com 2 CPUs que não reservam barramento: Escalonamento: Bidimensional: Qual o próximo processo a executar em qual CPU?

Multicomputadores (1) CPUs fortemente acopladas que não compartilham memória. O nó tem CPU, memória e interface de rede. Normalmente sem teclado, mouse, monitor. Mais fáceis de construir (como hardware) do que multiprocessadores. Compartilham sistemas de arquivos, mesmo SO, unidos por rede dedicada de alta velocidade, sistema de gerenciamento comum. Também conhecidos como computadores clusters clusters de estações de trabalho (COWs – cluster or workstations)

Multicomputadores (2) Posição das placas de interface de rede em um multicomputador. Processos se comunicam trocando mensagens ou RPCs.

RPCs Remote Procedure Calls: Um programa é capaz de chamar um procedimento em outra máquina. Cliente ligado a stub: representa o procedimento servidor no espaço do endereçamento do cliente. Parâmetros colocados na pilha de modo convencional.

Multicomputador (3) Cuidados importantes: Escalonamento: cada nó tem seus próprios processos e pode ser usado algoritmo local, porém pode também se usar escalonamento sincronizado entre as CPUs que minimize o tempo de CPU parada. Balanceamento de Carga: A associação inicial de que processo deve ir para qual nó é importante de maneira a manter equilibrado o uso de processador, uso de banda e equidade.

Virtualização (1) Motivação: Pode acontecer de uma empresa ter múltiplos servidores (e-mail, web, ftp…) não porque a carga é excessiva, mas por segurança: se um serviço falhar, os outros continuam a funcionar. Virtualização: Diferentes servidores funcionam em diferentes máquinas virtuais, hospedadas em um único computador, mantendo o modelo de falha parcial a baixo custo e fácil manutenção. Justificativa: A maioria das interrupções nos serviços não é por hardware, mas pelo conjunto de software inchado, não confiável e com erros (em especial SOs!)

Virtualização (2) Justificativa (ainda): O único software que rodaria no modo núcleo seria o hipervisor que tem menos linhas de código que o SO, e portanto menos erros. Economia em hardware (menos máquinas) implica também economia de energia; Cada aplicação leva consigo seu próprio ambiente; um dos benefícios é permitir rodar aplicações mais antigas e novas; outro benefício é não precisar particionar o disco e assim ter que reiniciar o computador para mudar de SO.

Virtualização (3) Conceito utilizado: Emulação:  as instruções são executadas via software permitindo emular um hardware totalmente diferente do hardware da máquina real. Ex: emuladores de consoles de video-games emulam o hardware do video-game onde o jogo “pensa” estar executando no video-game mas na verdade esta sendo executado por um emulador no computador. Através da emulação pode-se executar programas para outras arquiteturas, como por exemplo emular um MACintosh no PC, ou um hardware totalmente diferente. A emulação tem desempenho pior do que a execução no ambiente nativo.

Hipervisores Tipo 1 Ele é o SO, o único no modo núcleo, gerencia máquinas virtuais e processos. O SO hóspede acredita estar no modo núcleo, mas de fato está no modo usuário (Modo Núcleo virtual). Em CPUs com Virtualization Technology (VT), quando uma instrução falha, dispara uma armadilha para o núcleo (hipervisor) que inspeciona a origem da instrução (SO ou processo do user), permitindo ou não sua execução, emulando ou não.

Hipervisores Tipo 2 Hipervisor do tipo 2 é um programa de usuário sobre um SO hospedeiro. VMWare: carrega um SO hóspede; na carga varre o binário procurando blocos de instruções que terminem com instruções que alterem o fluxo de controle: (jump, call, trap…). Acontece uma tradução binária: substitui instruções sensíveis (q só podem ser executadas no modo núcleo) por instruções do VMWare que as emula.

Hipervisores Tipo 2 Após executar um bloco básico o controle retorna ao VMWare que localiza o próximo bloco. Blocos vão sendo traduzidos, armazenados e executados. Nenhuma instrução vinda do SO hóspede é executada pelo hardware real, mas emuladas. Máquinas que não tem VT podem usar este tipo de virtualização. Estudos mostram que máquinas com VT também tem seu custo como problemas de cache, TLBs… e dependendo da carga de trabalho pode ter desempenho pior.

Sistemas Distribuídos CPUs fracamente acopladas que não compartilham memória. Cada nó é um computador completo, nós estão espalhados ao redor do mundo. Vantagem: comps podem ser usados por grande variedade de aplicações; Desvantagem: programação das aplicações é difícil pois falta modelo de plataforma comum. Middleware: camada de software para uniformizar SOs e hardwares

Middleware Oferece certas estruturas de dados e operações que permitem que processos e usuários em máquinas distintas se relacionem em grupo de um modo consistente. Com base em documento: qualquer coisa é um documento – base da Web -> http Com base em sistema de arquivo: qualquer coisa é um arquivo – sistema global em q usuários escrevem e leem; Com base em objetos compartilhados: qualquer coisa é um objeto. CORBA – sistema cliente-servidor onde clientes invocam operações sobre objetos nos servidores. Com base em coordenação: processos se comunicam por espaço de tuplas (estrutura de dados) global. Processos podem inserir ou remover tuplas no espaço sem considerar como e onde estão armazenadas (Linda, Jini).

Grade Coleção grande geograficamente dispersa e normalmente heterogênea de máquinas conectadas por uma rede privada ou através da Internet e que oferece um conjunto de serviços a seus usuários. Compara-se a um supercomputador virtual, porém em diferentes domínios administrativos com um middleware comum. Cuida de aspectos como autenticação, conexão de usuários remotos, descoberta e anúncio de recursos, escalonamento, etc. Quando usuário tem trabalho o sw da grade determina onde há recursos e envio o trabalho para lá. Exemplo de middleware: toolkit Globus.

Comparação