Comparação entre Máquinas Virtuais Java e CLI em Algoritmos de Computação Numérica Intensiva

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

Download "Comparação entre Máquinas Virtuais Java e CLI em Algoritmos de Computação Numérica Intensiva"

Transcrição

1 Comparação entre Máquinas Virtuais Java e CLI em Algoritmos de Computação Numérica Intensiva Francisco José Lins Magalhães, Francisco Heron de Carvalho-Junior e Jefferson de Carvalho Silva 1 Departamento de Computação Universidade Federal do Ceará (UFC) Fortaleza CE Brasil Abstract. This paper evaluates the performance of two well known virtual machines at the corporative environment for typical scientific computing applications: OpenJVM, based on the Java, and Mono, based on the CLI standard (Common Language Infrastructure). The use of virtual machines for High Performance Computing (HPC) is very important, due to the heterogeneity of the involved technologies. This work makes use of NPB (NAS Parallel Benchmarks), a well known benchmarks package for evaluation performance of HPC platforms. The results quantify the overheads of virtual execution compared to native execution, as well as compare the two most popular alternatives of virtual execution machines. Resumo. Este artigo avalia o desempenho de máquinas virtuais muito utilizadas no meio corporativo para aplicações típicas de computação numérica: OpenJVM, do padrão Java, e Mono, do padrão CLI (Common Language Infrastructure). A utilização eficiente de máquinas virtuais no contexto de aplicações de Computação de Alto Desempenho (CAD) é de suma importância, devido a heterogeneidade das tecnologias envolvidas. Para sua finalidade, o presente trabalho fez uso do NPB (NAS Parallel Benchmarks), um pacote de programas bastante difundido para avaliação de plataformas de computação voltadas para CAD. Os resultados obtidos permitem quantificar a sobrecarga de desempenho da execução virtual em relação a execução nativa, além de permitir comparação entre as alternativas de máquinas virtuais atualmente mais difundidas. 1. Introdução A Computação de Alto Desempenho (CAD) [Kevin Dowd, 1993] é um ramo da Computação dedicada a estudar algoritmos capazes de extrair o máximo de desempenho de arquiteturas de computadores, com especial interesse em plataformas de computação paralela. A CAD é usada em diversas aplicações em áreas de notório interesse acadêmico e industrial, tais como biologia computacional, descoberta de fármacos, previsão climática, simulação de escoamento de fluidos, previsão e simulação de catástrofes, modelagem de bacias de petróleo para otimização de sua extração, etc. Embora os pesquisadores na área de CAD estejam essencialmente interessados no processamento paralelo, de nada adianta termos um programa paralelo cuja execução

2 de suas partes sequenciais não seja ao máximo eficiente. Portanto, a primeira e fundamental preocupação de um desenvolvedor na área de CAD é descrever as computações sequenciais realizadas pelo programa paralelo de forma eficiente. A tecnologia de execução virtual tem se tornado tendência dominante no projeto de plataformas de execução sequencial e concorrente para linguagens de programação modernas, inicialmente com a linguagem Java, a qual introduziu a JVM (Java Virtual Machine). Máquinas virtuais tem interessantes propriedades para execução de programas, em especial a interoperabilidade, a qual permite que programas executem sob sistemas operacionais diferentes, e a segurança, pois escondem do programa os detalhes da máquina física sobre a qual encontra-se hospedada. Mecanismos avançados de gerenciamento de memória também são viabilizados, o que contribui para a segurança da execução de programas. Apesar de suas vantagens, máquinas virtuais não são consideradas adequadas dentro do contexto de CAD, por introduzirem uma sobrecarga de execução a programas computacionalmente intensivo, devido a execução interpretada de seu código virtual. Com o advento de novas tecnologias na implementação de máquinas virtuais, como compilação just-in-time (JIT), suporte a matrizes multidimensionais reais (C#), suporte a múltiplas linguagens e coexistência de código nativo com código gerenciado (C#), linguagens baseadas em máquinas virtuais, como Java e C#, tem sido empregadas em algumas aplicações com requisitos de CAD. A fim de avaliar o potencial de desempenho de máquinas virtuais modernas para aplicações de CAD, este trabalho apresenta uma comparação do desempenho das máquinas OpenJVM 1.7, a qual implementa o padrão JVM [Java Web Site], e Mono 2.10, a qual implementa o padrão CLI (Common Language Infrastructure) [Werner Vogels. 2003], através de programas de computação numérica típicos de aplicações de CAD, oriundas do pacote NPB (NAS Parallel Benchmarks)[Weeratung et al, 1991]. A escolha das máquinas a serem comparadas não é acidental. Tratam-se das duas máquinas de código fonte aberto dos dois principais padrões de máquinas virtuais (CLI e JVM), sobre as quais será possível, em trabalhos futuros, realizar intervenções de otimização e implementação que visem aprimorar o seu desempenho a partir de gargalos de execução identificados por consequência deste trabalho. O artigo está organizado da seguinte forma: na seção 2, será introduzido o conceito de máquina virtual e as tecnologias relacionadas; na seção 3, serão apresentados de forma resumida os algoritmos usados na avaliação de desempenho; na seção 4, é apresentada a metodologia dos experimentos; na seção 5, os resultados obtidos são discutidos, e na Seção 6, são apresentadas as conclusões deste trabalho, motivando alguns trabalhos futuros. 2. Máquinas Virtuais Quando um programa de computador é executado, é submetido ao controle do Sistema Operacional (SO). Do ponto de vista do usuário, o SO funciona como uma interface de alto nível para comunicação com o hardware. Ele também é responsável pelo

3 gerenciamento de memória. De modo geral, o sistema operacional é responsável em administrar os recursos de hardware da máquina. Uma máquina virtual é um programa de computador responsável em abstrair a forma como um programa escrito em uma linguagem, compilado para o código da máquina virtual, é executado pelo SO. O programa não interage diretamente com o SO a fim de usar os serviços da máquina hospedeira e sim com o máquina virtual, a qual executa as instruções sobre o SO, garantido um alto grau de portabilidade e flexibilidade [Smith e Nair 2005]. 2.2 Máquina Virtual Java A linguagem Java foi desenvolvida pela Sun MicroSystems e atualmente é de propriedade a Oracle. Trata-se de uma das linguagens mais usadas no meio comercial, sobretudo na programação de sistemas distribuídos. A máquina virtual Java (JVM) está disponível sobre diversas plataformas e um dos seus princípios básicos é a execução interpretada do bytecode, o conjunto de instruções da JVM. O bytecode é a linguagem intermediária resultante da compilação do código fonte Java e permite que um programa seja compilado uma única vez e execute sobre qualquer SO que possua a JVM instalada. Neste artigo, foi utilizada a máquina virtual OpenJVM 1.7 [OPENJDK]. A OpenJVM é uma versão de código fonte aberto (open source), mantido pela comunidade de software livre suportada pela Oracle. Essa máquina virtual esta disponível em diversas distribuições Linux. Nos testes apresentados neste artigo, foi usada a versão 1.7 para o Ubuntu Máquina Virtual CLI A CLI (Commom Language Infrastructure) é um padrão aberto desenvolvido pela Microsoft junto com alguns parceiros industriais. A partir de sua especificação, é possível que terceiros criem linguagens compatíveis, as quais, teoricamente, são capazes de serem executadas em diferentes plataformas computacionais. Um código escrito em um linguagem compatível com o CLI é compilado para a linguagem intermediária CIL (Common Intermediate Language), semelhante ao bytecode da JVM, porém introduzindo características adicionais que tem por objetivo o suporte a linguagens de programação de diferentes paradigmas e ao polimorfismo, ao suportar um sistema de tipos polimórficos chamado CTS (Common Type System). O código CIL é executado pela máquina virtual CLR (Common Language Runtime), disponível em diversos sistemas operacionais, inclusive o Linux. Sendo posterior ao padrão JVM, o padrão CLI foi responsável por várias inovações no projeto de máquinas virtuais, algumas delas visando aplicações de CAD, tais como matrizes multidimensionais reais, suporte a execução nativa, um eficiente compilador JIT, sistema de controle de versões de componentes, polimorfismo, etc. Neste artigo, foi utilizada a versão 2.10 do Mono [MONO Project]. O Mono é uma plataforma de software de código fonte aberto que permite a criação de código

4 baseado no padrão CLI, sendo assim uma solução não Microsoft da linguagem.net. O Mono foi escolhido por ser uma linguagem livre, compatível com o Linux, bem documentada e que implementa um robusto sistema de tipos. O seu uso se torna cada vez mais comum na comunidade como uma alternativa livre ao.net. 3. Algoritmos de Computação Numérica Intensiva Neste trabalho, foram utilizados programas de benchmarking bastante difundidos em CAD, oriundos do pacote NPB (NAS Parallel Benchmarks) [Frumkin, 2009] e de código aberto. O NPB foi desenvolvido durante a década de 1990 por pesquisadores da divisão NAS (NASA Advanced Supercomputing) da NASA, agência espacial dos EUA, com o objetivo de avaliar o desempenho de plataformas de computação paralela. Ao longo dos anos, foi também utilizado fora do âmbito do NAS para avaliação de linguagens de programação e bibliotecas de passagem de mensagens, tendo hoje versões oficiais em Fortran, C e Java. O programas benchmark contidos no NPB são kernels (EP, IS, FT, CG e MG) e 3 aplicações simuladas (SP, BT e LU), oriundos de aplicações numéricas de dinâmica dos fluidos. Dentre esses, foram utilizados os programas SP, BT, FT e LU, para os quais foram construídas versões C# a partir das versões Java do NPB 3.0. A seguir, são apresentados mais detalhes sobre os programas utilizados SP (Scalar Pentadiagonal Linear System Solver) Utiliza o método ADI (Alternating Direct Method) para resolver três conjuntos de sistemas de equações diferenciais parciais não-acopladas de Navier-Strokes, referentes ao espaço tridimensional, que permitem determinar os campos de velocidade e de pressão em um escoamento. O sistema resultante da discretização é escalar pentadiagonal, o que justifica sua denominação BT (Block Tridiagonal Linear System Solver) Resolve o mesmo problema do SP, porém o sistema resultante da discretização é tridiagonal em blocos com blocos 5x FT (Fast Fourier Transform) O Algoritmo resolve uma Equação Diferencial Parcial tridimensional usando a Transformada Rápida de Fourier (FFT) LU (Lower-Upper Symmetric Gauss-Seidel) Utiliza o método Successive Over-relaxation (SSOR) a fim de resolver as equações discretas de Navier-Strokes, dividindo as equações em blocos de sistemas triangulares Classes de Problemas O pacote NPB define um conjunto padrão de classes de problemas para os programas, que dizem respeito a carga de trabalho aplicada ao programa. As classes padrão são S, W, A, B, C e D, em ordem crescente de tamanho da carga de trabalho. As classes que

5 dizem respeito a problemas realísticos são aquelas a partir da classe A. S e W são cargas normalmente utilizadas para teste. Neste trabalho, foram utilizadas as classes S e W, pois são suficientes para o seu propósito de comparação das máquinas virtuais dos padrões JVM e CLI. 4. Metodologia Para executar o experimento, foi utilizado um computador dedicado com processador Intel(R) Core(TM) i5, clock 2.67GHz, 8Gb RAM, o qual dispõe quatro núcleos. Uma vez que apenas versões sequenciais do programa foram executadas, somente um dos núcleos de processamento foi utilizado para execução. Semelhante a versão Java do NPB 3.0, foram utilizado o recurso de simulação de índices a fim de mapear matrizes de várias dimensões em um matrizes de uma única dimensão, evitando a sobrecarga que teoricamente haveria devido ao uso de vetores de vetores (jagged arrays) para implementação dessas matrizes multidimensionais. Embora máquinas do padrão CLI suportem matrizes multidimensionais reais, seu uso foi evitado a fim de obter uma medida mais precisa sobre a diferença de tempo de execução entre as máquinas OpenJVM e Mono, usando o mesmo método de acesso às matrizes. Por exemplo, a matriz v, no código do programa FT, possui quatro dimensões. O código na Figura 1 ilustra como são acessados os seus elementos em um laço típico. O primeiro acesso a v refere-se ao elemento v[k, j, i, m], seguido de acessos aos elementos v[k-1, j, i, 0], v[k-1, j, i, 1], v[k-1, j, i, 2], v[k-1, j, i, 3] e v[k-1, j, i, 4], respectivamente. Os valores isize1, jsize1 e ksize1 referem-se aos tamanhos do vetor v nas dimensões x, y e z, respectivamente. O leitor deve observar que o laço percorre os elementos do vetor unidimensional v sequencialmente, de forma otimizar o uso das hierarquias de memória cache. Figura 1. Um loop for com arrays simulados Para cada experimento, referente aos programas SP, BT, LU e FT em suas versões Java e C#, aplicados às classes de problema S e W, foram realizadas 10 repetições do programa, tomando-se a média tempo de execução de cada repetição como medida de comparação. Para comparar a sobrecarga da execução virtual, foram realizados os mesmos experimentos com as versões nativas dos programas.

6 5. Resultados As médias dos tempos de execução, bem como o desvio padrão associado, das dez repetições de cada experimento encontram-se apresentados na Tabela 1. Programa Classe Mono 2.10 OpenJVM 1.7 Fortran BT S 0,50 1,57e-3 1,41 1,22e BT W 16,56 6,70e-3 40,68 3,66e-1 2,99 FT S 1,20 8,08e-3 0,32 9,31e FT W 2,53 2,50e-3 0,80 1,42e-3 0,27 SP S 0,34 3,37e-3 1,99 1,44e SP W 50,85 5,01e-3 277,01 2,21e+0 7,58 LU S 0,49 1,97e-3 2,94 3,49e LU W 81,53 2,93e-3 509,55 2,67e+0 8,00 Tabela 1. Comparação de tempos (em segundos) entre as máquinas virtuais (média desvio padrão) Observando-se os dados da Tabela 1, é possível concluir que a máquina Mono obteve melhor desempenho que a máquina JVM para os programas BT, SP e LU. A diferença mais significativa foi obtida para o LU, com 480% para a classe S e 443% para a classe W, enquanto a diferença menos significativa, embora ainda considerada alta, foi obtida para o BT, com 184% para a classe S e 146% para a classe W. A diferença observada para o SP foi próxima a observada para o LU, com valores de 480% para a classe S e 443% para a classe W. Somente para o programa FT, a máquina JVM obteve melhor desempenho que a máquina Mono, com diferença favorável de 272% para a classe S e 217% para a classe W. Portanto, também muito alta. Além disso, observa-se uma diferença ainda muito significativa entre os melhores tempos de execução obtidos sobre máquinas virtuais e os tempos de execução obtidos para as versões nativas, usando somente a a classe de problema W. A maior diferença foi observada para o LU, com 919%, enquanto a menor foi obtida para o BT, com 454%. Para FT, a diferença foi de 837%, enquanto verificou-se uma diferença de 571% para o SP. Os tempos de execução nativa para a classe de problema S não foram computadas, pois as mesmas foram propostas somente para testes, tendo portanto um tempo de execução nativo muito pequeno para ter relevância estatística. Alguém poderia argumentar que a perda de desempenho da execução virtual em relação a execução nativa deve-se em grande parte a verificação de limites de vetores, executada pelo código de máquinas virtuais a cada acesso aos vetores. Entretanto, ao desabilitar-se esse recurso na execução das versões Mono dos programas, foi obtido um ganho no tempo de execução que não ultrapassou o valor de 10% para todos os programas, ainda não suficiente para equiparação com o nível de desempenho alcançado pela versão nativa.

7 Foi investigada também a compilação prévia do código gerenciado, usando a versão Mono. Entretanto, não foi observado ganho de desempenho aparente. Boa parte disso deve-se a dois fatos. Em primeiro lugar, máquinas virtuais implementam algoritmos avançados de eliminação de verificação de limites de vetores, a fim de otimizar o código. Além disso, os compiladores JIT são bastante otimizados, de forma a compilar o código somente na primeira passagem na sua execução, não sendo necessário recompilá-lo nas passagens subsequentes. Uma vez que no código científico, o mesmo trecho de código é intensivamente executado por várias vezes, é esperado que a compilação prévia não cause diminuição perceptível no tempo de execução. Portanto, os resultados mostram que ainda há um grande caminho a percorrer para que o desempenho de máquinas de execução virtuais sejam alternativas viáveis para aplicações de computação científica na área de CAD, notadamente para aquelas que possuem aspectos características similares aos programas utilizados neste artigo, caracterizados por computação numérica intensiva sobre matrizes multidimensionais. Entretanto, tendo em vista as diferenças observadas entre o desempenho das máquinas virtuais dependendo do programa, deduz-se que muito ainda pode ser feito no sentido de otimizá-las para cargas computacionais específicas dessa classe de aplicações. É preciso então investigar os gargalos das máquinas virtuais e propôr otimizações de código que levem em consideração as peculiaridades de aplicações de computação científica. 6. Conclusões e Propostas de Trabalhos Futuros Este experimento é apenas uma pequena parte de um conjunto de experimentos que tem sido realizados pelo grupo de pesquisa ao qual pertence os autores deste trabalho, relativo a avaliação de desempenho de máquinas de execução virtual. Há um grande número de fatores e níveis que devem ser abordados em trabalhos futuros, a fim de avaliar o seu efeito sobre o desempenho dos programas SP, BT, LU e FT, tais como: introduzir outras máquina virtuais no experimento, como SunJVM, IKVM e.net; avaliar o desempenho dos programas quando são utilizadas matrizes multidimensionais reais ou implementadas com jagged arrays; observar o efeito da ordem de percorrimento das matrizes, por linha ou por coluna, no tempo de execução dos mesmos, introdução de outras classes no experimento, tais como A, B, C e D, a fim de avaliar a tendência da evolução das diferenças entre as máquinas com o aumento das estruturas de dados processadas; avaliar o impacto individual de cada otimização suportada pelo compilador e pela máquina virtual em si no desempenho. Com base nas análises resultantes de experimentos incluindo esses e outros fatores acredita-se que seria possível descobrir gargalos e propor mudanças na implementação das máquinas virtuais com o objetivo de torná-las viáveis para aplicações em CAD, especialmente aquelas de computação numérica ligadas a simulação de fenômenos físicos, cuja importância para as ciências e engenharias é marcante.

8 7. Referências Frumkin, M.; Schultz, M.; Jin, H.; Yan, J. (2009) "Implementation of the NAS Parallel Benchmarks in Java", NAS Technical Report, NASA Ames Research Center, Moffett Field, CA. JAVA. Disponível em <http://www.oracle.com/technetwork/java>. Acessado em Setembro de Kevin Dowd. (1993) High Performance Computing. O'Reilly & Associates, Inc., Sebastopol, CA, USA. MONO Project. Disponível em : <http://mono-project.com/main_page>. Acesso em: Setembro de OPENJDK. Disponível em: <http://openjdk.java.net/>. Acesso em: Setembro de Smith, J.E. e Nair, R. (2005), Virtual machines: versatile platforms for systems and processes in The Morgan Kaufmann Series in Computer Architecture and Design. Weeratung, D,; Barscz, E.; Barton, J.; Browning, D.; Carter, R.; Dagum, L.; Fatoohi, R.; Fineberg, S. Eta. (1991) The NAS Parallel Benchmarks, in International Journal of High Performance Computing Applications, NASA Ames Research Center, Moffet Field, CA. Werner Vogels. (2003) HPC.NET - are CLI-based Virtual Machines Suitable for High Performance Computing?, in Proceedings of the 2003 ACM/IEEE conference on Supercomputing (SC '03). ACM, New York, NY, USA.

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

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

Leia mais

Capítulo 8. Software de Sistema

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

Leia mais

Principais características

Principais características .Net Framework O que é.net? Proprietário da Microsoft Versão simplificada para Linux Versão compacta para dispositivos móveis Plataforma de desenvolvimento e execução Interface com usuário, conectividade

Leia mais

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

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

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C#

UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# Robson Bartelli¹, Wyllian Fressatti¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil robson_lpbartelli@yahoo.com.br,wyllian@unipar.br

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Introdução à Linguagem Java

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

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

4 Computação Paralela 4.1. Introdução

4 Computação Paralela 4.1. Introdução 4 Computação Paralela 4.1. Introdução Nos últimos anos observa-se uma tendência cada vez maior do aumento da demanda computacional na resolução de grandes problemas. Exemplos de aplicações que exigem alto

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

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

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

Leia mais

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

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

Leia mais

Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho

Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho Márcio Parise Boufleur Guilherme Piegas Koslovski Andrea Schwertner Charão LSC - Laboratório de Sistemas de Computação UFSM - Universidade

Leia mais

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 60 h 1º Evolução histórica dos computadores. Aspectos de hardware: conceitos básicos de CPU, memórias,

Leia mais

CASE STUDY FOR RUNNING HPC APPLICATIONS IN PUBLIC CLOUDS

CASE STUDY FOR RUNNING HPC APPLICATIONS IN PUBLIC CLOUDS Universidade da Beira Interior Mestrado em Engenharia Informática Sistemas de Informação Sistemas Distribuídos e Tolerância a Falhas Apresentação de Artigo CASE STUDY FOR RUNNING HPC APPLICATIONS IN PUBLIC

Leia mais

QUESTÕES PROVA 2 (28 a 44)

QUESTÕES PROVA 2 (28 a 44) QUESTÕES PROVA 2 (28 a 44) 28) A orientação a objetos é uma forma abstrata de pensar um problema utilizando-se conceitos do mundo real e não, apenas, conceitos computacionais. Nessa perspectiva, a adoção

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB PARA VISUALIZAÇÃO E DISTRIBUIÇÃO DOS DADOS CLIMATOLÓGICOS DO CPTEC/INPE

