Java não é mais tão lento
|
|
- Neuza Bergmann Dias
- 8 Há anos
- Visualizações:
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 A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma
Leia maisIntroduçã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 maisFundamentos 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 maisArpPrintServer. 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 maisSISTEMAS 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 maisProf. 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 maisTRABALHO 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 maisIntroduçã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 maisAula 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 maisSistemas 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 maisAbstraçõ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 maisGerê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 maisEscolha 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 maisDisciplina: 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 maisAULA 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 maisAspectos 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 maisSistemas 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 maisIntroduçã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 maisEsclarecimento: 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 maisTecnologia 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 maisEsta 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 maisDesenvolvimento 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 maisItinerá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 maisPerí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 maisEverson 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 maisSistemas 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 maisInfraestrutura: 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 maisSO - 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 maisDadas 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 maisComparativo 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 maisProgramaçã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 maisDistribuidor 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 maisEscalonamento 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 maisDesenvolvimento 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 maisBACHARELADO 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 maisATENÇÃ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 maisSistemas 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 maisUniversidade 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 maisExercí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 maisEstudo 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 maisLó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 maisManual 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 maisIFPE. 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 maisCasamento 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 maisMANUAL 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 mais1.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 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 maisREFORÇ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 maissoftwares 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 maisLó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 maisCá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 mais3 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 maisUNIVERSIDADE 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 maisCapacidade = 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 maisCENTRO 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 maisAdmistraçã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 maisSISTEMAS 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 maisAjuda 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 maisGestã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 maisMINICURSO 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 maisLICENCIAMENTO 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 maisArtur 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 maisProcessos 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 maisISO/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 maisDESENVOLVIMENTO 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 maisCapí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 maisOrientaçã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 maisComputador 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 maisQuarta-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 maisServidores 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 maisSISTEMAS 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 maisFUNDAMENTOS 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 maisJava & 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 maisBackup. 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 maisIntroduçã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 maisCurso 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 maisFANESE 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 maisSoluçõ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 maisProcessos 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 maisAplicaçã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 maisEntendendo 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 mais4 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 maisVí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 maisPermissõ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 maisProposta 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 maisCONSULTORIA 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 mais5 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 maisProjeto 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 maisBC 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 maisSistema 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 maisGERENCIAMENTO 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 maisSistemas 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 maisCadastramento 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 maisPROJETO 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
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 maisA 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 maisCURSO 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 maisSistema 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