19 resultados para JVM


Relevância:

20.00% 20.00%

Publicador:

Resumo:

Observability measures the support of computer systems to accurately capture, analyze, and present (collectively observe) the internal information about the systems. Observability frameworks play important roles for program understanding, troubleshooting, performance diagnosis, and optimizations. However, traditional solutions are either expensive or coarse-grained, consequently compromising their utility in accommodating today’s increasingly complex software systems. New solutions are emerging for VM-based languages due to the full control language VMs have over program executions. Existing such solutions, nonetheless, still lack flexibility, have high overhead, or provide limited context information for developing powerful dynamic analyses. In this thesis, we present a VM-based infrastructure, called marker tracing framework (MTF), to address the deficiencies in the existing solutions for providing better observability for VM-based languages. MTF serves as a solid foundation for implementing fine-grained low-overhead program instrumentation. Specifically, MTF allows analysis clients to: 1) define custom events with rich semantics ; 2) specify precisely the program locations where the events should trigger; and 3) adaptively enable/disable the instrumentation at runtime. In addition, MTF-based analysis clients are more powerful by having access to all information available to the VM. To demonstrate the utility and effectiveness of MTF, we present two analysis clients: 1) dynamic typestate analysis with adaptive online program analysis (AOPA); and 2) selective probabilistic calling context analysis (SPCC). In addition, we evaluate the runtime performance of MTF and the typestate client with the DaCapo benchmarks. The results show that: 1) MTF has acceptable runtime overhead when tracing moderate numbers of marker events; and 2) AOPA is highly effective in reducing the event frequency for the dynamic typestate analysis; and 3) language VMs can be exploited to offer greater observability.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Object-oriented programming languages presently are the dominant paradigm of application development (e. g., Java,. NET). Lately, increasingly more Java applications have long (or very long) execution times and manipulate large amounts of data/information, gaining relevance in fields related with e-Science (with Grid and Cloud computing). Significant examples include Chemistry, Computational Biology and Bio-informatics, with many available Java-based APIs (e. g., Neobio). Often, when the execution of such an application is terminated abruptly because of a failure (regardless of the cause being a hardware of software fault, lack of available resources, etc.), all of its work already performed is simply lost, and when the application is later re-initiated, it has to restart all its work from scratch, wasting resources and time, while also being prone to another failure and may delay its completion with no deadline guarantees. Our proposed solution to address these issues is through incorporating mechanisms for checkpointing and migration in a JVM. These make applications more robust and flexible by being able to move to other nodes, without any intervention from the programmer. This article provides a solution to Java applications with long execution times, by extending a JVM (Jikes research virtual machine) with such mechanisms. Copyright (C) 2011 John Wiley & Sons, Ltd.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Dissertação para obtenção do Grau de Mestre em Engenharia Informática

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Aquest document presenta l'arquitectura de la màquina virtual Java (Java Virtual Machine, o JVM). Java és un llenguatge de programació cada vegada més extès i, per tant, més utilitzat. El seu àmbit d¿execució s¿estèn actualment per qualsevol plataforma, des de un dispositiu mòbil (telèfon, PDA...) com un mainframe (com per exemple, el model S/390 sota z/OS de IBM).

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Programming Overview The JVM (The Java Virtual Machine) A brief look at Structure Class Method Statement Magic incantations main() output Coding a Dog Programming Principle(1) If and Boolean operations Coding a Bank Account Quick look at ToolBox

Relevância:

10.00% 10.00%

Publicador:

Resumo:

