• La qua trinh sắp xêp thứ tự thời gian cua các sự kiện qua viêc sinh ra cac tiến trình đồng thời Nhằm mục đích • Đồng bộ giữa việc gửi và nhận các thông điệp • Điều phối các hoạt độ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC DUY TÂN KHOA CÔNG NGHỆ THÔNG TIN
==========
Nhóm thực hiện : Trương Minh Thống,
Nguyễn Trọng Hiếu, Nguyễn Trường Huy,
Hồ Văn Quân, Thân Văn Việt
Giáo viên hướng dẫn: TS Nguyễn Hà Huy Cường
1
Đà Nẵng, 05,03,2022
TIEU LUAN MOI download : skknchat123@gmail.com
Trang 2YÊU CẦU CỦA TIỂU LUẬN
• Ta có 1 tập hợp bao gồm n người (n>=2) chỉ có thể trao đổi với nhau bằng thông điệp để thống nhất cho 1 hành động chung Hãy mô tả bài toán phân tán này, xây dựng giải pháp và lập chương trình
–Xây dựng hệ thống phân tán với một số server có khả
năng phát/nhận thông điệp
–Xây dựng các giải pháp kỹ thuật và giả định hành động chung
–Lập chương trình bằng Java và hiện kết quả lên màn
hình
2 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 3NỘI DUNG THỰC HIỆN
Trang 4TIEU LUAN MOI download : skknchat123@gmail.com
Trang 5GIẢI QUYẾT YÊU CẦU
Ta cần tìm hiểu trước về các vấn đề sau:
- Muốn thống nhất được các thông tin của nhiều
người, ta cần đồng bộ hóa được thông tin.
- Hiểu được về Đồng Hồ Logic và cách sử dụng.
- Hiểu về thuật toán Lamport dựa trên đồng hồ logic.
- Ứng dụng thuật toán trong lập trình.
4 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 6ĐỒNG BÔ HÓA
Tại sao phải đồng bộ hóa ?
• Ích lợi của mô hình đa luồng cho phép ứng dụng thực hiệnnhiều công việc đồng thời Nhưng bên cạnh sự hữu dụng đó,việc tồn tại cùng lúc nhiều luồng trong môi trường có thể dẫnđến sự tranh chấp, ngăn cản họat động lẫn nhau giữa cácluồng
+ Bê tắc ( Dead Lock)
+ Cho kêt qua sai lêch
Do đo cân thưc hiên đông hoa thơi gian thưc hiên cua cactiên trinh khi xư lý
• Hâu cac ưng dung như : thanh toan, điêu khiên tư đông( lắp rap, phan ưng hat nhân…), truy xuât database v.v…đông bô hoa co vai trò quan trong trong xư lý
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com 5
Trang 7ĐỒNG BÔ HÓA
Đồng bộ hóa là gì ?
• La qua trinh sắp xêp thứ tự thời gian cua các sự kiện qua viêc sinh ra cac tiến trình đồng thời
Nhằm mục đích
• Đồng bộ giữa việc gửi và nhận các thông điệp
• Điều phối các hoạt động chung cho toan hê thông
• Sắp xêp thứ tự truy cập đồng thời cho các đối tượng được chia sẻ tai nguyên
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com 6
Trang 8ĐỒ̀NG HỒ̀ LOGIC
Happened-before
Lamport gọi “happened-before” như sau:
- a b : sự kiện a đã xảy ra trước sự kiện b
Ví Dụ : a thông điệp được gửi đi, b: thông điệp nhận
+ Tính bắc cầu (Transitive): nếu a b và b c thì a c
7
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
Trang 9ĐỒ̀NG HỒ̀ LOGIC
Không có nguồn thời gian trung tâm
- Không có chỉ thị của các sự kiện
Không có khái niệm “happened-when” Các hệ thống đôi khi giao tiếp hoặc không
Làm thế nào để sắp xếp thứ tự của a,b,c,d ???
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
8
7/35
Trang 10ĐỒ̀NG HỒ̀ LOGIC
Happened-before
- Lamport gọi “happened-before” như sau:
Nếu sự kiện a đã xãy ra trước sự kiện
b khi và chỉ khi
a : thông điệp được gửi đi, b:
thông điệp nhận.
Ký́ hiệu : a b Tính bắ́c cầu (Transitive):
-nếu a b và b c thì a c Lamport, February 7, 1941,
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
9
8/35
Trang 11ĐỒ̀NG HỒ̀ LOGIC
Sự kiện đồng qui (concurrency)
- Nếu a và b xảy ra trên các hệ thống/trạm khác nhau mà
không trao đổi thông điệp thì không thể xác định :
a b hoặc b a là đúng
những sự kiện này được gọi là đồng qui
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
10
9/35
Trang 12ĐỒ̀NG HỒ̀ LOGIC
Thuật toán Lamport
(a,j), (a,g), (g,j), (h,f), (i,k)
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
11
10/35
Trang 13ĐỒ̀NG HỒ̀ LOGIC
Thuật toán Lamport
- Mỗi thông điệp mang một dâu thời gian (timestamp ) của đồng hồ gởi
- Khi một thông điệp được gởi đến :
+nếu đồng hồ nhận < timestamp của thông điệp
thiết lập lại đồng hồ hệ thống (timestamp + 1)
+Ngược lại giữ nguyên
- Đông hô phai đươc điêu chinh giưa 2 sư kiên bât kỳ trong cung tiên trinh
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
12
11/35
Trang 14ĐỒ̀NG HỒ̀ LOGIC
Thuật toán Lamport
Thuật toán cho phép chúng ta sắ́p xếp thứ tự thời
gian trong số các sự kiện liên quan - Thứ tự từng
phần (Partial ordering )
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
13
12/35
Trang 15ĐỒ̀NG HỒ̀ LOGIC
Thuật toán Lamport
a b, b c, …: trình tự các sự kiện tại địa phương
I(a,g,j),II(h,f),III(i,k) : Các thành phần đồng qui
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
14
13/35
Trang 16ĐỒ̀NG HỒ̀ LOGIC
Unique timestamps
Chúng ta có thể áp đặt mỗi dấu thời gian trơ nên duy
nhất
- Xác định dâu thời gian logic toàn cục (Ti, i)
timestamps:
(T i , i) < (T j , j)
Nếu và chỉ nếu :
T i < T j (i, j khác hệ thống )hoặc T i = T j và i < j (i,j cùng 1 hệ thống )
UNIVERSITY DUYTAN TIEU LUAN MOI download : skknchat123@gmail.com
15
14/35
Trang 17ĐỒ̀NG HỒ̀ LOGIC LAMPORT
– Các sự kiện xảy ra trong cùng một bộ xử lý́ thì chúng luôn ở trong trạng thái trật tự gắ́n bó bằng cách sử dụng đồng hồ hệ thống (thời gian thực) vì giá trị của đồng hồ hệ thống luôn
được tăng đều.
– Các sự kiện xảy ra trong các bộ xử lý́ khác nhau thì sẽ gây ra tình trạng không gắ́n bó trong thời gian truyền thông điệp,
nhưng không lâu sau chúng cũng gắ́n bó vì nếu bộ xử lý́ Pjgửi thông điệp cho bộ xử lý́ Pk vào thời gian T thì Pk không thể nhận thông điệp đó vào thời gian T hoặc trước đó.
16 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 18Thuật toán Lamport dựa trên đồng hồ logic
logic trong bộ xử lý́ J tại thời gian T, đồng hồ logic hoạt độngtheo nguyên tắ́c sau:
– Đánh dấu mỗi sự kiện bằng giá trị đồng hồ logic của bộ xử lý́
đó (với C j : Đồng hồ logic của P j, được khởi tạo từ 0).
– Nếu có một sự kiện cục bộ xảy ra, thì ta tăng giá trị đồng hồ logic lên 1.
– Khi một thông điệp được gửi bởi bộ xử lý́ K, đánh dấu nó bởi
C k (T).
– Khi bộ xử lý́ K nhận một thông điệp có dấu thời gian là C’ thì
ta đặt lại đồng hồ logic của bộ xử lý́ K là: max(C’, C k (T)) + 1.
17 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 19Thuật toán Lamport dựa trên đồng hồ logic (tt)
• Nếu nhận các thông điệp cùng một thời gian thì căn cứ vào giá trị đồng hồ logic của các thông điệp
để thực hiện việc sắ́p xếp:
a thực hiện trước b nếu
- Ci(a) < Cj(b) hoặc
- Ci(a) = Cj(b) và i < j
18 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 20Thuật toán Lamport dựa trên đồng hồ logic (tt)
xử lý́ (nếu là sắ́p xếp trong các tiến trình ta phải dùng thêm
– C i : giá trị đồng hồ logic của bộ xử lý́ i.
– i : là ID của bộ xử lý́ (như Server1, Server2…).
19 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 21Thuật toán sắp xếp các thông điệp đến căn cứ vào
giá trị của đồng hồ logic Lamport:
Thuật toán được mô tả theo sơ đồ sau :
Mi = (REL, Hinit , i)
• Để truy cập vào tài nguyên một trạm nào đó sẽ phát một thông điệp yêu cầu Mi (T,Hi,i) đến tất cả các trạm khác và đưa yêu cầu vào hàng đợi yêu cầu của trạm này.
• Khi trạm j nhận thông điệp yêu cầu từ i, nó sẽ gởi ngược lại thông điệp (có chứa đồng hồ logic H j ) cho S j và đưa yêu cầu này vào trong hàng đợi yêu cầu của nó.
20 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 22Thuật toán sắp xếp các thông điệp đến căn cứ
vào giá trị của đồng hồ logic Lamport:
If state =muon then
Trang 23•
Thuật toán sắp xếp các thông điệp đến căn cứ
vào giá trị của đồng hồ logic Lamport:
Khi trạm đang vào đoạn găng: Trạm i nhận một thông
điệp với đồng hồ logic lớn hơn đồng hồ ở thời điểm
hiện tại của trạm i và yêu cầu của trạm i đang ở vị trí
của hàng đợi yêu cầu của nó
If (H>H i ) and (Vị trí M ở đầu của hàng đợi) then state=namgiu
Khi trạm không thực hiện gì cả
– Xoá yêu cầu và gởi thông điệp giải phóng những trạm khác sẽ
loại bỏ yêu cầu tương ứng
– If state=ranh then xử lý(các thông điệp hàng đợi) ‘sau đó xoá
– Send thông điệp giải phóng đến các trạm
– Những trạm khác cũng sẽ xoá yêu cầu của nó trong hàng đợi
của
mình.
22
Trang 24U LUA
N MOI dow nloa
d : skk nch at12 3@ gma il.co m
Trang 25XÂY DỰNG CHƯƠNG TRÌNH
trên Internet thực sự Hai Server này có chức năng:
– Chứa cơ sở dữ liệu là một tài khoản ngân hàng.
– Khi nhận thông điệp:
nó.
• Giả lập Client trên một cửa sổ khác:
– Kết nối với 2 Server
– Gửi thông điệp để thay đổi số tiền có trong tài khoản (thêm tiền và tính lãi suất).
– Nhận thông điệp trả về từ các Server cho biết số tiền hiện có trong tài khoản.
23 TIEU LUAN MOI download : skknchat123@gmail.com
Trang 26KẾT LUẬN
24 TIEU LUAN MOI download : skknchat123@gmail.com