The architecture and performance of a java implementation of a structured distributed shared memory system, PastSet, is described. The PastSet abstraction allows programmers to write applications that run efficiently ...
详细信息
The architecture and performance of a java implementation of a structured distributed shared memory system, PastSet, is described. The PastSet abstraction allows programmers to write applications that run efficiently on different architectures, from clusters to widely distributed systems. PastSet is a tuple-based three-dimensional structured distributed shared memory system, which provides the programmer with operations to perform causally ordered reads and writes of tuples to a virtual structured memory space called the PastSet. It has been shown that the original, native code, PastSet was able to outperform MPI and PVM when running real applications and we show that the design translates into java so that java PastSet is a qualified competitor to other cluster application programming interfaces for java.
Denotational semantics is given for a java-like language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and privilege-based access control. Representat...
详细信息
Denotational semantics is given for a java-like language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and privilege-based access control. Representation independence (relational parametricity) is proved, using a semantic notion of confinement similar to ones for which static disciplines have been recently proposed.
Device drivers are a very critical part of every operating system. They often contain code that is executed in interrupt handlers. During the execution of interrupt handlers, the processing of some other interrupts is...
详细信息
ISBN:
(纸本)9781450378062
Device drivers are a very critical part of every operating system. They often contain code that is executed in interrupt handlers. During the execution of interrupt handlers, the processing of some other interrupts is usually disabled. Thus errors in that code can compromise the whole *** paper describes an approach to ensure that an interrupt handler is not allowed to use more than a specified amount of time. Our approach is based on a java operating system and consists of a combination of verification at compilation time and run-time checks.
We have designed and implemented Maya, a vers ion of java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic...
详细信息
ISBN:
(纸本)9781581134636
We have designed and implemented Maya, a vers ion of java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as multimethods on the corresponding generic functions. Programmers can write new generic functions (i.e., grammar productions) and new multimethods (i.e., semantic actions), through which they can extend the grammar of the language and change the semantics of its syntactic constructs, respectively. Maya's multimethods are compile-time metaprograms that transform abstract syntax: they execute at program compile-time, because they are semantic actions executed by the parser. Maya's multimethods can be dispatched on the syntactic structure of the input, as well as the static, source-level types of expressions in the input. In this paper we describe what Maya can do and how it works. We describe how its novel parsing techniques work and how Maya can statically detect certain kinds of errors, such as code that generates references to free variables. Finally, to demonstrate Maya's expressiveness, we describe how Maya can be used to implement the Multi javalanguage, which was described by Clifton et al. at OOPSLA 2000.
Today's typical computational environment consists of a large numbers of commodity workstations interconnected by high bandwidth networks. However, only a small portion of workstation's capacity is utilized si...
详细信息
Today's typical computational environment consists of a large numbers of commodity workstations interconnected by high bandwidth networks. However, only a small portion of workstation's capacity is utilized since a large share of workstations may idle at any given moment. This paper proposes the general design of a runtime that executes a standard java application on available idle workstations. This runtime transparently distributes the application's threads and objects among the currently idle nodes.
In the JX project, a complete operating system using the type-safe, object-oriented languagejava is built. One of the major challenges is achieving a performance that is competitive to mainstream operating systems, s...
详细信息
In the JX project, a complete operating system using the type-safe, object-oriented languagejava is built. One of the major challenges is achieving a performance that is competitive to mainstream operating systems, such as Linux or Solaris. This paper concentrates on optimizing byte-code-to-nativecode translator and instrumentation/visualization tools to locate performance problems to achieve good performance.
java is becoming a viable choice for numerical algorithms due to the software engineering benefits of object-oriented programming. Because these programs still use large arrays that do not fit in the cache, they conti...
详细信息
ISBN:
(纸本)9781581135992
java is becoming a viable choice for numerical algorithms due to the software engineering benefits of object-oriented programming. Because these programs still use large arrays that do not fit in the cache, they continue to suffer from poor memory performance. To hide memory latency, we describe a new unified compile-time analysis for software prefetching arrays and linked structures in java. Our previous work uses data-flow analysis to discover linked data structure accesses, and here we present a more general version that also identifies loop induction variables used in array accesses. Our algorithm schedules prefetches for all array references that contain induction variables. We evaluate our technique using a simulator of an out-of-order superscalar processor running a set of array-based java programs. Across all our programs, prefetching reduces execution time by a geometric mean of 23%, and the largest improvement is 58%. We also evaluate prefetching on a PowerPC processor, and we show that prefetching reduces execution time by a geometric mean of 17%. Traditional software prefetching algorithms for C and Fortran use locality analysis and sophisticated loop transformations. Because our analysis is much simpler and quicker, it is suitable for including in a just-in-time compiler. We further show that the additional loop transformations and careful scheduling of prefetches used in previous work are not always necessary for modern architectures and java programs.
Many simulations and other applications need to interact seamlessly with distributed data resources. The Agent-Based Environment for Linking Simulations (ABELS) allows the formation of a dynamic "data and simulat...
详细信息
ISBN:
(纸本)0769518532
Many simulations and other applications need to interact seamlessly with distributed data resources. The Agent-Based Environment for Linking Simulations (ABELS) allows the formation of a dynamic "data and simulation cloud" that links a heterogeneous collection of networked resources. ABELS consists of three major types of components: user entities that serve as data producers and/or consumers, a brokering system for organizing and linking the various participants, and generic local agents that connect simulations and data resources to the cloud of participants. This paper presents the design of the distributed brokering system, which is implemented using java and Sun Microsystems' Jini technology.
To accomplish multi-dimensional separation of concerns (MDSOC) with Hyper/JTM, a tool available for free download, in the context of standard javaTM development is described. Hyper/J does not require any special langu...
详细信息
To accomplish multi-dimensional separation of concerns (MDSOC) with Hyper/JTM, a tool available for free download, in the context of standard javaTM development is described. Hyper/J does not require any special languages or language variants, compilers, development environments, or processes-it works with standard java, using any compiler, development environment, methodology and process. It can be used at any stage of the software lifecycle-from design and initial development of code, to the evolution of pre-existing code, to the adaptation and integration of separately developed components.
暂无评论