Detail publikace
Healing Data Races On-The-Fly
Letko Zdeněk, Ing. (FIT VUT)
Tzoref-Brill Rachel (IBM)
Ur Shmuel (IBM)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS FIT VUT)
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.
@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" }