With the transition to multicore processors almost complete, the parallel processing community is seeking efficient ways to port legacy message passing applications on shared memory and multicore processors. MPJ Express is our reference implementation of Message Passing Interface (MPI)-like bindings for the Java language. Starting with the current release, the MPJ Express software can be configured in two modes: the multicore and the cluster mode. In the multicore mode, parallel Java applications execute on shared memory or multicore processors. In the cluster mode, Java applications parallelized using MPJ Express can be executed on distributed memory platforms like compute clusters and clouds. The multicore device has been implemented using Java threads in order to satisfy two main design goals of portability and performance. We also discuss the challenges of integrating the multicore device in the MPJ Express software. This turned out to be a challenging task because the parallel application executes in a single JVM in the multicore mode. On the contrary in the cluster mode, the parallel user application executes in multiple JVMs. Due to these inherent architectural differences between the two modes, the MPJ Express runtime is modified to ensure correct semantics of the parallel program. Towards the end, we compare performance of MPJ Express (multicore mode) with other C and Java message passing libraries---including mpiJava, MPJ/Ibis, MPICH2, MPJ Express (cluster mode)---on shared memory and multicore processors. We found out that MPJ Express performs signicantly better in the multicore mode than in the cluster mode. Not only this but the MPJ Express software also performs better in comparison to other Java messaging libraries including mpiJava and MPJ/Ibis when used in the multicore mode on shared memory or multicore processors. We also demonstrate effectiveness of the MPJ Express multicore device in Gadget-2, which is a massively parallel astrophysics N-body siimulation code.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A crescente complexidade dos sistemas tempo-real embarcados demanda novas metodologias e ferramentas para gerenciar os problemas de projeto, análise, integração e validação de sistemas complexos. Este trabalho aborda o tema co-projeto de sistemas tempo-real embarcados, propondo estratégias para a integração das fases iniciais de modelagem de um sistema tempo-real embarcado com as fases subseqüentes do projeto, como a implementação do software e do hardware. É proposto um framework orientado a objetos que permite a criação de modelos orientados a objetos de sistemas tempo-real embarcados, utilizando conceitos temporais similares aos propostos em UML-RT (ou mais especificamente no UML Profile for Schedulability, Performance and Time). É proposta uma estratégia de mapeamento dos requisitos temporais dos diagramas UMLRT para uma interface de programação (API) baseada na “Especificação Tempo-Real para Java” (Real-Time Specification for Java ou RTSJ), a qual pode ser executada tanto em software – em programas RTSJ executando em máquinas virtuais Java (JVM) tempo-real – ou em hardware – em processadores Java Tempo-Real. Para permitir o mapeamento para hardware são propostas extensões tempo-real ao processador Java FemtoJava, desenvolvido no âmbito de dissertações de mestrado e projetos de pesquisa no PPGC, criando-se um novo processador tempo-real denominado de RT-FemtoJava. Dentre as extensões propostas ao processador FemtoJava destaca-se a inclusão de um relógio de tempo-real e o suporte a instruções para alocação e manipulação de objetos. Os conceitos propostos foram validados no âmbito de estudos de caso, sendo os resultados obtidos descritos na presente dissertação.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

O professor apresenta o que é um framework através de dois exemplos de frameworks .NET e Java Runtime Environment (Java Virtual Machine - JVM). Também ilustra como é a estrutura dos dois frameworks .NET e JRE.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

O material apresenta políticas de escalonamento de processos e threads. O escalonamento de processos (ou Escalonamento do processador) trata da decisão sobre qual processo será executado em um determinado instante e por qual processador. O material apresenta também algoritmos de escalonamento relevantes, incluindo exemplos de algoritmos preemptivos e não-preemptivos, objetivos e critérios do escalonamento e diferentes tipos de escalonamentos: Escalonamento FIFO (first-in first-out), Escalonamento circular RR (Round-Robin ), Escalonamento SPF (Shortest Process First), Escalonamento SRT (Shortest Remaining Time), Escalonamento FSS (Fair Share Scheduling), Escalonamento de tempo real, Escalonamento de threads Java – JVM, Escalonamento no Windows XP e UNIX.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A videoaula apresenta o escalonamento de processos, com foco para as políticas de escalonamento do processador. Destaca o escalonamento com prioridades (estática ou dinâmica), o funcionamento do escalonamento de threads em Java, os níveis de escalonamento (alto nível, nível intermediário, baixo nível) e os critérios que são levados em conta pelo algoritmo de escalonamento. Apresenta também os objetivos e critérios do escalonamento e seus seguintes tipos: Escalonamento FIFO (first-in first-out), Escalonamento circular RR (Round-Robin ), Escalonamento SPF (Shortest Process First), Escalonamento SRT (Shortest Remaining Time), Escalonamento FSS (Fair Share Scheduling) - Escalonamento por fração justa, Escalonamento de tempo real, Escalonamento de threads Java – JVM, Escalonamento no Windows XP e UNIX.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

