Seamless Thread and Execution Context Migration within a Java Virtual Machine Environment
|
|
|
- Colin Lester
- 10 years ago
- Views:
Transcription
1 Seamless Thread and Execution Context Migration within a Java Virtual Machine Environment Student: Andrew Dorman s @student.rmit.edu.au Supervisor: Dr. Caspar Ryan [email protected] ABSTRACT This paper describes a mechanism for preserving the execution state of a Java application during the migration process between two hosts. By using the Java Platform Debugging Architecture (JPDA), this project aims to seamlessly migrate both the object and its point of execution to a destination host, without session interruption. Keywords Java, code mobility, state migration, thread migration, distributed Java, JPDA. 1. INTRODUCTION With the introduction of cheap and powerful computers, there has been a shift away from centralised mainframes to Networks of Workstations (NOW) [2]. These workstations are often under utilised, performing light tasks and leaving the processor idle for substantial periods [13]. Mobile objects provide a means to better utilise resources by moving applications to lightly loaded or idle hosts. Java s ability to operate across heterogeneous environments has lead to it becoming a popular choice for mobile applications. While it provides support for object mobility through serialization, dynamic class loading and Remote Method Invocation (RMI), Java does not provide a framework for the migration of execution state. Current implementations of the Java Virtual Machine (JVM) do not allow the serialization of threads [5], leaving programmers to implement their own software solutions for state preservation. This project intends to investigate strong migration 1, using the Java Platform Debugging Architecture (JPDA) to capture the execution state of a thread, migrate it to a remote host, and resume processing at the point it left off. This 1 Strong Migration transfers the mobile object and its execution state See Background for a full description. system will allow for mobile objects to keep session state during host transfers. This paper is organised as follows. Section Two presents background material concerning mobile objects, while Section Three provides the rationale behind our project. Details of other systems implementing strong migration in Java are outlined in Section Four. Sections Five and Six explain our project goals and methodology respectively. 2. BACKGROUND With the increasing size and complexity of networks there has been much research into mobile objects. Their ability to suspend execution, migrate to a new host and resume processing provides a flexible approach to distributed computing. Object mobility falls into two categories: that of Weak Mobility and Strong Mobility [6]. Weak mobility transfers the object and its data to the target host, while strong mobility additionally transfers the execution state. This project is only concerned with strong mobility. Objects migrated using weak mobility must restart their execution afresh on the destination host, as there is no way to determine their point of execution before they were transferred. This approach may be suitable for maintaining fault tolerant systems, where it is acceptable for processes to restart and continue, but is not desirable for session dependant applications where execution state is important. In order to implement strong mobility we must have access to the object to be migrated, the object s state, the method call stack and the program counter [7]. Java is an interpreted language, wih programs executed in the Java Virtual Machine (JVM). The JVM emulates a host environment, acting as a layer of abstraction between the application and the platform. Stack frames and program counters for threads currently running are maintained in the JVM, which runs as one process on the host operating system. For this reason, it is not possible to obtain state information of a Java thread by acessing operating system processes, for this data is within the JVM. Java implements many key features to support code mobility in its Application Programming Interface, such as Remote Method Invocation for the transportation of objects between hosts, and serialization to save the current object
2 state. While serialization will persist object data it does not capture the point of execution, hence threads are not able to be serialized [11]. Java disallows dynamic inspection of the stack, preventing retrieval of the program counter, and does not currently support a mechanism for storing the execution point of a program. Debuggee Com. Channel JVM Back End JVMDI JDWP There exists implementations of techniques for strong migration in Java, which have sought to overcome the platform s short comings. Some of these include: Debugger Front End User Interface JDI Using a pre-processor to insert variables to checkpoint program execution. These variables are then evaluated on the target host to reconstruct execution [5]. Throwing Java Exceptions at migration time to capture execution state. The Exception Object is then transferred to the target host along with the object to reconstruct execution context [12][7]. Modifying the Java Virtual Machine to support the migration of execution context [3][4][1]. While these mechanism achieve strong migration, they suffer greatly in terms of performance and or portability. The Java Platform Debugging Architecture (JPDA) [9] is a request-event 2 based framework for the development of debugging applications. Debuggers are able to hook into programs running in the JPDA by requesting notification of events fired by the framework, eg. variable modification, exception, stepping, method entry and method exit events. Handler methods are activated in response to these events, allowing developers to implement the debugger s functionality and further query the running program. Once an event has been fired and caught by a handler, the JPDA permits the debugger to access information not normally available to Java applications. In particular the ability to obtain stack frames, variable values and the point at which execution was suspended are of particular interest to this project. Figure 1 shows how the JPDA is logically divided into a Back End and a Front End, connected via a Communication Channel. These layers are implemented using the Java Virtual Machine Debug Interface (JVMDI), the Java Debug Interface (JDI) and the Java Debug Wire Protocol (JDWP) respectively. The program being debugged is termed a Debuggee, while the application performing the debugging is the Debugger. The JVMDI defines the methods and functionality a Virtual Machine provides in JPDA. It contains a native code implementation of these methods, which developers with specialised debugging needs may choose to call directly from other native code applications. The JDWP specifies the format for communications between the debuggee (back end) and the debugger (front end). It 2 For more information on Java s event framework see [8]. Figure 1: JPDA Overview [9] does not specify the exchange mechanism, only the format of the data. The JDI contains high level interfaces, written in Java, that provide developers with convenient methods for debugger creation. The JDI utilises the lower layers of JPDA (JDWP and JVMDI), in order to obtain the required data and event notification. The division of the JPDA makes remote debugging of applications possible, as the front and back ends may be on separate hosts. In addition the debugger and debuggee may be running different Virtual Machines and/or on different platforms. Developers may choose to implement their product at any level of the JPDA. Debuggers not written in Java may connect directly to the JDWP for remote access the JVM, or the JVMDI for only local access. While it is recommended that applications use the JDI, developing at the JVMDI level may provide better support for more specific debugging requirements. It is using this framework that we intend to capture the execution state of a thread, migrate it to the destination host, and have it resume at the point it left off. 3. RATIONALE The Java programming language has been designed with portability in mind. Source code is compiled into an intermediate form called byte code, unlike C and C++ which are transformed into native machine code. The byte code is then interpreted into an executable form by a Java Virtual Machine (JVM), in which all Java programs are run. This allows developers to write and compile their applications once, and have them execute on any platform implementing a JVM. This ability to operate across heterogeneous environments, makes Java highly suitable for implementing distributed or mobile application. The JVM is disigned to act as a layer of abstraction between the application and the host operating system, defining a standard set of operations and functions available to a Java application. Modifying the JVM to incorperate additionaly functionality compromises the portability of the Java framework. Systems that require a non-standard JVM may only be deployed on hosts implemeting the vendor specific interpreter, removing an applications ability to operate in a
3 hetrogenious environment. Computing in today s society is no longer strictly confined to the office. Employees who are travelling to meet with customers or performing field work often switch between desktop, laptop and personal digital assistant throughout the day. Mobile objects implementing strong migration, allow applications to move with workers across devices without losing session state, thus seamlessly transferring between hosts. The implications for strong migration are not restricted to moving applications between devices. The ability to capture the execution state of threads allows for application check-pointing. Each checkpoint may be kept in non volatile storage and restored in the event of an application or host failure. We intend to address the lack of strong migration support within the language by using the Java Platform Debugging Architecture (JPDA), to preserve execution state. 4. LITERATURE REVIEW This section details implementations of existing techniques for strong migration in Java, and how this project intends to address their short comings. Exception Handling With the aid of a pre-processor and code insertion, Sekiguchi s JavaGo [12] utilises Java s exception handling capabilities to preserve execution state during migration. Methods capable of initiating object transfer are demarcated with the primitive migratory, and have try - catch blocks capable of responding to NotifyMigration exceptions inserted. Additionally, a variable acting as an artificial program counter is included and continuously updated during the program s session. For each method within the application, the preprocessor creates a state object, which is used to store local variable values at migration time. Upon the decision to migrate, a NotifyMigration exception is thrown and caught within the current method, allowing the saving of local variables to the state object. The exception is propagated to the calling method, repeating the state saving process for each method on the stack and chaining subsequent state objects together. To facilitate state restoration on the destination host, the pre-processor transforms method signatures to accept a state object as an extra parameter, and is used to initialise local variables upon reconstruction. Methods are also transformed to include switch-case blocks encompassing individual statements, which upon evaluation of the execution point variable, can resume the program at the correct point. Control structures such as for and while require a more complex code insertion technique involving code unfolding and duplication. This results in an increased method size of O(n 2 ) [12, p. 219], where n is depth of nested loops. Sekiguchi s technique of state preservation incurs a heavy performance reduction on the application, due to the preprocessor s code insertion. The approach described in this project will remove the requirement for large amounts of tracking and restoration code, instead utilising the JPDA to extract the required information to restore execution state on the destination host. Variable Insertion The Automatic Distribution of Java Applications (AdJava) [5] system, developed at the University of Adelaide, relies upon code insertion to maintain the execution state. By pre-processing the source code of a thread, a level variable is inserted and incremented after each statement in the run method, acting as an artificial program counter. Upon migration this variable is serialized with the object data, and transferred to the destination host. To resume execution, the level variable is evaluated through a series of switch-case statements, jumping to the current point of execution. The variable insertion technique used by AdJava causes a substantial increase in code size, an approximate ratio of 1:3 [5, p. 74]. This increase is responsible for higher memory consumption as well as longer transfer and execution time. A further limitation is that the artificial program counter is only inserted in the run method of the thread. Should the thread be suspended whilst in a called method, all computations completed since leaving run will be lost. This poses performance issues should migration be frequent, or if method calls are deeply nested, as more time is required to repeat calculations hence slowing program progression. This project intends to capture the state of a thread using the JPDA, eliminating the need for code insertion. By reducing the number of statements to be executed, a decrease in application running time will be achieved. Furthermore, this project aims to increase the granularity of state preservation, removing the need to repeat previously executed commands upon reconstruction. JVM Modification Systems based on exception handling and code insertion have all worked within the current confines of the JVM to transfer the execution state. However, researchers at IN- RIA s SIRAC Project [3] and the University of Meryland s Sumatra Project [1] have both modified the JVM to allow replication and access to internal data structures, making thread state capture and transfer possible. INRIA s implementation provides a more elegant and complete set of Java interfaces for development, and therefore shall be discussed in this paper. To support the changes made to the JVM, SIRAC provides two new classes, MobileThread (which extends Thread) and ExecutionEnvironment. MobileThread calls extractexecenv at migration time, storing the current execution state in a variable of type ExecutionEnvironment. transferexecenv is called to perform the migration to the destination host, where integrateexecenv creates a new thread initialised with the ExecutionEnvironment. For security reasons, all methods and data of ExecutionEnvironment are private (with the exception of the array of class names, which is required by the class loader), and may only be accessed by MobileThread s integrateexecenv. This
4 avoids the possibility of illegal access to objects on the stack, whilst still providing for the needs of migration. The advantages associated with JVM modification are primarily performance based, due to the lack of code insertion and complex restoration procedures seen in other implementations. Benchmarking performed by SIRAC shows that JVM modification can perform up to 13 times faster than Funfrocken s code insertion system Wasp [7]. This is achieved at the sacrifice of portability, as discussed earlier. By utilising the JPDA, we intend to provide a system that operates on a standard JVM, and deliver performance comparable to JVM modification. While it would be reasonable to expect considerable overhead involved in running an application through a debugger, the JPDA uses Full Speed Debugging [10]. This allows applications to run at normal speed, using only the interpreter. When an event of interest occurs, the full debugger is activated for interactive program querying. 5. PROJECT GOALS This project intends to produce a mechanism for capturing the execution state of a Java application using the Java Platform Debugging Architecture. By conducting quantitative analysis of our system and other strong migration implementations, this project will investigate the following research questions: 1. Is it possible to efficiently track and replicate module state and execution context with the Java Platform Debugging Architecture? 2. What impact does using the JPDA system have on the performance of applications in comparison to other strong migration systems implemented in Java? Due to Java s native support of transport protocols (eg sockets and RMI), this project will not be investigating frameworks for the transfer of objects, but will focus on the migration of the execution context. 6. METHODOLOGY The JPDA provides access to data previously unobtainable in a Java application. Upon capturing and handling a fired event, it is possible to access the execution stack, local variables and the point at which execution was suspended. In order to capitalise these features, our mobile object system will be developed in the following way: Develop software that will: - run a mobile object in the JPDA - add a request for stepping events to the mobile object at migration time - capture the stepping event - thereby suspending execution - obtain execution stack, variables and point of suspension - persist object and execution data - migrate object to destination host using RMI - rebuild object and resume execution of the thread The above approach requires a means of persisting the data obtained via the JPDA for migration to the destination host. This shall be developed as a part of this research project. Additionally processes to rebuild the object with the execution data and recommence at the point of suspension will also be developed. Initial research indicates that the following approach may provide the basis for resuming execution at the correct location. To recomence execution at the point of suspension, an if statement, that always evaluates to false, may be placed around previously executed commands, allowing them to be skipped at re-execution. Insertion of the if statement may be achieved by modifying the objects byte code and utilising the RedfineClasses method [10] provided by the JVMDI. RedfineClasses allows the substitution of byte code for an object currently executing, with a new byte code definition. Once the object has recommenced, the if statement may be removed to allow normal execution to continue. The evaluation of the developed framework will focus upon its efficiency in terms of both performance and portability in comparison to existing systems by: - replicating experiments of existing systems where source code is available - using experiment data from published systems if the source code is unavailable - benchmarking developed system against existing ones - comparative analysis of performance and portability. Performance metrics include: - time taken to pervade and restore both object and execution state data - general system overhead, a comparison of application running time in our system, and as a standard application. - time taken to migrate - size of both mobile object, and that of the execution data migrated to the destination host Timeline Figure 2 shows the intended schedule for our project. It is intended for initial software development to be completed by July, allowing for testing and modification. Similarly, thesis writing will also commence at an early stage, taking into consideration the possibility that further experiments are needed for a comprehensive report.
5 Software Development xxxxxxxxxxx Analysis of Existing implementations xxxxxx Testing xxx xx Experiments xxxxx xx Thesis Writing x xx xxxxxxxxxxxx A M J J A S O Figure 2: Project Time Line [12] T. Sekiguchi, H. Masuhara, and A. Yonezawa. A simple extension of java language for controllable transparent migration and its portable implementation. In Coordination Models and Languages, pages [13] F. Tandiary, S. Kothari, A. Dixit, and E. W. Anderson. Batrun: Utilizing idle workstations for large-scale computing. IEEE Parallel and Distributed Technology: Systems and Applications, 4(2):41 48, REFERENCES [1] A. Acharya, M. Ranganathan, and J. Saltz. Sumatra: A language for resource-aware mobile programs. In J. V. Tschudin and C., editors, Mobile Object Systems: Towards the Programmable Internet, pages Springer-Verlag, Heidelberg, Germany, [2] T. Anderson, D. Culler, and D. Patterson. A case for NOW. IEEE Micro, 15(1):54 64, [3] S. Bouchenak and D. Hagimont. Pickling threads state in the java system. In Third European Research Seminar on Advances in Distributed Systems (ERSADS 99),, Madeira Island, Portugal, http: //sardes.inrialpes.fr/~bouchena/publications/. [4] S. Bouchenak and D. Hagimont. Zero overhead java thread migration. Technical Report 0261, INRIA, http: //sardes.inrialpes.fr/~bouchena/publications/. [5] M. Fuad and M. Oudshoorn. AdJava - automatic distribution of java applications. In M. Oudshoorn, editor, Twenty-Fifth Australian Computer Science Conference, volume 4, pages 65 75, Melbourne, Australia, Australian Computer Society. [6] A. Fuggetta, G. Picco, and G. Vigna. Understanding code mobility. IEEE Transactions on Software Engineering, 24(5): , [7] S. Funfrocken. Transparent migration of java-based mobile agents. In F. H. Kurt Rothermel, editor, Proceedings of the Second International Workshop on Mobile Agents (MA 98), pages 26 37, Stuttgart, Germany, Springer-Verlag. [8] D. M. Geary. Graphic Java 1.2, Mastering the JFC, volume 1 of Java Series. The Sun Microsystems Inc, Palo Alto, 3rd edition, [9] S. Microsystems. Java platform debugger architecture overview, docs/guide/jpda/jpda.html. [10] S. Microsystems. The java hotspot virtual machine v1.4.1 white paper, products/hotspot/docs/whitepaper/java_hotspot_ v1.4.%1/java_hspot_wp_v1.4.1_1002_3.html. [11] S. Microsystems. Object serialization: Frequently asked questions, http: //java.sun.com/products/jdk/serialization/faq.
Debugging Java Applications
Debugging Java Applications Table of Contents Starting a Debugging Session...2 Debugger Windows...4 Attaching the Debugger to a Running Application...5 Starting the Debugger Outside of the Project's Main
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Load balancing in SOAJA (Service Oriented Java Adaptive Applications)
Load balancing in SOAJA (Service Oriented Java Adaptive Applications) Richard Olejnik Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022)
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters
COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly
A Java-based system support for distributed applications on the Internet
A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have
An evaluation of the Java Card environment
An evaluation of the Java Card environment Christophe Rippert, Daniel Hagimont Contact: Christophe Rippert, Sirac Laboratory INRIA Rhône-Alpes, 655 avenue de l Europe Montbonnot 38334 St Ismier Cedex,
INTRODUCTION TO JAVA PROGRAMMING LANGUAGE
INTRODUCTION TO JAVA PROGRAMMING LANGUAGE Today Java programming language is one of the most popular programming language which is used in critical applications like stock market trading system on BSE,
Implementing Java Distributed Objects with JDBC
Implementing Java Distributed Objects with JDBC Pritisha 1, Aashima Arya 2 1,2 Department of Computer Science Bhagwan Mahaveer institute of engineering & technology (BMIET), Deenbandhu Chhotu Ram University
What s Cool in the SAP JVM (CON3243)
What s Cool in the SAP JVM (CON3243) Volker Simonis, SAP SE September, 2014 Public Agenda SAP JVM Supportability SAP JVM Profiler SAP JVM Debugger 2014 SAP SE. All rights reserved. Public 2 SAP JVM SAP
Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
LinuxWorld Conference & Expo Server Farms and XML Web Services
LinuxWorld Conference & Expo Server Farms and XML Web Services Jorgen Thelin, CapeConnect Chief Architect PJ Murray, Product Manager Cape Clear Software Objectives What aspects must a developer be aware
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
1 Organization of Operating Systems
COMP 730 (242) Class Notes Section 10: Organization of Operating Systems 1 Organization of Operating Systems We have studied in detail the organization of Xinu. Naturally, this organization is far from
Hardware/Software Co-Design of a Java Virtual Machine
Hardware/Software Co-Design of a Java Virtual Machine Kenneth B. Kent University of Victoria Dept. of Computer Science Victoria, British Columbia, Canada [email protected] Micaela Serra University of Victoria
ESET Endpoint Security 6 ESET Endpoint Antivirus 6 for Windows
ESET Endpoint Security 6 ESET Endpoint Antivirus 6 for Windows Products Details ESET Endpoint Security 6 protects company devices against most current threats. It proactively looks for suspicious activity
Masters in Advanced Computer Science
Masters in Advanced Computer Science Programme Requirements Taught Element, and PG Diploma in Advanced Computer Science: 120 credits: IS5101 CS5001 up to 30 credits from CS4100 - CS4450, subject to appropriate
Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines
Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines Michael J Jipping Department of Computer Science Hope College Holland, MI 49423 [email protected] Gary Lewandowski Department of Mathematics
A STUDY OF THE BEHAVIOUR OF THE MOBILE AGENT IN THE NETWORK MANAGEMENT SYSTEMS
A STUDY OF THE BEHAVIOUR OF THE MOBILE AGENT IN THE NETWORK MANAGEMENT SYSTEMS Tarag Fahad, Sufian Yousef & Caroline Strange School of Design and Communication Systems, Anglia Polytechnic University Victoria
Masters in Computing and Information Technology
Masters in Computing and Information Technology Programme Requirements Taught Element, and PG Diploma in Computing and Information Technology: 120 credits: IS5101 CS5001 or CS5002 CS5003 up to 30 credits
Chapter 1 - Web Server Management and Cluster Topology
Objectives At the end of this chapter, participants will be able to understand: Web server management options provided by Network Deployment Clustered Application Servers Cluster creation and management
Chapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
Masters in Human Computer Interaction
Masters in Human Computer Interaction Programme Requirements Taught Element, and PG Diploma in Human Computer Interaction: 120 credits: IS5101 CS5001 CS5040 CS5041 CS5042 or CS5044 up to 30 credits from
Masters in Artificial Intelligence
Masters in Artificial Intelligence Programme Requirements Taught Element, and PG Diploma in Artificial Intelligence: 120 credits: IS5101 CS5001 CS5010 CS5011 CS4402 or CS5012 in total, up to 30 credits
VMware Virtualization and Software Development
VMware Virtualization and Software Development 1 VMware Virtualization and Software Development Mark Cloutier Undergraduate Student, Applied Math and Computer Science Keywords: Virtualization, VMware,
An Intelligent Approach for Integrity of Heterogeneous and Distributed Databases Systems based on Mobile Agents
An Intelligent Approach for Integrity of Heterogeneous and Distributed Databases Systems based on Mobile Agents M. Anber and O. Badawy Department of Computer Engineering, Arab Academy for Science and Technology
The Service Availability Forum Specification for High Availability Middleware
The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum [email protected], [email protected],
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
Masters in Networks and Distributed Systems
Masters in Networks and Distributed Systems Programme Requirements Taught Element, and PG Diploma in Networks and Distributed Systems: 120 credits: IS5101 CS5001 CS5021 CS4103 or CS5023 in total, up to
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona
Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester
Computer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
REDCENTRIC MANAGED BACKUP SERVICE SERVICE DEFINITION
REDCENTRIC MANAGED BACKUP SERVICE SERVICE DEFINITION SD003 V2.3 Issue Date 02 July 2014 1) SERVICE OVERVIEW The Managed Backup Service (MBS) is a streamlined alternative to traditional backup and restore
IBM WebSphere MQ File Transfer Edition, Version 7.0
Managed file transfer for SOA IBM Edition, Version 7.0 Multipurpose transport for both messages and files Audi logging of transfers at source and destination for audit purposes Visibility of transfer status
Building Reliable, Scalable AR System Solutions. High-Availability. White Paper
Building Reliable, Scalable Solutions High-Availability White Paper Introduction This paper will discuss the products, tools and strategies available for building reliable and scalable Action Request System
Introduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE
PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE Sudha M 1, Harish G M 2, Nandan A 3, Usha J 4 1 Department of MCA, R V College of Engineering, Bangalore : 560059, India [email protected] 2 Department
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
An Active Packet can be classified as
Mobile Agents for Active Network Management By Rumeel Kazi and Patricia Morreale Stevens Institute of Technology Contact: rkazi,[email protected] Abstract-Traditionally, network management systems
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
Distributed Objects and Components
Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java
Lenovo Partner Pack for System Center Operations Manager
Lenovo Partner Pack for System Center Operations Manager Lenovo Enterprise Product Group Version 1.0 December 2013 2013 Lenovo. All rights reserved. Legal Disclaimers: First paragraph is required. Trademark
Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:
Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.
System Models for Distributed and Cloud Computing
System Models for Distributed and Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF Classification of Distributed Computing Systems
An Exception Monitoring System for Java
An Exception Monitoring System for Java Heejung Ohe and Byeong-Mo Chang Department of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea {lutino, [email protected] Abstract. Exception
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Chapter 13 Selected Storage Systems and Interface
Chapter 13 Selected Storage Systems and Interface Chapter 13 Objectives Appreciate the role of enterprise storage as a distinct architectural entity. Expand upon basic I/O concepts to include storage protocols.
Azul Compute Appliances
W H I T E P A P E R Azul Compute Appliances Ultra-high Capacity Building Blocks for Scalable Compute Pools WP_ACA0209 2009 Azul Systems, Inc. W H I T E P A P E R : A z u l C o m p u t e A p p l i a n c
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets 1 Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri}@ai.uwf.edu
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
WINDOWS PROCESSES AND SERVICES
OBJECTIVES: Services o task manager o services.msc Process o task manager o process monitor Task Scheduler Event viewer Regedit Services: A Windows service is a computer program that operates in the background.
Holistic Performance Analysis of J2EE Applications
Holistic Performance Analysis of J2EE Applications By Madhu Tanikella In order to identify and resolve performance problems of enterprise Java Applications and reduce the time-to-market, performance analysis
A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources
A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources Brad Long Australian Development Centre, Oracle Corporation, Brisbane, Qld. 4000, Australia. [email protected] and
Mark Bennett. Search and the Virtual Machine
Mark Bennett Search and the Virtual Machine Agenda Intro / Business Drivers What to do with Search + Virtual What Makes Search Fast (or Slow!) Virtual Platforms Test Results Trends / Wrap Up / Q & A Business
Profiling and Testing with Test and Performance Tools Platform (TPTP)
Profiling and Testing with Test and Performance Tools Platform (TPTP) 2009 IBM Corporation and Intel Corporation; made available under the EPL v1.0 March, 2009 Speakers Eugene Chan IBM Canada [email protected]
The Hotspot Java Virtual Machine: Memory and Architecture
International Journal of Allied Practice, Research and Review Website: www.ijaprr.com (ISSN 2350-1294) The Hotspot Java Virtual Machine: Memory and Architecture Prof. Tejinder Singh Assistant Professor,
Chapter 2: OS Overview
Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:
An Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
Load balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
Service Virtualization:
Service Virtualization: Reduce the time and cost to develop and test modern, composite applications Business white paper Table of contents Why you need service virtualization 3 The challenges of composite
2 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
The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.
The EMSX Platform A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks A White Paper November 2002 Abstract: The EMSX Platform is a set of components that together provide
Backup with synchronization/ replication
Backup with synchronization/ replication Peer-to-peer synchronization and replication software can augment and simplify existing data backup and retrieval systems. BY PAUL MARSALA May, 2001 According to
Efficient database auditing
Topicus Fincare Efficient database auditing And entity reversion Dennis Windhouwer Supervised by: Pim van den Broek, Jasper Laagland and Johan te Winkel 9 April 2014 SUMMARY Topicus wants their current
A Comparison of Distributed Systems: ChorusOS and Amoeba
A Comparison of Distributed Systems: ChorusOS and Amoeba Angelo Bertolli Prepared for MSIT 610 on October 27, 2004 University of Maryland University College Adelphi, Maryland United States of America Abstract.
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
Cloud Storage. Parallels. Performance Benchmark Results. White Paper. www.parallels.com
Parallels Cloud Storage White Paper Performance Benchmark Results www.parallels.com Table of Contents Executive Summary... 3 Architecture Overview... 3 Key Features... 4 No Special Hardware Requirements...
Real-time Data Replication
Real-time Data Replication from Oracle to other databases using DataCurrents WHITEPAPER Contents Data Replication Concepts... 2 Real time Data Replication... 3 Heterogeneous Data Replication... 4 Different
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
MIGRATING DESKTOP AND ROAMING ACCESS. Migrating Desktop and Roaming Access Whitepaper
Migrating Desktop and Roaming Access Whitepaper Poznan Supercomputing and Networking Center Noskowskiego 12/14 61-704 Poznan, POLAND 2004, April white-paper-md-ras.doc 1/11 1 Product overview In this whitepaper
Virtual Hosting & Virtual Machines
& Virtual Machines Coleman Kane [email protected] September 2, 2014 Cyber Defense Overview / Machines 1 / 17 Similar to the network partitioning schemes described previously, there exist a menu of options
AUDITOR GENERAL S REPORT. Protection of Critical Infrastructure Control Systems. Report 5 August 2005
AUDITOR GENERAL S REPORT Protection of Critical Infrastructure Control Systems Report 5 August 2005 Serving the Public Interest Serving the Public Interest THE SPEAKER LEGISLATIVE ASSEMBLY THE PRESIDENT
HRG Assessment: Stratus everrun Enterprise
HRG Assessment: Stratus everrun Enterprise Today IT executive decision makers and their technology recommenders are faced with escalating demands for more effective technology based solutions while at
A Review of Customized Dynamic Load Balancing for a Network of Workstations
A Review of Customized Dynamic Load Balancing for a Network of Workstations Taken from work done by: Mohammed Javeed Zaki, Wei Li, Srinivasan Parthasarathy Computer Science Department, University of Rochester
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
In Memory Accelerator for MongoDB
In Memory Accelerator for MongoDB Yakov Zhdanov, Director R&D GridGain Systems GridGain: In Memory Computing Leader 5 years in production 100s of customers & users Starts every 10 secs worldwide Over 15,000,000
OpenFlow Based Load Balancing
OpenFlow Based Load Balancing Hardeep Uppal and Dane Brandon University of Washington CSE561: Networking Project Report Abstract: In today s high-traffic internet, it is often desirable to have multiple
JPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1
JPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1 Danilo Beuche, Lars Büttner, Daniel Mahrenholz, Wolfgang Schröder-Preikschat, Friedrich Schön* University of Magdeburg * GMD-FIRST
Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.
Architectural Patterns Architectural Patterns Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson [email protected] http://www.inf.ed.ac.uk/ssp/members/dave.htm
4D as a Web Application Platform
4D as a Web Application Platform 4D is a powerful, flexible, and very scalable Web application platform. This white paper examines the common requirements for Web application servers, and discusses the
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC 11 December
1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
International Journal of Advancements in Research & Technology, Volume 3, Issue 2, February-2014 10 ISSN 2278-7763
International Journal of Advancements in Research & Technology, Volume 3, Issue 2, February-2014 10 A Discussion on Testing Hadoop Applications Sevuga Perumal Chidambaram ABSTRACT The purpose of analysing
Transactionality and Fault Handling in WebSphere Process Server Web Service Invocations. version 0.5 - Feb 2011
Transactionality and Fault Handling in WebSphere Process Server Web Service Invocations version 0.5 - Feb 2011 IBM Corporation, 2011 This edition applies to Version 6.2 of WebSphere Process Server 1 /
Software Vulnerabilities in Java
Software Vulnerabilities in Java Fred Long October 2005 CERT Unlimited distribution subject to the copyright. Technical Note CMU/SEI-2005-TN-044 This work is sponsored by the U.S. Department of Defense.
Virtual Credit Card Processing System
The ITB Journal Volume 3 Issue 2 Article 2 2002 Virtual Credit Card Processing System Geraldine Gray Karen Church Tony Ayres Follow this and additional works at: http://arrow.dit.ie/itbj Part of the E-Commerce
