Транзакционная память

Реализация транзакционной памяти


TM можно реализовывать полностью программным образом (STM) или с использованием специальной аппаратной поддержки (HTM). Предлагалось много разных методов реализации, и в этой статье авторы не приводят подробный обзор литературы, а фокусируются только на нескольких ключевых методах. Более полный обзор приведен, например, в [18].

В большинстве систем TM обоих типов реализуется оптимистическое управление параллелизмом, при котором любая транзакции выполняется в предположении, что у нее не будет конфликтов с другими транзакциями. Если две транзакции конфликтуют, поскольку одна из них модифицирует некоторую область памяти, прочитанную или модифицированную другой транзакцией, то система TM аварийно завершает одну из этих транзакций путем устранения произведенных изменений (отката). При альтернативном пессимистическом управлении параллелизмом требуется, чтобы транзакция получила монопольный доступ к требуемой области памяти (например, путем запроса ее блокировки) до выполнения операции ее модификации. При применении этого подхода транзакции также могут аварийно завершаться и откатываться в случае возникновения тупиковых ситуаций.



Содержание раздела