Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação

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

Download "Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação"

Transcrição

1 Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação Computação Paralela em Sistemas Embarcados Dalvan Jair Griebler Orientador: Luiz Gustavo Leão Fernandes Introdução à Pesquisa Porto Alegre, novembro de 2010

2 Resumo Sistemas embarcados aparentam (devido ao seu tamanho, principalmente) serem apenas dispositivos limitados e com poucos recursos computacionais. Entretanto, este ponto de vista é equivocado, pois estes sistemas apresentam diversas características e funcionalidades importantes. Neste contexto, o trabalho desenvolvido tem por objetivo realizar um estudo sobre sistemas embarcados, através de uma abordagem qualitativa, apresentando conceitos, aplicações e áreas em que se aplicam. Com a evolução destes sistemas, a necessidade de desempenho tornou-se um aspecto relevante, o que fez com que diferentes pesquisas e técnicas surgissem. O presente estudo, então, apresenta também aspectos relacionados às tentativas de melhorias deste desempenho, abordando soluções de programação paralela e algumas ferramentas automatizadas de geração de código para sistemas embarcados multiprocessados. No decorrer do trabalho, comparações entre modelos são realizadas, levando em consideração os requisitos para atender as necessidades de desempenho, consumo de energia, exibilidade, operações de tempo real, dentre outros. Palavras Chaves: Sistemas Embarcados, Programação Paralela, Sistemas Embarcados Multiprocessados.

3 Abstract Embedded systems appear only to be limited devices with few computing resources. However, this view is wrong, because these systems have dierent characteristics and important features. In this context, the work presents a study on the embedded system through a qualitative approach, presenting concepts, applications and areas in which they are applied. With the evolution of these systems, the need for performance has become an important issue, causing the emergence of dierent research and techniques. So, this study also presents aspects related to attempts to improve this performance, presenting parallel programming solutions and some automated tools for code generation for multiprocessor embedded systems. During this work, comparisons between models are made according to the requirements to achieve the performance needs, power consumption, exibility, real time operations, among others. Keywords: Embedded Systems, Parallel Programming, Multiprocessor Embedded Systems.

4 Lista de Figuras 2.1 Arquitetura HeMPS. Extraído de [1] Resumo de Aplicações Embarcadas. Adaptado de [2] MPSOC Heterogênio e Homogênio. Adaptado de [3] Memória Distribuída. Adaptado de [3] Memória Compartilhada. Adaptado de [3] Memória Híbrida. Adaptado de [3]

5 Lista de Símbolos e Abreviaturas SOC System-on-Chip 6 MPSoC Multiprocessor System-on-Chip 6 DVD Digital Video Disc 9 CD Compact Disc 9 VLSI Very Large Scale Integration 9 HeMPS HERMES Multiprocessor System 10 PE Processing Element 10 RAM Random Access Memory 10 DMA Direct Memory Access 10 NoC Network-on-Chip 11 RFID Radio-Frequency IDentication 14 GPS Global Positioning System 15 RISC Reduced Instruction Set Computer 16 CISC Complex Instruction Set Computer 16 MIPS Microprocessor without Interlocking Pipeline Stages 17 ARM Advanced RISC Machine 17 AMD Advanced Micro Devices 18 VIA Virtual Interface Adapter 18 PowerPC Power Optimization With Enhanced RISC Performance 18 Computing SPARC Scalable Processar ARChitecture 18 DSP Digital Signal Processor 18 ASIC Application Specic Integrated Circuit 20 PDA Personal Digital Assistant 20 CLB Conguration Logical Blocks 20 IOB Input/Output Block 20 FPGA Field-Programmable Gate Array 20 2

6 CPU Central Processing Unit 20 ASIC Application-Specic Instruction-set Processor 20 FIFO First In - First Out 21 RTOS Real-Time Operating Systems 21 POSIX Portable Operating System Interface 21 MMU Memory Management Unit 21 EPOS Embedded Parallel Operating System 21 BSD Berkeley Software Distribution 21 RTEMS Real-Time Executive for Multiprocessor Systems 22 GSE Grupo de Sistemas Embarcados 22 PUCRS Pontifícia Universidade Católica do Rio Grande do Sul 22 ASMP Asymmetric Mutiprocessing 28 TM Transactional Memory 30 STM Software Transactional Memory 30 HTM Hardware Transactional Memory 30 HyTM Hybrid Transactional Memory 31 OpenMP Open MultiProcessor 32 API Application Programming Interface 32 BSP Bulk Synchronous Parallel 33 LogP Latency overhead gap Processor 33 MAPS MPSoC Application Programming Studio 34 3

7 Sumário LISTA DE FIGURAS 1 LISTA DE SÍMBOLOS E ABREVIATURAS 2 Capítulo 1: Introdução Motivação e Objetivos Organização do Trabalho Capítulo 2: Sistemas Embarcados: Embasamento Sistemas Embarcados de Tempo Real: Hard and Soft SoC (System-on-Chip) MPSoC (Multiprocessor System-on-Chip) NoC (Network-on-Chip) Aplicações para Sistemas Embarcados Aplicações na Medicina Aplicações em Dispositivos de Comunicação Aplicações de Propósito Geral Aplicações em Meios de Transporte Aplicações Altamente Especializadas Capítulo 3: gias Arquiteturas, Componentes e Tecnolo Arquiteturas RISC e CISC Processadores para Sistemas Embarcados MIPS (Microprocessor without Interlocking Pipeline Stages) ARM (Advanced RISC Machine) x

8 3.2.4 PowerPC (Power Optimization With Enhanced RISC Performance Computing) SPARC (Scalable Processar ARChitecture) DSP (Digital Signal Processor ) Tecnologias de Projeto Microcontroladores ASIC (Application Specic Integrated Circuit ) FPGA (Field-Programmable Gate Array) ASIP (Application-Specic Instruction-set Processor ) Sistemas Operacionais Embarcados Capítulo 4: Computação Paralela Sistemas Embarcados Multiprocessados Tipos de Sistemas Multiprocessados Memória em Sistemas Embarcados Paralelismo Paradigmas entre MPSoCs e Multi-Core Programação Paralela SMP (Symmetric Multiprocessing) ASMP ou AMP (Asymmetric Mutiprocessing) Processos e Threads Task e Mapeamento Comunicação e Sincronização Semáforos e Locks Memória Transacional Paralelizando uma Aplicação Soluções para Programação Paralela OpenMP (Open MultiProcessor) BSP (Bulk Synchronous Parallel) LogP (Latency overhead gap Processor ) HellFire Framework MAPS (MPSoC Application Programming Studio) Capítulo 5: Considerações Finais 35 REFERÊNCIAS BIBLIOGRÁFICAS 36 5

