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, flavio@inf.ufrgs.br, carro@eletro.ufrgs.br 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 ( 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

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

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

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

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

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

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

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação 36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

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

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

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

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.1 Introdução Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Voltados tipicamente para a execução de um único programa.

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

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

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

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

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

7.Conclusão e Trabalhos Futuros

7.Conclusão e Trabalhos Futuros 7.Conclusão e Trabalhos Futuros 158 7.Conclusão e Trabalhos Futuros 7.1 Conclusões Finais Neste trabalho, foram apresentados novos métodos para aceleração, otimização e gerenciamento do processo de renderização

Leia mais

BARRAMENTO DO SISTEMA

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

Leia mais

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

Sistemas Operacionais Introdução. Professora: Michelle Nery

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

Leia mais

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

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

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

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

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

Leia mais

Á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

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

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

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

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

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

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente

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

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

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

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 2 - O NÍVEL DA MICROARQUITETURA 1. INTRODUÇÃO Este é o nível cuja função é implementar a camada ISA (Instruction Set Architeture). O seu projeto depende da arquitetura do conjunto das instruções

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

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

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

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

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

Tipos de sistemas operacionais

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

Leia mais

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Agosto/2003 Tópicos Conceitos de HW em SD Multiprocessadores e Multicomputadores Conceitos de SW

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

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

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

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11 GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11 Índice 1. Importância do ERP para as organizações...3 2. ERP como fonte de vantagem competitiva...4 3. Desenvolvimento e implantação de sistema de informação...5

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

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

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

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Univ ersidade Federal do Rio de Janei ro Info rmátic a DCC/IM Arquitetura de Computadores II Microarquiteturas Avançadas Gabrie l P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo

Leia mais

Quadro de consulta (solicitação do mestre)

Quadro de consulta (solicitação do mestre) Introdução ao protocolo MODBUS padrão RTU O Protocolo MODBUS foi criado no final dos anos 70 para comunicação entre controladores da MODICON. Por ser um dos primeiros protocolos com especificação aberta

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

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

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Leia mais

Comunicação Fim-a-Fim a Alta Vede em Redes Gigabit

Comunicação Fim-a-Fim a Alta Vede em Redes Gigabit Outros trabalhos em: www.projetoderedes.com.br Comunicação Fim-a-Fim a Alta Vede em Redes Gigabit DaniloM.Taveira, Igor M. Moraes, Daniel de O.Cunha RafaelP.Laufer, Marco D. D. Bicudo, Miguel E. M. Campista,

Leia mais

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

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

Leia mais

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

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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitaçã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

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

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

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS 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

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

7 Processamento Paralelo

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

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8 Índice 1. A Organização do Computador - Continuação...3 1.1. Processadores - II... 3 1.1.1. Princípios de projeto para computadores modernos... 3 1.1.2. Paralelismo...

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Instalações Máquinas Equipamentos Pessoal de produção

Instalações Máquinas Equipamentos Pessoal de produção Fascículo 6 Arranjo físico e fluxo O arranjo físico (em inglês layout) de uma operação produtiva preocupa-se com o posicionamento dos recursos de transformação. Isto é, definir onde colocar: Instalações

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

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

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