Abstract
Understanding and managing the propagation of states in operating systems has become an intractable problem due to their sheer size and complexity. Despite modularization efforts, it remains a significant barrier to many contemporary computing goals: process migration, fault isolation and tolerance, live update, software virtualization, and more. Though many previous OS research endeavors have achieved these goals through ad-hoc, tedious methods, we argue that they have missed the underlying reason why these goals are so challenging: state spill. State spill occurs when a software entity's state undergoes lasting changes as a result of a transaction from another entity. In order to increase awareness of state spill and its harmful effects, we conduct a thorough study of modern OSes and contribute a classification of design patterns that cause state spill.We present STATESPY, an automated tool that leverages cooperative static and runtime analysis to detect state spill in real software entities. Guided by STATESPY, we demonstrate the presence of state spill in 94% of Android system services. Finally, we analyze the harmful impacts of state spill and suggest alternative designs and strategies to mitigate them.
Cite
CITATION STYLE
Boos, K., Del Vecchio, E., & Zhong, L. (2017). A characterization of state spill in modern operating systems. In Proceedings of the 12th European Conference on Computer Systems, EuroSys 2017 (pp. 389–404). Association for Computing Machinery, Inc. https://doi.org/10.1145/3064176.3064205
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.