Tải bản đầy đủ (.ppt) (35 trang)

BÁO CÁO MÔN TÍNH TOÁN PHÂN TÁN MODELS AND CLOCKS. Giảng viên hướng dẫn: PGS TS. Trần Đình Quế

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (936.06 KB, 35 trang )

Giảng viên hướng dẫn: PGS TS Trần Đình Quế
Học viên thực hiện:
1. Trịnh Vân Anh
2. Đỗ Đức Cường
3. Trần Văn Đoàn
4. Phạm Văn Dùng
5. Cao Trung Thụ
6. Trịnh Kim Liên


Nội dung
Trịnh Vân Anh
Trịnh Vân Anh
Mơ hình
Đồng hồ Clock
Bác Đồn
Direct Dependency Clock
Đồng hồ Matrix
Vấn đề ?
2


7.3 Mơ hình của một tính tốn phân tán
Trong phần này, chúng ta miêu tả mơ
hình xen kẽ và mơ hình xảy ra ngẫu
nhiên để thu được đặc tính hoạt động
của một hệ thống phân tán


7.3.1 Mơ hình xen kẽ
Một



tính tốn phân tán hoặc chỉ đơn
giản là một chuỗi các sự kiện
Do đó tất cả các sự kiện trong một
hoạt động được xen kẽ và được đan
xen với nhau


7.3.1 Mơ hình xen kẽ
Ví

dụ: xét một hệ thống: một máy chủ
ngân hàng và khách hàng. Khách
hàng sẽ gửi hai thông điệp yêu cầu
đến máy chủ ngân hàng truy vấn các
khoản tiết kiệm và tài khoản kiểm tra
Khi nhận được phản ứng, nó cho biết
thêm lên tổng số dư.
Trong mơ hình xen kẽ có thể được
biểu diễn như sau:


7.3.1 Mơ hình xen kẽ
P1 gửi đến P2 " kiểm tra chính xác thơng tin của tơi là gì“
P1 gửi đến P2 "số dư tiết kiệm của tơi là gì"
P2 nhận được từ P1 " kiểm tra chính xác thơng tin của tơi là gì “
P1 đặt tổng số 0
P2 nhận được từ P1 "số dư tiết kiệm của tôi là gì"
P2 gửi "kiểm tra số dư = 40" về P1
P1 nhận được "kiểm tra số dư = 40" từ P2

P1 đặt ra tổng số đến 40 (tổng số + kiểm tra)
P2 sẽ gửi "số dư tiết kiệm = 70" về P1
P1 nhận được "số dư tiết kiệm = 70" từ P2
P1 đặt ra tổng số tới 110 (tổng số + Tiết kiệm)


7.3.2 Mơ hình xảy ra ngẫu nhiên
Để

cài đặt một sự kiện trong một q trình.
Ta có nếu sự kiện e xảy ra trước khi sự
kiện f trong một quá trình, sau đó e được
cài đặt trước f.
Nếu e là sự kiện gửi các thông điệp và f là
sự kiện nhận được của cùng một thơng
điệp, sau đó chúng ta có thể cài đặt e trước
f. Kết hợp hai ý tưởng này, chúng ta có
được định nghĩa sau đây.


7.3.2 Mơ hình xảy ra ngẫu nhiên
Định nghĩa 7.1 (Mối quan hệ xảy ra ngẫu nhiên)
Mối quan hệ xảy ra ngẫu nhiên (→) là mối quan
hệ nhỏ nhất thỏa mãn:
1. Nếu e xảy ra trước khi f trong q trình
đó, sau đó e → f.
2. Nếu e là sự kiện gửi các thông điệp và e
là nhận được sự kiện của cùng một thơng
điệp, sau đó e → f.
3. Nếu ở đó tồn tại một g sự kiện (e → g) và

(g → f), sau đó (e →f)


7.3.2 Mơ hình xảy ra ngẫu nhiên

Hình 7.3


7.3.2 Mơ hình xảy ra ngẫu nhiên
Hình

7.3 Minh họa thường được gọi là
sơ đồ không gian - thời gian, sơ đồ quá
trình thời gian, hoặc xảy ra ngẫu nhiên
trong quá trình thời gian, e→f khi và
chỉ khi nó có chứa một con đường
hướng từ sự kiện e đến sự kiện f.


7.4 Đồng hồ logic
Ở

đây chúng ta thảo luận về cơ chế được
gọi là đồng hồ có thể được sử dụng để
theo dõi các mối quan hệ.
Mục đích của đồng hồ của chúng ta chỉ là
để cung cấp cho chúng ta một thứ tự giữa
các sự kiện và khơng có bất kỳ sở hữu nào
gắn liền với đồng hồ



7.4 Đồng hồ logic
Như

chúng ta biết, chỉ có hai loại thơng tin
để có thể được xác định trong một hệ thống
được phân tán là thứ tự gửi và nhận của các
sự kiện. Trên cơ sở của những nhận xét
này, chúng ta nhận được định nghĩa sau
đây:
Một đồng hồ C hợp lý là một tập hợp các sự
kiện từ E đến N (tập hợp của số tự nhiên) với
các hạn chế sau đây:


7.4 Đồng hồ logic
Có

của một chiếc đồng hồ logic trong q
trình tính tốn phân tán sẽ dễ dàng hơn để
giải quyết nhiều vấn đề. Một đồng hồ vật lý
chính xác rõ ràng đáp ứng các điều kiện và
do đó cũng là một đồng hồ logic.
Tuy nhiên, theo định nghĩa của một hệ
thống phân tán khơng có đồng hồ chia sẻ
trong hệ thống.


7.4 Đồng hồ logic
Ví dụ : Về đồng hồ logic

 1 public
class LamportClock
2
in t c;
3
public LamportClock () {
4
c = 1;
5
}
6
public int getValue () {
7
return
c;
8
}
9
public void tick () { / / on internal
events


7.4 Đồng hồ logic
 10
 11
 12
 13
 14
 15


c = c + 1;
}
public void sendAction () {
/ / include
c in message
c = c + 1;

}
 16
public void receiveAction (int sr c , int
sent Value ) {
 17
c = Util.max(c,
sentValue) + 1;
 18
}
 19


7.5 Vector Clock


7.5 Vector Clock


7.5 Vector Clock


7.5 Vector Clock



7.5 Vector Clock


7.5 Vector Clock


7.5 Vector Clock


7.6 Direct Dependency Clock
Nhược

điểm của thuật toán Vector Clock là yêu
cầu độ phức tạp o(n) cho mỗi message gửi đi.
Dependency clock yêu cầu chỉ một số nguyên
duy nhất gắn theo message khi truyền đi.
Sử dụng thuật toán Lamport cho việc thực thi


7.6 Direct Dependency Clock


Khởi tạo:



Khi gửi message




Khi nhận


7.6 Direct Dependency Clock
public class DirectClock {
public int[] clock;
int myId;
public DirectClock(int numProc, int id) {
myId = id;
clock = new int[numProc];
for (int i = 0; i < numProc; i++) clock[i] = 0;
clock[myId] = 1;
}
public int getValue(int i) {
return clock[i];
}
public void tick() {
clock[myId]++;
}
public void sendAction() {
// sentValue = clock[myId];
tick();
}
public void receiveAction(int sender, int sentValue) {
clock[sender] = Util.max(clock[sender], sentValue);
clock[myId] = Util.max(clock[myId], sentValue) + 1;
}
}



×