DESENVOLVIMENTO DE INTERFACE WEB PARA VISUALIZAÇÃO E DISTRIBUIÇÃO DOS DADOS CLIMATOLÓGICOS DO CPTEC/INPE DESENVOLVIMENTO DE INTERFACE WEB PARA VISUALIZAÇÃO E DISTRIBUIÇÃO DOS DADOS CLIMATOLÓGICOS DO CPTEC/INPE Luciana Maria de Castro Mira¹, Bianca Antunes de S. R. Alves 2, Ana Paula Tavares 3, Luíz Henrique

Leia mais

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens

Leia mais

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

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

Leia mais

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS João Antônio Bezerra Rodrigues¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavaí

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

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

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

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Fundament n os s da platafo f rm r a. NE N T André Menegassi Fundamentos da plataforma.net André Menegassi O que é o.net Framework?.NET é uma plataforma de software para desenvolvimento de aplicações que conecta informações, sistemas, pessoas e dispositivos através

Leia mais

Prof. José Maurício S. Pinheiro UniFOA 2009-2

Prof. José Maurício S. Pinheiro UniFOA 2009-2 Tecnologias WEB Virtualização de Sistemas Prof. José Maurício S. Pinheiro UniFOA 2009-2 Conceitos Virtualização pode ser definida como técnica que combina ou divide recursos computacionais para prover

