Koniec z zawieszającym się oprogramowaniem?

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

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

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.

288771572163164307
Źródło zdjęć: © (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 ).

Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Udostępnij:
Wybrane dla Ciebie
Komentarze (1)