首页> 外文会议>International Symposium on Software Reliability Engineering >Bear: A Framework for Understanding Application Sensitivity to OS (Mis) Behavior
【24h】

Bear: A Framework for Understanding Application Sensitivity to OS (Mis) Behavior

机译:熊:一个理解OS(MIS)行为的应用程序敏感性的框架

获取原文

摘要

Applications are generally written assuming a predictable and well-behaved OS. In practice, they experience unpredictable misbehavior at the OS level and across OSes: different OSes can handle network events differently, APIs can behave differently across OSes, and OSes may be compromised or buggy. This unpredictability is challenging because its sources typically manifest during deployment and are hard to reproduce. This paper introduces Bear, a framework for statistical analysis of application sensitivity to OS unpredictability that can help developers build more resilient software, discover challenging bugs and identify the scenarios that most need validation. Bear analyzes a program with a set of perturbation strategies on a set of commonly used system calls in order to discover the most sensitive system calls for each application, the most impactful strategies, and how they predict abnormal program outcome. We evaluated Bear with 113 CPU and IO-bound programs, and our results show that null memory dereferencing and erroneous buffer operations are the most impactful strategies for predicting abnormal program execution and that their impacts increase ten-fold with workload increase (e.g. number of network requests from 10 to 1000). Generic system calls are more sensitive than specialized system calls-for example, write and sendto can both be used to send data through a socket, but the sensitivity of write is twice that of sendto. System calls with an array parameter (e.g. read) are more sensitive to perturbations than those having a struct parameter with a buffer (e.g readv). Moreover, the fewer parameters a system call has, the more sensitive it is.
机译:通常是假设可预测和良好表现良好的操作系统的应用程序。在实践中,他们在OS级别和OSS横跨OS中遇到不可预测的不可预卜问题:不同的内容可以不同地处理网络事件,API可以跨越OS不同地行使,并且IS可以受到影响或错误。这种不可预测性是具有挑战性的,因为它的来源通常在部署期间表现出来,并且很难重现。本文介绍了对OS令人难以预测性的应用程序敏感性统计分析的框架,可以帮助开发人员构建更多弹性软件,发现具有挑战性的错误并确定最需要验证的场景。熊分析了一组常用的系统调用的一组扰动策略,以便发现每个应用程序,最有影响力的策略以及他们如何预测异常计划结果的最敏感的系统呼叫。我们评估了113个CPU和IO绑定程序的熊,我们的结果表明,空存储器解除引用和错误的缓冲操作是预测异常程序执行的最有影响力的策略,并且它们的影响增加了与工作量增加增加十倍(例如网络数量请求从10到1000)。通用系统调用比专门的系统调用更敏感 - 例如,写入和发送既可以通过套接字发送数据,但写入的敏感性是Sendto的两倍。系统调用与数组参数(例如,读取)对扰动比具有缓冲器(例如READV)的结构参数更敏感。此外,系统调用的参数越少,它越敏感。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号