9 1 Introdução Sistemas embarcados são dispositivos pequenos com limitações de hardware, destinados a nalidades especícas nas diversas áreas em que se aplicam [4]. Conhecido como System on Chip (SOC), a arquitetura destes sistemas possui basicamente um processador, memória e barramento em um único chip. A busca e utilização destes sistemas vêm aumentando gradativamente nos últimos anos, motivando a realização de novas pesquisas para melhoria e otimização dos mesmos [5]. Sistemas embarcados trabalham geralmente com aplicações de tempo real [6], rodam um processo com deadlines curtos, muito encontrados em automóveis, na aviação e na medicina. Existem, também, aplicações que não são de tempo real, mas que, mesmo assim, necessitam um deadline não muito grande, como em dispositivos móveis [7]. Tratando-se de sistemas embarcados, o consumo de energia e o tamanho do hardware são aspectos importantes no projeto [8]. Quando se tem por objetivo aumentar o desempenho, é natural pensar em aumentar a frequência do processador. Com isso, entretanto, o projeto esbarra no problema de consumo de energia. A opção é usar a arquitetura Multiprocessor Systemon-Chip (MPSoC), dispondo de vários processadores com baixa frequência em único chip [9]. 1.1 Motivação e Objetivos O uso de multiprocessadores em sistemas embarcados tendem a se expandir cada vez mais, bem como a utilização de aplicações que exigem maior poder de processamento. Exemplo disso é a renderização de imagens, renderização de vídeo e cálculos complexos. Em um futuro próximo, câmeras digitais terão maior capacidade de resolução, celulares terão aplicativos avançados e sosticados e os sistemas embarcados, em geral, passarão a ser mais potentes. A motivação para o estudo computação paralela está diretamente relacionada com o conceito MPSoC em sistemas embarcados, uma área ainda pouco conhecida para os pesquisadores da computação paralela, visto que seus conceitos, muito se relacionam com técnicas clássicas de paralelismo. 6

10 Transformar sequencial em paralelo é sempre uma tarefa complexa, principalmente com projeto de software e hardware. Saber como estes sistemas funcionam e onde se aplicam, é o caminho para o entendimento de novas pesquisas e uma forma de abstrair parte da complexidade do modelo de programação paralela em sistemas embarcados. O objetivo deste trabalho é estudar e explorar sistemas embarcados como um todo, assim como o uso de computação paralela nos mesmos. Para tanto, pretende-se abordar os principais conceitos, como o funcionamento, arquiteturas, sistemas operacionais, processadores, aplicações, computação paralela e programação paralela. 1.2 Organização do Trabalho Este trabalho está organizado da seguinte forma: O Capítulo 2 faz um embasamento sobre sistemas embarcados, no qual são estudados conceitos como: sistemas embarcados de tempo real; SoC; MPSoC; NoC; e as principais aplicações de sistemas embarcados. As principais arquiteturas, componentes e tecnologias de sistemas embarcados são abordados no Capítulo 3. No Capítulo 4 são estudados sistemas multiprocessados, os paradigmas entre MPSoC e multi-core, programação paralela para sistemas embarcados e soluções para programação paralela. As Considerações Finais são apresentas no Capítulo 5, seguida pelas Referências Bibliográcas ultilizadas para a elaboração deste trabalho. 7

11 2 Sistemas Embarcados: Embasamento Sistemas embarcados são sistemas microprocessados e dedicados a realizar tarefas pré-denidas, geralmente usados para um propósito em especíco. Estes sistemas são, também, limitados em relação à potencialidade de hardware, por possuirem pouca memória, pouca capacidade de processamento e armazenamento. Este Capítulo apresenta um estudo sobre conceitos básicos relacionados com os sistemas embarcados. 2.1 Sistemas Embarcados de Tempo Real: Hard and Soft Um sistema embarcado de tempo real é denido a partir do tempo em que ele deve retornar o resultado, ou um limite de tempo para responder de forma a garantir a estabilidade nas suas operações. Isso implica que, além das tarefas do sistema operacional de alocação de recursos entre processos concorrentes, um sistema operacional de tempo real também tem a obrigação de controlar o tempo, acompanhando as exigências de cada tarefa em tempo real, garantindo que a aplicação tenha os recursos necessários antes do prazo [10]. Em sistemas embarcados de tempo real, os dados são processados assim que chegam, e o atraso não é tolerado, diferentemente dos que não são de tempo real, nos quais os dados são disponibilizados para serem processados e o atraso acaba não sendo prejudicial no resultado. Alguns sistemas embarcados são de hard real-time, nos quais as operações devem ser executadas até o deadline, i.e., a resposta do sistema sempre deve atender o tempo que lhe foi determinado. Geralmente, são sistemas bastante importantes, a demora dos resultados pode causar sérios prejuízos ao ser humano ou para uma empresa. Exemplo disso são aplicações médicas, aéreas, controladores de bomba atômica e automobilísticas [11]. O autor de [10] cita 8

12 que aplicações de hard real-time devem ser garantidas 100% no tempo de resposta na execução de uma task. No entanto, existem também os sistemas embarcados soft real-time. Nestes, as operações podem ser executadas além do deadline, podendo ultrapassar o tempo pré-determinado para a resposta, não implica que o atraso causará danos irreversíveis. Exemplo disso são aplicações como leitoras de CD/DVD, multimídia e entre outros que atendem a estes conceitos [11]. Deve-se garantir pelo menos 99,9% na resposta de uma aplicação, não necessáriamente 100% no tempo [10]. 2.2 SoC (System-on-Chip) É um sistema completo integrado em um único chip, onde estão contidos o processador, memória, controladores, I/O e demais elementos que compõem a arquitetura, interconectados por um barramento interno. Os SoCs são circuitos para aplicações especícas com suporte a programação, possuem restrições de memória e operam com processadores de baixa potência [4]. Para [10], SoCs apresentam duas implicações contraditórias, sendo que de um lado oferecem oportunidades para redução de custo, e por outro são totalmente especializados, o que reduz o tamanho do componente. 2.3 MPSoC (Multiprocessor System-on-Chip) O usuário tem se tornado mais exigente em relação às aplicações em sistemas embarcados, necessitando maior poder de processamento. A arquitetura multiprocessada (MPSoC) possibilita que se trabalhe com aplicações que exigem um poder computacional maior, tais como os celulares, vídeo games, entre outros. Mais funcionalidades e melhoria na interface destes sistemas tem sido estudadas e implementadas. A limitação com relação à memória e potência dos processadores continua, mas o potencial é bem maior do que o que se consegue com SoC [12]. Para [13], a justicativa de MPSoCs existirem é consequência da necessidade de aplicações como multimídia e celulares. MPSoC surgiu graças ao VLSI (Very Large Scale Integration), que este proporciona mais de 1 milhão de transístors em um circuito integrado. MPSoC caracteriza a ideia multi-core, onde concentram-se vários elementos de processamento em um único chip. A comunicação entre os cores é conhecida como uma rede intra-chip, no qual esta rede trabalha com o mesmo conceito de redes Mesh. Nos elementos de processamento, opera um micro- 9

13 kernel (um sistema operacional linux que processa as tasks) [1]. Um exemplo de MPSoC é dado na Figura 2.1, que consiste na arquitetura HeMPS (HER- MES Multiprocessor System). Figura 2.1: Arquitetura HeMPS. Extraído de [1]. A arquitetura HeMPS está organizada em uma rede em malha, na qual para cada elemento de processamento existe um roteador. Esta rede é conhecida como NoC. O PE (Processing Element), denominado como Plasma-IP, possui um processador Plasma, uma memória RAM (Random Access Memory), um DMA (Direct Memory Access) e uma interface de rede para a comunicação. Cabe ao PE mestre distribuir as tarefas (armazenadas no Task Repository) entre os demais PE [1]. MPSoCs trabalham com duas importantes taxonomias: Multiprocessors homogêneos e heterogêneos [13]. Em uma arquitetura MPSoC homogênea, os elementos de processamento trabalham na mesma frequência e tipo de processador, aplicado também à memória RAM e à memória cache. Porém, em sistemas heterogêneos o cenário é o inverso, pois os elementos de processamento (core) trabalham com diferentes frequências e tipos de processadores. A arquitetura MPSoC pode conter mais de um conjunto de instruções restrito, processadores RISC (Reduced Instruction Set Computer ), para interface com o usuário. Para [14], a combinação de RISC com DSP (Digital Signal Processor) é usada em aplicações para celulares. Um DSP é usado também para codicação e decodicação de voz, processador de áudio para reprodutor de música, processador de imagem para funcionalidades de uma câmera e um processador de vídeo para compatibilidades em um celular. MPSoC, além de fornecer maior poder computacional aos sistemas embarcados, proporciona uma redução no consumo de energia, pois os elementos de processamento operam em frequências mais baixas. Visto que a frequên- 10

