Abstract
Android users are occasionally troubled by the slow UI responses and sudden application/OS crashes. These problems are mainly caused by software aging, a phenomenon of progressive degradation of performance and dependability typically observed in long-running software systems. A countermeasure to software aging is software rejuvenation, i.e., manual or scheduled restart at different levels, such as application, OS, and device. Various software aging and rejuvenation models have been proposed for different software systems. However, these traditional models cannot be applied in the context of mobile devices, as they seldom consider the patterns of usage behavior and user experience specific to mobile phones. We address this problem based on the observations that the usage time of mobile phones is typically fragmented in daily life, with frequent and periodical switches between active and sleep modes, and that the user experience on fluent operation in the active mode is a key concern for mobile users. These insights are exploited to model the usage behavior and aging process by individual Stochastic Petri-Nets, and then to compose them into a Continuous Time Markov Chain (CTMC). Furthermore, we propose proactive rejuvenation strategies based on such CTMCs to achieve the best user experience and the least user interference, such as restarting the device when it is in sleep mode and before it enters an aged state. To consider user experience - a key concern of mobile users which is still less prominent in traditional dependability measurements – we propose new related metrics: for fluency (i.e., the probability that a phone offers a fast UI response to the users), and for the degree of overall user experience. We demonstrate the effectiveness and advantages of the proposed models and metrics via simulations as well as an empirical study.
Similar content being viewed by others
References
Alonso, J., Silva, L., Andrzejak, A., Silva, P., & Torres, J. (2007). High-available Grid services through the use of virtualized clustering, IEEE-GRID (pp. 34–41). Austin, USA.
Alonso, J., Belanche, L., & Avresky, D. R. (2011). Predicting software anomalies using machine learning techniques. In 2011 IEEE 10th international symposium on network computing and applications (pp. 163–170).
Alonso, J., Matias, R., Vicente, E., Maria, A., & Trivedi, K. S. (2013). A comparative experimental study of software rejuvenation overhead. Performance Evaluation, 70(3), 231–250.
An, C., & Rockmore, D. (2016). Predicting phone usage behaviors with sensory data using a hierarchical generative model. In Trends and applications in knowledge discovery and data mining (pp. 75–87). Cham.
Andrzejak, A., & Silva, L. (2008). Using machine learning for non-intrusive modeling and prediction of software aging. 11th IEEE/IFIP Network Operations and Management Symposium (NOMS), 25–32.
Andrzejak, A., Moser, M., & Silva, L. (2007). Managing performance of aging applications via synchronized replica rejuvenation. 18th IFIP/IEEE Distributed Systems: Operations and Management (DSOM), 98–109.
Andrzejak, A., Eichler, F., & Ghanavati, M. (2017). Detection of memory leaks in C/C++ code via machine learning. 9th International Workshop on Software Aging and Rejuvenation (WoSAR), 252–258.
Araujo, J., Matos, R., Maciel, P., & Matias, R. (2011). Software aging issues on the eucalyptus cloud computing infrastructure. In 2011 IEEE international conference on systems, man, and cybernetics (pp. 1411–1416).
Araujo, J., Alves, V., Oliveira, D., Dias, P., Silva, B., & Maciel, P. (2013). An investigative approach to software aging in android applications. In 2013 IEEE international conference on systems, man, and cybernetics (pp. 1229–1234).
Avizienis, A. (1985). The N-version approach to fault-tolerant software. IEEE Transactions on Software Engineering, SE-11(12), 1491–1501.
Avritzer, A., Bondi, A., Grottke, M., Trivedi, K. S., & Weyuker, E. J. (2006). Performance assurance via software rejuvenation: Monitoring, statistics and algorithms. In International conference on dependable systems and networks (DSN'06) (pp. 435–444).
Cassidy, K. J., Gross, K. C., & Malekpour, A. (2002). Advanced pattern recognition for detection of complex software aging phenomena in online transition processing servers. In Proceedings International Conference on Dependable Systems and Networks (pp. 478–482).
Cotroneo, D., Natella, R., Pietrantuono, R., & Russo, S. (2010). Software aging analysis of the Linux operating system. In 2010 IEEE 21st International Symposium on Software Reliability Engineering (pp. 71–80).
Cotroneo, D., Natella, R., Pietrantuono, R., & Russo, S. (2014). A survey of software aging and rejuvenation studies. Journal on Emerging Technologies in Computing Systems, 10(1), 1–34.
Cotroneo, D., Fucci, F., Iannillo, A. K., Natella, R., & Pietrantuono, R. (2016). Software aging analysis of the android Mobile OS. In 2016 IEEE 27th international symposium on software reliability engineering (ISSRE) (pp. 478–489).
Dohi, T., Gogeva-Popstojanova, K., & Trivedi, K. (2001). Estimating software rejuvenation schedules in high-assurance systems. Computer Journal, 44(6), 473–485.
Frumusanu, A. (2017). Apple Confirms CPU Limitation in Aging Devices. AnandTech. Available: https://www.anandtech.com/show/12184/apple-confirms-cpu-limitation-in-ageing-devices. Last accessed at Dec. 10, 2018.
Frumusanu, A., & Cutress, I. (2018). Huawei & Honor;s recent benchmarking behaviour: a cheating headache. AnandTech. Available: https://www.anandtech.com/show/13318/huawei-benchmark-cheating-headache, Last accessed at Dec. 10, 2018.
S. Garg, A. v. Moorsel, K. Vaidyanathan, and K. S. Trivedi, "A methodology for detection and estimation of software aging," in Proceedings Ninth International Symposium on Software Reliability Engineering (Cat. No.98TB100257), 1998, pp. 283–292.
Grottke, M., Li, L., Vaidyanathan, K., & Trivedi, K. S. (2006). Analysis of software aging in a web server. IEEE Transitions on Reliability, 55(3), 411–420.
Guo, C., Wu, H., Hua, X., Lautner, D., & Ren, S. (2015). Use two-level rejuvenation to combat software aging and maximize average resource performance. In 2015 IEEE 17th international conference on high performance computing and communications (pp. 1160–1165).
Huang, Y., Kintala, C., Kolettis, N., & Fulton, N. D. (1995). Software rejuvenation: Analysis, module and applications. In Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers (pp. 381–390).
Jouin, M., Gouriveau, R., Hissel, D., Péra, M.-C., & Zerhouni, N. (2016). Degradations analysis and aging modeling for health assessment and prognostics of PEMFC. Reliability Engineering & System Safety, 148, 78–95.
Kang, Y., Zhou, Y., Gao, M., Sun, Y., & Lyu, M. R. (2016). Experience report: Detecting poor-responsive UI in android applications. In 2016 IEEE 27th international symposium on software reliability engineering (ISSRE) (pp. 490–501).
Kourai, K., & Chiba, S. (2007). A fast rejuvenation technique for server consolidation with virtual machines. In 37th annual IEEE/IFIP international conference on dependable systems and networks (DSN'07) (pp. 245–255).
Machida, F., Xiang, J., Tadano, K., & Maeno, Y. (2012). Aging-related bugs in cloud computing software. In 2012 IEEE 23rd international symposium on software reliability engineering workshops (pp. 287–292).
Machida, F., Xiang, J., Tadano, K., & Maeno, Y. (2017). Lifetime extension of software execution subject to aging. IEEE Transitions on Reliability, 66(1), 123–134.
Magalhães, J. P., & Silva, L. M. (2010). Prediction of performance anomalies in web-applications based-on software aging scenarios. In 2010 IEEE second international workshop on software aging and rejuvenation (pp. 1–7).
Matias, R., Barbetta, P. A., Trivedi, K. S., & Filho, P. J. F. (2010). Accelerated degradation tests applied to software aging experiments. IEEE Transitions on Reliability, 59(1), 102–114.
Meng, H., Liu, J., & Hei, X. (2015). Modeling and optimizing periodically inspected software rejuvenation policy based on geometric sequences. Reliability Engineering & System Safety, 133, 184–191.
No author. (2018). Global smartphone sales to end users from 1st quarter 2009 to 1st quarter 2018, by operating system (in million units) [Online]. Available: https://www.statista.com/statistics/266219/global-smartphone-sales-since-1st-quarter-2009-by-operating-system/. Last accessed at July 11, 2018.
Oris. (2018). [Online]. Available: https://www.oris-tool.org/.
Parnas, D. L. (1994). Software aging. Presented at the Proceedings of the 16th International Conference on Software Engineering, Sorrento, Italy.
Qiao, Y., Zheng, Z., & Qin, F. (2016). An empirical study of software aging manifestations in android. In 2016 IEEE international symposium on software reliability engineering workshops (ISSREW) (pp. 84–90).
Trivedi, K. S. (2014). Probability & Statistics with reliability, queuing and computer science applications (Second ed.). John Wiley & Sons, Inc.
Trivedi, K. S., Vaidyanathan, K., & Goseva-Popstojanova, K. (2000). Modeling and analysis of software aging and rejuvenation. In Proceedings 33rd annual simulation symposium (SS 2000) (pp. 270–279).
Vicario, E., Sassoli, L., & Carnevali, L. (2009). Using stochastic state classes in quanti- tative evaluation of dense-time reactive systems. IEEE Transactions on Software Engineering, 35(5), 703–719.
Weng, C., Xiang, J., Xiong, S., Zhao, D., & Yang, C. (2016). Analysis of software aging in android. In 2016 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW) (pp. 78–83).
Weng, C., Zhao, D., Lu, L., Xiang, J., Yang, C., & Li, D. (2017). A rejuvenation strategy in android. In 2017 IEEE international symposium on software reliability engineering workshops (ISSREW) (pp. 273–279).
Xiang, J., Weng, C., Zhao, D., Jiang, T., Xiong, S., Li, L., & Andrzejak, A. (2018). A new software rejuvenation model for android. In 2018 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW) (pp. 293–299).
Xie, W., Hong, Y., & Trivedi, K. (2005). Analysis of a two-level software rejuvenation policy. Reliability Engineering & System Safety, 87(1), 13–22.
Acknowledgements
This work was partially supported by the National Natural Science Foundation of China (Grant No. 61672398, 61806151), the Defense Industrial Technology Development Program (Grant No. JCKY2018110C165), the Hubei Provincial Natural Science Foundation of China (Grant No. 2017CFA012), and the Open Fund of Hubei Key Lab. of Transportation of IoT (Grant No. 2017III028-004).
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Xiang, J., Weng, C., Zhao, D. et al. Software aging and rejuvenation in android: new models and metrics. Software Qual J 28, 85–106 (2020). https://doi.org/10.1007/s11219-019-09475-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-019-09475-0