Rekha R. Pai

dblp:162/0237 · DBLP profile ↗
← Back
9ranked-venue papers
4as first author
4since 2021 · last 2023
0000-0002-5964-8819ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-author · 3 since 2021Theory of computation · 3 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2023 A Formal CHERI-C Semantics for Verification
abstract
Abstract CHERI-C extends the C programming language by adding hardware capabilities , ensuring a certain degree of memory safety while remaining efficient. Capabilities can also be employed for higher-level security measures, such as software compartmentalization, that have to be used correctly to achieve the desired security guarantees. As the extension changes the semantics of C, new theories and tooling are required to reason about CHERI-C code and verify correctness. In this work, we present a formal memory model that provides a memory semantics for CHERI-C programs. We present a generalised theory with rich properties suitable for verification and potentially other types of analyses. Our theory is backed by an Isabelle/HOL formalisation that also generates an OCaml executable instance of the memory model. The verified and extracted code is then used to instantiate the parametric Gillian program analysis framework, with which we can perform concrete execution of CHERI-C programs. The tool can run a CHERI-C test suite, demonstrating the correctness of our tool, and catch a good class of safety violations that the CHERI hardware might miss.
Seung Hoon Park, Rekha R. Pai, Tom Melham
TACAS (1)2
2022 Static Race Detection for Periodic Programs
abstract
Abstract We consider the problem of statically detecting data races in periodic real-time programs that use locks, and run on a single processor platform. We propose a technique based on a small set of rules that exploits the priority, periodicity, locking, and timing information of tasks in the program. One of the key requirements is a response time analysis for such programs, and we propose an algorithm to compute this for the case of non-nested locks. We have implemented our analysis for real-time programs written in C in a tool called PePRacer and evaluated its performance on a small set of benchmarks from the literature.
Varsha P. Suresh, Rekha R. Pai, Deepak D'Souza, Meenakshi D'Souza, Sujit Kumar Chakrabarti
ESOP2
2022 Static executes-before analysis for event driven programs
abstract
The executes-before relation between tasks is fundamental in the analysis of Event Driven Programs with several downstream applications like race detection and identifying redundant synchronizations. We present a sound, efficient, and effective static analysis technique to compute executes-before pairs of tasks for a general class of event driven programs. The analysis is based on a small but comprehensive set of rules evaluated on a novel structure called the task post graph of a program. We show how to use the executes-before information to identify disjoint-blocks in event driven programs and further use them to improve the precision of data race detection for these programs. We have implemented our analysis in the Flowdroid framework in a tool called AndRacer and evaluated it on several Android apps, bringing out the scalability, recall, and improved precision of the analyses
Rekha R. Pai, Abhishek Uppar, Akshatha Shenoy 0001, Pranshul Kushwaha, Deepak D'Souza
ESEC/SIGSOFT FSE1
2021 Static analysis for detecting high-level races in RTOS kernels
Rekha R. Pai, Deepak D'Souza, Meenakshi D'Souza, Prathibha Prakash
Formal Methods Syst. Des.1
2020 Static Race Detection for RTOS Applications
abstract
We present a static analysis technique for detecting data races in Real-Time Operating System (RTOS) applications. These applications are often employed in safety-critical tasks and the presence of races may lead to erroneous behaviour with serious consequences. Analyzing these applications is challenging due to the variety of non-standard synchronization mechanisms they use. We propose a technique based on the notion of an "occurs-in-between" relation between statements. This notion enables us to capture the interplay of various synchronization mechanisms. We use a pre-analysis and a small set of not-occurs-in-between patterns to detect whether two statements may race with each other. Our experimental evaluation shows that the technique is efficient and effective in identifying races with high precision.
Rishi Tulsyan, Rekha R. Pai, Deepak D'Souza
FSTTCS2
2019 Data Races and Static Analysis for Interrupt-Driven Kernels
abstract
We consider a class of interrupt-driven programs that model the kernel API libraries of some popular real-time embedded operating systems and the synchronization mechanisms they use. We define a natural notion of data races and a happens-before ordering for such programs. The key insight is the notion of disjoint blocks to define the synchronizes-with relation. This notion also suggests an efficient and effective lockset based analysis for race detection. It also enables us to define efficient “sync-CFG” based static analyses for such programs, which exploit data race freedom. We use this theory to carry out static analysis on the FreeRTOS kernel library to detect races and to infer simple relational invariants on key kernel variables and data-structures.
Nikita Chopra, Rekha R. Pai, Deepak D'Souza
ESOP2
2019 Static Analysis for Detecting High-Level Races in RTOS Kernels
Rekha R. Pai, Deepak D'Souza, Meenakshi D'Souza
FM2
2016 Detection of redundant expressions: A precise, efficient, and pragmatic algorithm in SSA
Rekha R. Pai
Comput. Lang. Syst. Struct.1
2015 Detection of Redundant Expressions: A Complete and Polynomial-Time Algorithm in SSA
Rekha R. Pai
APLAS1