Syed Qadeer | University of Delhi (original) (raw)
Papers by Syed Qadeer
The typical proof of linearizability establishes an abstraction map from the concurrent program t... more The typical proof of linearizability establishes an abstraction map from the concurrent program to a sequential specification, and identifies the commit points of operations. If the concurrent program uses fine-grained concurrency and complex synchronization, constructing such a proof is difficult. We propose a sound proof system that significantly simplifies the reasoning about linearizability. Linearizability is proved by transforming an implementation into its specification within this proof system. The proof system combines reduction and abstraction, which increase the granularity of atomic actions, with variable introduction and hiding, which relate the synchronization mechanism of the implementation to that of the specification. We construct the abstraction map incrementally, and eliminate the need to reason about the location of commit points in the implementation. We have implemented our method in the QED verifier and demonstrate its effecacy and practicality on several highly-concurrent examples from the literature.
Computing Research Repository, 2001
Descriptions of shared-memory systems are typically parameterized by the number of processors, th... more Descriptions of shared-memory systems are typically parameterized by the number of processors, the number of memory locations, and the number of data values. It has been shown that even for finite parameter values, verifying sequential consistency on general shared-memory systems is undecidable. We observe that, in practice, shared-memory systems satisfy the properties of causality and data independence. Causality is the property that values of read events flow from values of write events. Data independence is the property that all traces can be generated by renaming data values from traces where the written values are distinct from each other. If a causal and data independent system also has the property that the logical order of write events to each location is identical to their temporal order, then sequential consistency can be verified algorithmically. Specifically, we present a model checking algorithm to verify sequential consistency on such systems for a finite number of processors and memory locations and an arbitrary number of data values.
This paper gives an overview of J2ME application for mobile devices and also gives a detail of ou... more This paper gives an overview of J2ME application for mobile devices and also gives a detail of our work in the field of a web browser having streaming capability for mobile devices, especially multimedia cell phones. This web browser solves the problem of tabbed-browsing with style, freedom, and customization. The paper gives a basic overview of the progress achieved and future advancements in our project we are looking forward to. If you like using Internet Explorer, Safari, Mozilla Firefox, Opera, or Chrome on your desktop, then you're going to love this browser on your hand held devices (i.e. mobile devices). Full control bar (back, forward, refresh, etc), that only displays when appropriate and it also save any history. The entire application works in either orientation. At the present stage, the number of mobile devices with different form factors and unique input and output facilities is growing substantially. Cell phones have their web browsers with limited functionalities and low multimedia support. Our current work has reached web page parsing, downloading documents, multimedia files and video streaming. Also, video streaming is tested on local server (Apache Tomcat) and this application can run on low bandwidth GPRS network.
Concurrency is used pervasively in the development of large systems programs. However, concurrent... more Concurrency is used pervasively in the development of large systems programs. However, concurrent programming is difficult because of the possibility of unexpected interference among concurrently executing tasks. Such interference often results in "Heisenbugs" that appear rarely and are extremely difficult to reproduce and debug. Stress testing, in which the system is run under heavy load for a long time, is the method commonly employed to flush out such concurrency bugs. This form of testing provides inadequate coverage and has unpredictable results. This paper proposes an alternative called concurrency scenario testing which relies on systematic and exhaustive testing We have implemented a tool called CHESS for performing concurrency scenario testing of systems programs. CHESS uses model checking techniques to systematically generate all interleav
The memory model of a shared-memory multiprocessor is a contract between the designer and program... more The memory model of a shared-memory multiprocessor is a contract between the designer and programmer of the multiprocessor. We present a model checking algorithm to verify this contract for nite values of the parameters |number of processors and number of memory locations| for a large class of shared-memory systems and memory models. A memory model is a generalization of serial
The typical proof of linearizability establishes an abstraction map from the concurrent program t... more The typical proof of linearizability establishes an abstraction map from the concurrent program to a sequential specification, and identifies the commit points of operations. If the concurrent program uses fine-grained concurrency and complex synchronization, constructing such a proof is difficult. We propose a sound proof system that significantly simplifies the reasoning about linearizability. Linearizability is proved by transforming an implementation into its specification within this proof system. The proof system combines reduction and abstraction, which increase the granularity of atomic actions, with variable introduction and hiding, which relate the synchronization mechanism of the implementation to that of the specification. We construct the abstraction map incrementally, and eliminate the need to reason about the location of commit points in the implementation. We have implemented our method in the QED verifier and demonstrate its effecacy and practicality on several highly-concurrent examples from the literature.
Computing Research Repository, 2001
Descriptions of shared-memory systems are typically parameterized by the number of processors, th... more Descriptions of shared-memory systems are typically parameterized by the number of processors, the number of memory locations, and the number of data values. It has been shown that even for finite parameter values, verifying sequential consistency on general shared-memory systems is undecidable. We observe that, in practice, shared-memory systems satisfy the properties of causality and data independence. Causality is the property that values of read events flow from values of write events. Data independence is the property that all traces can be generated by renaming data values from traces where the written values are distinct from each other. If a causal and data independent system also has the property that the logical order of write events to each location is identical to their temporal order, then sequential consistency can be verified algorithmically. Specifically, we present a model checking algorithm to verify sequential consistency on such systems for a finite number of processors and memory locations and an arbitrary number of data values.
This paper gives an overview of J2ME application for mobile devices and also gives a detail of ou... more This paper gives an overview of J2ME application for mobile devices and also gives a detail of our work in the field of a web browser having streaming capability for mobile devices, especially multimedia cell phones. This web browser solves the problem of tabbed-browsing with style, freedom, and customization. The paper gives a basic overview of the progress achieved and future advancements in our project we are looking forward to. If you like using Internet Explorer, Safari, Mozilla Firefox, Opera, or Chrome on your desktop, then you're going to love this browser on your hand held devices (i.e. mobile devices). Full control bar (back, forward, refresh, etc), that only displays when appropriate and it also save any history. The entire application works in either orientation. At the present stage, the number of mobile devices with different form factors and unique input and output facilities is growing substantially. Cell phones have their web browsers with limited functionalities and low multimedia support. Our current work has reached web page parsing, downloading documents, multimedia files and video streaming. Also, video streaming is tested on local server (Apache Tomcat) and this application can run on low bandwidth GPRS network.
Concurrency is used pervasively in the development of large systems programs. However, concurrent... more Concurrency is used pervasively in the development of large systems programs. However, concurrent programming is difficult because of the possibility of unexpected interference among concurrently executing tasks. Such interference often results in "Heisenbugs" that appear rarely and are extremely difficult to reproduce and debug. Stress testing, in which the system is run under heavy load for a long time, is the method commonly employed to flush out such concurrency bugs. This form of testing provides inadequate coverage and has unpredictable results. This paper proposes an alternative called concurrency scenario testing which relies on systematic and exhaustive testing We have implemented a tool called CHESS for performing concurrency scenario testing of systems programs. CHESS uses model checking techniques to systematically generate all interleav
The memory model of a shared-memory multiprocessor is a contract between the designer and program... more The memory model of a shared-memory multiprocessor is a contract between the designer and programmer of the multiprocessor. We present a model checking algorithm to verify this contract for nite values of the parameters |number of processors and number of memory locations| for a large class of shared-memory systems and memory models. A memory model is a generalization of serial