Termination and rollback in language-based systems
Rudys, Algis P.
Wallach, Dan S.
Master of Science
Language run-time systems are routinely used to host potentially buggy or malicious code in a secure environment. For this thesis, we address a single aspect of the resource-management problem, the problem of code termination, including the related issue of restarting previously terminated code. We provide formal analysis, including proofs of the correctness of our termination system for an idealized language. We also consider implementations of our systems in Java using bytecode rewriting. The performance impact of these systems ranged from relatively modest (3 to 25% overhead for soft termination), to severe, although perhaps unavoidable (6 to 23x overhead for transactional rollback). We discuss the technique of bytecode rewriting as used here to modify the semantics of a language. Our goal is to provide a mechanism based on code-to-code transformations with semantics for codelets in a run-time system similar to the semantics provided by operating systems for managing processes.