Software aging is a phenomenon defined as the continuing degradation of software systems during runtime, being particularly noticeable in long-running applications. Memory-related aging effects are one of the most important problems in this research field. Therefore understanding their causes and how they work is a major requirement in designing dependable software systems. In this paper we go deep into how memory management works inside application process, focusing on two memory problems that cause software aging: fragmenting and leakage. We explain the mechanics of memory-related software aging effects dissecting a real and widely adopted memory allocator. Along with the theoretical explanation, we present an experimental study that illustrates how memory fragmenting and leakage occur and how they accumulate over time in order to cause system aging-related failures.
The accumulating effects of software aging have direct influence to the rate of aging-related failures. So far, the most investigated software aging effects are memory related, such as memory leak and memory fragmentation problems. In this work, we present a practical body of knowledge to support the solid understanding of the most important issues in monitoring memory-related software aging effects, focusing on memory leak problems. We discuss important drawbacks of using well known system-wide and application-specific aging indicators, as well as propose effective solutions for both cases.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.