You are on page 1of 100

DISTRIBUTED SYSTEM

Chương V

Đồng bộ hóa đồng hồ

Trình bày : ThS. Nguyễn Hữu Phúc


Mobile : 0905094972
Email : phucnhapp@gmail.com

11
Trường Đại học Duy Tân, Trường Khoa học máy tính, Khoa Công nghệ thông tin
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 2
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 3
ĐỒ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ện
nhiều công việc đồng thời. Nhưng bên cạnh lợi ích, 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 hoạt động lẫn nhau giữa các luồng 
. + Dẫn đến kết quả sai lệch
+ Bế tắc ( Dead Lock) v.v…
 Do đó, cần thực hiện đồng bộ hóa thời gian thực hiện của
các tiến trình khi xử lý.
• Hầu các ứng dụng như:́ thanh toán, điểu khiển tự động (
ngân hàng, thương mại điện tử, lắp ráp tự động, điều khiển
phản ứng hạt nhân…), truy cập database v.v…đồng bộ hóa
có vai trò quan trọng trong xử lý.

4
CS420 - Hệ phân tán - Chương V
ĐỒNG BỘ HÓA

Đồng bộ hóa là gì?


• Là quá trình sắp xếp thứ tự thời gian của các sự kiện qua
việc sinh ra các 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 toàn hệ thống
• Sắp xếp thứ tự truy cập đồng thời cho các đối tượng được
chia sẻ tài nguyên
 Đồng bộ hóa được thực hiện với các trường hợp:
 Tiến trình đồng thời
 Tiến trình song song

5
CS420 - Hệ phân tán - Chương V
ĐỒNG BỘ HÓA

Quá trình xử lý đồng thời

P1

P2 CPU

P3

t0 t1 t2 t3 t4 Time

6
CS420 - Hệ phân tán - Chương V
ĐỒNG BỘ HÓA
Quá trình xử lý song song

P1 CPU 1

P2

P3 CPU 2

t0 t1 t2 Time
Câu hỏi: Nếu chỉ sử dụng 1 bộ xử lý là CPU2, điều gì xảy ra?
7
CS420 - Hệ phân tán - Chương V
ĐỒNG BỘ HÓA

 Các phương pháp đồng bộ hóa trên các hệ thống


 Đối với hệ thống PC: Sử dụng phương pháp bù tuyến
tính bằng cách bổ sung thêm hàm bù tuyến tính (Linear
compensating function) vào system call của hệ điều hành
để đồng bộ hóa đồng hồ của máy tính về đồng hồ chuẩn
(đồng bộ CMOS)
 Đối với hệ thống mạng cục bộ: Sử dụng thuật toán
Berkeley để đồng bộ hóa tất cả đồng hồ trên hệ thống
cục bộ về giá trị trung bình (Gusella & Zatti, 1989) hoặc
giao thức NTP (Network Time Protocol)

8
CS420 - Hệ phân tán - Chương V
ĐỒNG BỘ HÓA
 Đối với hệ thống phân tán
 Mỗi trạm có một đồng hồ cục bộ của riêng mình Không
có đồng hồ chung  Không thể áp dụng các thuật toán
đồng bộ hóa ở hệ thống cục bộ.
Ví du: Một sự kiện a sinh ra trên trạm P1 lúc 12g ngày
21/12/2016 và sự kiện b sinh ra trên trạm P2 lúc 14g ngày
21/12/2016. Hỏi sự kiện nào sinh ra trước, nếu:
a. Biết rằng P1 và P2 ở trên 2 hệ thống độc lập với nhau?
b. Nếu trạm P1 đặt ở Luân Đôn, trạm P2 đặt ở Hà Nội thì sự
kiện nào đến trước? Vì sao?
Trả lời: Không thể xác định được bằng đồng hồ vật lý, vì
đồng hồ ở P1 và P2 là độc lập nhau.
9
CS420 - Hệ phân tán - Chương V
ĐỒNG BỘ HÓA

 Đối với hệ thống phân tán


 Không thể dùng đồng hồ của máy tính để sắp xếp thứ tự
thực hiện của sự kiện.
Làm thế nào nào để sắp xếp thứ tự của các sự kiện trên
hệ thống???
Đây là bài toán thách thức ở cuối thế kỷ 20.
Giải pháp: Xây dựng khái niệm đồng hồ logic để đồng bộ
hóa trên các hệ thống phân tán.

10
CS420 - Hệ phân tán - Chương V
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 11
ĐỒNG HỒ VẬT LÝ

Đồng hồ vật lý
• Là một dạng đồng hồ vật chất (nhận biết bằng các giác
quan)
• Dùng để giữ thời gian trong ngày và thống nhất trên toàn
hệ thống.

12
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các dạng của đồng hồ vật lý


 Đồng hồ thạch anh (Quartz clocks)