14 cia de um processador é proporcional ao consumo de energia. Isso implica que o consumo de energia em sistemas embarcados é muito importante. Um exemplo é o telefone celular, se o consumo de energia for excessivo, o celular deverá ser carregado com maior frequência, pois a bateria do mesmo seria descarregada mais rapidamente [4]. 2.4 NoC (Network-on-Chip) Network-on-Chip(NoC) é uma infra-estrutura de comunicação que contém uma rede de interconexão em um único chip. A NoC é baseada na ideia de grandes redes de computadores, para o qual são aplicados os conceitos básicos como switch, roteadores e topologia [15]. A NoC permite com que vários cores possam se comunicar dentro de um único chip, conceito usado em MPSoC (arquiteturas multiprocessadas) para caracterizar alta complexidade estrutural e diversidade funcional. Com a estrutura de NoCs podem ser interconectados cores homogêneos e heterogêneos e sua topologia na maioria dos casos é em malha (Mesh) ou em árvore [15]. Em um canal de comunicação dentro do circuito integrado, somente um PE pode comunicar por vez (ocupar um determinado canal de comunicação). Havendo vários canais de comunicação, torna-se possível que dois ou mais PEs efetuem trocas de mensagem simultâneas. Com o uso de rede em malha, um maior desempenho em sistemas embarcados MPSoC pode ser obtido [1]. Através do conceito de NoC, torna-se possível a criação de MPSoCs para fornecer paralelismo entre os cores de uma rede de os em um circuito integrado, sendo que a utilização do mesmo implica no maior consumo de energia, uso de protocolos de comunicação, latência da rede e complexidade de projeto [1]. 2.5 Aplicações para Sistemas Embarcados Caracterizar aplicações na medicina, aplicação em dispositivos de comunicação, aplicações em meios de transporte e aplicações altamente aspecializadas é importante. A Fígura 2.2 apresenta um resumo de aplicações em sistemas embarcados. Esta seção tem por objetivo estudar a aplicação dos sistemas embarcados e destacar sua importância no cotidiano, as aplicações de sistemas embarcados estão divididas em diversas áreas: 11

15 Figura 2.2: Resumo de Aplicações Embarcadas. Adaptado de [2] Aplicações na Medicina A Medicina é uma das principais áreas que se beneciam dos sistemas embarcados. Nela são atribuidos os conceitos de funcionaldade especíca e sistemas de hard real-time, algo que somente é proporcionado no contexto de sistemas embarcados [15]. A seguir são citadas algumas das principais aplicações embarcadas usadas nesta área: Raio X Cirúrgico e Tomograa: O sistema embarcado é responsável por fazer o processamento de imagem, vídeo e controle de emissão de radiações; Eletrocardiógrafo: O sistema embarcado é responsável pelo processamento da variação de sinais do coração e o processamento multimídia; Ecograa: O sistema embarcado é responsável pela produção de onda sonora e pela interpretação do eco recebido e processmento da imagem digital; Oxímetro: O sistema faz a interpretação de sinais sobre a quantidade de oxigênio no sangue; Microdermoabrasor Cristal Peeling: Controla a emissão de luz; Cadeira de Dentista: Usado para chekpoint com visor multimídia (possuindo um computador embarcado); Computador Móvel Médico: Processa informações para diagnóstico (programas especícos). 12

16 2.5.2 Aplicações em Dispositivos de Comunicação Esta área de aplicação é mais comum e possui um potencial grande na venda de embarcados. Um atraso mínimo é aceitável nestes aplicaticavos, encontrados no contexto de sistemas que não são de hard real-time [15]. Estes destacam-se os seguintes dispositivos: Celulares: Embarcados com semelhança ao computador pessoal. Além de fazer ligações telefônicas, processar voz, vídeo e imagem, possuem aplicativos para conexão com a Internet, GPS (Global Positioning System), jogos e edição de texto; Moduladores e Demoduladores de Sinal: Possuem funcionalidades especícas na interconexão de mídias de comunicação com sinais diferentes; Switchs, Roteadores e Hubs: Aplicativos para intercoxão e comunicação de dispositivos em rede (processamento de sinais); Televisores Digitais: Processam imagem e vídeo com sinal digital Aplicações de Propósito Geral Estas aplicações são usadas num propósito geral e não são de tempo real, não exigindo que a resposta seja em hard real-time, pois as aplicações não inferem um prejuízo, sendo aceitável ultrapassar o deadline proposto [10]. As principais aplicações são as seguintes: Playstation: Poderosos sistemas embarcados, destinados a processamento de imagem e vídeo; Elevadores: Sistemas embarcados que devem controlar as solicitações de subida e descida do usuário; Câmeras de Vídeo: Capturam imagem e vídeo, sendo que o sistema embarcado tem a responsábilidade de fornecer uma interface com o usuário e converter a imagem ou vídeo para um formato digital; Terminais de Banco: Efetuam transações e operações bancárias, onde o sistema embarcado controla as operações e fornece a interface com o usuário; 13

17 Reconhecimento da Retina, Voz, Face e Impressão Digital - Usados no processo de autenticação, no qual o sistema embarcado tem a responsablidade de captura e processamento de sinais, imagens e vídeo, bem como sistemas baseados em cartões magnéticos, códigos de barra e RFID (Radio-Frequency IDentication) Aplicações em Meios de Transporte As aplicações embarcadas em meios de transporte têm se tornado mais comuns, e para tanto, estas devem ser de hard real-time, pois estão diretamente relacionadas com o ser humano, e uma falha pode custar a vida [15]. Nota-se a importâcia de sistemas estáveis e seguros e que garantem que os recursos respondam no tempo quando é requisitado. Automóveis: Os automóveis são praticamente todo controlado por embarcado, desde o controle do freio, injeção eletrônica, computador de bordo, trava elétrica, vidros elétricos, etc; Aviões: Assemelham-se ao uso de embarcados em automóveis, porém o número de embarcados usados em aviões é bem maior, dentre eles destacam-se o piloto automático e o painel de controle; Navios: Usam sistemas para controlar motores e para controlar a rota, bem como comunicar-se com a base, radares e obtenção de coordenadas; Trem: Um trem moderno é praticamete todo controlado por sistemas embarcados. Nos mais atuais até mesmo o condutor do trem é um sistema embarcado. Os demais sistemas embarcados desempenham papel importante no controle de freio, velocidade e entre outros Aplicações Altamente Especializadas No contexto de aplicações especializadas entram os sistemas embarcados mais restritos (ou menos acessíveis) e geralmente encontrados apenas sob aplicação governamental e militar. Desempenham papel importante e garantem a segurança mundial e até mesmo a vida na terra [15]. Estes sistemas são de tempo real hard, a seguir são listados as principais aplicações: Usinas Nucleares: Usam sistemas em grande quantidade com sensores e controladores; Aeronaves Espaciais: Possuem sistemas embarcados como sensores, controladores e sistemas de comunicação; 14

