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: