1. O documento descreve um simulador gráfico 3D para ensinar arquitetura de processadores.
2. O simulador permite visualizar instruções sendo executadas de forma passo-a-passo em um processador com e sem pipeline para facilitar a compreensão.
3. O simulador usa animações 3D para mostrar o fluxo de informações durante a execução de instruções de uma forma intuitiva.
No ensino de arquitetura de computadores, um dos principais desafios é fazer com que os alunos compreendam com mais facilidade o funcionamento de um processador. Para auxiliar a esta tarefa, são utilizadas aplicações que simulam tais arquiteturas. A proposta do presente trabalho é desenvolver uma aplicação, disponibilizada na web, que simule visualmente as instruções de uma arquitetura didática e implementável. É possível visualizar a simulação de tais instruções com ou sem pipeline, o que facilita a compreensão das mesmas e do funcionamento de um processador enquanto as executam.
Este documento descreve dois simuladores desenvolvidos para auxiliar no ensino de sistemas operacionais: (1) um simulador de gerenciamento de memória real e virtual que ilustra estratégias de alocação e substituição de páginas e (2) um simulador de escalonamento de processos em arquiteturas multicore. Os simuladores possuem interface gráfica interativa para melhorar a compreensão dos alunos por meio da visualização dos algoritmos.
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoJurmir Canal Neto
1. O documento descreve um trabalho de conclusão de curso sobre modelagem de ambientes de computação ubíqua utilizando simulação.
2. A metodologia inclui revisão bibliográfica sobre sistemas distribuídos, ambientes inteligentes, computação móvel e ubíqua, além de modelagem e simulação.
3. O trabalho propõe um ambiente experimental com tecnologias como Java e MySQL para simular a localização de clientes móveis por sensores em um ambiente ubíqua.
Tópicos - Computacao Paralela Programação 3 (Visão geral)Luiz Arthur
O documento discute conceitos fundamentais de programação paralela, incluindo: (1) algoritmos paralelos exploram recursos de máquinas paralelas; (2) decomposição de problemas em tarefas paralelas; (3) mapeamento de tarefas a processadores.
Tópicos - Computacao Paralela Programacao 2 (Visão geral)Luiz Arthur
O documento discute conceitos fundamentais de programação paralela, incluindo: (1) algoritmos paralelos podem ser decompostos em tarefas executadas simultaneamente; (2) técnicas como particionamento estático e dinâmico de tarefas; e (3) escalonamento de tarefas em diferentes processadores para melhor uso dos recursos.
Este artigo apresenta o VMARS, o primeiro simulador que fornece suporte completo às instruções vetoriais da extensão MIPS SIMD Architecture (MSA). O VMARS é baseado no simulador MARS e adiciona recursos para visualização e simulação das instruções vetoriais MSA, incluindo 32 registradores vetoriais de 128 bits cada. O simulador foi desenvolvido para auxiliar no ensino de arquitetura de computadores, permitindo a execução de códigos que utilizam o processamento vetorial MIPS.
1. O documento descreve o software Merlin, que gera interfaces CRUD em tempo de execução utilizando uma abordagem baseada em modelos. 2. Merlin oferece interfaces de usuário simples e complexas (mestre-detalhe) com foco em facilidade de uso e resposta rápida a mudanças no modelo de dados. 3. Exemplos demonstram como anotações no modelo de dados influenciam a interface gerada e como o Merlin é integrado em um sistema cliente.
1) O documento propõe uma arquitetura em FPGA para segmentação rápida de imagens por cores utilizando um algoritmo eficiente.
2) O projeto implementa o algoritmo em um módulo em Verilog e armazena dados em quatro memórias.
3) Os resultados experimentais demonstraram que a abordagem é viável para aplicações que requerem processamento de imagem em tempo real.
No ensino de arquitetura de computadores, um dos principais desafios é fazer com que os alunos compreendam com mais facilidade o funcionamento de um processador. Para auxiliar a esta tarefa, são utilizadas aplicações que simulam tais arquiteturas. A proposta do presente trabalho é desenvolver uma aplicação, disponibilizada na web, que simule visualmente as instruções de uma arquitetura didática e implementável. É possível visualizar a simulação de tais instruções com ou sem pipeline, o que facilita a compreensão das mesmas e do funcionamento de um processador enquanto as executam.
Este documento descreve dois simuladores desenvolvidos para auxiliar no ensino de sistemas operacionais: (1) um simulador de gerenciamento de memória real e virtual que ilustra estratégias de alocação e substituição de páginas e (2) um simulador de escalonamento de processos em arquiteturas multicore. Os simuladores possuem interface gráfica interativa para melhorar a compreensão dos alunos por meio da visualização dos algoritmos.
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoJurmir Canal Neto
1. O documento descreve um trabalho de conclusão de curso sobre modelagem de ambientes de computação ubíqua utilizando simulação.
2. A metodologia inclui revisão bibliográfica sobre sistemas distribuídos, ambientes inteligentes, computação móvel e ubíqua, além de modelagem e simulação.
3. O trabalho propõe um ambiente experimental com tecnologias como Java e MySQL para simular a localização de clientes móveis por sensores em um ambiente ubíqua.
Tópicos - Computacao Paralela Programação 3 (Visão geral)Luiz Arthur
O documento discute conceitos fundamentais de programação paralela, incluindo: (1) algoritmos paralelos exploram recursos de máquinas paralelas; (2) decomposição de problemas em tarefas paralelas; (3) mapeamento de tarefas a processadores.
Tópicos - Computacao Paralela Programacao 2 (Visão geral)Luiz Arthur
O documento discute conceitos fundamentais de programação paralela, incluindo: (1) algoritmos paralelos podem ser decompostos em tarefas executadas simultaneamente; (2) técnicas como particionamento estático e dinâmico de tarefas; e (3) escalonamento de tarefas em diferentes processadores para melhor uso dos recursos.
Este artigo apresenta o VMARS, o primeiro simulador que fornece suporte completo às instruções vetoriais da extensão MIPS SIMD Architecture (MSA). O VMARS é baseado no simulador MARS e adiciona recursos para visualização e simulação das instruções vetoriais MSA, incluindo 32 registradores vetoriais de 128 bits cada. O simulador foi desenvolvido para auxiliar no ensino de arquitetura de computadores, permitindo a execução de códigos que utilizam o processamento vetorial MIPS.
1. O documento descreve o software Merlin, que gera interfaces CRUD em tempo de execução utilizando uma abordagem baseada em modelos. 2. Merlin oferece interfaces de usuário simples e complexas (mestre-detalhe) com foco em facilidade de uso e resposta rápida a mudanças no modelo de dados. 3. Exemplos demonstram como anotações no modelo de dados influenciam a interface gerada e como o Merlin é integrado em um sistema cliente.
1) O documento propõe uma arquitetura em FPGA para segmentação rápida de imagens por cores utilizando um algoritmo eficiente.
2) O projeto implementa o algoritmo em um módulo em Verilog e armazena dados em quatro memórias.
3) Os resultados experimentais demonstraram que a abordagem é viável para aplicações que requerem processamento de imagem em tempo real.
O documento discute o uso de simuladores completos como uma ferramenta pedagógica para o ensino de Arquitetura de Computadores. Ele propõe uma nova metodologia que utiliza simuladores para apresentar conceitos de forma prática em aulas teóricas e práticas a um baixo custo, superando as limitações dos métodos tradicionais e de uso de máquinas reais.
O documento apresenta os principais conceitos do WebSphere MQ, incluindo os três estilos de comunicação entre programas, o papel dos gerenciadores de filas e das filas locais e remotas na comunicação entre aplicativos, e as principais chamadas da interface MQI utilizadas para acessar recursos do MQ.
O documento apresenta informações sobre a especificação preliminar de um projeto de engenharia de software, incluindo a necessidade de equipes de 4 a 6 pessoas com papéis definidos, liberdade na escolha do tema do projeto e uso de ferramentas como ArgoUML e modelos para produção de artefatos. Também contém uma lista de exercícios sobre processos de desenvolvimento de software, casos de uso, requisitos e o RUP.
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareCesar Rocha
A comunidade de desenvolvimento de software vem adotando cada vez mais os conceitos propostos pelos padrões de projeto no processo de desenvolvimento de software. Estudos reportam evidências de que esses padrões causam um impacto positivo na qualidade do software, mas em alguns casos a adoção de padrões de projeto pode ser inapropriada. Esse trabalho monográfico relata a origem e os fundamentos dos padrões de projeto, e busca evidenciar a importância da aplicação de padrões para obter a excelência e a qualidade desejadas para os sistemas de software. Através de uma pesquisa bibliográfica esse trabalho evidenciou que a aplicação de padrões de projeto na fase de desenvolvimento do software é um recurso positivo nos processos futuros de manutenção. Fatores como reusabilidade, modularidade, uso de interfaces, composição de objetos, baixo acoplamento e alta coesão são diretamente manipulados através dos padrões de projeto e consequentemente promovem melhorias na manutenabilidade. Apesar dos benefícios proporcionados, os padrões de projeto também podem ter efeitos negativos sobre os sistemas de software.
Este documento fornece instruções para a realização de uma prova de conhecimentos técnicos para o cargo de Técnico(a) de Informática Júnior. As instruções incluem detalhes sobre o material da prova, assinatura do cartão de respostas, preenchimento do cartão, tempo disponível e regras de eliminação.
Este documento fornece as melhores práticas para o uso do WebSphere MQ, incluindo: (1) usar nomes curtos para objetos MQ; (2) atribuir uma fila Dead Letter Queue a cada gerenciador de filas; (3) evitar nomes fixos de objetos nos programas.
O documento descreve a evolução histórica das linguagens de programação, desde as primeiras linguagens em código de máquina até as linguagens orientadas a objetos modernas. Resume três pontos principais: 1) As primeiras linguagens de alto nível como FORTRAN deram um passo importante, mas não introduziram mudanças significativas no estilo de programação; 2) Linguagens estruturadas como C e Pascal permitiram escrever programas moderadamente complexos de maneira mais fácil, mas apresentavam limitações à medida que os projetos cresciam; 3
O documento discute o uso de simuladores e ferramentas educacionais no ensino de arquitetura de computadores. Ele destaca a complexidade do assunto e a dificuldade de ensiná-lo apenas com métodos tradicionais. Também apresenta alguns simuladores existentes e ressalta a importância desse tipo de ferramenta para auxiliar os alunos a compreenderem melhor os conceitos.
Este documento descreve um projeto que tem como objetivo implementar métodos para projetar e fabricar peças de forma integrada através da internet, considerando padronização e qualidade. O projeto usa o padrão STEP-NC para gerar arquivos físicos a partir de modelagem de peças e planejamento de processo, e gera códigos ISO 6983 para fabricação em máquinas CNC.
1) Muitos aplicativos de software precisarão ser modificados para aproveitar processadores multicore, dividindo tarefas em threads para serem executadas simultaneamente.
2) Há diferentes abordagens para programação multithread como segmentação explícita e métodos dirigidos pelo compilador como OpenMP.
3) Desenvolvedores precisarão testar aplicações multithread para evitar bugs como condições de corrida e otimizar o desempenho aproveitando todos os núcleos da CPU.
O documento descreve conceitos de arquitetura paralela e computação paralela, incluindo modelos como SISD, SIMD, MISD e MIMD. Também discute aplicações como processadores vetoriais, multiprocessadores simétricos e máquinas maciçamente paralelas. Finalmente, aborda software para processamento paralelo e os três principais tipos: Swar, SMP e clusters Beowulf.
O documento introduz ASP.NET com VB.NET. Apresenta o professor Norton Guimarães e sua experiência. Discutem a plataforma .NET, ASP.NET, Visual Studio e introduzem conceitos como CLS, CTS, CLR e programação orientada a objetos em VB.NET.
O documento discute como conceitos de inteligência artificial podem contribuir para o desenvolvimento de sistemas operacionais. Descreve brevemente a evolução dos sistemas operacionais e suas estruturas, e argumenta que apesar dos avanços tecnológicos, sistemas operacionais não evoluíram o suficiente. A aplicação de conceitos de IA pode ajudar no desenvolvimento de uma nova geração de sistemas operacionais mais inteligentes.
O documento descreve o desenvolvimento de um software de análise estrutural chamado LESM usando o MATLAB. O LESM permite a modelagem, análise e visualização de resultados de modelos estruturais reticulados 2D e 3D através de uma interface gráfica desenvolvida no GUIDE. O código é orientado a objetos e bem documentado para fins didáticos, e pode ser executado como aplicativo independente do MATLAB.
O documento descreve um protótipo de sistema de gerenciamento de rotas para transporte coletivo desenvolvido usando Java, JSP, API Google Maps e banco de dados PostgreSQL. O sistema permite gerenciar rotas de forma automatizada, calculando distâncias e custos.
Curso de Produção Fonográfica DO GOVERNO DO ESTADO DE MINAS GERAIS. PROJETO ESCOLAS - REFERÊNCIA. Material utilizado na capacitação de alunos, professores e funcionários da Secretária da Educação do Estado de Minas Gerais.
Cadernos de Informatica do PORTAL DO PROFESSOR:
- CURSO DE CAPACITAÇÃO EM INFORMÁTICA INSTRUMENTAL
- CURSO DE MONTAGEM E MANUTENÇÃO DE COMPUTADORES
- CURSO SOBRE O SISTEMA OPERACIONAL LINUX
- CURSO DE PROGRAMAÇÃO EM JAVA
- CURSO DE INTRODUÇÃO A BANCOS DE DADOS
- CURSO DE CONSTRUÇÃO DE WEB SITES
- CURSO DE EDITORAÇÃO ELETRÔNICA
- CURSO DE ILUSTRAÇÃO DIGITAL
- CURSO DE PRODUÇÃO FONOGRÁFICA <-------------------
- CURSO DE COMPUTAÇÃO GRÁFICA 3D
- CURSO DE PROJETO AUXILIADO POR COMPUTADOR
- CURSO DE MULTIMÍDIA NA EDUCAÇÃO
1) O documento discute o desenvolvimento de uma extensão da ferramenta Ptolemy para fins educacionais no ensino de Organização e Arquitetura de Computadores.
2) A extensão permite que alunos criem seus próprios modelos de arquitetura de maneira interativa e didática.
3) Ptolemy oferece funcionalidades que outras ferramentas de simulação não fornecem, como a criação de atores reutilizáveis que podem ser usados para modelar diferentes sistemas.
Tópicos - Computacao Paralela Programação (Visão geral)Luiz Arthur
O documento discute programação paralela, especificamente: 1) Algoritmos paralelos envolvem processos que podem ser executados simultaneamente e se comunicar para resolver problemas; 2) É necessário projetar algoritmos paralelos que explorem totalmente as capacidades da arquitetura paralela.
Curso de ilustração digital DO GOVERNO DO ESTADO DE MINAS GERAIS. PROJETO ESCOLAS - REFERÊNCIA.Material utilizado na capacitação de alunos, professores e funcionários da secretária da educação do estado de Minas Gerais.
Cadernos de Informatica do PORTAL DO PROFESSOR:
- CURSO DE CAPACITAÇÃO EM INFORMÁTICA INSTRUMENTAL
- CURSO DE MONTAGEM E MANUTENÇÃO DE COMPUTADORES
- CURSO SOBRE O SISTEMA OPERACIONAL LINUX
- CURSO DE PROGRAMAÇÃO EM JAVA
- CURSO DE INTRODUÇÃO A BANCOS DE DADOS
- CURSO DE CONSTRUÇÃO DE WEB SITES
- CURSO DE EDITORAÇÃO ELETRÔNICA
- CURSO DE ILUSTRAÇÃO DIGITAL <---------------------
- CURSO DE PRODUÇÃO FONOGRÁFICA
- CURSO DE COMPUTAÇÃO GRÁFICA 3D
- CURSO DE PROJETO AUXILIADO POR COMPUTADOR
- CURSO DE MULTIMÍDIA NA EDUCAÇÃO
Este documento descreve um simulador chamado SOAC para apoiar o ensino e aprendizado de Organização e Arquitetura de Computadores. O SOAC simula a execução de instruções na UCP e o fluxo de dados entre a memória principal de forma visual e dinâmica. Ele representa os principais componentes de hardware de forma simplificada para facilitar a compreensão dos conceitos.
O documento descreve o Modelo OSI, que foi desenvolvido pela ISO para padronizar a comunicação entre sistemas abertos através de uma arquitetura baseada em camadas. O modelo define 7 camadas hierárquicas que especificam funções como transmissão de dados, endereçamento e comunicação entre aplicações. A adoção do modelo permitiu a interoperabilidade entre sistemas de diferentes fabricantes.
O documento introduz os conceitos de desenvolvimento web usando ASP.NET, incluindo como o .NET Framework funciona, o que é ASP.NET e MVC, e como utilizar a IDE Visual Studio.
O documento discute o uso de simuladores completos como uma ferramenta pedagógica para o ensino de Arquitetura de Computadores. Ele propõe uma nova metodologia que utiliza simuladores para apresentar conceitos de forma prática em aulas teóricas e práticas a um baixo custo, superando as limitações dos métodos tradicionais e de uso de máquinas reais.
O documento apresenta os principais conceitos do WebSphere MQ, incluindo os três estilos de comunicação entre programas, o papel dos gerenciadores de filas e das filas locais e remotas na comunicação entre aplicativos, e as principais chamadas da interface MQI utilizadas para acessar recursos do MQ.
O documento apresenta informações sobre a especificação preliminar de um projeto de engenharia de software, incluindo a necessidade de equipes de 4 a 6 pessoas com papéis definidos, liberdade na escolha do tema do projeto e uso de ferramentas como ArgoUML e modelos para produção de artefatos. Também contém uma lista de exercícios sobre processos de desenvolvimento de software, casos de uso, requisitos e o RUP.
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareCesar Rocha
A comunidade de desenvolvimento de software vem adotando cada vez mais os conceitos propostos pelos padrões de projeto no processo de desenvolvimento de software. Estudos reportam evidências de que esses padrões causam um impacto positivo na qualidade do software, mas em alguns casos a adoção de padrões de projeto pode ser inapropriada. Esse trabalho monográfico relata a origem e os fundamentos dos padrões de projeto, e busca evidenciar a importância da aplicação de padrões para obter a excelência e a qualidade desejadas para os sistemas de software. Através de uma pesquisa bibliográfica esse trabalho evidenciou que a aplicação de padrões de projeto na fase de desenvolvimento do software é um recurso positivo nos processos futuros de manutenção. Fatores como reusabilidade, modularidade, uso de interfaces, composição de objetos, baixo acoplamento e alta coesão são diretamente manipulados através dos padrões de projeto e consequentemente promovem melhorias na manutenabilidade. Apesar dos benefícios proporcionados, os padrões de projeto também podem ter efeitos negativos sobre os sistemas de software.
Este documento fornece instruções para a realização de uma prova de conhecimentos técnicos para o cargo de Técnico(a) de Informática Júnior. As instruções incluem detalhes sobre o material da prova, assinatura do cartão de respostas, preenchimento do cartão, tempo disponível e regras de eliminação.
Este documento fornece as melhores práticas para o uso do WebSphere MQ, incluindo: (1) usar nomes curtos para objetos MQ; (2) atribuir uma fila Dead Letter Queue a cada gerenciador de filas; (3) evitar nomes fixos de objetos nos programas.
O documento descreve a evolução histórica das linguagens de programação, desde as primeiras linguagens em código de máquina até as linguagens orientadas a objetos modernas. Resume três pontos principais: 1) As primeiras linguagens de alto nível como FORTRAN deram um passo importante, mas não introduziram mudanças significativas no estilo de programação; 2) Linguagens estruturadas como C e Pascal permitiram escrever programas moderadamente complexos de maneira mais fácil, mas apresentavam limitações à medida que os projetos cresciam; 3
O documento discute o uso de simuladores e ferramentas educacionais no ensino de arquitetura de computadores. Ele destaca a complexidade do assunto e a dificuldade de ensiná-lo apenas com métodos tradicionais. Também apresenta alguns simuladores existentes e ressalta a importância desse tipo de ferramenta para auxiliar os alunos a compreenderem melhor os conceitos.
Este documento descreve um projeto que tem como objetivo implementar métodos para projetar e fabricar peças de forma integrada através da internet, considerando padronização e qualidade. O projeto usa o padrão STEP-NC para gerar arquivos físicos a partir de modelagem de peças e planejamento de processo, e gera códigos ISO 6983 para fabricação em máquinas CNC.
1) Muitos aplicativos de software precisarão ser modificados para aproveitar processadores multicore, dividindo tarefas em threads para serem executadas simultaneamente.
2) Há diferentes abordagens para programação multithread como segmentação explícita e métodos dirigidos pelo compilador como OpenMP.
3) Desenvolvedores precisarão testar aplicações multithread para evitar bugs como condições de corrida e otimizar o desempenho aproveitando todos os núcleos da CPU.
O documento descreve conceitos de arquitetura paralela e computação paralela, incluindo modelos como SISD, SIMD, MISD e MIMD. Também discute aplicações como processadores vetoriais, multiprocessadores simétricos e máquinas maciçamente paralelas. Finalmente, aborda software para processamento paralelo e os três principais tipos: Swar, SMP e clusters Beowulf.
O documento introduz ASP.NET com VB.NET. Apresenta o professor Norton Guimarães e sua experiência. Discutem a plataforma .NET, ASP.NET, Visual Studio e introduzem conceitos como CLS, CTS, CLR e programação orientada a objetos em VB.NET.
O documento discute como conceitos de inteligência artificial podem contribuir para o desenvolvimento de sistemas operacionais. Descreve brevemente a evolução dos sistemas operacionais e suas estruturas, e argumenta que apesar dos avanços tecnológicos, sistemas operacionais não evoluíram o suficiente. A aplicação de conceitos de IA pode ajudar no desenvolvimento de uma nova geração de sistemas operacionais mais inteligentes.
O documento descreve o desenvolvimento de um software de análise estrutural chamado LESM usando o MATLAB. O LESM permite a modelagem, análise e visualização de resultados de modelos estruturais reticulados 2D e 3D através de uma interface gráfica desenvolvida no GUIDE. O código é orientado a objetos e bem documentado para fins didáticos, e pode ser executado como aplicativo independente do MATLAB.
O documento descreve um protótipo de sistema de gerenciamento de rotas para transporte coletivo desenvolvido usando Java, JSP, API Google Maps e banco de dados PostgreSQL. O sistema permite gerenciar rotas de forma automatizada, calculando distâncias e custos.
Curso de Produção Fonográfica DO GOVERNO DO ESTADO DE MINAS GERAIS. PROJETO ESCOLAS - REFERÊNCIA. Material utilizado na capacitação de alunos, professores e funcionários da Secretária da Educação do Estado de Minas Gerais.
Cadernos de Informatica do PORTAL DO PROFESSOR:
- CURSO DE CAPACITAÇÃO EM INFORMÁTICA INSTRUMENTAL
- CURSO DE MONTAGEM E MANUTENÇÃO DE COMPUTADORES
- CURSO SOBRE O SISTEMA OPERACIONAL LINUX
- CURSO DE PROGRAMAÇÃO EM JAVA
- CURSO DE INTRODUÇÃO A BANCOS DE DADOS
- CURSO DE CONSTRUÇÃO DE WEB SITES
- CURSO DE EDITORAÇÃO ELETRÔNICA
- CURSO DE ILUSTRAÇÃO DIGITAL
- CURSO DE PRODUÇÃO FONOGRÁFICA <-------------------
- CURSO DE COMPUTAÇÃO GRÁFICA 3D
- CURSO DE PROJETO AUXILIADO POR COMPUTADOR
- CURSO DE MULTIMÍDIA NA EDUCAÇÃO
1) O documento discute o desenvolvimento de uma extensão da ferramenta Ptolemy para fins educacionais no ensino de Organização e Arquitetura de Computadores.
2) A extensão permite que alunos criem seus próprios modelos de arquitetura de maneira interativa e didática.
3) Ptolemy oferece funcionalidades que outras ferramentas de simulação não fornecem, como a criação de atores reutilizáveis que podem ser usados para modelar diferentes sistemas.
Tópicos - Computacao Paralela Programação (Visão geral)Luiz Arthur
O documento discute programação paralela, especificamente: 1) Algoritmos paralelos envolvem processos que podem ser executados simultaneamente e se comunicar para resolver problemas; 2) É necessário projetar algoritmos paralelos que explorem totalmente as capacidades da arquitetura paralela.
Curso de ilustração digital DO GOVERNO DO ESTADO DE MINAS GERAIS. PROJETO ESCOLAS - REFERÊNCIA.Material utilizado na capacitação de alunos, professores e funcionários da secretária da educação do estado de Minas Gerais.
Cadernos de Informatica do PORTAL DO PROFESSOR:
- CURSO DE CAPACITAÇÃO EM INFORMÁTICA INSTRUMENTAL
- CURSO DE MONTAGEM E MANUTENÇÃO DE COMPUTADORES
- CURSO SOBRE O SISTEMA OPERACIONAL LINUX
- CURSO DE PROGRAMAÇÃO EM JAVA
- CURSO DE INTRODUÇÃO A BANCOS DE DADOS
- CURSO DE CONSTRUÇÃO DE WEB SITES
- CURSO DE EDITORAÇÃO ELETRÔNICA
- CURSO DE ILUSTRAÇÃO DIGITAL <---------------------
- CURSO DE PRODUÇÃO FONOGRÁFICA
- CURSO DE COMPUTAÇÃO GRÁFICA 3D
- CURSO DE PROJETO AUXILIADO POR COMPUTADOR
- CURSO DE MULTIMÍDIA NA EDUCAÇÃO
Este documento descreve um simulador chamado SOAC para apoiar o ensino e aprendizado de Organização e Arquitetura de Computadores. O SOAC simula a execução de instruções na UCP e o fluxo de dados entre a memória principal de forma visual e dinâmica. Ele representa os principais componentes de hardware de forma simplificada para facilitar a compreensão dos conceitos.
O documento descreve o Modelo OSI, que foi desenvolvido pela ISO para padronizar a comunicação entre sistemas abertos através de uma arquitetura baseada em camadas. O modelo define 7 camadas hierárquicas que especificam funções como transmissão de dados, endereçamento e comunicação entre aplicações. A adoção do modelo permitiu a interoperabilidade entre sistemas de diferentes fabricantes.
O documento introduz os conceitos de desenvolvimento web usando ASP.NET, incluindo como o .NET Framework funciona, o que é ASP.NET e MVC, e como utilizar a IDE Visual Studio.
O documento descreve um estudo de caso sobre o desenvolvimento de um serviço web chamado SmartSampa para facilitar o acesso aos dados do sistema de ônibus de São Paulo utilizando princípios de código limpo. O projeto usa técnicas como inversão de dependência, responsabilidade única e padrões como injeção de dependência e adapter para obter um software de qualidade com código limpo e fácil de manter.
O documento apresenta o projeto de conclusão de curso de quatro alunos da Escola Técnica Dr. Geraldo José Rodrigues Alckmin para desenvolver um sistema computacional para informatizar a Escola Municipal de Ciências Aeronáuticas (EMCA) de Taubaté, que não possui nenhum sistema informatizado. O sistema foi desenvolvido utilizando Delphi 7 e VB.NET com banco de dados Firebird 1.5 para automatizar o cadastro de alunos, notas, frequências e outros processos da escola.
[1] O documento apresenta os conceitos fundamentais de programação paralela utilizando OpenMP, incluindo memória compartilhada, threads e diretivas de compilação. [2] É introduzido o modelo de programação fork-join do OpenMP e suas principais diretivas como PARALLEL, DO e SECTIONS. [3] São descritos exemplos de uso das diretivas e exercícios para treinar a aplicação do OpenMP.
O documento discute a análise estruturada como uma técnica para desenvolvimento de sistemas. Ele explica os benefícios da análise estruturada, incluindo fornecer uma especificação clara do sistema através de diagramas de fluxo de dados e dicionários de dados. O documento também discute alguns problemas com a análise estruturada, como a resistência aos detalhes requeridos e preocupações de que pode limitar a criatividade de programadores.
This document proposes incentive mechanisms called Network of Favors (NoF) and its variants to encourage cooperation among selfish peers in a federated cloud computing environment. The baseline NoF approach uses a local credit system to prioritize peers that have provided more resources to others in the past. A Satisfaction-Driven NoF (SD-NoF) maximizes the resources provided to maximize peer satisfaction, while a Fairness-Driven NoF (FD-NoF) regulates the resources provided through a feedback control loop to achieve good fairness levels. Simulation results show FD-NoF can achieve similar satisfaction levels to SD-NoF in high resource contention scenarios, while improving fairness by 44% in low contention scenarios, suggesting
Apresentação do artigo "Controlando a Contenção de Recursos para Promover Justiça em uma Federação Peer-to-Peer de Nuvens Privadas" no WCGA 2015 - SBRC 2015.
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Eduardo de Lucena Falcão
O documento apresenta uma introdução sobre sistemas distribuídos na nuvem AWS, incluindo como configurar o ambiente de programação e realizar testes de carga em uma aplicação implantada em uma instância EC2 usando o Apache Benchmark.
Este documento apresenta conceitos sobre serviços de computação em nuvem da AWS, incluindo: (1) EC2 para provisionamento de instâncias virtuais; (2) ELB para balanceamento de carga entre instâncias; (3) Auto Scaling para dimensionamento automático de instâncias; (4) CloudWatch para monitoramento de recursos. O documento descreve características e vocabulário desses serviços.
A AWS surgiu para resolver os problemas de escalabilidade do site da Amazon. Seus primeiros serviços foram SQS, S3 e EC2, permitindo comunicação entre componentes, armazenamento escalável na nuvem e computação elástica por hora. Posteriormente lançou outros serviços como RDS, ELB, Auto Scaling e CloudWatch para armazenamento de dados, balanceamento e monitoramento de carga.
Este documento apresenta os principais conceitos da computação em nuvem, incluindo: (1) os modelos de serviço como SaaS, PaaS e IaaS; (2) as cinco características essenciais da nuvem como auto-serviço sob demanda, amplo acesso, pooling de recursos, elasticidade rápida e serviço medido; e (3) os quatro modelos de implantação da nuvem.
Este documento introduz os sistemas distribuídos, definindo-os como um conjunto de computadores independentes que aparecem para os usuários como um único sistema coerente. Explora as motivações, características e tipos de sistemas distribuídos, incluindo clusters, supercomputadores, grids, sistemas pervasivos e nuvem.
Este documento apresenta uma introdução ao curso de Sistemas Distribuídos. Ele discute os objetivos do curso, os tópicos que serão abordados, como a avaliação será realizada e os resultados esperados ao final do curso. Os alunos aprenderão os conceitos fundamentais de sistemas distribuídos e como implantar um sistema escalável na nuvem AWS.
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...Eduardo de Lucena Falcão
- O documento discute o problema da otimização da multiplicação de cadeias de matrizes. Aborda possíveis soluções como programação dinâmica, minimização de cache miss e abordagens distribuídas com threads e OpenMP. Realiza análise comparativa do desempenho dessas abordagens no problema.
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...Eduardo de Lucena Falcão
Este documento discute a preservação do sítio arqueológico Itacoatiaras do Ingá, localizado em Ingá, Paraíba, através da criação de um ambiente virtual 3D. Uma equipe multidisciplinar coletou informações sobre o local e as categorizou para compor o ambiente virtual, permitindo a divulgação e acesso remoto ao sítio arqueológico.
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...Eduardo de Lucena Falcão
Este documento discute várias abordagens para resolver o problema da multiplicação de cadeias de matrizes de forma otimizada, incluindo: (1) programação dinâmica para encontrar a ordem ótima de multiplicação, (2) minimização de cache miss ao modificar a ordem de loops, e (3) uso de threads para explorar processadores multicore. O objetivo é analisar esses métodos e medir seu impacto no desempenho.
Seminário apresentado na disciplina de Teoria da Computação. Aborda o processo de tradução da língua portuguesa para a Libras, exemplificando as possíveis aplicações dos assuntos de Teoria da Computação, como autômatos.
A Lei de Moore prevê o aumento exponencial do número de transistores nos processadores a cada dois anos, porém os desafios da escala de tamanho dos transistores e o aumento do consumo de energia ameaçam essa lei.
A memória não consegue acompanhar o aumento de desempenho dos processadores multicore devido ao "problema da parede da memória", forçando novas abordagens como a hierarquização da memória.
A lei de Amdahl mostra que mesmo com processadores multicore
PRATICANDO O SCRUM Scrum team, product owneranpproferick
Scrum: Uma Estrutura Ágil para Projetos Complexos
Scrum é uma estrutura ágil amplamente utilizada para gerenciar e concluir projetos complexos. Sua abordagem iterativa e incremental permite que equipes multifuncionais colaborem de forma eficaz, respondam a mudanças e entreguem produtos de alta qualidade que atendam às necessidades dos clientes.
Princípios Fundamentais do Scrum
Transparência: Todos os aspectos do projeto, incluindo metas, progresso e desafios, são visíveis para todos os membros da equipe e partes interessadas.
Inspeção: O trabalho em andamento é revisado regularmente para identificar desvios do plano e oportunidades de melhoria.
Adaptação: As mudanças necessárias são feitas com base nas informações coletadas durante a inspeção, garantindo que o projeto permaneça no caminho certo.
Papéis no Scrum
Product Owner: Responsável por definir a visão do produto, priorizar as funcionalidades e garantir que o produto entregue valor ao cliente.
Scrum Master: Facilita a implementação do Scrum, remove obstáculos e garante que a equipe siga os princípios e práticas do Scrum.
Equipe de Desenvolvimento: Um grupo multifuncional responsável por entregar um incremento de produto "Pronto" potencialmente utilizável ao final de cada Sprint.
Eventos do Scrum
Sprint: Um período de tempo fixo (normalmente de 1 a 4 semanas) durante o qual um incremento de produto utilizável é criado.
Sprint Planning: Uma reunião no início de cada Sprint para definir as metas da Sprint e planejar o trabalho a ser realizado.
Daily Scrum: Uma breve reunião diária de 15 minutos onde os membros da equipe discutem o progresso, os desafios e o plano para o dia seguinte.
Sprint Review: Uma reunião no final de cada Sprint para apresentar o incremento de produto às partes interessadas e obter feedback.
Sprint Retrospective: Uma reunião após a Sprint Review para que a equipe reflita sobre o processo e identifique oportunidades de melhoria.
Artefatos do Scrum
Product Backlog: Uma lista ordenada de tudo o que é necessário para desenvolver e entregar o produto.
Sprint Backlog: Uma lista de itens do Product Backlog selecionados para serem concluídos durante a Sprint.
Incremento de Produto: Um resultado concreto do trabalho realizado durante a Sprint, que deve ser utilizável e agregar valor ao produto.
Benefícios do Scrum
Maior adaptabilidade a mudanças: O Scrum permite que as equipes respondam rapidamente às mudanças nas necessidades do cliente ou do mercado.
Melhora na qualidade do produto: A ênfase na entrega de incrementos de produto utilizáveis em cada Sprint garante que o produto seja testado e validado regularmente.
Maior satisfação do cliente: O envolvimento do cliente em todo o processo de desenvolvimento garante que o produto final atenda às suas necessidades e expectativas.
Maior produtividade da equipe: O Scrum promove a colaboração, a comunicação e a autonomia da equipe, resultando em maior produtividade e motivação.
Redução de riscos: A abordagem iterativa e incrementa
Teoria de redes de computadores redes .docanpproferick
O documento "Teoria de redes de computadores redes" oferece uma visão abrangente dos princípios e elementos fundamentais das redes de computadores. Começando com uma introdução sobre o que constitui uma rede, seus componentes e mecanismos de comunicação, o texto explora a diversidade de redes existentes, desde as redes pessoais de curto alcance (PAN) até as extensas redes de longa distância (WAN), incluindo redes metropolitanas (MAN) e redes de armazenamento (SAN).
Além disso, o documento aprofunda a análise dos tipos de redes cliente-servidor e ponto a ponto, elucidando suas vantagens e desvantagens em diferentes cenários. A transmissão de dados é outro ponto crucial abordado no texto, que detalha os meios físicos de transmissão, como cabos de par trançado, cabos coaxiais e fibra óptica, além das tecnologias sem fio que permitem a comunicação sem a necessidade de cabos.
O documento também apresenta os principais equipamentos de rede, como repetidores, modems, hubs, switches, roteadores, bridges e gateways, detalhando suas funções e a importância de cada um para o funcionamento eficiente de uma rede. Adicionalmente, o texto introduz o conceito de comutação de pacotes, um mecanismo essencial para a transmissão de dados em redes modernas, que permite que múltiplos usuários compartilhem recursos de rede de forma eficiente.
Em resumo, o documento "Teoria de redes de computadores redes" serve como um guia completo para entender os conceitos básicos e os componentes essenciais das redes de computadores, desde os diferentes tipos de redes até os equipamentos que as compõem e os protocolos que regem a comunicação entre dispositivos.O documento "Teoria de redes de computadores redes" oferece uma visão abrangente dos princípios e elementos fundamentais das redes de computadores. Começando com uma introdução sobre o que constitui uma rede, seus componentes e mecanismos de comunicação, o texto explora a diversidade de redes existentes, desde as redes pessoais de curto alcance (PAN) até as extensas redes de longa distância (WAN), incluindo redes metropolitanas (MAN) e redes de armazenamento (SAN).
Além disso, o documento aprofunda a análise dos tipos de redes cliente-servidor e ponto a ponto, elucidando suas vantagens e desvantagens em diferentes cenários. A transmissão de dados é outro ponto crucial abordado no texto, que detalha os meios físicos de transmissão, como cabos de par trançado, cabos coaxiais e fibra óptica, além das tecnologias sem fio que permitem a comunicação sem a necessidade de cabos.
O documento também apresenta os principais equipamentos de rede, como repetidores, modems, hubs, switches, roteadores, bridges e gateways, detalhando suas funções e a importância de cada um para o funcionamento eficiente de uma rede. Adicionalmente, o texto introduz o conceito de comutação de pacotes, um mecanismo essencial para a transmissão de dados em redes modernas, que permite que múltiplos usuários compartilhem recursos de rede de forma eficiente.
Por que escolhi o Flutter - Campus Party Piauí.pdfIan Oliveira
Exploraremos as razões pelas quais o Flutter se tornou o favorito do Google e de desenvolvedores em todo o mundo. Desde sua estrutura flexível e eficiente até sua capacidade de criar aplicativos belos e funcionais em tempo recorde, mergulhe no mundo do Flutter e saiba por que ele está mudando a maneira como pensamos sobre o desenvolvimento de aplicativos móveis. Prepare-se para ser inspirado a dar o próximo passo em direção ao futuro do desenvolvimento de aplicativos multiplataforma com Flutter!
Como fui de 0 a lead na gringa em 3 anos.pptxtnrlucas
Esse documento conta a história do autor em sua jornada na área de Desenvolvimento de Software e como ele conseguiu chegar numa vaga de liderança numa empresa internacional em um curto período de tempo.
Gestão de dados: sua importância e benefíciosRafael Santos
O gerenciamento de dados abrange todos os aspectos do gerenciamento de dados ao longo de seu ciclo de vida — desde a criação até a exclusão ou arquivamento. Isso inclui atividades como entrada de dados, transformação de dados, armazenamento de dados, gerenciamento de metadados e governança de dados.
Esses tópicos de gerenciamento de dados são extremamente importantes. Pense no gerenciamento de dados como a infraestrutura — a espinha dorsal das organizações — permitindo que você tome decisões acertadas com base em dados confiáveis.
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Annelise Gripp
Você vai encontrar nessa apresentação ferramentas e técnicas que podem ser usadas em todo o processo de Engenharia de Software ponta a ponta, com seu time.
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
1. Ambiente de Simulação Gráfica 3D para Ensino da
Arquitetura de Processadores
Eduardo de Lucena Falcão1, Erick Vagner Cabral de Lima Borges1, Igor Lucena
Peixoto Andrezza1, Glauco Sousa e Silva1, Kívio Grangeiro Wanderley1, Berg
Élisson Sampaio Cavalcante1, Hamilton Soares da Silva1
1
Departamento de Informática – Universidade Federal da Paraíba (UFPB)
Cidade Universitária 58.059-900 – João Pessoa – PB – Brasil
{eduardolfalcao, erickvagnerr, igorlpa90, glauco.sousa6, wkivio,
bergelisson01}@gmail.com, hamilton@di.ufpb.br
Abstract. In Computer Architecture, one of the challenges is getting the
students to understand the workings of a processor correctly. To assist in this
task, applications are used to simulate these architectures. From these
barriers of education, is proposed the development of an application that
visually simulates the instructions of an implementable and didactic
architecture. Such instructions can be visualized, both with and without
pipeline, which facilitates the comprehension of this concept, and of the
operation of a processor while executing an instruction.
Resumo. Em arquitetura de computadores, um dos desafios é conseguir que
os alunos compreendam o funcionamento de um processador corretamente.
Para auxiliar esta tarefa são utilizadas aplicações que simulam essas
arquiteturas. A partir dessas barreiras do ensino, se propôs desenvolver uma
aplicação que simula visualmente as instruções de uma arquitetura didática e
implementável. Tais instruções podem ser visualizadas, tanto com quanto sem
pipeline, o que facilita a compreensão desse conceito, e do funcionamento de
um processador enquanto realiza uma instrução.
1. Introdução
A informática tem tido uma relevância cada vez maior nos dias de hoje no cenário
educacional. Aplicações para o ensino facilitam a transmissão do conhecimento de
professores para alunos através de métodos dinâmicos, massificando uma aula para
múltiplos ramos sem haver grande esforço ou repetições desnecessárias.
O uso da computação gráfica tem se mostrado útil nos métodos de aprendizagem
em diferentes áreas. O uso de CAD, sistemas computacionais que auxiliam na
construção de desenhos técnicos, na geologia, engenharia e arquitetura, por exemplo,
mostra o quanto uma interface gráfica com 3D facilita no desenvolvimento de um
projeto, no seu entendimento e posterior ensino.
Facilitar a aprendizagem do correto funcionamento de um processador para os
alunos e proporcionar uma visão comparativa sobre algumas possibilidades arquiteturais
são os principais problemas encontrados no ensino de arquitetura de computadores. Um
desafio ainda maior é tornar o conteúdo atrativo visualmente. Várias caixas e fios com
letras pequenas tornam os circuitos um assunto de difícil entendimento a partir de uma
simples leitura.
2. Os simuladores atuais que estão disponíveis para o ensino apresentam uma
interface de usuário pouco elaborada e com poucos recursos operacionais, e mesmo
considerando o uso de arquiteturas mais simples, é usual por parte dos alunos certa
dificuldade de trabalhar com eles [Borges e Silva 2006]. A grande maioria destes
simuladores exige dos alunos codificarem o sistema, ou seja, é necessário conhecimento
em programação de linguagem de máquina ou rodam no DOS apenas exibindo os
valores presentes nos registradores, o que torna a aprendizagem do funcionamento da
arquitetura do processador uma tarefa longa e exigente.
Para auxílio a esta tarefa, está sendo desenvolvida uma aplicação com objetivo
de prover maior motivação e interesse por parte dos alunos em participar das aulas de
arquitetura de computadores. Recursos como animações gráficas tridimensionais estão
sendo utilizados para facilitar o entendimento do funcionamento dos processadores, já
que na prática não é possível ver o caminho percorrido pela informação processada.
Este simulador não exige do aluno nenhum grau de programação para que a arquitetura
seja demonstrada, Dessa forma é possível efetuar um estudo detalhado dos elementos
presentes na arquitetura.
2. Trabalhos Relacionados
Existem muitas ferramentas que simulam processadores, como exemplos temos o
Abacus, WinMIPS64 [Scott 2006], SATSim [Wolf e Wills 2000] e o GNUSim8085
[Sridhar 2002].
O Abacus (desenvolvido em Windows) e o GNUSim8085 (desenvolvido para
plataformas Unix) simulam o microprocessador 8085 da Intel, o qual tem sido base do
ensino de arquitetura de computadores, devido a sua simplicidade, seguindo o modelo
de Von Neumann e sem possuir pipeline. Ambos apresentam os valores dos
registradores no decorrer da execução das instruções, além de exibir o conteúdo
presente na memória do processador.
O simulador WinMIPS64 simula a arquitetura do processador MIPS64, que
utiliza o pipeline. Essa ferramenta possibilita a visualização das instruções passando
pelos pipelines e os valores presentes nos registradores.
Para o ensino de arquiteturas superescalares há o SATSim que não se baseia em
nenhum processador real, dessa maneira ele possibilita a configuração da quantidade de
unidades funcionais por tipo de instrução, o número de elementos por buffer de
reordenação, o número de instruções buscadas por ciclo e etc.
3. Fundamentação Teórica
3.1. Arquitetura de Processadores
É necessário conhecer a arquitetura interna de um processador para facilitar a
compreensão de como ele executa programas. Em um processador existem vários
circuitos chamados de registradores que funcionam como posições de memória onde o
seu acesso é extremamente rápido.
Todos os processadores usam uma linguagem baseada em códigos numéricos na
memória, onde cada código significa uma instrução no qual chamamos de linguagem de
máquina. Os códigos numéricos são representados por siglas que são os nomes das
3. instruções, e os operandos dessas instruções são os registradores, valores existentes na
memória e valores constantes.
Alguns processadores são baseados no modelo arquitetural de Von Neumann
que considera uma unidade central de processamento (CPU) com apenas uma unidade
funcional, podendo buscar apenas uma instrução por ciclo de execução como
demonstrado na Figura 1.
Figura 1 – Ilustração do modelo de Von Neumann
Para o ensino de arquitetura de computadores, é interessante demonstrar o
conceito de pipeline, técnica de hardware que permite que a unidade central de
processamento realize a busca de uma ou mais instruções além da próxima a ser
executada. Estas instruções são colocadas em uma fila de memória dentro do
processador (CPU) onde aguardam o momento de serem executadas, esta técnica
permite que o tempo de processamento de uma instrução seja menor do que o tempo
que seria gasto caso o pipeline não fosse utilizado. A estratégia do pipeline é
demonstrada na Figura 2.
Figura 2 – Ilustração da Estratégia do pipeline
3.2. X3D
O X3D (Extensible 3D) é um padrão aberto adotado internacionalmente para
disponibilização de conteúdos tridimensionais na Web [Brutzman e Daly 2007]. Ele
permite descrever em um arquivo, formas e comportamentos de ambientes virtuais
tridimensionais complexos e interativos.
A visualização destas cenas descritas em X3D é realizada através de browsers
específicos que consistem em aplicações capazes de interpretar e processar os arquivos
X3D, apresentando os modelos tridimensionais, animados ou não, e permitindo
interações do usuário com os objetos. Os browsers X3D (também chamados de
navegadores ou players) podem se apresentar como plugins ou applets em navegadores
4. Web como o Mozilla Firefox ou Google Chrome, ou como aplicações independentes
[Web3D Consortium 2011].
Para a formação gráfica da cena são utilizados os nós X3D, que por sua vez
compõem o grafo de cena. Cada nó é formado por uma seqüência específica de campos.
Os nós descrevem as funcionalidades disponibilizadas pelo X3D, e os campos servem
para especificar os atributos e características dos nós X3D utilizadas para descrição
tridimensional do ambiente. A interatividade de uma cena X3D pode ser caracterizada
por mudanças de posição, orientação, tamanho, cores ou outras características
pertinentes aos campos do nó X3D, resultando em uma animação. Eventos e rotas são
as funcionalidades do X3D que permitem adicionar tais comportamentos a objetos do
ambiente virtual de forma simples. Para interações mais complexas são utilizados o nó
Script e a API SAI (Scene Access Interface) que permite o controle do grafo da cena
através de linguagens de programação [Web3D – Part 2: Scene Access Interface].
Para este trabalho, foi utilizado o browser Xj3D, a API SAI (Scene Access Interface)
que permite manipulação do grafo de cena X3D, e a linguagem de programação Java,
para programar toda interatividade do aplicativo.
4. Simulador desenvolvido
O simulador produzido demonstra o funcionamento do processador didático
apresentado em [Tanenbaum 2006], que apesar de não ser comercial é implementável.
O nível de microarquitetura que será descrito tem a função de simular o nível
ISA (Instruction Set Architecture – Arquitetura do Conjunto de Instruções). O Caminho
de Dados utilizado para a simulação é a parte da CPU que contém a ULA, suas entradas
e saídas. Ele contém vários registradores aos quais foram atribuídos nomes simbólicos
como PC, SP, MDR e MBR, onde MBR foi dividido em MBR1 com 8 bits e MBR2
com 16 bits. É importante ressaltar que esses registradores são acessíveis apenas no
nível de microarquitetura (pelo microprograma).
Com o objetivo de que o comprimento do caminho de execução seja menor,
foram utilizados dois barramentos completos de entrada para a ULA (barramentos A e
B) e um barramento de saída. Todos (ou ao menos a maioria) dos registradores devem
ter acesso a ambos os barramentos de entrada. A vantagem de ter dois barramentos de
entrada é que não é possível adicionar um registrador a outro registrador em um só
ciclo.
O simulador é composto por uma interface gráfica que contém uma lista das
instruções disponíveis, uma breve descrição do objetivo da instrução escolhida e um
espaço reservado para o visualizador da simulação. Na lista fornecida, o usuário escolhe
qual instrução do processador deseja visualizar como ilustrado na Figura 3.
5. Figura 3 – Tela Inicial
Após a escolha da instrução o botão “OK” deve ser pressionado. Então uma
breve descrição com o objetivo da instrução é mostrada logo após, como se observa na
Figura 4.
Figura 4 – Descrição do Objetivo da Instrução
Ao pressionar o botão “SIMULAÇÃO” ela é iniciada de acordo com a instrução
escolhida. A posição das telas lado a lado facilita a compreensão, já que o usuário pode
observar a descrição do objetivo e o mesmo em ação.
6. Figura 5 – Simulação da Instrução
A memória e todos os outros elementos do processador são representados em
um contexto tridimensional. A simulação demonstra a seqüência de passos da execução
de uma instrução na Figura 5, desde sua saída da memória até seu retorno, caso ocorra.
A exibição de cada passo é feita através da interpolação das cores ou posição dos
elementos que estiverem ativos. Cada instrução exibida contém um conjunto de micro-
instruções que são demonstradas pela exibição passo-a-passo a cada clock, de acordo
com o conceito de pipeline visto anteriormente, e são marcadas com uma cor diferente
com o objetivo de demonstrar o clock e o pipeline como demonstrado na Figura 6. Para
melhor visualização, a câmera acompanha o fluxo de passos da execução da instrução,
focando nos blocos que estão sendo utilizados em determinado momento da simulação.
Figura 6 – Ilustração da Simulação do Pipeline
7. 5. Conclusões e Trabalhos Futuros
O entendimento de como funciona uma determinada arquitetura é uma tarefa difícil de
ser compreendida quando se estuda apenas a teoria. Isto evidencia a importância do uso
de simuladores neste contexto.
A partir dessa constatação, o simulador apresentado neste trabalho visa facilitar
o entendimento da arquitetura baseada no modelo de Von Neumann. A facilitação da
compreensão ocorre devido à apresentação intuitiva das informações ao usuário pelo
simulador. Os trabalhos correlatos encontrados na literatura apresentam apenas
informações textuais dos valores de registradores, flags e memória, e algumas
estatísticas.
O presente trabalho propõe que o fluxo de informações do processador seja
ilustrado através de um ambiente 3D, que torna simples a visualização de informações
sendo transferidas de um objeto como o barramento, registrador, ou ULA, para outros
por intermédio da mudança de cores dos mesmos. O principal objetivo desse simulador
é facilitar o entendimento dos alunos de cursos da Ciência da Computação e similares
no estudo da arquitetura dos computadores. Outra característica positiva, que o
diferencia em relação aos demais simuladores citados nesse trabalho, é a possibilidade
de visualizar uma mesma instrução sendo executado em uma mesma arquitetura de
processador, com e sem o uso do pipeline, facilitando de forma substancial a
compreensão dessa importante evolução ocorrida na área.
Para trabalhos futuros propõe-se a realização de uma avaliação do uso do
simulador por estudantes para coletar a impressão destes e verificar a facilidade de uso,
e grau de aprendizado adquirido, para posterior aperfeiçoamento da aplicação. Propõe-
se também a disponibilização via Web do aplicativo, promovendo o acesso dos alunos à
ferramenta e possibilitando uma facilidade para a prática da Educação à Distância.
Referências
Borges, José Antonio S. Silva, Gabriel P. (2006) “NeanderWin - Um Simulador
Didático para uma Arquitetura do Tipo Acumulador”.
Brutzman, D., Daly, L., (2007) “X3D: 3D Graphics for Web Authors”. Morgan
Kaufmann Publishers.
Moreira, Angélica A., Martins, Carlos Augusto Paiva da Silva. (2009) “R2DSim:
Simulador Didático do RISC Reconfigurável”
Scott, M. (2006) “WinMips64, version 1.5, School of Computing, Dublin City
University, Ireland”, http://www.computing.dcu.ie/~mike/winmips64.html, 07 2009, 20.
Sridhar, Z, (2002) “GNUSim8085, versão 1.3”,
http://gnusim8085.sourceforge.net/index.php/Main_Page, 06 2009, 23.
Tanenbaum, Andrew S. (2006) “Organização Estruturada de Computadores”, Editora
Prentice-Hall.
Verona, André B., Martini, João A., Gonçalves, Tiago Lopes (2009) “SIMAEAC: Um
Simulador Acadêmico para Ensino de Arquitetura de Computadores”.
8. Web3D Consortium, “X3D – FAQ (Frequented Asked Questions)”. Online:
http://www.lsi.usp.br/~lsoares/x3d/faq.html. Acesso em: março/2011.
Web3D – Part 2: Scene Access Interface, “Extensible 3D (X3D). Part 2: Scene access
interface (SAI). ISO/IEC 197752.2: 2009”. Online:
http://www.web3d.org/x3d/specifications/ISOIECFDIS197752.2X3DSceneAccessIn
terface/index.html. Acesso em março/2010.
Wolff, M. e Wills, L. (2000) “SATSim: A Superscalar Architecture Trace Simulator
Using Interactive Animation”, In: WCAE: Workshop On Computer Architecture
Education, Vancouver, Canada.
Zelenovsky, Ricardo. (2002) “PC: um guia Prático de Hardware e Interfaceamento”,
Editora MZ Produções Culturais.