-1880:
+ Được phát hiện bởi Anh em nhà Pierre Curie
+ Nén một tinh thể thạch anh & nó tạo ra một điện trường
+ Áp dụng một điện trường mà nó uốn cong.

Quartz clock
(J.W. Horton và Warren A. Marrison,1927) Quartz crystal clock

13
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các dạng của đồng hồ vật lý


 Đồng hồ thạch anh (Quartz clocks)
-1929: Đồng hồ pha lê (Quartz crystal clock)
+ Sử dụng tia Laser tạo rung ở tần số 32,768 Hz/s
+ Độ chính xác 6 phần triệu million seconds ở nhiệt 31° C
+ Đồng hồ có thể sai lệch < ½ sec/1 ngày
+ Độ ổn định, chính xác cao: ổn định đến 2 sec/1 tháng
+ Tiếng vang tốt có thể có độ chính xác xấp xĩ 1 second
trong 10 năm.

Lưu ý: Phale một dạng thạch anh nhưng ở mức độ tin khiết
cao.
Thiết bị đo tần số: Âm thoa

14
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các dạng của đồng hồ vật lý


 Đồng hồ nguyên tử (Atomic clocks)
+ NIST (National Institute of Standards and Technology)
đưa ra từ năm 1960
+ Độ chính xác: tốt hơn 1 giây trong ba trăm tỉ năm

15
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các dạng của đồng hồ vật lý


 Đồng hồ nguyên tử (Atomic clocks)

Caesium atomic clock, 1955 Hệ thống đồng hồ nguyên tử tại Đài quan
sát hải quân Mỹ ở Washington DC

16
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các dạng của đồng hồ vật lý


 Đồng hồ UTC (Coordinated Universal Time)
- UTC0
+Thời gian năng lượng mặt trời trên kinh tuyến Greenwich
+Thu được từ quan sát thiên văn
- UTC1
+Điều chỉnh cho các chuyển động cực
- UTC2
+Sửa chữa cho các biến thể theo mùa trong tự quay của
Trái Đất
- UTC
+Thời gian dân sự, là sự kết hợp giữa UTC0 và thời gian
đồng hồ nguyên tử
17
CS420 - Hệ phân tán - Chương V
Câu hỏi vui:
1. Đồng hồ này được dùng cho đối tượng nào?
2. Đồng hồ này có bao nhiêu đồng hồ ghép lại?
3. 3 đồng hồ bên trong đo cái gì?

18
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các dạng của đồng hồ vật lý


 Đồng hồ vật lý ở máy tính (CMOS)
- Đồng hồ thời gian thực: đồng hồ CMOS là mạch điều khiển
bởi một máy dao động thạch anh. Được dùng trong máy
tính.
- Sử dụng Pin dự phòng để tiếp tục đo thời gian khi tắt điện

Đồng hồ CMOS
Pin CMOS

19
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các vấn đề xảy ra với đồng hồ máy tính


 Hiện tượng Driff
- Hai hệ thống ban đầu điều chỉnh để thoả thuận về thời gian
nhưng sau thời gian  Hai đồng hồ sai lệch
- Sự khác nhau giữa hai đồng hồ tại một thời điểm trong thời
gian: Clock Drift

20
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Các vấn đề xảy ra với đồng hồ máy tính


Giả sử chúng ta thiết lập máy tính thời gian đúng

8:00:00 8:00:00
Oct 23, 2011
8:00:00
CS420 - Hệ phân tán - Chương V 21
ĐỒNG HỒ VẬT LÝ

Các vấn đề xảy ra với đồng hồ máy tính

8:01:24 8:01:48
Skew = +84 seconds Skew = +108 seconds
+84 seconds/35 days +108 seconds/35 days
Drift = +2.4 sec/day Sept 18, 2011 Drift = +3.1 sec/day
8:00:00
22
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Đối phó với Driff


- Để triệt tiêu hiện tượng Driff ở các đồng hồ vật lý  Điều
chỉnh đồng hồ dần dần
Nếu nhanh:
Làm cho đồng hồ chạy chậm hơn cho đến khi nó đồng bộ
với đồng hồ chuẩn quốc tế
Nếu chậm:
Làm cho đồng hồ chạy nhanh hơn cho đến khi nó đồng bộ
với đồng hồ chuẩn quốc tế

23
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Đối phó với Driff


• Có 2 cách
Cách 1: Sử dụng thủ công
 Không hợp lý
Cách 2: Tự động
• Hệ điều hành có thể làm điều này:
- Thay đổi tốc độ qua yêu cầu ngắt
+ Ví dụ:
nếu hệ thống yêu cầu ngắt mỗi ngày? Cứ x% giây, phát ra
tín hiệu, kiểm tra sự sai lệch giữa đồn hồ CMOS và đồng
chuẩn.
- Hoặc chỉnh phần mềm: xác định lại khoảng thời gian
+ Điều chỉnh thay đổi độ dốc của thời gian hệ thống:
Linear compensating function (hàm bù tuyến tính)
24
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Đối với PC
 Để triệt tiêu (khử) hiện tượng Driff, người dụng phương
pháp hàm bù tuyến tính (Linear compensating
function)
 Dựng một hệ toạ độ Decac, có: trục hoành biểu diễn thời
gian của UTC (đồng hồ chuẩn quốc tế). Trục tung biểu
diễn thời gian ở đồng hồ CMOS (Hình vẽ).
 Xét 1 điểm M trên đồ thị  M(dT,dC)
 Nếu dC/dT = 1 Suy ra, đồng PC luôn đúng với đồng hồ
quốc tế: Đồng hồ lý tưởng (Perfect Clock)

25
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ
Perfect Clock
t(C)
Computer’s time, C Đối với PC

dC

dt
t(UTC)
UTC time, t
26
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ
Perfect Clock

Drift with slow Clock


Computer’s time, C

dx
skew

dC
Nếu đồng hồ máy tính chạy chậm  dC/dt <1
 dC – dt = - dx<0: Skew.
 Nếu bù 1 hàm –dx vào dC thì  dC =dt

dt
UTC time, t
27
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ
Drift with fast Clock

Perfect Clock
Computer’s time, C

skew

dC
Nếu đồng hồ máy tính chạy nhanh  dC/dt >1
 dC – dt = dx>0: Skew.
 Nếu bù 1 hàm dx vào dC thì  dC =dt
dt
UTC time, t
28
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ
Compensating for a fast Clock
Computer’s time, C

Clock synchronized
skew
Linear compensating
function applied

UTC time, t
29
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Một số lưu ý
 Phương trình (hoặc) hàm tuyến tính là gì? Phương trình
(hoặc) hàm phi tuyến tính là gì?
 Vì sao 2 hàm tuyến tính khi thực cọng/trừ (bù) thì được
một tuyến tính mới?
 Giả sử đồng CMOS hiện tại trên máy tính có thời gian là:
dC = 8:45:12. Đồng hồ UTC là: dT= 8:46:05. Hỏi Hàm bù
tuyến tính sinh ra là bao nhiêu để khi bù vào đồng hồ
CMOS thì nó sẽ trở thành đồng hồ lý tưởng?
 Làm thế để biết được thời gian trên đồng hồ UTC

30
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Trả lời
 Phương trình (hoặc) hàm tuyến tính là gì?
Hàm hoặc phương tuyến tính dùng biểu diễn cho đồ thị
đường thẳng.
Ví dụ: y = 2x+3 là hàm tuyến tính
 Ví dụ:
y1= -3x +7, y2= -5x+ 3
y = y1+y2 = -3x +7 + -5x+ 3
= -8x +10 --> Hàm tuyến tính
Tổng quát:
Y = y1+y2 = a1x +b1 +a2x+b2 = (a1+a2)x + (b1+b2)
= Ax + B  Hàm tuyến tính
31
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Một số lưu ý

 dC = 8:45:12, dT= 8:46:05


Lập tỷ lệ: dC/dT = 8:45:12/ 8:46:05 = 57/65 = 0.877
Nếu đồng hồ lý tưởng: dC/dT =1, nhưng dC/dT <1  Đồng
hồ CMOS chạy chậm. Vậy phải bù vào dC một số gia là:
dx= +0.133 thì lúc đó đã chỉnh được đồng hồ CMOS theo
đồng hồ UTC.
 Để biết được thời gian của đồng hồ UTC (chuẩn quốc
tế), thì có thể vào Internet, dựa vào các công cụ tìm
kiếm thực hiện tìm kiếm: “Đồng hồ UTC tại Việt Nam,
ngày 15/07/2021 là bao nhiêu?”
https://www.convertworld.com/vi/mui-gio/
32
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Một số lưu ý

https://www.convertworld.com/vi/mui-gio/
33
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Tái đồng bộ hóa (Resynchronizing)


Sau khi đạt được thời gian đồng bộ hóa
– Tái đồng bộ định kỳ (Resynchronize periodically)
– Ứng dụng kế tiếp của một chức năng bù tuyến tính thứ
hai có thể mang lại cho chúng ta gần gũi hơn với độ dốc
thật sự
Theo dõi điều chỉnh và áp dụng liên tục
– Ví dụ: trong hệ điều hành UNIX, người ta bổ sung thêm
hàm adjtime ở system call cứ sau 1ms sẽ phát ra thông
điệp yêu cầu điều chỉnh lại đồng hồ máy tính.
– Kết luận: Nhờ phương pháp bù tuyến tính ở CMOS mà
các đồng hồ CMOS không bao giờ chạy sai  khắc
phục được hiện tượng Drift
34
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Ý nghĩa thực tế

 Đối với các ứng dụng hoặc phần mềm trên PC, thời gian
xử lý của các tiến trình được lấy thời gian theo đồng hồ
CMOS.
 Như vây để đồng hóa trên PC thì người đồng bộ theo
đồng hồ CMOS bằng phương pháp bù tuyến tính.

35
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thiết lập thời gian thực hiện trên mạng tập trung
• Kỹ thuật đồng bộ đơn giản nhất
- Đồng bộ hóa từ máy khác
+ Với một chiếc đồng hồ chính xác hơn
+ Sử dụng thời gian của máy chủ: Time Server

36
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thiết lập thời gian thực hiện


Xét mô hình trao đổi thông điệp đơn giản của hệ thống mạng
tập trung, giữa 2 máy tính Client và Server như hình vẽ

Mô hình trao đổi thông điệp giữa 2 máy


tính trong mạng LAN

37
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Bù đắp cho sự chậm trễ (Compensate for delays)
- Chú ý về thời gian:
+ Thời điểm Client  Server: T0
+ Thời điểm Server trả về cho Client : T1
- Giả định sự chậm trễ mạng là đối xứng ( Kiến trúc
mạng là như nhau trong suốt quá trình )

Mô hình biểu quan hệ trao đổi thông điệp


giữa Client và Server
38
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Biểu diễn giao tiếp trên như mô hình dưới đây:
- Chú ý về thời gian:
+ T0: Thời điểm Client gởi yêu cầu đến Server
+ Tserver: Thời gian Server xử lý yêu cầu của Client
+ T1: Thời điểm Server trả về cho Client
- Giả định sự chậm trễ mạng là đối xứng (Kiến trúc mạng
là như nhau trong suốt quá trình )

Mô hình biểu quan hệ trao đổi thông điệp


giữa Client và Server
39
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Clients đặt thời gian để :

 Tnew = Tserver + (T1-T0 )/2

40
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Độ sai lệnh biên (Error bounds)
- Nếu thời gian đi qua của thông điệp tối thiểu (Tmin)
được biết :
+ Đặt giới hạn về độ chính xác của kết quả :

Độ sai lệch biên xuất hiện trên mô hình trao đổi


CS420 - Hệthông điệp
phân tán - Chương V 41
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Độ sai lệnh biên (Error bounds)
- Nếu: + biên trái (gởi)
- Biên độ (range ) = T1-T0-2Tmin - Nếu: - biên phải (nhân)
Độ sai lệch trung bình giữa thời gian gởi và nhận

- Ví dụ
Gởi yêu cầu lúc 5:08:15.100 (T0)
Nhận được phản hồi tại 5:08:15.900 (T1)
Phản hồi có lúc 5:09:25.300 (Tserver)
Thời gian đã qua là : T1 -T0
5:08:15.900 - 5:08:15.100 = 800 msec
Dự đoán tốt nhất: dấu thời gian được tạo : 400 msec
42
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan

Max =194

Min =155

43
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Độ sai lệnh biên (Error bounds)
Thiết lập thời gian để Tserver+ thời gian trôi qua (elapsed
time)
5:09:25.300 + 400 = 5:09.25.700
T0 = 5:08:15.100
T1 = 5:08:15.900
Ts = 5:09:25:300
Tmin = 200msec
Nếu trường hợp thời gian thông điệp sớm nhất=200 msec

44
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Cristan


• Độ sai lệnh biên (Error bounds)

Error = ± (900-100)/2 – 200 = ±800/2-/+200 = ±200 ms


 Thời điểm Client nhận thông điệp là: T1 ± 200 (ms)
 Nếu lấy đồng Client làm đồng hồ ứng dụng  có sự sai
lệch (± 200)
45
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

46
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Do Gusella & Zatti đề xuất 1989
- Giả sử máy không có thời gian chính xác nguồn
- Máy chạy thời gian kim cương (time daemon):
+ Máy được chọn lấy thời gian kim cương: máy chủ
(master)
+ Những máy khác là slaves
- Nguyên tắc :
Đồng bộ tất cả các đồng hồ đến trung bình
+ Master phiếu thăm dò ý mỗi máy theo định kỳ
 Yêu cầu mỗi máy cho biết nhãn thời gian của minh
+ sử dụng thuật toán Cristian để bù cho độ trễ mạng
+ Khi kết quả là tồn tại, tính trung bình (gồm cả thời gian
của master)
47
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Hy vọng: Tính giá trị trung bình, hủy bỏ cá thể có xu
hướng vượt qua xa đối với giá trị trung bình (đồng hồ
chạy nhanh hay chậm)
+ Điều chỉnh đồng hồ slave
+Tránh các vấn đề với sự chậm trễ mạng, nếu chúng ta
gửi một nhãn thời gian (time stamp)
+ Thuật toán đã quy định cho bỏ qua đồng hồ mà skew
là quá lớn
 Tính toán lỗi chịu trung bình (fault-tolerant average)
