Було запропоновано статтю Апаратні реалізації транзакційної пам'яті до цієї статті або розділу, але, можливо, це варто додатково . Пропозиція із січня 2020. |
Транзакційна пам'ять — один з підходів у реалізації рівночасних обчислень, при якому деякі групи load-store інструкцій виконуються атомарно. Даний механізм схожий на транзакції у базах даних, але застосований до операцій у спільній пам'яті.
Системи транзакційної пам'яті реалізують високорівневу абстракцію, на противагу низькорівневим примітивам синхронізації потоків виконання. Така абстракція дозволяє координувати рівночасні записи і зчитування спільних даних у паралельних обчислювальних системах.
Завдання
Рівночасне програмування потребує синхронізації у випадку, коли паралельні потоки виконання намагаються отримати доступ до спільного ресурсу. Така синхронізація досягається за допомогою спеціальних примітивів (як правило, низькорівневих), які є «песимістичними»[], і не дозволяють потокам за межами критичної секції робити будь-які зміни. До того ж, процес заволодіння (acquire) і звільнення (release) примітивів може спричиняти додатковий overhead[], особливо у випадках, коли конфліктів між потоками відносно небагато. Транзакційна пам'ять забезпечує [en], дозволяючи потокам паралельно виконуватися з мінімальною інтерференцією.
Метою системи транзакційної пам'яті є прозора підтримка регіонів коду, відмічених як «транзакції», шляхом обов'язкового застосування атомарності, узгодженості та ізоляції.
Транзакція — це набір дій, що виконуються і записують зміни до того, як станеться конфлікт. У випадку виявлення конфлікту транзакція повертається до свого початкового стану (тобто до того стану, коли не було зроблено ніяких змін), і запускається повторно, аж допоки всі конфлікти не буде усунено. Перед тим, як завершено [en], порядок операцій усередині транзакції є довільним — це контрастує з методом синхронізації, заснованому на примітивах lock/unlock, де операції відбуваються послідовно. Таким чином, якщо модифікація спільних ресурсів відбувається нечасто, транзакції уможливлюють додатковий паралелізм. У транзакційному підході програміст не повинен явно вказувати критичні секції — як наслідок, програми з застосуванням транзакційної пам'яті не можуть призвести до взаємного блокування.
Джерела
- Harris, Tim; Larus, James; Rajwar, Ravi (2 червня 2010). Transactional Memory, 2nd edition. Synthesis Lectures on Computer Architecture (англ.). 5 (1): 1—263. doi:10.2200/S00272ED1V01Y201006CAC011. ISSN 1935-3235.
- Transactional Memory: History and Development. Kukuruku Hub (англ.). Процитовано 16 листопада 2016.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Bulo zaproponovano priyednati stattyu Aparatni realizaciyi tranzakcijnoyi pam yati do ciyeyi statti abo rozdilu ale mozhlivo ce varto dodatkovo obgovoriti Propoziciya iz sichnya 2020 Tranzakcijna pam yat odin z pidhodiv u realizaciyi rivnochasnih obchislen pri yakomu deyaki grupi load store instrukcij vikonuyutsya atomarno Danij mehanizm shozhij na tranzakciyi u bazah danih ale zastosovanij do operacij u spilnij pam yati Sistemi tranzakcijnoyi pam yati realizuyut visokorivnevu abstrakciyu na protivagu nizkorivnevim primitivam sinhronizaciyi potokiv vikonannya Taka abstrakciya dozvolyaye koordinuvati rivnochasni zapisi i zchituvannya spilnih danih u paralelnih obchislyuvalnih sistemah ZavdannyaAtomarnist mizh dvoma paralelnimi tranzakciyami z konfliktom Rivnochasne programuvannya potrebuye sinhronizaciyi u vipadku koli paralelni potoki vikonannya namagayutsya otrimati dostup do spilnogo resursu Taka sinhronizaciya dosyagayetsya za dopomogoyu specialnih primitiviv yak pravilo nizkorivnevih yaki ye pesimistichnimi utochniti i ne dozvolyayut potokam za mezhami kritichnoyi sekciyi robiti bud yaki zmini Do togo zh proces zavolodinnya acquire i zvilnennya release primitiviv mozhe sprichinyati dodatkovij overhead utochniti osoblivo u vipadkah koli konfliktiv mizh potokami vidnosno nebagato Tranzakcijna pam yat zabezpechuye en dozvolyayuchi potokam paralelno vikonuvatisya z minimalnoyu interferenciyeyu Metoyu sistemi tranzakcijnoyi pam yati ye prozora pidtrimka regioniv kodu vidmichenih yak tranzakciyi shlyahom obov yazkovogo zastosuvannya atomarnosti uzgodzhenosti ta izolyaciyi Tranzakciya ce nabir dij sho vikonuyutsya i zapisuyut zmini do togo yak stanetsya konflikt U vipadku viyavlennya konfliktu tranzakciya povertayetsya do svogo pochatkovogo stanu tobto do togo stanu koli ne bulo zrobleno niyakih zmin i zapuskayetsya povtorno azh dopoki vsi konflikti ne bude usuneno Pered tim yak zaversheno en poryadok operacij useredini tranzakciyi ye dovilnim ce kontrastuye z metodom sinhronizaciyi zasnovanomu na primitivah lock unlock de operaciyi vidbuvayutsya poslidovno Takim chinom yaksho modifikaciya spilnih resursiv vidbuvayetsya nechasto tranzakciyi umozhlivlyuyut dodatkovij paralelizm U tranzakcijnomu pidhodi programist ne povinen yavno vkazuvati kritichni sekciyi yak naslidok programi z zastosuvannyam tranzakcijnoyi pam yati ne mozhut prizvesti do vzayemnogo blokuvannya DzherelaHarris Tim Larus James Rajwar Ravi 2 chervnya 2010 Transactional Memory 2nd edition Synthesis Lectures on Computer Architecture angl 5 1 1 263 doi 10 2200 S00272ED1V01Y201006CAC011 ISSN 1935 3235 Transactional Memory History and Development Kukuruku Hub angl Procitovano 16 listopada 2016