Impact of Java Compressed Heap on Mobile/Wireless Communication Mayumi KATO and Chia-Tien Dan Lo (itcc’05) Department of Computer Science, University of.

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

1 Overview Assignment 5: hints  Garbage collection Assignment 4: solution.
Kernel memory allocation
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 3 Memory Management Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Segmentation and Paging Considerations
The road to reliable, autonomous distributed systems
1 Improving the Performance of Distributed Applications Using Active Networks Mohamed M. Hefeeda 4/28/1999.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)
CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Memory Management 2010.
Chapter 3.2 : Virtual Memory
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
Virtual Memory:Part 2 Kashyap Sheth Kishore Putta Bijal Shah Kshama Desai.
Virtual Memory Deung young, Moon ELEC 5200/6200 Computer Architecture and Design Lectured by Dr. V. Agrawal Lectured by Dr. V.
PRASHANTHI NARAYAN NETTEM.
Compressed Instruction Cache Prepared By: Nicholas Meloche, David Lautenschlager, and Prashanth Janardanan Team Lugnuts.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schöberl.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Virtualization. Virtualization  In computing, virtualization is a broad term that refers to the abstraction of computer resources  It is "a technique.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
Computer Architecture Lecture 28 Fasih ur Rehman.
CH2 System models.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Lecture 10 : Introduction to Java Virtual Machine
Roopa.T PESIT, Bangalore. Source and Credits Dalvik VM, Dan Bornstein Google IO 2008 The Dalvik virtual machine Architecture by David Ehringer.
1 Chapter 3.2 : Virtual Memory What is virtual memory? What is virtual memory? Virtual memory management schemes Virtual memory management schemes Paging.
1 Tuning Garbage Collection in an Embedded Java Environment G. Chen, R. Shetty, M. Kandemir, N. Vijaykrishnan, M. J. Irwin Microsystems Design Lab The.
Java Security Model For Mobile Code Abdo Achkar. Mobile Code A mobile object is a “self contained piece” of executable code. Definition:  Code that can.
CT1513 Introduction To java © A.AlOsaimi.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
Development of Computers. Hardware 1. Original concept: Charles Babbage 1840’s 2. 4 basic components of a computer system: input store mill output (Now:
Virtual Memory The memory space of a process is normally divided into blocks that are either pages or segments. Virtual memory management takes.
Paging (continued) & Caching CS-3013 A-term Paging (continued) & Caching CS-3013 Operating Systems A-term 2008 (Slides include materials from Modern.
Introduction: Memory Management 2 Ideally programmers want memory that is large fast non volatile Memory hierarchy small amount of fast, expensive memory.
Processes and Virtual Memory
Feb 24-27, 2004ICDL 2004, New Dehli Improving Federated Service for Non-cooperating Digital Libraries R. Shi, K. Maly, M. Zubair Department of Computer.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Chapter 1 Introduction. Components of a Computer CPU (central processing unit) Executing instructions –Carrying out arithmetic and logical operations.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
Introduction to Programming 1 1 2Introduction to Java.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Memory COMPUTER ARCHITECTURE
Chapter 9: Virtual Memory – Part I
Lecture 1: Introduction to JAVA
Selective Code Compression Scheme for Embedded System
Java programming lecture one
Introduction Enosis Learning.
Introduction to Operating Systems
Adaptive Code Unloading for Resource-Constrained JVMs
Introduction CSC 111.
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
Principles of Programming Languages
Number Systems Instructions, Compression & Truth Tables.
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
Virtual Memory: Working Sets
CS703 - Advanced Operating Systems
Operating System Concepts
Operating System Concepts
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Presentation transcript:

Impact of Java Compressed Heap on Mobile/Wireless Communication Mayumi KATO and Chia-Tien Dan Lo (itcc’05) Department of Computer Science, University of Texas at San Antonio {mayumik, Speaker : Mayumi KATO

Outline 1.Introduction 2.Related work 3.Proposed architecture 4.Experiment and results 5.Conclusion and future work

Mobile Network Service Providers (network activated) Service Management Component Services Repository Service Archive service Web service Mobile commerce Audio, video animation Mobile/Wireless Communication Client and server models Introduction

Main Issue of Java mobile/wireless computing Introduction Many application demands more memory Mobile/wireless devices suffer from their small memory

Related work 6. Java heap memory compression [Lo and KATO ’03], [Chen et al. ’03], [KATO and Lo ’04] Introduction 1.Java classfile compression [Pugh’99] (small file, but the same info. as of a Jar file: eliminate redundancy) 2. Java bytecode factorization [Clausen et al.’00] (extended instruction set, macro instruction definitions from CAP file) -- bytecode instructions, replace common instruction sequences 3. Java compact bytecode instructions [Evans and Fraser’01] (grammar based method, G  a parse tree  derivation of the program) -- compression demands a minimum length derivation of the program 4. Java on-the-fly constant pool compaction [Rippert et al. ’04] (class loading, eliminate constant pool entry if not referenced) 5. Java profile-driven code unloading [Zhang and Krintz ’04] (JIT, unloading methods “has-not-been-used recently)

stored accessed Compressed heap Decompressing unit Compressing unit ALB table Cache unit Delayed buffer Java Virtual Machine (JVM) core Memory management module Store compressed block Delayed buffer is full? (compressed form) Local object accessed The proposed architecture consists of: Address Lookaside buffer

1.Reduce memory demands 2.Allow large client applications to run on mobile/wireless embedded devices 3.Minimize the number of active memory banks, and power off unused banks to eliminate the leakage current in memory system The Proposed Architecture Goals

The hardware de/compression engines are integrated into Java virtual machine (software) to de/compress a group (a page) of local and remote objects during Java execution. a group (a page) execution during Javaobjects Different from constant pool [Rippen et al.] native code [zhang and Krintz] Different from classfile [Pugh], bytecode [Clausen et al.], [Evans and Fraser] Different from per-object [Chen et al. 03] Features local and remote

Assumptions 1. Object is created either locally or remotely 2. Objects that come over the Internet have been compressed at the sending side 3. Objects that newly created inside the JVM are not compressed. The Proposed Architecture

stored Compressed heap Decompressing unit Compressing unit ALB table Cache unit Delayed buffer New local object created (uncompressed form) Java VM core Memory management module Store compressed block Delayed buffer is full?

stored Compressed heap Decompressing unit Compressing unit ALB table Cache unit Delayed buffer Remote object created and accessed (compressed form) Java VM core Memory management module Delayed buffer is full? Store compressed block Address Lookaside buffer

stored accessed Compressed heap Decompressing unit Compressing unit ALB table Cache unit Delayed buffer Java VM core Memory management module Delayed buffer is full? Store compressed block Compressed form Address Lookaside buffer

Garbage collection Java memory management system –Garbage collection mechanism Mark, sweep, compaction phases We redesigned it to handle compressed objects –Mark, similar to the original version –Sweep and compaction phases Migrated into de/compression modules Delayed until de/compression is invoked The Proposed Architecture

Garbage collection mechanism The Proposed Architecture From the caching unit

In-memory compression algorithms Popular compression algorithm LZ family –Designed for human text –Not suitable for data in memory/cache because of its regularity modeling Most in-memory/cache data –Word aligned integers and pointers –Contains many repeating zero values We use Wilson-Kaplan (WK) compression family –A dictionary-based algorithm The Proposed Architecture

WK algorithms Coding format [4 bits] [10 bits] [22 bits] Dictionary indexlow upper Match type Coding specification ZERO EXACT PARTIAL MISS high low

WK Example A0129FAE A0129CAE A0129DAE A01290AE A0129FAE no match partial exact Input Dictionary output

Experiment and Results 1.Examined compression techniques on mobile/wireless devices (CS LAN) 2.Show their impact using space and time efficiencies

W gc : watermark on the original architecture (gc) W comp+gc : watermark on the proposed architecture (compression + gc) T gc : total execution time (including gc time) on the original architecture T comp+gc : total execution time (including comp. and gc times) on the proposed architecture W gc spaceEfficiency = W comp+gc T gc timeEfficiency = T comp+gc

Summaries of Experiment Results Application Space Efficiency Viewer 256KB heap 2.05 HTTP demo 64KB heap 1.80 Stock 64KB heap 2.50 Audiodemo 64KB heap 2.20 Manyballs 32KB heap 2.09 Space efficiency 2.0 –Reduce heap memory demand to 50% or more on average –Independent of the size of Java dynamic heap –Half of the memory banks for Java heap may never be turned on –More than 50% of the memory leakage can be saved Experiment and results

Time efficiency 1.0 –HTTP demo, Audio demo, many balls No time overhead Good data and code locality and less invocation of garbage collection Time efficiency 0.99 –Stock and Viewer Time overhead is within 1 % The use of local database and disk accesses? Application time Efficiency Viewer 256KB heap 0.99 HTTP demo 64KB heap 1.00 Stock 64KB heap 0.99 Audiodemo 64KB heap 1.00 Manyballs 32KB heap 1.00

Conclusion and Future Work We have seen the impact of Java compressed heap. Results show The compressed heap –Effective –Ensure small memory footprints for mobile/wireless application with any memory demand. Experiment and results

On-going work Tuning speed Future work Studying the impact of the compressed heap on remote object

Questions URL paper : ieee library 6 pages, but with Dr. Lo’s permission