Abstract
Uma das estratégias para tirar partido dos múltiplos processadores disponíveis nos computadores atuais passa por adaptar código legado, inicialmente concebido para ser executado num contexto meramente sequencial, para ser agora executado num contexto multithreading. Nesse processo de adaptação é necessário proteger apropriadamente os dados que são agora partilhados e acedidos por diferentes threads concorrentes. A proteção dos dados com locks usando uma granulosidade grossa inibe a concorrência e opõe-se ao objetivo inicial de explorar o paralelismo suportado por múltiplos processadores. Por outro lado, a utilização de uma granulosidade fina pode levar à ocorrência de anomalias próprias da concorrência, como deadlocks e violações de atomicidade (high-level data races). Este artigo discute o conceito de fecho de um programa e uma metodologia que, quando aplicados em conjunto, permitem adaptar código legado para o tornar thread-safe, garantindo a ausência de violações de atomicidade na versão corrente do software e antecipando algumas violações de atomicidade que poderão ocorrer em versões futuras do mesmo software.
Original language | Unknown |
---|---|
Title of host publication | INForum 2012 |
Place of Publication | Lisbon, Portugal |
Publisher | Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa |
Pages | 190-201 |
ISBN (Print) | 978-972-8893-32-3 |
Publication status | Published - 1 Jan 2012 |
Event | INForum - Simpósio de Informática - Duration: 1 Jan 2012 → … |
Conference
Conference | INForum - Simpósio de Informática |
---|---|
Period | 1/01/12 → … |