Leia mais

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas ATIVIDADE 1 MÁQUINAS VIRTUAIS Existem hoje diversas tecnologias e produtos para virtualização de computadores e ambientes de execução, o que pode gerar uma certa confusão de conceitos. Apesar disso, cada

Leia mais

Sistemas Operacionais. Conceitos de um Sistema Operacional

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

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Programação Orientada a Objetos Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 Histórico das linguagens de programação ENIAC (1944) Programação

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

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

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Sistemas Operacionais 1/66

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

Leia mais

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

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

Leia mais

Agenda do Mini-Curso. Sérgio Yoshio Fujii. Ethan Boardman. sergio.fujii@areva-td.com. ethan.boardman@areva-td.com

Agenda do Mini-Curso. Sérgio Yoshio Fujii. Ethan Boardman. sergio.fujii@areva-td.com. ethan.boardman@areva-td.com Agenda do Mini-Curso Sérgio Yoshio Fujii sergio.fujii@areva-td.com Ethan Boardman ethan.boardman@areva-td.com Agenda do Mini-Curso Evolução de sistemas SCADA/EMS nos Centros de Controle: Sistemas operacionais

Leia mais

Ambiente de Programação Visual. Framework.NET. Prof. Mauro Lopes. Ambiente de Programação Visual Prof. Mauro Lopes

