Replication on Virtual Machines

Size: px
Start display at page:

Download "Replication on Virtual Machines"

Transcription

1 Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004

2 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism Implementation Experiments 3 Fiedman, Kama - SRDS 2003 Introduction Non-determinism Design and implementation Experimentation

3 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism Implementation Experiments 3 Fiedman, Kama - SRDS 2003 Introduction Non-determinism Design and implementation Experimentation

4 JVM philosophy Compile once, run everywhere Java bytecodes bytecode = instruction set of Java Virtual Machine One JVM for each architecture High-level support Memory management (garbage collection) Multithreading support (monitors)

5 JVM to real machines Internal components Dynamic class loader Interpreters vs. Just in Time compiling (JIT) Native methods (JNI) Provided libraries Allocation and garbage collection User-level vs. native threads

6 Random technical details A few characteristics Compact bytecodes (202 instructions) Types are preserved for safety, precise GC Objects accessible through references Strong, soft, weak, phantom references Object can be shared Passed to new thread constructor Static fields

7 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism Implementation Experiments 3 Fiedman, Kama - SRDS 2003 Introduction Non-determinism Design and implementation Experimentation

8 General idea Their work Modify JVM to tolerate fail-stop failures. Extends hypervisor-based fault-tolerance Hypervisor model Implement a virtual state machine over underlying hardware Perform replica coordination in the hypervisor

9 State machine approach Requirements 1 Determinism: defining replicas 2 Independence: implementing replicas 3 Choice replication: ensuring replication 4 Transparency: guaranteeing single output A state machine Read set [ deterministic command ] Write set output to environment

10 A state machine for the JVM Challenges Non-determinism of commands Replication of sequence of commands Copying read-sets Multithreading Their approach: Bytecode execution engines (BEE) A BEE is a state machine JVM = set of BEEs, one for each application thread Replication at BEE level

11 Sources of non-determinism Some causes of non-determinism Asynchronous commands Non-deterministic commands Non-deterministic read sets Output to environment

12 Asynchronous commands Definition A command is asynchronous if it can appear anywhere in the BEE s sequence of commands. Examples Hardware interrupts, not for JVM Asynchronous Java exceptions Fatal errors, e.g. no resources, deadlocks Killing another thread, i.e. thread.stop() Added restrictions 1 Fatal exceptions are not replicated 2 Threads must not call Thread.stop

13 Non-deterministic commands Definition A command is non-deterministic if it write-set or output are not uniquely determined by the read-set values. Example Native calls: I/O, clock Solution Agreement between replicas on input environment and read-set. Not possible! input is outside JVM s control Backup must adopt primary write-set Restrict output on native methods

14 Non-deterministic commands Added restrictions 3 Native methods produce deterministic output to environment 4 Native methods invoke other methods deterministically Handling these conditions: splitting methods void non determ read write() { long r = read clock(); printf("%d\n",r); }

15 Non-deterministic commands Added restrictions 3 Native methods produce deterministic output to environment 4 Native methods invoke other methods deterministically Handling these conditions: splitting methods long non determ read(){ return read clock(); } void determ write(long r ){ printf("%d\n",r); }

16 Non-deterministic read sets Definition A read set is non-deterministic if it contains a shared variable. Examples Invoking methods on shared objects Storing objects in static references Alternatives Bookkeeping of shared data: an order of magnitude overhead Lock acquisition ordering, needs data-race elimination Exclusive access to all variables while thread is scheduled

