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. hermes@dc.ufscar.br

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

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

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

} 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

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

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

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

Everson Scherrer Borges João Paulo de Brito Gonçalves

Everson Scherrer Borges João Paulo de Brito Gonçalves Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das

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

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

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

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

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 Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito

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

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

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

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

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 Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

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

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: 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

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem Sumário Introdução Arquitetura Provedores

Leia mais

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia

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

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

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade I Introdução 11/02/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Introdução Conceituação de SO Funções Básicas Breve Histórico Tipos de SO Fundamentos

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES Eriko Carlo Maia Porto UNESA Universidade Estácio de Sá eriko_porto@uol.com.br Última revisão Julho/2003 REDES DE COMPUTADORES INTRODUÇÃO EVOLUÇÃO DOS SISTEMAS DE COMPUTAÇÃO Década de 50 introdução dos

Leia mais

Sistemas Operacionais Introdução. Professora: Michelle Nery

Sistemas Operacionais Introdução. Professora: Michelle Nery Sistemas Operacionais Introdução Professora: Michelle Nery Área de Atuação do Sistema Operacional Composto de dois ou mais níveis: Tipo de Sistemas Operacionais Sistemas Operacionais Monotarefas Sistemas

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I

UFRJ IM - DCC. Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade I 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 ORGANIZAÇÃO DA UNIDADE Conceituação de SO Funções Básicas Breve Histórico Tipos

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

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 INTRODUÇÃO REDES EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 Computadores eram máquinas grandes e complexas, operadas por pessoas altamente especializadas; Não havia interação direta entre usuários

Leia mais

Unidade 13: Paralelismo:

Unidade 13: Paralelismo: Arquitetura e Organização de Computadores 1 Unidade 13: Paralelismo: SMP e Processamento Vetorial Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura SMP e alguns detalhes

Leia mais

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

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Sistemas Operativos Threads 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Dos Processos para os Threads O conceito de thread foi introduzido na tentativa de

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

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

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

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema Operacional (SO) é um programa colocado entre o hardware do

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

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br INTRODUÇÃO O que é um sistema operacional? História dos sistemas operacionais Conceitos dos Sistemas Operacionais Estrutura

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais

Leia mais

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

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais Laboratório de Sistemas Operacionais Aula 1 Flávia Maristela (flavia@flaviamaristela.com) Tudo o que já vimos antes... Introdução

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

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

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE III: Infraestrutura de Tecnologia da Informação Atualmente, a infraestrutura de TI é composta por cinco elementos principais: hardware, software,

Leia mais

SISTEMAS OPERACIONAIS 2007

SISTEMAS OPERACIONAIS 2007 SISTEMAS OPERACIONAIS 2007 VISÃO GERAL Sumário Conceito Máquina de Níveis Conceituação de SO Componentes do SO Visões do SO Conceito de Sistemas O que se espera de um sistema de computação? Execução de

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Software em Sistemas Distribuídos Aplicativo ou Sistema Operacional Sincronismo Interação Controles Um sistema operacional moderno provê dois serviços fundamentais para o usuário

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

Processamento de Dados

Processamento de Dados Processamento de Dados Execução de Programas Os computadores não entendem nada além de comandos, dados e endereços escritos em linguagem binária, também chamada de linguagem de baixo nível. Ela utiliza

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

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni Material 5 Administração de Recursos de HW e SW Prof. Edson Ceroni Desafios para a Administração Centralização X Descentralização Operação interna x Outsourcing Hardware Hardware de um Computador Armazenamento

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

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores As empresas mais antigas e ainda hoje no mercado que fabricam CPUs é a Intel, AMD e Cyrix.

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR Sistemas Operacionais INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR 1 Introdução O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

Tipos de sistemas operacionais

Tipos de sistemas operacionais Tipos de sistemas operacionais Sistemas Operacionais de Computadores de Grande Porte Sistemas Operacionais para Servidores Sistemas Operacionais de Multiprocessadores Sistemas Operacionais para Computadores

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - Anéis Ópticos em Backbone www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução Em 1980 foi formado o grupo de trabalho ANSI X3T9.5 com a finalidade de desenvolver

Leia mais

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva madalena.silva@ifsc.edu.

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva madalena.silva@ifsc.edu. Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva madalena.silva@ifsc.edu.br Agenda Classificação de SO quanto a: Interface Processamento Tarefas

Leia mais