Skip to main content

Apa itu memori transaksional?

Dalam perangkat lunak, skema memori transaksional adalah tindakan untuk pemrograman multithreaded yang menggunakan transaksi yang sangat mirip dengan yang digunakan database.Ketika dua atau lebih utas mencoba mengakses data yang sama secara bersamaan, banyak situasi yang tidak diinginkan yang berbeda dapat mengakibatkan kasus di mana hasil program tergantung pada urutan akses utas.Biasanya, satu pesanan diinginkan dan dalam multithreading, kunci adalah cara dominan dan paling sederhana untuk memastikan bahwa hanya satu utas yang memiliki akses ke sumber daya tertentu pada satu waktu.

Pendekatan memori transaksional ini berisi beberapa masalah dalam hal kunci dalam multithreading.Kunci dapat menjadi permanen jika terjadi beberapa jenis kesalahan yang tidak terduga, dan kunci dapat menyebabkan masalah yang tidak dapat diprediksi dengan konkurensi, seperti kebuntuan atau inversi prioritas.Sebagai hasil dari kunci yang sangat halus, masalah lain termasuk kode yang akhirnya berakhir menghabiskan sebagian besar waktu antara penguncian, pengalihan konteks, dan membuka kunci.Ini adalah masalah penting karena dapat mengakibatkan kode menghabiskan lebih banyak waktu untuk tindakan ini daripada melakukan pekerjaan penting lainnya dalam program.Sebaliknya, kunci berbutir kasar dapat menyebabkan penurunan kinerja pemrosesan dan penurunan konkurensi.Prioritas utama dalam hal memori transaksional adalah tidak memiliki kunci dan tidak ada waktu pemrosesan kunci yang tidak perlu.Biasanya disepakati bahwa struktur data yang dibagikan bebas dari kunci jika eksklusi timbal balik tidak diperlukan oleh operasinya.Struktur data yang dibagikan dan bebas dari kunci menghindari masalah yang umum terkait dengan teknik penguncian standar jika mereka berada dalam sistem yang sangat bersamaan.

Model koherensi memori transaksional dan model konsistensi (TCC) adalah model baru yang diusulkan pada memori bersama.Menurut model, transaksi atom adalah unit dasar yang selalu dari berikut ini: pekerjaan paralel, koherensi memori, komunikasi, dan konsistensi referensi memori.Model TCC juga membuat perangkat lunak paralel lebih sederhana dengan menghilangkan sinkronisasi yang menggunakan kunci standar atau semafor.Melalui perangkat keras, TCC juga menggabungkan setiap tulisan dari setiap wilayah kejadian transaksi menjadi satu paket untuk menyiarkan secara atom paket ke keadaan memori yang dibagikan secara permanen.Selain perangkat keras koherensi yang disederhanakan, ini berarti ada pengurangan dalam pesan dormansi rendah yang dibutuhkan dan eliminasi lengkap protokol koherensi standar tertentu.