International Workshop on Dynamic Analysis最新文献

筛选
英文 中文
A runtime environment for online processing of operating system kernel events 用于在线处理操作系统内核事件的运行时环境
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134245
Michael Schöbel, A. Polze
{"title":"A runtime environment for online processing of operating system kernel events","authors":"Michael Schöbel, A. Polze","doi":"10.1145/2134243.2134245","DOIUrl":"https://doi.org/10.1145/2134243.2134245","url":null,"abstract":"Different approaches were proposed for the logging of operating system kernel events. In general, the resulting logfiles are huge and have to be analyzed by administrators, who try to identify problems and derive adequate actions. The idea of autonomic computing is to automate such tasks.\u0000 As an important step towards this vision, computer systems have to be self-aware, i.e. they must be able to detect their runtime state and react if certain problems are detected. In contrast to control-theory based approaches for autonomic computing, the processing of discrete eventstreams offers the possibility of detecting singular events such as attacks or failing components directly.\u0000 Our proposed runtime environment (1) processes event pattern descriptions, (2) combines events generated by usermode applications and the operating system kernel, (3) can be integrated into the operating system kernel to handle the events as close to their source as possible, (4) adaptively chooses relevant events to keep system disturbance low, and (5) provides an API for the implementation of ideas of autonomic computing in context of reactions to event patterns.\u0000 In this paper, the event pattern specification language and the runtime environment are described. The described prototype implements the envisioned runtime environment in user-mode and is able to look for event patterns in prerecorded event logfiles. Additionally, an outlook on the planned operating system kernel integration is given.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132566397","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Tiddle: a trace description language for generating concurrent benchmarks to test dynamic analyses tidle:一种跟踪描述语言,用于生成并发基准以测试动态分析
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134248
Caitlin Sadowski, Jaeheon Yi
{"title":"<u>T</u>i<u>d</u>d<u>l</u>e: a <u>t</u>race <u>d</u>escription <u>l</u>anguage for generating concurrent benchmarks to test dynamic analyses","authors":"Caitlin Sadowski, Jaeheon Yi","doi":"10.1145/2134243.2134248","DOIUrl":"https://doi.org/10.1145/2134243.2134248","url":null,"abstract":"Dynamic analysis is a promising technique for finding concurrency bugs in multithreaded programs. However, testing a dynamic analysis tool can be difficult. Researchers end up writing large amounts of small benchmark programs. Since the benchmarks themselves are concurrent programs, they may execute nondeterministically, complicating testing of the analysis tool.\u0000 We propose testing dynamic analyses by writing traces in a simple trace description language, Tiddle. Our implementation, written in Haskell, generates deterministic multithreaded Java programs for testing dynamic analyses. We report that it is substantially easier to write programs with incriminating bugs such as race conditions in Tiddle than the corresponding Java source code version, reducing the amount of source code to maintain and understand. Although our implementation is targeted towards Java, the ideas extend to any other languages which support mutable fields and multiple threads.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114251913","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Using AOP for detailed runtime monitoring instrumentation 使用AOP进行详细的运行时监视工具
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134246
Amjad Nusayr, J. Cook
{"title":"Using AOP for detailed runtime monitoring instrumentation","authors":"Amjad Nusayr, J. Cook","doi":"10.1145/2134243.2134246","DOIUrl":"https://doi.org/10.1145/2134243.2134246","url":null,"abstract":"Although AOP has long been used for monitoring purposes, the level of detail that virtually all AOP frameworks support is not enough to support broad classes of monitoring applications. Often the method or function call is the basic unit of code weaving, and if some data access weaving is supported it is usually very limited, e.g., to object field access. In this paper we demonstrate the need for AOP to be extended if it is to support broad runtime monitoring needs, and then present two new joinpoint types for AspectJ, the basic block and loop back edge types. These allow much more fine-grained weaving of advice, which in turn supports a much larger category of runtime monitoring applications. We demonstrate the feasibility of these extensions with example prototype implementations using the AspectBench Compiler (abc).","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122227049","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 16
(Quickly) testing the tester via path coverage (快速地)通过路径覆盖测试测试人员
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134249
Alex Groce
{"title":"(Quickly) testing the tester via path coverage","authors":"Alex Groce","doi":"10.1145/2134243.2134249","DOIUrl":"https://doi.org/10.1145/2134243.2134249","url":null,"abstract":"The configuration complexity and code size of an automated testing framework may grow to a point that the tester itself becomes a significant software artifact, prone to poor configuration and implementation errors. Unfortunately, testing the tester by using old versions of the software under test (SUT) may be impractical or impossible: test framework changes may have been motivated by interface changes in the tested system, or fault detection may become too expensive in terms of computing time to justify running until errors are detected on older versions of the software. We propose the use of path coverage measures as a \"quick and dirty\" method for detecting many faults in complex test frameworks. We also note the possibility of using techniques developed to diversify state-space searches in model checking to diversify test focus, and an associated classification of tester changes into focus-changing and non-focus-changing modifications.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133137826","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Cooperative crug isolation 协同药物隔离
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134252
Aditya V. Thakur, Rathijit Sen, B. Liblit, Shan Lu
{"title":"Cooperative crug isolation","authors":"Aditya V. Thakur, Rathijit Sen, B. Liblit, Shan Lu","doi":"10.1145/2134243.2134252","DOIUrl":"https://doi.org/10.1145/2134243.2134252","url":null,"abstract":"With the widespread deployment of multi-core hardware, writing concurrent programs has become inescapable. This has made fixing concurrency bugs (or crugs) critical in modern software systems. Static analysis techniques to find crugs such as data races and atomicity violations are not scalable, while dynamic approaches incur high run-time overheads. Crugs pose a greater challenge since they manifest only under specific execution interleavings that may not arise during in-house testing. Thus there is a pressing need for a low-overhead program monitoring technique that can be used post-deployment.\u0000 We present Cooperative Crug Isolation (CCI), a low-overhead instrumentation technique to isolate the root causes of crugs. CCI inserts instrumentation that records occurrences of specific thread interleavings at run-time by tracking whether successive accesses to a memory location were by the same thread or by distinct threads. The overhead of this instrumentation is kept low by using a novel cross-thread random sampling strategy. We have implemented CCI on top of the Cooperative Bug Isolation framework. CCI correctly diagnoses bugs in several nontrivial concurrent applications while incurring only 2--7% run-time overhead.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132424193","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Limits of parallelism using dynamic dependency graphs 使用动态依赖图的并行性限制
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134253
Jonathan Chee Heng Mak, A. Mycroft
{"title":"Limits of parallelism using dynamic dependency graphs","authors":"Jonathan Chee Heng Mak, A. Mycroft","doi":"10.1145/2134243.2134253","DOIUrl":"https://doi.org/10.1145/2134243.2134253","url":null,"abstract":"The advance of multi-core processors has led to renewed interest in extracting parallelism from programs. It is sometimes useful to know how much parallelism is exploitable in the limit for general programs, to put into perspective the speedups of various parallelisation techniques. Wall's study [19] was one of the first to examine limits of parallelism in detail. We present an extension of Wall's analysis of limits of parallelism, by constructing Dynamic Dependency Graphs from execution traces of a number of benchmark programs, allowing us better visualisation of the types of dependencies which limit parallelism, as well as flexibility in transforming graphs when exploring possible optimisations. Some of the results of Wall and subsequent studies are confirmed, including the fact that average available parallelism is often above 100, but requires effective measures to resolve control dependencies, as well as memory renaming. We also study how certain compiler artifacts affect the limits of parallelism. In particular we show that the use of a spaghetti stack, as a technique to implicitly rename stack memory and break chains on true dependencies on the stack pointer, can lead to a doubling of potential parallelism.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114819809","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
Test case filtering and prioritization based on coverage of combinations of program elements 测试用例过滤和优先级排序基于程序元素组合的覆盖率
International Workshop on Dynamic Analysis Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134250
Wes Masri, Marwa El-Ghali
{"title":"Test case filtering and prioritization based on coverage of combinations of program elements","authors":"Wes Masri, Marwa El-Ghali","doi":"10.1145/2134243.2134250","DOIUrl":"https://doi.org/10.1145/2134243.2134250","url":null,"abstract":"Test case filtering is concerned with selecting from a test suite T a subset T' that is capable of revealing most of the defects revealed by T. A smaller T' is desirable since it translates to fewer test runs to be audited manually. Test case prioritization, a related technique, aims at scheduling the tests in T so that the defects are revealed as early as possible when T gets executed. We propose techniques that are based on coverage of combinations of program elements of different types. Clearly, exploring all possible combinations induced at runtime is infeasible, which calls for the use of an approximation algorithm. In this paper we investigate the use of a genetic algorithm to select a number of suitable combinations of program elements to be covered. We compared our technique to other coverage-based techniques that consider program elements of the same type and that do not take into account their combinations; our preliminary results were promising. For example, after filtering the original test suite T for JTidy, the resulting T' revealed all the defects in T and was only 14.1% its size.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126490797","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 16
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信