<?xml version="1.0" encoding="UTF-8"?><xml><records><record><source-app name="Biblio" version="6.x">Drupal-Biblio</source-app><ref-type>47</ref-type><contributors><authors><author><style face="normal" font="default" size="100%">Sousa, Diogo G.</style></author><author><style face="normal" font="default" size="100%">and Lourenço, João M.</style></author><author><style face="normal" font="default" size="100%">Farchi, Eitan</style></author><author><style face="normal" font="default" size="100%">Segall, Itai</style></author></authors></contributors><titles><title><style face="normal" font="default" size="100%">Aplicação do Fecho de Programas na Deteção de Anomalias de Concorrência</style></title><secondary-title><style face="normal" font="default" size="100%">INForum 2012: Proceedings of INForum Simpósio de Informática</style></secondary-title></titles><dates><year><style  face="normal" font="default" size="100%">2012</style></year><pub-dates><date><style  face="normal" font="default" size="100%">6 Sep.</style></date></pub-dates></dates><urls><related-urls><url><style face="normal" font="default" size="100%">https://docentes.fct.unl.pt/sites/default/files/joao-lourenco/files/inforum-closure.pdf</style></url></related-urls></urls><publisher><style face="normal" font="default" size="100%">Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa</style></publisher><pub-location><style face="normal" font="default" size="100%">Monte de Caparica, PT</style></pub-location><isbn><style face="normal" font="default" size="100%">978-972-8893-32-3&quot; pages = {190–201</style></isbn><language><style face="normal" font="default" size="100%">eng</style></language><abstract><style face="normal" font="default" size="100%">&lt;p&gt;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.&lt;/p&gt;
</style></abstract><notes><style face="normal" font="default" size="100%">&lt;p&gt;n/a&lt;/p&gt;
</style></notes></record></records></xml>