Programação Paralela: Sistemas Multicore

Tamanho: px
Começar a partir da página:

Download "Programação Paralela: Sistemas Multicore"

Transcrição

1 IX FITEM (2010) Fórum de Informática e Tecnologia da UEM Programação Paralela: Sistemas Multicore Prof.

2 Parte I - Introdução Aplicações Modelos Problemas computacionais Grand challenges Arquiteturas paralelas breve revisão SMPs MPPs Clusters Grids Clouds Modelos de programação Desempenho: speedup, eficiência Lei de Amdhal Processos e Threads criação troca de contexto escalonamento modelo de memória compartilhadacon ceitos (revisão)

3 Modelos de aplicação Software multithread gerencia múltiplas atividades independentes, tais como: sistemas de janelas em computadores pessoais ou workstations; sistemas operacionais multiprocessadores ou time-sharing; e sistemas de tempo-real que controlam usinas de energia, aeronaves, etc. Exemplos de computação distribuída: sistemas de arquivo em um sistema em rede, bancos de dados para sistemas bancários, empresa aérea, servidores web na Internet, sistemas tolerantes a falhas que permanecem executando mesmo com a ocorrência de falha. Exemplos de computação paralela incluem: computação científica que modela e simula fenômenos como o clima global, a evolução do sistema solar ou o efeito de novas drogas; processamento gráfico e de imagens, incluindo a criação de efeitos especiais em filmes; grandes problemas combinacionais ou de otimização.

4 Programação concorrente Um programa concorrente contém dois ou mais processos que trabalham juntos para realizar uma tarefa. Cada processo é um programa sequencial com um única linha de execução (single thread of control). Um programa concorrente tem múltiplas linhas de execução (multiple thread of control). Os processos em um programa concorrente trabalham juntos, comunicando-se para trocas de informações. A comunicação é programada usando variáveis compartilhadas ou por passagem de mensagens. Independente da forma de comunicação, processos também precisam estar sincronizados entre si. Existem dois tipos principais de sincronização: exclusão mútua e condições de sincronização (condition synchronization).

5 Computação paralela Demanda crescente por poder computacional: Desejo de resolver novos problemas Necessidade de resolver problemas computacionais já tratados: com melhor precisão de maneira mais rápida Limitação na capacidade de integração de circuitos

6 Computação Paralela Problemas computacionais complexos normalmente apresentam as seguintes características: Podem ser divididos em partes distintas que podem ser executadas simultaneamente Podem ter diversas instruções sendo executadas ao mesmo tempo São executados em menor tempo quando múltiplos recursos computacionais são utilizados

7 Problemas computacionais Aplicações atuais em muitos casos envolvem a manipulação de grandes volumes de dados, o que requer processamento extensivo. Exemplos: Bancos de dados paralelos e data mining Exploração mineral Máquinas de busca na Web Serviços baseados na Web Suporte para diagnósticos auxiliados por computador Gerenciamento de grandes empresas Computação gráfica e realidade virtual Suporte para tecnologias multimídia Ambientes para trabalho cooperativo Simulações de dinâmica molecular Indexação da Web

8 Grand Challenge Problems A grand challenge problem is one that cannot be solved in a reasonable amount of time with today's computers. Exemplos (http://en.wikipedia.org/wiki/grand_challenge_problem): Applied Fluid Dynamics: the design of hypersonic aircraft, efficient automobile bodies, and extremely quiet submarines, weather forecasting for short and long term effects, efficient recovery of oil, and for many other applications Meso- to Macro-Scale Environmental Modeling Electronic structure calculations for the design of new materials such as: chemical catalysts, immunological agents, and superconductors; Ecosystem Simulations Biomedical Imaging and Biomechanics Molecular Biology Molecular Design and Process Optimization Cognition...

9 Os 500 maiores supercomputadores

10 Parte I - Introdução Aplicações Modelos Problemas computacionais Grand challenges Arquiteturas paralelas breve revisão SMPs MPPs Clusters Grids Clouds Modelos de programação Desempenho: speedup, eficiência Lei de Amdhal Processos e Threads conceitos (revisão)

11 Arquitetura de Von Neumann Arquitetura de Von Neumann: Programa = sequência de instruções na memória Registrador (PC) indica palavra de memória que contém próxima instrução a executar Decodificação e execução das instruções feitas a partir de um registrador interno da CPU (IR) Operação: Loop { IR = Mem[PC] PC = PC +1 Executa IR Testa e trata INT } # Busca instrução; uso do cache e mecanismos de prefetching, branch prediction,... # Incrementa ponteiro de instruções. Incremento equivalente ao tamanho da palavra... # Decodifica e executa instrução. Lógica no nível de micro-programa. # Verifica interrupção: assíncrona (externa), trap, instrução (int)

12

13 Tipos de Computadores Paralelos Taxonomia de Flynn (*) Classificação de computadores de alto desempenho, baseada na forma de manipulação de instruções e dados: SISD: Single instruction, single data stream MISD: Multiple instruction, single data stream SIMD: Single instruction, multiple data streams MIMD: Multiple instruction, multiple data streams (*) M.J. Flynn, Some computer organizations and their effectiveness, IEEE Transactions on Computing, C-21, (1972)

14 Taxonomia de Flynn Single instruction, single data stream (SISD): computador convencional com uma CPU, sem paralelismo de instruções ou dados, como um PC ou um mainframe. Multiple instruction, single data stream (MISD): computador hipotético, em que múltiplos processadores atuariam sobre um único fluxo de dados. Pode ser empregado em casos de paralelismo para redundância.

15 Taxonomia de Flynn Single instruction, multiple data streams (SIMD): computador que explora múltiplos fluxos de dados com um único fluxo de instruções. Normalmente possui grande número de processadores, que executam a mesma operação de maneira coordenada (lock-step) sobre dados diferentes, como um array processor ou vectorprocessor. Uma variação dessa classificação inclui: Single Program, multiple data streams (SPMD): múltiplos processadores autônomos executando simultaneamente o mesmo conjunto de instruções, de maneira independente, sobre dados distintos.

16 Taxonomia de Flynn Multiple instruction, multiple data streams (MIMD): consistem de múltiplos processadores autônomos, que executam diferentes instruções sobre diferentes conjuntos de dados. Exemplos dessa arquitetura incluem os sistemas distribuídos. Uma sub-divisão desses sistemas pode ser feita em função do compartilhamento de memória: Sistemas com memória compartilhada: apresentam múltiplas CPUs que compartilham o mesmo espaço de endereçamento, como os sistemas SMP. Sistemas com memória distribuída: neste caso, cada CPU possui sua própria memória. Redes de comunicação podem permitir trocas de dados, usando diferentes topologias e tecnologias de comunicação, normalmente transparentes para as aplicações.

17 Acoplamento dos Processadores Processor coupling Sistemas fortemente acoplados (tightly-coupled): Múltiplas CPUs conectadas no nível do barramento interno (bus) Acesso a memória compartilhada (SMP) ou hierarquia de memória com acesso não uniforme (NUMA). Sistemas multi-core são exemplo extremo de acoplamento. Sistemas fracamente acoplados (loosely-coupled): Clusters, tipicamente, compostos de nós simples ou duais, interligados por rede de comunicação rápida. Mais baratos para serem integrados (agrupados) e atualizados

18 SMP (Symmetric Multiprocessors) Processadores compartilham a mesma memória Fortíssimo acoplamento entre os processadores Excelente conectividade memória processador M P P P P Memória Compartilhada

19 SMP (Symmetric Multiprocessors) Processadores executam uma única cópia do sistema operacional Apresentam uma imagem única do sistema Limitações em escalabilidade raramente ultrapassam 16 processadores São comuns no mercado: máquinas bi e quad-processadas Intel grandes servidores como os IBM pseries

20 Hyper-Threading Hyper-Threading Technology HTT: tecnologia Intel para a execução simultânea de tarefas na arquitetura Pentium 4, aprimorando o suporte de threading que surgiu nos processadores Xeon. Desempenho do processador é melhorado fazendo com que ele execute processamento útil quando estaria ocioso, como nas falhas de dados em cache (cache miss), branch misprediction, ou dependência de dados. Operação ocorre duplicando as partes específicas do processor Cada processador lógico possui seu próprio controlador de interrupção programável e um conjunto de registradores. Permanecem compartilhados outros recursos tais como, cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos

21 Multi-Core Processadores multi-core combinam 2 ou mais processadores independentes em um mesmo Circuito Integrado Cada processador implementado possui seu próprio conjunto de recursos. Ex: memória cache, unidades de execução, unidades de ponto flutuante Sistema operacional enxerga cada um dos cores com um processador distinto, com seus próprios recursos de execução Paralelismo no nível de tarefas é facilitado

22 Processadores atuais Intel Xeon 7500: 8 cores e 16 threads, tecnologia de 45-nm Intel Core i7 6 cores e 12 threads, tecnologia de 32-nm Intel Atom (modelo N550) 2 cores e 4 threads, tecnologia de 45-nm

23 Processadores atuais AMD Opteron e 8 cores tecnologia 45-nm

24 MPP MPP (Massivelly Parallel Processor): Possuem vários nós (processador + memória) Nós independentes, interconectados por redes dedicadas e muito rápidas Cada nó roda sua própria cópia do sistema operacional memória local processador M M M M P P P Escalonador P Sistema de Interconexão requisições