The lava Platform is increasing1y being adopted in the development of distributed sys¬tems with higb user demando This kind of application is more complex because it needs beyond attending the functional requirements, to fulfil1 the pre-established performance parameters. This work makes a study on the Java Vutual Machine (JVM), approaching its intemal aspects and exploring the garbage collection strategies existing in the literature and used by the NM. It also presents a set of tools that helps in the job of optimizing applications and others that help in the monitoring of applications in the production envi¬ronment. Doe to the great amount of technologies that aim to solve problems which are common to the application layer, it becomes difficult to choose the one with best time response and less memory usage. This work presents a brief introduction to each one of tbe possible technologies and realize comparative tests through a statistical analysis of the response time and garbage collection activity random variables. The obtained results supply engineers and managers with a subside to decide which technologies to use in large applications through the knowledge of how they behave in their environments and the amount of resources that they consume. The relation between the productivity of the technology and its performance is also considered ao important factor in this choice

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Generic programming is likely to become a new challenge for a critical mass of developers. Therefore, it is crucial to refine the support for generic programming in mainstream Object-Oriented languages — both at the design and at the implementation level — as well as to suggest novel ways to exploit the additional degree of expressiveness made available by genericity. This study is meant to provide a contribution towards bringing Java genericity to a more mature stage with respect to mainstream programming practice, by increasing the effectiveness of its implementation, and by revealing its full expressive power in real world scenario. With respect to the current research setting, the main contribution of the thesis is twofold. First, we propose a revised implementation for Java generics that greatly increases the expressiveness of the Java platform by adding reification support for generic types. Secondly, we show how Java genericity can be leveraged in a real world case-study in the context of the multi-paradigm language integration. Several approaches have been proposed in order to overcome the lack of reification of generic types in the Java programming language. Existing approaches tackle the problem of reification of generic types by defining new translation techniques which would allow for a runtime representation of generics and wildcards. Unfortunately most approaches suffer from several problems: heterogeneous translations are known to be problematic when considering reification of generic methods and wildcards. On the other hand, more sophisticated techniques requiring changes in the Java runtime, supports reified generics through a true language extension (where clauses) so that backward compatibility is compromised. In this thesis we develop a sophisticated type-passing technique for addressing the problem of reification of generic types in the Java programming language; this approach — first pioneered by the so called EGO translator — is here turned into a full-blown solution which reifies generic types inside the Java Virtual Machine (JVM) itself, thus overcoming both performance penalties and compatibility issues of the original EGO translator. Java-Prolog integration Integrating Object-Oriented and declarative programming has been the subject of several researches and corresponding technologies. Such proposals come in two flavours, either attempting at joining the two paradigms, or simply providing an interface library for accessing Prolog declarative features from a mainstream Object-Oriented languages such as Java. Both solutions have however drawbacks: in the case of hybrid languages featuring both Object-Oriented and logic traits, such resulting language is typically too complex, thus making mainstream application development an harder task; in the case of library-based integration approaches there is no true language integration, and some “boilerplate code” has to be implemented to fix the paradigm mismatch. In this thesis we develop a framework called PatJ which promotes seamless exploitation of Prolog programming in Java. A sophisticated usage of generics/wildcards allows to define a precise mapping between Object-Oriented and declarative features. PatJ defines a hierarchy of classes where the bidirectional semantics of Prolog terms is modelled directly at the level of the Java generic type-system.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

The technology of partial virtualization is a revolutionary approach to the world of virtualization. It lies directly in-between full system virtual machines (like QEMU or XEN) and application-related virtual machines (like the JVM or the CLR). The ViewOS project is the flagship of such technique, developed by the Virtual Square laboratory, created to provide an abstract view of the underlying system resources on a per-process basis and work against the principle of the Global View Assumption. Virtual Square provides several different methods to achieve partial virtualization within the ViewOS system, both at user and kernel levels. Each of these approaches have their own advantages and shortcomings. This paper provides an analysis of the different virtualization methods and problems related to both the generic and partial virtualization worlds. This paper is the result of an in-depth study and research for a new technology to be employed to provide partial virtualization based on ELF dynamic binaries. It starts with a mild analysis of currently available virtualization alternatives and then goes on describing the ViewOS system, highlighting its current shortcomings. The vloader project is then proposed as a possible solution to some of these inconveniences with a working proof of concept and examples to outline the potential of such new virtualization technique. By injecting specific code and libraries in the middle of the binary loading mechanism provided by the ELF standard, the vloader project can promote a streamlined and simplified approach to trace system calls. With the advantages outlined in the following paper, this method presents better performance and portability compared to the currently available ViewOS implementations. Furthermore, some of itsdisadvantages are also discussed, along with their possible solutions.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

TuCSoN (Tuple Centres Spread over the Network) è un modello di coordinazione per processi distribuiti o agenti autonomi. Il modello di TuCSoN viene implementato come un middleware distribuito Java-based, distribuito Open Source sotto la licenza LGPL tramite Googlecode. Il fatto che lo stesso sia Open Source e Java-based ha reso possibile il suo porting su Android, rendendo il noto sistema operativo di Google un possibile agente partecipante ad un sistema TuCSoN. La tesi descrive il percorso che ha portato dallo studio dell'infrastruttura TuCSoN e del sistema Android alla realizzazione dell'applicazione Android, rendendo possibile a qualsiasi dispositivo Android di partecipare ad un sistema TuCSoN. Nel particolare l'obiettivo finale dell'applicazione Android, e di questa tesi, è rendere lo smartphone un nodo TuCSoN funzionante. La tesi non si pone l'obiettivo di analizzare ed esplorare le funzionalità e le possibilitàa delle due tecnologie principali trattate (Android e TuCSoN) nel loro singolo, quanto quello di esplorare le criticità che un porting di questo tipo comporta, quali ad esempio le differenze intrinseche fra la JVM e la DalvikVM e come aggirarle, o le funzionalità di Android e come utilizzarle allo scopo di realizzare un applicazione che funga da server ad una infra- struttura distribuita, oppure le differenze a livello di gestione della GUI fra Android e plain-java, e di analizzare le soluzioni trovate per risolvere (o dove non era possibile risolvere evitare) tali problemi al fine del raggiungimento dell'obiettivo che ci si era prefissati.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

L’obiettivo di questa tesi è quello di estendere l’interfaccia grafica di tuProlog nella versione per Android, il più diffuso sistema operativo per tablet e smartphone. TuProlog è un’ interprete Prolog interamente scritto in java, leggero e open–source. L’applicazione è disponibile sotto forma di archivio JAR eseguibile e può essere utilizzato tramite un’interfaccia a riga di comando, nella versione Java, o per mezzo di interfacce grafiche negli ambienti Java, .NET e Android. La versione per Android supporta pienamente Java e la maggior parte delle librerie dell’applicativo per JVM. Lo sviluppo di applicazioni per dispositivi mobile, però, limita lo sviluppatore in termini di complessità delle elaborazioni effettuabili dal programma e comprensibilità dell’interfaccia grafica; per questi e altri motivi, la struttura dell’applicativo in versione Android, fatta eccezione per il core Prolog, è diversa dalle versioni per altri ambienti. L’applicazione, giunta ora alla versione 2.7.2, manca della possibilità di input da console in tutte le versioni ad interfaccia grafica. Scopo di questa tesi è quindi integrare tale funzionalità, inserendola all’interno del contesto applicativo senza modificare il normale flusso delle operazioni, intervenendo in modo mirato, il meno invasivo possibile e garantendo l’espandibilità della modifica ad estensioni future.