17 Non-deterministic read sets Added restrictions 5 Include one of the following Example 1 No data-races (protect any shared data with monitors) 2 Exclusive access to all shared variables class Example { static F shared = null; String tostring() { if (null == shared) { shared = new F(); synchronized call();...

18 Output to the environment Definition An output is idempotent if it is independent of the number of times a command is executed. An output is testable when the environment can be tested for occurrence of output. Examples cd /home/siggi is idempotent, cd.. is not cd.. is testable if pwd is available. Definition A state is volatile if it does not survive failure of state machine. Otherwise, it is stable.

19 Output to the environment Solution Only support idempotent and testable output. Volatile data might be necessary for correct operation Side effects handlers: replicate lost volatile state of the primary Added restrictions 6 Output of native methods is idempotent or testable 7 Native methods annotated for volatile output

20 Implementation details Extended JVM New threads for Failure detection and backup initiation Transfer of logging information Interact with other system threads: GC, finalization Threading modification Restriction (5.2) requires modifying multi-threading libraries Sun s JVM provides both native and green threads Native threads are desired to run applications on SMP Green threads are desired for portability

21 Implementation for non-deterministic commands Initial work Inspected and categorized all native methods by hand! Found only 100 non-deterministic Runtime support algorithm Create table with (non-deterministic) method s unique signature Native call on primary triggers message to backup Backup on recovery uses same values Side effect handlers used for volatile state (e.g. file descriptor from an open command)

22 Non-deterministic read sets: first approach Replicated lock synchronization Assumes (5.1), ensuring mutual exclusion Defines lock acquisition record = (t i,l j,t # i,l # j ) Locking thread (t i ) Lock (l j ) Relative order of lock acquisition thread acquire sequence number (t # i ) lock acquire sequence number (l # j ) Primary creates (t i,l j,t # i,l # j ) Backup uses (t i,l j,t # i,l # j ) to repeat ordering

23 Computing lock acquisition record Defining record values Not trivial Object address for l j : meaningless at replicas Order of events: might differ in primary and backup Recursive definition for t i = (t p,k) t p is parent of t i t i is the k created w.r.t. siblings Use thread determinism for l j l j assigned the first time used Log map l j (t i,t # i )

24 Using lock acquisition record Recovery algorithm Case 1: Backup thread t i tries to acquire l j, and Log contains r = (t i,l j,t # i,l # j ) Wait until we reach l # j Remove r from log Case 2: Backup thread t i tries to acquire l j, and Log doesn t contain (t i,l j,t # i,l # j ) Wait until log is empty (end of recovery protocol)

25 Using lock acquisition record Recovery algorithm Case 3: Backup thread t i tries to acquire a lock with no id, and Log contains map l j (t i,t # i ) Assign lock primary s l j Remove map entry Case 4: Backup thread t i tries to acquire a lock with no id, and Log doesn t contain map l j (t i,t # i ) Wait until A thread t i assigns l j to the lock Log contains no more maps (assign fresh l j )

26 Non-deterministic read sets: second approach Replicated thread scheduling Assumes (5.2), all shared data is protected Defines thread scheduling record = (bn,pc,m,l #,t n ) Code executed Current program counter (pc) Trace summary to get there (bn) Monitor uses (m) Thread was waiting on a lock (l # ) Next scheduled thread (t n ) Log record on each context switch

27 Computing thread scheduling record Defining program position How many statements were executed? Avoid counting each instruction bn counts branches, jumps and invocations taken. pc is program counter offset (not absolute address): updated on every instruction!

28 Computing thread scheduling record Defining program position What if preemption occurred inside a native method? Can t control preemption outside JVM On recovery, preemption before native call? Need to keep track of locks acquired Locking done in JVM monitors On recovery, preempt when m is reached

29 Interaction with system threads Example Heap shared with GC. GC not in Java! Problems t i acquires a lock at primary with no contention, but t i waits at backup t n can enter at backup before it should! User-level threads to force t i to stay t i acquires a lock at backup with no contention, but t i waits at primary Use m also to force rescheduling at backup

30 Replicated scheduling: final details Wait and notifyall() Multiple threads awakened Store the l # to preserve order in backup Finishing recovery Log becomes empty, last entry contains t n Backup must schedule t n to reproduce interaction to environment.

31 Garbage Collection Common problems Soft/weak references Primary and backup may diverge Convert them to strong references Finalizers should be no source of non-determinism Replicate as before

32 Output to the environment Side effects handlers Store and recover volatile state Ensure exactly-once semantics for output Composed by 5 methods register test log receive restore

33 Components of SE handlers Method register Provide method signature Non-determinism flag Output command flag Arguments used for output Method test Used by backup True if output command was successfully executed Only defined for testable commands Idempotent commands are replayed

34 Components of SE handlers Method log Used by primary after an output command Saves arguments, return value and internal state Produces a message with recovery information Method receive Used by backup to retrieve result of log Can perform compaction of messages Method restore Used by backup only once to recover volatile state Uses received messages

35 Experimental setting Architecture and settings Sun E5000 Servers MHz UltraSPARC II CPUs. 2GB Mem. 100Mbps Ethernet Primary and backup run on different machines Log is kept at backup in volatile memory Synchronization on each output (acks) Interpreted mode, no JIT 3 scenarios: AL, TS, NoFT Only green threads (native on SMP yield similar result)

36 Experimental setting Benchmarks Spec JVM98 Benchmarks Shown result for 6 benchmarks compress: cpu intensive db: database, heavy on locking mtrt: only multithreaded

37 Algorithms comparison Running times under two algorithms

38 Overhead Overhead of lock acquisition algorithm

39 Overhead Overhead of thread scheduling algorithm

40 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism Implementation Experiments 3 Fiedman, Kama - SRDS 2003 Introduction Non-determinism Design and implementation Experimentation

41 Introduction Another hypervisor Build on top of Jikes RVM Ignore native code Support JIT Jikes RVM Almost all in Java Yield points and time slices

42 Sources of non-determinism Multithreading Use deterministic scheduler (yield points) Deterministic dequeuing Data-races on SMPs assume no data-races, enforce lock ordering

43 Design decisions Frames One frame lag between primary and backup Synchronize with replicas before starting a new frame Send all I/O results to replicas at start point Send locks (on SMP) anywhere Send non-deterministic read sets

44 Frames example Framing...

45 Implementation details Replication engine Additional module to Jikes RVM Communication between primary and backup Detection of fails Election of new primary

46 Implementation details Hurdles JIT compilation saving thread switch counter Non-deterministic number of statements also disable preemption Garbage collection on SMP: cooperative threads GC non-preemptive until all are done

47 Experimental setting Benchmarks Some Spec JVM98 Benchmarks and SciMark scimark, compress, db, raytrace, mtrt Variations on frame-size (number of context switches)

48 Compress compress Benchmark

49 Database db Benchmark

50 Raytrace raytrace Benchmark

51 Multithreaded Raytrace mtrt Benchmark

52 Replication Overhead Overhead

53 Final remarks Summary Common technique: hypervisor model Restrictions to solve non-determinism Support for SMPs First paper main features SE Handlers: native methods Second paper main features Frames Lower synchronization Faster recovery

A Fault-Tolerant Java Virtual Machine

A Fault-Tolerant Java Virtual Machine A Fault-Tolerant Java Virtual Machine Jeff Napper, Lorenzo Alvisi, Harrick Vin Abstract We modify the Sun JDK1.2 to provide transparent faulttolerance for many Java applications using a primarybackup architecture.

More information

State-Machine Replication

State-Machine Replication State-Machine Replication The Problem Clients Server The Problem Clients Server The Problem Clients Server The Problem Clients Server The Problem Clients Server The Problem Clients Server Solution: replicate

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

Transparent Fault-Tolerant Java Virtual Machine

Transparent Fault-Tolerant Java Virtual Machine Transparent Fault-Tolerant Java Virtual Machine Roy Friedman Alon Kama Computer Science Department Technion Israel Institute of Technology Haifa, 32000 Israel {roy,alon}@cs.technion.ac.il Abstract Replication

More information

Cloud Computing. Up until now

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

More information

HeapStats: Your Dependable Helper for Java Applications, from Development to Operation

HeapStats: Your Dependable Helper for Java Applications, from Development to Operation : Technologies for Promoting Use of Open Source Software that Contribute to Reducing TCO of IT Platform HeapStats: Your Dependable Helper for Java Applications, from Development to Operation Shinji Takao,

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last 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 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Chapter 3 Operating-System Structures

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

More information

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General

More information

Fault Tolerance in the Internet: Servers and Routers

Fault Tolerance in the Internet: Servers and Routers Fault Tolerance in the Internet: Servers and Routers Sana Naveed Khawaja, Tariq Mahmood Research Associates Department of Computer Science Lahore University of Management Sciences Motivation Client Link

More information

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

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

More information

enterprise professional expertise distilled

enterprise professional expertise distilled Oracle JRockit The Definitive Guide Develop and manage robust Java applications with Oracle's high-performance Java Virtual Machine Marcus Hirt Marcus Lagergren PUBLISHING enterprise professional expertise

More information

Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation

Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation Satish Narayanasamy, Cristiano Pereira, Harish Patil, Robert Cohn, and Brad Calder Computer Science and

More information

Performance Tools for Parallel Java Environments

Performance Tools for Parallel Java Environments Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau

More information

Multi-core Programming System Overview

Multi-core Programming System Overview Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,

More information

System Structures. Services Interface Structure

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

More information

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.

More information

Monitoring and Managing a JVM

Monitoring and Managing a JVM Monitoring and Managing a JVM Erik Brakkee & Peter van den Berkmortel Overview About Axxerion Challenges and example Troubleshooting Memory management Tooling Best practices Conclusion About Axxerion Axxerion

More information

Validating Java for Safety-Critical Applications

Validating Java for Safety-Critical Applications Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore

More information

Port of the Java Virtual Machine Kaffe to DROPS by using L4Env

Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Alexander Böttcher ab764283@os.inf.tu-dresden.de Technische Universität Dresden Faculty of Computer Science Operating System Group July 2004

More information

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum Scheduling Yücel Saygın These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum 1 Scheduling Introduction to Scheduling (1) Bursts of CPU usage alternate with periods

More information

What s Cool in the SAP JVM (CON3243)

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

More information

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM Note Before you use this information and the product it supports, read the

More information

Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior

Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior Gilberto Contreras Margaret Martonosi Department of Electrical Engineering Princeton University 1 Why Study

More information

Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware

Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware Priya Narasimhan T. Dumitraş, A. Paulos, S. Pertet, C. Reverte, J. Slember, D. Srivastava Carnegie Mellon University Problem Description

More information

Eloquence Training What s new in Eloquence B.08.00

Eloquence Training What s new in Eloquence B.08.00 Eloquence Training What s new in Eloquence B.08.00 2010 Marxmeier Software AG Rev:100727 Overview Released December 2008 Supported until November 2013 Supports 32-bit and 64-bit platforms HP-UX Itanium

More information

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 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

More information

Avoid a single point of failure by replicating the server Increase scalability by sharing the load among replicas

Avoid a single point of failure by replicating the server Increase scalability by sharing the load among replicas 3. Replication Replication Goal: Avoid a single point of failure by replicating the server Increase scalability by sharing the load among replicas Problems: Partial failures of replicas and messages No

More information

Chapter 3: Operating-System Structures. Common System Components

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

More information

Tool - 1: Health Center

Tool - 1: Health Center Tool - 1: Health Center Joseph Amrith Raj http://facebook.com/webspherelibrary 2 Tool - 1: Health Center Table of Contents WebSphere Application Server Troubleshooting... Error! Bookmark not defined. About

More information

HPC performance applications on Virtual Clusters

HPC performance applications on Virtual Clusters Panagiotis Kritikakos EPCC, School of Physics & Astronomy, University of Edinburgh, Scotland - UK pkritika@epcc.ed.ac.uk 4 th IC-SCCE, Athens 7 th July 2010 This work investigates the performance of (Java)

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

Chapter 2: OS Overview

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:

More information

General Introduction

General Introduction Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime

More information

ELEC 377. Operating Systems. Week 1 Class 3

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

More information

Why Threads Are A Bad Idea (for most purposes)

Why Threads Are A Bad Idea (for most purposes) Why Threads Are A Bad Idea (for most purposes) John Ousterhout Sun Microsystems Laboratories john.ousterhout@eng.sun.com http://www.sunlabs.com/~ouster Introduction Threads: Grew up in OS world (processes).

More information

Java Performance Evaluation through Rigorous Replay Compilation

Java Performance Evaluation through Rigorous Replay Compilation Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,

More information

Chapter 6, The Operating System Machine Level

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

More information

Vertical Profiling: Understanding the Behavior of Object-Oriented Applications

Vertical Profiling: Understanding the Behavior of Object-Oriented Applications Vertical Profiling: Understanding the Behavior of Object-Oriented Applications ABSTRACT Matthias Hauswirth University of Colorado at Boulder Matthias.Hauswirth@colorado.edu Amer Diwan University of Colorado

More information

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program

More information

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms Distributed File System 1 How do we get data to the workers? NAS Compute Nodes SAN 2 Distributed File System Don t move data to workers move workers to the data! Store data on the local disks of nodes

More information

Java Real-Time Distributed Processing over Chorus/OS

Java Real-Time Distributed Processing over Chorus/OS Java Real-Time Distributed Processing over Chorus/OS Christophe Lizzi CS Technologies Informatiques lizzi@csti.fr CNAM, CEDRIC lab. lizzi@cnam.fr Outline Motivations Our vision Real-time Java Operating

More information

OPERATING SYSTEMS SCHEDULING

OPERATING SYSTEMS SCHEDULING OPERATING SYSTEMS SCHEDULING Jerry Breecher 5: CPU- 1 CPU What Is In This Chapter? This chapter is about how to get a process attached to a processor. It centers around efficient algorithms that perform

More information

Chapter 14: Recovery System

Chapter 14: Recovery System Chapter 14: Recovery System Chapter 14: Recovery System Failure Classification Storage Structure Recovery and Atomicity Log-Based Recovery Remote Backup Systems Failure Classification Transaction failure

More information

Distributed Architectures. Distributed Databases. Distributed Databases. Distributed Databases

Distributed Architectures. Distributed Databases. Distributed Databases. Distributed Databases Distributed Architectures Distributed Databases Simplest: client-server Distributed databases: two or more database servers connected to a network that can perform transactions independently and together

More information

An Implementation Of Multiprocessor Linux

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

More information

Virtual Machine Learning: Thinking Like a Computer Architect

Virtual Machine Learning: Thinking Like a Computer Architect Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2

More information

Java Troubleshooting and Performance

Java Troubleshooting and Performance Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize

More information

Optimising Cloud Computing with SBSE

Optimising Cloud Computing with SBSE Optimising Cloud Computing with SBSE David R. White & Jeremy Singer {david.r.white, jeremy.singer}@glasgow.ac.uk University of Glasgow Monday 25 July 2011 OUTLINE VIRTUAL MACHINES OPPORTUNITIES FOR SBSE

More information

Chapter 2 System Structures

Chapter 2 System Structures Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices

More information

Effective Java Programming. efficient software development

Effective Java Programming. efficient software development Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of

More information

Characterizing Java Virtual Machine for More Efficient Processor Power Management. Abstract

Characterizing Java Virtual Machine for More Efficient Processor Power Management. Abstract Characterizing Java Virtual Machine for More Efficient Processor Power Management Marcelo S. Quijano, Lide Duan Department of Electrical and Computer Engineering University of Texas at San Antonio hrk594@my.utsa.edu,

More information

picojava TM : A Hardware Implementation of the Java Virtual Machine

picojava TM : A Hardware Implementation of the Java Virtual Machine picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer

More information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes and Non-Preemptive Scheduling. Otto J. Anshus Processes and Non-Preemptive Scheduling Otto J. Anshus 1 Concurrency and Process Challenge: Physical reality is Concurrent Smart to do concurrent software instead of sequential? At least we want to have

More information

From Control Loops to Software

From Control Loops to Software CNRS-VERIMAG Grenoble, France October 2006 Executive Summary Embedded systems realization of control systems by computers Computers are the major medium for realizing controllers There is a gap between

More information

Garbage Collection in the Java HotSpot Virtual Machine

Garbage Collection in the Java HotSpot Virtual Machine http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot

More information

Hardware/Software Co-Design of a Java Virtual Machine

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 ken@csc.uvic.ca Micaela Serra University of Victoria

More information

Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment

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

More information

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what

More information

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

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 ken@unb.ca Micaela Serra

More information

Built-in Concurrency Primitives in Java Programming Language. by Yourii Martiak and Mahir Atmis

Built-in Concurrency Primitives in Java Programming Language. by Yourii Martiak and Mahir Atmis Built-in Concurrency Primitives in Java Programming Language by Yourii Martiak and Mahir Atmis Overview One of the many strengths of Java is the built into the programming language support for concurrency

More information

Concepts of Database Management Seventh Edition. Chapter 7 DBMS Functions

Concepts of Database Management Seventh Edition. Chapter 7 DBMS Functions Concepts of Database Management Seventh Edition Chapter 7 DBMS Functions Objectives Introduce the functions, or services, provided by a DBMS Describe how a DBMS handles updating and retrieving data Examine

More information

IOmark- VDI. HP HP ConvergedSystem 242- HC StoreVirtual Test Report: VDI- HC- 150427- b Test Report Date: 27, April 2015. www.iomark.

IOmark- VDI. HP HP ConvergedSystem 242- HC StoreVirtual Test Report: VDI- HC- 150427- b Test Report Date: 27, April 2015. www.iomark. IOmark- VDI HP HP ConvergedSystem 242- HC StoreVirtual Test Report: VDI- HC- 150427- b Test Copyright 2010-2014 Evaluator Group, Inc. All rights reserved. IOmark- VDI, IOmark- VM, VDI- IOmark, and IOmark

More information

G22.3250-001. Porcupine. Robert Grimm New York University

G22.3250-001. Porcupine. Robert Grimm New York University G22.3250-001 Porcupine Robert Grimm New York University Altogether Now: The Three Questions! What is the problem?! What is new or different?! What are the contributions and limitations? Porcupine from

More information

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005 Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2005 Quiz II Solutions Average 84, median 83, standard deviation

More information

The Microsoft Windows Hypervisor High Level Architecture

The Microsoft Windows Hypervisor High Level Architecture The Microsoft Windows Hypervisor High Level Architecture September 21, 2007 Abstract The Microsoft Windows hypervisor brings new virtualization capabilities to the Windows Server operating system. Its

More information

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015 Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program

More information

Configuring Apache Derby for Performance and Durability Olav Sandstå

Configuring Apache Derby for Performance and Durability Olav Sandstå Configuring Apache Derby for Performance and Durability Olav Sandstå Sun Microsystems Trondheim, Norway Agenda Apache Derby introduction Performance and durability Performance tips Open source database

More information

The Use of Traces for Inlining in Java Programs

The Use of Traces for Inlining in Java Programs The Use of Traces for Inlining in Java Programs Borys J. Bradel and Tarek S. Abdelrahman Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto, Toronto, Ontario,

More information

(Pessimistic) Timestamp Ordering. Rules for read and write Operations. Pessimistic Timestamp Ordering. Write Operations and Timestamps

(Pessimistic) Timestamp Ordering. Rules for read and write Operations. Pessimistic Timestamp Ordering. Write Operations and Timestamps (Pessimistic) stamp Ordering Another approach to concurrency control: Assign a timestamp ts(t) to transaction T at the moment it starts Using Lamport's timestamps: total order is given. In distributed

More information

Data Management in the Cloud

Data Management in the Cloud Data Management in the Cloud Ryan Stern stern@cs.colostate.edu : Advanced Topics in Distributed Systems Department of Computer Science Colorado State University Outline Today Microsoft Cloud SQL Server

More information

Administering Microsoft SQL Server 2012 Databases

Administering Microsoft SQL Server 2012 Databases Administering Microsoft SQL Server 2012 Databases Install and Configure (19%) Plan installation. May include but not limited to: evaluate installation requirements; design the installation of SQL Server

More information

Introduction of Virtualization Technology to Multi-Process Model Checking

Introduction of Virtualization Technology to Multi-Process Model Checking Introduction of Virtualization Technology to Multi-Process Model Checking Watcharin Leungwattanakit watcharin@is.s.u-tokyo.ac.jp Masami Hagiya hagiya@is.s.u-tokyo.ac.jp Mitsuharu Yamamoto Chiba University

More information

Cloud Storage. Parallels. Performance Benchmark Results. White Paper. www.parallels.com

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...

More information

Tashkent: Uniting Durability with Transaction Ordering for High-Performance Scalable Database Replication

Tashkent: Uniting Durability with Transaction Ordering for High-Performance Scalable Database Replication EuroSys 2006 117 Tashkent: Uniting Durability with Transaction Ordering for High-Performance Scalable Database Replication Sameh Elnikety Steven Dropsho Fernando Pedone School of Computer and Communication

More information

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture

More information

Multi-Threading Performance on Commodity Multi-Core Processors

Multi-Threading Performance on Commodity Multi-Core Processors Multi-Threading Performance on Commodity Multi-Core Processors Jie Chen and William Watson III Scientific Computing Group Jefferson Lab 12000 Jefferson Ave. Newport News, VA 23606 Organization Introduction

More information

Operating Systems 4 th Class

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

More information

Linux Process Scheduling Policy

Linux Process Scheduling Policy Lecture Overview Introduction to Linux process scheduling Policy versus algorithm Linux overall process scheduling objectives Timesharing Dynamic priority Favor I/O-bound process Linux scheduling algorithm

More information

Precise and Efficient Garbage Collection in VMKit with MMTk

Precise and Efficient Garbage Collection in VMKit with MMTk Precise and Efficient Garbage Collection in VMKit with MMTk LLVM Developer s Meeting Nicolas Geoffray nicolas.geoffray@lip6.fr 2 Background VMKit: Java and.net on top of LLVM Uses LLVM s JIT for executing

More information

SMock A Test Platform for the Evaluation of Monitoring Tools

SMock A Test Platform for the Evaluation of Monitoring Tools SMock A Test Platform for the Evaluation of Monitoring Tools User Manual Ruth Mizzi Faculty of ICT University of Malta June 20, 2013 Contents 1 Introduction 3 1.1 The Architecture and Design of SMock................

More information

Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 Objectives To understand the respective roles of hardware and software in a computing system. To learn what computer

More information

VIRTUALIZATION AND CPU WAIT TIMES IN A LINUX GUEST ENVIRONMENT

VIRTUALIZATION AND CPU WAIT TIMES IN A LINUX GUEST ENVIRONMENT VIRTUALIZATION AND CPU WAIT TIMES IN A LINUX GUEST ENVIRONMENT James F Brady Capacity Planner for the State Of Nevada jfbrady@doit.nv.gov The virtualization environment presents the opportunity to better

More information

Using jvmstat and visualgc to Solve Memory Management Problems

Using jvmstat and visualgc to Solve Memory Management Problems Using jvmstat and visualgc to Solve Memory Management Problems java.sun.com/javaone/sf 1 Wally Wedel Sun Software Services Brian Doherty Sun Microsystems, Inc. Analyze JVM Machine Memory Management Problems

More information

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

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,

More information

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB Executive Summary Oracle Berkeley DB is used in a wide variety of carrier-grade mobile infrastructure systems. Berkeley DB provides

More information

Introduction. What is an Operating 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

More information

Eclipse Visualization and Performance Monitoring

Eclipse Visualization and Performance Monitoring Eclipse Visualization and Performance Monitoring Chris Laffra IBM Ottawa Labs http://eclipsefaq.org/chris Chris Laffra Eclipse Visualization and Performance Monitoring Page 1 Roadmap Introduction Introspection

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last 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 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Java DB Performance. Olav Sandstå Sun Microsystems, Trondheim, Norway Submission ID: 860

Java DB Performance. Olav Sandstå Sun Microsystems, Trondheim, Norway Submission ID: 860 Java DB Performance Olav Sandstå Sun Microsystems, Trondheim, Norway Submission ID: 860 AGENDA > Java DB introduction > Configuring Java DB for performance > Programming tips > Understanding Java DB performance

More information

Practical Performance Understanding the Performance of Your Application

Practical Performance Understanding the Performance of Your Application Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance

More information

Tasks Schedule Analysis in RTAI/Linux-GPL

Tasks Schedule Analysis in RTAI/Linux-GPL Tasks Schedule Analysis in RTAI/Linux-GPL Claudio Aciti and Nelson Acosta INTIA - Depto de Computación y Sistemas - Facultad de Ciencias Exactas Universidad Nacional del Centro de la Provincia de Buenos

More information

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner Real-Time Component Software slide credits: H. Kopetz, P. Puschner Overview OS services Task Structure Task Interaction Input/Output Error Detection 2 Operating System and Middleware Applica3on So5ware

More information

PC Based Escape Analysis in the Java Virtual Machine

PC Based Escape Analysis in the Java Virtual Machine PC Based Escape Analysis in the Java Virtual Machine Manfred Jendrosch, Gerhard W. Dueck, Charlie Gracie, and AndréHinkenjann Abstract Current computer architectures are multi-threaded and make use of

More information

Web Performance, Inc. Testing Services Sample Performance Analysis

Web Performance, Inc. Testing Services Sample Performance Analysis Web Performance, Inc. Testing Services Sample Performance Analysis Overview This document contains two performance analysis reports created for actual web testing clients, and are a good example of the

More information

In Memory Accelerator for MongoDB

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

More information

Box Leangsuksun+ * Thammasat University, Patumtani, Thailand # Oak Ridge National Laboratory, Oak Ridge, TN, USA + Louisiana Tech University, Ruston,

Box Leangsuksun+ * Thammasat University, Patumtani, Thailand # Oak Ridge National Laboratory, Oak Ridge, TN, USA + Louisiana Tech University, Ruston, N. Saragol * Hong Ong# Box Leangsuksun+ K. Chanchio* * Thammasat University, Patumtani, Thailand # Oak Ridge National Laboratory, Oak Ridge, TN, USA + Louisiana Tech University, Ruston, LA, USA Introduction

More information

WEBLOGIC ADMINISTRATION

WEBLOGIC ADMINISTRATION WEBLOGIC ADMINISTRATION Session 1: Introduction Oracle Weblogic Server Components Java SDK and Java Enterprise Edition Application Servers & Web Servers Documentation Session 2: Installation System Configuration

More information

The Advantages of Class Loaders Over Compaction in Java

The Advantages of Class Loaders Over Compaction in Java Application Isolation in the Java Virtual Machine Grzegorz Czajkowski Sun Microsystems Laboratories 2600 Casey Avenue Mountain View, CA 94043, USA +1-650-336-6501 Grzegorz.Czajkowski@sun.com Abstract To

More information

Principles and characteristics of distributed systems and environments

Principles and characteristics of distributed systems and environments Principles and characteristics of distributed systems and environments Definition of a distributed system Distributed system is a collection of independent computers that appears to its users as a single

More information