Dđồng bộ hóa nhiều hơn một tiến trình năm 2024
Nối tiếp chuỗi serises về hệ phần tán thì phần tiếp theo này chúng ta sẽ tìm hiểu bằng cách nào các tiến trình đồng bộ hóa được với nhau. Cùng tìm hiểu nhé! Let's go. Show
Mục lục
Ở phần này mình sẽ chia làm 2 phần con nữa nhé. Bài này mình sẽ nói vể mục (1) và (2) 1. Clock Synchronization
Ví dụ chương trình make của Unix
\=> Như vậy lệnh make kiểm tra lại toàn bộ file nguồn và chỉ gọi trình biên dịch biên dịch những file cần thiết. Nếu hệ thống không đạt được sự thống nhất về thời gian, sự việc sẽ xảy ra như sơ đồ sau:
1.1. Physical Clock (Đồng hồ vật lý)
Trước tiên ta xem xét sơ qua việc làm sao đo được thời gian.
Vào năm 1948, đồng hồ nguyên tử ra đời làm cho việc đo thời gian chính xác hơn rất nhiều, đồng thời tách khái niệm thời gian ra khỏi sự vận động của trái đất.
Do đó để thống nhất thời gian vật lý người ta đã đưa ra khái niệm thời gian phối hợp toàn cầu UTC (Coordinated Universal Time). 1.2. Clock synchronization algorithm (Các giải thuật đồng bộ)Nếu tất cả các máy tính đều có WWV Receiver thì việc đồng bộ chúng là dễ dàng vì tất cả đều cùng đồng bộ với giờ chuẩn quốc tế UTC. Tuy nhiên khi không có WWV thì việc đồng bộ được thực hiện bằng các giải thuật đồng bộ sau. Giải thuật CristianGiả sử trong hệ phân tán có một máy chủ thời gian gọi là Time server và chúng ta sẽ tiến hành đồng bộ các máy khác với máy này như hình sau:
Trong hình vẽ mọi người sẽ thấy có 1 công thức. Đó là công thức tính độ lệnh thời gian θ. Giá trị này có thể âm hoặc dương
Giả sử độ trễ truyền từ A -> B và từ B -> A là như nhau. Ta sẽ có dTreq = dTres. Trong đó:
Trong đó
Giải thuật Berkeley
Giải thuật trung bình sử dụng mạng không dây
2. Logical ClockKhái niệm đồng hồ logic ra đời trong trường hợp giữa các tiến trình không nhất thiết phải phù hợp theo thời gian thực tế mà chỉ cần khớp với nhau về thời gian 2.1. Nhãn thời gian LamportXét định nghĩa mối quan hệ “xảy ra trước” (→)Khi có a→ b :
Time StampsCập nhật bộ đếm Ci cho tiến trình Pi
2.2. Vector clocks
Cách cập nhật vector:
Đến đây mình kết thúc part 1 ở đây. Ở phần tiếp theo mình sẽ nóí tiếp vê mục (3) và (4) ở phần mục lục nhé! |