Static Analysis for Data-race detection in Java
| Autor(a) principal: | |
|---|---|
| Data de Publicação: | 2024 |
| Tipo de documento: | Dissertação |
| Idioma: | eng |
| Título da fonte: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| Texto Completo: | http://hdl.handle.net/10362/176239 |
Resumo: | Over a decade ago the architectural paradigm shifted from single-core to multi-core/multi- threaded CPUs. Since then programming in parallel became crucial for developing effi- cient and faster programs. With concurrent programming came the challenge of writing programs free of data races. There are mechanisms to control the concurrency by means of synchronizing the threads, but using them does not always guarantee a correct pro- gram. To overcome this issue, in this thesis we investigate and present how we can use static program analysis to detect data races in Java classes without any extra input from the programmer. We used static analysis in Java to perform points-to analysis to find the accesses that cause data races. We benchmarked our tool with some open source code examples and compared the results of our solution with an existing tool for static analysis. We found that, while our tool still needs more refinement and optimization, it can already detect most, if not all of the data races in Java classes. |
| id |
RCAP_43f0d844a2e707c4580f1238154602df |
|---|---|
| oai_identifier_str |
oai:run.unl.pt:10362/176239 |
| 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 |
Static Analysis for Data-race detection in Javaprogram analysispoints-to analysisstatic analysisdata raceDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaOver a decade ago the architectural paradigm shifted from single-core to multi-core/multi- threaded CPUs. Since then programming in parallel became crucial for developing effi- cient and faster programs. With concurrent programming came the challenge of writing programs free of data races. There are mechanisms to control the concurrency by means of synchronizing the threads, but using them does not always guarantee a correct pro- gram. To overcome this issue, in this thesis we investigate and present how we can use static program analysis to detect data races in Java classes without any extra input from the programmer. We used static analysis in Java to perform points-to analysis to find the accesses that cause data races. We benchmarked our tool with some open source code examples and compared the results of our solution with an existing tool for static analysis. We found that, while our tool still needs more refinement and optimization, it can already detect most, if not all of the data races in Java classes.Há mais de uma década, o paradigma arquitetural mudou de CPUs single-core para CPUs multi-core/multi-threaded. Desde então programar em paralelo tornou-se crucial para desenvolver programas mais rápidos e eficientes. Com a programação concorrente veio o desafio de escrever programas livres de data races. Existem mecanismos que efetuam controlo de concorrência ao sincronizarem as threads, mas usá-los por si só não garante um programa correto. Para resolver este problema, neste trabalho investigamos e apresentamos como po- demos usar análise estática de programas para detetar data races em classes Java sem qualquer informação extra dada pelo do utilizador. Fizemos testes à nossa ferramenta usando exemplos de código de fonte aberta e com- parámos os resultados da nossa solução com os de uma ferramenta de análise estática já existente. Descobrimos que, apesar de a nossa ferramenta ainda precisar de ser aperfeiço- ada e otimizada, esta já consegue detetar a maioria, senão todas as data races em classes Java.Paulino, HervéRavara, AntónioRUNFerreira, Jorge Lopes2024-12-05T14:37:36Z2024-062024-06-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/176239enginfo: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-12-09T01:37:14Zoai:run.unl.pt:10362/176239Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T19:17:53.535398Repositó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 |
Static Analysis for Data-race detection in Java |
| title |
Static Analysis for Data-race detection in Java |
| spellingShingle |
Static Analysis for Data-race detection in Java Ferreira, Jorge Lopes program analysis points-to analysis static analysis data race Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| title_short |
Static Analysis for Data-race detection in Java |
| title_full |
Static Analysis for Data-race detection in Java |
| title_fullStr |
Static Analysis for Data-race detection in Java |
| title_full_unstemmed |
Static Analysis for Data-race detection in Java |
| title_sort |
Static Analysis for Data-race detection in Java |
| author |
Ferreira, Jorge Lopes |
| author_facet |
Ferreira, Jorge Lopes |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Paulino, Hervé Ravara, António RUN |
| dc.contributor.author.fl_str_mv |
Ferreira, Jorge Lopes |
| dc.subject.por.fl_str_mv |
program analysis points-to analysis static analysis data race Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| topic |
program analysis points-to analysis static analysis data race Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| description |
Over a decade ago the architectural paradigm shifted from single-core to multi-core/multi- threaded CPUs. Since then programming in parallel became crucial for developing effi- cient and faster programs. With concurrent programming came the challenge of writing programs free of data races. There are mechanisms to control the concurrency by means of synchronizing the threads, but using them does not always guarantee a correct pro- gram. To overcome this issue, in this thesis we investigate and present how we can use static program analysis to detect data races in Java classes without any extra input from the programmer. We used static analysis in Java to perform points-to analysis to find the accesses that cause data races. We benchmarked our tool with some open source code examples and compared the results of our solution with an existing tool for static analysis. We found that, while our tool still needs more refinement and optimization, it can already detect most, if not all of the data races in Java classes. |
| publishDate |
2024 |
| dc.date.none.fl_str_mv |
2024-12-05T14:37:36Z 2024-06 2024-06-01T00:00:00Z |
| 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/176239 |
| url |
http://hdl.handle.net/10362/176239 |
| 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_ |
1833597999763161088 |