Worst-Case Input Generation for Concurrent Programs under Non-Monotone Resource Metrics

09/03/2023
by   Long Pham, et al.
0

Worst-case input generation aims to automatically generate inputs that exhibit the worst-case performance of programs. It has several applications, and can, for example, detect vulnerabilities to denial-of-service attacks. However, it is non-trivial to generate worst-case inputs for concurrent programs, particularly for resources like memory where the peak cost depends on how processes are scheduled. This article presents the first sound worst-case input generation algorithm for concurrent programs under non-monotone resource metrics like memory. The key insight is to leverage resource-annotated session types and symbolic execution. Session types describe communication protocols on channels in process calculi. Equipped with resource annotations, resource-annotated session types not only encode cost bounds but also indicate how many resources can be reused and transferred between processes. This information is critical for identifying a worst-case execution path during symbolic execution. The algorithm is sound: if it returns any input, it is guaranteed to be a valid worst-case input. The algorithm is also relatively complete: as long as resource-annotated session types are sufficiently expressive and the background theory for SMT solving is decidable, a worst-case input is guaranteed to be returned. A simple case study of a web server's memory usage demonstrates the utility of the worst-case input generation algorithm.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/22/2017

Work Analysis with Resource-Aware Session Types

While there exist several successful techniques for supporting programme...
research
06/08/2018

Badger: Complexity Analysis with Fuzzing and Symbolic Execution

Hybrid testing approaches that involve fuzz testing and symbolic executi...
research
12/24/2020

Rast: A Language for Resource-Aware Session Types

Traditional session types prescribe bidirectional communication protocol...
research
05/11/2002

Computing stable models: worst-case performance estimates

We study algorithms for computing stable models of propositional logic p...
research
03/07/2016

On the limitations of analysing worst-case dynamic energy of processing

This paper examines dynamic energy consumption caused by data during sof...
research
09/13/2018

Do Your Cores Play Nicely? A Portable Framework for Multi-core Interference Tuning and Analysis

Multi-core architectures can be leveraged to allow independent processes...
research
08/18/2021

Selectively-Amortized Resource Bounding (Extended Version)

We consider the problem of automatically proving resource bounds. That i...

Please sign up or login with your details

Forgot password? Click here to reset