| Bill Venners. Inside The Java Virtual Machine. McGraw-Hill Osborne Media, 2000. |
....Synchronization Parallel applications use synchronization mechanisms to keep shared data consistent and processes coordinated. One of the strengths of Java is that it supports multithreaded programming at the language level. Java provides monitors to fully support thread synchronization [43]. The Java Virtual Machine associates a monitor with each object and provides two opcodes (monitorenter and monitorexit) to access the monitor lock. In Java, it is convenient to implement complex thread level synchronization semantics based on monitors because in shared memory systems, the heap ....
....model and we have many patterns whose code utilizes this model. Unfortunately, the Java RMI distributedcomputing model has no direct support for the Monitor model. However, based on our current investment in this model, we decided to implement the Java Monitor in a distributedmemory environment [43][9] This approach has four advantages: 1. It allowed us to use MetaCO 2 P 3 S to edit the SM versions of existing patterns to create DM versions quickly. 2. Parallel Java programmers are familiar with the Monitor programming model, so it is easier for them to write DM pattern implementations ....
B. Venners. Inside the Java 2 Virtual Machine. McGraw Hill, 2 nd edition, 1999.
....a static method call, a special task manager is pushed to release the class lock when the method returns. The JVM specification gives implementations some freedom in the timing of type loading and linking, but requires that each class or interface must be initialized on its first active use [32]. Our implementation is fully lazy in that loading and linking are postponed until the first active use of a type. To achieve this, preparation creates the references in the run time constant pool as by needs. When the by need is requested by, say, a method invocation, this triggers method lookup, ....
B. Venners. Inside the Java Virtual Machine. McGraw-Hill, 2nd edition, Jan. 2000.
....In the next sections we will analyze the structure of the JVM and the bytecode. We will limit our analysis to the facts that are relevant to our case. More information can be obtained from the original specifications [LY99] and from additional books that can provide other details on the JVM [MD97, Ven98] and the security architecture [MF99, Gon99] 1. The JVM The basic principles of the JVM are to provide a machine independent running environment to a program that protects the host machine against any threat from the program. 1. THE JVM 57 The chosen approach is the sandbox. The program can ....
B. Venners. Inside the Java Virtual Machine. Java Masters. Mc Graw Hill, 1998. 56
.... used [1] Hence, the native JVM delegates the class loading process to the so called system class loader, which locates the byte code using an environment variable CLASSPATH and the fully qualified class name (FQCN) of the required classes (composed of the package name and the class name itself) [2,3]. The system class loader is able to load classes deployed into directories of the local file system or stored in Java Archives. In addition, there may be other class loaders, which are user defined and are free in the way the byte code is located and loaded [4] Obviously, this kind of ....
....class name. As a result, it is not possible to direct which classes should actually be used when composing a certain application. Instead, the JVM requests the needed classes using their class name and package, while it is assumed that the actually used class loader finds the appropriate byte code [2]. However, this is not always feasible, e.g. when an application is composed of classes from various Java Archives which can not be modified but may contain several classes having the same class name. In this case, the ordinary class loader will always select the classes in the sequence as they ....
[Article contains additional citation context not shown here]
Venners, B. Inside The Java 2 Virtual Machine. McGraw-Hill. 1999.
....has made it very popular with the software community. Initially, its success was related to the growth of the Internet but now Java technology is expanding in wider areas, such as real time embedded systems and day to day computing. 1. 1 The Java Virtual Machine Java s architecture arises from [20] four distinct but interrelated technologies: The Java programming language . The Java class file format . The Java API . The Java virtual machine When a Java program is run, all these technologies come into play. Source files written in Java are compiled into class files and run on a ....
Bill Venners, Inside the Java 2 Virtual Machine, McGraw Hill, 2000.
....loaders: a bootstrap class loader and user defined class loaders. The 3 bootstrap loader loads classes of the Java API and user defined classes in some default way, whereas the user defined class loaders load classes in custom ways over the course of program execution. The garbage collector [17] determines whether objects on the heap are referenced by the Java application, and makes available the heap space occupied by objects that are not referenced. In addition to freeing unreferenced objects, the garbage collector also combats heap fragmentation. We repeat our experiment with ....
B.Venners, Inside the Java 2 Virtual Machine, McGraw Hill, 2000.
.... types; the virtual machine needs to resolve a method reference every time it encounters an interface method call at runtime by searching through an interface method table for the method reference since the organisation of the table may vary from class to class that implements the same interface [Venners1999]. Along the same line, monomorphic method invocations are greatly recommended wherever possible, in place of polymorphic invocations. Code optimisation tools may be used to assist this task. Rule 3. Do not use or override java.lang.Thread to create (non real time) threads Threads must not be ....
B. Venners, Inside the Java Virtual Machine, 2 Edition, McGraw Hill, 1999.
....This dissertation shows that integration of dynamic and static information aids the performance of reverse engineering tasks. An experimental environment called Shimba has been built to support reverse engineering of Java software systems. The static information is extracted from Java byte code [118]. It can be viewed and analyzed with the Rigi reverse engineering tool [74] The dynamic event trace information is generated automatically as a result of running the target system under a customized Java Development Kit (JDK) debugger. Information about the dynamic control flow of selected ....
....read from Java class files. The implementation of the extractor, called JExtractor, was written in Java by the author. It uses some of the public classes of the sun.tools.java package of jdk1.2. The static information is extracted following 121 the descriptions of the contents of Java class files [118]. The extracted information includes the following Java software artifacts: 1. classes, 2. interfaces, 3. methods, 4. constructors, 5. variables, and 6. static initialization blocks. Some attribute values are attached to the above software artifacts during the static analysis of the ....
Venners B., Inside the Java Virtual Machine, McGraw-Hill, 1998.
....discovery mechanisms. 2.3.1 Aleph The Aleph Distributed Object System [43, 84 86] supports mutually exclusive referencing for distributed and mobile shared objects within a distributed system. The distributed system consists of multiple Processing Elements (PEs) which are Java Virtual Machines [180]. Each PE within a distribution group knows about each other PE in the group, with information replicated and updated within the group upon PE initialisation. Objects are relocated in response to explicit client requests for exclusive access. Names that reference distributed shared objects are ....
Bill Venners. Inside the Java Virtual Machine. Computing McGraw-Hill, 1998.
....discovery mechanisms. 2.4.1 Aleph The Aleph Distributed Object System [43,84 86] supports mutually exclusive referencing for distributed and mobile shared objects within a distributed system. The distributed system consists of multiple Processing Elements (PEs) which are Java Virtual Machines [180]. Each PE within a distribution group knows about each other PE in the group, with information replicated and updated within the group upon PE initialisation. Objects are relocated in response to explicit client requests for exclusive access. Names that reference distributed shared objects are ....
Bill Venners. Inside the Java Virtual Machine. Computing McGraw-Hill, 1998.
....with built in support for concurrency and automatic garbage collection. Java portability, and to some extent, its popularity, comes about primarily because of its bytecode based design. Java source files are compiled into bytecode in a specific class file format that can be executed on any JVM [Ven99], LY99] Furthermore, the bytecode file format and the JVM are largely independent of the language (even though they were obviously designed with the Java language in mind) Thus a compiler that produces bytecode is guaranteed a runtime environment that is platform independent and widely 5 ....
Bill Venners, Inside the Java Virtual Machine, 2 nd edition, McGraw-Hill, NY 1999.
....At runtime, the JVM implementation and the execution environment affect the instruction execution performance. This is manifested directly in the wall clock time needed to perform a certain task and indirectly in the different overheads associated with executing the job (e.g. memory management) [30]. The goal of this research is to conduct a comprehensive behavioral analysis of the Java virtual machine instruction set architecture [31,32] Observing the Java instruction set architecture while it is executing Java benchmarks will reveal a lot about the details of the Java environment. This ....
....Section 3. Section 4 is concerned with the different instruction encoding aspects. 2. Access patterns for data types Here we study the access patterns for different data types. Data types that are heavily used need more attention in case of designing certain hardware architecture to support Java [30]. This information will prove useful when decisions are made about storage allocation. 2.1. Single type operations Figure 1. Distribution of data accesses by type. Figure 1 shows the distribution of data accesses by type. Generic refers to operations that have no data type associated with ....
[Article contains additional citation context not shown here]
B. Venners, Inside the Java Virtual Machine, McGrawHill, NY, 1998.
....constraints, search engines, and objectoriented (with higher order messages) will not be covered in this paper. 2 1. 2 Java Java is both an object oriented programming language and a virtual machine (JVM) acting as runtime environment for bytecode conforming to the Java class file format [Ven99], LY99] Advantages of Java over more conventional languages such as C and C , for example portability, built in concurrency and automatic garbage collection, has made it widely popular. It is through considering the high availability and interesting concepts of the Java runtime environment that ....
Bill Venners, Inside the Java Virtual Machine, 2 nd edition, McGraw-Hill, NY 1999.
....system or the programming language. Java [11, 14] has been successful so far, but the language design is not the major reason for its acceptance. It is popular because of the close resemblance to C , crossplatform virtual machine, abstract windows toolkit and the class delivery mechanism [21, 22, 50]. We claim that for an object oriented tool to be practically useful, it is not necessary to create new languages or operating systems. Novel ways of utilizing existing technologies will be appreciated far more by the real world users. Thanks to the speedy progress in RAD tools, it is becoming ....
....simple task to extend the Java ClassLoader class to build the RADIUS Application Loader. After some investigation and experimentation, we realized that the design problem is in fact quite subtle. To explain the difficulties, we first identify the characteristics of the Java Class Loader mechanism [21, 22, 50] that affected our design of the Application Loader: A. If a class file exists in the local CLASSPATH, the Java Virtual Machine treats it as a system class and does not use a ClassLoader object to load it. B. If class X uses class Y and class Y has not been loaded, the Java Virtual Machine ....
Venners, Bill. Inside the Java Virtual Machine. McGraw-Hill, New York, New York, 1998.
....cost has similar advantage to that of the schema versioning[22] 19 6.3 Implementation Java Like LOD , Java supports the independent hierarchies of interfaces from those of implementations. However, ODMG Java binding[8] does not take advantage of the semantics in database access. In Java[24], an object is represented by a pointer to a handle pool entry which has two pointers again : a pointer to instance data and a pointer to class data. Although this is similar to the object layout of LOD , Java uses naive pointers to the object. On the other hands, pointers to database objects ....
Bill Venners. Inside of Java Virtual Machine(Java masters Series) . McGrowHill., 1997. 24
....There are a number of functional programming languages such as Concurrent ML and Concurrent Haskell that support multi processing. This work is novel because it is based on a simple agent calculus with a precise semantics and is implemented in EBG and therefore supports the features of the Java VM [Ven98]. 9 ....
Venners B. (1998) Inside the Java Virtual Machine. McGraw-Hill.
....both FP and Java. This paper describes the design and implementation of agents in EBG that provides an interface to the underlying multi processing facilities of Java. 1 Introduction EBG [Cla99a] is a higher order lazy functional programming language that compiles to the Java Virtual Machine [Ven98]. EBG aims to provide all of the advantages of FP including pattern matching, first class functions and automatic type checking [Fie89] in addition to the advantages of Java [Arn98] including portability, multi processing, networking and graphical user interfaces. This paper describes the design ....
Venners B. (1998): Inside the Java Virtual Machine. McGraw-Hill.
....etc. will certainly grow as more computing power and communications capability can be included. This is con rmed by the existence of operating systems and virtual machines for such devices; for example, Windows CE [11] for a number of PDAs currently in the market, and Java for PalmPilot VII [12]. In addition, the foreseen increase of bandwidth in wireless communication makes the connection of these infoappliances to the Internet a reality [10] We envisage a general scenario in which a user will want to access data using a PC in his oce, using a laptop while in the airport or in the ....
Bill Venners. Inside the Java Virtual Machine. Java Masters Series. McGraw-Hill, 1997. ISBN 0079132480.
....value in the table. To allow new values to make it to the top, the bottom half of the table is periodically cleared. 4. Experimental Results 4.1. Method level Value Locality Java programs are heavily object oriented with predominantly dynamic binding for easy class reuse and portability [5]. This design has the potential for generating a lot of small method calls, and previous work has shown that this is the case [13] This section 3 explores value locality present in method call argument and return values. Method Arguments Figure 1 shows the average number of total, repeated, and ....
....level. This section deepens the investigation by analyzing value locality in the execution of individual Java bytecode instructions. Unlike typical C compiled programs for RISC machines, Java programs are compiled into bytecode instructions for a stack based Java Virtual Machine architecture [5]. The bytecodes constitute the executable content of methods. This section explores the value locality of values read from (source) and written to (destination) the stack by the bytecode instructions. For each benchmark, only the top 4000 most frequent bytecode instructions were considered for ....
B. Venners, Inside the Java 2 Virtual Machine, Second Edition. McGraw-Hill, 1999.
....Vector 4c hMagic vector 4cij (3) Here mag01[x] x MATRIX A for x=0,1 public static final int mag01[ 0x0, 0x9908b0df ; August 15, 1998 MT.nw 5 4.4 Signed Arithmetic Since Java does signed integer arithmetic, some other masks are needed. For example, see the excellent reference [3]. 5a hOther masks since Java does signed integer arithmetic 5aij (3) Mask for zeroing the leading 11 bits public static final int maskLeadingElevenBits=0x1FFFFF; Mask for zeroing the leading 18 bits public static final int maskLeadingEighteenBits=0x3FFF; 4.5 The State 5b hState ....
Bill Venners. Inside the Java Virtual Machine. McGraw-Hill, 1998.
....a class and to the complexity of the logical structure of all methods. The higher a class WMC measure is, the more difficult it is to understand and maintain it. 3. Collecting and visualizing information The software artifacts and their dependencies are directly extracted from Java class files [24] The extracted information includes the following components: classes, interfaces, methods, constructors, variables, and static initialization blocks. The extracted dependencies among these artifacts include extension relationships (i.e. a class extends another class) implementation ....
....this is not possible for all the metrics. For example, the CC metric is computed using the control flow information that is not usually included in Rigi graphs but can be generated by the byte code extractor. The Java compiler translates conditional statements to specific binary instructions [24] The control flow can be determined by examining the usage of such instructions. Shimba also supports dynamic reverse engineering. During the run time analysis, weight values for method calls, constructor invocations, and thrown exceptions can be added to the static Rigi graphs. Again, the ....
B. Venners. Inside the Java Virtual Machine. McGraw-Hill, 1998.
....so on. The implementation of the extractor is written in Java. It uses some of the public classes of sun.tools.java package of Figure 1. A solution for reverse engineering Java software. jdk1.2. The static information is extracted following the descriptions of the contents of Java class files [17] In Rigi all the software artifacts are shown as nodes, and relationships as directed edges between them. The type of a node or an edge is identified by a specific color. Extracting the static information of FUJABA software using the byte code extractor resulted in a static dependency graph ....
B. Venners. Inside the Java Virtual Machine. McGraw-Hill, 1998.
....different hosts and move across a heterogeneous network, such as the Internet. The Java architecture has a security model built in. The security model is designed into the Java virtual machine specification. Security is important for mobile agent systems to prevent mobile agents attacking the host. [9] The concepts of Java applets and mobile agents are similar. The name for IBM s mobile agent library: Aglets is play on words. Applets, like mobile agents, migrate across a network for execution at a foreign host. However an applet can only migrate from a server to a browser. Applets also differ ....
B. Venners. Inside the Java Virtual Machine. McGraw-Hill, 1998.
....are the standard bytecode instruction format and the standard Java API. Java s compact class file representation is also ideal for transferring code across networks, and the runtime resolution provided by the Java Virtual Machine allows independent modules distributed across a network to interact [1,2]. The same features that uniquely qualify Java bytecode for this new software distribution paradigm have also caused Java to exhibit unique workload characteristics. Consequently, a successful Java runtime system should take into consideration the characteristics that set Java apart from other ....
Venners, B., Inside the Java Virtual Machine, McGraw Hill, New York, NY, 1998.
....singleton or empty set) and ref maps each node to the set of variables referenced at node n. ffl A thread map maps a CFG node n to a thread identifier to which n belongs. For example, prod put:1] producer. 2. 2 Semantics Synchronization in Java is achieved using wait and notify monitors [22]. Figure 2 illustrates the use of monitors to achieve proper synchronization in a simple producer consumer system. Note that the example omits the actual manipulation of a shared buffer and instead gives only the code that properly controls buffer access. The implicit lock that would be associated ....
Bill Venners. Inside the Java Virtual Machine. McGraw-Hill, 1998.
No context found.
Bill Venners. Inside The Java Virtual Machine. McGraw-Hill Osborne Media, 2000.
No context found.
B. Venners. Inside the Java Virtual Machine. McGraw-Hill, 2nd edition, 2000.
No context found.
Bill Veners. Inside the Java 2 Virtual Machine. Mac Graw-Hill, 1998.
No context found.
B. Venners. Inside the Java 2 Virtual Machine. McGraw Hill, 2 nd edition, 1999.
No context found.
Bill Veners. Inside the Java 2 Virtual Machine. Mac Graw-Hill, 1998.
No context found.
B. Venners. Inside The Java 2 Virtual Machine. McGraw-Hill, 1999.
No context found.
Bill Venners, "Inside the Java Virtual Machine," McGraw-Hill, 1998.
No context found.
Bill Venners. Inside the Java Virtual Machine. Java Masters Series. McGraw-Hill, 1997. ISBN 0079132480.
No context found.
B. Venners. Inside the Java Virtual Machine. Artima Software, Inc., 2003.
No context found.
Bill Venners. Inside the Java Virtual Machine. Java Masters Series. McGraw-Hill, 1997. ISBN 0079132480.
No context found.
Venners, B., Inside the Java Virtual Machine. New York, NY: McGraw-Hill, 1998. 116
No context found.
Venners, Bill, Inside the JAVA2 Virtual Machine, McGrawHill, New York, 1999. 74
No context found.
Bill Venner. Inside the Java Virtual Machine. The Java Masters Series. Computing McGraw-Hill, February 1998. Chapter 9: Garbage Collection. 84
No context found.
B.Venners, Inside the Java 2 Virtual Machine, McGraw Hill, 2000.
No context found.
Bill Venners, Inside the Java Virtual Machine, McGraw-Hill, 1998.
No context found.
Venners B. (1998) Inside the Java Virtual Machine. McGraw-Hill.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC