Using a Multi-Tasking VM for Mobile Applications

This paper discusses the potential benifits of switching Android's single VM per application runtime environment to a multi-tasking VM environment. A multi-tasking VM is a type of a Java virtual machine with the ability to execute multiple Java applications in one memory space. It does so by isolating the applications to prevent interferences. We argue that using a multi-tasking VM for mobile systems provides better control over application lifecycle management, more flexible memory management, and faster inter-application communication. To support this argument, we discuss a preliminary design, implementation, and evaluation for an alternative to Android's communication mechanism, Binder, and demonstrate the benefits afforded by a multi-tasking VM.

[1]  Nathaniel Nystrom,et al.  Code Sharing among Virtual Machines , 2002, ECOOP.

[2]  Lukasz Ziarek PRP: priority rollback protocol -- a PIP extension for mixed criticality systems: short paper , 2010, JTRES '10.

[3]  Jan Vitek,et al.  High-level programming of embedded hard real-time devices , 2010, EuroSys '10.

[4]  Lukasz Ziarek,et al.  The Fiji MultiVM Architecture , 2015, JTRES.

[5]  Lukasz Ziarek,et al.  Non-blocking inter-partition communication with wait-free pair transactions , 2013, JTRES '13.

[6]  Mick J. Jordan,et al.  Resource partitioning in a Java™ operating environment , 2006 .

[7]  Wolfgang Schröder-Preikschat,et al.  Tailor‐made JVMs for statically configured embedded systems , 2012, Concurr. Comput. Pract. Exp..

[8]  James R. Larus,et al.  Singularity: rethinking the software stack , 2007, OPSR.

[9]  James R. Larus,et al.  Sealing OS processes to improve dependability and safety , 2007, EuroSys '07.

[10]  Kirk Reinholtz,et al.  Scoped memory , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[11]  Lukasz Ziarek,et al.  RTDroid: A Design for Real-Time Android , 2016, IEEE Transactions on Mobile Computing.

[12]  Lukasz Ziarek,et al.  Real-time android with RTDroid , 2014, MobiSys.

[13]  Laurent Daynès,et al.  A Multi-User Virtual Machine , 2003, USENIX Annual Technical Conference, General Track.

[14]  Grzegorz Czajkowski,et al.  Multitasking without compromise: a virtual machine evolution , 2001, SIGP.

[15]  Wolfgang Schröder-Preikschat,et al.  KESO: an open-source multi-JVM for deeply embedded systems , 2010, JTRES '10.

[16]  Grzegorz Czajkowski,et al.  Application isolation in the Java Virtual Machine , 2000, OOPSLA '00.

[17]  James R. Larus,et al.  Language support for fast and reliable message-based communication in singularity OS , 2006, EuroSys.

[18]  References , 1971 .