Approaches to Capturing Java Threads State
|
|
- Carol Warner
- 6 years ago
- Views:
Transcription
1 Approaches to Capturing Java Threads State Abstract This paper describes a range of approaches to capturing the state of Java threads. The capture and restoration of Java threads state have two main purposes: to make Java applications mobile and to make them persistent. We compare different approaches, give a preliminary evaluation and describe our ongoing work in this area. 1 Introduction The Java Virtual Machine (JVM) [Lindholm96] provides the abstraction of a homogeneous environment, and the Java Development Kit (JDK) [Sun99] provides many tools which help developing applications, such as object serialization that captures the state of an object and dynamic class loading that captures a Java code. However, Java does not provide any service for capturing execution (thread) state. A mechanism for the capture/restoration of Java threads state might be used in order to implement mobile applications or persistent applications. We first give a brief overview of the structure of the state of a Java thread, and then describe several approaches to providing a service for capturing/restoring a thread state: on top of the JVM, by extending the JVM and its Java interpreter, or by extending the JVM without modifying the interpreter. 2 Description of the state of a Java thread The state of a Java thread, which is internal to the JVM (not visible by Java applications), consists of: the Java stack, organized in blocks called frames and associated with the Java methods currently being executed by the thread. A frame contains a table of the local variables of the associated method, an operand stack containing the values of the partial results of the method, and some registers like the pc (program counter) which points to the Java byte code instruction currently being interpreted, the code, i.e. the set of Java classes that include a Java method currently being executed by the thread; these classes are referenced by the frames of the Java stack, and the data, including the values of the local variables and the partial results of the Java methods currently being executed by the thread. 3 First approach: On top of the JVM 3.1 Objectives and Design principles The objective of this technique is to extract the state of a thread from the code of the underlying application. This is done by pre-processing the source code of the application in order to insert checkpoints and 1
2 Java statements which back up the thread state in a backup Java object. The inserted statements are used to build a backup objet that evolves with the execution and contains information relative to the methods currently being executed by the thread, the last checkpoint in each method, and the state of the local variables of each method. At snapshot time, the application just uses the backup object. Using the backup object, the thread state is restored to the value saved at snapshot time. This restoration operation requires a partial re-execution of the application in order to rebuild the Java stack frames and to update the methods local variables. Finally, the restored execution is resumed. 3.2 Discussion This technique is used in the Wasp mobile agent platform [Fünfrocken98]. The main motivation of this approach is that it is portable on all JVMs. We have installed and evaluated the Wasp mobile agent platform. Here are the results of some preliminary measurements performed on the JDK 1.1.3, on Sparc hardware running Solaris 2.5 [Bouchenak99a]. We first noticed that the average cost of a thread state capture/restoration operation is 25 ms which is quite significant. As the capture of the state is done during the execution of the application, the capture operation, at snapshot time, is virtually free. But the restoration of a state requires a partial re-execution of the Java application and accounts for the major part of the cost. We also noticed that the use of this capture mechanism induces a factor of the order of 130 on application execution time; this is due to the execution of the statements inserted into the application source code. 4 Second approach : Extending the JVM and its Java interpreter 4.1 Objectives and Design principles The objective of this technique is to extract the state of a Java thread from the JVM by extending it. The principle of this extraction is to copy the state in a Java object (called ThreadState in this paper). The capture of a thread state consists in building a ThreadState object that reflects the current state of the thread. This is done by parsing the Java stack of the thread and saving the information relative to the thread state (section 2) in the ThreadState object. The Java stack is represented in the JVM by a native C structure. To make the capture mechanism portable on heterogeneous machines, each value on the stack is translated from the native format to a portable (Java) format. This translation requires the knowledge of the types of the values. But the local variable tables and operand stacks on the Java stack do not provide any information about the types of the values they contain: a four bytes word might represent a Java reference as well as an int value or a float value. So the problem is to determine the types of the values on the Java stack. The byte code instructions are typed and each instruction is applied to a particular type: the istore instruction stores an int value in the current local variable table, the aload instruction loads a Java reference on the current operand stack, etc. When interpreting a byte code instruction, it is possible to know the type of a value stored in 2
3 a local variable table or an operand stack. So the Java interpreter is extended in order to build a type stack parallel to the Java stack, which evolves with thread execution and contains the types of the values on the Java stack. Therefore, when capturing a thread state, the types of the values are given by the type stack and these values can be translated from a native (non typed) format to a portable format. The restoration of a Java thread state starts first with the creation of a new thread and then the initialization of its state with the information contained in a ThreadState object, relative to the code, the data and the Java stack. Finally, the execution of the new thread starts at the point at which the previous execution was interrupted. 4.2 Discussion Our implementation We have implemented a mechanism that follows this approach and performs the capture/restoration of Java threads state. The objective of our project was to add a new service to the JDK, provided through a Java class. On the one hand, this service can be combined with other Java services like object serialization or dynamic class loading in order to implement higher level services like thread migration or thread persistence; on the other hand, higher level services can be adapted to applications needs by specializing object serialization and class loading. Our mechanism was implemented within the JDK [Sun99]. The interface of the provided service is briefly described in Figure 1. The ThreadState class specifies a Java object that describes the state of a Java thread. The ThreadStateManagement class provides two methods: capture, which captures the state of the current Java thread and stores it in a ThreadState object; and restore, which creates a new thread, initializes it with a given thread state and starts it. public final class ThreadStateManagement { /* Captures the state of the current Java thread and returns it as a ThreadState object. */ public static ThreadState capture(); /* Creates a new Java thread, initializes it with the threadst state and starts its execution. */ public static Thread restore(threadstate threadst); } Figure 1: Interface of our Java thread state capture/restoration service We have done some preliminary experiments with our mechanism, like thread migration, remote thread cloning and thread persistence. A description of these experiments can be found in [Bouchenak99a] Sumatra/D Agents The JVM extension technique has also been used to implement the Sumatra [Ranganathan97] and the D Agents [Gray99] mobile agent platforms, which provide strong migration for their agents. For the Ara mobile agent platform [Peine97], which supports agents written in Tcl and C/C++, an integration of Java agents, following a similar approach, is underway. From a functional point of view, the difference between the Sumatra/D Agents platforms and our 3
4 implementation is that they provide a complete distributed system with a mobility service for their agents while we provide a new service for the JDK, a service that can be combined with other Java services and used to implement either mobility or persistence. Note that our service provides the internal state of a thread and does not manage its external state, i.e. resources like files or communication channels. So when implementing thread migration or thread persistence on top of our service, such resources should be managed according to applications needs. We also notice that the JVM extension approach requires modified JVM, which is detrimental to the portability on other Java platforms. We performed some preliminary measurements of the cost of our mechanism [Bouchenak99a]. We now compare our results with those of the Wasp platform. We first noticed that with our mechanism, the average cost of a thread state capture/restoration operation is 7 ms, which compares favorably with the 25 ms induced by Wasp s mechanism. This performance difference is due to the fact that our mechanism was integrated into the JVM while Wasp s mechanism was implemented on top of the virtual machine. We also noticed that due to the extension of the Java interpreter, the use of our capture mechanism by an application induces a factor of 10 on application execution time. This overhead is an order of magnitude less than that induced by Wasp s mechanism, but it is still large. The approach described in section 5 aims at eliminating this overhead. 5 Third approach: Extending the JVM without modifying its Java interpreter 5.1 Objectives and Design principles The above discussion has identified two sources of overhead for a Java thread capture and restoration service: the cost of the mechanism itself, which can be reduced by extending the JVM, the overhead induced on the execution of the application, which can be eliminated if the Java interpreter is not modified. The idea of the third approach is to extend the JVM without modifying the Java interpreter, thus attempting to reduce both sources of additional costs. With this approach, the capture and the restoration of the state of a thread are performed in the same way as the technique described in section 4. And by leaving the interpreter unmodified, no execution overhead is incurred. However, the problem to be solved is to recognize the types of the values on the thread s Java stack. Like in the second approach (section 4), a type stack parallel to the Java stack of a thread and containing the types of the values on the Java stack must be built. But unlike the second approach, the construction of the type stack associated with a Java stack is not performed during the execution of the application but at state capture time, which does not require the interpreter to be modified. Since the byte code instructions are typed, the principle of the solution is to guess which byte code instructions were used to push the values onto the Java stack (in the local variable tables and operand stacks). For each frame on the Java stack, the pc value points to the last instruction executed by the thread in the 4
5 corresponding method. Since the code of this method is known, parsing the instructions until the last instruction executed by the thread in the method allows the types of the local values to be recognized. While parsing the code from the first instruction of the method to the instruction pointed by the pc, three instruction kinds may be found: An instruction that recognizes a type. Such an instruction may a) push a value onto the operand stack: the corresponding type is pushed onto the type stack; or b) pop a value from the operand stack: the corresponding type is popped from the type stack; or c) read/write a value from/to a local variable: the corresponding type is assigned to the corresponding variable in the type stack. Then the next instruction is processed. A branch instruction. With such an instruction, parsing the code might not be sequential. The following instruction might be the next instruction or an instruction pointed by a branch address, depending on the address of the last instruction executed by the thread, the branch address and the address of the current branch instruction [Bouchenak99b]. There are many kinds of branch instructions: unconditional branch like the goto instruction, conditional branch with two choices like if instructions and conditional branch with many choices (many branch addresses) like the switch instruction. Other instruction. In this case, nothing is done and the next instruction is processed. 5.2 Discussion We do not know of any implementation of the above technique to capturing/restoring Java threads state. Our own implementation is in progress; it provides the interface described in Figure 1. We are currently in the process of validating a first version. Here is our prediction for the performance of this mechanism. First, this technique should not induce any overhead on applications performance because the capture of a thread state is performed only at capture time: nothing is done during the application s execution like in the first approach (statements inserted in the application code) or the second approach (Java interpreter extended). Then, with this mechanism, the cost of a capture/restoration operation should be, on the one hand, lower than the cost of the same operation with the first technique because the first technique is implemented on top of the JVM while the proposed one is implemented within the JVM. On the other hand, the cost of a capture/restoration operation should be higher than its equivalent with the second technique because the proposed technique performs an additional processing during the capture: parsing the code to recognize the types of the values. 6 Summary and future directions We have reported on several approaches to capturing/restoring Java threads state. Two observations concerning the design of a Java thread state capture/restoration service are important: The JVM extension approach reduces the additional costs induced by a capture/restoration service. With a JVM extension approach, either the Java interpreter is extended and this induces an overhead on application performance; or the Java interpreter is not modified and there is no overhead on application 5
6 performance but an additional cost on the service itself. We have experimented the implementation of the first technique proposed by the Wasp project and given a preliminary evaluation of this technique. We have implemented, evaluated and experimented the second technique. And we propose an implementation of the third technique that we are currently validating on the Java 2 SDK (formerly JDK 1.2). We have compared our implementations to their peers in the Java mobile agents area; and an experimentation and performance comparison with the D Agents platform is planned. We are also investigating the related work in order to compare our work with those achieved in the Java persistence area. Bibliography [Bouchenak99a] S. Bouchenak. Pickling threads state in the Java system. Third European Research Seminar on Advances in Distributed Systems (ERSADS 99), Madeira Island, Portugal, April [Bouchenak99b] S. Bouchenak. Java threads : thread state Capture/Restoration. [Fünfrocken98] S. Fünfrocken. Transparent Migration of Java-based Mobile Agents (Capturing and Reestablishing the State of Java Programs). Proceedings of Second International Workshop Mobile Agents 98 (MA 98), Stuttgart, Allemagne, September [Gray99] R. Gray. D Agents. Dartmouth College. [Lindholm96] T. Lindholm et F. Yellin. Java Virtual Machine Specification. Addison Wesley, [Peine97] H. Peine and T. Stolpmann. The Architecture of the Ara Platform for Mobile Agents. 1 st International Workshop on Mobile Agents (MA 97), Berlin, Germany, April [Ranganathan97] M. Ranganathan, A. Acharya, S. D. Sharma et J. Saltz. Network-aware Mobile Programs. Proceedings of the USENIX Annual Technical Conference, Anaheim, California, [Sun99] Sun Microsystems. Overview Of Java Platform Product Family, Sun Microsystems. 6
Abstract. Keywords: mobility, persistence, migration, checkpointing, recovery, thread, JVM
Making Java Applications Mobile or Persistent Sara Bouchenak 1 SIRAC Laboratory (INPG-INRIA-UJF) INRIA Rhône-Alpes, 655 av. de l Europe, 38330 Montbonnot St Martin, France. Sara.Bouchenak@inria.fr Abstract
More informationExperiences Implementing Efficient Java Thread Serialization, Mobility and Persistence
SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2000; 00:1 7 [Version: 2002/09/23 v2.2] Experiences Implementing Efficient Java Thread Serialization, Mobility and Persistence S. Bouchenak, D. Hagimont,
More informationTechniques for Implementing Efficient Java Thread Serialization
Techniques for Implementing Efficient Java Thread Serialization Sara Bouchenak Swiss Federal Inst. of Technology IC / IIF / LABOS / INN 315 CH-1015 Lausanne, Switzerland Sara.Bouchenak@epfl.ch Daniel Hagimont
More informationMigration Transparency in a Mobile Agent Based Computational Grid
Migration Transparency in a Mobile Agent Based Computational Grid RAFAEL FERNANDES LOPES and FRANCISCO JOSÉ DA SILVA E SILVA Departamento de Informática Universidade Federal do Maranhão, UFMA Av dos Portugueses,
More informationA grid middleware for distributed Java computing with MPI binding and process migration supports
Title A grid middleware for distributed Java computing with MPI binding and process migration supports Author(s) Chen, L; Wang, CL; Lau, FCM Citation Journal Of Computer Science And Technology, 2003, v.
More informationParallelism of Java Bytecode Programs and a Java ILP Processor Architecture
Australian Computer Science Communications, Vol.21, No.4, 1999, Springer-Verlag Singapore Parallelism of Java Bytecode Programs and a Java ILP Processor Architecture Kenji Watanabe and Yamin Li Graduate
More informationInteraction of JVM with x86, Sparc and MIPS
Interaction of JVM with x86, Sparc and MIPS Sasikanth Avancha, Dipanjan Chakraborty, Dhiral Gada, Tapan Kamdar {savanc1, dchakr1, dgada1, kamdar}@cs.umbc.edu Department of Computer Science and Electrical
More informationTransparent Migration of Mobile Agents Using the Java Platform Debugger Architecture
Transparent Migration of Mobile Agents Using the Java Platform Debugger Architecture Torsten Illmann, Tilman Krueger, Frank Kargl, and Michael Weber University of Ulm, Dep. of Media Computer Science, 89069
More informationCreating and Running Mobile Agents with XJ DOME
Creating and Running Mobile Agents with XJ DOME Kirill Bolshakov, Andrei Borshchev, Alex Filippoff, Yuri Karpov, and Victor Roudakov Distributed Computing & Networking Dept. St.Petersburg Technical University
More informationCompiling Techniques
Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics
More informationA Mechanism for Runtime Evolution of Objects
A Mechanism for Runtime Evolution of Objects Yasuhiro Sugiyama Department of Computer Science Nihon University Koriyama, Japan sugiyama@ce.nihon-u.ac.jp 1. Runtime Version Management of Objects for Software
More informationCSc 453 Interpreters & Interpretation
CSc 453 Interpreters & Interpretation Saumya Debray The University of Arizona Tucson Interpreters An interpreter is a program that executes another program. An interpreter implements a virtual machine,
More informationAn Introduction to Multicodes. Ben Stephenson Department of Computer Science University of Western Ontario
An Introduction to Multicodes Ben Stephenson Department of Computer Science University of Western Ontario ben@csd csd.uwo.ca Outline Java Virtual Machine Background The Current State of the Multicode Art
More informationHigh-Level Language VMs
High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs
More informationUsing implicit fitness functions for genetic algorithm-based agent scheduling
Using implicit fitness functions for genetic algorithm-based agent scheduling Sankaran Prashanth, Daniel Andresen Department of Computing and Information Sciences Kansas State University Manhattan, KS
More informationCORE SEMANTICS FOR PUBLIC ONTOLOGIES
AFRL-IF-RS-TR-2005-301 Final Technical Report August 2005 CORE SEMANTICS FOR PUBLIC ONTOLOGIES University of West Florida Sponsored by Defense Advanced Research Projects Agency DARPA Order No. K537 APPROVED
More informationParsing Scheme (+ (* 2 3) 1) * 1
Parsing Scheme + (+ (* 2 3) 1) * 1 2 3 Compiling Scheme frame + frame halt * 1 3 2 3 2 refer 1 apply * refer apply + Compiling Scheme make-return START make-test make-close make-assign make- pair? yes
More informationJVM Continuations. Lukas Stadler. Johannes Kepler University Linz, Austria
JVM Continuations Lukas Stadler Johannes Kepler University Linz, Austria Agenda Continuations Uses for continuations Common implementation techniques Our lazy approach Implementation Summary Continuations
More informationProject. there are a couple of 3 person teams. a new drop with new type checking is coming. regroup or see me or forever hold your peace
Project there are a couple of 3 person teams regroup or see me or forever hold your peace a new drop with new type checking is coming using it is optional 1 Compiler Architecture source code Now we jump
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationGenetic Programming in the Wild:
Genetic Programming in the Wild: and orlovm, sipper@cs.bgu.ac.il Department of Computer Science Ben-Gurion University, Israel GECCO 2009, July 8 12 Montréal, Québec, Canada 1 / 46 GP: Programs or Representations?
More informationData Sheet: Storage Management Veritas Storage Foundation for Oracle RAC from Symantec Manageability and availability for Oracle RAC databases
Manageability and availability for Oracle RAC databases Overview Veritas Storage Foundation for Oracle RAC from Symantec offers a proven solution to help customers implement and manage highly available
More informationSupported Operating Environment. Java Support
Supported Operating Environment Java Support 9/10/2018 Java Support Find information about supported versions of Java across all products. eservices eservices Knowledge Manager (Legacy) Knowledge Manager
More informationA Quantitative Evaluation of the Contribution of Native Code to Java Workloads
A Quantitative Evaluation of the Contribution of Native Code to Java Workloads Walter Binder University of Lugano Switzerland walter.binder@unisi.ch Jarle Hulaas, Philippe Moret EPFL Switzerland {jarle.hulaas,philippe.moret}@epfl.ch
More information02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
More informationEXECUTION CONTEXT MIGRATION WITHIN A STANDARD JAVA VIRTUAL MACHINE ENVIRONMENT
EXECUTION CONTEXT MIGRATION WITHIN A STANDARD JAVA VIRTUAL MACHINE ENVIRONMENT ANDREW DORMAN Supervisor: DR. CASPAR RYAN Honours Thesis School of Computer Science and Information Technology RMIT University
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationUntyped Memory in the Java Virtual Machine
Untyped Memory in the Java Virtual Machine Andreas Gal and Michael Franz University of California, Irvine {gal,franz}@uci.edu Christian W. Probst Technical University of Denmark probst@imm.dtu.dk July
More informationTRIREME Commander: Managing Simulink Simulations And Large Datasets In Java
TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java Andrew Newell Electronic Warfare & Radar Division, Defence Science and Technology Organisation andrew.newell@dsto.defence.gov.au
More informationJava Internals. Frank Yellin Tim Lindholm JavaSoft
Java Internals Frank Yellin Tim Lindholm JavaSoft About This Talk The JavaSoft implementation of the Java Virtual Machine (JDK 1.0.2) Some companies have tweaked our implementation Alternative implementations
More informationIntroduction to Java. Lecture 1 COP 3252 Summer May 16, 2017
Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began
More informationPortable Resource Control in Java The J-SEAL2 Approach
Portable Resource Control in Java The J-SEAL2 Approach Walter Binder w.binder@coco.co.at CoCo Software Engineering GmbH Austria Jarle Hulaas Jarle.Hulaas@cui.unige.ch Alex Villazón Alex.Villazon@cui.unige.ch
More informationPortable Smart Messages for Ubiquitous Java-enabled Devices
Portable s for Ubiquitous Java-enabled Devices Nishkam Ravi, Cristian Borcea, Porlin Kang, and Liviu Iftode Department of Computer Science, Rutgers University {nravi, borcea, kangp, iftode@cs.rutgers.edu
More informationSOFTWARE ARCHITECTURE 7. JAVA VIRTUAL MACHINE
1 SOFTWARE ARCHITECTURE 7. JAVA VIRTUAL MACHINE Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ Java Programming Language Java Introduced in 1995 Object-oriented programming
More informationUser Interface Techniques for Mobile Agents
User Interface Techniques for Mobile Agents Matthias Grimm Mohammad-Reza Tazari Matthias Finke Computer Graphics Center (ZGDV) e.v. Fraunhoferstr. 5, 64283 Darmstadt, Germany {Matthias.Grimm, Saied.Tazari,
More informationTopics Power tends to corrupt; absolute power corrupts absolutely. Computer Organization CS Data Representation
Computer Organization CS 231-01 Data Representation Dr. William H. Robinson November 12, 2004 Topics Power tends to corrupt; absolute power corrupts absolutely. Lord Acton British historian, late 19 th
More informationTypes of Virtualization. Types of virtualization
Types of Virtualization Emulation VM emulates/simulates complete hardware Unmodified guest OS for a different PC can be run Bochs, VirtualPC for Mac, QEMU Full/native Virtualization VM simulates enough
More informationRun-time Program Management. Hwansoo Han
Run-time Program Management Hwansoo Han Run-time System Run-time system refers to Set of libraries needed for correct operation of language implementation Some parts obtain all the information from subroutine
More informationCSCE 314 Programming Languages
CSCE 314 Programming Languages! JVM Dr. Hyunyoung Lee 1 Java Virtual Machine and Java The Java Virtual Machine (JVM) is a stack-based abstract computing machine. JVM was designed to support Java -- Some
More informationSerialisation based approach for processes strong mobility
ICTA 7, April 12-14, Hammamet, Tunisia Serialisation based approach for processes strong mobility Soumaya Marzouk Maher Ben Jemaa Mohamed Jmaiel ReDCAD Laboratory, National School of Engineers of Sfax
More informationQ.1 Explain Computer s Basic Elements
Q.1 Explain Computer s Basic Elements Ans. At a top level, a computer consists of processor, memory, and I/O components, with one or more modules of each type. These components are interconnected in some
More informationLecture 1: Overview of Java
Lecture 1: Overview of Java What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed for easy Web/Internet applications Widespread
More informationPer-Thread Batch Queues For Multithreaded Programs
Per-Thread Batch Queues For Multithreaded Programs Tri Nguyen, M.S. Robert Chun, Ph.D. Computer Science Department San Jose State University San Jose, California 95192 Abstract Sharing resources leads
More informationSpecial Topics: Programming Languages
Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (
More informationINDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line
A SIMPLE JAVA PROGRAM Class Declaration The Main Line INDEX The Line Contains Three Keywords The Output Line COMMENTS Single Line Comment Multiline Comment Documentation Comment TYPE CASTING Implicit Type
More informationAdJava Automatic Distribution of Java Applications
AdJava Automatic Distribution of Java Applications Mohammad M. Fuad and Michael J. Oudshoorn Department of Computer Science University of Adelaide Adelaide 5005, South Australia {Fuad, Michael}@cs.adelaide.edu.au
More informationMetaVM: A Transparent Distributed Object System Supported by Runtime Compiler
MetaVM: A Transparent Distributed Object System Supported by Runtime Compiler Kazuyuki Shudo Yoichi Muraoka School of Science and Engineering Waseda University Okubo 3-4-1, Shinjuku-ku, Tokyo 169-8555,
More informationJava Virtual Machine
Evaluation of Java Thread Performance on Two Dierent Multithreaded Kernels Yan Gu B. S. Lee Wentong Cai School of Applied Science Nanyang Technological University Singapore 639798 guyan@cais.ntu.edu.sg,
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 4, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationAdministration CS 412/413. Why build a compiler? Compilers. Architectural independence. Source-to-source translator
CS 412/413 Introduction to Compilers and Translators Andrew Myers Cornell University Administration Design reports due Friday Current demo schedule on web page send mail with preferred times if you haven
More informationLecture 7: February 10
CMPSCI 677 Operating Systems Spring 2016 Lecture 7: February 10 Lecturer: Prashant Shenoy Scribe: Tao Sun 7.1 Server Design Issues 7.1.1 Server Design There are two types of server design choices: Iterative
More informationA Type System for Object Initialization In the Java TM Bytecode Language
Electronic Notes in Theoretical Computer Science 10 (1998) URL: http://www.elsevier.nl/locate/entcs/volume10.html 7 pages A Type System for Object Initialization In the Java TM Bytecode Language Stephen
More informationAgenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008
Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread
More informationMonitoring System for Distributed Java Applications
Monitoring System for Distributed Java Applications W lodzimierz Funika 1, Marian Bubak 1,2, and Marcin Smȩtek 1 1 Institute of Computer Science, AGH, al. Mickiewicza 30, 30-059 Kraków, Poland 2 Academic
More informationOperating System Services
CSE325 Principles of Operating Systems Operating System Services David Duggan dduggan@sandia.gov January 22, 2013 Reading Assignment 3 Chapter 3, due 01/29 1/23/13 CSE325 - OS Services 2 What Categories
More informationMechanized Operational Semantics
Mechanized Operational Semantics J Strother Moore Department of Computer Sciences University of Texas at Austin Marktoberdorf Summer School 2008 (Lecture 2: An Operational Semantics) 1 M1 An M1 state consists
More informationFinal Exam. 12 December 2018, 120 minutes, 26 questions, 100 points
Name: CS520 Final Exam 12 December 2018, 120 minutes, 26 questions, 100 points The exam is closed book and notes. Please keep all electronic devices turned off and out of reach. Note that a question may
More informationJAM 16: The Instruction Set & Sample Programs
JAM 16: The Instruction Set & Sample Programs Copyright Peter M. Kogge CSE Dept. Univ. of Notre Dame Jan. 8, 1999, modified 4/4/01 Revised to 16 bits: Dec. 5, 2007 JAM 16: 1 Java Terms Java: A simple,
More informationJava On Steroids: Sun s High-Performance Java Implementation. History
Java On Steroids: Sun s High-Performance Java Implementation Urs Hölzle Lars Bak Steffen Grarup Robert Griesemer Srdjan Mitrovic Sun Microsystems History First Java implementations: interpreters compact
More informationOutline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview Use Cases Architecture Features Copyright Jaluna SA. All rights reserved
C5 Micro-Kernel: Real-Time Services for Embedded and Linux Systems Copyright 2003- Jaluna SA. All rights reserved. JL/TR-03-31.0.1 1 Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview
More informationJava and C II. CSE 351 Spring Instructor: Ruth Anderson
Java and C II CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis Administrivia Lab 5 Due TONIGHT! Fri 6/2
More informationFor your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to
For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...xi
More informationCS2110 Fall 2011 Lecture 25. Under the Hood: The Java Virtual Machine, Part II
CS2110 Fall 2011 Lecture 25 Under the Hood: The Java Virtual Machine, Part II 1 Java program last time Java compiler Java bytecode (.class files) Compile for platform with JIT Interpret with JVM run native
More informationCS420: Operating Systems
Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing
More informationDesigning secure agents with 0.0. technologies for user's mobility
9 Designing secure agents with 0.0. technologies for user's mobility David Carlier RD2P - Recherche & Diveloppement Dossier Portable CHR Calmette, 59037 Lille Cidex - France tel: +33 2044 6046, fax: +332044
More informationOperating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester
Operating System: Chap2 OS Structure National Tsing-Hua University 2016, Fall Semester Outline OS Services OS-Application Interface OS Structure Chapter2 OS-Structure Operating System Concepts NTHU LSA
More informationProblem with Scanning an Infix Expression
Operator Notation Consider the infix expression (X Y) + (W U), with parentheses added to make the evaluation order perfectly obvious. This is an arithmetic expression written in standard form, called infix
More informationVeritas InfoScale Enterprise for Oracle Real Application Clusters (RAC)
Veritas InfoScale Enterprise for Oracle Real Application Clusters (RAC) Manageability and availability for Oracle RAC databases Overview Veritas InfoScale Enterprise for Oracle Real Application Clusters
More informationContext Threading: A flexible and efficient dispatch technique for virtual machine interpreters
: A flexible and efficient dispatch technique for virtual machine interpreters Marc Berndl Benjamin Vitale Mathew Zaleski Angela Demke Brown Research supported by IBM CAS, NSERC, CITO 1 Interpreter performance
More informationVeritas Storage Foundation for Oracle RAC from Symantec
Veritas Storage Foundation for Oracle RAC from Symantec Manageability, performance and availability for Oracle RAC databases Data Sheet: Storage Management Overviewview offers a proven solution to help
More informationNetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2004 Sun Microsystems, Inc. All rights reserved. Debugging Java Applications Table of Contents Starting a Debugging Session...2 Debugger Windows...3 Attaching the Debugger
More informationProblem with Scanning an Infix Expression
Operator Notation Consider the infix expression (X Y) + (W U), with parentheses added to make the evaluation order perfectly obvious. This is an arithmetic expression written in standard form, called infix
More informationBluetooth Scatternet Application. Sun Code for Freedom
Bluetooth Scatternet Application Sun Code for Freedom Submitted for Code For Freedom Contest 2009 By Ravi D Suvarna Ananth V Sandeep Jain Index Topic Page No. 1. Introduction ---------------------------------------------
More informationOperating- System Structures
Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What
More informationImplementing Probes for J2EE Cluster Monitoring
Implementing s for J2EE Cluster Monitoring Emmanuel Cecchet, Hazem Elmeleegy, Oussama Layaida, Vivien Quéma LSR-IMAG Laboratory (CNRS, INPG, UJF) - INRIA INRIA Rhône-Alpes, 655 av. de l Europe, 38334 Saint-Ismier
More informationDistributed Systems Principles and Paradigms
Distributed Systems Principles and Paradigms Chapter 03 (version February 11, 2008) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.
More informationChapter 5. A Closer Look at Instruction Set Architectures
Chapter 5 A Closer Look at Instruction Set Architectures Chapter 5 Objectives Understand the factors involved in instruction set architecture design. Gain familiarity with memory addressing modes. Understand
More informationTopics. Structured Computer Organization. Assembly language. IJVM instruction set. Mic-1 simulator programming
Topics Assembly language IJVM instruction set Mic-1 simulator programming http://www.ontko.com/mic1/ Available in 2 nd floor PC lab S/W found in directory C:\mic1 1 Structured Computer Organization 2 Block
More informationChapter 5. A Closer Look at Instruction Set Architectures. Chapter 5 Objectives. 5.1 Introduction. 5.2 Instruction Formats
Chapter 5 Objectives Chapter 5 A Closer Look at Instruction Set Architectures Understand the factors involved in instruction set architecture design. Gain familiarity with memory addressing modes. Understand
More informationFinal Exam. 11 May 2018, 120 minutes, 26 questions, 100 points
Name: CS520 Final Exam 11 May 2018, 120 minutes, 26 questions, 100 points The exam is closed book and notes. Please keep all electronic devices turned off and out of reach. Note that a question may require
More informationOutline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform
Outline Introduction to Java Introduction Java 2 Platform CS 3300 Object-Oriented Concepts Introduction to Java 2 What Is Java? History Characteristics of Java History James Gosling at Sun Microsystems
More informationPerformance Analysis of Java Communications with and without CORBA
Performance Analysis of Java Communications with and without CORBA Victor Giddings victor.giddings@ois.com 3 Objective Interface Systems, Inc. Purpose Analyze performance of various Java-based distribution
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 27 Virtualization Slides based on Various sources 1 1 Virtualization Why we need virtualization? The concepts and
More informationAn Approach to Heterogeneous Process State Capture / Recovery to Achieve Minimum Performance Overhead During Normal Execution
An Approach to Heterogeneous Process State Capture / Recovery to Achieve Minimum Performance Overhead During Normal Execution Prashanth P. Bungale +, Swaroop Sridhar + Department of Computer Science The
More informationDistributed Systems Operation System Support
Hajussüsteemid MTAT.08.009 Distributed Systems Operation System Support slides are adopted from: lecture: Operating System(OS) support (years 2016, 2017) book: Distributed Systems: Concepts and Design,
More informationChapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.
Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management
More informationPerformance Impact of Multithreaded Java Server Applications
Performance Impact of Multithreaded Java Server Applications Yue Luo, Lizy K. John Laboratory of Computer Architecture ECE Department University of Texas at Austin 1/2/01 1 Outline Motivation VolanoMark
More informationToday. Instance Method Dispatch. Instance Method Dispatch. Instance Method Dispatch 11/29/11. today. last time
CS2110 Fall 2011 Lecture 25 Java program last time Java compiler Java bytecode (.class files) Compile for platform with JIT Interpret with JVM Under the Hood: The Java Virtual Machine, Part II 1 run native
More informationVIProf: A Vertically Integrated Full-System Profiler
VIProf: A Vertically Integrated Full-System Profiler NGS Workshop, April 2007 Hussam Mousa Chandra Krintz Lamia Youseff Rich Wolski RACELab Research Dynamic software adaptation As program behavior or resource
More informationThe von Neumann Architecture. IT 3123 Hardware and Software Concepts. The Instruction Cycle. Registers. LMC Executes a Store.
IT 3123 Hardware and Software Concepts February 11 and Memory II Copyright 2005 by Bob Brown The von Neumann Architecture 00 01 02 03 PC IR Control Unit Command Memory ALU 96 97 98 99 Notice: This session
More informationCHAPTER 5 A Closer Look at Instruction Set Architectures
CHAPTER 5 A Closer Look at Instruction Set Architectures 5.1 Introduction 293 5.2 Instruction Formats 293 5.2.1 Design Decisions for Instruction Sets 294 5.2.2 Little versus Big Endian 295 5.2.3 Internal
More informationMemory Space Representation for Heterogeneous Network Process Migration
Memory Space Representation for Heterogeneous Network Process Migration Kasidit Chanchio Xian-He Sun Department of Computer Science Louisiana State University Baton Rouge, LA 70803-4020 sun@bit.csc.lsu.edu
More informationKnowledge- Based System CORBA ORB
The Role of Network Trac Statistics in Devising Object Migration Policies Ivan Marsic and Kanth S.L. Jonnalagadda CAIP Center, Rutgers University Piscataway, NJ 08855{1390 fmarsic,kanthg@caip.rutgers.edu
More informationZing Vision. Answering your toughest production Java performance questions
Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A
More information2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
More informationJiST: Java in Simulation Time
JiST: Java in Simulation Time Transparent Parallel and Optimistic Execution of Discrete Event Simulations (PDES) of Mobile Ad hoc Networks (MANETs) Rimon Barr barr@cs.cornell.edu Wireless Network Lab Cornell
More informationOn the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine
On the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine Hitoshi Oi The University of Aizu June 16, 2005 Languages, Compilers, and Tools for Embedded Systems (LCTES
More information231 Spring Final Exam Name:
231 Spring 2010 -- Final Exam Name: No calculators. Matching. Indicate the letter of the best description. (1 pt. each) 1. address 2. object code 3. condition code 4. byte 5. ASCII 6. local variable 7..global
More informationCompiler Theory. (Semantic Analysis and Run-Time Environments)
Compiler Theory (Semantic Analysis and Run-Time Environments) 005 Semantic Actions A compiler must do more than recognise whether a sentence belongs to the language of a grammar it must do something useful
More informationUsing Tcl Mobile Agents for Monitoring Distributed Computations
Using Tcl Mobile Agents for Monitoring Distributed Computations Dilyana Staneva, Emil Atanasov Abstract: Agents, integrating code and data mobility, can be used as building blocks for structuring distributed
More information