Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we pre...
详细信息
Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence-based representations, to represent program dependencies in a concurrent java program. We also discuss some important applications of a multithreaded dependence graph in a maintenance environment for concurrent java programs.
java class files are often distributed as jar files, which are collections of individually compressed class files (and possibility other files). Jar files are typically about 1/2 the size of the original class files d...
详细信息
java class files are often distributed as jar files, which are collections of individually compressed class files (and possibility other files). Jar files are typically about 1/2 the size of the original class files due to compression. I have developed a wire-code format for collections of java class files. This format is typically 1/2 to 1/5 of the size of the corresponding compressed jar file (1/4 to 1/10 the size of the original class files).
This paper introduces a new parallel performance profiling system for the Bulk Synchronous Parallel (BSP) model. The profiling system, called BSP Pro, consists of a performance profiling tool, BSP Profiler, and a perf...
详细信息
This paper introduces a new parallel performance profiling system for the Bulk Synchronous Parallel (BSP) model. The profiling system, called BSP Pro, consists of a performance profiling tool, BSP Profiler, and a performance visualisation tool, BSP Visualiser. The aim of BSP Pro is to assist in the analysis and improvement of BSP program performance by minimising load imbalance among processes. BSP Pro is different from other systems, such as the profiling tools within the Oxford BSP toolset, in terms of both its features and its implementation. It uses BSP Profiler to trace and generate more comprehensive profiling information resulting from BSP program executions. The profiling information is then visualised and shown as performance profiling graphs using BSP Visualiser. The visualising component of BSP Pro is fully developed in java and utilises java graphics to expose and highlight process load imbalance in both computation and interprocess communication.
This paper gives an overview of Ajanta, a java-based system for mobile-agent programming. We outline the Ajanta architecture, and discuss the basic elements that comprise an agent-based application. Ajanta's progr...
详细信息
ISBN:
(纸本)0769502229
This paper gives an overview of Ajanta, a java-based system for mobile-agent programming. We outline the Ajanta architecture, and discuss the basic elements that comprise an agent-based application. Ajanta's programming environment is defined in terms of a set of primitive operations for agent creation, dispatch, migration and remote control. Agents can access server resources using a proxy-based access control mechanism. We describe a scheme for agent migration based on the composition of some basic migration patterns which incorporate exception handling mechanisms. Finally, we present two agent based distributed applications implemented using the Ajanta system. One is a middleware which supports file sharing over the Internet and the other is a distributed calendar manager.
While java has provided a mechanism for concurrent programming implemented as language constructs, it is too rudimentary for most programmers and has certain limitations that make programs unnecessarily complex and pr...
详细信息
While java has provided a mechanism for concurrent programming implemented as language constructs, it is too rudimentary for most programmers and has certain limitations that make programs unnecessarily complex and prevent fine-grained concurrency. We have implemented java4P, and extension of the javalanguage, that offers a simpler concurrency model and overcomes java's limitations. Threads are no longer associated with thread objects, allowing concurrency at any level of granularity. Thread creation is made implicit and syncronisation is achieve through method guards. Synchronisation specification is separated from the functional specification to provide a parallel programming model closer to sequential programming.
An increasing number of call centers have begun using java in their daily operations owing to the many benefits it has to offer. Unlike most desktop computing which requires networked workstations fully loaded with a ...
详细信息
An increasing number of call centers have begun using java in their daily operations owing to the many benefits it has to offer. Unlike most desktop computing which requires networked workstations fully loaded with a range of software, java focuses on client/server technology and network based processing. Using java, call centers can realize substantial cost savings and serve customers in more ways. Because java applications are unfettered by ties to specific operating systems, call centers can break the costly equipment upgrade cycle by continuing to use existing hardware as they move incrementally toward java computing. Software administration are also simplified because java applications reside on central server instead of on each desktop.
A high-performance implementation of a java Virtual Machine requires a compiler to translate java bytecodes into native instructions, as well as an advanced garbage collector (e.g., copying or generational). When the ...
详细信息
A high-performance implementation of a java Virtual Machine requires a compiler to translate java bytecodes into native instructions, as well as an advanced garbage collector (e.g., copying or generational). When the java heap is exhausted and the garbage collector executes, the compiler must report to the garbage collector all live object references contained in physical registers and stack locations. Typical compilers only allow certain instructions (e.g., call instructions and backward branches) to be GC-safe;if GC happens at some other instruction, the compiler may need to advance execution to the next GC-safe point. Until now, no one has ever attempted to make every compiler-generated instruction GC-safe, due to the perception that recording this information would require too much space. This kind of support could improve the GC performance in multithreaded applications. We show how to use simple compression techniques to reduce the size of the GC map to about 20% of the generated code size, a result that is competitive with the best previously published results. In addition, we extend the work of Agesen, Detlefs, and Moss, regarding the so-called `JSR Problem' (the single exception to java's type safety property), in a way that eliminates the need for extra runtime overhead in the generated code.
We present the javaPorts system, an environment and a set of tools that allows non-expert users to easily develop parallel and distributed java applications targeting clusters of workstations. The javaPorts system can...
详细信息
We present the javaPorts system, an environment and a set of tools that allows non-expert users to easily develop parallel and distributed java applications targeting clusters of workstations. The javaPorts system can automatically generate java code templates for the tasks (software components) of an application, starting from a graph in which the user specifies how the tasks will be distributed to cluster nodes. Tasks have well defined port interfaces and may communicate by simply writing messages to their ports, without having to know the name and location of the destination task. This allows for task reusability while keeping the code for inter-task communication and coordination hidden. We demonstrate that coarse grain parallel programs developed using the javaPorts system achieve good performance, even when using a 10Mbs shared Ethernet network of workstations.
The labAlive toolbox allows the development of interactive, animated simulations and demonstrations of communication systems. Students can explore complex learning contents, and since the toolbox is implemented in Jav...
详细信息
The labAlive toolbox allows the development of interactive, animated simulations and demonstrations of communication systems. Students can explore complex learning contents, and since the toolbox is implemented in java, the training material can seamlessly be integrated into the World Wide Web. To make the development of customized wirings as easy as possible, a framework is provided for the simulation task, user interaction and display. An inheritance hierarchy with base classes implements these tasks, and a set of ready to use objects is provided, e.g. wires, standard systems like sine-wave generator and oscillographs. Developing a new wiring mainly consists of creating the required systems and wires, connecting up and defining the graphical layout. Special focus has been put on the extendability of the toolbox. New systems and also their graphical representation can easily be implemented.
java has potential as a programminglanguage for real-time systems. However although java has extensive documentation, there are no specifications about forecasting the task scheduling. In view of this, the Nilsons Re...
详细信息
java has potential as a programminglanguage for real-time systems. However although java has extensive documentation, there are no specifications about forecasting the task scheduling. In view of this, the Nilsons Real-Time java Specification which introduces a special pre-processor is introduced. As an implementation of this specification, the Portable Executive for Reliable Control (PERC) is given.
暂无评论