18 Robôs: Encontrados em lugares como piloto de avião, usados em aplicações nas quais a intervenção humana acaba sendo impossível, muitas vezes enviados em expedições na lua para coleta de informações; Submarinos: Controles em geral sobre as principais funcionalidades do submarino e piloto automático são os mais comuns em submarinos; Comunicação Militar: Sistemas embarcados de comunicação sem o; GPS: Usado nos sistemas militares, passou a ser usado no cotidiano de forma livre para localização por posição. 15

19 3 Arquiteturas, Componentes e Tecnologias 3.1 Arquiteturas RISC e CISC Arquitetura RISC é basicamente constituída por um pequeno conjunto de instruções, execução de chamada de funções, menor quantidade de modos de endereçamento, uso intenso de pipelining e execução rápida de cada instrução [16]. Esta arquitetura é caracterizada pela execução de instruções diretamente em hardware e endereçamento de memória simples, sendo destinado para aplicações de propósito especíco [10]. Já os processadores CISC trabalham com conjunto de instruções mais complexas e maiores [10]. Estes processadores concentra-se em uma arquitetura com diversas instruções de hardware, cada qual, consumindo diferentes ciclos de execução [16]. Esta arquitetura é caracterizada por ser uma arquitetura em que a partir de programas, a tradução é realizada para uma linguagem mais próxima do hardware, o que torna a execução das mesmas mais complexas. Sendo que esta arquitetura, é geralmente encontrada em computadores e sistemas de propósito geral [10]. 3.2 Processadores para Sistemas Embarcados A grande maioria das arquiteturas de sistemas embarcados possue restrições em suas especicações, pois são sistemas que dispõe de uma variedade de limitações. Para tanto, nestes sistemas o conjunto de instruções é bem menor se comparado com microprocessadores de uso geral. Esta seção faz um estudo das principais arquiteturas usadas em sistemas embarcados. 16

20 3.2.1 MIPS (Microprocessor without Interlocking Pipeline Stages) A MIPS (Microprocessor without Interlocking Pipeline Stages ) é uma das principais arquiteturas de sistemas embarcados. Seu conjunto de instruções é de 64 bits. MIPS é usada geralmente em vídeo games e outros sistemas embarcados. Não somente trabalha com este conjunto de instruções, como também suporta instruções de 32 e 16 bits [17]. As regras de instruções são semelhantes e referentes à arquitetura RISC, com instruções xas de 32 bits, possuindo formatos para instruções de desvio, para instruções de operações de aritmética e lógica, e para load/store e endereçamento imediato. Não importando o formato, o tamanho sempre será de 6 bits e 37 instruções. Os registradores são usados para avaliar desvios condicionais, signicando que os registradores podem ser comparados por igualdade ou por desigualdade, sendo que o desvio é tomado somente se a condição é satisfeita [18] ARM (Advanced RISC Machine) Esta arquitetura é a mais popular entre os sistemas embarcados, muitas aplicações a utilizam. Os processadores ARM possuem instruções mais complexas do que um processador RISC normalmente oferece, ao contrário de outros chips, como os da IBM, Motorola e Intel [6]. As instruções ARM começam com um campo de 4 bits que determina se uma instrução é de tempo real ou não, dependendo dos códigos de condição. Os condicionais são considerados como executando condicionalmente uma instrução incondicional. Uma execução condicional permite que branch salte sobre uma única instrução, sendo que esta, exige menos espaço de código e tempo para executar [18]. Uma de suas vantagens é o baixo consumo de energia, devido a seus circuitos simples, pipeline curtos e projetados para que quando o processador não esteja em operação, ele consuma a menor quantia de energia possível. Os celulares são exemplos de dispositivos que usam muito a arquitetura ARM x86 O processador X86 é popular e inicialmente usado pela Intel em microcomputadores, além disso, a Intel também fabrica processadores embarcados com base nesta arquitetura, para a qual o conjunto de instruções é CISC (um conjunto de instruções mais simples com relação às outras arquiteturas de sistemas embarcados) [6]. Outros fabricantes de processadores (como AMD 17

21 e VIA) também adotaram esta arquitetura para processadores em sistemas embarcados. A principal vantagem para o uso desta arquitetura em sistemas embarcados é a semelhança com um host (uma estação de trabalho), conjunto de instruções e exibilidade equivalentes a um PC comum do mercado. Esta arquitetura também é compatível com sistema operacional Linux [16] PowerPC (Power Optimization With Enhanced RISC Performance Computing) Através da colaboração de três empresas (IBM, Motorola e Apple), foi criada a arquitetura PowerPC (Power Optimization With Enhanced RISC Performance Computing), com conjunto de instruções RISC otimizada de 64 bits e 32 bits, com suporte para operação nos modos Big-Endian e Little-Endian, possuindo especicação completa de 64 bits e mantendo a compatibilidade com o modo 32 bits [6]. Para sistemas embarcados, é mais comum o uso de processadores de 32 bits PowerPC, com o objetivo de diminuir os custos. A Motorola e a IBM são os principais fabricantes deste processador com base nesta arquitetura. É possível encontrar a arquitetura PowerPC em aplicativos embarcados como Set Top Box, multimídia, alguns aplicativos Apple, entre outros SPARC (Scalable Processar ARChitecture) A arquitetura escalar SPARC(Scalable Processar ARChitecture), foi desenvolvida pela SUN Microsystems, possuindo conjunto de instruções RISC. Processadores SPARC, compartilham um mesmo conjunto de instruções em um espaço linear na memória com endereços de 32 bits [16]. Esta arquitetura é tanto usada em grandes servidores quanto em sistemas embarcados, e opera nas versões 64 e 32 bits. Os processadores podem ter de 48 a 528 registradores, os quais são combinados em grupos de 8 registradores. As limitações no código de execução, estão restringidas a 6 bits de tamanho, permitindo 64 instruções. Utilizam dados inteiros que variam de 8 bits até 64 bits e dados representados em ponto utuante com largura de 32, 64 e 128 bits, armazenados no método big-endiam [16] DSP (Digital Signal Processor) O DSP é uma arquitetura de processador especíca para processamento de sinais (geralmente de áudio e vídeo), usando técnicas matemáticas para trans- 18

22 formar estes sinais. O processamento destes sinais é representado por uma sequência númerica [19]. O processador DSP é diferente dos processadores RISC e CISC, porque ele possui uma série de instruções matemáticas e poucas funções lógicas, o que o torna bem especíco. Entretanto para processament de sinais, ele é muito rápido se comparado com as demais arquiteturas de processadores [15]. Estes processadores são encontrados em aplicações como telecomunicações e processamento de áudio. Os principais fabricantes de processadores DSP são a Texas Instruments, Philips Trimedia, Airelog Device e Adaptive Solutions [19]. 3.3 Tecnologias de Projeto Para o projeto de sistemas embarcados estão diponíveis algumas tecnologias para modelar o hardware. Com o intuito de saber como estas funcionam no entendimento dos projetos de sistemas embarcados. As próximas subseções apresentam as principais tecnologias de projeto Microcontroladores Segundo [20], os cientistas começaram a colocar microprocessadores em aplicações que não tinham a ver com a computação, originando assim os microcontroladores, processadores que passaram a operar como controladores em diferentes cenários. Um carro por exemplo, possui vários microcontroladores, um para cada tipo de controle (nível de combustível, velocidade, porta, quilômetros percorridos, entre outros). Um microcontrolador é pequeno, independente e de baixo custo e deve garantir sua operação em diferentes ambientes e temperaturas. É basicamente constituído por um microprocessador simples, juntamente com dados e memória. À ele é adicionada uma interface de periféricos, por exemplo, entrada e saída digital e analógica [20] ASIC (Application Specic Integrated Circuit) Um ASIC (Application Specic Integrated Circuit ) é chip ou um cicuito integrado projetado para uma aplicação especíca com lógica não recongurável complexa. Uma vez que o circuito integrado é construído, para outra aplicação é vantajoso começar um novo projeto do zero, pois o circuito foi modelado para tal aplicação, isso implica que as ligações são feitas de acordo com as 19

23 exigências de cada aplicação. ASIC trabalha com a abordagem System-onchip, sendo esta, uma vantagem com relação ao custo global destes sistemas, que geralmente são produzidos em grandes quantidades [21]. Outra vantagem é a velocidade e conabilidade destes circuitos, pois os caminhos dentro de um chip são mais curtos do que os caminhos entre chips. ASICs são geralmente encontrados em computadores de bordo para controlar funções de um carro e também em PDAs (Personal Digital Assistant) [15] FPGA (Field-Programmable Gate Array) O FPGA (Field-Programmable Gate Array) é um plataforma recongurável e conhecida como circuito integrado ou dispositivo semicondutor, que possui uma grande quantidade de unidades lógicas idênticas para processar informações digitais, sendo que as unidades lógicas são compostas de blocos de controle (CLB), blocos de entrada e saída (IOB) e chaves de interconexão (Switch Matrix)esta composição possibilita a criação de circuitos integrados complexos [21]. FPGA é uma das plataformas mais usadas no projeto de hardware para sistemas embarcados com ampla variedade de aplicações. Por ser exível, é possível reduzir o tempo gasto para desenvolver novos embarcados. Se comparado com ASIC, os FPGAs são mais lentos e são mais caros [22] ASIP (Application-Specic Instruction-set Processor) O ASIP (Application-Specic Instruction-set Processor ) é um circuito integrado para aplicações especícas com um conjunto de instruções de processador especíco, empregado em projeto de SoCs, sendo este adaptado para uma determinada aplicação. Tem funcionalidade semelhante aos cicuitos ASIC, tendo como objetivo geral a exiblidade da CPU e o desempenho de um ASIC [23]. As vantagens em usar ASIP reetem na otimização de SoCs referente ao desempenho, eciência, consumo de energia e suporte a conguração do conjunto de instruções [21]. 3.4 Sistemas Operacionais Embarcados Sistemas operacionais embarcados são comumente chamados de rmware, responsáveis por gerenciar os recursos de hardaware e fornecer um interface intuitiva ao usuário. No mundo dos sistemas operacionais embarcados existe 20

24 uma separação de conceito de sistema operacional: existem os sistemas operacionais real-time hard e real-time soft [21]. Sistemas operacionais real-time hard são determinísticos e, além de gerenciar tasks do próprio sistema, processam tasks requisitadas pelos aplicativos em um tempo determinado. A garantia dos resultados em tempo real do SO embarcado, implica no problema de escalonamento, que caracteriza um conjunto de tasks que disputam concorrentemente um processador. O escalonador é responsável por gerenciar o acesso, visto que cada uma das tasks possui parâmetros de período de solicitação e tempo necessário para a sua execução. Para tanto, algoritmos de escalonamento como FIFO e round-robin são usados [10]. RTOS (Real-Time Operating Systems), assim são denominados os sitemas operacionais da classe real-time [24]. RTOS são ideais para ambientes com recursos limitados, oferecendo ao programador fácil acesso a recursos de hardware e são adaptados para o desenvolvimento de sistemas embarcados [15]. Nos próximos tópicos são abordados os principais sistemas operacionais real-time hard e real-time soft. ecos: Sistema operacional hard real-time desenvolvido pela empresa Red Hat (Software Open Source), baseado em arquiteturas modulares, possuindo conguração extensiva e a sua interface de programação é compatível com o padrão POSIX (Portable Operating System Interface). Ele também é caracterizado pelo suporte a múltiplos processos com espaços de endereçamento independentes, mesmo quando a MMU (Memory Management Unit) está disponível [15]; uclinux: Sistema operacional Linux enxuto, usado para rodar em microcontroladores sem MMU e com tamanho pequeno se comparado com um Linux padrão. Por padrão, uclinux não é hard real-time, mas segundo [15] exitem versões deste sistema que operam neste modo; EPOS: Sistema operacional com propósito de suportar alto desempenho em aplicações dedicadas, possuindo suporte à customização, podendo ser facilmente adaptado para aplicações especícas. Outra virtude do EPOS é dispor recursos para as aplicações com menor overhead possível, além de ser econômico [25]; TinyOS: Sistema operacional liberado sob licença BSD (Berkeley Software Distribution), projetado para rede de sensores sem o. É um sitema relativamente pequeno, mas inclui protocolos de rede, serviços distribuídos, sensor de driver e ferramentas de aquisição de dados, operando como hard real-time [26]; 21

25 QNX: Sistema operacional real-time baseado no kernel Unix, bastante usado em sistemas de telecomunicação. Empresas como Cisco, Delphi, General Electric, Siemens e Thales utilizam este sistema operacional em seus produtos, por ser escalável, conável e oferecer alto desempenho para esta área de mercado [27]; RTEMS: Sistema operacional exível e real-time, pois fornece suporte à maioria dos processadores de sistemas embarcados. Além disso, é bastante conhecido por implementar processos simples em ambiente multithread e suportar multiprocessadores [28]; Android OS: É um sistema operacional para dispositivos móveis, proprietário da empresa Open Handset Alliance. O Android oferece um conjunto completo para o desenvolvimento de aplicações, com o propósito de aproveitar ao máximo o que os aparelhos tem a oferecer, sendo que o sistema é aberto para aplicar modicações[29]; HellFireOS: É um sistema operacional real-time, pode ser implementado tanto hard quanto soft real-time e seu código é Open Source. Desenvolvido pelo grupo de pesquisa GSE (Grupo de Sistemas Embarcados) da PUCRS (Pontifícia Universidade Católica do Rio Grande do Sul), tendo como objetivo fornecer escalabilidade e modularidade. Nele são permitidas a migração de tasks de forma explícita e implícita. É um sistema capaz de ser adaptado para as principais arquiteturas de processadores e suportar dinamicamente a conguração de tarefas, pilhas, entre outros [30]; OpenWrt: Sistema operacional com licença livre, baseado no kernel Linux, com o propósito de fornecer ao usuário total administração e uma conguração customizada, fornecendo suporte a uma grande variedade de embarcados wireless [31]; Windows CE: Sistema operacional de soft real-time, proprietário da empresa Microsoft. Este sistema propõe uma interface gráca robusta, usado em dispositivos como celulares e Handhelds, com suporte às principais arquiteturas de processador embarcado, como MIPS e ARM [32]. 22

