Một giải pháp phát hiện các sự kiện song song trong các tiến trình của ứng dụng phân tán - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

7 7 0
Một giải pháp phát hiện các sự kiện song song trong các tiến trình của ứng dụng phân tán - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

Đang tải... (xem toàn văn)

Thông tin tài liệu

Vì vậy, hiện nay hệ phân tán gặp một số thách thức về đồng bộ như sau: làm sao đồng bộ về thời gian trong hệ thống, trong khi mỗi quốc gia có các múi giờ khác nhau; tại [r]

(1)

MỘT GIẢI PHÁP PHÁT HIỆN CÁC SỰ KIỆN SONG SONG TRONG CÁC TIẾN TRÌNH CỦA ỨNG DỤNG PHÂN TÁN

Nguyễn Hoàng Hà

Khoa Công nghệ thông tin, Trường Đại học Khoa học, Đại học Huế Email: nhha@husc.edu.vn, nhha76@gmail.com

Ngày nhận bài: 27/4/2020; ngày hoàn thành phản biện: 4/5/2020; ngày duyệt đăng: 14/7/2020

TÓM TẮT

Khác với hệ thống tập trung, liệu chức hệ phân tán lưu trữ máy tính thuộc vùng địa lý khác thời điểm có nhiều cơng việc thực cách đồng thời Vì vậy, để phát kiện song song tiến trình nhằm tối ưu thời gian thực hệ thống thách thức lớn Trước đây, người ta sử dụng thời gian thực để phát kiện song song Khi truyền nhận liệu nút hệ phân tán, thời gian thực có độ trể lớn nên độ xác khơng cao Bài báo nghiên cứu đồng hóa thời gian logic hệ phân tán nhằm phát kiện thực song song ứng dụng phân tán

Từ khóa: đồng hóa thời gian, xử lý phân tán, thuật toán Lamport, thuật toán Vector Clock

1. MỞ ĐẦU

Hệ phân tán hệ thống có chức liệu phân tán trạm (máy tính) kết nối với mạng máy tính *2]

Trong hệ phân tán, liệu chức lưu trữ máy tính vị trí địa lý khác nhiều cơng việc thực đồng thời Vì vậy, hệ phân tán gặp số thách thức đồng sau: đồng thời gian hệ thống, quốc gia có múi khác nhau; thời điểm có nhiều tiến trình cộng tác nhau; kiện tiến trình trao đổi thơng tin với Vì vậy, để xác định kiện tiến trình thực đồng thời với kiện tiến trình khác Đây thách thức lớn

(2)

giải thuật sử dụng đồng hồ UTC làm mốc thời gian để đồng Nhưng hai thuật toán áp dụng mạng nội có độ trễ thấp, sử dụng mạng diện rộng độ xác khơng cao độ trể thời gian lớn

Năm 2016, Đặng Hồng Vỹ *1+ sử dụng thuật tốn Lamport để đồng hóa thời gian logic hệ phân tán Nghiên cứu xác định quan hệ phần tiến trình, cịn nhiều trường hợp chưa xác định tiến trình xảy trước, tiến trình xảy sau chưa xác định kiện xảy đồng thời

Yan Cai ; W.K Chan [3] sử dụng thuật toán Vector Clock để đồng thời gian logic Nghiên cứu xác định quan hệ phần, quan hệ trước sau tiến trình chưa xác định kiện xảy đồng thời

Bài báo nghiên cứu thuật tốn Vector Clock [4], từ đưa mơ hình, giải thuật cài đặt thử nghiệm nhằm đưa kiện xảy đồng thời Từ xác định kiện cài đặt song song với nhằm tối ưu thời gian hệ thống

2. MƠ HÌNH HỆ THỐNG

a Mơ hình tiến trình

Một hệ thống xử lý phân tán gồm n tiến trình, ký hiệu: P={p1, p2, <, pn}

Trên tiến trình gồm m kiện xảy tiến trình đó, gọi Ei kiện xảy

