Skip to main content

Bộ nhớ giao dịch là gì?

Trong phần mềm, sơ đồ bộ nhớ giao dịch là một quá trình hành động cho lập trình đa luồng, sử dụng các giao dịch giống như các giao dịch mà cơ sở dữ liệu sử dụng.Khi hai hoặc nhiều luồng cố gắng truy cập cùng một dữ liệu cùng một lúc, nhiều tình huống không mong muốn khác nhau có thể dẫn đến các trường hợp kết quả của chương trình phụ thuộc vào thứ tự truy cập luồng.Thông thường, một thứ tự được mong muốn và trong đa luồng, khóa là cách chiếm ưu thế và đơn giản nhất để đảm bảo rằng chỉ có một luồng duy nhất có quyền truy cập vào một tài nguyên cụ thể tại một thời điểm..Một khóa có thể trở thành vĩnh viễn nếu một số loại lỗi không lường trước được xảy ra và khóa có thể mang lại các vấn đề không thể đoán trước với sự đồng thời, như bế tắc hoặc đảo ngược ưu tiên.Do các khóa rất tốt, một vấn đề khác bao gồm mã cuối cùng sẽ dành phần lớn thời gian giữa khóa, chuyển đổi ngữ cảnh và mở khóa.Đây là một vấn đề quan trọng bởi vì nó có thể dẫn đến việc mã dành nhiều thời gian hơn cho các hành động này hơn là thực hiện công việc quan trọng khác trong chương trình.Ngược lại, các khóa hạt thô có thể làm giảm hiệu suất xử lý và giảm đồng thời.Các ưu tiên chính liên quan đến bộ nhớ giao dịch là không có khóa và không có thời gian xử lý khóa không cần thiết.Người ta thường đồng ý rằng một cấu trúc dữ liệu được chia sẻ không có khóa nếu không loại trừ lẫn nhau bởi các hoạt động của nó.Các cấu trúc dữ liệu được chia sẻ và không có khóa tránh các vấn đề thường liên quan đến các kỹ thuật khóa tiêu chuẩn nếu chúng có trong các hệ thống có tính đồng thời cao.

Mô hình sự kết hợp và thống nhất bộ nhớ giao dịch (TCC) là một mô hình mới, được đề xuất trên bộ nhớ chia sẻ.Theo mô hình, các giao dịch nguyên tử là các đơn vị cơ bản luôn luôn của các đơn vị sau: công việc song song, kết hợp bộ nhớ, giao tiếp và tính nhất quán của tham chiếu bộ nhớ.Mô hình TCC cũng làm cho phần mềm song song đơn giản hơn bằng cách loại bỏ đồng bộ hóa sử dụng khóa tiêu chuẩn hoặc semaphores.Thông qua phần cứng, TCC cũng kết hợp mọi ghi từ mỗi khu vực xảy ra giao dịch thành một gói để phát gói đến trạng thái bộ nhớ được chia sẻ vĩnh viễn.Ngoài phần cứng kết hợp đơn giản hóa, điều này có nghĩa là có sự giảm các thông điệp có độ bão thấp cần thiết và loại bỏ hoàn toàn các giao thức kết hợp tiêu chuẩn, nhất định.