+Nếu master lỗi Thiết lập thời gian bù đắp để triệt tiêu
thời gian sai lệch biên theo thuật toán Cristan

48
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Ví dụ về thuật toán Berkeley

Server/master

Slaves Slaves Slaves


1.Yêu cầu tất cả Slaves gởi timestamps đến Server

Timestamps: Thời điểm của máy tính hiện tại = thời điểm của CMOS của máy tính đó

49
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Ví dụ về thuật toán Berkeley

(3:25+2:50+3:0)/3 = 3:05
2.Tính toán lỗi chịu trung bình (fault-tolerant average):
Tính trung bình timestamp của tất cả các máy trên hệ thống trừ đi máy
có nhãn thời gian sai lệch lớn (lấy trung bình đặc trưng).

50
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Ví dụ về thuật toán Berkeley

3. Gởi bù đắp (offset) đến mỗi Client để đạt được giá trị
trung bình
4. Điều chỉnh lại thời gian trên đồng hồ Server:
Gọi x là thời gian điều chỉnh trên đồng hồ server
51
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Ví dụ về thuật toán Berkeley

3. Gởi bù đắp (offset) đến mỗi Client để đạt được giá trị
trung bình
4. Điều chỉnh lại thời gian trên đồng hồ Server:
Gọi x là thời gian điều chỉnh trên đồng hồ server
x + độ sai lệch biên trung bình = (-0:20+0:15 - 6:05) = +6:10
52
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

Thuật toán Berkeley


- Ví dụ về thuật toán Berkeley

x: thời gian cần điều chỉnh trên đồng hồ Server.


x + độ sai lệch biên trung bình = (- 0:20+0:15 - 6:05) = +6:10
Giả sử: độ sai lệch biên trung bình = +6:25
 X +(+6:25) = 6:10  x= 6:10-6:25 = - 0:15
• Vậy: Ta lấy đồng Server làm đồng hồ để đồng bộ hóa trên mạng
nhưng điều chỉnh lại nó theo: Timestamp (Server – 0:15)
CS420 - Hệ phân tán - Chương V 53
ĐỒNG HỒ VẬT LÝ

NETWORK TIME PROTOCOL (NTP)


• Đối với các ứng dụng mạng, đặc biệt ứng dụng trên
Internet ngày càng rộng rãi  Cho phép các Client qua
mạng Internet thực hiện đồng bộ hóa đối với UTC
 đồng bộ hóa trên từng Subnet khác nhau :
SYNCHRONIZATION SUBNET
• 1991 : RFC 1305, V3 ra đời đáp ứng các yêu cầu trên

54
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ VẬT LÝ

NETWORK TIME PROTOCOL (NTP)


• NTP servers

. Mô hình NTP Server


55
CS420 - Hệ phân tán - Chương V
ĐỒ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

56
CS420 - Hệ phân tán - Chương V
Nhận xét

 Đối với hệ thống PC: Sử dụng phương pháp bù tuyến


tính bằng cách bổ sung thêm hàm bù tuyến tính (Linear
compensating function ) vào system call của hệ điều
hành để đồng bộ hóa đồng hồ.
 Đối với hệ thống cục bộ: Để đồng bộ hóa trên hệ thống
cục bộ thì người ta sẽ lấy thời gian đồng hồ Sever sau khi
điều chỉnh đồng hồ Server theo thuật toán Berkely

57
CS420 - Hệ phân tán - Chương V
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 58
ĐỒNG BỘ HÓA

 Đối với hệ thống phân tán


- Mỗi trạm/host có một đồng hồ cục bộ của riêng mình
Không có đồng hồ chung  Không thể áp dụng các
thuật toán đồng bộ hóa như ở hệ thống cục bộ.
- Các sự kiện xãy ra trên các trạm trong hệ thống có thể
đồng bộ hoặc không
Làm thế nào để sắp xếp thứ tự của các sự kiện trên hệ
thống ???

59
CS420 - Hệ phân tán - Chương V
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 60
ĐỒNG HỒ LOGIC

Happened-before
Lamport gọi “happened-before” như sau:
Giả sử có sự kiện a và b nhưng biết sự kiện nào xày ra
trước thì làm thế nào để sắp xếp?
Hiện tượng này gọi là “happened-before”
 Nếu tồn tại 1 thông điệp gởi ở a và nhận ở b thì sự kiện
a đến trước b. Ký hiệu: ab (Tiên đề Lamport)
Tính chất:
+ Tính bắc cầu (Transitive):
nếu a  b và b  c thì a  c
+ Nếu giữa a và không tồn tại thông điệp, thì: ab hoặc
ba. a và b được gọi 2 sự kiện đồng quy.

