Lazy sequentialization for the safety verification of unbounded concurrent programs
Lazy sequentialization for the safety verification of unbounded concurrent programs
  Lazy sequentialization has emerged as one of the most promising approaches for concurrent program analysis but the only efficient implementation given so far works just for bounded programs. This restricts the approach to bug-finding purposes. In this paper, we describe and evaluate a new lazy sequentialization translation that does not unwind loops and thus allows to analyze unbounded computations, even with an unbounded number of context switches. In connection with an appropriate sequential backend verification tool it can thus also be used for the safety verification of concurrent programs, rather than just for bug-finding. The main technical novelty of our translation is the simulation of the thread resumption in a way that does not use gotos and thus does not require that each statement is executed at most once. We have implemented this translation in the UL-CSeq tool for C99 programs that use the pthreads API. We evaluate UL-CSeq on several benchmarks, using different sequential verification backends on the sequentialized program, and show that it is more effective than previous approaches in proving the correctness of the safe benchmarks, and still remains competitive with state-of-the-art approaches for finding bugs in the unsafe benchmarks.
  
  
    
      Nguyen Lam, Truc
      
        0a373da7-0868-466d-a3b8-060868037acc
      
     
  
    
      Fischer, Bernd
      
        0c9575e6-d099-47f1-b3a2-2dbc93c53d18
      
     
  
    
      La Torre, Salvatore
      
        ec51ffc2-65d9-414e-9dd2-f5f342979c10
      
     
  
    
      Parlato, Gennaro
      
        c28428a0-d3f3-4551-a4b5-b79e410f4923
      
     
  
  
   
  
  
    
    
  
    
    
  
    
      September 2016
    
    
  
  
    
      Nguyen Lam, Truc
      
        0a373da7-0868-466d-a3b8-060868037acc
      
     
  
    
      Fischer, Bernd
      
        0c9575e6-d099-47f1-b3a2-2dbc93c53d18
      
     
  
    
      La Torre, Salvatore
      
        ec51ffc2-65d9-414e-9dd2-f5f342979c10
      
     
  
    
      Parlato, Gennaro
      
        c28428a0-d3f3-4551-a4b5-b79e410f4923
      
     
  
       
    
 
  
    
      
  
  
  
  
    Nguyen Lam, Truc, Fischer, Bernd, La Torre, Salvatore and Parlato, Gennaro
  
  
  
  
   
    (2016)
  
  
    
    Lazy sequentialization for the safety verification of unbounded concurrent programs.
  
  
  
  
    
    
    
      
        
   
  
    14th International Symposium on Automated Technology for Verification and Analysis (ATVA), Chiba, Japan.
   
        
        
        17 - 19  Oct 2016.
      
    
  
  
  
      
          
           16 pp
        .
    
  
  
  
   (doi:10.1007/978-3-319-46520-3_12).
  
   
  
    
      Record type:
      Conference or Workshop Item
      (Paper)
      
      
    
   
    
    
      
        
          Abstract
          Lazy sequentialization has emerged as one of the most promising approaches for concurrent program analysis but the only efficient implementation given so far works just for bounded programs. This restricts the approach to bug-finding purposes. In this paper, we describe and evaluate a new lazy sequentialization translation that does not unwind loops and thus allows to analyze unbounded computations, even with an unbounded number of context switches. In connection with an appropriate sequential backend verification tool it can thus also be used for the safety verification of concurrent programs, rather than just for bug-finding. The main technical novelty of our translation is the simulation of the thread resumption in a way that does not use gotos and thus does not require that each statement is executed at most once. We have implemented this translation in the UL-CSeq tool for C99 programs that use the pthreads API. We evaluate UL-CSeq on several benchmarks, using different sequential verification backends on the sequentialized program, and show that it is more effective than previous approaches in proving the correctness of the safe benchmarks, and still remains competitive with state-of-the-art approaches for finding bugs in the unsafe benchmarks.
         
      
      
        
          
            
  
    Text
 Lazy_Sequentialization_for_the_Safety_Verification_of_Unbounded_Concurrent_Programs.pdf
     - Accepted Manuscript
   
  
  
    
  
 
          
            
          
            
           
            
           
        
        
       
    
   
  
  
  More information
  
    
      Accepted/In Press date: 17 June 2016
 
    
      e-pub ahead of print date: 22 September 2016
 
    
      Published date: September 2016
 
    
  
  
    
  
    
  
    
     
        Venue - Dates:
        14th International Symposium on Automated Technology for Verification and Analysis (ATVA), Chiba, Japan, 2016-10-17 - 2016-10-19
      
    
  
    
  
    
  
    
  
    
     
        Organisations:
        Electronic & Software Systems
      
    
  
    
  
  
        Identifiers
        Local EPrints ID: 397033
        URI: http://eprints.soton.ac.uk/id/eprint/397033
        
          
        
        
        
        
          PURE UUID: e603fa15-2c26-4364-be2a-6d7921f2ed3e
        
  
    
        
          
            
          
        
    
        
          
            
          
        
    
        
          
        
    
        
          
            
          
        
    
  
  Catalogue record
  Date deposited: 18 Jun 2016 00:41
  Last modified: 05 Jun 2024 17:30
  Export record
  
  
   Altmetrics
   
   
  
 
 
  
    
    
      Contributors
      
          
          Author:
          
            
              
              
                Truc Nguyen Lam
              
              
            
            
          
        
      
          
          Author:
          
            
              
              
                Bernd Fischer
              
              
            
            
          
        
      
          
          Author:
          
            
            
              Salvatore La Torre
            
          
        
      
          
          Author:
          
            
              
              
                Gennaro Parlato
              
              
            
            
          
        
      
      
      
    
  
   
  
    Download statistics
    
      Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
      
      View more statistics