Avaliação de Desempenho, Área e Potência de Mecanismos de Comunicação em Sistemas Embarcados

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

Download "Avaliação de Desempenho, Área e Potência de Mecanismos de Comunicação em Sistemas Embarcados"

Transcrição

1 Avaliação de Desempenho, Área e Potência de Mecanismos de Comunicação em Sistemas Embarcados Alexandre I. Gervini 1, Edgard de F. Corrêa 1,2, Luigi Carro 3, Flávio R. Wagner 1 1 Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal Porto Alegre RS Brasil 2 Superintendência de Informática Universidade Federal do Rio Grande do Norte (UFRN) Av. Salgado Filho, Natal RN Brasil 3 Depto. Engenharia Elétrica Universidade Federal do Rio Grande do Sul (UFRGS) Av. Osvaldo Aranha, Porto Alegre RS Brasil {gervini, edgard, Abstract. For embedded systems-on-chip whose design is software-dominated, mechanisms for communication among processes have a considerable impact on performance, power consumption, and area of the final system. This paper evaluates classic communication mechanisms, showing their impact on those metrics for an architectural platform based on an application-specific Java microcontroller. With these results, the developer of an embedded software application may estimate, at a high abstraction level, the impact of his/her design decisions on the final synthesized SoC. Resumo. Em sistemas embarcados integrados numa pastilha, cujo projeto é dominado pelo software, os mecanismos adotados para comunicação entre processos têm grande influência sobre o desempenho, a potência consumida e a área ocupada pelo sistema. Este artigo avalia mecanismos de comunicação clássicos, mostrando seu impacto sobre estas métricas em uma plataforma arquitetural baseada em um microcontrolador Java dedicado à aplicação. Com estes resultados, o desenvolvedor de uma aplicação de software embarcada pode estimar, num alto nível de abstração, o impacto de suas decisões de projeto sobre o SoC sintetizado final. 1. Introdução Os sistemas embarcados [Wolf 2001] apresentam características em comum com sistemas computacionais de propósitos gerais, mas não possuem a uniformidade desses. Cada aplicação pode apresentar requisitos diferentes de desempenho, consumo de potência e área ocupada, o que vai acarretar em uma combinação distinta de módulos de hardware e software para atender estes requisitos. Em muitas aplicações é adequada a integração do sistema em uma única pastilha (SoC System-on-a-Chip). A arquitetura de hardware de um SoC embarcado pode conter um ou mais processadores, memórias, interfaces para periféricos e blocos dedicados. Os componentes são interligados por uma estrutura de comunicação que

2 pode variar de um barramento a uma rede complexa (NoC - Network-on-a-Chip) [Micheli 2002]. Os processadores podem ser de tipos diversos (RISC, VLIW, DSP, até ASIPs processadores integrados para aplicações específicas), conforme a aplicação. O software de aplicação pode ser composto por múltiplos processos, distribuídos entre diversos processadores e comunicando-se através de diferentes mecanismos. Em muitos casos são gerenciados através de um sistema operacional de tempo real (RTOS) [Burns 1997], que fornece, pelo menos, serviços de comunicação e escalonamento de processos. Sendo, em geral, os projetos de sistemas embarcados dominados pelo software (aplicações e RTOS), é ideal que a exploração do espaço de projeto seja feita no nível de abstração mais alto possível. Esta exploração consiste em avaliar as alternativas de arquitetura de hardware e de software, verificando o impacto sobre desempenho, potência e área do sistema. Para que esta prévia avaliação corresponda ao sistema real é necessária a utilização de bons estimadores. A escolha da forma de comunicação (software-software, software-hardware e hardware-hardware) e do mecanismo (memória compartilhada, troca de mensagens, acesso direto à memória, etc.) representa um dos aspectos mais importantes em um projeto de sistemas embarcados. Outro fator importante na exploração do espaço de projeto é a definição dos serviços que serão fornecidos pelo RTOS. O nível de suporte de comunicação oferecido pelas primitivas e o tamanho do sistema operacional são exemplos de alguns dos parâmetros que devem ser levados em conta. As abordagens atuais para síntese de um RTOS dedicado e mínimo [Chivukula 2002] [Gauthier 2001] consideram as necessidades da aplicação, mas não consideram explicitamente o atendimento de restrições de projeto como área e potência. Por outro lado, existem diversas abordagens para projeto de software que consideram restrições de potência [Yang 2001] [Zhang 2002], mas não especificamente no caso do projeto da comunicação. Este trabalho demonstra o impacto de dois mecanismos clássicos de comunicação (memória compartilhada e troca de mensagens) sobre o desempenho, potência e área de memória de um sistema embarcado. Estes mecanismos foram desenvolvidos em Java e tiveram seus custos caracterizados para uma plataforma-alvo baseada em um microcontrolador Java dedicado (ASIP). Com estes resultados, o desenvolvedor de uma aplicação de software embarcada para esta plataforma pode estimar, num alto nível de abstração, o impacto de suas decisões de projeto sobre o sistema sintetizado final. O restante deste artigo está organizado da seguinte forma: a Seção 2 discute trabalhos relacionados. Na Seção 3 é apresentada a plataforma-alvo e na Seção 4 os mecanismos de comunicação avaliados. A Seção 5 descreve a ferramenta utilizada na avaliação de potência e desempenho dos mecanismos. Os resultados obtidos são apresentados e discutidos na Seção 6. Por fim, a Seção 7 apresenta as conclusões e introduz trabalhos futuros. 2. Trabalhos Relacionados Sistemas Embarcados geralmente interagem com o ambiente ou tem alguma função relacionada ao tempo. Sistemas Operacionais de Tempo Real (RTOS) podem ser

3 utilizados na implementação do domínio de software de tais sistemas. As principais características de RTOS são: determinismo na latência do tratamento de interrupções; implementação otimizada para ocupar menos espaço na memória e executar mais rapidamente; escalonamento baseado em prioridades; escalabilidade; suporte a multitarefas preemptivas. Para que um sistema embarcado possa ser executado, as tarefas devem ser mapeadas para processos no sistema operacional. Tais processos podem comunicar-se através de estruturas providas pelo sistema operacional como caixas de mensagens ou diretamente através da memória compartilhada. Durante o projeto, um fator a ser considerado é que tipo de sistema operacional será utilizado: genérico ou sintetizado a partir das necessidades da aplicação. RTOS genéricos, como o QNX [Oakley 1997] e o ecos [RedHat 2003], demonstram as vantagens de serem flexíveis e adaptáveis tendo implementações para diferentes arquiteturas, sendo, portanto, portáveis. Outros propõem a síntese de um sistema operacional específico para a aplicação. Ditze [Ditze 1998] apresenta resultados da síntese de um RTOS baseado na biblioteca DREAMS, demonstrando que a utilização de um sistema operacional específico resulta em um menor espaço de memória ocupado e melhor desempenho. Vários trabalhos propõem a síntese do sistema operacional a partir da especificação do sistema. Em [Gauthier 2001] é apresentada uma ferramenta para síntese de sistemas operacionais a partir de descrições realizadas em SystemC. A comunicação entre os processos é transformada em chamadas do sistema na forma de readx, writex, onde X é o tipo do dado a ser transferido. A implementação de tais chamadas de sistema varia conforme a organização dos processos. Para processos em um mesmo processador é utilizada a memória compartilhada enquanto que para processos em processadores diferentes a comunicação é realizada pelo barramento utilizando-se endereços para especificar o canal a ser utilizado. Böke [Böke 2000] apresenta um ambiente para síntese do RTOS com ênfase nas estruturas de comunicação. O sistema operacional é construído a partir de uma biblioteca pré-definida denominada DREAMS. Após a análise da aplicação é possível verificar os recursos utilizados e se a estrutura de comunicação utilizada atende aos requisitos da aplicação. Em [Brunel 2000] a síntese também é feita considerando a comunicação entre componentes de software. Outra abordagem de síntese de RTOS é apresentada em [Mooney 2002], onde o sistema operacional é sintetizado como um módulo de hardware em um SoC. De um modo geral, tanto nos casos de RTOS dedicados, como naqueles sintetizados não existe uma preocupação direta na avaliação de potência, área e desempenho. A prioridade é a minimização do tamanho do software. O aumento do desempenho e a minimização da potência e da área, muitas vezes, são resultantes da síntese, mas não objetivo central desta.

4 Algumas abordagens propõem análises de consumo de potência utilizando estimadores baseados nas instruções do processador. Em [Tiwari 1994] a estimativa é obtida através de experimentos. Outras abordagens também baseadas em simulação ao nível de instruções [Choi 2001] [Chen 2001] [Dalal 2001], consideram modelos específicos de consumo de potência para os componentes da arquitetura (unidades funcionais, barramentos, registradores, memórias, unidades de controle) que são afetados por cada instrução, de acordo com a atividade de chaveamento das entradas dos componentes e de suas propriedades físicas. Existem ainda abordagens [Givargis 2001] [Stitt 2000] que combinam ambos os modelos de estimativa: baseado em componentes e baseado em instruções. Além do impacto do software na plataforma de hardware (através do sistema operacional, dos diferentes algoritmos possíveis, do estilo de codificação e da compilação da aplicação), a gerência da potência do sistema tem se tornado uma parte fundamental no projeto do sistema operacional [Micheli 2000]. Quando alguns componentes do sistema não estão sendo utilizados o sistema operacional pode desligálos, enquanto permanecer esta inatividade. 3. Plataforma A plataforma-alvo utilizada na caracterização dos mecanismos de comunicação foi um microcontrolador Java - FemtoJava [Ito 2001]. Na síntese dos algoritmos que descrevem os mecanismos em linguagem Java foi utilizado um ambiente CAD [Ito 2000] que realiza automaticamente esta síntese para a plataforma-alvo. O microcontrolador FemtoJava é baseado em pilha e executa bytecodes Java. Suas principais características são: um conjunto reduzido de instruções bytecodes, arquitetura Harvard, execução ortogonal, tamanho pequeno e fácil inserção/remoção de instruções. O FemtoJava implementa uma máquina de execução Java em hardware através de uma máquina de pilha compatível com a especificação da máquina virtual Java (JVM Java Virtual Machine). Em geral a JVM tem três componentes principais: carregador de classe, verificador de classe e mecanismo de execução. Os dois primeiros atuam em tempo de execução e somente são necessários para plataformas com multi-aplicações ou que tenham carregamento dinâmico de código através da rede. No nosso caso é usado um compilador que obedece a especificação da JVM e sintetiza uma versão de um processador FemtoJava específico para a aplicação (ASIP - Application Specific Instruction-Set Processor). Somente as execuções do núcleo e de algumas ferramentas para extração do software em tempo de projeto são realmente necessárias. A síntese foi realizada em um ambiente CAD - SASHIMI (Systems As Software and Hardware In MIcrocontrollers) [Ito 2000] que utiliza as vantagens de compatibilidade de software através do microcontrolador FemtoJava. Devido à flexibilidade e ao baixo custo, a síntese é feita para FPGA. Esta abordagem é também caracterizada pela alta integração de funções, pelo ambiente simples de execução, por ser desnecessário desenvolver um novo compilador, pela compatibilidade de software e pela possibilidade de desenvolvimento independente de plataforma. Uma vantagem da execução nativa de bytecodes Java é a compatibilidade de software. Esta característica garante a possibilidade de desenvolvimento e execução

5 com independência de plataforma. Em algumas plataformas Java (PC ou estações de trabalho, por exemplo) somente é possível executar um programa Java. Assim, a execução de um programa é equivalente à simulação do ambiente da aplicação no microcontrolador alvo, com todos os recursos e conveniências do ambiente de um computador na fase de desenvolvimento. A implementação básica do FemtoJava tem 68 instruções e é feita usando VHDL. A síntese suporta instruções para aritmética de inteiros e operações de bit, desvios condicionais/incondicionais, instruções load/store, operações de pilha e dois bytecodes extras para load/store arbitrários. Nesse núcleo todas as instruções implementadas são executadas em 3, 4, 7 ou 14 ciclos, por causa da ausência de memória cache no microcontrolador e pela limitação de memória de várias instruções. 4. Caracterização dos Mecanismos de Comunicação Os mecanismos a serem avaliados foram escolhidos dentre os mais tradicionais na comunicação de processos: memória compartilhada e troca de mensagens. Esses mecanismos foram descritos em alto nível, em linguagem Java, com posterior síntese através da ferramenta SASHIMI Memória Compartilhada O uso compartilhado de variáveis de memória para realizar a comunicação entre processos é a forma de implementação mais simples, e que, em geral, deveria apresentar menor custo de potência e melhor desempenho. Entretanto, o compartilhamento de memória vai exigir um maior cuidado para manter a consistência dos dados no controle de escrita e leitura das variáveis envolvidas. O código fonte Java utilizado para descrever comunicação utilizando memória compartilhada de uma palavra (16 bits) é apresentado na Figura 1. public class mem1 { static int msg2; static int memcomp[] = new int[128]; // area da memoria compartilhada public static void escrever(int msg0,int end){ memcomp[end] = msg0; public static void ler(int end){ msg2 = memcomp[end]; Figura 1 Implementação de memória compartilhada Como apresentado na Figura 1, a área de memória compartilhada é definida pelo arranjo de inteiros memcomp[ ]. O arranjo pode ser manipulado através dos métodos (primitivas) escrever, utilizado para enviar um dado para um determinado endereço da memória (memcomp[ ]), e ler, que é utilizado para buscar um dado da memória compartilhada para dentro de uma variável.

6 4.2. Troca de Mensagens A utilização de troca de mensagens na comunicação entre processos resolve o problema de consistência que tem que ser tratado na memória compartilhada, mas vai exigir a existência de um protocolo que controle o envio e o recebimento das mensagens. Este protocolo representa uma sobrecarga de processamento, provavelmente reduzindo o desempenho e aumentando o consumo de potência. O código fonte usado para descrever troca de mensagens de uma palavra (16 bits) é mostrado na Figura 2. public class Porta1 { static int msg2; static int fila[] = new int[128]; static int proximo; static int inicio; static boolean fila_cheia; static boolean fila_vazia; public static void inicializa(){ proximo = 0; inicio = 0; fila_cheia= false; fila_vazia=true; public static void send(int msg0){ if(fila_cheia!=true) { fila[proximo] = msg0; if(proximo + 1==128){ proximo = 0; else proximo = proximo+1; if(fila_vazia=true) fila_vazia=false; if(proximo==inicio) fila_cheia=true; public static void receive(){ if(fila_vazia!=true){ msg2 = fila[inicio]; if (inicio+1==128){ inicio = 0; else{ inicio = inicio+1; if(fila_cheia=true) fila_cheia=false; if(proximo==inicio) fila_vazia=true; Figura 2 - Implementação de troca de mensagens 5. Ferramenta de avaliação Um simulador ciclo-a-ciclo CACO-PS (Cycle-Accurate COmpiled-code Power Simulator) [Beck 2003] do microcontrolador FemtoJava foi utilizado para prover dados do consumo de energia, uso de memória e performance. Este simulador atua sobre uma

7 descrição estrutural do microcontrolador, avaliando a potência consumida por cada bloco funcional acionado a cada ciclo de relógio na execução de cada instrução. A dissipação de potência é avaliada em termos de chaveamento de carga dos capacitores, e como o processador tem as instruções separadas da memória de dados, o módulo de avaliação fornece também a avaliação distinta para as memórias RAM e ROM. Dessa forma, é possível verificar o consumo de potência da CPU, da memória de programa e da memória de dados. Isso é importante para avaliar o impacto de cada um desses blocos para melhor explorar o espaço de projeto. Por exemplo, se o consumo de potência da ROM e da RAM forem muito diferentes, versões distintas do mesmo algoritmo podem ser avaliadas para reduzir o consumo total do sistema. Um algoritmo com ênfase no número reduzido de instruções, que utilize mais laços e registradores da CPU, implicará numa ROM reduzida e numa maior memória de dados. Por outro lado, outra versão que utilize mais constantes e instruções de endereçamento imediato gerará uma menor RAM e uma memória de programa maior. O simulador coleta a quantidade de capacitâncias chaveadas durante a execução de um determinado programa e fornece o número de ciclos, a quantidade utilizada de memória de programa e de memória de dados, assim como o consumo de potência. Dessa forma, o projetista pode medir facilmente o impacto sobre aspectos físicos de seu sistema a partir de uma descrição de alto nível de abstração da aplicação embarcada, avaliando rapidamente o impacto de diferentes alternativas do projeto de software. 6. Avaliação dos Mecanismos de Comunicação A avaliação dos mecanismos de comunicação foi realizada em três etapas. Inicialmente, num nível alto de abstração, descreveu-se em linguagem Java o comportamento de cada um dos mecanismos a serem avaliados. Em seguida utilizou-se o ambiente SASHIMI para fazer a síntese dos mecanismos para linguagem de hardware (VHDL e MIF) em um processador alvo - FemtoJava. O passo seguinte foi utilizar os arquivos com as descrições em MIF da ROM e da RAM para obter o consumo de potência e custo de comunicação no simulador. De forma a se ter um conjunto representativo do comportamento dos mecanismos de comunicação e considerando que o FemtoJava trabalha com inteiros de 16 bits, foram realizados os experimentos mostrados na Tabela 1. Cada um dos experimentos foi realizado tanto para o caso de memória compartilhada como para o caso de troca de mensagens. Assim, para enviar dados de 64 bytes, por exemplo, têm-se as seguintes alternativas: enviar 32 pacotes com tamanho de 2 bytes (1 inteiro); enviar 16 pacotes com tamanho de 4 bytes (2 inteiros) ou enviar 8 pacotes com tamanho de 8 bytes (4 inteiros).

8 Tamanho da Mensagem Tamanho do Pacote Tabela 1 Conjunto de experimentos realizados 8 bytes 64 bytes 128 bytes 256 bytes 1 inteiro (2 bytes) 4 pacotes 32 pacotes 64 pacotes 128 pacotes 2 inteiros (4 bytes) 2 pacotes 16 pacotes 32 pacotes 64 pacotes 4 inteiros (8 bytes) 1 pacote 8 pacotes 16 pacotes 32 pacotes 6.1. Análise de Desempenho A análise de desempenho feita através do levantamento do número de ciclos gasto em cada mecanismo, apresentou os resultados mostrados na Tabela 2. Tabela 2 Número de ciclos gastos pelos mecanismos de comunicação MEMÓRIA COMPARTILHADA TROCA DE MENSAGENS 1 inteiro x x x x inteiros x x x x inteiros x x x x Analisando os dados obtidos pode-se constatar que o mecanismo de troca de mensagens é significativamente mais custoso, comparado com o de memória compartilhada, na questão do tempo de computação. Porém, esta diferença diminui conforme o aumento da palavra de dados a ser transmitida. Isto porque o custo de gerência da fila dilui-se, pois o mecanismo para o tratamento da mesma relativamente decresce conforme o aumento da palavra de dados. Isto se torna evidente, por exemplo, observando a variação percentual de ciclos que os dois mecanismos obtiveram para enviar 256bytes de dados, com palavras de 64 bits.

9 Enquanto na memória compartilhada o número de ciclos diminuiu cerca de 10% ( ), no mecanismo de troca de mensagens o valor decresce cerca de 39% ( ). Um resultado peculiar foi a obtenção de número de ciclos idênticos entre os dados de memória compartilhada, utilizando palavras de um inteiro (16 bits) e dois inteiros (32 bits). Isto ocorreu por casualidade, devido às instruções escolhidas pelo compilador. Em cada um dos casos era diferente o número e o grupo de instruções geradas. No entanto, uma análise dos bytecodes gerados revelou que o caso onde ocorria o menor número de instruções, estas eram as que necessitavam de um maior número de ciclos, o que gerou um número total de ciclos idêntico para os dois tamanhos de dados Análise de Potência O consumo de potência, medido em capacitâncias de gate (Cg), fornecido pela ferramenta CACO-PS, apresentou os resultados da Tabela 3. Tabela 3 Potência consumida pelos mecanismos de comunicação MEMÓRIA COMPARTILHADA TROCA DE MENSAGENS Potência # Ciclos Potência # Ciclos 1 inteiro x x x x inteiros x x x x inteiros x x x x Observando os dados da tabela constata-se que a potência, independente do método de comunicação, diminui de acordo com tamanho da palavra a ser transmitida. Ainda, novamente o método de troca de mensagens mostrou-se mais custoso em relação à potência do que o de memória compartilhada. Isto já era esperado, pelo fato do método de troca de mensagens possuir um número de ciclos maior do que o de memória compartilhada. É interessante ressaltar que, conforme se aumenta os dados a serem transmitidos, maior é a linearidade entre os números de ciclos e a potência, pois as operações de escrita e leitura de dados começam a dominar e não o processamento de CPU. Outro fator relevante, é que apesar de haver uma linearidade entre os valores de

10 potência e números de ciclo nos dois mecanismos, esta relação não é mantida interrelacionando os dois mecanismos. Isto pode ser comprovado confrontando os valores do envio de 128 bytes com palavras de 32 bits do método de troca de mensagens, com o envio de 256 bytes com palavras de 32 bits no método de memória compartilhada. Os valores de número de ciclos são semelhantes, porém os valores de potência diferem de forma significativa. Isto ocorre porque o mecanismo de memória compartilhada está utilizando um maior número operações de acessos à memória, que possui um custo de potência diferente das operações que acessam a CPU Variando a Potência da RAM Outros resultados interessantes sobre a potência foram obtidos com a variação da potência da memória RAM. Nesses cálculos foram considerados os valores de potência para a RAM de Cg e Cg. Os resultados são apresentados na Tabela 4. Tabela 4 Potência consumida na RAM pelos mecanismos de comunicação MEMÓRIA COMPARTILHADA POTÊNCIA TOTAL TROCA DE MENSAGENS RAM(23000) RAM(4600) RAM(23000) RAM(4600) 1 inteiro x x x x inteiros x x x x inteiros x x x x Percebe-se nitidamente, com o auxílio da Tabela 4, que com a diminuição da potência da memória em cinco vezes, o impacto sobre a potência total dos métodos de comunicação é diminuído significativamente. Porém, o mecanismo de troca de mensagens é mais fortemente influenciado que o de memória compartilhada, pois ele possui um maior número operações a serem realizadas pela CPU, que não sofrem influência da variação de potência sofrida pela memória RAM. Desta forma, é mais custoso percentualmente realizar troca de mensagens em relação à memória compartilhada conforme o valor da potência da memória RAM é diminuída. Ainda deve-se ressaltar, que com o aumento da palavra de dados diminui-se o aumento percentual de potência em relação à troca de dados na memória compartilhada, causado pela variação de potência da memória RAM.

11 6.4. Análise de Área Na tabela 5, percebe-se que, conforme o aumento da palavra de dados, o código sintetizado da aplicação diminui. Isto se dá pela diminuição de chamadas de métodos causadas pelo envio de grandes pacotes de dados para memória. Tabela 5 Área ocupada pelo código dos mecanismos de comunicação MEMÓRIA COMPARTILHADA ROM TROCA DE MENSAGENS ROM 1 inteiro x x x x inteiros x x x x inteiros x x x x Conclusões e trabalhos futuros O artigo demonstrou que há grandes diferenças no impacto de dois mecanismos clássicos de comunicação (memória compartilhada e troca de mensagens) sobre o desempenho, potência e área de memória de um sistema embarcado implementado sobre uma plataforma-alvo baseada em um microcontrolador Java dedicado, para diferentes tamanhos de dados a serem transmitidos. A caracterização prévia de uma biblioteca de mecanismos de comunicação é, portanto, de grande utilidade para o desenvolvedor de uma aplicação de software embarcada, já que permite a ele a estimação, num alto nível de abstração, do impacto de suas decisões de projeto sobre o sistema sintetizado final. Além disto, a avaliação mostrou que a diferença de consumo entre a CPU e as memórias de dados e de programa também provoca alterações nos custos relativos entre os dois mecanismos de comunicação. Na medida em que o custo em potência da memória de dados torna-se da mesma ordem de valor do custo da CPU, mecanismos mais complexos como troca de mensagens tem seu custo em potência elevado em relação a mecanismos mais simples. Isto claramente abre um espaço de projeto na escolha do mecanismo de comunicação quando a diferença entre as potências da CPU e da memória é muito discrepante.

12 A biblioteca de comunicação está sendo estendida para outros estudos de caso, incluindo comunicação por DMA e inclusive mecanismos para comunicação softwarehardware e hardware-hardware. Esta biblioteca, devidamente caracterizada em termos de custos de projeto dos diversos mecanismos, será integrada a uma metodologia para geração automática de RTOS considerando o atendimento de restrições de projeto (desempenho, potência, área) de uma aplicação específica. Esta metodologia faz parte de um ambiente de exploração arquitetural de alto nível de projeto de SoCs. Agradecimentos Este artigo teve financiamento parcial do CNPq e CAPES. Referências Beck Filho, A. C. S. (2003). CACO-PS: um avaliador de potência. (Relatório de Pesquisa) Porto Alegre: PPGC da UFRGS. Böke, C. (2000) Combining Two Customization Approaches: Extending the Customization Tool TEReCS for Software Synthesis of Real-Time Execution Platforms. In: Proceedings of the Workshop on Architectures of Embedded Systems. Brunel, J-Y. et al. (2000) COSY Communication IP s. In: DAC'00 Design Automation Conference, Los Angeles. Proceedings, ACM. Burns, A. and Wellings, A. (1997) Real-Time Systems and Their Programming Languages. Addison-Wesley. Chen, R., Irwin, M. J. and Bajwa, R. (2001) Architecture-Level Power Estimation and Design Experiments. In: ACM Transactions on Design Automation of Electronic Systems, vol. 6, n. 1. pp Chivukula, R. P., Böke, C. and Ramming, F. J. (2002) Customizing the Configuration Process of an Operating System Using Hierarchy and Clustering. In: Proceedings of the 5th IEEE International Symposium on Object Oriented Real Time Distributed Computing. Crystal City. IEEE Computer Society Press. p Choi, K. and Chatterjee, A. (2001) "Efficient Instruction-Level Optimization Methodology for Low-Power Embedded Systems". International Symposium on System Synthesis. Montréal. ACM. pp Dalal, V. and Ravikumar, C. P. (2001) "Software Power Optimizations in an Embedded System". VLSI Design Conference. IEEE Computer Science Press. pp Ditze, C. and Böke, C. (1998) Supporting Software Synthesis of Communication Infrastructures for Embedded Real-Time Applications. In: Proceedings of the Workshop on Distributed Computer Control Systems, Italy. Gauthier, L., Yoo, S. and Jerraya, A. (2001) Automatic Generation and Targeting of Application-Specific Operating Systems and Embedded Systems Software. In: Proceedings of the Design, Automation, and Test in Europe Conference. Munich. IEEE Computer Society Press.

13 Givargis, T., Vahid, F. and Henkel, J. (2001) System-Level Exploration for Paretooptimal Configurations in Parameterized Systems-on-a-chip. International Conference on Computer-Aided Design. Santa Clara. Ito, S. A., Carro, L. and Jacobi, R. (2000) "System Design Based on Single Language and Single-Chip Java ASIP Microcontroller". Design, Automation and Test in Europe Conference. Paris. IEEE Computer Society. Ito, S. A., Carro, L. and Jacobi, R. (2001) "Making Java Work for Microcontroller Applications". In: IEEE Design & Test, vol. 18, n. 5, Sept. /Oct. pp Micheli, G. and Benini, L. (2000) System-Level Power Optimization: Techniques And Tools. In: Proceedings of the Design, Automation, and Test in Europe Conference. Paris. IEEE Computer Society. Micheli, G. and Benini, L. (2002) "Networks-on-Chip: a New Paradigm for Systemson-Chip Design". In: Proceedings of the Design, Automation, and Test in Europe Conference. Paris. IEEE Computer Society Press. Mooney III, V. J. and Blough, D. M. (2001) "A Hardware-Software Real-Time Operating Systems Framework for SoCs". In: IEEE Design & Test of Computers, Nov. /Dec. Oakley, R. (1997) QNX microkernel technology: a scalable approach to real-time distributed and embedded systems. In: Proceedings of the Symposium on Operating System Principles. ACM. RedHat, (2003) ecos Reference Manual (http://sources.redhat.com/ ecos/docslatest/ref/ecos-ref.html), Technical Reference Manual, RedHat, Mar. Stitt, G., Vahid, F., Givargis, T. and Lysecky, R. (2000) "A First-Step Towards an Architecture Tuning Methodology". International Conference on Compilers, Architecture and Synthesis for Embedded Systems. San Jose. Tiwari, V., Malik, S. and Wolf, A. (1994) "Power Analysis of Embedded Software: a First Step Towards Software Power Minimization". In: IEEE Transactions on Very Large Scale Integration Systems, vol. 2, n. 4, Dec. pp Wolf, W. (2001) Computers as Components. McGraw-Hill. Yang, P. et al. (2001) "Energy-Aware Runtime Scheduling for Embedded- Multiprocessor SOCs". In: IEEE Design & Test of Computers, Sept./Oct. Zhang, Y., Hu, X., and Chen, D. Z. (2002) "Task Scheduling and Voltage Selection for Energy Minimization". In: Proceedings of the Design Automation Conference, New Orleans. ACM.

ANÁLISE DE DESEMPENHO E CONSUMO DE POTÊNCIA NA COMUNICAÇÃO INTERPROCESSOS EM SOFTWARE EMBARCADO

ANÁLISE DE DESEMPENHO E CONSUMO DE POTÊNCIA NA COMUNICAÇÃO INTERPROCESSOS EM SOFTWARE EMBARCADO ANÁLISE DE DESEMPENHO E CONSUMO DE POTÊNCIA NA COMUNICAÇÃO INTERPROCESSOS EM SOFTWARE EMBARCADO Marcio Seiji Oyamada 1,2 Alexandre Irigon Gervini 1 Edgard Faria Correa 1,3 Flávio Rech Wagner 1 Luigi Carro

Leia mais

OSGI-FEMTOJAVA: PLATAFORMA RECONFIGURÁVEL PARA GERENCIAMENTO DE SERVIÇOS SEGUNDO O PADRÃO OSGI GUILHERME PETRY BREIER, CARLOS EDUARDO PEREIRA

OSGI-FEMTOJAVA: PLATAFORMA RECONFIGURÁVEL PARA GERENCIAMENTO DE SERVIÇOS SEGUNDO O PADRÃO OSGI GUILHERME PETRY BREIER, CARLOS EDUARDO PEREIRA OSGI-FEMTOJAVA: PLATAFORMA RECONFIGURÁVEL PARA GERENCIAMENTO DE SERVIÇOS SEGUNDO O PADRÃO OSGI GUILHERME PETRY BREIER, CARLOS EDUARDO PEREIRA Programa de Pós Graduação em Engenharia Elétrica, Universidade

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA DEPARTAMENTO: Fundamentos da Computação CURSO: Bacharelado em Ciência da Computação DISCIPLINA: Sistemas Embarcados CÓDIGO: 4613R CRÉDITOS: 04 CARGA HORÁRIA: 60 horas-aula VALIDADE: a partir de 2008/2

Leia mais

PROJETO DE APLICAÇÕES JAVA EMBARCADAS NO AMBIENTE SASHIMI

PROJETO DE APLICAÇÕES JAVA EMBARCADAS NO AMBIENTE SASHIMI PROJETO DE APLICAÇÕES JAVA EMBARCADAS NO AMBIENTE SASHIMI Luigi Carro 1,2, Júlio C. B. Mattos 1,2 1 Departamento de Engenharia Elétrica 2 Instituto de Informática Universidade Federal do Rio Grande do

Leia mais

ÁREA: CV ( ) CHSA ( ) ECET ( )

ÁREA: CV ( ) CHSA ( ) ECET ( ) ADAPTAÇÃO E INTEGRAÇÃO DO PROCESSADOR RISCO A UMA ARQUITETURA MULTI-CORE PARA SISTEMAS EMBARCADOS DE PROPOSITO GERAL Laysson Oliveira Luz (Bolsista PIBIC/CNPq), Ivan Saraiva Silva (Orientador, Departamento

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

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 Distribuídos

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

Leia mais

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

Paralelização de Simuladores de Hardware Descritos em SystemC

Paralelização de Simuladores de Hardware Descritos em SystemC Paralelização de Simuladores de Hardware Descritos em SystemC 18 de maio de 2011 Roteiro Motivação Introdução à SLDL SystemC O Escalonador SystemC Simulação Paralela baseada em Eventos Discretos Suporte

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

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC UNIVERSIDADE FEDERAL DE SANTA CATARINA DANIEL CARLOS CASAROTTO JOSE OTÁVIO CARLOMAGNO FILHO MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC Florianópolis, 2004 DANIEL CARLOS

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

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

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Metodologia de Projeto Orientada a Objetos Baseada em Plataformas para Sistemas Tempo-Real Embarcados

Metodologia de Projeto Orientada a Objetos Baseada em Plataformas para Sistemas Tempo-Real Embarcados Metodologia de Projeto Orientada a Objetos Baseada em Plataformas para Sistemas Tempo-Real Embarcados Marco Aurélio Wehrmeister 1, Leandro Buss Becker 2, Carlos Eduardo Pereira 3 1 Instituto de Informática

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

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

Universidade Federal de Pernambuco. Refinamento do AnalyserPX para tráfego Multigigabit

Universidade Federal de Pernambuco. Refinamento do AnalyserPX para tráfego Multigigabit Universidade Federal de Pernambuco GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2 0 1 1. 1 Refinamento do AnalyserPX para tráfego Multigigabit Proposta de Trabalho de Graduação Aluno Wesley

Leia mais

Software Pipeline. Sergio Ricardo Souza Leal de Queiroz. IC-Unicamp - RA: 107070 RESUMO 2. SOFTWARE PIPELINE, CONCEITOS 1.

Software Pipeline. Sergio Ricardo Souza Leal de Queiroz. IC-Unicamp - RA: 107070 RESUMO 2. SOFTWARE PIPELINE, CONCEITOS 1. RESUMO Software Pipeline Sergio Ricardo Souza Leal de Queiroz A partir do momento em que se constatou que a evolução dos computadores não estaria mais na velocidade do processador, e sim em projetar máquinas

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

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

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores Máquinas Virtuais e Emuladores Marcos Aurelio Pchek Laureano Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware sistema operacional aplicações Sistemas

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

Sistemas Operacionais

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

Leia mais

Utilizando algoritmo genético para exploração do espaço de projeto em sistemas multiprocessados embarcados

Utilizando algoritmo genético para exploração do espaço de projeto em sistemas multiprocessados embarcados Utilizando algoritmo genético para exploração do espaço de projeto em sistemas multiprocessados embarcados Alexandre Specian Cardoso 1 Marcio Seiji Oyamada 1 Resumo: A crescente complexidade dos sistemas

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

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

Leia mais

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc. Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software Prof. MSc. Hugo Souza Continuando nossas aulas relativas ao Módulo 1, veremos a seguir

Leia mais

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

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

Leia mais

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial Aluno: André Faria Ruaro Professores: Jomi F. Hubner e Ricardo J. Rabelo 29/11/2013 1. Introdução e Motivação 2.

Leia mais

4 Avaliação do Código Gerado

4 Avaliação do Código Gerado Referencial Teórico 4 Avaliação do Código Gerado Nós fizemos alguns exemplos para avaliar a eficiência da especificação proposta, tanto em termos de velocidade de execução quanto de diminuição do tamanho

Leia mais

Aula 1 Introdução a Arquitetura de Computadores

Aula 1 Introdução a Arquitetura de Computadores Aula 1 Introdução a Arquitetura de Computadores Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Anderson Moreira Arquitetura de Computadores 1 O que fazer com essa

Leia mais

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

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

Uma Arquitetura de Linha de Produto Baseada em Componentes para Sistemas de Gerenciamento de Workflow

Uma Arquitetura de Linha de Produto Baseada em Componentes para Sistemas de Gerenciamento de Workflow Uma Arquitetura de Linha de Produto Baseada em Componentes para Sistemas de Gerenciamento de Workflow Itana M. S. Gimenes 1 itana@din.uem.br Fabrício R. Lazilha 2 fabricio@cesumar.br Edson A. O. Junior

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

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

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

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Programando em C# Orientado a Objetos. By: Maromo

Programando em C# Orientado a Objetos. By: Maromo Programando em C# Orientado a Objetos By: Maromo Agenda Módulo 1 Plataforma.Net. Linguagem de Programação C#. Tipos primitivos, comandos de controle. Exercícios de Fixação. Introdução O modelo de programação

Leia mais

ESTUDO SOBRE PROCESSADOR ARM7

ESTUDO SOBRE PROCESSADOR ARM7 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: LINGUAGEM ASSEMBLY PROFESSOR GUTO ESTUDO SOBRE PROCESSADOR ARM7 ALUNOS: ERICH

Leia mais

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 03: Estruturas dos SOs Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com OBJETIVOS Descrever os serviços que um sistema operacional oferece aos usuários e outros sistemas

Leia mais

Uma Introdução aos Sistemas Dinamicamente reconfiguráveis

Uma Introdução aos Sistemas Dinamicamente reconfiguráveis UmaIntroduçãoaosSistemasDinamicamente reconfiguráveis AlissonV.Brito1,RodrigoG.C.Rocha2 1 DepartamentodeEng.Elétrica UniversidadeFederaldeCampinaGrande(UFCG) 2 UniãodosInstitutosBrasileirosdeTecnologiaLtda(Unibratec)

Leia mais

Projeto de Sistemas de Tempo Real

Projeto de Sistemas de Tempo Real Projeto de Sistemas de Tempo Real Centro de Informática - Universidade Federal de Pernambuco Engenharia da Computação Kiev Gama kiev@cin.ufpe.br Slides elaborados pelo professor Marcio Cornélio O autor

Leia mais

Desempenho de um Cluster Virtualizado em Relação a um Cluster Convencional Similar

Desempenho de um Cluster Virtualizado em Relação a um Cluster Convencional Similar Desempenho de um Cluster Virtualizado em Relação a um Cluster Convencional Similar David Beserra 1, Alexandre Borba¹, Samuel Souto 1, Mariel Andrade 1, Alberto Araujo 1 1 Unidade Acadêmica de Garanhuns

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Modelo RTL de módulo de operações aritméticas, lógicas e de conversão sob números em ponto flutuante sintetizável em FPGA

Modelo RTL de módulo de operações aritméticas, lógicas e de conversão sob números em ponto flutuante sintetizável em FPGA Universidade Federal de Pernambuco Centro de Informática Pré-projeto Modelo RTL de módulo de operações aritméticas, lógicas e de conversão sob números em ponto flutuante sintetizável em FPGA Lucas Fernando

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Fabiano da Guia Rocha Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso - Campus Cáceres Av. dos Ramires,

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 Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

JAVA VIRTUAL MACHINE (JVM)

JAVA VIRTUAL MACHINE (JVM) JAVA VIRTUAL MACHINE (JVM) Por Leandro Baptista, Marlon Palangani e Tiago Deoldoto, 11 de Abril de 2009 A linguagem de programação Java proporciona o desenvolvimento aplicações que podem ser executadas

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

MODELAGEM FUNCIONAL EM MATLAB DE UM PROCESSADOR RISC- 16 BITS EM UM SISTEMA EM CHIP PARA APLICAÇÕES SEM FIO

MODELAGEM FUNCIONAL EM MATLAB DE UM PROCESSADOR RISC- 16 BITS EM UM SISTEMA EM CHIP PARA APLICAÇÕES SEM FIO MODELAGEM FUNCIONAL EM MATLAB DE UM PROCESSADOR RISC- 16 BITS EM UM SISTEMA EM CHIP PARA APLICAÇÕES SEM FIO M. D. B. Melo, R. P. Jacobi, J. C. Costa Universidade de Brasília-Brasil maxwell@ene.unb.br,

Leia mais

FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO -

FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO - FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO - PLATAFORMA ARES: UMA PLATAFORMA VIRTUAL

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Windows NT 4.0. Centro de Computação

Windows NT 4.0. Centro de Computação Windows NT 4.0 Centro de Computação Tópicos Introdução Instalação Configuração Organização da rede Administração Usuários Servidores Domínios Segurança Tópicos È O sistema operacional Windows NT È Características:

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

Java de missão crítica. Um artigo técnico da Oracle

Java de missão crítica. Um artigo técnico da Oracle Java de missão crítica Um artigo técnico da Oracle Java de missão crítica A família de produtos Oracle JRockit é um portfólio abrangente de soluções de tempo de execução de Java que aproveita a JVM básica

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

Introdução à Ciência da Computação

Introdução à Ciência da Computação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 05 Rogério Eduardo Garcia (rogerio@fct.unesp.br)

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

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina Arquitetura e Organização de Computadores 2 Apresentação da Disciplina 1 Objetivos Gerais da Disciplina Aprofundar o conhecimento sobre o funcionamento interno dos computadores em detalhes Estudar técnicas

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO

Leia mais

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

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

Leia mais

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 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

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

For-All - Uma Plataforma para Sistemas Pervasivos Orientados a Serviço

For-All - Uma Plataforma para Sistemas Pervasivos Orientados a Serviço For-All - Uma Plataforma para Sistemas Pervasivos Orientados a Serviço Elenilson Vieira da S. Filho 1, Ângelo L. Vidal de Negreiros 1, Alisson V. Brito 2 1 Departamento de Informática Universidade Federal

Leia mais

Ferramentas para Simulação e Avaliação de Processadores. de Alto Desempenho

Ferramentas para Simulação e Avaliação de Processadores. de Alto Desempenho Ferramentas para Simulação e Avaliação de Processadores de Alto Desempenho 5 de agosto de 2010 Resumo 1 Apresentação e Justificativa A tarefa de avaliar e comparar experimentalmente projetos em torno de

Leia mais

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

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

Leia mais

Ferramenta para instanciação de processos de software que permite o gerenciamento de projetos de desenvolvimento distribuído

Ferramenta para instanciação de processos de software que permite o gerenciamento de projetos de desenvolvimento distribuído Ferramenta para instanciação de processos de software que permite o gerenciamento de projetos de desenvolvimento distribuído Ana Paula Chaves 1, Jocimara Segantini Ferranti 1, Alexandre L Erário 1, Rogério

Leia mais

Validando Sistemas Distríbuidos em Java com RMI Utilizando Injeção de Falhas

Validando Sistemas Distríbuidos em Java com RMI Utilizando Injeção de Falhas Validando Sistemas Distríbuidos em Java com RMI Utilizando Injeção de Falhas Vieira, Marcio. J. 1 1 Departamento de Informática Universidade Federal do Paraná (UFPR) Curitiba PR Brasil marciojv@inf.ufpr.br

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Fundamentos de Sistemas Computacionais Introdução

Fundamentos de Sistemas Computacionais Introdução Fundamentos de Sistemas Computacionais Introdução Prof. Eduardo Alchieri Sistema Computacional Hardware Software Usuários Um ou mais processadores, memória, discos, impressoras, teclado, mouse, monitor,

Leia mais

A.G.C de Sá 1 ; B.A. de Mello 2 ; CEP: 37200-000 e-mail: alexgcsa@gmail.com. e-mail: bramlo@gmail.com

A.G.C de Sá 1 ; B.A. de Mello 2 ; CEP: 37200-000 e-mail: alexgcsa@gmail.com. e-mail: bramlo@gmail.com 1 Geração automática de um modelo para simulação do SEP A.G.C de Sá 1 ; B.A. de Mello 2 ; 1 Departamento de Ciência da Computação UFLA Lavras, MG CEP: 37200-000 e-mail: alexgcsa@gmail.com 2 Ciências da

Leia mais

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres Linguagem de Programação Orientada a Objeto Introdução a Orientação a Objetos Professora Sheila Cáceres Introdução a Orientação a Objetos No mundo real, tudo é objeto!; Os objetos se relacionam entre si

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

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

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

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

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

Leia mais

Microprocessadores II - ELE 1084

Microprocessadores II - ELE 1084 Microprocessadores II - ELE 1084 CAPÍTULO III OS PROCESSADORES 3.1 Gerações de Processadores 3.1 Gerações de Processadores Primeira Geração (P1) Início da arquitetura de 16 bits CPU 8086 e 8088; Arquiteturas

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

Sistemas Operacionais Universidade Federal de Santa Catarina. Sistemas Operativos para Celulares Symbian OS

Sistemas Operacionais Universidade Federal de Santa Catarina. Sistemas Operativos para Celulares Symbian OS Sistemas Operacionais Universidade Federal de Santa Catarina Sistemas Operativos para Celulares Symbian OS Autores Carlos Jorge Lemos Nunes Fábio Rafael Magalhães Malheiro Introdução Num mundo cada vez

Leia mais

SO Sistemas Operacionais

SO Sistemas Operacionais GOVERNO DO ESTADO DO RIO DE JANEIRO FUNDAÇÃO DE APOIO A ESCOLA TÉCNICA ESCOLA TÉCNICA ESTADUAL REPÚBLICA SO Sistemas Operacionais Curso de Informática ETE REPÚBLICA - Rua Clarimundo de Melo, 847, Quintino

Leia mais

Arquitetura e Sistema de Monitoramento para

Arquitetura e Sistema de Monitoramento para Arquitetura e Sistema de Monitoramento para 1 Computação em Nuvem Privada Mestranda: Shirlei A. de Chaves Orientador: Prof. Dr. Carlos Becker Westphall Colaborador: Rafael B. Uriarte Introdução Computação

Leia mais

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

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

Leia mais

Interface de Comunicação Extensível para a Rede-em-Chip SoCIN

Interface de Comunicação Extensível para a Rede-em-Chip SoCIN Interface de Comunicação Extensível para a Rede-em-Chip SoCIN Michelle Silva Wangham Cesar Albenes Zeferino Universidade do Vale do Itajaí UNIVALI Laboratório de Sistemas Embarcados e Distribuídos LEDS

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

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

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

ESbox: uma Ferramenta para o Desenvolvimento de Aplicações para Linux Embarcado

ESbox: uma Ferramenta para o Desenvolvimento de Aplicações para Linux Embarcado ESbox: uma Ferramenta para o Desenvolvimento de Aplicações para Linux Embarcado Raul Herbster 1, Paulo Rômulo Alves 1, Carolina Nogueira 1, Márcio Macêdo 2, Hyggo Almeida 1, Angelo Perkusich 1 1 Laboratório

Leia mais

Sistemas Embarcados. Introdução. Características de sistemas embarcados. Software embarcado

Sistemas Embarcados. Introdução. Características de sistemas embarcados. Software embarcado Sistemas Embarcados Alexandre Carissimi João Cesar Netto Luigi Carro (asc@inf.ufrgs.br, netto@inf.ufrgs.br, carro@inf.ufrgs.br) Introdução Sistemas embarcados são parte integrante de muitos dispositivos

Leia mais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,

Leia mais

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO Rafael Vargas Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Web site. Objetivos gerais. Introdução. http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados. Profa. Patrícia Dockhorn Costa

Web site. Objetivos gerais. Introdução. http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados. Profa. Patrícia Dockhorn Costa Web site http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados Estruturas de Dados Aula 1: Introdução e conceitos básicos Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br 01/03/2010

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