Automatic persistent memory management for the spotless javaTM virtual machine on the palm connected organizer

  • Authors:
  • Daniel Schneider;Bernd Mathiske;Matthias Ernst;Matthew L. Seidl

  • Affiliations:
  • CoreMedia AG, Hamburg and Sun Microsystems, Inc. Palo Alto, CA;Sun Microsystems, Inc. Palo Alto, CA;CoreMedia AG, Hamburg and Sun Microsystems, Inc. Palo Alto, CA;Sun Microsystems, Inc. Palo Alto, CA

  • Venue:
  • JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Palm organizers are widely used in a multi-tasking fashion. Users switch from one application to another without losing the context established in either of them. Despite its obvious usefulness there is no automatic support for this convenience in the organizer's operating system, PalmOS. Programmers must implement event callbacks that use the PalmOS database API to save and reload specific application state. In this report we describe how this burden can be eliminated. We enhanced the Spotless JavaTM virtual machine for the Palm organizer with transparent multi-tasking support that automates persistence. As a consequence, running Java programs can be transfered between two Palm organizers using the infra-red link. A transfered program will resume on the receiving organizer in the exact same state as it had on the sender. In addition, a HotSync operation can effectively be used to establish a checkpoint for each Java program involved. Originally, the address range available for running programs was restricted to a few tens of KB in the dynamic RAM area. By directly addressing the much larger static RAM area our modified VM supports address ranges of several MB. We provide an easy-to-use protocol that leverages persistent threads for automatic life cycle control of external resources (e.g. windows, forms and databases). When applied at the library level, this protocol maintains complete persistence transparency for the application programmer.