首页> 外文会议>IEEE 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

机译:Bear:一种了解应用程序对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的情况下编写应用程序。在实践中,它们在操作系统级别和跨OS上遇到不可预知的异常行为:不同的OS可以以不同的方式处理网络事件,API在各个OS上的行为可能不同,并且OS可能受到威胁或出现故障。这种不可预测性极具挑战性,因为其来源通常会在部署过程中显现出来,并且难以复制。本文介绍了Bear,该框架用于对应用程序对操作系统不可预测性的敏感性进行统计分析,可以帮助开发人员构建更具弹性的软件,发现具有挑战性的错误并确定最需要验证的方案。 Bear会在一组常用的系统调用上使用一组扰动策略来分析程序,以便发现每个应用程序最敏感的系统调用,最有影响力的策略以及它们如何预测异常程序结果。我们用113个受CPU和IO约束的程序对Bear进行了评估,结果表明,空内存解引用和错误的缓冲区操作是预测异常程序执行的最有影响力的策略,并且随着工作量的增加,其影响会增加十倍(例如,网络数量)请求从10到1000)。通用系统调用比专用系统调用更敏感-例如,write和sendto都可以用于通过套接字发送数据,但是write的灵敏度是sendto的两倍。具有数组参数(例如read)的系统调用比具有带缓冲区的struct参数(例如readv)的系统调用对扰动更为敏感。而且,系统调用具有的参数越少,它越敏感。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号