Local-đọc thuật toán
Thuật toán đầu tiên cho SC, được đưa ra trong Algorithm 12.2, là một đơn giản hóa trực tiếp của các thuật toán cho linearizability, được đưa ra trong thuật toán 12.1. Trong các thuật toán, một hoạt động đọc xong nguyên tử, trong khi một hoạt động Write không not.Between sự cầu khẩn của một Viết bởi Pi (dòng 1b) và sự thừa nhận của nó (đường 2a, 2b), có thể có nhiều hoạt động Write khởi xướng bởi bộ vi xử lý khác có hiệu lực vào Pi (dòng 2a). Như vậy, một Write ban hành tại địa phương đã hoàn thành của nó bị trì hoãn tại địa phương. Một thuật toán như vậy là chấp nhận được cho các chương trình Readintensive. Local-viết thuật toán Thuật toán 12,3 không trì hoãn thừa nhận viết. Đối với chương trình Writeintensive, đó là mong muốn rằng một Write ban hành tại địa phương được công nhận ngay lập tức (như trong dòng 2a-2c), mặc dù tổng số phát sóng để các Write, và cập nhật thực tế cho Write có thể không có hiệu lực bằng cách cập nhật các biến cùng một lúc (dòng 3a). Các thuật toán này đạt được với chi phí của việc trì hoãn một hoạt động đọc bởi một bộ xử lý cho đến khi tất cả các phát hành trước đó Write hoạt động địa phương bởi cùng bộ xử lý tại địa phương đã đi vào hiệu lực (tức là, viết ban hành trước đây tại địa phương đã được cập nhật các biến địa phương của họ được ghi vào). Các quầy biến được sử dụng để theo dõi số lượng Write hoạt động đã được địa phương khởi xướng nhưng không hoàn thành bất cứ lúc nào. Một hoạt động đọc xong chỉ nếu không có trước khi hoạt động tại địa phương khởi xướng Viết đã không được ghi vào biến của họ (dòng 1a), tức là, không có cấp phát khởi xướng các hoạt động tại địa phương Viết thư cho bất kỳ biến. Nếu không, một hoạt động đọc được trì hoãn cho đến khi hoạt động Write sau khi tất cả bắt đầu trước đó đã viết cho các biến địa phương của họ (dòng 3b-3d), mà sẽ xảy ra sau khi tổng số thứ tự chương trình phát sóng liên kết với các Viết đã đưa ra thông điệp phát sóng tại địa phương.
đang được dịch, vui lòng đợi..
