Java não é mais tão lento

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

Download "Java não é mais tão lento"

Transcrição

1 Java não é mais tão lento Hugo Braga Martins 1, Fabiano C. Botelho 2,3 (Orientador) 1 Departamentode Informática Faculdade Cotemig Belo Horizonte Brasil 2 Departamento de Ciência da Computação Universidade Federal de Minas Gerais Belo Horizonte Brasil 3 Departamento de Engenharia da Computação Centro Federal de Educação Tecnológica de Minas Gerais Belo Horizonte Brasil hbmnet@hotmail.com e fbotelho@dcc.ufmg.br Abstract. We have two goals in this article. First, we study how the performance of the different versions of the Java Virtual Machine has evolved. Second, we compare the performance of programs written in Java and C++ to have an upper bound for the maximum performance that can be obtained, since it is well known that the compilers for the C++ language generate more efficient codes. For this we have used exact string matching algorithms written in Java and in C++. We used two metrics: (i) processing time and (ii) time to sequentially read data from disk. We note that the Java virtual machines have evolved considerably and the processing time of programs written in Java is very close to that obtained with programs written in C++. However, with regard to the time of the sequential disk access, we see that the performance of programs written in C++ is much better than that of programs written in Java, even in version 6 of the Java language. Programs written in Java in version 6 are on average 444% slower than those written in C++, showing that Java still has much to evolve in terms of sequential access to disk. Resumo. Este artigo tem dois objetivos. Primeiro, estudar a evolução do desempenho das máquinas virtuais Java nas suas diferentes versões. Segundo, comparar o desempenho de programas escritos em Java e em C++ para se ter um limite superior para o desempenho máximo que pode ser obtido, uma vez que compiladores para a linguagem C++ reconhecidamente geram códigos mais eficientes. Para isso utilizamos algoritmos de busca em texto escritos em Java e em C++. Foram utilizadas duas métricas: (i) tempo de processamento e (ii) tempo de leitura seqüencial em disco. Verificamos que as máquinas virtuais Java têm evoluído bastante e o tempo de processamento de programas escritos em Java está muito próximo daquele obtido com programas escritos em C++. No entanto, no que diz respeito ao tempo de acesso seqüencial a disco, verificamos que o desempenho dos programas escritos em C++ é bem superior ao dos programas escritos em Java, mesmo na versão 6 da linguagem Java. Programas escritos em Java na versão 6 são em média 444% mais lentos do que os escritos em C++, mostrando que Java ainda tem muito que evoluir em termos de acesso seqüencial a disco.

2 1. Introdução A Web, principal catalisador da revolução da informação que vivemos hoje, provocou uma mudança significativa na forma de se desenvolver softwares. Isso se deve à facilidade e ao baixo custo de publicação de informações na rede, o que foi intensificado ainda mais com o surgimento das aplicações da Web 2.0, tais como Flickr 1, YouTube 2, entre outras. Por conseqüência, o desenvolvimento de softwares para desktops e supercomputadores tende a desaparecer, uma vez que os usuários desejam ter acesso à informação em qualquer instante e de qualquer lugar. Em contrapartida, o desenvolvimento de softwares distribuídos e para dispositivos móveis tem se tornado cada vez mais presente atualmente [Balbino 2006, Eis 2006, Negroponte 2007]. O fenômeno de democratização de uma mídia de alcance mundial tem tornado o uso da linguagem Java cada vez mais popular para produção de softwares para Web. É importante salientar que a linguagem Java possui uma série de facilidades que aceleram o desenvolvimento, além de possuir muitos códigos publicados, e conseqüentemente diversos fóruns de discussão que auxiliam os usuários na busca de soluções. Em contrapartida, tal linguagem não é considerada apropriada para desenvolvimento de aplicações com altos requisitos de desempenho. A principal razão é que durante a execução de um programa existem recursos que o programador não consegue controlar durante a escrita do código, e que podem provocar altas variações no tempo de execução. Por exemplo, o processo de Garbage Collection [Zorn 1993]. Neste trabalho temos dois objetivos. Primeiro, estudar a evolução do desempenho das máquinas virtuais Java nas suas diferentes versões. Segundo, comparar o desempenho de programas escritos em Java e em C++. A linguagem C++ foi escolhida para se ter um limite superior para o desempenho máximo que pode ser obtido, uma vez que compiladores para a linguagem C++ reconhecidamente geram códigos mais eficientes. Além disso, C++ é a principal linguagem utilizada para o desenvolvimento de aplicações com altos requisitos de desempenho. Portanto, estudamos duas perguntas neste artigo. Qual a diferença de desempenho entre programas escritos em Java em relação aos respectivos programas escritos em C++? Como esta diferença de desempenho vem evoluindo nas diferentes versões das máquinas virtuais Java? A principal contribuição deste artigo é uma comparação evolutiva do desempenho das máquinas virtuais Java em relação ao desempenho de programas escritos em C++. Na seção 2 descrevemos as métricas e a metodologia utilizadas neste estudo. Na seção 3 apresentamos os resultados obtidos. Na seção 4 apresentamos alguns trabalhos relacionados a este estudo. Na seção 5 discutimos alguns pontos que devem ser considerados antes de escolher dentre Java e C++ para desenvolver um projeto. Na seção 6 apresentamos as conclusões deste trabalho. 2. Metodologia Neste trabalho utilizamos duas aplicações para estudar a evolução das máquinas virtuais Java e comparar tal evolução com o desempenho das mesmas aplicações implementadas em C++. Foram escolhidas as máquinas virtuais a partir da versão 3 até a versão 6 que é a mais recente. Não foi possível avaliar as versões 1 e 2 porque a execução dos 1 Flickr. Site para compartilhamento de fotos, disponível em: 2 Youtube. Site para compartilhamento de vídeos, disponível em:

