A divide-and-conquer approach for analysing overlaid data structures

  • Authors:
  • Oukseh Lee;Hongseok Yang;Rasmus Petersen

  • Affiliations:
  • Dept. of CSE, Hanyang University, Ansan, South Korea 426-791;Department of Computer Science, University of Oxford, Oxford, UK OX1 3QD;Queen Mary University of London, London, UK E1 4NS

  • Venue:
  • Formal Methods in System Design
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a static program analysis for overlaid data structures such that a node in the structure includes links for multiple data structures and these links are intended to be used at the same time. These overlaid data structures are frequently used in systems code, in order to impose multiple types of indexing structures over the same set of nodes. Our analysis implements two main ideas. The first is to run multiple sub-analyses that track information about non-overlaid data structures, such as lists. The second idea is to control the communication among the sub-analyses using ghost states and ghost instructions. The purpose of this control is to achieve a high level of efficiency by allowing only necessary information to be transferred among sub-analyses and at as few program points as possible. Our analysis has been successfully applied to prove the memory safety of the Linux deadline IO scheduler and AFS server.