Koniec z zawieszającym się oprogramowaniem?

Naukowcy z Uniwersytetu Michigan sądzą, że udało im się rozwiązać problem z zawieszającym się oprogramowaniem.

Koniec z zawieszającym się oprogramowaniem?
Źródło zdjęć: © Jupiterimages

08.12.2008 | aktual.: 08.12.2008 12:11

Najczęstszą przyczyną zawieszania się aplikacji jest próba uzyskania dostępu przez różne części programu do tych samych danych (wątki w oczekiwaniu na siebie blokują się wzajemnie). Problem zakleszczania oczekujących na siebie wątków staje się bardziej istotny, jeśli weźmiemy pod uwagę coraz bardziej złożoną architekturę nowoczesnych procesorów i oprogramowania. CPU zawierają coraz większą liczbę rdzeni, a oprogramowanie może wykonywać określoną liczbę zadań w tym samym czasie.

Obraz
© (fot. wp.pl)

Kontroler o nazwie Gadara opracowany przez amerykańskich naukowców wykorzystuje technikę sprzężenia zwrotnego, na wzór samochodowych systemów kontroli trakcji lub termostatów w systemach grzewczych. Zadaniem Gadary jest zlokalizowanie potencjalnych blokad a następnie zastosowanie logiki sterującej, uniemożliwiającej zakleszczenie wątków.

Stéphane Lafortune, jeden z profesorów uczelni biorących udział w projekcie przekonuje, że opracowanie rozwiązania zdolnego przewidzieć ewentualne zamrożenie funkcjonowania programu to całkowicie nowe podejście do problemu. Dotychczas bowiem programiści próbowali usuwać potencjalne przyczyny zawieszeń w drodze testowania aplikacji lub analizy kodu, skutkujących koniecznością jego przepisania. "Błędy korygowano ręcznie, a nie automatycznie. Gadara automatyzuje ten proces" - twierdzi naukowiec.

Szczegółowe omówienie działania kontrolera znaleźć można na stronie Usenix.org - http://www.usenix.org/events/osdi08/tech/full_papers/wang/wang_html/index.html w dokumencie pt. "Gadara: Dynamic Deadlock Avoidance for Multithreaded Programs" ( w j. angielskim ).

Źródło artykułu:idg.pl
Komentarze (1)