Seminarium: Systemy Rozproszone
24. stycznia 2008,
godzina 12:15,
sala
Programowanie współbieżne chyba dla nikogo nie jest sztuką łatwą, a nawet najbardziej doświadczeni programiści popełniają błędy. Nic dziwnego - aby udowodnić poprawność programu jednowątkowego wystarczy przeanalizować osobno każdy z podprogramów, za to by udowodnić poprawność programu współbieżnego, trzeba przeanalizować wszystkie możliwe przeploty... W dodatku błąd wykonania programu współbieżnego bywa trudny lub wręcz niemożliwy do zlokalizowania, a przyczyna tkwiąca w jednym miejscu może ujawniać się zupełnie gdzie indziej i po pewnym czasie. Niedeterminizm, zakleszczenie zdarzające się tylko co jakiś czas, niezwolnione semafory... - brzmi znajomo?
Na szczęście nie jesteśmy skazani na żmudne debugowanie naszych programów - możemy pisać je po prostu dobrze! Programowa pamięć transakcyjna ("Software Transactional Memory") to programowanie współbieżne bez użycia locków - pozwala szybko budować nawet duże programy współbieżne, wyręczając programistę w dbaniu o bezpieczeństwo i spójność danych, a w dodatku programy wykorzystujące STM działają często szybciej niż ich tradycyjne odpowiedniki.
Serdecznie zapraszam,