Simulador do MIPS do T&D-Bench, integrado com o gcc Aplicações no Ensino

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

Download "Simulador do MIPS do T&D-Bench, integrado com o gcc Aplicações no Ensino"

Transcrição

1 Simulador do MIPS do T&D-Bench, integrado com o gcc Aplicações no Ensino Matheus Antônio Zucolotto Pereira Christian Zambenedetti Sandro Neves Soares Universidade de Universidade de Universidade de Caxias do Sul Caxias do Sul Caxias do Sul mazperei@ucs.br christian@abacus.inf.br snsores@ucs.br Resumo Ao estender o modelo de simulação do MIPS do T&D-Bench para explorar o espaço de projeto usando um recurso arquitetural que reduz o consumo de energia, foi necessário permitir que programas em Assembly, gerados pelo gcc a partir de programas em C, servissem de entrada para o simulador. Estes acréscimos mais próximos da realidade, em conjunto com os recursos visuais e interativos já existentes, criaram novas possibilidades de uso deste simulador para ilustrar conceitos de Arquitetura de Computadores e, também, de Programação de Computadores. Os novos recursos, as aplicações já existentes e aquelas em potencial são descritas neste texto. 1. Introdução Há muitos simuladores didáticos que empregam o processador MIPS para apresentar conceitos de Arquitetura de Computadores. A nossa experiência mostra que eles executam programas em Assembly, criados pelo usuário, e que estes programas não atingem as dimensões de programas reais. Tais programas tratam de algoritmos simples e tradicionais, como ordenação de valores por exemplo, e trabalham sobre pequenos conjuntos de dados. A geração de programas em Assembly para estes simuladores, a partir de programas em C, usando um compilador, apesar de parecer uma tarefa simples e direta, na realidade torna-se algo impraticável se não for acompanhada de alterações no próprio simulador. Isso se deve às diferenças de sintaxe na digitação das instruções do Assembly e às diferentes diretivas empregadas. O usuário pode partir, então, para ambientes que prevêem a simulação de programas em C. Há diversos ambientes de modelagem, usados em pesquisa, que são usados também com propósitos didáticos. Entretanto, a complexidade de tais ambientes, relacionada a sua instalação, ao grande número de itens de configuração, a grande quantidade de resultados gerados, entre outros, faz com que eles não tenham tanto espaço, no ensino de Arquitetura de Computadores, quanto os simuladores didáticos. Neste contexto, sob demanda de um trabalho de pesquisa em andamento, foi necessário fazer com que o simulador do MIPS do T&D-Bench fosse estimulado por programas em C. Isso adicionou aos recursos visuais e interativos, já existentes em modelos de processadores do T&D-Bench, a possibilidade de execução de programas mais reais, sem acrescentar complexidade ao simulador. Novas possibilidades de uso em sala de aula foram criadas em conseqüência. O resultado obtido preenche, assim, uma lacuna deixada por simuladores didáticos e ambientes de pesquisa, bem dentro da proposta do framework T&D-Bench, que é a de ser usado em ensino e em pesquisa. O texto que segue descreve estes novos acréscimos ao simulador do MIPS do T&D-Bench e está organizado da seguinte forma: a Seção 2 apresenta outros simuladores didáticos do MIPS. A Seção 3 mostra detalhes do modelo de simulação do MIPS do T&D-Bench. A Seção 4 descreve os procedimentos e os recursos envolvidos na execução de programas em C no simulador. A Seção 5 apresenta aplicações já existentes e aquelas em potencial e, finalmente, a seção 6 apresenta as conclusões e discute trabalhos futuros. 2. Trabalhos Relacionados PCSpim [1] é um simulador usado para ensinar a programar na linguagem Assembly do MIPS R3000. Ele pode ser executado com uma interface gráfica ou através da linha de comandos. Os simuladores DLXview [2] e DARC2 [3] contam com interfaces 31

2 gráficas que permitem a visualização das operações internas dos três modos de execução do processador DLX: pipeline básico, algoritmo Tomasulo e scoreboarding. O DLX é uma versão simplificada do MIPS para uso no ensino. RaVi [4] inclui elementos multimídia para auxiliar na visualização do comportamento dinâmico dos componentes do hardware. Elementos disponíveis incluem o pipeline do MIPS e o protocolo MESI para multiprocessadores. WebMIPS [5] é um simulador do MIPS que pode ser executado através de um navegador de Internet. O DIMIPSS [6] é um software multiplataforma de simulação da execução das instruções Assembly do MIPS monociclo, executado através de uma interface gráfica simples. VLIW-DLX [7] é um simulador gráfico de um processador que usa a técnica VLIW (Very Large Instruction Word) e o conjunto de instruções do DLX. Nos testes com estes simuladores, não foi encontrada a possibilidade de executar programas desenvolvidos em linguagem C. 3. O Modelo de Simulação do MIPS O T&D-Bench [8] é um framework para a exploração do espaço de projeto de processadores que, usando um alto nível de abstração, provê um processo de projeto rápido e simplificado, juntamente com a flexibilidade para a modelagem de mecanismos arquiteturais mais complexos, ou específicos de um dado processador. Diversos modelos de processadores foram desenvolvidos com o T&D-Bench. Um deles é o modelo do processador MIPS [9], amplamente adotado no ensino de Arquitetura de Computadores, com dados e endereços de 32 bits, um pipeline de 5 estágios e 32 registradores de propósito geral. A Figura 1 mostra alguns trechos da sua descrição usando a TDSDL, a linguagem simplificada de descrição do T&D-Bench. O comando create instancia os componentes da organização do processador, que estão disponíveis na biblioteca de componentes do T&D-Bench. No exemplo, estão sendo criados os componentes do estágio FETCH do MIPS. Após o comando create, segue-se o nome do componente e alguns valores referentes a parâmetros da instância, como tipo de componente, largura em bits, entre outros. Cada componente da biblioteca conta com uma documentação descrevendo tais parâmetros. A descrição de aspectos temporais do exemplo indica um processador com 5 estágios de pipeline. Além dos nomes, os estágios são identificados também por números, que são usados, posteriormente, na temporização das microoperações de um dado tipo de instrução. Por último, o exemplo apresenta as microoperações que compõem o estágio de FETCH, incluídas em todos os tipos de instruções do MIPS. No caso, há a leitura e incremento do PC (add.behavior), a leitura da memória de instruções e a escrita do valor incrementado, novamente, no PC, via multiplexador muxpc, que é configurado para selecionar o incremento ao invés do salto (mpxpc.sel = 1). Micro-arquitetura create pc create imemory create add create muxpc create if_id Aspectos Temporais PIPELINED FETCH, 0, 0 DECODE, 1, 1 EXECUTE, 2, 2 MEMORY, 3, 3 WRITEBACK, 4, 4 Arquitetura (fetch) mop[0] muxpc.sel = 1 mop[0] pc.read mop[0] imemory.read mop[0] add.behavior mop[0] muxpc.behavior mop[0] pc.write Figura 1. Descrição TDSDL do MIPS Além da descrição TDSDL, o projetista deve programar, usando as macros do T&D-Bench [10], os métodos predefinidos da classe processor, a classe principal dos modelos do T&D-Bench (assim como a função main da linguagem C). A Figura 2 mostra alguns trechos da classe mips ( a extensão da classe processor no modelo do MIPS). No método initialize, a primeira instrução, um NOP, é criada e colocada no estágio FETCH. Isso dispara a busca das instruções do programa armazenado. No método fetch, após a verificação do atributo FETCH da memória de instruções imemory (1 significa que há instruções naquele ciclo), os 32 bits da instrução são buscados na saída S1 da respectiva memória e o atributo FETCH é resetado. 32