61
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Mô hình/bài toán giả định


- Xét mô hình gồm các hệ thống Pi (i=1,2….) trạm/host độc
lập với nhau.
- a,b,c,d,..: Các sự kiện xuất hiện trên Pi
Giả sử :
- Mỗi hệ thống duy trì đồng hồ riêng của chính mình
 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 ....???

62
CS420 - Hệ phân tán - Chương V
ĐỒ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, tồn tại 1 thông điệp từ
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,

63
CS420 - Hệ phân tán - Chương V
ĐỒ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.

64
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Thuật toán Lamport

a b c d e f
P1
1 2 3 4 5 6
g h i
P2
1 2 3
j k
P3
1 Hình 1 2
 Giả sử hệ thống này, có 3 trạm/host làm việc P1,P2,P3
 Trục hoành: Tượng trưng thời gian trên đồng hồ tương ứng
 a,b,c,….,k: các sự kiện sinh ra trên các trạm
 1,2,3,4,5,6: Nhãn thời gian (timestamp) của các sự kiện.
 Làm thế nào để sắp xếp thứ tự của các sự kiện a,b,c…k?
 Các sự kiện đồng quy: (a,j), (a,g), (g,j), (h,f), (i,k) ...

65
CS420 - Hệ phân tán - Chương V
ĐỒ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ồ phải được điều chỉnh giữa 2 sự kiện bất kỳ trong
cùng tiến trình

66
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Thuật toán Lamport


a b c d e f
P1
1 2 3 4 5 6
g h i
P2
1 2
j 6 3 7
k
P3
1 2 7
Hình 2
Ta nhận thấy:
 Hệ thống có 3 thành phần đồng quy: I(a,g,j),II(h,f),III(i,k)
 Các sự kiện trên thành đồng quy I luôn luôn đến trước
các thành phần đồng quy II và III, mọi sự kiện trong II
đến trước các sự kiện trong III: Vậy I II III: Thứ tự
từng phần (Partial ordering )
67
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Thuật toán Lamport

a b c d e f
P1
1 2 3 4 5 6
g h i
P2
1 6 7
j k
P3
1 Hình 3 7
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
Kết luận:
Với thuật Lamport có thể sắp xếp thứ tự của các sự kiện
không cùng trong 1 thành phần đồng quy  Chưa thể
đồng bộ hóa các sự kiện trên toàn bộ hệ thống
68
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Unique timestamps (nhãn thời gian toàn phần duy nhất)


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) // Sử dụng 2
chỉ số
+Ti đại diện cho dấu thời gian Lamport địa phương
+ i đại diện cho số lượng tiến trình trên hệ thống
Ở hình 3, Ti= 3 i= 11
- So sánh timestamps:
x(Ti,i) < y(Tj,j) (x đến trước y)
Nếu và chỉ nếu:
Ti < Tj (x, y khác trạm )
hoặc Ti = Tj và i < j (x,y cùng 1 trạm) (đ)
69
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Thuật toán Lamport

a b c d e f
P1
1.1 1.2 1.3 1.4 1.5 1.6
g h i
P2
2.1 2.6 2.7
j k
P3
3.1 3.7
Hinh 4
Do đó, theo trên thì nhãn thời gian của các sự kiện sẽ là (
hinh 4)
Chẳng hạn: a (1.1), j(3.1) thì a đến j trước khi đồng hồ
P1 P3.
Như vậy với thuật toán Lamport cải tiến thì có thể đồng
bộ hóa các sự kiện.
70
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Phát hiện quan hệ nhân quả (causal relations)


- Nếu L(e) < L(e’) ( L : dấu thời gian Lamport )
Không thể kết luận rằng ee’
Không thể kết luận là sự kiện có quan hệ nhân quả

Giải pháp: sử dụng một đồng hồ vector

71
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector clocks ( Đồng hồ Vector)


• Do Fidge, Mattern và Schmuck đề xuất 1988 đề xuất
Đồng hồ Vector để đồng hóa các sự kiện trên hệ phân tán
• Quy tắc:
1. Vector khởi V tạo có giá trị 0 tại mỗi trạm
Vi [j] = 0 với i, j =1, …, n // i: trạm, j: sự kiện
2. Tăng nhãn thời gian của sự kiện trên cùng 1 trạm
nếu sự kiện đó đến sau, nghĩa là sự kiện có
timestamping là:
Vi [i] = Vi [i] +1 // Nhãn thời gian sự kiện
đứng trước nó
3. Thông điệp được gửi từ tiến trình Pi với Vi thì được
gắn liền với nó.
72
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector clocks ( Đồng hồ Vector)


