University of Illinois at Chicago
WOLOCH-THESIS-2022.pdf (1.45 MB)

JavaMVX: Multi-version Execution for Virtual Machine Languages

Download (1.45 MB)
posted on 2022-05-01, 00:00 authored by David Woloch
Multi-version execution (MVE) is a framework that uses software diversification for the purposes of increasing security, reliability, and availability. The goal of MVE is to generate the same observable behavior between two or more similar, but different processes e.g. different releases of the same program. Generally, MVE systems must provide a way to intercept the sources of nondeterministic input into the application to ensure the same observable states. MVE systems have limitations which prevent deployment on practical applications and on managed languages. We have developed a framework, JavaMVX, which intercepts sources of nondeterminism at the Java language level through an automatic program transformation at the bytecode level. We have built a prototype implementation and applied our approach to a set of realistic Java programs in the DaCapo benchmark suite to validate the feasibility of our framework.



Pina, Luis


Pina, Luis


Computer Science

Degree Grantor

University of Illinois at Chicago

Degree Level

  • Masters

Degree name

MS, Master of Science

Committee Member

Mansky, William Grechanik, Mark

Submitted date

May 2022

Thesis type



  • en

Usage metrics


    No categories selected