Fakulta informačních technologií VUT v Brně

Detail publikace

Healing Data Races On-The-Fly

KŘENA Bohuslav, LETKO Zdeněk, TZOREF-BRILL Rachel, UR Shmuel a VOJNAR Tomáš. Healing Data Races On-The-Fly. In: Proceedings of 5th International Workshop on Parallel and Distributed Systems: Testing and Debugging Modelling - PADTAD'07. London: Association for Computing Machinery, 2007, s. 54-64. ISBN 978-1-59593-734-6.
Název česky
Healing Data Races On-The-Fly
Typ
článek ve sborníku konference
Jazyk
angličtina
Autoři
Křena Bohuslav, Ing., Ph.D. (UITS FIT VUT)
Letko Zdeněk, Ing. (FIT VUT)
Tzoref-Brill Rachel (IBM)
Ur Shmuel (IBM)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS FIT VUT)
Abstrakt
Autoři se domnívají, že překladem textu se mírně pozmění jeho původní smysl. Zejména problematický je překlad odborných termínů, které nemají v češtině zažitý ekvivalent. Například slovo "concurrent" lze přeložit přesně jako "souběžný" nebo jako lépe znějící ale nepřesné "paralelní". Lze proto čtenáři doporučit, pokud to dovolují jeho znalosti angličtiny, aby si přečetl abstrakt v původním anglickém znění.

Testování souběžných programů je velice náročné. Chyby související se souběžností se proto i přes značný pokrok v oblasti testování a ověřování poměrně často dostávají až k zákazníkovi. V tomto článku popíšeme techniky vyvinuté v rámci nástroje ConTest pro automatickou opravu chyb za běhu souběžných programů.

Souběžné chyby mají jednu velice užitečnou vlastnost pro automatickou opravu programů, a to, že se projevují pouze při určitých proloženích instrukcí, zatímco při ostatních nikoliv. Oprava pak spočívá ve snížení pravděpodobnosti výskytu těch proložení, při kterých se chyba projevuje. Pokud omezením proložení nezpůsobíme uváznutí, můžeme si být jisti, že jsme opravou nezpůsobili novou chybu a že tedy opravený program bude dávat stejné výsledky jako program původní.

V této práci, která se věnuje různým typům datových závodů, jsme identifikovali tři typy opravných akcí:  (1) změna pravděpodobnosti proložení přidáním příkazů sleep či yield nebo úpravou priorit vláken (2) odstranění proložení pomocí sychronizačních primitiv jako jsou zámky či wait-notify (3) oprava důsledku "špatného proložení" nahrazením hodnoty proměnné "správnou" hodnotou. Dále je zde poskytnuta klasifikace závodů podle typu opravné akce, kterou lze pro daný závod použít.

Rok
2007
Strany
54-64
Sborník
Proceedings of 5th International Workshop on Parallel and Distributed Systems: Testing and Debugging Modelling - PADTAD'07
Konference
PADTAD - Parallel and Distributed Systems: Testing and Debugging, Seattle, US
ISBN
978-1-59593-734-6
Vydavatel
Association for Computing Machinery
Místo
London, GB
BibTeX
@INPROCEEDINGS{FITPUB8372,
   author = "Bohuslav K\v{r}ena and Zden\v{e}k Letko and Rachel Tzoref-Brill and Shmuel Ur and Tom\'{a}\v{s} Vojnar",
   title = "Healing Data Races On-The-Fly",
   pages = "54--64",
   booktitle = "Proceedings of 5th International Workshop on Parallel and Distributed Systems: Testing and Debugging Modelling - PADTAD'07",
   year = 2007,
   location = "London, GB",
   publisher = "Association for Computing Machinery",
   ISBN = "978-1-59593-734-6",
   language = "english",
   url = "https://www.fit.vut.cz/research/publication/8372"
}
Nahoru