Ambiente de Programação Visual. Framework.NET. Prof. Mauro Lopes. Ambiente de Programação Visual Prof. Mauro Lopes Ambiente de Programação Visual Framework.NET Prof. Mauro Lopes 1-31 16 Objetivos Nesta aula iremos apresentar a tecnologia.net. Ao final desta aula, o aluno terá compreendido a Arquitetura de uma aplicação.net.

Leia mais

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

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

Leia mais

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas) ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947

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

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

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

Leia mais

Arquitetura e Sistema de Monitoramento para

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

Leia mais

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

Virtualização. O conceito de VIRTUALIZAÇÃO

Virtualização. O conceito de VIRTUALIZAÇÃO Virtualização A virtualização está presente tanto no desktop de um entusiasta pelo assunto quanto no ambiente de TI de uma infinidade de empresas das mais variadas áreas. Não se trata de "moda" ou mero

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

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

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

Leia mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

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

Leia mais

Desenvolvimento de um Cluster de Alto Desempenho com PVM

Desenvolvimento de um Cluster de Alto Desempenho com PVM Desenvolvimento de um Cluster de Alto Desempenho com PVM Daniel Cândido de Oliveira 1, Yzaac Gonçalves da Silva 1, Madianita Bogo 1 1 Centro Universitário Luterano de Palmas Universidade Luterana do Brasil

Leia mais

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede Prof. Samuel Souza } Monolíticas Aplicações em um computador centralizado } Em Rede Aplicações com comunicação em rede } Distribuídas Comunicação e cooperação em rede } Aplicações que são funcionalmente

Leia mais

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

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

Leia mais

Otimização de Desempenho e Escalabildade do Sistema Falibras-Web com o uso de Grid Computing

Otimização de Desempenho e Escalabildade do Sistema Falibras-Web com o uso de Grid Computing Otimização de Desempenho e Escalabildade do Sistema Falibras-Web com o uso de Grid Computing João Paulo Ferreira da Silva e Patrick Henrique da Silva Brito Laboratório de Pesquisa e Extensão em Computação

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Aula 01: Começando com Java Objetivos: Compreender o que é Java, OO e suas vantagens; Entender os procedimentos para criação

Leia mais

Projeto Pedagógico do Bacharelado em Ciência da Computação. Comissão de Curso e NDE do BCC

Projeto Pedagógico do Bacharelado em Ciência da Computação. Comissão de Curso e NDE do BCC Projeto Pedagógico do Bacharelado em Ciência da Computação Comissão de Curso e NDE do BCC Fevereiro de 2015 Situação Legal do Curso Criação: Resolução CONSU no. 43, de 04/07/2007. Autorização: Portaria

Leia mais

Paralelização do algoritmo SPRINT usando MyGrid

Paralelização do algoritmo SPRINT usando MyGrid Paralelização do algoritmo SPRINT usando MyGrid Juliana Carvalho, Ricardo Rebouças e Vasco Furtado Universidade de Fortaleza UNIFOR juliana@edu.unifor.br ricardo@sspds.ce.gov.br vasco@unifor.br 1. Introdução

Leia mais

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas

Tecnólogo em Análise e Desenvolvimento de Sistemas Tecnólogo em Análise e Desenvolvimento de Sistemas O conteúdo deste documento tem como objetivos geral introduzir conceitos mínimos sobre sistemas operacionais e máquinas virtuais para posteriormente utilizar

Leia mais

Sistemas Distribuídos

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

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS Cleverson Nascimento de Mello¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

Leia mais

Metodologia de Desenvolvimento de Sistemas

Metodologia de Desenvolvimento de Sistemas Metodologia de Desenvolvimento de Sistemas Aula 1 Ementa Fases do Ciclo de Vida do Desenvolvimento de Software, apresentando como os métodos, ferramentas e procedimentos da engenharia de software, podem

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

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

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

Leia mais

CURSO DE INFORMÁTICA LICENCIATURA 1 PERÍODO

CURSO DE INFORMÁTICA LICENCIATURA 1 PERÍODO CURSO DE INFORMÁTICA LICENCIATURA 1 PERÍODO DISCIPLINA: Metodologia Científica H111900 Finalidade da metodologia científica. Importância da metodologia no âmbito das ciências. Metodologia de estudos. O

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm.

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm. Autor José Jesse Gonçalves Graduado em Licenciatura em Matemática pela Universidade Estadual de São Paulo - UNESP, de Presidente Prudente (1995), com especialização em Análise de Sistemas (1999) e mestrado

Leia mais