3 inop = decode ( 0L); método Initialize ppipecurrent.walk ( inop, "FETCH"); método Fetch if ( datapath.execute ( "imemory", GET, "FETCH", STATUSorCONF) == 1L) { lop = datapath.execute ( "imemory", GET, "S1", OUT); datapath.execute ( "imemory", SET, "FETCH", STATUSorCONF, 0);... Figura 2. Trechos da classe mips A partir da descrição TDSDL e do código na classe mips, o simulador do modelo de processador é gerado e pode ser executado com ou sem o uso de uma interface gráfica. A linguagem de desenvolvimento do T&D-Bench é o Java, portanto os simuladores executam em qualquer plataforma que tenha o Java Runtime Environment instalado. A implementação, os testes e o uso dos simuladores ocorrem em plataformas com Linux ou Windows. 4. A Execução de Programas em C no Simulador do MIPS O simulador do MIPS, gerado pelo T&D-Bench, inclui um montador que traduz programas Assembly para código de máquina. Este código é, então, carregado nas respectivas memórias de dados e de instruções. O montador não é gerado automaticamente, mas sim deve ser codificado pelo projetista. Essa foi uma decisão de projeto da metodologia de modelagem do T&D-Bench para retirar a complexidade da TDSDL. O montador precisou ser estendido para tratar o Assembly gerado pelo gcc. Por exemplo, diretivas e instruções não contempladas, como.ascii,.space, la, entre outras, passaram a ser tratadas. As seções que seguem mostram como compilar um programa em C para rodar no simulador, assim como mostram como executá-lo, validá-lo e depurá-lo A Compilação A fim de estarem aptos a serem carregados e executados no simulador do MIPS, programas em C precisam ser compilados para Assembly, usando-se o compilador GNU gcc, previamente configurado para gerar código MIPS. A geração de um programa em Assembly pelo gcc se dá com o uso da opção -S. Adicionalmente, o programa em C precisa atender às seguintes condições para rodar no simulador: 1. a função main tem que ser a primeira no arquivo contendo o código fonte; 2. não é possível a inclusão de arquivos de cabeçalho, como stdio.h e stdlib.h, nem a chamada a funções da biblioteca C padrão. O código destas funções (memcpy, strcpy, strcmp, sizeof e outras) deve ser fornecido pelo programador; 3. os tipos de ponto flutuante, float e double, ainda não são suportados; 4. variáveis globais podem ser usadas com o objetivo de depurar o programa em execução. Elas serão mostradas no início da memória de dados. As instruções para gerar o compilador gcc, configurado para produzir código MIPS, encontram-se na página do T&D-Bench na Internet A Execução A execução de um programa no simulador tem início com a carga de um arquivo texto contendo o programa em Assembly. Este arquivo pode ser escrito usando a linguagem Assembly diretamente, ou pode ser gerado a partir de um programa escrito em C e, após, traduzido para Assembly pelo compilador GNU gcc, como foi descrito na seção anterior. O arquivo em Assembly é traduzido pelo Montador do MIPS, integrado ao simulador, para código binário. Este código binário é, então, carregado nas respectivas memórias de instruções e de dados. A execução do programa, propriamente dita, pode ser feita ciclo a ciclo, por múltiplos ciclos ou até o seu final. Ao término da simulação, o usuário pode visualizar os resultados na própria GUI (Graphical User Interface) do simulador. O usuário da simulação conta com diversos recursos visuais e interativos para acompanhar e dirigir as execuções de programas. Estes recursos estão disponíveis em todos os simuladores do T&D-Bench. Por exemplo, na GUI, o usuário pode visualizar: - os componentes do caminho de dados e suas interconexões; - os valores nas portas de entrada, de saída e de controle dos componentes; - os conteúdos de registradores e de memórias; - o comportamento executado pelos componentes, a cada ciclo de relógio, a partir de um esquema de 33

4 cores, onde amarelo e vermelho especificam a leitura ou a escrita em um componente de lógica seqüencial, e laranja especifica a ativação de um componente de lógica combinacional. Branco especifica que o componente não foi usado naquele ciclo de relógio; - os valores de portas, do conteúdo e de atributos de um componente específico (a exemplo do atributo FETCH da memória de instruções) ou do próprio processador; - as instruções em cada estágio de pipeline com seus respectivos campos de bits e atributos, bem como a evolução temporal na execução destas instruções. do programa na plataforma real. A Figura 3 mostra o resultado da execução do programa CRC32 no Linux, enquanto que a Figura 4 mostra este mesmo resultado na memória de dados do modelo do MIPS na GUI do simulador na primeira palavra de memória. Por sua vez, a Figura 5 mostra como se deve dar o emprego do vetor global de inteiros results no código deste programa que está sendo validado 4.3. A Validação Inicialmente, a correta execução dos programas em C no simulador era um atributo difícil de determinar. Os motivos são os seguintes: 1. o modelo de processador não possui, ainda, um subsistema de Entrada e Saída, o que inviabiliza o uso de funções como a printf para a impressão de resultados; 2. devido à ausência deste subsistema de E/S, os resultados intermediários e finais precisam ser visualizados diretamente no conteúdo da memória de dados e como, muitas vezes, estes valores estão em variáveis locais, os seus valores não são facilmente visualizados devido ao comportamento dinâmico do segmento de pilha; 3. a possibilidade de rodar programas em C no simulador faz com que os correspondentes programas em Assembly gerados atinjam tamanhos significativos, bem superiores aos de programas escritos diretamente em Assembly. A solução adotada para verificar a correta execução de programas foi a inserção temporária, no código fonte, de um vetor global de inteiros, que pode então ser empregado, pelo programador, para capturar informações importantes ao longo do programa em C. Uma vez que se tenha determinado a correção do programa, este vetor pode ser retirado. Como foi dito na Seção 3.2, o conteúdo de variáveis globais é apresentado no início da memória de dados na GUI do simulador, isto é, nos seus endereços iniciais. Sendo assim, a correção ou não do programa em execução consiste em comparar os valores capturados nestes elementos do vetor com os resultados, propriamente ditos, obtidos pela execução Figura 3. Execução no Linux resultado Figura 4. Execução no Simulador - resultado for ( i = 0; ; i ++) { c = * pt ++; if ( c == -1) break; ++*charcnt; aux1 = ((oldcrc32)^((byte)c)) & aux; ptaux = crc_32_tab + aux1; oldcrc32 = * ptaux ^ ((oldcrc32) >> 8); *crc = oldcrc32 = ~oldcrc32; results [0]= * crc;... Figura 5. Uso do Vetor Global results no código do CRC A Depuração A motivação para a criação de um módulo de depuração surgiu da dificuldade encontrada em achar 34

5 erros nos programas em C que rodavam no simulador, devido aos motivos já apresentados na seção anterior. Tais erros podiam surgir apenas depois de milhares de ciclos de execução. O módulo de depuração consiste na definição de pontos de parada onde, posteriormente, o programa é interrompido, permitindo a visualização do estado do processador naquele momento da execução. Antes da existência deste módulo, os erros, que eventualmente apareciam, eram localizados através da reexecução do programa, passo a passo, a partir dos ciclos de relógio que antecediam o seu surgimento (quando era possível determinar o momento do erro). Com o módulo de depuração, é possível inserir variáveis globais no programa em C, conforme foi mostrado na seção anterior, e interromper o programa quando esta variável, armazenada na memória de dados ou em um registrador, atingir um determinado valor, entre outras possibilidades, o que reduziu bastante o tempo para se encontrar e corrigir erros nos programas. Em termos operacionais, o módulo de depuração implementa o uso de pontos de parada (breakpoints) que, após definidos, podem interromper a execução do programa para que o projetista analise o estado do processador naquele instante de tempo, em busca de erros por exemplo. A Figura 6 mostra a definição de um ponto de parada que vai interromper o programa quando o registrador PC (Program Counter) atingir o valor 55. A Figura 7 mostra um detalhe da tela do simulador do MIPS quando, efetivamente, ocorre a interrupção. Figura 6. Definindo um Ponto de Parada 5. Aplicações no Ensino O simulador do MIPS, como já foi dito, é um dos modelos disponíveis no T&D-Bench. Da mesma forma, ele é apenas um dos meios disponíveis no T&D-Bench para ensinar e aprender conceitos de Arquitetura de Computadores. A sua geração pelo framework faz com que os recursos de modelagem usados para este fim constituam, igualmente, meios para o aprendizado de Arquitetura de Computadores. As aplicações destes diversos meios no ensino de Arquitetura de Computadores são apresentadas nas próximas seções. Figura 7. Interrupção do programa em execução no ponto de parada 5.1. Plataforma de Modelagem e Programação Tarefas como o projeto e a implementação do Montador do MIPS são bons exercícios de programação para alunos de graduação da área de Computação. Além disso, o aluno aprofunda diversos conceitos de Arquitetura de Computadores: os diferentes segmentos de um programa, as instruções e as diretivas disponíveis em Assembly, sua sintaxe e os formatos das instruções disponíveis na arquitetura (tipos T, I e J). A codificação do módulo de depuração foi outro bom exercício de programação. Mas, ao contrário de montadores, que podem ser desenvolvidos sem o conhecimento da arquitetura de software do framework T&D-Bench, a programação do módulo de depuração exigiu um estudo desta arquitetura, principalmente da engrenagem de simulação de processadores do T&D- Bench. Neste tipo de tarefa, o aluno exercita a programação, entende a necessidade de uma etapa de estudo para que ele possa cooperar num projeto em desenvolvimento e, em termos de Arquitetura de Computadores, compreende melhor os diferentes componentes do caminho de dados, seu comportamento e composição, e como eles são ativados pelas instruções em execução. 35

6 Outro exercício de programação, pouco complexo e que não exigiu conhecimento da arquitetura de software do framework, foi a obtenção do perfil de execução de aplicações, no que tange ao número de vezes que cada diferente opcode foi executado. Isso foi necessário para o trabalho de pesquisa que está sendo desenvolvido. Em relação à Arquitetura de Computadores, o aluno pode aprofundar conhecimentos relacionados à busca e decodificação de instruções, e entender o suporte que um processador deve prover para executar diferentes tipos de aplicações, como aquelas centradas em manipulação de strings, ou em operações aritméticas, ou em operações lógicas, ou uma mistura destas, entre outras. Outros trabalhos desenvolvidos por alunos de graduação ou pós-graduação incluem a criação do módulo que gera a GUI dos simuladores do T&D- Bench, a criação de um componente memória cache para a biblioteca de componentes, que foi, posteriormente, incluído no modelo do processador Neander [11], o estudo de benchmarks e a criação da interface gráfica para o framework risa [12]. Atualmente, um aluno de graduação está iniciando a modelagem de um novo processador didático, o LC-3 [13]. Esta tarefa vai envolvê-lo com todos os recursos de modelagem do T&D-Bench: a linguagem TDSDL, a programação da classe lc-3, a extensão da classe processor neste modelo, e inclusive a biblioteca de componentes. Apenas para exemplificar, o componente sign extender disponível na biblioteca não contempla as necessidades do sign extender do LC-3, que precisará ser criado. Para ajudá-lo nesta e nas demais tarefas, o aluno está estudando o modelo do processador Neander. É idéia deste estudante incluir técnicas de Jogos de Computadores neste novo modelo. A visualização da efetiva execução de um programa em C no simulador, e a comparação dos resultados com a sua execução na plataforma real, aumentam a atenção dispensada pelos estudantes e geram motivação, provavelmente porque algo mais próximo da realidade está sendo apresentado. A Figura 8 mostra o código de um programa em C bastante simples e a Figura 9 mostra o respectivo código gerado nas memórias de dados e de instruções do simulador, logo após a sua carga. int results [1] = { -1 ; main ( ) { char str []= "string teste"; int tam = - 1; tam = strlen ( str); results [0] = tam; int strlen ( char * str) { int i; for ( i = 0; ; i ++) if ( * str ++ == '\0') return i; Figura 8. Programa Exemplo 1 em C 5.2. Em Sala de Aula Não foram acrescentados novos recursos didáticos ao simulador do MIPS quando da adição da possibilidade de executar programas em C. Os principais recursos didáticos já foram listados na Seção 4.2, e eles são comuns também em outros simuladores usados no ensino de Arquitetura de Computadores, com a diferença de que, no T&D-Bench, eles são gerados pelo framework para todos os modelos criados. Entretanto, o fato de poder executar programas em C neste simulador criou novas possibilidades de ilustração de conceitos da interface harware e software que são importantes em disciplinas de Arquitetura de Computadores, assim como para as de Programação de Computadores. Figura 9. Programa Exemplo 1 no simulador Nestes recursos visuais, o aluno pode visualizar em que se transforma o seu programa, escrito numa 36

7 linguagem de alto nível, para que ele possa ser armazenado e executado pelo computador. Na memória de instruções, são mostradas as instruções do programa em hexadecimal e em Assembly. Na memória de dados, ele pode visualizar as variáveis inicializadas: o vetor results na primeira palavra de memória e a string str a partir da segunda palavra, assim como as diferenças de armazenamento entre os tipos inteiro e caracter, no que diz respeito ao espaço ocupado, e a presença do discutido '\0' no final da string. A Figura 10 mostra o código de um segundo programa em C, ainda mais simples, e a Figura 11 mostra, respectivamente, o conteúdo da pilha antes da chamada à função soma e após o seu retorno. int results [0] = {-1; main ( ) { int a, b, c; a = 2; b = 3; c = soma ( a, b); int soma ( int x, int y) { int z; z = x + y; return ( z); Figura 10. Programa Exemplo 2 em C ciclo de vida temporário em oposição ao de variáveis globais, assim como a cópia de valores dos argumentos para as variáveis locais (passagem de argumentos por valor). Sem dúvida, estes conceitos poderiam ser apresentados a partir de um programa em Assembly que não fosse proveniente de um programa em C. Porém, deste maneira, o estudante perderia a relação daquilo que ele está visualizando com os elementos disponíveis no programa em C. Além disso, há casos em que o aprendizado de programação em C vem antes do aprendizado de Assembly e, também para estes casos, estas possibilidades de ilustração podem ser usadas Introdução à Pesquisa Este trabalho foi desenvolvido como suporte a um trabalho de pesquisa em desenvolvimento para explorar o espaço de projeto com um recurso arquitetural que reduz o consumo de energia. O resultado é o framework risa [12] do T&D-Bench, que também pode constituir um meio para o ensino de Arquitetura de Computadores. Ele pode ser usado em sala de aula para demonstrar um tema atual de pesquisa na área de sistemas embarcados, com o emprego de uma técnica que prevê a redução das instruções do programa de 32 para 16 bits e que, por isso, não traz grandes dificuldades à compreensão por parte dos alunos. Ele pode servir, igualmente, para motivar os estudantes e, quem sabe, engajá-los em futuros projetos relacionados à Arquitetura de Computadores. 6. Conclusão e Trabalhos Futuros Figura 11. Configuração da memória de dados - pilha Aqui o aluno pode visualizar o uso da pilha para o envio e o retorno de valores entre funções, o armazenamento de variáveis locais na pilha e o seu Este trabalho apresentou um simulador do MIPS que executa programas escritos em linguagem C e as suas possibilidades de uso para ilustrar conceitos da interface harware e software que são importantes em disciplinas de Arquitetura de Computadores, assim como para as de Programação de Computadores. Na seqüência, pretende-se inserir, na página do T&D-Bench, um recurso para que o usuário possa enviar arquivos, contendo programas em C, a fim de gerar os respectivos programas em Assembly a serem usados no simulador. Isso retira a necessidade de configurar o gcc, tarefa nem sempre tão simples para estudantes de graduação nos primeiros semestres do currículo. Pretende-se, igualmente, dar continuidade aos demais projetos didáticos e de pesquisa com o framework. 37

8 Mais informações sobre este trabalho podem ser encontradas na página do T&D-Bench em Referências [1] J. Larus. SPIM: A MIPS R2000/R3000. Disponível em: Accesso em setembro, [2] Y. Zhang and G.B. Adams. An Interactive, Visual Simulator for the DLX Pipeline. Proceedings of the Workshop on Computer Architecture Education, 1997, San Antonio, Texas. [3] R.L. Uy, M. Bernardo and E. Josiel. DARC2: 2nd. Generation DLX Architecture Simulator. Proceedings of the Workshop on Computer Architecture Education, 2004, Munich, Germany, p [4] P. Marwedel and B. Sirocic. Multimedia Components for the Visualization of Dynamic Behavior in Computer Architectures. Proceedings of the Workshop on Computer Architecture Education, 2003, San Diego, California, p [5] I. Branovic, R. Giorgi and E. Martinelli WebMIPS: A New Web-Based MIPS Simulation Environment for Computer Architecture Education. Proceedings of the Workshop on Computer Architecture Education, 2004, Munich, Germany, p [6] A.F. Felix, C.V. Pousa, and M.B. Carvalho. DIMIPSS: Um simulador didático e interativo do MIPS. Workshop sobre Educação em Arquitetura de Computadores Disponível em: Accesso em setembro, [7] M. Becvar and S. Kahánec. VLIW-DLX Simulator for Educational Purposes. Workshop on Computer Architecture Education, Disponível em: Accesso em setembro, [8] S. Soares and F.R. Wagner. From Classroom to Research: Providing Different Services for Computer Architecture Education. Workshop on Computer Architecture Education, 2007, San Diego, Califórnia. [9] D. A. Patterson and J. L. Hennessy. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, Inc, p. [10] S. Soares and F.R. Wagner. Design Space Exploration using T&D-Bench. Anais do XVI Symposium on Computer Architecture and High Performance Computing, 2004, Foz do Iguaçu, PR. p [11] R. F. Weber. Fundamentos de Arquitetura de Computadores. 2.ed. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto, p. (Série Livros Didáticos, n. 8). [12] J.F. da Silva, F.R. Wagner and S. Soares. Explorando o Espaço de Projeto com o Objetivo de Redução do Consumo de Energia usando Reduced Bit-width Instruction Set Architecture (risa). Workshop em Sistemas Computacionais de Alto Desempenho, 2007, Gramado, RS. A ser publicado. [13] Y.N. Patt and S.J. Patel. Introduction to Computing Systems: from bits and gates to C and beyond. McGraw-Hill. 632 p. 38

Simulador do Processador Neander T&D-Bench Simulator Manual do Usuário. por Júlio César Maccali. revisado por Prof. Christian Zambenedetti

Simulador do Processador Neander T&D-Bench Simulator Manual do Usuário. por Júlio César Maccali. revisado por Prof. Christian Zambenedetti UNIVERSIDADE DE CAXIAS DO SUL CAMPUS UNIVERSITÁRIO DA REGIÃO DOS VINHEDOS CENTRO DE CIÊNCIAS EXATAS, DA NATUREZA E DE TECNOLOGIA CURSO DE TECNOLOGIA EM PROCESSAMENTO DE DADOS Simulador do Processador Neander

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01 IFTO LÓGICA DE PROGRAMAÇÃO AULA 01 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://manoelcampos.com mcampos at ifto.edu.br Versão

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

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

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

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

ARQUITETURA DE COMPUTADORES - 1866

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

Leia mais

Usando o simulador MIPS

Usando o simulador MIPS Usando o simulador MIPS O objetivo desta aula prática será a utilização do simulador MipsIt para executar programas escritos em linguagem de máquina do MIPS. 1 Criando um projeto Cada programa a ser executado

Leia mais

MC-102 Aula 01. Instituto de Computação Unicamp

MC-102 Aula 01. Instituto de Computação Unicamp MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2015 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos

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

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

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

Desenvolvimento de um Simulador de Gerenciamento de Memória

Desenvolvimento de um Simulador de Gerenciamento de Memória Desenvolvimento de um Simulador de Gerenciamento de Memória Ricardo Mendes do Nascimento. Ciência da Computação Universidade Regional Integrada do Alto Uruguai e das Missões (URI) Santo Ângelo RS Brasil

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

28/9/2010. Unidade de Controle Funcionamento e Implementação

28/9/2010. Unidade de Controle Funcionamento e Implementação Arquitetura de Computadores Unidade de Controle Funcionamento e Implementação Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Operação da Unidade de Controle Unidade de controle: parte do

Leia mais

Programação de Computadores I. Conhecendo a IDE Code::Blocks

Programação de Computadores I. Conhecendo a IDE Code::Blocks Code::Blocks Conhecendo a IDE Programação de Computadores I Professor: Edwar Saliba Júnior Conhecendo a IDE Code::Blocks Apresentação: 1) Abra a IDE (Integrated Development Environment), ou seja, o Ambiente

Leia mais

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores 1. Objetivos Situar a atividade de programação de computadores Apresentar conceitos fundamentais relativos

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Pipeline Slide 1 Pipeline Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Organização e Arquitetura de Computadores I Caminho de Dados

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

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

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

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

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

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

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

NetBeans. Conhecendo um pouco da IDE

NetBeans. Conhecendo um pouco da IDE NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica

Leia mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

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

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 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto

Leia mais

Cadastramento de Computadores. Manual do Usuário

Cadastramento de Computadores. Manual do Usuário Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES

Leia mais

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Nota de Aula: Utilização da IDE Code::Blocks

Nota de Aula: Utilização da IDE Code::Blocks INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO CAMPUS SÃO LUÍS MONTE CASTELO DEPARTAMENTO ACADÊMICO DE INFORMÁTICA SISTEMAS DE INFORMAÇÃO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO I PROFESSOR:

Leia mais

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Continuando as aulas sobre os fundamentos

Leia mais

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO AO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar a grande semelhança entre Java e C Apresentar a organização diferenciada

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

1. Apresentação. 1.1. Objetivos

1. Apresentação. 1.1. Objetivos 1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em

Leia mais

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

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

Dispositivos de Entrada e Saída

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

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

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

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto: Processadores BIP A família de processadores BIP foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) da Universidade do Vale do Itajaí UNIVALI com o objetivo

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Introdução a Linguagem C Princípios de Programação em C Gil Eduardo de Andrade Conceitos Iniciais: Linguagem C Introdução É uma linguagem estruturada; Foi desenvolvida na década

Leia mais

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, 354 - cj. 121 CEP 01323-001 - São Paulo - SP (11) 3266-2096

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, 354 - cj. 121 CEP 01323-001 - São Paulo - SP (11) 3266-2096 TUTORIAL DE UTILIZAÇÃO Índice Geral Antes de Começar 2 Procedimento de Instalação 3 Exportar dados para o 8 Acesso ao 10 Ordens de Serviço no 11 Solicitações de Serviço no 17 Folhas de Inspeção no 19 Importar

Leia mais

PROGRAMA DE DISCIPLINA

PROGRAMA DE DISCIPLINA PROGRAMA DE DISCIPLINA Disciplina: INTRODUÇÃO À PROGRAMAÇÃO Carga horária total: 60 h Carga horária teórica: 30 h Carga horária prática: 30 h Código da Disciplina: CCMP0041 Período de oferta: 2015.2 Turma:

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados 1. Objetivos Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis Ciência da Computação Arq. e Org. de Computadores Máquinas Multiníveis Prof. Sergio Ribeiro Computador digital máquina que resolve problemas executando uma série de instruções. Programa conjunto de instruções

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos 1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas,

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

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Descrição e análise da implementação em Assembly MIPS da função itoa

Descrição e análise da implementação em Assembly MIPS da função itoa Descrição e análise da implementação em Assembly MIPS da função itoa Alana Rocha 1, Guilherme Alves 2, Guilherme Nunes 3 e Luiz Guilherme 4 Objetivo e visão geral do documento Este documento tem o objetivo

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

O Processo de Programação

O Processo de Programação Programação de Computadores I Aula 04 O Processo de Programação José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/23 Algoritmo Um algoritmo é uma seqüência de

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

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

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

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Gerenciamento de Clientes

Gerenciamento de Clientes Programação Orientada a Objetos Gerência de Objetos por Outro Objeto Programação de Computadores II Professor: Edwar Saliba Júnior Gerenciamento de Clientes Neste exemplo, veremos de forma bem simples

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Manual de Utilização Autorizador

Manual de Utilização Autorizador 1) Acessando: 1-1) Antes de iniciar a Implantação do GSS, lembre-se de verificar os componentes de software instalados no computador do prestador de serviço: a) Sistema Operacional: nosso treinamento está

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO] Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob

Leia mais

3 Revisão de Software

3 Revisão de Software 1 3 Revisão de Software O software é indispensável para a utilização do hardware. Sem o software para utilizar o computador precisaríamos ter um profundo conhecimento do hardware. Alguns softwares são

Leia mais

PRINCÍPIOS DE INFORMÁTICA PRÁTICA 06 1. OBJETIVO 2. BASE TEÓRICA 3. SEQÜÊNCIA DA AULA. 3.1 Iniciando o PowerPoint

PRINCÍPIOS DE INFORMÁTICA PRÁTICA 06 1. OBJETIVO 2. BASE TEÓRICA 3. SEQÜÊNCIA DA AULA. 3.1 Iniciando o PowerPoint PRINCÍPIOS DE INFORMÁTICA PRÁTICA 06 1. OBJETIVO Apresentar o PowerPoint, que é o software para montar apresentações na forma de slides da Microsoft. Isso será feito seguindo-se uma seqüência mostrando

Leia mais

Manual de Integração

Manual de Integração Manual de Integração Versão 3.10 Conteúdo 1 Obtendo e Instalando o Emissor... 4 1.1 Obtendo o instalador... 4 1.2 Instalando o JAVA e o Framework.NET 2.0... 4 1.3 Instalando o Emissor... 5 2 Padrões de

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa ARQUITETURA DE COMPUTADORES 1 Rogério Spindula Rosa 2 EXECUÇÃO DE PROGRAMAS PROGRAMA 3 4 INTRODUÇÃO Hoje é raro escrever um programa diretamente em linguagem de computador em virtude da enorme dificuldade

Leia mais

1. PROLOGO ==========

1. PROLOGO ========== 1997 - Hackers Iniciantes em Linguagem C 1997 - RoyalBug - thedarkage@mail.geocities.com thedarkage2@mail.geocities.com 1997 - The Black Church MANUAL C 01 ================ 1997 - http://www.pcs.usp.br/~peasilva/

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