25 Clusters (aglomerados) Disponibilidade de estações de trabalho e PCs com alto desempenho e redes de comunicação rápidas possibilitaram a utilização de clusters como alternativa a supercomputadores e computadores paralelos Projetos: Berkeley NOW (network of workstations) project. NASA Beowulf project. Aspectos: Baixo custo Disponibilidade de software que pode ser adaptado

26 Redes de workstations (ou de PCs) NOWs (networks of workstations): São conjuntos de estações de trabalho ou PCs, ligados por uma rede local Em termos de arquitetura, são semelhantes aos MPPs: NÓ = PROCESSADOR + MEMÓRIA Diferenças entre NOWs e MPPs: Nós de um MPP tipicamente são conectados por redes mais rápidas que as de NOWs Dispersão geográfica é menor nos MPPs MPP permitem alocação de nós ou partições de forma dedicada para uma aplicação Nós de um NOW são compartilhados com outras aplicações e usuários

27 Interconexão Física Redes de interconexão rápidas são decisivas em sistemas paralelos e clusters. Escalabilidade de aplicações em clusters era limitada pela alta latência das redes Ethernet, predominante na época. Embora Gigabit Ethernet seja amplamente utilizado atualmente, com largura de banda teórica de 125 MB/s, sua aplicação restringe-se aos casos em que a latência dos acessos não é fundamental. Outras soluções especializadas e com alto desempenho: Infiniband Myrinet QsNet SCI (Scalable Coherent Interface)

28 Blue Gene/L

29 Grids M M M P P P Sistema de Interconexão Internet

30 Grids Compartilhamento, agregação e coordenação de recursos multi-institucionais e geograficamente distribuídos Ausência de controle centralizado Múltiplos domínios administrativos

31 Implementação de Grids

32 Cloud Computing O que é? Significa mover serviços, processamento e dados, de tal forma que sejam suportados por recursos computacionais internos ou externos, próprios ou contratados para tal finalidade, e cuja localização física é totalmente transparente a quem utiliza, com objetivo último de obter vantagens em termos de custos e de negócios. Outra definição: "A Cloud is a type of parallel and distributed system consisting of a collection of inter-connected and virtualized computers that are dynamically provisioned and presented as one or more unified computing resource(s) based on service-level agreements established through negotiation between the service provider and consumers. (R. Buyya)

33 Cloud: Três áreas principais SaaS (sofware-as-a-service): Aplicações e serviços executando em rede WAN. Ex: Aplicações Google, Salesforce.com, WebEx PaaS (platform-as-a-service): Plataformas para desenvolvimento de novas aplicações. Ex: Coghead, Google App. Engine IaaS (infrastructure-as-a-service): fornecimento de servidores de processamento e armazenamento sob a forma de serviço, com transparência de localidade (usuário não quer saber onde fisicamente estão os recursos) Atualmente ~100s de provedores ao redor do mundo

34

35 Parte I - Introdução Aplicações Modelos Problemas computacionais Grand challenges Arquiteturas paralelas breve revisão SMPs MPPs Clusters Grids Clouds Modelos de programação Desempenho: speedup, eficiência Lei de Amdhal Processos e Threads criação troca de contexto escalonamento modelo de memória compartilhadacon ceitos (revisão)

36 Modelos de programação Memória Compartilhada: Threads: programas são decompostos em sequências paralelas (threads), que compartilham variáveis dentro do escopo do programa. Pthreads Programas escritos em linguagem de programação sequencial, incluindo diretivas de compilação para declarar variáveis compartilhadas e especificar paralelismos. OpenMP: pode ser usado para paralelizar Fortran e C(++), inserindo diretivas no código. Tornou-se um padrão para sistemas com memória compartilhada.

37 Modelos de programação Memória Distribuída (clusters): Computação paralela baseada na passagem de mensagem (Message Passing Parallel Programming) Parallel Virtual Machine (PVM) Message-Passing Interface (MPI): padrão Computação em Grade (Grid Computing): Computação paralela baseada na execução de código remotamente Ativação remota de código Web/Grid Services Implementação padronizada: Globus (OGSI) Computação em nuvem (Cloud Computing): Computação distribuída através de recursos virtualizados, acessíveis via Internet na forma de serviços Usuários não têm conhecimento da tecnologia que provê os serviços Conceitos: Infrastructure as a service (IaaS), Platform as a service (PaaS) e Software as a service (SaaS)

38 Parte I - Introdução Aplicações Modelos Problemas computacionais Grand challenges Arquiteturas paralelas breve revisão SMPs MPPs Clusters Grids Clouds Modelos de programação Desempenho: speedup, eficiência Lei de Amdhal Processos e Threads criação troca de contexto escalonamento modelo de memória compartilhadacon ceitos (revisão)

39 Speedup Trata do potencial para aumento da velocidade computacional Idealmente, o tempo de execução de uma aplicação deve ser reduzido por um fator que é inversamente proporcional ao número de processadores utilizados. Barry Wilkinson and Michael Allen. Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, Sistemas Paralelos e Distribuídos H. Senger 2010

40 Speedup Factor ts S p = tp Onde: ts = tempo de execução em um único processador com o melhor algoritmo sequencial tp = tempo de execução em multiprocessador S(p) indica aumento de velocidadade com uso de p processadores multiprocessador No ambiente monoprocessado, melhor algoritmo sequencial deve ser usado Algoritmo para implementação paralela pode ser (e geralmente é) diferente Sistemas Paralelos e Distribuídos H. Senger 2010

41 Speedup Speedup também pode ser considerado em função dos passos computacionais: Número de passos computacionais usando 1 processador S p = Número de passos computacionais paralelos usando p processadores Complexidade computacional também pode ser estendida para computações paralelas. Sistemas Paralelos e Distribuídos H. Senger 2010

42 Eficiência Considerando o aumento de desempenho proporcionado com a paralelização, a Eficiência indica a proporção de ganho com o uso dos processadores. ts Tempo de Execução com 1 processador E= = Tempo de Execução usando multiprocessador * número de processadores t p p Eficiência máxima (100%) é obtida quando todos os processadores são utilizados o tempo todo e o speedup é p. Sistemas Operacionais 2 Hélio Crestana Guardia

43 Speedup Máximo Speedup Máximo é igual ao número de processadores (p), chamado de speedup linear Speedup linear é obtido quando as computações podem ser divididas em processos de igual duração, cada um atribuído a um processador, não havendo sobrecarga (overhead) na solução paralela. ts S p = p ts p Speedup superlinear, em que S(p)>p, pode ser obtido em circunstâncias especiais: Disponibilidade de memória adicional no multiprocessador Algoritmo não-determinístico Sistemas Paralelos e Distribuídos H. Senger 2010

44 Speedup Máximo: Amdahl s law ts (1 - f)ts fts Seção Serial Seções Paralelizáveis (a) 1 processador (b) Múltiplos processadores P processadores tp Sistemas Paralelos e Distribuídos (1 - f)ts /p H. Senger 2010

45 Speedup Máximo Speedup (Speedup factor) é dado por: S p = ts ts f t s 1 f p p = 1 p 1 f Equação é conhecida como Amdahl s law (Lei de Amdahl) 1 S p 1 f f p Assim, speedup é limitado pela fração sequencial. S p = 1 f p Sistemas Paralelos e Distribuídos H. Senger 2010

46 Speedup Máximo Mesmo com número ilimitado de processadores, speedup máximo é limitado a 1/f. Exemplo Com apenas 5% do código sendo serial, speedup máximo é 20, independente do número de processadores. Sistemas Paralelos e Distribuídos H. Senger 2010

47 Speedup Máximo: Exemplo Algoritmo de classificação de dados PART (f = 0.019) Fonte: Senger, H., Hruschka, E., Silva, F.A.B., Sato, L.M., Bianchini, C., Jerosch, B. Exploiting idle cycles to execute data mining applications on clusters of PCs. Journal of Systems and Software, v. 80, p , Sistemas Paralelos e Distribuídos H. Senger 2010

48 Speedup Máximo: Exemplo Algoritmo de classificação de dados J4.8 (f = 0.014) Fonte: Senger, H., Hruschka, E., Silva, F.A.B., Sato, L.M., Bianchini, C., Jerosch, B. Exploiting idle cycles to execute data mining applications on clusters of PCs. Journal of Systems and Software, v. 80, p , Sistemas Paralelos e Distribuídos H. Senger 2010

49 Speedup em relação ao Número de Processadores f = 0% Speedup factor, S(p) f = 5% 8 f = 10% f = 20% Número de processadores: p Sistemas Paralelos e Distribuídos H. Senger 2010

50 Speedup Superlinear: Efeito cache Exemplo: Programa que resolve um problema de tamanho W em um processador com cache de 64 KB, com cache hit de 80%. Supondo latência do cache = 2 ns e latência da memória DRAM = 100 ns, o tempo de acesso efetivo à memória (TEA): TEA = 0.8* *100 = 21.6 ns Supondo que cada operação de cálculo em ponto flutuante faça um acesso à memória e que este seja o fator limitante de desempenho, esse programa efetuaria seus cálculos a uma taxa média de 1 / 21.6 ns = MFLOPS Sistemas Paralelos e Distribuídos H. Senger 2010

51 Speedup Superlinear: Efeito cache Agora, suponha que o mesmo programa seja executado em um sistema com 2 processadores onde cada um realiza metade do trabalho. Características: 90% dos acessos são encontrados no cache (leva 2 ns) 8% dos acessos são feitos na DRAM (leva 100 ns) 2% dos acessos são feitos na DRAM remota (leva 400 ns) TEA = 0.9* * *400 = 17.8 ns Vejamos qual seria a taxa de execução de operações 1 / 17.8 ns = MFLOPS (por processador) * 2 (processadores) = MFLOPS Calculando o speedup: S = / 46.3 = 2.43 Sistemas Paralelos e Distribuídos H. Senger 2010

52 Limites e tendências Limitações físicas dificultam criar computadores mais rápidos: Transmissão de dados: velocidade do computador depende da taxa de transmissão no hardware. Luz no vácuo: 30 cm/ns; transmissão em cobre: aprox. 70% da velocidade no vácuo. Aumento da velocidade implica diminuir distância entre elementos. Miniaturização: tecnologia de processadores tem permitido aumentar número de transistores em chip, mas há limitações sobre quão pequenos componentes podem ser.» Pentium III (250-nm a 130-nm); Pentium 4, 2003(130-nm a 90-nm); atualmente: 45-nm a 32-nm; próxima geração: 22-nm? Economia: custo para desenvolver processador mais rápido é cada vez maior. Vantagens do paralelismo: Processadores comerciais oferecem desempenho cada vez melhor, incluindo múltiplos processadores no mesmo chip (multi-core) e suporte para execução simultânea de várias atividades (Hiper-Threading). Redes rápidas: tecnologias de rede oferecem interligação da ordem de Gbps em preços acessíveis para grupos de máquinas. Uso de N processadores comuns interligados é muito mais barato que 1 processador N vezes mais rápido com mesmo desempenho.

53 Parte I - Introdução Aplicações Modelos Problemas computacionais Grand challenges Arquiteturas paralelas breve revisão SMPs MPPs Clusters Grids Clouds Modelos de programação Desempenho: speedup, eficiência Lei de Amdhal Processos e Threads criação troca de contexto escalonamento modelo de memória compartilhadacon ceitos (revisão)

54 Processos Os computadores executam várias tarefas (programas, aplicações) ao mesmo tempo. Ex: Navegar na Internet Compilar um programa Enviar um arquivo para a impressora Reproduzir uma música Etc Processo Abstração Unidade de execução Processos transitam entre estados (ex: execução, bloqueado, etc). Operações: Criar, destruir, suspender, retomar, acordar, Mudam a prioridade, etc.

55 Definição de Processo Um programa em execução Um processo tem seu próprio espaço de endereço, que consiste em: Região de texto Região de dados Armazena o código que o processador executa. Armazena variáveis e memória alocada dinamicamente. Região de pilha Armazena instruções e variáveis locais para chamadas ativas ao procedimento.

56 Estruturas de Dados Internas

57 Operações de processo Um processo pode gerar um novo processo. O processo que criou a outro é chamado de processo-pai. O processo criado é chamado de processo-filho. Quando um processo-pai é desfeito, os sistemas operacionais em geral podem tomar dois tipos de atitude: Destruir todos os processos-filho desse processo-pai. Permitir que os processos-filho prossigam independentemente dos processos-pai.

58 Chaveamento de contexto

59 Comunicação interprocessos Muitos sistemas operacionais fornecem mecanismos para comunicações interprocessos (IPC). Os processos precisam se comunicar uns com os outros em ambientes de multiprogramação ou de rede. Ex: um navegador Web pode recuperar dados de um servidor remoto. É essencial para processos que precisam coordenar (sincronizar) atividades para alcançar uma meta comum.

60 Sinais São interrupções de software que notificam o processo de que um evento ocorreu. Não permitem que os processos troquem dados Processos podem capturar, ignorar ou mascarar um sinal. Um processo captura um sinal especificando uma rotina que o sistema operacional chama quando libera o sinal. Um processo ignora um sinal dependendo da ação-padrão do sistema operacional para tratá-lo. Um processo mascara um sinal instruindo o sistema operacional a não liberar sinais desse tipo até que o processo bloqueie a máscara do sinal.

61 Processos no Unix Todos os processos têm um conjunto de endereços de memória que é chamado de espaço de endereço virtual. O núcleo mantém o PCB de um processo em uma região protegida da memória. Em sistemas Unix, um PCB armazena: O conteúdo dos registradores dos processos. O identificador do processo (PID). O contador de programa. A pilha do sistema. Todos os processos são relacionados na tabela de processos. Processos interagem com o sistema operacional por meio de chamadas ao sistema (system calls). O Unix fornece vários mecanismos que habilitam os processos a trocar dados, como é o caso dos pipes.