4. Khi Pj nhận được thông điệp từ hệ thống khác thì
tiến hành so sánh vectơ thành phần bởi thành phần
tương ứng và thiết lập véc tơ địa phương theo quy
tắc:
Vj [i] = max(Vi [i], Vj [i]) for i=1, …, n

Xét ví dụ sau: Hình 5

73
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
V1(0,0,0) a b
P1
V2(0,0,0) c d
P2
V3(0,0,0) e f
P3
Hình 5

74
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(0,0,0) (1,0,0)
a b
P1
(0,0,0) c d
P2
(0,0,0) e f
P3

Event timestamp
a (1,0,0)

75
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) c d
P2
(0,0,0) e f
P3

Event timestamp
a (1,0,0)
b (2,0,0)
C(?,?,?) = max((2,0,0), (0,1,0)) = (2,1,0)

76
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0)
c d
P2
(0,0,0) e f
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0)

77
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e f
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0)
d (2,2,0)

78
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e (0,0,1) f
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0)
d (2,2,0)
e (0,0,1)
79
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e (0,0,1) f (2,2,2)
P3

Event timestamp Đồng hồ vector


a (1,0,0)
b (2,0,0)
c (2,1,0)
d (2,2,0)
e (0,0,1)
f (2,2,2)
CS420 - Hệ phân tán - Chương V 80
81
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Vector timestamps
(0,0,0) (1,0,0)
a
(2,0,0)
b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e (0,0,1) f (2,2,2)
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0) Sự kiện
d (2,2,0) đồng quy
e (0,0,1)
f (2,2,2)
CS420 - Hệ phân tán - Chương V 82
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e (0,0,1) f (2,2,2)
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0) Sự kiện
d (2,2,0) đồng quy
e (0,0,1)
f (2,2,2)
CS420 - Hệ phân tán - Chương V 83
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e (0,0,1) f (2,2,2)
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0) Sự kiện
d (2,2,0) đồng quy
e (0,0,1)
f (2,2,2)
CS420 - Hệ phân tán - Chương V 84
ĐỒNG HỒ LOGIC

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0) a b
P1
(0,0,0) (2,1,0) (2,2,0)
c d
P2
(0,0,0) e (0,0,1) f (2,2,2)
P3

Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0)
Sự kiện
d (2,2,0)
đồng quy
e (0,0,1)
f (2,2,2)
CS420 - Hệ phân tán - Chương V 85
ĐỒNG HỒ LOGIC

CPU
S1

P3 P2 P1
OS
S2

P6 P5 P4

Tiến trình xử lý

Lập trình Clock _Vector_Array


viên 86
CS420 - Hệ phân tán - Chương V
a(1,0,0), d(2,2,0) sự kiện nào đến trước?
(1,0,0) (2,0,0) (2,2,0)
Vậy ad

b(2,0,0), e(0,0,1) sự kiện nào đến trước?


2.0 + 0.0 +0.1 = 0
 b và e đồng quy
Sự kiện b và e phụ thuộc đồng hồ trạm 1 và trạm 3. Nếu
đồng hồ trạm 1 < trạm 3  b đến trước, ngược lại e đến
trước.

87
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

So sánh vector timestamps


- Cho 2 sự kiện bất kỳ e, e’
Nếu e  e’ thì V(e) < V(e’)
Cũng giống như thuật toán của Lamport
Nếu V(e) < V(e’) thì e  e’
- Hai sự kiện đồng qui nếu xãy ra (He ||He’): Tức không
xãy ra V(e)  V(e’) hoặc không V(e’)  V(e)

88
CS420 - Hệ phân tán - Chương V
ĐỒNG HỒ LOGIC

Xác lập quan hệ nhân quả

89
CS420 - Hệ phân tán - Chương V
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 90
ĐỒNG HỒ LOGIC

Đồng bộ hóa ứng dụng trên các hệ thống phân tán


1. Cài đặt các file trên mỗi hệ thống lưu trữ đồng hồ vector
Hi (i =1..n), Hi được gọi là đồng hồ cục bộ của trạm Si(i là
số thứ tự của trạm trong hệ, i =1..n, n số trạm trong hệ)
2.Cập nhật đồng hồ logic ( cập nhật và tái tạo bản sao )
3.So sánh 2 vector Hi và Hj
4.Xác lập quan hệ nhân quả của 2 sự kiện

91
CS420 - Hệ phân tán - Chương V
KẾT LUẬN

- Vector đồng hồ là một cơ chế được ứng dụng các hệ


