Safe and sound lock generation with data-centric concurrency control
Main Author: | |
---|---|
Publication Date: | 2023 |
Format: | Master thesis |
Language: | eng |
Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
Download full: | http://hdl.handle.net/10362/165842 |
Summary: | The rise of multi-threaded programming propels shared-memory concurrency control to an even more important role, as it hinders program performance with multiple errors such as deadlocks. Most research on concurrency control tends to be control-centric rather than datacentric. This approach focuses on marking the beginning and end of critical regions that require synchronization. However, it decentralizes concurrency and increases the likelihood of errors and bugs by the programmer. In this state-of-the-art analysis, I examine existing control-centric approaches and their specifications, as well as provide a more in-depth analysis of a data-centric approach. I explain how these approaches prevent deadlocks, ensure serializability, and outline the annotations required from the programmer. The RC3 model aims to improve upon current data-centric concurrency control implementations. I provide a thorough explanation of the model’s strategy and pipeline, step-by-step, with real examples of each step’s purpose. In this thesis we take the RC3 Java algorithm as a starting point and create a version of it in OCaml. This OCaml version simplifies some of the complex details from the original Java code while keeping the critical logic intact. The thesis walks through each step of this OCaml implementation, explaining it thoroughly and providing practical code examples. Additionally, we use Cameleer, along with its annotations, combined with the Why3 graphical interface, to check that the OCaml implementations are correct and to ensure both the functionality and the robustness of the algorithm. In the end, I provide a detailed explanation of the results I achieved with the OCaml implementation and Cameleer verification. I’ll clarify which parts of the algorithm I successfully verified and point out areas that require future work. Additionally, I’ll describe the OUnit tests I performed to ensure the robustness of my OCaml implementation. |
id |
RCAP_870db7ab20f7097815c8f1c43fb1b045 |
---|---|
oai_identifier_str |
oai:run.unl.pt:10362/165842 |
network_acronym_str |
RCAP |
network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
repository_id_str |
https://opendoar.ac.uk/repository/7160 |
spelling |
Safe and sound lock generation with data-centric concurrency controlData-centric ConcurrencyControl-centric ConcurrencyDeadlock-freedomSerializationFormal VerificationDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaThe rise of multi-threaded programming propels shared-memory concurrency control to an even more important role, as it hinders program performance with multiple errors such as deadlocks. Most research on concurrency control tends to be control-centric rather than datacentric. This approach focuses on marking the beginning and end of critical regions that require synchronization. However, it decentralizes concurrency and increases the likelihood of errors and bugs by the programmer. In this state-of-the-art analysis, I examine existing control-centric approaches and their specifications, as well as provide a more in-depth analysis of a data-centric approach. I explain how these approaches prevent deadlocks, ensure serializability, and outline the annotations required from the programmer. The RC3 model aims to improve upon current data-centric concurrency control implementations. I provide a thorough explanation of the model’s strategy and pipeline, step-by-step, with real examples of each step’s purpose. In this thesis we take the RC3 Java algorithm as a starting point and create a version of it in OCaml. This OCaml version simplifies some of the complex details from the original Java code while keeping the critical logic intact. The thesis walks through each step of this OCaml implementation, explaining it thoroughly and providing practical code examples. Additionally, we use Cameleer, along with its annotations, combined with the Why3 graphical interface, to check that the OCaml implementations are correct and to ensure both the functionality and the robustness of the algorithm. In the end, I provide a detailed explanation of the results I achieved with the OCaml implementation and Cameleer verification. I’ll clarify which parts of the algorithm I successfully verified and point out areas that require future work. Additionally, I’ll describe the OUnit tests I performed to ensure the robustness of my OCaml implementation.A ascensão da programação multithread impulsiona o controlo de concorrência em memória partilhada para um papel ainda mais importante, uma vez que esta pode prejudicar o desempenho do programa com vários erros, tal como os deadlocks. A maioria das investigações sobre o controlo de concorrência tende a ser controlcentric, em vez de data-centric. Esta abordagem foca-se na marcação do início e do fim de regiões críticas que requerem sincronização. No entanto, esta descentralização da concorrência aumenta a probabilidade de erros e falhas por parte do programador. Nesta análise do estado da arte, examino algumas abordagens control-centric existentes e respetivas especificações, além de fornecer uma análise mais aprofundada de uma abordagem data-centric. Explico também como estas abordagens previnem deadlocks, garantem a serializabilidade e delineio as anotações necessárias por parte do programador nelas. O modelo RC3 visa melhorar as implementações data-centric atuais de controlo de concorrência. Forneço uma explicação detalhada da estratégia e pipeline do modelo, passo a passo, com exemplos reais do propósito de cada passo. Nesta tese, partimos do algoritmo em Java do modelo do RC3 como ponto de partida e criamos uma versão em OCaml. Esta versão em OCaml simplifica alguns dos detalhes complexos do código Java original, mantendo a lógica crítica intacta. A tese percorre cada passo desta implementação em OCaml, explicando-a detalhadamente e fornecendo exemplos práticos de código. Além disso, utilizamos o Cameleer, juntamente com as suas anotações e o Why3, para verificar que as implementações em OCaml estão corretas e para garantir a robustez do algoritmo. No final, forneço uma explicação detalhada dos resultados alcançados e clarificarei quais partes do algoritmo foram verificadas com sucesso, destacando as áreas que requerem trabalho futuro. Além disso, descreverei os testes OUnit que realizei para garantir a robustez da minha implementação em OCaml.Ravara, AntónioPaulino, HervéPereira, MárioRUNSalgado, Pedro Miguel Silva Ribeiro2024-04-05T09:52:52Z2023-072023-07-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/165842enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-22T18:20:13Zoai:run.unl.pt:10362/165842Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T17:50:57.437701Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
dc.title.none.fl_str_mv |
Safe and sound lock generation with data-centric concurrency control |
title |
Safe and sound lock generation with data-centric concurrency control |
spellingShingle |
Safe and sound lock generation with data-centric concurrency control Salgado, Pedro Miguel Silva Ribeiro Data-centric Concurrency Control-centric Concurrency Deadlock-freedom Serialization Formal Verification Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
Safe and sound lock generation with data-centric concurrency control |
title_full |
Safe and sound lock generation with data-centric concurrency control |
title_fullStr |
Safe and sound lock generation with data-centric concurrency control |
title_full_unstemmed |
Safe and sound lock generation with data-centric concurrency control |
title_sort |
Safe and sound lock generation with data-centric concurrency control |
author |
Salgado, Pedro Miguel Silva Ribeiro |
author_facet |
Salgado, Pedro Miguel Silva Ribeiro |
author_role |
author |
dc.contributor.none.fl_str_mv |
Ravara, António Paulino, Hervé Pereira, Mário RUN |
dc.contributor.author.fl_str_mv |
Salgado, Pedro Miguel Silva Ribeiro |
dc.subject.por.fl_str_mv |
Data-centric Concurrency Control-centric Concurrency Deadlock-freedom Serialization Formal Verification Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Data-centric Concurrency Control-centric Concurrency Deadlock-freedom Serialization Formal Verification Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
The rise of multi-threaded programming propels shared-memory concurrency control to an even more important role, as it hinders program performance with multiple errors such as deadlocks. Most research on concurrency control tends to be control-centric rather than datacentric. This approach focuses on marking the beginning and end of critical regions that require synchronization. However, it decentralizes concurrency and increases the likelihood of errors and bugs by the programmer. In this state-of-the-art analysis, I examine existing control-centric approaches and their specifications, as well as provide a more in-depth analysis of a data-centric approach. I explain how these approaches prevent deadlocks, ensure serializability, and outline the annotations required from the programmer. The RC3 model aims to improve upon current data-centric concurrency control implementations. I provide a thorough explanation of the model’s strategy and pipeline, step-by-step, with real examples of each step’s purpose. In this thesis we take the RC3 Java algorithm as a starting point and create a version of it in OCaml. This OCaml version simplifies some of the complex details from the original Java code while keeping the critical logic intact. The thesis walks through each step of this OCaml implementation, explaining it thoroughly and providing practical code examples. Additionally, we use Cameleer, along with its annotations, combined with the Why3 graphical interface, to check that the OCaml implementations are correct and to ensure both the functionality and the robustness of the algorithm. In the end, I provide a detailed explanation of the results I achieved with the OCaml implementation and Cameleer verification. I’ll clarify which parts of the algorithm I successfully verified and point out areas that require future work. Additionally, I’ll describe the OUnit tests I performed to ensure the robustness of my OCaml implementation. |
publishDate |
2023 |
dc.date.none.fl_str_mv |
2023-07 2023-07-01T00:00:00Z 2024-04-05T09:52:52Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10362/165842 |
url |
http://hdl.handle.net/10362/165842 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
repository.mail.fl_str_mv |
info@rcaap.pt |
_version_ |
1833597009166073856 |