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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

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

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

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

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

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

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

Expandindo uma Arquitetura para HPC em Nuvens Computacionais Utilizando Conceitos de Computação

Expandindo uma Arquitetura para HPC em Nuvens Computacionais Utilizando Conceitos de Computação Expandindo uma Arquitetura para HPC em Nuvens Computacionais Utilizando Conceitos de Computação Autonômica Emanuel F. Coutinho 1, Gabriel A. L. Paillard 1 Leonardo O. Moreira 1, Ernesto Trajano de Lima

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

} 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

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

Sistemas Operacionais

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

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

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

Leia mais

ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM

ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM Igor dos Passos Granado¹, Ricardo de Melo Germano¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavai PR Brasil

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

Arquitetura da Máquina Virtual.NET

Arquitetura da Máquina Virtual.NET Arquitetura da Máquina Virtual.NET Marcelo Coutinho Cordeiro RA002092 Instituto de Computação Unicamp ra002092@ic.unicamp.br RESUMO Esse texto apresenta uma visão geral da arquitetura da máquina virtual

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

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

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento

Leia mais

Hypervisor. Diego Souza Gomes 3 de maio de 2007

Hypervisor. Diego Souza Gomes 3 de maio de 2007 Hypervisor Diego Souza Gomes 3 de maio de 2007 Resumo As máquinas virtuais envolvem a criação de um sistema de computador totalmente em software. Usando-as, é possível hospedar vários computadores virtuais

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

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

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

1.1. Java como plataforma, além da linguagem

1.1. Java como plataforma, além da linguagem Capítulo 1 A plataforma Java Diversas plataformas de desenvolvimento possuem grande penetração no mercado. A plataforma Java atingiu a liderança devido a algumas características relacionadas ao seu processo

Leia mais

Estudo comparativo entre tecnologias Java: Applet e JWS.

Estudo comparativo entre tecnologias Java: Applet e JWS. Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)

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

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

Avaliação de Desempenho de Sistemas Computacionais

Avaliação de Desempenho de Sistemas Computacionais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Avaliação de Desempenho de Sistemas Computacionais Aula 3 Marcos José Santana Regina Helena

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

Avaliação de Desempenho da Execução de Programas C# em Ambientes.NET - SSCLI 2.0,.NET 2.0 e.net 3.0

Avaliação de Desempenho da Execução de Programas C# em Ambientes.NET - SSCLI 2.0,.NET 2.0 e.net 3.0 Avaliação de Desempenho da Execução de Programas C# em Ambientes.NET - SSCLI 2.0,.NET 2.0 e.net 3.0 Guilherme Amaral Avelino Universidade Federal de Pernambuco(UFPE) E-mail: gaa@cin.ufpe.br Resumo A Microsoft,

Leia mais

Java Linguagem de programação

Java Linguagem de programação 1 Linguagem Java O que é o Java? Java é uma linguagem de programação, apresentada ao mercado em 1995, pela Sun Microsystems, que provocou e ainda provoca excitação e entusiasmo em programadores, analistas

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

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

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

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

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

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

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

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

DESENVOLVIMENTO DE SOFTWARE AULA 1

DESENVOLVIMENTO DE SOFTWARE AULA 1 DESENVOLVIMENTO DE SOFTWARE AULA 1 CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014 1 Características da Plataforma.NET A plataforma.net Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece

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

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

Virtualização de Software

Virtualização de Software UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE BACHARELADO DE SISTEMAS DE INFORMAÇÃO Virtualização de Software Luana Sandrini Saft Trabalho de conclusão de curso

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

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

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

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE Nelson Ribeiro de Carvalho Júnior 1 RESUMO Atualmente o cenário mundial cuja dependência do software está cada vez mais evidente requer que

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

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

Linguagem de Programação JAVA

Linguagem de Programação JAVA Linguagem de Programação JAVA Curso Técnico em Informática Modalida Integrado Instituto Federal do Sul de Minas, Câmpus Pouso Alegre Professora: Michelle Nery Agenda JAVA Histórico Aplicações Pós e Contras

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

USO DO SOFTWARE LIVRE APLICADO À ENGENHARIA QUÍMICA

USO DO SOFTWARE LIVRE APLICADO À ENGENHARIA QUÍMICA USO DO SOFTWARE LIVRE APLICADO À ENGENHARIA QUÍMICA Ana Paula Salum Duarte, Manolo Horta Barbosa Orellana, Renato Prates de Oliveira Campos Departamento de Engenharia Química, Universidade Federal de Minas

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Operating System Concepts, Abraham Silberschatz, Peter Baer Galvin, 6ª Ed., Addison-Wesley, 2002 [cap.1, 2 e 3] Operating Systems, Third Edition Harvey M. Deitel, Prentice

Leia mais

6 Construção de Cenários

6 Construção de Cenários 6 Construção de Cenários Neste capítulo será mostrada a metodologia utilizada para mensuração dos parâmetros estocásticos (ou incertos) e construção dos cenários com respectivas probabilidades de ocorrência.

Leia mais

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

Leia mais

Java Básico. Aula 1 por Thalles Cezar

Java Básico. Aula 1 por Thalles Cezar + Java Básico Aula 1 por Thalles Cezar + Histórico Green Project (1991) Desenvolver plataforma para eletrodomésticos inteligentes Tentaram usar C++ Mas resolveram desenvolver uma linguagem própria Oak

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

Virtualização de Máquinas Uma experiência baseada em ferramentas livres

Virtualização de Máquinas Uma experiência baseada em ferramentas livres Virtualização de Máquinas Uma experiência baseada em ferramentas livres Carlos A. M. dos Santos echo unixmania at gmail dot com sed 's/ at /@/;s/ dot /./g' 1º Seminário de Software Livre Tchelinux Porto

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

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

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

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

Cluster HPC High Performance Computing.

Cluster HPC High Performance Computing. Faculdade de Tecnologia de Guaratinguetá. doze, março de 2009. Cluster HPC High Performance Computing. Diogo Salles, Thiago Pirro, Camilo Bernardes, Paulo Roberto, Ricardo Godoi, Douglas, Fauzer. Sistemas

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

Paralelização de Simuladores de Hardware Descritos em SystemC

Paralelização de Simuladores de Hardware Descritos em SystemC Paralelização de Simuladores de Hardware Descritos em SystemC 18 de maio de 2011 Roteiro Motivação Introdução à SLDL SystemC O Escalonador SystemC Simulação Paralela baseada em Eventos Discretos Suporte

Leia mais

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

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

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

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

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

Desenvolvimento de um Framework de Jogos 3D para Celulares

Desenvolvimento de um Framework de Jogos 3D para Celulares Desenvolvimento de um Framework de Jogos 3D para Celulares Fabrício Brasiliense Departamento de Informática e Estatística(INE) Universidade Federal de Santa Catarina (UFSC) Campus Universitário Trindade-

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

Programação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho

Programação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho 124 - Encontro Anual de Tecnologia da Informação Programação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho André Luís Stefanello¹, Crístian Cleder Machado1, Dioni da Rosa¹, Maurício

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

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

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

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com Cloud Computing Andrêza Leite andreza.lba@gmail.com Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing O

Leia mais

Informática para Gestão de Negócios Linguagem de Programação III. Prof. Me. Henrique Dezani dezani@fatecriopreto.edu.br. Agenda

Informática para Gestão de Negócios Linguagem de Programação III. Prof. Me. Henrique Dezani dezani@fatecriopreto.edu.br. Agenda Informática para Gestão de Negócios Linguagem de Programação III Prof. Me. Henrique Dezani dezani@fatecriopreto.edu.br Professor Apresentação Agenda Ementa, Objetivo, Conteúdo Programático, Bibliografia,

Leia mais

Implementação de Clusters Virtuais em Hosts Windows

Implementação de Clusters Virtuais em Hosts Windows Implementação de Clusters Virtuais em Hosts Windows David Beserra 1, Alexandre Borba 1, Samuel Souto 1, Mariel Andrade 1, Alberto Araújo 1 1 Unidade Acadêmica de Garanhuns Universidade Federal Rural de

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

Processamento Paralelo Aplicado à Análise de Contingências de Sistemas Elétricos de Potência

Processamento Paralelo Aplicado à Análise de Contingências de Sistemas Elétricos de Potência Processamento Paralelo Aplicado à Análise de Contingências de Sistemas Elétricos de Potência Marco Aurélio de Souza Birchal + Luciano de Errico* Maria Helena Murta Vale * + DCC- Departamento de Ciência

Leia mais

Definições. Parte 02. Java Conceitos e. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

Definições. Parte 02. Java Conceitos e. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto Java Conceitos e Definições Parte 02 Prof. Pedro Neto Aracaju Sergipe - 2011 Conteúdo 2 O que é Java i. Java ii. Máquina Virtual iii. Java lento? Hotspot e JIT iv. Versões do Java e a confusão do Java2

Leia mais

1ª QUESTÃO Linguagem C Vantagens: Desvantagens: Linguagem C++ Vantagens: Desvantagens:

1ª QUESTÃO Linguagem C Vantagens: Desvantagens: Linguagem C++ Vantagens: Desvantagens: 1ª QUESTÃO Linguagem C Vantagens: É uma linguagem simples que nos permite trabalhar com funções matemáticas, ficheiros, entre outras sendo necessário para tal a inclusão de bibliotecas padrão as quais

Leia mais