Cải tiến thuật toán Lamport (Thuật toán Ricart và Agrawala)

Một phần của tài liệu Tiểu luận môn học hệ tin học phân tán (Trang 26)

−Mục tiêu là để giảm việc chuyển thông điệp bằng cách kết hợp các thông điệp REL và REP.

−Nếu một trạm đang thi hành miền găng khi một yêu cầu REQ đến, hoặc nếu yêu cầu đang chờ của chính nó có dấu thời gian sớm hơn, nó không đáp ứng yêu cầu đó ngay lập tức. Thay vào đó, nó chờ cho đến khi nó ra khỏi miền găng của nó. Tại thời điểm đó, nó có thể gửi một thông điệp hồi âm/giải phóng đến tất cả các yêu cầu đang chờ.

−Một trạm sẽ phải chờ cho đến khi nó nhận được trả lời từ tất cả các trạm còn lại trước khi đi vào miền găng của nó, và yêu cầu của nó vẫn phải còn nằm ở đỉnh của hàng đợi.

−Thuật toán này yêu cầu 2(N-1) thông điệp: một nửa cho các yêu cầu, nửa còn lại để trả lời.

−Các thời gian lôgic được tạo ra như trong thuật toán Lamport (Hàng đợi phân tán).

Phần yêu cầu của Pi :

+ Gửi đi thông điệp REQ cho tất cả các tiến trình như trong thuật toán Lamport.

+ Truy cập vào CSi sau khi Pi nhận được thông điệp ACK từ tất cả các tiến trình khác.

Phần thu của Pi khi nhận được thông điệp REQ từ Pj :

1. Nếu Pi không muốn truy cập vào miền găng CSi của nó (nó chưa gửi đi thông điệp REQ), thì Pi trả lời với thông điệp ACK.

2. Nếu Pi đang ở trong miền găng CSi thì Pi hoãn lại việc hồi âmcho đến khi nó rời khỏi miền găng CSi.

3. Nếu Pi muốn truy cập vào miền găng CSi (nó đã gửi cho tất cả các tiến trình khác thông điệp REQ), thì Pi so sánh thời gian lôgic ti của thông điệp yêu cầu của chính nó với thời gian lôgic tj của yêu cầu từ Pj :

– Nếu ti < tj thì Pi hoãn lại việc hồi âm (cho đến sau khi Pi kết thúc

CS tiếp theo).

Các xung đột được giải quyết nhờ vào yêu cầu “sớm hơn”, được xác định bởi các thời gian lôgic.

Ví dụ:

(1,1) < (1,2)hoãn hồi âm hoãn hồi âm

(REQ, 1, 2)

(REQ, 1, 1) C2 = 1

C1 = 1

ACK

Một phần của tài liệu Tiểu luận môn học hệ tin học phân tán (Trang 26)

Tải bản đầy đủ (DOC)

(30 trang)
w