37245904
Model checking the Java meta-locking algorithm
We apply the XMC model checker to the Java meta-locking algorithm, a highly optimized technique for ensuring mutually exclusive access by threads to object monitor queues. Our abstract specification of the meta-locking algorithm is fully parameterized, both on M, the number of threads, and N, the number of objects. Using XMC, we show that for a variety of values of M and N, the algorithm indeed provides mutual exclusion and freedom from lockout.
8152994
Localizing Program Errors for Cimple Debugging
We present automated techniques for the explanation of counter-examples, where a counter-example should be understood as a sequence of program statements. Our approach is based on variable dependency analysis and is applicable to programs written in Cimple, an expressive subset of the C programming language. Central to our approach is the derivation of a focus-statement sequence (FSS) from a given counter-example: a subsequence of the counter-example containing only those program statements that directly or indirectly affect the variable valuation leading to the program error behind the counter-example. We develop a ranking procedure for FSSs where FSSs of higher rank are conceptually easier to understand and correct than those of lower rank. We also analyze constraints over uninitialized variables in order to localize program errors to specific program segments; this often allows the user to subsequently take appropriate debugging measures. We have implemented our techniques in the FocusCheck model checker, which efficiently checks for assertion violations in Cimple programs on a per-procedure basis. The practical utility of our approach is illustrated by its successful application to a fast, linear-time median identification algorithm commonly used in statistical analysis and in the Resolution Advisory module of the Traffic Collision Avoidance System.
5532229
Modeling Web Services by Iterative Reformulation of Functional and Non-functional Requirements
We propose an approach for incremental modeling of composite Web services. The technique takes into consideration both the functional and non-functional requirements of the composition. While the functional requirements are described using symbolic transition systems—transition systems augmented with state variables, function invocations, and guards; non-functional requirements are quantified using thresholds. The approach allows users to specify an abstract and possibly incomplete specification of the desired service (goal) that can be realized by selecting and composing a set of pre-existing services. In the event that such a composition is unrealizable, i.e. the composition is not functionally equivalent to the goal or the non-functional requirements are violated, our system provides the user with the causes for the failure, that can be used to appropriately reformulate the functional and/or non-functional requirements of the goal specification.
43271530
Compositional analysis for verification of parameterized systems
Many safety-critical systems that have been considered by the verification community are parameterized by the number of concurrent components in the system, and hence describe an infinite family of systems. Traditional model checking techniques can only be used to verify specific instances of this family. In this paper, we present a technique based on compositional model checking and program analysis for automatic verification of infinite families of systems. The technique views a parameterized system as an expression in a process algebra (CCS) and interprets this expression over a domain of formulas (modal mu-calculus), considering a process as a property transformer. The transformers are constructed using partial model checking techniques. At its core, our technique solves the verification problem by finding the limit of a chain of formulas. We present a widening operation to find such a limit for properties expressible in a subset of modal mu-calculus. We describe the verification of a number of parameterized systems using our technique to demonstrate its utility.
17954434
Fast proxy delivery of multiple streaming sessions in shared running buffers
With the falling price of memory, an increasing number of multimedia servers and proxies are now equipped with a large memory space. Caching media objects in the memory of a proxy helps to reduce the network traffic, the disk I/O bandwidth requirement, and the data delivery latency. The running buffer approach and its alternatives are representative techniques to caching streaming data in the memory. There are two limits in the existing techniques. First, although multiple running buffers for the same media object co-exist in a given processing period, data sharing among multiple buffers is not considered. Second, user access patterns are not insightfully considered in the buffer management. In this paper, we propose two techniques based on shared running buffers in the proxy to address these limits. Considering user access patterns and characteristics of the requested media objects, our techniques adaptively allocate memory buffers to fully utilize the currently buffered data of streaming sessions, with the aim to reduce both the server load and the network traffic. Experimentally comparing with several existing techniques, we show that the proposed techniques achieve significant performance improvement by effectively using the shared running buffers.
908197
WebSob: A Tool for Robustness Testing of Web Services
Web services are a popular way of implementing a service-oriented architecture. Testing can be used to help assure both the correctness and robustness of a web service. Because manual testing is tedious, tools are needed to automate test generation and execution for web services. This paper presents WebSob, a tool for automatically generating and executing web-service requests given a service provider's Web service description language (WSDL) specification. We have applied WebSob to freely available web services and our experiences show that WebSob can be used to quickly generate and execute web-service requests that may reveal robustness problems with no knowledge of the underlying web service implementation.
8618090
Computing the first Betti number and the connected components of semi-algebraic sets
In this paper we describe the first singly exponential algorithm for computing the first Betti number of a given semi-algebraic set. We also describe algorithms for obtaining semi-algebraic descriptions of the semi-algebraically connected components of any given real algebraic or semi-algebraic set. Singly exponential algorithms for computing the zero-th Betti number, and the Euler-Poincaré characteristic, were known before. No singly exponential algorithm was known for computing any of the individual Betti numbers other than the zero-th one.
38040152
Multichannel permutation filters
Vector order statistic based filters designed to exploit the correlation between the channels of a multichannel signal offer improved performance over purely marginal processing. In this paper, the class of permutation filters are extended to handle multichannel signals. Permutation filters are well suited for image processing; they are robust, able to preserve details, and edges in image and video signals, and can also model complicated non-linear systems accurately. Multichannel permutation filters are based on the permutation of a set of sequential observations from a multidimensional process. There exists no unique method for the ranking of vectors, so we evaluate two ranking formulations that preserve characteristics useful in constructing estimators. Simulation results for a video restoration problem are presented.
3023035
Computing the first few Betti numbers of semi-algebraic sets in single exponential time
Abstract In this paper we describe an algorithm that takes as input a description of a semi-algebraic set S ⊂ R k , defined by a Boolean formula with atoms of the form P > 0 , P 0 , P = 0 for P ∈ P ⊂ R [ X 1 , … , X k ] , and outputs the first l + 1 Betti numbers of S , b 0 ( S ) , … , b l ( S ) . The complexity of the algorithm is ( s d ) k O ( l ) , where s = # ( P ) and d = max P ∈ P deg ( P ) , which is singly exponential in k for l any fixed constant. Previously, singly exponential time algorithms were known only for computing the Euler–Poincare characteristic, the zeroth and the first Betti numbers.