26 4 Computação Paralela Em ambientes computacionais, computação paralela consiste em aumentar o desempenho a partir de aplicações sequênciais, as quais representam a solução de um problema grande (tarefas que demoram para ser processadas) [33]. O objetivo da computação paralela é dividir este grande problema em problemas menores, a m de prover maior desempenho [34]. Computação paralela é uma forma de se obter alto desempenho. Sistemas embarcados também usam este conceito em seus ambientes e novos desaos de pesquisa são lançados constantemente. Qualquer ganho de desempenho acaba sendo importante em sistemas tão limitados. Nas próximas subseções, é realizado um estudo da abordagem de alto desempenho e paralelismo em sistemas embarcados [35]. 4.1 Sistemas Embarcados Multiprocessados Os dispositivos embarcados (em todas as áreas em que se aplicam) têm exigido mais desempenho, tarefa esta, dicultada quando da ultilização de sistemas monoprocessados. Sistemas multiprocessados são o caminho para aumentar o desempenho [35]. Segundo [3], desaos são constantes para estes sistemas, objetivo é aumentar o número de processadores em um único chip até atingir o espaço e a capacidade de cores que um sistema embarcado pode ter. A tecnologia e a aplicação irão limitar a quantidade de cores em um MPSoC. Há alguns anos, a indústria de processadores estava aumentando a potencialidade a cada versão lançada, porém, a energia consumida também aumentava, que se tornou um problema. Sistemas embarcados têm cado mais limitados, ameaçando a evolução dos mesmos. A ideia de multi-core possibilitou abrir um novo caminho para a indústria de processadores e sistemas embarcados. Trabalhando com frequências menores é possível reduzir o consumo de energia e aumentar a potencialidade dos processadores. 23

27 Em sistemas embarcados a ideia também foi aplicada aos SoCs, o que passou a ser referênciado como MPSoC. Era justamente isso que estava faltado para que os sistemas embarcados passassem a evoluir no mercado. Sistemas multiprocessados, então, passaram a ser alvo de muitas pesquisas para obter ganho de desempenho e reduzir o consumo de energia. No entanto, a complexidade para trabalhar e programar nestes sistemas é um grande obstaculo. Paralelizar a arquitetura foi um dos primeiros passos. Além disso, também são usadas técnicas para reduzir o consumo de energia, a partir de técnicas para redução de clock e otimização dos barramentos [35] Tipos de Sistemas Multiprocessados Computação de alto desempenho também é aplicada em sistemas embarcados multiprocessados. No entanto, existem diferentes formas de se implementar MPSoC, usando abordagem Heterogênea e Homogênea, ambas ilustradas na Figura 4.1. Figura 4.1: MPSOC Heterogênio e Homogênio. Adaptado de [3] Conforme a Figura 4.1, embarcados heterogêneos são aqueles que possuem múltiplos cores diferentes. No entanto, embarcados homogêneos possuem múltiplos cores idênticos [36] Memória em Sistemas Embarcados A complexidade da programação paralela com relação aos sistemas embarcados está diretamente ligada com a hierarquia (ou topologia) da memória, ou seja, como ela está organizada no MPSoC. Na Seção conceitua-se como o MPSoC pode estar organizado, homogêneo e heterogêneo. As memórias também entram neste contexto, sendo que, para sistemas heterogêneos, a complexidade é muito maior para a criação de software se comparado com o modelo homogêneo do ponto de vista de programação [12]. Existem 3 abordagens diferentes de organização de memórias em um MPSoC: 24

28 Memória Distribuída. Memória Compartilhada. Memória Híbrida. A memória distribuída em sistemas embarcados é exemplicada na Figura 4.2. Para cada processador em um MPSoC existe uma memória privada, sendo a comunicação realizada por uma rede de alta velocidade (uma NoC). Figura 4.2: Memória Distribuída. Adaptado de [3] Na memória compartilhada, por sua vez, os processadores usam a mesma memória, uma memória pública que os servem. Este contexto é exemplicado na Figura 4.3. Figura 4.3: Memória Compartilhada. Adaptado de [3] A organização de memória híbrida é composta de memória pública e privada. Cada core (CPU) tem sua memória privada e sua disposição o recurso de memória compartilhada (que está disponível entre o cores de um MPSoC). A ideia é ilustrada na Figura 4.4. Segundo [3], em um MPSoC com dois cores é possível ter aumento de desempenho sem qualquer alteração, pois torna-se usual um core para o sistema operacional e outro para as tarefas especícas do sistema, tais como interrupção e manipulação. Porém, em um MPSoC com vários núcleos, a 25

29 Figura 4.4: Memória Híbrida. Adaptado de [3] aplicação precisa ser redesenhada para fazer o uso de todos os núcleos e aproveitar melhor o processamento Paralelismo O paralelismo não é algo novo para sistemas embarcados, mas a complexidade em explorar paralelismo continua presente, pois um sistema deve manter a ordem sem causar problemas [37]. Existem 4 formas de explorar paralelismo, que são explicadas a seguir. Paralelismo em Nível de Bit: É uma forma de paralelismo em sistemas embarcados baseada na arquitetura para operar simultaneamente dados maiores. Um exemplo disso é que, se um core de 8 bits está executando cálculos de dados de 16 bits é necessário o uso de duas instruções. Se o tamanho da palavra for aumentado (de 8 para 16), a operação poderá ser executada em uma única instrução [19]; Paralelismo em Nível de Instrução: Consiste na técnica que idêntica instruções que não dependem uma das outras. Situação similar àquela de trabalhar com várias variaveis executando ao mesmo tempo. Alguns aplicativos (como processamento de voz e vídeo) podem funcionar de maneira eciente. Esta técnica é geralmente implementada em compiladores [19]; Paralelismo em Nível de Dados: Ocorre quando múltiplos cores executam a mesma task. Os múltiplos cores desempenham um papel importante na melhoria do desempenho, dependendo de muitos cores para trabalhar com os dado em menos tempo. No entanto, existem restrições nesta técnica, pois nem todas as partes de um programa podem ser paralelizadas, porque não suportam execução paralela [19]; 26

30 Paralelismo em Nível de Tarefas: Distribui diferentes aplicações, processos, ou threads para unidades diferentes, sendo que isso pode ser feito manualmente ou através do sistema operacional. A principal diculdade em paralelizar tarefas não é a forma como as threads são distribuídas, mas sim, como dividir uma aplicação em múltiplas threads [19]. 4.2 Paradigmas entre MPSoCs e Multi-Core Os termos MPSoC e multi-core são alvo de muitas discussões com relação a denição e onde são empregados no âmbito dos sistemas embarcados. É de suma importância diferenciar ambos os termos, sendo que a literatura caracteriza da seguinte forma: MPSoCs: Tem como objetivo reduzir os custos do sistema, reduzir o consumo de energia e aumentar o desempenho. A implementação em muitos casos é baseada em uma arquitetura heterogênea. São caracterizados como complexos sistemas em um único chip e customizados para uma determinada aplicação, signicando que o projeto de hardware ou arquitetura é modelado especicamente para os requisitos de uma aplicação [12]; Multi-core: Consiste em explorar paralelismo não customizado. É um termo genérico baseado na ideia dual-core e quad-core do mercado de estações de trabalho e servidores. A implementação em muitos casos é baseada em uma arquitetura homogênea [3]. Baseados nos conceitos levantados sobre as abordagens, pode-se armar que existe processamento multi-core em um MPSoC. Porém, armar que um MPSoC é um multi-core não é correto. Alguns conceitos são semelhantes entre as abordagens multi-core e MPSoC, como a organização de memória e programação paralela. Termos como NoC somente estão no contexto de MPSoC. O termo heterogêneo é mais comum nesta abordagem, pois nele caracteriza-se o processamento dedicado para uma determinada aplicação. Por exemplo, nos dias de hoje, MPSoC está contido em um celular, sendo que para o processamento de áudio e vídeo usa-se um processador dedicado e voltado a este tipo de processamento (um processador DSP). No entanto, para o processamento de tarefas do sistema, usa-se outro processador dedicado (um processador ARM). Porém no contexto multi-core, o termo heterogenidade não é tão comum, pois na maioria dos casos os núcleos do processador são idênticos e, o sistema não está contido em um único chip. 27

31 Isso não quer dizer que MPSoCs não podem ser homogêneos e que os multi-cores não podem ser heterogêneos. Nada impede que se monte um sistema multi-core para uma dada aplicação. Em um MPSoC, os cores são denomidados de PE, no qual cada core contém um processador. Multi-core é mais conhecido como múltiplos núcleos em uma CPU, enquanto em um MPSoC podem existir cores com múltiplos cores (múltiplos núcleos). 4.3 Programação Paralela Programação paralela consiste em explorar a potencialidade dos processadores, podendo ser distribuído ou local. Durante vários anos, diferentes estudos foram realizados para aplicar a teoria de paralelismo não apenas em supercomputadores. Sistemas embarcados aderiram a ideia de paralelismo para prover o melhor aproveitamento de hardware e melhorar os recursos disponibilizados. Esta seção, faz um paralelo dos conceitos e de como é aplicada a programação paralela em sistemas embarcados, bem como os recursos disponíveis para realizar o paralelismo SMP (Symmetric Multiprocessing) SMP (Symmetric Multiprocessing) quer dizer multiprocessamento simétrico, é voltado para sistemas embarcados homogêneos (MPSoCs homogêneos). Somente é possível o uso de SMP quando os cores são iguais e existe uma hierarquia de memória compartilhada. A memória é alocada por todos os cores [38]. Sistemas que trabalham com SMP têm muitas vantagens, principalmente no desenvolvimento do software. SMP possibilita que cada core seja dedicado para uma determinada tarefa. Por exemplo, um core pode ser destinado para aplicações hard real-time e os outros para aplicações que são de soft realtime. Porém, é preciso ter maior controle com relação ao acesso à memória e mecanismos como semáforos e Mutex Locks, resolvem este problema [39] ASMP ou AMP (Asymmetric Mutiprocessing) ASMP (Asymmetric Mutiprocessing) quer dizer multiprocessamento assimétrico, é um termo referênciado para desenvolver SO para sistemas embarcados heterogêneos (MPSoCs heterogêneos), pois quando os cores são diferentes, a carga de uma task não pode ser compartilhada entre os cores [38]. 28

32 ASMP trabalha com o conceito de mestre e escravo, também aplicado em cluster. Existe um mestre que distribui as tasks para os escravos processarem e, ao término deste processamento, retornam o resultado ao mestre. A ideia do ASMP é simples, porém complexa para o programador [38] Processos e Threads Processo e threads são duas formas de um sistema operacional proporcionar processamento paralelo. Armar que um processo é uma thread é uma armação inválida, pois um processo descreve um instância de um programa em execução. Ele tem um endereço de espaço associado e um bloco de controle que contém atributos e informações de estado sobre um processo [38]. O processo pode ter uma ou mais threads associadas a ele. Uma thread é apenas uma unidade de um programa executando um uxo de instrunções que executam em um processador independente de outros uxos. Threads podem ser executadas em processadores locais ou ditribuidos em rede, é de responsabilidade do sistema operacional SMP escalonar as threads para executar em processadores disponíveis [38]. Para uma thread executando em um único core, apenas pequenas fatias de tempo são dadas a ela, para emular a execução de múltiplas tarefas simultâneas. Já na existência de mais cores, as threads executam em paralelo. Como um processo é caracterizado pesado em sistemas multiprocessados embarcados, processadores operam com frequências baixas. Nestes processadores são executadas threads, pois o espaço de troca entre elas é uma tarefa mais leve para o sistema operacional, uma vez que o espaço de endereçamento e os recursos são comuns entre elas [38] Task e Mapeamento Para mapear em que core uma thread deve executar, é necessário modicar a la do algoritmo de escalonamento, no qual cada task tem um marcador que indica a sua prioridade. Ao alocar o tempo, cada task é alocada para o seu core parente na ordem de preferência, esse processo é chamado de processor anity e pode ser soft ou hard [3]. Um soft anity é quando uma thread é destina a executar em um determinado core, mas permite que seja escolhido outro core para ser executada. Já um hard anity é quando o programador determina em qual core quer executar uma thread, e ela pode somente executar neste core, mesmo que os outros estejam disponíveis [3]. Em sistemas embarcados que exigem qualidade de serviço, geralmente usa-se o mapeamento hard anity, pois se o caminho de dados pode ser 29

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

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. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Curso de Instalação e Gestão de Redes Informáticas

Curso de Instalação e Gestão de Redes Informáticas ESCOLA PROFISSIONAL VASCONCELLOS LEBRE Curso de Instalação e Gestão de Redes Informáticas PROCESSADORES DE 64 BITS X PROCESSADORES DE 32 BITS José Vitor Nogueira Santos FT2-0749 Mealhada, 2009 Introdução

Leia mais

Prof. Esp. Lucas Cruz

Prof. Esp. Lucas Cruz Prof. Esp. Lucas Cruz O hardware é qualquer tipo de equipamento eletrônico utilizado para processar dados e informações e tem como função principal receber dados de entrada, processar dados de um usuário

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

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

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 Conceito de Computador Um computador digital é

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

Leia mais

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias Visão Geral da Arquitetura de Computadores Prof. Elthon Scariel Dias O que é Arquitetura de Computadores? Há várias definições para o termo arquitetura de computadores : É a estrutura e comportamento de

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

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

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 Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

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

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal

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

Processadores. Prof. Alexandre Beletti Ferreira

Processadores. Prof. Alexandre Beletti Ferreira Processadores Prof. Alexandre Beletti Ferreira Introdução O processador é um circuito integrado de controle das funções de cálculos e tomadas de decisão de um computador. Também é chamado de cérebro do

Leia mais

CPU Unidade Central de Processamento. História e progresso

CPU Unidade Central de Processamento. História e progresso CPU Unidade Central de Processamento História e progresso O microprocessador, ou CPU, como é mais conhecido, é o cérebro do computador e é ele que executa todos os cálculos e processamentos necessários,

Leia mais

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I Guilherme Pina Cardim Relatório de Sistemas Operacionais I Presidente Prudente - SP, Brasil 30 de junho de 2010 Guilherme Pina Cardim Relatório de Sistemas Operacionais I Pesquisa para descobrir as diferenças

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

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

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

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. Centro de Emprego e Formação Profissional da Guarda Curso: Técnico de Informática Sistemas (EFA-S4A)-NS Trabalho Realizado Por: Igor_Saraiva nº 7 Com

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

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Tipos de Computadores. Sediane Carmem Lunardi Hernandes

Tipos de Computadores. Sediane Carmem Lunardi Hernandes Tipos de Computadores Sediane Carmem Lunardi Hernandes 1 Introdução Objetivo Apresentar a Lei de Moore e mostrar os vários tipos de computadores 2 a) Lei de Moore Processadores (maioria) são um conjunto

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 1 Processadores Computador Processador ( CPU ) Memória E/S Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 2 Pastilha 3 Processadores (CPU,, Microcontroladores)

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

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

SIS17 - Arquitetura de Computadores. Introdução (Parte III)

