Seminarium: Systemy Rozproszone
24. stycznia 2008, godzina 12:15, sala 3120
Piotr Findeisen


Software Transactional Memory

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,
Piotr Findeisen