ra tiến trình i (i=1 n), ký hiệu Ei={ei1, ei2<, eim}, eix kiện x (x=1 m) xảy tiến trình i Các kiện tiến trình trao đổi thơng tin với kiện tiến trình khác Mỗi kiện trì nhãn thời gian [1]

b Quan hệ “xảy trước”

Cho eix (i=1 < n, x=1<m), ejy (j=1 < n, y=1 m) hai kiện hệ thống

xử lý phân tán ký hiệu:  quan hệ “xảy trước”[1]

- Nếu eix ejy xảy tiến trình ( i=j), eix đến trước ejy, thì: eix  ejy

- Nếu eix việc gửi gói tin từ tiến trình Pi, ejy việc nhận gói tin

tiến trình Pj, eix ejy

- Nếu eix ejy ejy eit (t=1 m) eix eit c Nhãn thời gian

(3)

lý Mỗi kiện eix tiến trình C gán cho số timestamp tương

đương C(eix) Bộ đếm C(eix) tăng trước kiện tiến trình Đối với

mỗi kiện eix , ejy ta ln có: eix  ejy C(eix) <C(ejx)[1]

Ta định nghĩa lại tình trạng đồng hồ dựa quan hệ “xảy trước” bao gồm hai điều kiện sau:

Nếu eix eiy hai kiện tiến trình pi eix  ejy C(eix) <C(ejy)

Nếu eix kiện gửi gói tin từ tiến trình pi ejy kiện nhận gói tin

thì C(eix) <C(ejy)

d Giải pháp trật tự phần

Trong ứng dụng hệ phân tán, dựa vào quan hệ “xảy trước” ta xác định trật tự phần kiện Trật tự thỏa mãn điều kiện:

Nếu eix ejy hai kiện trạm eix thực trước ejx

eix ejx

Nếu eix phát thơng điệp trạm ejx thu thơng điệp eix

ejx

e Đồng hồ vector

Nếu nhãn thời gian số nguyên ta kết luận: eix  ejy C(eix)

<C(ejx) Nếu C(eix) < C(ejx) chưa a xảy trước b, rút quan hệ phụ

thuộc nhân từ nhãn thời gian hai kiện eix , ejy xảy đồng thời Để

khắc phục nhược điểm ta sử dụng đồng hồ vector [3]

Mỗi tiến trình sử dụng vector gồm n thành phần chứa số tự nhiên (nhãn thời gian): Pi trì vector: Vi*1,<,n+

Vi[i]: chứa nhãn thời gian tiến trình i Ví dụ V1=,1,0,0} V1[1]=1, V1[2]=0, V1[3]=0;

Vi[j]: chứa nhãn thời gian tiến trình j xảy tiến trình i

3. THUẬT TỐN VECTOR CLOCK

Ý tưởng thuật toán

(4)

tiến trình trì vector Khi tiến trình trao đổi với giá trị vector thay đổi [3]

Thuật toán Vector Clock Đầu vào:

- P={p1, p2, <, pn}; - Ei={ei1, ei2<, eim};

- Tập vector Vi (i=1 n);

Đầu ra: Tập vector Vi chứa nhãn thời gian kiện tiến trình Thuật tốn:

1 Khởi tạo: Vi[j]=0, i=1 n, j=1 n

2 Foreach pi

3 Foreach eix

4 If Pi gửi kiện eix đến Pj then

5 Pi thay đổi giá trị Vi[i]=Vi[i]+1 ;

6 Pi gửi thông báo kèm theo Vi*i+ đến Pj;

7 Khi Pj nhận kiện từ Pi, Pj cập nhật lại Vj:

8 Vj[k]=max(Vj[k],Vi[k]), k=1 n, j<>k;

9 Vj[j]=Vj[j]+1;

Phân tích độ phức tạp thuật toán Vector Clocks

- Để đưa nhãn thời gian cho kiện tiến trình ta phải duyệt qua

các n tiến trình nên độ phức tạp: O(n)

- Mỗi tiến trình ta phải duyệt qua kiện để xác định kiện gửi, kiện

nhận nên độ phức tạp: O(M) với M số kiện lớn tiến trình

- Với kiện ta phải duyệt qua phần tử vector nên độ phức tạp:

