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 BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN VÀ CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN (Trang 27)

CHƯƠNG 3 CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN

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

− 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 CSicủ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 tjcủa yêu cầu từ Pj :

– Nếu ti > tj thì Pitrả lời với thông điệp ACK.

– Nếu ti < tj thì Pihoã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 BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN VÀ CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN (Trang 27)