62 Gerenciamento de processos fork( ): criação cópia do pai (copy-on-write) pid_t fork(void); vfork( ): criação pai espera fim ou exec( ) do filho pid_t vfork(void); system( ): executa comando do shell (/bin/bash -c) int system(const char *command); exec( ): carrega novo processo, sobrepondo atual int execl(const char *path, const char *arg,...); int execlp(const char *file, const char *arg,...); int execle(const char *path, const char *arg,..., char * const envp[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]);

63 Threads Várias linguagens modernas disponibilizaram primitivas de concorrência para o programador de aplicações. Ex.: Java, C#, Visual C++.NET, Visual Basic.NET e Python O programador escreve as aplicações contêm threads de execução. Cada thread pode ser uma parte de um programa que pode executar concorrentemente com outros threads. Thread É às vezes chamado de processo leve (LWP). Existem threads de instrução ou threads de controle. Compartilham espaço de endereço e outras informações do processo Registradores, pilha, máscaras de sinal e outros dados são específicos a cada thread. Os threads devem ser gerenciados pelo sistema operacional ou pela aplicação de usuário. Exemplos: threads Win32, C-threads, Pthreads.

64 Thread vs. Processo

65 Motivação Atualmente threads são muito utilizados em diversas áreas Por que criar threads? Ao projeto de software Ao desempenho Maior simplicidade para exprimir tarefas inerentemente paralelas. Maior escalonamento para sistemas com múltiplos processadores. À cooperação O custo operacional do espaço de endereço compartilhado é menor que o da IPC.

66 Motivação na criação de threads Todo thread transita entre uma série de estados de thread distintos. Os threads e os processos têm muitas operações em comum (por exemplo, criar, sair, retomar e suspender). A criação de thread não requer que o sistema operacional inicialize recursos compartilhados entre os processos-pai e os respectivos threads. Isso reduz o esforço de criação e término de threads, em comparação à criação e ao término de processo. A troca de contexto também pode ser muito mais rápida (~ 200 vezes em alguns casos)

67 Estados de thread: ciclo de vida

68 Modelos de thread Três são os modelos de thread mais conhecidos: Threads de usuário Threads de núcleo Uma combinação de ambos

69 POSIX e Pthreads Os threads que usam a API de thread POSIX são chamados de Pthreads. A especificação POSIX determina que os registradores do processador, a pilha e a máscara de sinal sejam mantidos individualmente para cada thread. A especificação POSIX especifica como os sistemas operacionais devem emitir sinais a Pthreads, além de especificar diversos modos de cancelamento de thread.

70 Threads Linux O Linux aloca o mesmo tipo de descritor para processos e threads (tarefas). Para criar tarefas-filha, o Linux usa a chamada fork, baseada no Unix. Para habilitar os threads, o Linux oferece uma versão modificada, denominada clone. Clone aceita argumentos que determinam os recursos que devem ser compartilhados com a tarefa-filha.

71 Threads do Windows XP Os threads do Windows XP podem criar fibras. A execução da fibra é escalonada pelo thread que a cria, e não pelo escalonador. O Windows XP fornece a cada processo um reservatório de threads que consiste em inúmeros threads operários, que são threads de núcleo que executam funções especificadas pelos threads de usuário.

72 Threads do Windows XP Threads São na verdade a unidade de execução despachada por um processador. Executam uma parte do código do processo, no contexto do processo, usando os recursos do processo. O contexto de execução contém: Pilha de tempo de execução Estado dos registradores da máquina Diversos atributos

73 Threads Java A linguagem Java permite que o programador de aplicações crie threads portáveis para várias plataformas de computação. Threads Criados pela classe Thread. Executam códigos especificados em um método run de um objeto Runnable. A linguagem Java suporta operações como nomeação, ativação e união de threads.

slide 0 Algoritmos Paralelos

slide 0 Algoritmos Paralelos slide 0 Algoritmos Paralelos Slide 2 Demanda por Velocidade Computational Demanda contínua por maior rapidez computational das máquinas que as atualmente disponíveis. As áreas que exigem maior rapidez

Leia mais

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Sistemas Paralelos e Distribuídos Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Conceitos preliminares Paralelismo refere-se a ocorrência simultânea de eventos em um computador Processamento

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro Sistemas MIMD Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador

Leia mais

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França Arquitetura NUMA 1 Daniel de Angelis Cordeiro INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França 6 de Outubro de 2010 1 Baseado em slides feitos por Christiane Pousa

Leia mais

Introdução às arquiteturas paralelas e taxonomia de Flynn

Introdução às arquiteturas paralelas e taxonomia de Flynn Introdução às arquiteturas paralelas e taxonomia de Flynn OBJETIVO: definir computação paralela; o modelo de computação paralela desempenhada por computadores paralelos; e exemplos de uso da arquitetura