LCAD. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES.

LCAD. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004 LCAD Laboratório de Computação de Alto Desempenho DI/UFES Tópico 20 janeiro 27 janeiro 3 fev 10 fev 17 fev 24 fev 3 março Paradigma de Paralelismo

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

O que é Grid Computing

O que é Grid Computing Grid Computing Agenda O que é Grid Computing Grid vs Cluster Benefícios Tipos de Grid Aplicações Ferramentas e padrões Exemplos no mundo Exemplos no Brasil Grid no mundo dos negócios Futuro O que é Grid

Leia mais

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva Introdução à Linguagem Java Departamento de Informática Prof. Anselmo C. de Paiva Breve Histórico Sun Microsystems, 90/91: projeto de uma linguagem de programação pequena que pudesse ser usada em dispositivos

Leia mais

Programação de Computadores II TCC-00.309 Turma A-1

Programação de Computadores II TCC-00.309 Turma A-1 Material elaborado pelo prof. Leandro A. F. Fernandes com contribuições dos profs. Anselmo A. Montenegro e Marcos Lage Programação de Computadores II TCC-00.309 Turma A-1 Conteúdo Introdução ao Ambiente

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Open Graphics Library OpenGL

Open Graphics Library OpenGL Open Graphics Library OpenGL Filipe Gonçalves Barreto de Oliveira Castilho Nuno Alexandre Simões Aires da Costa Departamento de Engenharia Informática Universidade de Coimbra 3030 Coimbra, Portugal http://student.dei.uc.pt/~fgonc/opengl/

Leia mais

NOVA PROPOSTA DE MATRIZ CURRICULAR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS - 2016

NOVA PROPOSTA DE MATRIZ CURRICULAR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS - 2016 NOVA PROPOSTA DE MATRIZ CURRICULAR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS - 2016 Diante da evolução de técnicas e ferramentas tecnológicas, aliado a novas necessidades curriculares,

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Programação Orientada a Objetos

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

Leia mais

11 Conclusão. 11.1 Descobertas

11 Conclusão. 11.1 Descobertas 97 11 Conclusão 11.1 Descobertas Nesse trabalho apresentamos o McCloud Service Framework, um arcabouço para implementação de serviços baseados na Simulação de Monte Carlo na nuvem, disponibilizamos duas

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

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

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

Leia mais

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA Andréa Willa Rodrigues Villarim (Voluntário) Marcelo Pereira Rufino (Bolsista) Larissa Aguiar (Bolsista) Nady Rocha

Leia mais

SO Sistemas Operacionais

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

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Turma de Redes AULA 06 www.eduardosilvestri.com.br silvestri@eduardosilvestri.com.br Estrutura do Sistema Operacional Introdução É bastante complexo a estrutura de um sistema operacional,

Leia mais

EUCALYPTUS: UMA PLATAFORMA CLOUD COMPUTING PARA

EUCALYPTUS: UMA PLATAFORMA CLOUD COMPUTING PARA EUCALYPTUS: UMA PLATAFORMA CLOUD COMPUTING PARA QUALQUER TIPO DE USUÁRIO Gustavo Henrique Rodrigues Pinto Tomas 317624 AGENDA Introdução: Cloud Computing Modelos de Implementação Modelos de Serviço Eucalyptus

Leia mais

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Aula 2 Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Sistema Operacional de Rede Definição: Conjunto de módulos que ampliam as tarefas dos sistemas operacionais locais, complementando-os

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF. ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I Máquina Virtual Instalação de S.O. em dual boot 1º Semestre 2010 PROF. AMARAL Na ciência da computação, máquina virtual é o nome dado a uma máquina,

Leia mais

Linguagem de Programação Introdução a Linguagem Java

Linguagem de Programação Introdução a Linguagem Java Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,

Leia mais

RMI: Uma Visão Conceitual

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

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

4 Avaliação do Código Gerado

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

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Marcelo Lobosco DCC/UFJF Avaliando e Compreendendo o Desempenho Aula 10 Agenda Análise de Desempenho (cont.) Avaliando o Desempenho Benchmark SPEC Falácias e Armadilhas Desempenho

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Sistemas Operacionais Introdução. Professora: Michelle Nery

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

Leia mais

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

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

Leia mais