Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2014, Annals of Multicore and Gpu Programming Amgp
…
6 pages
1 file
In this study we analyze different alternatives to develop applications in multiprocessor systems using Java. We include a study about the Real Time Specification for Java (RTSJ) and improvements included in the version 1.1 to optimize the resources available in this kind of systems. We analyze how JamaicaVM, a commercial implementation of the RTSJ, use these improvements and what are their limitations. We have carried out an empirical evaluation using a case study. This evaluation uses the execution times obtained with the parallel execution of the case study with respect the sequential ones. With the analysis of results, it is demonstrated the improvement in the performance obtained with the parallelization of the problem.
2011
Multicore systems have become standard on desktop computers today and current operating systems and software development tools provide means to actually use the additional computational power efficiently. A more fundamental change, however, is required to fully exploit the power of multicore systems. Furthermore, the fast growing market of embedded systems, up to now, is much less affected by the introduction of parallel technologies. This is already changing quickly today. Tools for efficient development of reliable embedded software are demanded. This is in particular true for tools that are able to guarantee hard real-time requirements.
2008 4th International Conference on Intelligent Computer Communication and Processing, 2008
This paper presents some of the issues related to the use of multi-core architectures for real-time systems, in particular for real-time Java. Currently, the Real-Time Specification for Java (RTSJ) does not account for aspects of parallel computing, but the widespread use of multi-core architectures advocates for the need of a change in this regard. Some of these aspects relate closely to architectural features that need to be properly exported to the application level. We discuss the impact of multi-core processors, both symmetric and asymmetric, on process/thread scheduling. We also analyze the changes needed for some of the important features of RTSJ, such as the priority inversion avoidance, in the new context of multi-core processing. Also, locking and fairness issues are discussed with respect to the use of multi-core processors for real-time Java.
Object-Oriented Real-Time Distributed Computing, 2002
This paper presents a real-time Java hardware and soft- ware system for use in embedded applications. The system includes a multithreaded Java microcontroller, an adapted Java Virtual Machine (JVM) and an extended Application Programming Interface (API). The microcontroller core is designed with a multithreaded pipeline and hardware sup- port for real-time scheduling algorithms. The Java Virtual Machine consists of trap
Science of Computer Programming, 2013
The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and thorough and up-to-date evaluations of their performance, as well as the unawareness of the current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC.
1998
This dissertation proposes a new garbage-collected memory module architecture for hard real-time systems. The memory module is designed for compatibility with standard workstation architectures, and cooperates with standard cache consistency protocols. Processes read and write garbage-collected memory in the same manner as standard memory, with identical performance under most conditions. Occasional contention between user processes and the garbage collector results in delays to the user process of at most six memory cycles. Thus the proposed architecture guarantees real-time performance at fine granularity. This dissertation investigates the viability of the proposed architecture in two senses. First, it demonstrates that a fundamental component of the architecture, the object space manager, can be produced at a reasonable cost. Second, this dissertation reports the results of experiments that measure the performance of the proposed architecture under real workloads. Results of these experiments show that the architecture currently performs more slowly than traditional schemes; but this appears to be correctable by employing a more efficient function call mechanism that caches heap-allocated activation frames. Finally, this dissertation reports on some simple extensions to the C++ programming language to support slice objects. Slice objects, which are supported by the garbage collection architecture, are useful for implementing fragmentable arrays, i.e., arrays in which subarrays may be retained while unused elements become garbage and are collected. Experimental evidence demonstrates that slice objects can be used to implement strings more efficiently than at least some popular ii TABLE OF CONTENTS 1.
… 2000: WoTUG-23: …, 2000
Java provides support for concurrent and parallel programming through threads, monitors and its socket and Remote Method Invocation (RMI) classes. However, there have been many concerns expressed about the way in which this support is provided, e.g., [1][2], citing problems such as improper implementation of monitors and difficulty of programming with threads. Hoare's Communicating Sequential Processes (CSP) [3][4][5] model fully specifies thread synchronization and is based on processes, compositions, and channel communication. It provides a mathematical notation for describing patterns of communication using algebraic expressions and contains formal proofs for analyzing, verifying and eliminating undesirable conditions, such as race hazards, deadlocks, livelock, and starvation. Two independent research efforts provide a CSP based process-oriented design pattern for concurrency implemented in Java: Communicating Sequential Processes for Java (JCSP) [6] and Communication Threads in Java (CTJ) [7]. In this paper, we compare these two packages, looking at the philosophy behind their development, their similarities, their differences, their performance, and their use.
ACM Transactions on Embedded Computing Systems, 2010
The performance and scalability issues of multithreaded Java programs on multicore systems are studied in this paper. First, we examine the performance scaling of benchmarks with various numbers of processor cores and application threads. Second, by correlating low-level hardware performance data to JVM threads and system components, the detail analyses of performance and scalability are presented, such as the hardware stall events and memory system latencies. Third, the usages of memory resource are detailed to observe the potential bottlenecks. Finally, the JVM tuning techniques are proposed to alleviate the bottlenecks, and improve the performance and scalability. Several key findings are revealed through this study. First, the lock contentions usually lead to a strong limitation of scalability. Second, in terms of memory access latencies, the most of memory stalls are produced by L2 cache misses and cache-to-cache transfers. Finally, the overhead of minor garbage collections could be an important factor of throughput reductions. Based on these findings, the appropriate Java Virtual Machine (JVM) tuning techniques are examined in this study. We observe that the use of a parallel garbage collector and an appropriate ratio of young to old generation can alleviate the overhead of minor collection and improve the efficiency of garbage collections. Moreover, the cache utilizations could be enhanced with the use of thread-local allocation buffer, and then leads to the performance improvements significantly.
2005
The embedded real-time development community is investigating different approaches in order to provide modularity and reuse features for system design in this area, as well as a more appropriate mapping technique between requirements and implementation. The Java technology is very promising for this community, mainly after the research efforts on its real-time extension RTSJ-real-time specification for Java. However, there are still some critic factors related to the adoption of Java for real-time applications, and some of them deserve special attention. This paper reports a study of some of these decisive factors, such as the choice of the underlying operating system, the use of a middleware (virtual machine) or a native code, and the use of the Java real-time API (RTSJ)
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
Real-Time Systems, 2000
Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems - JTRES '07, 2007
Proceedings of the 7th International Conference on Principles and Practice of Programming in Java - PPPJ '09, 2009
… on Design, automation and test in …, 1998
Proceedings. IEEE International Conference on Computer Design: VLSI in Computers and Processors, 2002
Proceedings of the international conference on Compilers, architecture, and synthesis for embedded systems - CASES '02, 2002
International Journal of Ad Hoc and Ubiquitous Computing, 2017
International Journal of Parallel Programming, 2006
Proceedings Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000) (Cat. No. PR00607)