SIS17 - Arquitetura de Computadores. Introdução (Parte III) SIS17 - Arquitetura de Computadores Introdução (Parte III) Espectro Computacional (Visão Geral) Servidor Estações de Trabalho Mainframe Supercomputador TIPO Computadores de uso comum (pequenos chips) Computadores

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores

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

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

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

Desculpe, mas este serviço (jogo) encontra se em manutenção.

Desculpe, mas este serviço (jogo) encontra se em manutenção. Estrutura de servidor e banco de dados para multijogadores massivos Marcelo Henrique dos Santos marcelosantos@outlook.com Desculpe, mas este serviço (jogo) encontra se em manutenção. São Paulo SP, Fevereiro/2013

Leia mais

AUTOMAÇÃO DE ESCRITÓRIOS ADE

AUTOMAÇÃO DE ESCRITÓRIOS ADE Curso: TÉCNICO EM INFORMÁTICA com Habilitação em Programação e Desenvolvimento de Sistemas. AUTOMAÇÃO DE ESCRITÓRIOS ADE NOTA DE AULA 01 Assunto: Introdução a informática. Histórico do computador. Conceitos

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

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

Nível do Sistema Operacional

Nível do Sistema Operacional Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/1 Introdução Hardware Provê os recursos básicos

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

COMPONENTES DE REDES. Fernando Albuquerque (061) 273-3589 fernando@cic.unb.br

COMPONENTES DE REDES. Fernando Albuquerque (061) 273-3589 fernando@cic.unb.br COMPONENTES DE REDES Fernando Albuquerque (061) 273-3589 fernando@cic.unb.br Tópicos Componentes de rede Placas de interface Transceptores Repetidores HUBs Pontes Switches Roteadores Gateways Servidores

Leia mais

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

ILHA I GERENCIAMENTO DE CONTEÚDO CMS DISCIPLINA: Introdução à Computação MÓDULO II Memórias e Processamento

ILHA I GERENCIAMENTO DE CONTEÚDO CMS DISCIPLINA: Introdução à Computação MÓDULO II Memórias e Processamento MÓDULO II Memórias e Processamento Esse módulo irá relatar sobre as memórias seus tipos e a ligação com os tipos variados de processamento. Leia atentamente todo o conteúdo e participe dos fóruns de discursão,

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

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

Imagem retirada de documentações de treinamentos oficiais INTEL

Imagem retirada de documentações de treinamentos oficiais INTEL O que é Hyper-Threading (HT)? Hyper-Threading (HT) é uma tecnologia existe nos processadores que visa explorar com mais eficiência o uso da CPU, o grande foco desta tecnologia é evitar ociosidade de processamento

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

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

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP 1 INTRODUÇÃO Devido ao crescimento da Internet, tanto do ponto de vista do número de usuários como o de serviços oferecidos, e o rápido progresso da tecnologia de comunicação sem fio (wireless), tem se

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 4 Tipos de SO Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Os Sistemas Operacionais podem ser assim classificados: SO - Prof. Edilberto Silva

Leia mais

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam? Como é formado o meu computador? Introdução aos Sistemas Operacionais Arquitetura de Computadores e Software Básico Aula 1 Flávia Maristela (flavia@flaviamaristela.com) Mouse Teclado Monitor Placa de vídeo

Leia mais

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais Gerência de Dispositivos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência

Leia mais

Sistemas Operacionais

Sistemas Operacionais Andrique Amorim www.andrix.com.br professor@andrix.com.br Classificação dos Sistemas Operacionais Classificação Os sistemas operacionais podem ser classificados segundo diversos parâmetros e perspectivas.

Leia mais

INFORMÁTICA BÁSICA AULA 02. Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com

INFORMÁTICA BÁSICA AULA 02. Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INFORMÁTICA BÁSICA AULA 02 Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 04/06/2014 2 SUMÁRIO O computado Componentes

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

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

Fundamentos de Hardware

Fundamentos de Hardware Fundamentos de Hardware Curso Técnico em Informática SUMÁRIO PROCESSADOR... 3 CLOCK... 4 PROCESSADORES COM 2 OU MAIS NÚCLEOS... 5 NÚCLEOS FÍSICOS E LÓGICOS... 6 PRINCIPAIS FABRICANTES E MODELOS... 6 PROCESSADORES

Leia mais

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano Sistemas Operacionais Marcos Laureano 1/25 Roteiro Estrutura de um sistema operacional Interrupções Proteção do núcleo Níveis de privilégio Chamadas de sistema 2/25 Mono-processadores atuais seguem um

Leia mais

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução. Processadores Atuais Eduardo Amaral Sumário Introdução Conceitos Básicos Microprocessadores Barramentos Bits internos e bits externos Clock interno e clock externo Memória cache Co-processador aritmético

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

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 01 - História e Funções dos Sistemas Operacionais Visão do Sistema Operacional programadores e analistas usuários programas,

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Professor: João Fábio de Oliveira jfabio@amprnet.org.br (41) 9911-3030 Objetivo: Apresentar o que são os Sistemas Operacionais, seu funcionamento, o que eles fazem,

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,

Leia mais

Escalonamento no Linux e no Windows NT/2000/XP

Escalonamento no Linux e no Windows NT/2000/XP Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

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

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

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 Operacionais

Sistemas Operacionais Sistemas Operacionais Gerenciamento de Memória Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille, Paula Prata e nas transparências

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

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

RISC X CISC - Pipeline

RISC X CISC - Pipeline RISC X CISC - Pipeline IFBA Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores 25 e 26/30 Prof. Msc. Antonio Carlos Souza Referências

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Hardware de Computadores

Hardware de Computadores Placa Mãe Hardware de Computadores Introdução Placa-mãe, também denominada mainboard ou motherboard, é uma placa de circuito impresso eletrônico. É considerado o elemento mais importante de um computador,

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Arquiteturas Multi e Many cores baseadas em redes-em-chip

Arquiteturas Multi e Many cores baseadas em redes-em-chip Arquiteturas Multi e Many cores baseadas em redes-em-chip Laboratório de Arquitetura e Redes de Computadores Departamento de Engenharia de Compuatação e Sistemas Digitais Escola Politécnica Universidade

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída SEL-0415 Introdução à Organização de Computadores Dispositivos de Entrada e Saída Aula 9 Prof. Dr. Marcelo Andrade da Costa Vieira ENTRADA e SAÍDA (E/S) (I/O - Input/Output) n Inserção dos dados (programa)

Leia mais

SISTEMAS OPERACIONAIS. Prof. André Dutton

SISTEMAS OPERACIONAIS. Prof. André Dutton 1 SISTEMAS OPERACIONAIS Prof. André Dutton O OS esta ligado diretamente com o Hardware do Computador no qual ele é executado. CPU MEMORIA CONTROLAD OR DE VIDEO CONTROLAD OR DE TECLADO CONTROLAD OR DE DISCO

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição

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

SUMÁRIO. Informática Informação X Comunicação Sistemas de Informação Tipos de computadores

SUMÁRIO. Informática Informação X Comunicação Sistemas de Informação Tipos de computadores A ERA DA COMPUTAÇÃO SISTEMAS DE COMPUTADOR Wagner de Oliveira SUMÁRIO Informática Informação X Comunicação Sistemas de Informação Tipos de computadores Computadores de grande porte Computadores de médio

Leia mais

AULA1 Introdução a Microprocessadores gerais

AULA1 Introdução a Microprocessadores gerais AULA1 Introdução a Microprocessadores gerais Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Prof. Eduardo Henrique Couto ehcouto@hotmail.com 2014/1 Apresentação do Professor: Cronograma:

Leia mais