phân tán  tạo bước đột phá trong đặt nền tảng để giải
quyết các bài toán có độ phức tạp cao trong môi trường
tài nguyên hạn chế hoặc phải chia sẻ
- 1999: Torres-Rojas và Ahamad, đưa ra Plausible
Clock một cơ chế mà mất không gian ít hơn Vector đồng
hồ
- 2008 : Almeida giới thiệu Đồng hồ Tree Interval.
(http://gsd.di.uminho.pt/members/cbm/ps/itc2008.pdf)

92
CS420 - Hệ phân tán - Chương V
1 Đồng bộ hóa

2 Đồng hồ vật lý

3 Đồng bộ hóa đồng hồ vật lý


NỘI
DUNG 4 Đồng hồ logic

5 Đồng bộ hóa đồng hồ logic

6 Thảo luận và bài tập


CS420 - Hệ phân tán - Chương V 93
BÀI KIỂM TRA
ĐỀ BÀI
•1. UTC là gì?
•a. Union Time Clock
•b. Universal Time Clock
•c. Universal Time Coordinator
•d. Unit Time Clock
•2. Đồng hồ ly tưởng có
•a. dC/dt(UTC) <1
•b. dC/dt(UTC) =1
•c. dC/dt(UTC) >1
•d. Tất cả đều sai
•3.Đồng bộ hóa đối với hệ thống PC chủ yếu dựa vào điều chỉnh
thời gian ở đồng hồ CMOS
•a.Đúng b.Sai

94
CS420 - Hệ phân tán - Chương V
BÀI KIỂM TRA
•4. Đồng hồ vật lý dùng để
•a.đo thời gian trong ngày
•b.thống nhất các hoạt động của các tiến trình, sự kiện v.v...
trên toàn hệ thống
•c.theo dõi thứ tự của các sự kiện trong hệ thống
•d.Tất cả đều đúng
•5. Đồng hồ logic được đề xuất lần đầu tiên khi nào?
•a.1990 b.Khi mạng máy tính ra đời
•c. 1988 d.1992
•6. Đồng bộ hóa đối với hệ thống PC chủ sử dụng
phương pháp bù tuyến tính bằng cách bổ sung thêm
hàm bù tuyến tính vào system call của hệ điều hành
a.Đúng b.Sai
95
CS420 - Hệ phân tán - Chương V
BÀI KIỂM TRA
•7.Hiện tượng Driff đối với đồng hồ máy tính luôn luôn
xảy ra
•a.Đúng b.Sai
•8.Phát biểu nào là đúng nhất về đồng hồ logic
•a. Đồng hồ logic là một cơ chế để nắm bắt mối quan hệ thời
gian và quan hệ nhân quả của các sự kiện trong một hệ
thống phân phối .
•b. Đồng hồ logic là một vector cho phép sắp xếp một phần
của các sự kiện trong một hệ thống phân tán
•c. Đồng hồ logic là một bản sao thứ tự, theo thông tin cập
nhật, trong hệ thống phân tán.
•d. Đồng hồ logic là một ma trận đồng hồ chứa thông tin về
của những tiến trình khác của hệ thống phân tán.
96
CS420 - Hệ phân tán - Chương V
LINK THAM KHẢO

1. https://www.youtube.com/watch?v=x-D8iFU1d-o
2. https://www.youtube.com/watch?v=g8-yjiAqndA

CS420 - Hệ phân tán - Chương V


TÀI LIỆU THAM KHẢO

[1]. Colin J. Fidge (February 1988). "Timestamps in Message-Passing Systems


That Preserve the Partial Ordering". In K. Raymond (Ed.). Proc. of the 11th
Australian Computer Science Conference (ACSC'88). pp. 56–66. Retrieved
2009-02-13.
[2].Mattern, F. (October 1988), "Virtual Time and Global States of Distributed
Systems", in Cosnard, M., Proc. Workshop on Parallel and Distributed
Algorithms, Chateau de Bonas, France: Elsevier, pp. 215–226
[3].lmeida, Paulo; Baquero, Carlos; Fonte, Victor (2008), "Interval Tree Clocks:
A Logical Clock for Dynamic Systems", in Baker, Theodore P.; Bui, Alain;
Tixeuil, Sébastien, Principles of Distributed Systems, Lecture Notes in
Computer Science, 5401, Springer-Verlag, Lecture Notes in Computer
Science, pp. 259–274
[4]. Torres-Rojas, Francisco; Ahamad, Mustaque (1999), "Plausible clocks:
constant size logical clocks for distributed systems", Distributed Computing
(Springer Verlag) 12 (4): 179–195

98
CS420 - Hệ phân tán - Chương V
TÀI LIỆU THAM KHẢO

[5]. S. Mullender ed., "Distributed Systems", 2nd ed., Addison-Wesley, 1993


[6]. Jie Wu, "Distributed Systems Design", Addison-Wesley, 2008
[7]. G. Coulouris, J. Dollimore, T. Kinberg, "Distributed systems :
Conceptand Design“, Australia. IASTED, ACTA Press

99
CS420 - Hệ phân tán - Chương V
KẾT THÚC CHƯƠNG V

100
CS420 - Hệ phân tán - Chương V

You might also like