Fabbretti, Giovanni
 
(2020)
Causal-Consistent Debugging of Distributed Erlang.
[Laurea magistrale], Università di Bologna, Corso di Studio in 
Informatica [LM-DM270]
   
  
  
        
        
	
  
  
  
  
  
  
  
    
  
    
      Documenti full-text disponibili:
      
    
  
  
    
      Abstract
      The main purpose of this work is to study the reversibility in a concurrent and distributed environment. Reversing the execution of a program in such environment is not straightforward, indeed in order to undo a step performed by one of the, potentially many, processes of the system one has to make sure that also all of its consequences, if any, have been undone beforehand. This notion is usually referred to as causal consistency. Here, we study reversibility in the context of the Erlang language. In order to reverse the execution of a concurrent and distributed erlang program we define a forward semantics which, at each step performed by the program, stores in an external device, called history, auxiliary pieces of information that later on can be used to undo the step. In addition to the forward semantics we also develop a backward semantics and a rollback semantics, the former tells how and when we can undo a step while the latter allows us to undo several steps in an automatic manner. Lastly, we present a proof-of-concept implementation of a debugger able to reverse the execution of a concurrent and distributed program written in Erlang.
     
    
      Abstract
      The main purpose of this work is to study the reversibility in a concurrent and distributed environment. Reversing the execution of a program in such environment is not straightforward, indeed in order to undo a step performed by one of the, potentially many, processes of the system one has to make sure that also all of its consequences, if any, have been undone beforehand. This notion is usually referred to as causal consistency. Here, we study reversibility in the context of the Erlang language. In order to reverse the execution of a concurrent and distributed erlang program we define a forward semantics which, at each step performed by the program, stores in an external device, called history, auxiliary pieces of information that later on can be used to undo the step. In addition to the forward semantics we also develop a backward semantics and a rollback semantics, the former tells how and when we can undo a step while the latter allows us to undo several steps in an automatic manner. Lastly, we present a proof-of-concept implementation of a debugger able to reverse the execution of a concurrent and distributed program written in Erlang.
     
  
  
    
    
      Tipologia del documento
      Tesi di laurea
(Laurea magistrale)
      
      
      
      
        
      
        
          Autore della tesi
          Fabbretti, Giovanni
          
        
      
        
          Relatore della tesi
          
          
        
      
        
      
        
          Scuola
          
          
        
      
        
          Corso di studio
          
          
        
      
        
          Indirizzo
          CURRICULUM A: TECNICHE DEL SOFTWARE
          
        
      
        
      
        
          Ordinamento Cds
          DM270
          
        
      
        
          Parole chiave
          reversibility,debugging,causal consistency,concurrent and distributed systems,erlang
          
        
      
        
          Data di discussione della Tesi
          17 Dicembre 2020
          
        
      
      URI
      
      
     
   
  
    Altri metadati
    
      Tipologia del documento
      Tesi di laurea
(NON SPECIFICATO)
      
      
      
      
        
      
        
          Autore della tesi
          Fabbretti, Giovanni
          
        
      
        
          Relatore della tesi
          
          
        
      
        
      
        
          Scuola
          
          
        
      
        
          Corso di studio
          
          
        
      
        
          Indirizzo
          CURRICULUM A: TECNICHE DEL SOFTWARE
          
        
      
        
      
        
          Ordinamento Cds
          DM270
          
        
      
        
          Parole chiave
          reversibility,debugging,causal consistency,concurrent and distributed systems,erlang
          
        
      
        
          Data di discussione della Tesi
          17 Dicembre 2020
          
        
      
      URI
      
      
     
   
  
  
  
  
  
    
    Statistica sui download
    
    
  
  
    
      Gestione del documento: