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

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

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

Á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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

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

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

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

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

Programação Concorrente Processos e Threads

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

Leia mais

Sistemas 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

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

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

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

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

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

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

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

Sistemas Operacionais 1/66

Sistemas Operacionais 1/66 Sistemas Operacionais 1/66 Roteiro Máquinas virtuais Emuladores Propriedades Benefícios Futuro 2/66 Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware

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

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano Sistemas Operacionais Marcos Laureano 1/66 Roteiro Máquinas virtuais Emuladores Propriedades Benefícios Futuro 2/66 Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3

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

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

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

Leia mais

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

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

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

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

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

Visão Geral de Sistemas Operacionais

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

Leia mais

SISTEMAS DISTRIBUÍDOS

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

Leia mais

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

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla Unidade III FUNDAMENTOS DE SISTEMAS OPERACIONAIS Prof. Victor Halla Conteúdo Arquitetura de Processadores: Modo Operacional; Velocidade; Cache; Barramento; Etc. Virtualização: Maquinas virtuais; Gerenciamento

Leia mais

Exemplos práticos do uso de RMI em sistemas distribuídos

Exemplos práticos do uso de RMI em sistemas distribuídos Exemplos práticos do uso de RMI em sistemas distribuídos Elder de Macedo Rodrigues, Guilherme Montez Guindani, Leonardo Albernaz Amaral 1 Fábio Delamare 2 Pontifícia Universidade Católica do Rio Grande

Leia mais

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da

Leia mais

Introdução aos Sistemas Operativos

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

Leia mais

Sistemas Operacionais

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

1.2 Tipos de Sistemas Operacionais

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

Leia mais

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

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

RMI: Uma Visão Conceitual

RMI: Uma Visão Conceitual RMI: Uma Visão Conceitual Márcio Castro, Mateus Raeder e Thiago Nunes 11 de abril de 2007 Resumo Invocação de Método Remoto (Remote Method Invocation - RMI) trata-se de uma abordagem Java para disponibilizar

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

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

Gerenciamento de memória

Gerenciamento de memória Sistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings O problema Em um ambiente multiprogramado, é necessário: subdividir a memória

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

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 e Organização de Computadores. Capítulo 0 - Introdução

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

Leia mais

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

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

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

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

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

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

O que é Arquitetura de Computadores?

O que é Arquitetura de Computadores? O que é Arquitetura de Computadores? Forças Coordenação de um conjunto de níveis de abstração de um computador sobre um grande conjunto de forças de mudança Arquitetura de Computadores = Arquitetura de

Leia mais

Desenvolvimento de Aplicações Embarcadas

Desenvolvimento de Aplicações Embarcadas Desenvolvimento de Aplicações Embarcadas Aplicações embarcadas, ou sistemas embarcados, executam em processadores instalados (embarcados) em dispositivos cuja função precípua não é o processamento da informação.

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

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

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

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

SISTEMAS EMBARCADOS. Petiano: Yuri Gonzaga G. da Costa

SISTEMAS EMBARCADOS. Petiano: Yuri Gonzaga G. da Costa SISTEMAS EMBARCADOS Petiano: Yuri Gonzaga G. da Costa ÍNDICE História O que são Sistemas Embarcados? Exemplos e Aplicações Arquitetura Conceitual Implementação de Projetos Futuro dos Sistemas Embarcados

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

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

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

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

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