File-Based Sharing For Dynamically Compiled Code On Dalvik Virtual Machine

碩士 === 國立交通大學 === 資訊科學與工程研究所 === 99 === Memory footprint is considered as an important design issue for embedded systems. Sharing dynamically compiled code among virtual machines can reduce memory footprint and recompilation overhead. On the other hand, sharing writable native code may cause securit...

Full description

Bibliographic Details
Main Authors: Huang, Yao-Chih, 黃曜志
Other Authors: Yang, Wuu
Format: Others
Language:en_US
Published: 2010
Online Access:http://ndltd.ncl.edu.tw/handle/01799209939289539144
Description
Summary:碩士 === 國立交通大學 === 資訊科學與工程研究所 === 99 === Memory footprint is considered as an important design issue for embedded systems. Sharing dynamically compiled code among virtual machines can reduce memory footprint and recompilation overhead. On the other hand, sharing writable native code may cause security problems, due to support of Native function call such as JNI. We propose a native-code sharing mechanism that ensures the security for Dalvik virtual machine on the Android platform. Dynamically generated code is saved in a file and is shared with memory mapping when other VMs need the same code. Protection is granted by file-access permissions. To improve the security, we implement a daemon process, named Query Agent, to control all accesses to the native code and maintain all the information of traces, which are the units of the compilation in the Dalvik VM. We implement our code sharing mechanism on Android version 2.1 system, and experiment on an arm-based system. We get 45% code-cache size reduction and 9% performance improvement from eliminating recompilation overhead.