3 algoritmos provocou a ocorrência da exceção OutOfMemoryError na classe ByteArrayOutputStream, que é utilizada para armazenar os dados em memória. As aplicações implementadas são utilizadas para resolver o problema de casamento exato de padrão em um texto, o qual é formalizado da seguinte forma. O texto é um arranjo T[0..n-1] de tamanho n, o padrão é um arranjo P[0..m-1] de tamanho m n. Os elementos de P e T são escolhidos de um alfabeto finito Σ de tamanho c. Por exemplo, podemos ter Σ = {0,1} ou Σ = {a,b,...,z}. Dadas duas cadeias P (padrão) de comprimento P = m e T (texto) de comprimento T = n, em que n» m, deseja-se saber todas as ocorrências de P em T. As aplicações são: (i) Boyer, Moore, Horspool e Sunday (BMHS) [Ziviani 2006] e (ii) Shift-And Exato (SAE) [Ziviani 2006]. Em 1977, Boyer e Moore publicaram o primeiro algoritmo com complexidade de caso médio O(n/m) para resolver o problema de casamento exato de padrão em texto, o qual ficou conhecido com BM. Em 1980, Horspool apresentou uma simplificação importante no algoritmo original, mantendo a complexidade de caso médio, mas tornando o algoritmo ainda mais eficiente na prática. Este algoritmo ficou conhecido como BMH. Em 1990, Sunday apresentou outra simplificação importante sobre o BMH, a qual ficou conhecida como BMHS. O enfoque dos algoritmos BM, BMH e BMHS é procurar o padrão P da direita para esquerda em uma janela que desliza sobre o texto T. Em [Ziviani 2006] é apresentado uma descrição detalhada desses algoritmos. Em 1989, Baeza-Yates e Gonnet propuseram um algoritmo que tira proveito do paralelismo intrínseco existente nas operações sobre bits dentro de uma palavra de computador. O algoritmo ficou conhecido como Shift-And Exato (SAE). O algoritmo possui uma complexidade de caso médio O(n), que é pior do que a complexidade de caso médio O(n/m) do BMHS. Para detalhes sobre o SAE consulte [Ziviani 2006]. Foram utilizadas duas métricas nos experimentos: (i) tempo de acesso seqüencial a disco (E/S) e (ii) tempo de processamento ou de UCP (Unidade Central de Processamento). O tempo de E/S corresponde ao tempo necessário para se ler seqüencialmente um arquivo texto de 100 MB e o tempo de processamento corresponde ao tempo para pesquisar o padrão new york no texto lido. As duas aplicações foram implementadas para terem o mesmo padrão de acesso a disco. Ou seja, primeiro todo o texto é lido seqüencialmente para memória, tomando o cuidado de limpar o buffer de E/S antes de cada execução. Além disso, as duas aplicações escolhidas implementam algoritmos com complexidades e operacionalização totalmente diferentes. Por conseqüência, utilizam a UCP de forma diferenciada, permitindo medir a evolução do tempo de processamento sobre diferentes cargas. É importante ressaltar que o tempo de operações de E/S em Java é muito sensível a API (Application Programming Interface) de E/S utilizada. Assim, para obter o melhor desempenho em todas as versões da máquina virtual estudadas, foram utilizadas as classes FileInputStream para ler o arquivo em blocos de 4KB e a classe ByteArrayOutputStream para armazenar os blocos lidos em memória principal. A escolha do tamanho do bloco de leitura é uma decisão importante para o desempenho das operações de E/S. O valor de 4 KB foi determinado a partir do tamanho do bloco de leitura padrão do sistema operacional instalado: Linux versão 2.6. Para as

4 implementações em C++, o mesmo tamanho de bloco de leitura foi utilizado e a função fread foi a utilizada para realizar a leitura seqüencial dos dados do disco. 3. Resultados Nesta seção apresentamos os resultados experimentais para comparar as versões da máquina virtual, tendo as implementações em C++ como limite superior de desempenho. Como sugerido em [George et al. 2007], todos os valores apresentados são médias sobre 100 medições de forma a garantir um nível de confiança de 95 % nos resultados apresentados para a linguagem Java nas versões 3, 4, 5 e 6, e para a linguagem C++. Todos os experimentos foram realizados em uma máquina com processador Intel P4 2.8 GHz, com 1 GB de memória principal e com o sistema operacional Linux versão 2.6. É importante observar que nossos experimentos foram feitos utilizando os mesmos algoritmos e as mesmas estruturas de dados, tanto na linguagem Java, quanto na linguagem C++. Outra questão a salientar é que a máquina estava dedicada exclusivamente para a realização dos experimentos, ou seja, desligada da internet e sem nenhum outro aplicativo em execução. Evitando, assim, problemas de distorções de desempenho [Gu 2006]. O primeiro experimento compara as diferentes versões consideradas para a linguagem Java com a linguagem C++, com relação ao tempo de processamento. Os tempos são medidos em segundos. A Tabela 1 e a Figura 1 apresentam as médias e os desvios padrões do tempo para se pesquisar o padrão new york em um texto de 100 MB variando os algoritmos de busca considerados. Como esperado, a máquina virtual 3 é a de pior desempenho. A máquina virtual 4 é 29% mais lenta do que a 5 para o BMHS e 1% mais lenta para o SAE. Já a máquina virtual 5 é aproximadamente 24% mais lenta do que a 6 para o BMHS e 13 % mais lenta para o SAE. Isto demonstra que o desempenho da máquina virtual 6 evoluiu consideravelmente em relação as outras. Notamos ainda que quase não existe diferença de desempenho para o BMHS escrito em Java e em C++. Já para o SAE, a máquina virtual Java 6 é 57% mais lenta em relação ao mesmo programa escrito em C++. UCP Linux BMHS SAE Média Desvio Média Desvio Java 3 0,8674 0,0270 1,6348 0,0740 Java 4 0,6939 0,4479 1,3079 0,3180 Java 5 0,5355 0,0090 1,2938 0,1001 Java 6 0,4307 0,0488 1,1469 0,0092 C++ 0,4350 0,0150 0,7295 0,0170 Tabela 1: Tempos de execução em segundos para se pesquisar o padrão new york em um texto de 100 MB.

5 Aplicações vs. Tempo de Processamento 1,800 1,600 1,400 TEMPO DE BUSCA (s) 1,200 1,000 0,800 0,600 0,400 0,200 0,000 BMHS Aplicações SAE JAVA 3 JAVA 4 JAVA 5 JAVA 6 C++ Figura 1: Tempos de execução em segundos para se pesquisar o padrão new york em um texto de 100 MB. O segundo experimento foi para analisar o tempo de leitura seqüencial em disco para as aplicações escritas em Java e em C++. Novamente os tempos são apresentados em segundos. A Tabela 2 apresenta as médias e os desvios padrões para se ler seqüencialmente o arquivo de 100 MB do disco. Ao testar os algoritmos nas diferentes máquinas descobrimos diferenças de desempenho, e a maior surpresa é que a máquina Java 5 é estatisticamente equivalente à máquina Java 4 no que diz respeito ao tempo para ler seqüencialmente um arquivo para memória. Já a máquina Java 5 é em média 140% mais lenta do que a Java 6 para ler o mesmo arquivo. Observamos também que a aplicação escrita em C++ é muito superior no que diz respeito à leitura seqüencial do arquivo, uma vez que o programa em Java executado na máquina virtual 6 é 444% mais lento. É importante ressaltar que tanto o BMHS quanto o SAE realizam a leitura do arquivo da mesma forma. Portanto, os tempos e desvios apresentados englobam as 200 execuções das duas aplicações. Leitura Linux Média Desvio Java 3 6,658 0,051 Java 4 5,083 0,306 Java 5 5, Java 6 2,135 0,169 C++ 0,380 0,010 Tabela 2: Tempo em segundos para se ler seqüencialmente um arquivo texto de 100 MBs. A Figura 2 nos ajuda a visualizar melhor os resultados e perceber a grande diferença que ainda existe entre as aplicações escritas em Java e em C++, no que diz respeito a operações de E/S. Também é possível observar a ligeira diferença entre as

6 máquinas virtuais 4 e 5, e a grande evolução da máquina virtual 6, onde o desempenho é bem superior do que nas máquinas 4 e 5. Aplicações vs. Tempo de Leitura 6 5 TEMPO DE LEITURA (s) Aplicações JAVA 3 JAVA 4 JAVA 5 JAVA 6 C++ Figura 2: Tempo em segundos para se ler seqüencialmente um arquivo texto de 100 MBs. As questões que surgem são: (i) por que a diferença dos tempos de processamento não é tão grande, sabendo que os bytecodes Java são interpretados pela máquina virtual enquanto que os programas C++ são diretamente compilados para a arquitetura onde serão executados? (ii) Por que a diferença de desempenho considerando o tempo de (E/S) ainda é tão expressiva? Como discutido em [Wikipedia 2008], as principais evoluções da máquina virtual 6 que afetam diretamente o tempo de processamento são: 1. Realização da verificação dos bytecodes tanto na compilação quanto na execução. Na prática esta técnica funciona porque captura os conhecimentos que o compilador tem da ordem de processamento das classes e registram uma sinopse desta ordem nos bytecodes. Isto não garante que a verificação durante a execução será menos complexa, mas permite realizar alguns atalhos. 2. Melhora no processo de alocação dos registradores. Esta técnica utiliza algoritmos de coloração de grafos para permitir a reutilização de registradores através de blocos de código. Isto reduz consideravelmente o fluxo de dados entre a memória e os registradores, aumentando em até 60% o desempenho. Já no que diz respeito ao tempo de E/S, o principal fator que afeta o desempenho são as chamadas de sistema. Quando os dados referentes a uma operação de leitura não são encontrados no buffer de E/S, o programa Java realiza uma chamada de sistema à máquina virtual, a qual deve ser redirecionado para o sistema operacional. Ou seja, o fato dos programas escritos em C++ serem compilados diretamente para a arquitetura remove um nível de indireção no processamento de operações de E/S, aumentando assim o desempenho. Já no Java essa atividade é mais lenta porque existe uma máquina