Leia mais

4 Computação Paralela 4.1. Introdução

4 Computação Paralela 4.1. Introdução 4 Computação Paralela 4.1. Introdução Nos últimos anos observa-se uma tendência cada vez maior do aumento da demanda computacional na resolução de grandes problemas. Exemplos de aplicações que exigem alto

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Computação de Alta Perfomance com Software Livre (Clusters)

Computação de Alta Perfomance com Software Livre (Clusters) Computação de Alta Perfomance com Software Livre (Clusters) 3º Seminário de Tecnologia da Informação UCSal Marcelo Soares Souza (marcelo@cebacad.net) CEBACAD Centro Baiano de Computação de alto Desempenho

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955 O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma

Leia mais

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede Prof. Samuel Souza } Monolíticas Aplicações em um computador centralizado } Em Rede Aplicações com comunicação em rede } Distribuídas Comunicação e cooperação em rede } Aplicações que são funcionalmente

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo 1 Professores: Aula 10 Lúcia M. A. Drummond Simone de Lima Martins Conteúdo: Arquiteturas Avançadas - Arquiteturas RISC - Processamento Paralelo 2 Arquiteturas RISC Reduced Instruction Set Computer se

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 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

Leia mais

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

Infra-Estrutura de Software. Introdução. (cont.) Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como

Leia mais

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES ALGORÍTMOS PARALELOS (Aula 2) Neyval C. Reis Jr. OUTUBRO/2004 LCAD Laboratório de Computação de Alto Desempenho DI/UFES Programa do Curso LCAD 1. Introdução 2. Arquitetura de Computadores 3. Arquiteturas

Leia mais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32

Leia mais

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

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

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS COM MÚLTIPLOS PROCESSADORES LIVRO TEXTO: CAPÍTULO 13, PÁGINA 243 Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Arquiteturas que possuem duas ou mais CPUs interligadas

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos Conceitos HW e SW Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Roteiro da Aula Conceitos de Hardware Conceitos de Software Combinações de SW e HW 3 Sistemas Distribuídos

Leia mais

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas: Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; - pesquisa em fusão de energia; - diagnóstico médico; - simulações

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Referências Caracterização de Sistemas Distribuídos Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Capítulo 9 Seções 9.1 a 9.3 Distributed Systems: concept

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e Ferramentas

Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e Ferramentas 1 Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

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

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Paralelização Introdução a vetorização, OpenMP e MPI

Paralelização Introdução a vetorização, OpenMP e MPI 1/45 Paralelização Introdução a vetorização, OpenMP e MPI 1 Conceitos Paulo Penteado IAG / USP pp.penteado@gmail.com Esta apresentação: Arquivos do curso: Artigo relacionado: http://www.ppenteado.net/ast/pp_para_on/pp_para_on_1.pdf

Leia mais

S.O.: Conceitos Básicos

S.O.: Conceitos Básicos S.O.: Conceitos Básicos Camada de software localizada entre o hardware e os programas que executam tarefas para o usuário; Acessa os periféricos Entrada e Saída Esconde os detalhes do hardware para o programador

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 4 - CLUSTER DE COMPUTADORES 1. INTRODUÇÃO Grande parte do tempo, os computadores que utilizamos encontram-se ociosos, ou seja, sem nada para processar. Isso se deve, em grande parte, pelas aplicações

Leia mais

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Introdução à Organização de Computadores Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Tópicos Processadores Memória Principal Memória Secundária Entrada e

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Threads 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Threads Processos Threads Conceituação Descrição e Imagem de uma Thread Tipos de thread

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 6 - ARQUITETURAS AVANÇADAS DE COMPUTADORES 1. INTRODUÇÃO As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com ela o conceito de arquitetura avançada tem se modificado. Nos

Leia mais

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos 4.1 Conceito de Processo Um Sistema Operacional executa uma

Leia mais

Organização de Computadores 2005/2006 Processamento Paralelo

Organização de Computadores 2005/2006 Processamento Paralelo Organização de Computadores 2005/2006 Processamento Paralelo Paulo Ferreira paf a dei.isep.ipp.pt Maio de 2006 Introdução 2 Porquê?...........................................................................................

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

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

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

Aspectos de Programação Paralela em Máquinas NUMA

Aspectos de Programação Paralela em Máquinas NUMA Aspectos de Programação Paralela em Máquinas NUMA Alexandre Carissimi 1 Fabrice Dupros 2 Jean-François Méhaut 3 Rafael Vanoni Polanczyk 1 1 Instituto de Informática UFRGS Caixa Postal 15.064 Porto Alegre

Leia mais

COMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0

COMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0 COMPUTAÇÃO PARALELA uma visão geral Guilherme Galante v.2.0 Guilherme Galante Bacharel em Informática Unioeste (2003) Mestre em Ciência da Computação UFRGS (2006) Professor Assistente do curso de Informática/Ciência

Leia mais

Processamento Paralelo

Processamento Paralelo Processamento Paralelo Hardware Paralelo Universidade Estadual de Santa Cruz Bacharelado em Ciência da Computação Prof. Esbel Tomás Valero Orellana Portabilidade O principal problema das primeiras maquinas

Leia mais

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

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

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

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

Leia mais

7 Processamento Paralelo

7 Processamento Paralelo 7 Processamento Paralelo Yes, of course, who has time? Who has time? But then if we do not ever take time, how can we ever have time? (The Matrix) 7.1 Introdução Classificação de Sistemas Paralelos Diversas

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução Cluster Resumo Introdução Cluster Cluster Beowulf Curiosidades Conclução Introdução Sua empresa esta precisando fazer um grande processamento; As Nuvens existentes não são suficientes para sua empresa;

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerencia de Processos 4.1 Introdução aos Processos Gerenciamento de Processos Processo -Definição: É uma abstração do sistema

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br ESQUEMA DE UM COMPUTADOR Uma Unidade Central de

Leia mais

FACULDADE PITÁGORAS PRONATEC

FACULDADE PITÁGORAS PRONATEC FACULDADE PITÁGORAS PRONATEC DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br Objetivos Ao final desta apostila,

Leia mais

Introdução a Computação Paralela e a Montagem de Clusters.

Introdução a Computação Paralela e a Montagem de Clusters. Introdução a Computação Paralela e a Montagem de Clusters. Marcelo Souza (marcelo@cebacad.net) Granduando em Sistema da Informação CEBACAD Centro Baiano de Computação de alto Desempenho Introdução a Computação

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

O que é Grid Computing

O que é Grid Computing Grid Computing Agenda O que é Grid Computing Grid vs Cluster Benefícios Tipos de Grid Aplicações Ferramentas e padrões Exemplos no mundo Exemplos no Brasil Grid no mundo dos negócios Futuro O que é Grid

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Introdução à Organização de Computadores Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 CPU (Central Processing Unit) é o coordenador de todas as atividades

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Aula 04: Sistema Operacional Material Didático do Livro: Introdução à Informática Capron,, H. L. e Johnson, J. A Pearson Education Sistemas Operacionais: Software Oculto Serve

Leia mais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas

Leia mais

Capítulo 1 Introdução

Capítulo 1 Introdução Capítulo 1 Introdução Programa: Seqüência de instruções descrevendo como executar uma determinada tarefa. Computador: Conjunto do hardware + Software Os circuitos eletrônicos de um determinado computador

Leia mais

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Sistemas Operacionais (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Classificações 3. CPU 4. Memória 5. Utilitários O que se

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta 1 Mono e multiprogramação Introdução Classificação (Aula 2) Recap Sistemas Máquina Profa. Patrícia Gerenciador D. CostaLPRM/DI/UFES Provê Fornece Compartilhamento programador máquina justa recursos Operacionais

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo Módulo 4: Processos Conceito de Processo Conceito de Processo Escalonamento de Processos Operações com Processos Processos Cooperativos Comunicação entre Processos Um sistema operacional executa uma variedade

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação Disciplina A Disciplina B Código Disciplina C/H Curso Disciplina C/H Código Curso Ano do Currículo 66303 ESTRUTURA DE DADOS I 68/0 ENG. DE

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

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

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS 1. Introdução a supercomputação 2. Visão geral de Mainframe 3. Cluster de computadores 4. Cluster Beowulf considerações de projeto 5. Cluster x Grid 6.

Leia mais

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Princípios de sistemas operativos Rui Maranhão (rma@fe.up.pt) Agenda objectivos de um computador objectivos de um sistema operativo evolução dos sistemas operativos tipos de sistemas

Leia mais

Cluster HPC High Performance Computing.

Cluster HPC High Performance Computing. Faculdade de Tecnologia de Guaratinguetá. doze, março de 2009. Cluster HPC High Performance Computing. Diogo Salles, Thiago Pirro, Camilo Bernardes, Paulo Roberto, Ricardo Godoi, Douglas, Fauzer. Sistemas

Leia mais

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Multi-processamento Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Arquitecturas MIMD de memória distribuída Massive Parallel Computers Sistemas distribuídos Ainda

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS 1. Histórico Primeiros computadores Computadores dos anos 50 e 60 Primeiros computadores com sistemas operacionais Surgimento das redes de computadores Nos anos 70 início das pesquisas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Dra. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille, da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia mais

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

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais