An in-depth look and understanding of control flow transfer and its predictability can guide architects to adapt control flow prediction hardware in java processing or finely tune the performance of JVM software on ge...
详细信息
ISBN:
(纸本)0780372301
An in-depth look and understanding of control flow transfer and its predictability can guide architects to adapt control flow prediction hardware in java processing or finely tune the performance of JVM software on general purpose machines. To our knowledge, this paper provides the first insight of branch behavior on a standard java Virtual Machine with real workloads. Employing a complete system simulation environment, we profile branch execution characteristics and quantify the performance of a wide range of prediction schemes on both user and kernel code. The impact of different JVM styles (JIT compiler and interpreter) on branch behavior is also studied. We find that: (1) Kernel branches constitute a significant portion of total branch execution in java processing;(2) Kernel and user code favor different prediction mechanisms;(3) java processing exercises fairly large number of branch sites and large control flow footprint compared with the execution of benchmarks such as SPECInt95;(4) A major part of the dynamic indirect branches are multiple target (polymorphic) branches. Target addresses of indirect branches, especially those in interpreting mode are highly interleaved and cause high BTB misprediction.
Conventional interface distributions rely on Interface Description language (IDL) files. From these IDL files, stubs are automatically generated to allow code to link to the desired interfaces. In contrast, the java C...
详细信息
ISBN:
(纸本)354042167X
Conventional interface distributions rely on Interface Description language (IDL) files. From these IDL files, stubs are automatically generated to allow code to link to the desired interfaces. In contrast, the java Card interface distributions require both export files (IDL) and class files (stubs). This leads to the possibility of mismatched versions of the export files and class files. Furthermore, the class files distributed are typically generated from the original java card sources, which allows access to private information contained in the class file. Modifying sources to strip private code is error prone. In order to address these problems, a mechanism is proposed by which the necessary java class files may be synthesized from the export files, eliminating the need to distribute class files. This mechanism could be extended to other java platforms as a general-purpose means for interface distribution.
In this paper, we present a scheme which explores the parallelism on JVM. An algorithm, called dynamic-duplication scheduling is developed for solving the static scheduling and code generation for data flow graphs (DF...
详细信息
ISBN:
(纸本)0780370414
In this paper, we present a scheme which explores the parallelism on JVM. An algorithm, called dynamic-duplication scheduling is developed for solving the static scheduling and code generation for data flow graphs (DFG) on the parallel JVM. Experimental results show that the schedule produced by the algorithm on parallel JVM is significantly improved compared with the traditonal JVM.
The deployment of java as a concurrent programminglanguage has created a critical need for high-performance, concurrent, and incremental multiprocessor garbage collection. We present the Recycler, a fully concurrent ...
详细信息
ISBN:
(纸本)9781581134148
The deployment of java as a concurrent programminglanguage has created a critical need for high-performance, concurrent, and incremental multiprocessor garbage collection. We present the Recycler, a fully concurrent pure reference counting garbage collector that we have implemented in the Jalapeno java virtual machine running on shared memory multiprocessors. While a variety of multiprocessor collectors have been proposed and some have been implemented, experimental data is limited and there is little quantitative basis for comparison between different algorithms. We present measurements of the Recycler and compare it against a non-concurrent but parallel load-balancing mark-and-sweep collector (that we also implemented in Jalapeno), and evaluate the classical tradeoff between response time and throughput. When processor or memory resources are limited, the Recycler runs at about 90% of the speed of the mark-and-sweep collector. However, with an extra processor to run collection and with a moderate amount of memory headroom, the Recycler is able to operate without ever blocking the mutators and achieves a maximum measured mutator delay of only 2.6 milliseconds for our benchmarks. End-to-end execution time is usually within 5%.
java is a popular modern programminglanguage that supports monitors. However, monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. This paper presents a metho...
详细信息
ISBN:
(纸本)0769512542
java is a popular modern programminglanguage that supports monitors. However, monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. This paper presents a method for testing java monitors, which extends the work of Brinch Hansen on testing Concurrent Pascal monitors. A monitor is tested by executing a concurrent program in which the processes are synchronised by a clock to make the sequence of interactions deterministic and reproducible. The method is extended to account for the differences between Concurrent Pascal monitors and java monitors, and to provide additional coverage of the implementation under test. Tool support and documentation in the form of a test plan are also provided. The method is illustrated in detail on an asymmetric producer-consumer monitor which is the same example that was used to illustrate the original method. The application of the method to the readers and writers problem is also discussed.
This paper describes TOS - an educational distributed operating system implemented in java. First the current trends in commercial operating systems are shortly presented and compared with several available educationa...
详细信息
ISBN:
(纸本)1581133294
This paper describes TOS - an educational distributed operating system implemented in java. First the current trends in commercial operating systems are shortly presented and compared with several available educational operating systems. Next we give our rationals to use java as the TOS implementation language. Then the architecture of the system and its components - launchers and servers are described. Finally we explain the advantages of this architecture and give some examples of possible student projects and assignments.
Most current java textbooks for CS1 (and thus most current courses) begin either with fundamentals from the procedural paradigm (assignment, iteration, selection) or with a brief introduction to using objects followed...
详细信息
ISBN:
(纸本)1581133294
Most current java textbooks for CS1 (and thus most current courses) begin either with fundamentals from the procedural paradigm (assignment, iteration, selection) or with a brief introduction to using objects followed quickly with writing objects. We have found a third way to be most satisfying for both teachers and students: using interesting predefined classes to introduce the fundamentals of object-oriented programming (object instantiation, method calls, inheritance) followed quickly by the traditional fundamentals of iteration and selection, also taught using the same predefined classes. Karel the Robot, developed by Richard Pattis [6] and well-known to many computer science educators, has aged gracefully and is a vital part of our CS1 curriculum. This paper explains how Karel may be used and the advantages of doing so.
The java programming language supports monitors. Monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. This paper presents the ConAn (Concurrency Analyser) tool...
详细信息
ISBN:
(纸本)076951426X;0769514278
The java programming language supports monitors. Monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. This paper presents the ConAn (Concurrency Analyser) tool for generating drivers for the testing of java monitors. To obtain adequate controllability over the interactions between java threads, the generated driver contains processes that are synchronized by a clock. The driver automatically executes the calls in the test sequence in the prescribed order and compares the outputs against the expected outputs specified in the test sequence. The method and tool are illustrated on an asymmetric producer-consumer monitor, and their application to two other monitors is discussed.
The java Power Tools or JPT is a java toolkit designed to enable students to rapidly develop graphical user interfaces in freshman computer science programming projects. Because it is simple to create GUIs using JPT, ...
详细信息
ISBN:
(纸本)1581133294
The java Power Tools or JPT is a java toolkit designed to enable students to rapidly develop graphical user interfaces in freshman computer science programming projects. Because it is simple to create GUIs using JPT, students can focus on the more fundamental issues of computer science rather than on widget management. In a separate article[4], we will discuss with examples how the JPT can help freshman students to learn about the basics of algorithms, data structures, classes, and interface design. In this article, we will focus on how the JPT itself can be used as an extended case study of object-oriented design principles in a more advanced course. The fundamental design principles of the JPT are that the elements of a graphical user interface should be able to be combined recursively as nested views and that the communication between these views and the internal data models should be as automatic as possible. In particular, in JPT, the totality of user input from a complex view can be easily converted into a corresponding data model and any input errors will be detected and corrected along the way. This ease of communication is achieved by using string objects as a lingua franca for views and models and by using parsing when appropriate to automatically check for errors and trigger recovery. The JPT achieves its power by a combination of computer science and software design principles. Recursion, abstraction, and encapsulation are systematically used to create GUI tools of great flexibility. It should be noted that a much simpler pedagogical package for java IO was recently presented in [9].
This paper describes the design and functionality of a graphical user interface (GUI) written in java Swing that is used to support instructional activities associated with teaching object-oriented database (OODB) con...
详细信息
ISBN:
(纸本)1581133294
This paper describes the design and functionality of a graphical user interface (GUI) written in java Swing that is used to support instructional activities associated with teaching object-oriented database (OODB) concepts. The GUI supports the manipulation of objects in an OODB, assuming the implementation of a specified interface for interacting with an OODB. By using the interface, students can focus on object-oriented design and programming concepts associated with OODB concepts rather than the development of a user interface. Since the GUI uses the Extensible Markup language (XML) for defining the database schema and data import/export, the use of the GUI provides the added benefit of demonstrating the manner in which XML interacts with database technology.
暂无评论