1 / 41

Capítulo 8 Sistemas com Múltiplos Processadores

Capítulo 8 Sistemas com Múltiplos Processadores.

hakan
Download Presentation

Capítulo 8 Sistemas com Múltiplos Processadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 8Sistemas 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.

  2. 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.

  3. Multiprocessadores (1) Sistemacomputacional no qualduasoumais CPUs compartilhamacesso 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.

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

  5. Multiprocessadores (3) Problema de (2): excessivonúmero de cruzamentos – possívelparasistemas de portemédio; (3) Multiprocessadores com redes de comutaçãomultiestágio: Uma chave 2x2:2 entradas e 2 saídas; Uma mensagem que chega na entrada e é chaveada para saída Endereço dentro do módulo

  6. Multiprocessadores (3) (3) Multiprocessadores com redes de comutaçãomultiestágio: Número do módulo Reduz número de chaves da solução (2).

  7. Multiprocessadores (4) Problema de UMA: Hardware caro, limitado a nãomaisque 100 CPUs; NUMA – Nonuniform memory access. Característicasquediferenciammáquinas NUMA: • Espaço de endereçamentoúnicovisível a todas as CPUs • Acesso à memóriaremota via comandos • LOAD • STORE • Acesso à memóriaremotamais lento queacesso à memória local

  8. Multiprocessadores (5) (1) Multiprocessador com base emdiretório: Mantém um cache localizando dados através de um diretório Memória dividida em linhas de cache Multiprocess. de 256 nós com base em diretório: base de dados que informa onde cada linha da cache está. A coerência é necessária.

  9. Multiprocessadores (5) (1) Multiprocessador com base emdiretório: Mantém um cache localizando dados através de um 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, onde as trocas são rápidas no interno do chip.

  10. 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.

  11. 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.

  12. 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 CPUsdiferentes sem interferência. Risco de impasse: 2 tabs usadas por 2 CPUs!

  13. SOs para Multiprocessadores (4) Cuidadosimportantes e difíceispara o funcionamento : • Sincronização:desabilitarinterrupçõesfuncionaparasincronização com um processador. Com mais de um nãofuncionapoissódesabilitaemuma CPU. Ex: falha de TSL com 2 CPUs quenãoreservambarramento: • Escalonamento: Bidimensional: Qual o próximoprocesso a executaremqual CPU?

  14. SOs para Multiprocessadores (5) Escalonamento Threads independentes: emprega-se umaúnicaestrutura de dados paraos threads prontos no sistema. Em (a) todas as CPUs estão ocupadas, ao desocupar, atribuir o próximo thread

  15. SOs para Multiprocessadores (7) Escalonamento Threads emgrupo. Ex: make – o que adianta compilar 9 tarefas simultaneamente se precisa esperar a décima? Se os threads se comunicam muito, é melhor fazê-los executar ao mesmo tempo. Escalonador verifica se há CPUs livres quanto número de threads.

  16. SOs para Multiprocessadores (8) Escalonamento - Threads emgrupo. Problema que pode acontecer se escalonados independentemente, mas trocam mensagens: A0 mandou msg para A1 que só será recebida 100ms depois, A1 responde que só será recebida por A0 mais 100ms depois.

  17. SOs para Multiprocessadores (9) Escalonamento - Threads emgrupo: Escalonamentoembando • Grupos de threads relacionadossãoescaladoscomoumaunidade (bando) • Todososmembros do bandoexecutamsimultaneamente emdiferentes CPUs com compartilhamento de tempo • Todososmembros de um bandoiniciam e finalizamjuntossuasfatias de tempo

  18. Multicomputadores (1) CPUs fortementeacopladasquenãocompartilhammemória. O nó tem CPU, memória e interface de rede. Normalmentesemteclado, mouse, monitor. Maisfáceis de construir (como hardware) do quemultiprocessadores. Compartilhamsistemas de arquivos, mesmo SO, unidosporredededicada de altavelocidade, sistema de gerenciamentocomum. • Tambémconhecidoscomo • computadores clusters • clusters de estações de trabalho (COWs – cluster or workstations)

  19. Multicomputadores (2) Posição das placas de interface de rede (NIC) em um multicomputador. A NIC tem RAM própria, pois se os dados nãosãoarmazenadosem tempo real sãoperdidos. A NIC podeter DMA ouaté CPU completa (processadores de rede).

  20. RPCs Os nós do multicomputador se comunicam por msg (muita E/S) ou pela técnica de Remote Procedure Calls: Um programa é capaz de chamar um procedimentoemoutramáquina. Clienteligado a stub: representa o procedimentoservidor no espaço do endereçamento do cliente. Parâmetrosdachamada do clientesãocolocadosnapilha de modoconvencional.

  21. Multicomputadores (3) Cuidadosimportantes: • Escalonamento: no multiprocessadortodososprocessosresidemnamesmamemória: uma CPU terminatarefa, pega um processo e executa. No multicomputador, cadanó tem suaprópriamemória e seusprópriosprocessos. Pode ser usadoalgoritmo local, porémpodetambém se usarescalonamentosincronizado entre as CPUs que minimize o tempo de CPU parada. Umavezassociado a um nó é láque o processoficará. Tomar boa decisãonacriação. • Balanceamento de Carga: A associaçãoinicial de queprocessodeveirparaqualnó é importante de maneira a manterequilibrado o uso de processador, uso de banda e equidade.

  22. Balanceamento de Carga (1) Algoritmos de Alocação de Processador: variam de acordo com objetivos e informações conhecidas. Algoritmo Determinístico teórico de Grafos: Processos estão ligados com as arestas representando o fluxo médio entre eles. Encontrar uma maneira de dividir o grafo em k subgrafos disjuntos sujeitos a retrições. Cada subgrafo roda em um nó. Minimizar o tráfego intergrupo. A esq a soma dá 30 unidades, a dir. dá 28.

  23. Balanceamento de Carga (2) Algoritmo Heurístico distribuído iniciado pelo emissor: Um processos ao ser criado roda no nó que o criou se este não estiver sobrecarregado. Se estiver, seleciona outro nó aleatoriamente para sondar sua ocupação. Se nenhum nó for encontrado em N tentativas, ele roda na máquina onde foi gerado. Figura 8.25 (a)

  24. Balanceamento de Carga (3) Algoritmo Heurístico distribuído iniciado pelo receptor: Sempre que um processo finaliza, o sistema verifica se ele dispões de trabalho suficiente. Se não escolhe uma máquina aleatoriamente e pede serviço. Sonda até N máquinas, e se não tem serviço pára de procurar. Após certo tempo retoma a sondagem. Figura 8.25 (b). É melhor ter sobrecarga extra quando o sistema não está sobrecarregado.

  25. Virtualização (1) Motivação: Podeacontecer de umaempresatermúltiplosservidores (e-mail, web, ftp…) conectadosporrede de altavelocidade (multicomputador), masnãoporque a carga é excessiva, porsegurança: se um serviçofalhar, osoutroscontinuam a funcionar. Virtualização: Diferentesservidoresfuncionamemdiferentesmáquinasvirtuais, hospedadasem um únicocomputador, mantendo o modelo de falhaparcial a baixocusto e fácilmanutenção. É a base dachamadacomputaçãoelástica. Justificativa: A maioria das interrupçõesnosserviçosnão é por hardware, maspeloconjunto de software inchado, nãoconfiável e com erros (em especial SOs!)

  26. Virtualização (2) Justificativa (ainda): • O único software querodaria no modonúcleoseria o hipervisorque tem menoslinhas de códigoque o SO, e portantomenoserros. • Economiaem hardware (menosmáquinas) implicatambémeconomia de energia; • Cadaaplicaçãolevaconsigoseupróprioambiente; um dos benefícios é permitirrodaraplicaçõesmaisantigas e novas; outrobenefício é nãoprecisarparticionar o disco e assimterquereiniciar o computadorparamudar de SO.

  27. Virtualização (3) Conceitoutilizado: • Emulação:  as instruções são executadas via softwarepermitindo 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.

  28. Hipervisores Tipo 1 Ele é o SO, o único no modonúcleo, gerenciamáquinasvirtuais e processos. O SO hóspedeacreditaestar no modonúcleo, mas de fatoestá no modousuário (ModoNúcleo virtual). Em CPUs com Virtualization Technology (VT), quandoumainstruçãofalha (privilegiadaexecutandoemmodousuário), disparaumaarmadilhapara o núcleo (hipervisor) queinspeciona a origemdainstrução (SO ouprocesso do user), permitindoounãosuaexecução, emulandoounão.

  29. Hipervisores Tipo 2 Hipervisor do tipo 2 é um programa de usuáriosobre um SO hospedeiro. VMWare: carrega um SO hóspede; nacargavarre o binárioprocurandoblocos de instruçõesqueterminem com instruçõesquealterem o fluxo de controle: (jump, call, trap…). Aconteceumatraduçãobinária: substituiinstruçõessensíveis (q sópodem ser executadas no modonúcleo) porinstruções do VMWareque as emula.

  30. Hipervisores Tipo 2 Apósexecutar um blocobásico o controleretornaaoVMWarequelocaliza o próximobloco. Blocosvãosendotraduzidos, armazenados e executados. Nenhumainstruçãovinda do SO hóspede é executadapelo hardware real, masemuladas. Máquinasquenão tem VT podemusarestetipo de virtualização. Estudosmostramquemáquinas com VT também tem seucustocomoproblemas de cache, TLBs… e dependendodacarga de trabalhopodeterdesempenhopior.

  31. VirtualBox Uma das ferramentas de virtualizaçãodisponíveis (Oracle): https://www.virtualbox.org/ “Presently, VirtualBox runs on Windows, Linux, Macintosh, and Solaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7, Windows 8), DOS/Windows 3.x, Linux (2.4, 2.6 and 3.x), Solaris and OpenSolaris, OS/2, and OpenBSD.” Uma máquina virtual (Virtual Machine – VM) pode ser , definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, totalmente protegida. -

  32. VirtualBox Esta cópia pode ser importada , exportada, configurada para atender a demanda. A extensão .VDI é o formato nativo do VirtualBox e significa apenas Imagem de Disco Virtual.  A extensão .VMDK é o formato original da VMWare, aceito pelo VirtualBox.

  33. Paravirtualização SO Paravirtualizado: instruções sensíveis foram removidas e substituídas por uma chamada de uma API para realizar operações como E/S, modificação de registros internos, etc. O hipervisor pode ter parte que faz emulação e parte que é apenas um micronúcleo.

  34. Virtualização de Rede (1) Infra-estrutura tradicional de rede http://www.ibm.com/developerworks/linux/library/l-virtual-networking/ Infra-estrutura de rede virtualizada. OBS:  Linux incorpora um switch de nível 2 simples dentro do kernel. Nível Aplicação

  35. Virtualização de Rede (2) Switch virtual distribuído: Liga vNics e vNics a Nics. “Enables cross-server bridging , making the underlying server architecture transparent. A virtual switch within one server can transparently join with a virtual switch in another server making migration of VMs between servers (and their virtual interfaces) much simpler, because they can attach to the distributed virtual switch in another server and transparently join its virtual switched network”. OpenvSwitch foi comprado pela VMWare . É muito utilizado por cloud Nível Aplicação

  36. Virtualização com FlowVisor (1) • https://openflow.stanford.edu/display/DOCS/Flowvisor: • “FlowVisor is a special purpose OpenFlow controller that acts as a transparent proxy between OpenFlow switches and multiple OpenFlow controllers. • FlowVisor creates rich ''slices'' of network resources and delegates control of each slice to a different controller • Slices can be defined by any combination of switch ports (layer 1), src/dstethernet address or type (layer 2), src/dst IP address or type (layer 3), and src/dst TCP/UDP port or ICMP code/type (layer 4). • FlowVisor enforces isolation between each slice, i.e., one slice cannot control another's traffic” Nível Aplicação

  37. Virtualização com FlowVisor (2) A rede física pode ser separada entre os 3 controladores oferecendo uma parte do controle para cada um, de acordo com a política. Nível Aplicação

  38. Sistemas Distribuídos CPUs fracamenteacopladasquenãocompartilhammemória. Cadanó é um computadorcompleto, nósestãoespalhadosaoredor do mundo. Vantagem: comps podem ser usadosporgrandevariedade de aplicações; Desvantagem: programação das aplicações é difícilpoisfaltamodelo de plataformacomum. Middleware: camada de software para uniformizar SOs e hardwares

  39. Middleware Oferececertasestruturas de dados e operaçõesquepermitemqueprocessos e usuáriosemmáquinasdistintas se relacionememgrupo de um modoconsistente. • Com base emdocumento: qualquercoisa é um documento – base da Web -> http • Com base emsistema de arquivo: qualquercoisa é um arquivo – sistema global em q usuáriosescrevem e leem; • Com base emobjetoscompartilhados: qualquercoisa é um objeto. CORBA – sistemacliente-servidorondeclientesinvocamoperaçõessobreobjetosnosservidores. • Com base emcoordenação: processos se comunicamporespaço de tuplas (estrutura de dados) global. Processospodeminserirou remover tuplas no espaçosemconsiderarcomo e ondeestãoarmazenadas (Linda, Jini).

  40. Grade Coleçãograndegeograficamentedispersa e normalmenteheterogênea de máquinasconectadasporumaredeprivadaouatravésda Internet e queoferece um conjunto de serviços a seususuários. Compara-se a um supercomputador virtual, porémemdiferentesdomíniosadministrativos com um middleware comum. Cuida de aspectoscomoautenticação, conexão de usuáriosremotos, descoberta e anúncio de recursos, escalonamento, etc. Quandousuário tem trabalho o swda grade determinaondehárecursos e envio o trabalhoparalá. Exemplo de middleware: toolkit Globus.

  41. Comparação

More Related