O(n)

Như vậy, độ phức tạp thuật toán Vector Clocks O(n)*O(M)*O(n)

=O(n2*M)

(5)

hiện song song để tối ưu thời gian thực hệ thống Để giải vấn đề ta cần tìm quan hệ nhân kiện tiến trình

4. QUAN HỆ NHÂN QUẢ GIỮA CÁC SỰ KIỆN

Dựa tập vector Vi chứa nhãn thời gian kiện tiến trình Ta xác định được:

- Hai vector thành phần tương ứng vector

nhau:

Vi=Vj, Vi*k+=Vj*k],  k=1,<,n

- ViVj, Vi*k] Vj[k],  k=1,<,n

- Sự kiện có nhãn thời gian Vi xảy trước kiện có nhãn thời gian Vj

Vi<Vj, Vi<Vj thỏa mãn hai điều kiện: ViVj k để Vi[k]<Vj[k]

Như vậy, kiện có nhãn thời gian Vi xảy đồng thời với kiện có nhãn thời

gian Vj nếu: Not(ViVj) Not(VjVi)

5. THUẬT TỐN PVectorClock

Dựa mơ hình phần 4, báo xây dựng thuật toán PVectorClock để xác định kiện xảy đồng thời tiến trình

Thuật tốn PVectorClock:

Đầu vào: Tập vector Vi đầu thuật toán Vector Clock; Đầu ra: Tập S chứa vector xảy đồng thời;

Thuật toán:

1 Function isconcurrent(v[], w[]) //Hàm kiểm tra v,w xảy đồng thời hay không Begin

2 greater:=false, less:=false;

3 for i:=0 to n

4

if v[i] > w[i] then

greater := true;

else

if v[i] < w[i] then

(6)

9 10

if greater=true and less=true then

return true; // v w đồng thời

else

return false; // v w không đồng thời

11 End;

12 S= ;

13 Foreach pi

14 Si= ;

15 Foreach pj

16 If isconcurrent(Vi, Vj) then

17 Si=Si Vj

18 S=S Si

Phân tích thuật toán độ phức tạp thuật toán PVectorClock

- Để tìm vector xảy đồng thời ta phải duyệt qua n tiến trình nên

độ phức tạp: O(n)

- Mỗi tiến trình ta phải duyệt qua tiến trình có trao đổi liệu với

nên độ phức tạp: O(n)

- Để kiểm tra hai kiện có xảy đồng thời hay khơng, ta phải phải duyệt

qua phần tử vector nên độ phức tạp: O(n)

Như vậy, độ phức tạp thuật toán PVectorClock O(n)*O(n)*O(n) =O(n3)

Cài đặt mơ thuật tốn PVectorClock

Thuật tốn cài đặt ngơn ngữ lập trình Java (NetBean 8.2, JDK 1.8); hệ điều hành Window Ultimate; xử lý Intel(R) Core ™ i5-4200U CPU @ 1.60 GHz 2.30 GHz; RAM: 4.00Gb

Phần mô thuật tốn trường hợp, trường hợp mơ tiến trình, 12 kiện Trường hợp mơ tiến trình 19 kiên

Trường hợp 1:

- Thuật tốn Vector Clock mơ 02 tiến trình, tiến trình có

(7)

Hình 1. Kết Thuật toán Vector Clock cho tiến trình

- Sau mơ phỏng, thuật toán PvectorClock xác định tập kiện

song song tiến trình, cụ thể sau:

Sự kiện có nhãn thời gian *1, 0+ thực song song với kiện có nhãn thời gian *0,1+, *0,2+ Sự kiện có nhãn thời gian *5, 2+ thực song song với kiện có nhãn thời gian *2,3+, *2,4+, <

Tập kiện thực song song với thể Hình

Hình 2. Tập kiện thực song song với tiến trình

Trường hợp 2:

- Thuật toán Vector Clock mơ 04 tiến trình, số kiện

Yan Cai ; W.K Chan

Ngày đăng: 01/04/2021, 13:20

Tài liệu cùng người dùng

Tài liệu liên quan