7 virtual entre o software e o sistema operacional, forçando a execução de um número maior de chamadas de sistema. 4. Trabalhos Relacionados Nesta seção apresentamos os principais trabalhos relacionados a este estudo. O objetivo é delimitar o contexto no qual este trabalho está inserido e realçar as nossas contribuições. O trabalho de Santos, apresentado em [Santos 2007], descreve uma série de técnicas para melhorar o desempenho de E/S do Java. As técnicas utilizadas para acelerar a leitura de arquivos em disco são divididas em: Técnicas de baixo nível: i) regras básicas para acelerar E/S; ii) custos de formatação; iii) acesso randômico. Técnicas de alto-nível: i) compressão; ii) caching; iii) tokenization; iv) serialização; v) obtenção de informações sobre os arquivos; vi) informações adicionais. Em [Lewis et al. 2004], é comparado o desempenho de aplicações escritas em C++ e em Java. O estudo foi realizado considerando a máquina virtual 3. Vários benchmarks foram considerados e a conclusão foi que as aplicações escritas em Java eram significativamente mais lentas do que as mesmas aplicações escritas em C++. Diferentemente do trabalho de Lewis et al., [Chandra et al. 2005] comparam a sintaxe da linguagem Java com a linguagem C#. Em [Libman et al. 2005], os autores comparam o desempenho de E/S de dois padrões de projeto de E/S de alto desempenho implementados em Java e em C++. Os autores concluíram no estudo que a implementação em C++ era mais eficiente do que a implementação em Java executada na máquina virtual 4. Além disso, eles também mostraram que a implementação em Java é mais eficiente na máquina virtual para Linux do que na máquina virtual para Windows. Em [Ulrich 2001] foram testados diferentes versões do algoritmo de ordenação pelo método da bolha genérico (generic bubble sort), com o objetivo de verifcar as variações de desempenho de implementações em Java e em C++ rodando em diferentes ambientes: Windows e Linux. Para testar o generic bubble sort foram construídas 4 implementações em C++ e 3 implementações em Java utilizando diferentes estruturas de dados. Em C++, como já era esperando, obteve-se um resultado melhor do que em Java. A implementação C + + STL, onde STL significa Standard Template Library, que utiliza iterators e a função swap da biblioteca STL teve um desempenho melhor do que as demais implementações, que são: (i) C++ pointer, que utiliza um arranjo de ponteiros para objetos alocados dinamicamente, (ii) C++ object, que utiliza um arranjo de objetos e (iii) C++ vector que utiliza a classe vector da STL para formar um arranjo de objetos. Já no Java, a implementação utilizando arranjo (Java Array) foi mais eficiente do que a que utiliza a classe ArrayList (Java Array List), que armazena uma lista de objetos de referências e provê acesso como em um arranjo. Vale ressaltar que a implementação que utiliza a classe Vector (Java Vector) apresentou o pior desempenho, pois antes da ordenação é realizada uma cópia dos objetos de referências armazenados no vetor. As implementações em Java foram avaliadas nas máquinas virtuais 1.1 e 1.2.

8 Em [Reinholtz 2000] foi mostrado, em um contexto bem específico, que o desempenho de programas escritos em Java pode ser melhor do que em C++, porque a compilação dinâmica da acesso ao compilador Java à informações de tempo de execução que não estão disponíveis para o compilador C++. Isto é importante para direcionar o desenvolvimento de técnicas que podem estender a vida útil de uma bateria em um sistema embutido. Em [Wikipedia 2008] é apresentado um trabalho destinado a identificar as evoluções de cada máquina virtual desde 1 a 6. Importante salientar que aquele trabalho não é destinando a comparar o desempenho de cada máquina virtual, como fazemos neste estudo, e sim, apresentar a evolução tecnológica de cada maquina virtual. Ou seja, são apresentadas as técnicas de otimização acrescida em cada máquina virtual e suas melhorias. Como exemplo, compilação Just-In-Time por HotSpot no Java 1.3, dentre outras. Os trabalhos relacionados abordam assuntos como otimização de E/S no Java [Santos 2007], diferença de desempenho do C++ e do Java para uma máquina virtual específica [Lewis et al. 2004], diferença de desempenho do Java no Linux e no Windows [Libman et al. 2005], impacto das diferentes estruturas de dados com funcionalidades semelhantes no tempo de execução de programas que as utilizam[ulrich 2001], tanto em Java quanto em C++, e evolução dos recursos incorporados à maquina virtual, sem mensurar o impacto das melhorias no tempo de aplicações reais[wikipedia 2008]. A principal contribuição deste estudo é uma comparação evolutiva, em termos de desempenho de E/S e processamento, nas máquinas virtuais 3, 4, 5 e 6. Além disso, também é mostrado uma comparação com a linguagem C++, a qual mostra que a maquina virtual Java ainda tem muito a evoluir para que os programas escritos em Java tenham o mesmo desempenho dos mesmos programas escritos em C++ (vide Seção 3). 5. Desenvolver em C++ ou em Java? Uma decisão importante durante o desenvolvimento de um projeto é a linguagem a ser adotada. Este é um trabalho bastante complexo e, portanto, exige muita experiência. Nesta seção discutimos as métricas que julgamos importantes para se escolher dentre Java e C++, as quais são: Produtividade, Desempenho e Custo. Produtividade: a linguagem Java tem se tornado cada vez mais popular, pois aumenta a produtividade dos programadores. A principal razão para isto é o fato da linguagem retirar a responsabilidade de gerência de memória do programador e, transferi-la para a máquina virtual, através do processo de Garbage Collection. Já em C++, o programador é o responsável por gerenciar a memória alocada e, em muitas situações, são gerados erros de difícil detecção, consumindo um tempo considerável para se depurar os programas. [Kaplan 2001] discute as vantagens do processo de Garbage Collection que determinam o aumento da produtividade dos programadores. Desempenho: diante do que foi apresentado na Seção 3, aplicações com requisitos extremos de desempenho, como aplicações de tempo real, máquinas de busca e outras, devem ser desenvolvidas em C ou C++. Além disso, existem algumas facilidades em Java, como o processo de Garbage Collection, que foge do controle

9 do programador e que pode provocar altas variações nos tempos de execução dos programas. Em contrapartida, a linguagem Java tem evoluído bastante a cada versão e esta diferença tem diminuído significativamente. Custo: o custo é um fator muito importante para o sucesso de qualquer projeto. Assim, como saber qual a linguagem terá um menor custo para desenvolver um projeto? Após algumas pesquisas nas principais máquinas de busca verticais de jobs 3, descobrimos que os salários de profissionais em C++ e Java varia muito, sendo influenciado por vários fatores como a natureza do projeto, empresa, currículos, etc. Mas, em geral, observamos que profissionais bons de C++ estão escassos no mercado de trabalho e seus salários são mais altos do que os de Java. Isto não quer dizer que desenvolver um projeto em Java fique mais barato do que desenvolver em C++, devido a um detalhe muito importante: o objetivo do projeto. Com base no objetivo do projeto é possível medir qual a melhor linguagem para desenvolvê-lo, visando um custo mais baixo. Por exemplo, se o projeto for desenvolver uma máquina de busca, onde o desempenho é crucial para satisfação dos usuários, é melhor investir mais em uma equipe C++ para desenvolver programas mais eficientes e economizar na infra-estrutura necessária para atender a demanda por processamento de consultas. Já em situações de pequenos projetos, onde a premissa de desempenho não é tão significativa, tornase mais econômico desenvolver o projeto em Java, pois a mão-de-obra é mais barata uma vez que a produtividade é maior. Assim, na escolha da linguagem, deve-se analisar os compromissos existentes nos objetivos de cada projeto. 6. Conclusões Neste artigo apresentamos a evolução de desempenho das máquinas virtuais Java e comparamos a diferença de desempenho que existe para aplicações escritas em Java e em C++. Verificamos que, no que diz respeito ao tempo de processamento, a diferença entre C++ e Java não é mais tão significativa e vem diminuído a cada versão da máquina virtual (veja, por exemplo, Figura 1). Já em relação ao tempo para se ler um arquivo seqüencialmente do disco, verificamos que a máquina virtual ainda precisa evoluir muito, pois a diferença de desempenho é ainda considerável (veja, por exemplo, Figura 2). Este trabalho vem então contribuir para o entendimento da evolução das máquinas virtuais Java com relação ao C++ tanto em termos de tempo de processamento, quanto em tempo de leitura seqüencial em disco. Como trabalho futuro, pretendemos estudar também a influência de acesso randômico a disco para aplicações escritas em C++ e em Java nas diferentes versões da máquina virtual. 3 Vagas. Site de recrutamento de recursos humanos. disponível em:

10 7. Agradecimento Ao Prof. Luís Fabrício W. Góes pelas idéias e informações discutidas durante a realização deste trabalho. A Gustavo Maia pela ajuda com as implementações. Ao apoio parcial dado pelo projeto INFOWEB, processo MCT/CNPq/CT-INFO / Referências Balbino, J. (2006). Mobilidade em Educação. Disponível em: < Acesso em: 02 de Setembro de Chandra, S. S. and Chandra, K. (2005). A comparison of Java and C#. Journal of Computing Sciences in Colleges, 20(3): Eis, D. (2006). Sites para Dispositivos Móveis - Breve introdução. Disponível em: < Acesso em: 02 de Setembro de Georges, A., Buytaert, D. and Eeckhout, L. (2007). Statistically rigorous java performance evaluation. In Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications (OOPSLA 07), pages ACM Press. Gu, D., Verbrugge, C. and Gagnon, E. M. (2006). Relative factors in performance analysis of Java virtual machines. In Proceedings of the 2nd International Conference on Virtual Execution Environments (VEE'06), pages ACM Press. Kaplan, I. (2001). Memory Allocation and Garbage Collection. Disponível em: < Acesso em: 02 de Setembro de Lewis, J. P. and Neumann, U. (2004). Performance of Java versus C++. Disponível em < Acesso em 02 de Setembro de Libman, A. e Gilbourd, V. (2005). Comparing Two High-Performance I/O Design Patterns. Artima Developer, disponível em: < Acesso em 02 de Setembro de Negroponte, N. Online Laptop per Child OLPC (2007). Disponível em: < Acesso em: 02 de Setembro de Reinholtz, K. Java will be faster than C++ (2000). ACM Sigplan Notices, 35(2): Santos, C. D. S. (2007). Introdução: Técnicas para desempenho de I/O. Disponível em: < Acesso em: 02 de Setembro de Ulrich, S. (2001) Java vs. C++. Technical Report, Stanford University. Disponível em: < Acesso em 02 de Setembro de 2008.

11 Wikipedia (2008). Java performance. Disponível em: < Acesso em: 02 de Setembro de Ziviani, N. (2006). Projeto de Algoritmos com Implementações em Java e C++. Consultoria em Java e C++ de F.C. Botelho, Thomson Learning, ISBN Zorn, B. (1993). The Measured Cost of Conservative Garbage Collection. Software - Practice and Experience, 23(7):

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

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes 3 MÁQUINAS VIRTUAIS Em nossa aula anterior, fizemos uma breve introdução com uso de máquinas virtuais para emularmos um computador novo

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Professor: João Fábio de Oliveira jfabio@amprnet.org.br (41) 9911-3030 Objetivo: Apresentar o que são os Sistemas Operacionais, seu funcionamento, o que eles fazem,

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

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

TRABALHO COM GRANDES MONTAGENS

TRABALHO COM GRANDES MONTAGENS Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 2.1 CONCEITO DE BIT O computador só pode identificar a informação através de sua elementar e restrita capacidade de distinguir entre dois estados: 0

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

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

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva E-mail/msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva E-mail/msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress. Abstrações e Tecnologias Computacionais Professor: André Luis Meneses Silva E-mail/msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.com Agenda Introdução Sistemas Computacionais Arquitetura X

Leia mais

Gerência de Memória RAM em Computadores com Mais de 4GB O sistema Windows x86 (32bits) não tem capacidade de reconhecer, fisicamente, mais que 3,X GB de RAM, a não ser que seja ativado, manualmente, o

Leia mais

Escolha seu serviço Cloud O melhor do Cloud

Escolha seu serviço Cloud O melhor do Cloud Escolha seu serviço Cloud O melhor do Cloud CAPA Comparamos os melhores serviços de Cloud Computing do Brasil em três categorias de ofertas. Leia e descubra qual é o mais adequado para suas necessidades.

Leia mais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos

Leia mais

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

Leia mais

Aspectos de Segurança em Programação com Java

Aspectos de Segurança em Programação com Java Aspectos de Segurança em Programação com Java Marcos Alexandre de Melo Medeiros Paulo Sérgio Motta Pires Departamento de Engenharia de Computação e Automação DCA UFRN marcosam@info.ufrn.br, pmotta@dca.ufrn.br

Leia mais

Sistemas Operacionais

Sistemas Operacionais Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Sistemas Operacionais Carga horária total:

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

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída.

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída. 1 Dúvida: - Em relação ao item 1.2 da Seção 2 - Requisitos funcionais, entendemos que a solução proposta poderá funcionar em uma arquitetura Web e que na parte cliente estará apenas o componente de captura

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

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

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web Resumo. Desenvolvimento de um software de gerenciamento de projetos para utilização na Web Autor: Danilo Humberto Dias Santos Orientador: Walteno Martins Parreira Júnior Bacharelado em Engenharia da Computação

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android Raphael Pinheiro Afonso 1 ; Elvio Gilberto da Silva 1 ; Patrick Pedreira Silva 1 ; Henrique Pachioni Martins

Leia mais

Everson Scherrer Borges João Paulo de Brito Gonçalves

Everson Scherrer Borges João Paulo de Brito Gonçalves Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 04 - Concorrência Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. Mono x Multiprogramação

Leia mais

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli Conceitos principais Nuvem Local Dados (informações) Profissional Pessoal Procedimento padrão (modelo) Produzir Armazenar Como era... Como

Leia mais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Comparativo de desempenho do Pervasive PSQL v11

Comparativo de desempenho do Pervasive PSQL v11 Comparativo de desempenho do Pervasive PSQL v11 Um artigo Pervasive PSQL Setembro de 2010 Conteúdo Resumo executivo... 3 O impacto das novas arquiteturas de hardware nos aplicativos... 3 O projeto do Pervasive

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

Distribuidor de Mobilidade GUIA OUTSOURCING

Distribuidor de Mobilidade GUIA OUTSOURCING Distribuidor de Mobilidade GUIA OUTSOURCING 1 ÍNDICE 03 04 06 07 09 Introdução Menos custos e mais controle Operação customizada à necessidade da empresa Atendimento: o grande diferencial Conclusão Quando

Leia mais

Escalonamento no Linux e no Windows NT/2000/XP

Escalonamento no Linux e no Windows NT/2000/XP Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir

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

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF TUTORIAL DE DIGITALIZAÇÃO DIRIGIDO AO USO DO PROCESSO ELETRÔNICO Adaptado do tutorial elaborado pelo colega MAICON FALCÃO, operador de computador da subseção judiciária de Rio Grande. Introdução Este tutorial

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 04 Introdução a Análise de Algoritmos humberto@bcc.unifal-mg.edu.br Última aula Fundamentos de Matemática Exercícios: Somatórios; Logaritmos

Leia mais

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB Exercícios de revisão V2 1 Uma empresa que possui partições FAT em seus servidores, estava impressionada com um processo em específico na memória, onde o mesmo ocupava um espaço grande. Este servidor dedicado

Leia mais

Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace.

Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace. Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace. Ederson Luis Posselt 1, Geovane Griesang 1 1 Instituto de Informática Universidade de Santa Cruz

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE

Leia mais

Manual Operacional AVA (Ambiente Virtual de Aprendizagem)

Manual Operacional AVA (Ambiente Virtual de Aprendizagem) Manual Operacional AVA (Ambiente Virtual de Aprendizagem) ead.clinicajulioperes.com.br Sumário navegável Como acesso o ambiente?... Como assisto aos vídeos?... Como preencher meu perfil?...

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres.

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres. Introdução de Cadeias Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Cadeia

Leia mais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. PROGRAMA EMBRAPA DE MELHORAMENTO DE GADO DE CORTE MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. MANUAL DE INSTALAÇÃO: 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Índice. Introdução 2. Quais funcionalidades uma boa plataforma de EAD deve ter? 4. Quais são as vantagens de ter uma plataforma EAD?

Índice. Introdução 2. Quais funcionalidades uma boa plataforma de EAD deve ter? 4. Quais são as vantagens de ter uma plataforma EAD? Índice SUA EMPRESA DE TREINAMENTOS ESTÁ PARADA NO TEMPO? Introdução 2 Quais funcionalidades uma boa plataforma de EAD deve ter? 4 Quais são as vantagens de ter uma plataforma EAD? 6 A gestão de cursos

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

softwares que cumprem a função de mediar o ensino a distância veiculado através da internet ou espaço virtual. PEREIRA (2007)

softwares que cumprem a função de mediar o ensino a distância veiculado através da internet ou espaço virtual. PEREIRA (2007) 1 Introdução Em todo mundo, a Educação a Distância (EAD) passa por um processo evolutivo principalmente após a criação da internet. Os recursos tecnológicos oferecidos pela web permitem a EAD ferramentas

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

Cálculo Aproximado do número PI utilizando Programação Paralela

Cálculo Aproximado do número PI utilizando Programação Paralela Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Cálculo Aproximado do número PI utilizando Programação Paralela Grupo 17 Raphael Ferras Renan Pagaiane Yule Vaz SSC-0143 Programação

Leia mais

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

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

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1 SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1 CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MISSÃO DO CURSO A concepção do curso de Análise e Desenvolvimento de Sistemas está alinhada a essas novas demandas

Leia mais

Admistração de Redes de Computadores (ARC)

Admistração de Redes de Computadores (ARC) Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo glauco.cardozo@ifsc.edu.br RAID é a sigla para Redundant

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

Gestão de Projeto de Tecnologia da Informação

Gestão de Projeto de Tecnologia da Informação Gestão de Projeto de Tecnologia da Informação Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER TÁSSIO JOSÉ GONÇALVES GOMES tassiogoncalvesg@gmail.com MINICURSO WINDOWS SERVER 2008 TÁSSIO GONÇALVES - TASSIOGONCALVESG@GMAIL.COM 1 CONTEÚDO Arquitetura

Leia mais

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER V14 de BricsCAD vem com um novo sistema de licenciamento, com base na tecnologia de licenciamento de Reprise Software. Este novo sistema oferece um ambiente

Leia mais

Artur Petean Bove Júnior Tecnologia SJC

Artur Petean Bove Júnior Tecnologia SJC Artur Petean Bove Júnior Tecnologia SJC Objetivo O objetivo do projeto é especificar o desenvolvimento de um software livre com a finalidade de automatizar a criação de WEBSITES através do armazenamento

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

Quarta-feira, 09 de janeiro de 2008

Quarta-feira, 09 de janeiro de 2008 Quarta-feira, 09 de janeiro de 2008 ÍNDICE 3 4 RECOMENDAÇÕES DE HARDWARE PARA O TRACEGP TRACEMONITOR - ATUALIZAÇÃO E VALIDAÇÃO DE LICENÇAS 2 1. Recomendações de Hardware para Instalação do TraceGP Este

Leia mais

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção. es Virtuais Um servidor à medida da sua empresa, sem investimento nem custos de manutenção. O que são os es Virtuais? Virtual é um produto destinado a empresas que necessitam de um servidor dedicado ligado

Leia mais

SISTEMAS DE ARQUIVOS Sistemas operacionais

SISTEMAS DE ARQUIVOS Sistemas operacionais Técnico em Informática SISTEMAS DE ARQUIVOS Sistemas operacionais Professor Airton Ribeiro de Sousa Sistemas operacionais Sistema de Arquivos pode ser definido como uma estrutura que indica como os dados

Leia mais

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? A arquitetura básica de qualquer computador completo, seja um PC, um Machintosh ou um computador de grande porte, é formada por apenas 5 componentes básicos:

Leia mais

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?

Leia mais

Backup. jmcordini@hotmail.com

Backup. jmcordini@hotmail.com Backup jmcordini@hotmail.com Backups e restauração de dados Backup é uma das tarefas mais incômodas na administração de sistemas mas é sem dúvida uma das mais importantes. Backup é nossa última linha de

Leia mais

Introdução. Introdução

Introdução. Introdução Introdução 1. Conheça a sua taxa de conversão 2. Usabilidade e navegabilidade 3. Pense mobile 4. Seja relevante 5. Tenha CTAs atraentes 6. O teste AB é fundamental Conclusão Introdução Conhecer os números

Leia mais

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente: Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau

Leia mais

FANESE Faculdade de Administração e Negócios de Sergipe

FANESE Faculdade de Administração e Negócios de Sergipe I FANESE Faculdade de Administração e Negócios de Sergipe GERENCIAMENTO DE PATCHES Atualizações de segurança Aracaju, Agosto de 2009 DAYSE SOARES SANTOS LUCIELMO DE AQUINO SANTOS II GERENCIAMENTO DE PATCHES

Leia mais

Soluções em. Cloud Computing. Midia Indoor. para

Soluções em. Cloud Computing. Midia Indoor. para Soluções em Cloud Computing para Midia Indoor Resumo executivo A Midia Indoor chegou até a Under buscando uma hospedagem para seu site e evoluiu posteriormente para uma solução cloud ampliada. A empresa

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

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

Vídeo In-Stream É isso que os consumidores querem

Vídeo In-Stream É isso que os consumidores querem 1 Introdução Um vídeo qualquer tela. A MediaMind está trabalhando para transformar essa ideia em realidade. Uma plataforma e um único fluxo de trabalho que gerencia, serve e rastreia os recursos de vídeo

Leia mais

Permissões de compartilhamento e NTFS - Parte 1

Permissões de compartilhamento e NTFS - Parte 1 Permissões de compartilhamento e NTFS - Parte 1 Autor: Júlio Battisti - Site: www.juliobattisti.com.br Segurança, sem dúvidas, é um dos temas mais debatidos hoje, no mundo da informática. Nesse tutorial

Leia mais

Proposta de Implantação do Software MULTIACERVO no Arquivo do DEINFRA

Proposta de Implantação do Software MULTIACERVO no Arquivo do DEINFRA Proposta de Implantação do Software MULTIACERVO no Arquivo do DEINFRA Acadêmicos: CÁSSIA REGINA BATISTA - cassiareginabatista@grad.ufsc.br CLARISSA KELLERMANN clarissakel@gmail.com IVAN MÁRIO DA SILVEIRA

Leia mais

CONSULTORIA E SERVIÇOS DE INFORMÁTICA

CONSULTORIA E SERVIÇOS DE INFORMÁTICA CONSULTORIA E SERVIÇOS DE INFORMÁTICA Quem Somos A Vital T.I surgiu com apenas um propósito: atender com dedicação nossos clientes. Para nós, cada cliente é especial e procuramos entender toda a dinâmica

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento 1 Gerência de espaço em disco Cópia de segurança do sistema de arquivo Roteiro Confiabilidade Desempenho

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

GERENCIAMENTO DE DISPOSITIVOS

GERENCIAMENTO DE DISPOSITIVOS 2 SISTEMAS OPERACIONAIS: GERENCIAMENTO DE DISPOSITIVOS E ARQUIVOS Introdução à Microinformática Prof. João Paulo Lima Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática

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

Cadastramento de Computadores. Manual do Usuário

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

Leia mais

PROJETO INFORMÁTICA NA ESCOLA

PROJETO INFORMÁTICA NA ESCOLA EE Odilon Leite Ferraz PROJETO INFORMÁTICA NA ESCOLA AULA 1 APRESENTAÇÃO E INICIAÇÃO COM WINDOWS VISTA APRESENTAÇÃO E INICIAÇÃO COM WINDOWS VISTA Apresentação dos Estagiários Apresentação do Programa Acessa

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

CURSO BÁSICO DE INFORMÁTICA

CURSO BÁSICO DE INFORMÁTICA CURSO BÁSICO DE INFORMÁTICA Introdução a microinformática William S. Rodrigues HARDWARE BÁSICO O hardware é a parte física do computador. Em complemento ao hardware, o software é a parte lógica, ou seja,

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais