Đồng hồ logic

Một phần của tài liệu Cơ bản về hệ điều hành (Trang 61 - 62)

Đồng hồ vật lý là gần t−ơng đ−ơng với đồng hồ thời gian thực toàn cục. Việc đo khoảng thời gian là hữu dụng và nhận đ−ợc trực tiếp từ đồng hồ vật lý. Nói chung, có thể sử dụng đồng hồ vật lý để chỉ ra đ−ợc sự kiện nào xảy ra tr−ớc sự kiện nào trừ khi chúng xảy ra rất gần nhau. Nếu nh− độ không chắc chắn của UTC là cao hoặc là khoảng thời gian của các sự kiện là giao nhau thì đồng hồ vật lý không cho khả năng xác định đ−ợc thứ tự của các sự kiện. Đối với nhiều ứng dụng, các sự kiện không cần lập lịch hoặc đồng bộ với thời gian thực mà chỉ quan tâm đến trình tự thực hiện các sự kiện. Trong tr−ờng hợp đó thì đồng hồ lôgic đ−ợc dùng để xác định thông tin về thứ tự của các sự kiện, đặc biệt trong hệ phân tán, việc duy trì một đồng hồ vật lý chung giữa các QT cộng tác là việc rất khó khăn. Đồng hồ logic Lamport là một khái niệm cơ bản để xếp thứ tự các QT và sự kiện trong hệ thống phân tán.

Mỗi một QT Pi trong hệ thống duy trì một đồng hồ logic Ci, Lamport định nghĩa ký hiệu đại số → nh− quan hệ xảy ra tr−ớc (happens - before) để đồng bộ đồng hồ logic giữa hai sự kiện. a → b có nghĩa là sự kiện a xảy ra tr−ớc sự kiện b. Trong cùng một QT, nếu sự kiện a xảy ra tr−ớc sự kiện b thì đồng hồ logic Ci(a) và Ci(b) đ−ợc gán sao cho Ci(a) < Ci(b). Đồng hồ logic trong một QT luôn đ−ợc tăng một số d−ơng tuỳ ý khi sự kiện trong QT đ−ợc tăng tiến (nghĩa là thời gian không bao giờ quay trở lại và chỉ đo t−ơng đối đối với đồng hồ logic). Một QT t−ơng tác với một QT khác qua cặp hai phép toán gửi (send) và nhận (receive) từ quá trình Pi đến QT Pj. Việc gửi đi phải đ−ợc thực hiện tr−ớc việc nhận đ−ợc. Do vậy, giữa sự kiện gửi từ QT Pi và sự kiện nhận tại QT Pj phải đảm bảo tính chất là Ci (gửi) < Cj (nhận) do QT nhận không thể hoàn thành đ−ợc tr−ớc khi sự kiện gửi ch−a đ−ợc thực hiện. Đồng hồ logic C dựa trên quan hệ xảy ra tr−ớc đ−ợc tổng kết theo hai quy tắc sau:

1. Nếu a → b trong cùng một QT thì C(a) < C(b).

2. Nếu a là sự kiện gửi một TĐ của QT Pi và b là sự kiện nhận cũng TĐ đó của QT Pj thì Ci(a) < Cj(b).

Quy tắc 1. rất dễ dàng đ−ợc thi hành vì trong cùng một QT (chẳng hạn, mỗi khi xuất hiện một sự kiện mới thì bộ đếm đồng hồ lôgic của QT đó tăng lên 1). Quy tắc 2. có thể có hiệu lực nếu nh− gắn tem thời gian đồng hồ logic của QT gửi vào trong TĐ và QT nhận sẽ cập nhật đồng hồ logic của mình bằng cách sử dụng thời gian của đồng hồ của chính nó và việc tăng tem thời gian theo công thức:

trong đó TSa là tem thời gian của sự kiện đ−ợc gửi và d là một số d−ơng. Mỗi quan hệ xảy ra tr−ớc thể hiện kết quả của hai QT có tính bắc cầu:

Nếu a → b và b → c thì a → c.

Hai sự kiện a và b đ−ợc gọi là hai sự kiện rời nhau và có thể chạy đồng thời nếu nh− không cả a→ b và b→ c. Biểu đồ không gian thời gian trong hình 3.12 thể hiện mối quan hệ của các sự kiện {(a,e,c) và (d,e,h)} và những sự kiện đồng thời {(b,e), (f,h)}. Đồng hồ logic cho những sự kiện đồng thời không liên quan đến những sự kiện khác.

Thứ tự bộ phận và thứ tự toàn bộ của sự kiện

Sử dụng quan hệ xảy ra-tr−ớc và hai quy tắc trên, mọi sự kiến có quan hệ nhân quả sẽ đ−ợc sắp xếp bởi đồng hồ logic. Kết quả này chỉ cho một thứ tự bộ phận trong đồ thị sự kiện. Với hai sự kiện rời nhau a và b (của hai QT i và QT j), thì Ci(a) < Cj(b) không có nghĩa là a→ b. Hơn nữa, có khả năng là Ci(a) = Cj(b). Thứ tự toàn cục của các sự kiện có thể nhận đ−ợc bằng cách thêm một quy tắc cho hai sự kiện rời nhau (các sự kiện nhân quả luôn có thứ tự).

3. Với mọi sự kiện a và b thì C(a) ≠ C(b).

Những sự kiện rời rạc cùng với đồng hồ logic định danh có thể đ−ợc phân biệt theo mốc đồng hồ logic của chúng với một số hiệu QT hoàn toàn khác nhau, điều đó đảm bảo sự duy nhất của một đồng hồ logic toàn cục cho cả hệ thống. Thứ tự của các sự kiện rời nhau không liên quan tới việc thực hiện chính quy của QT. Tập thứ tự toàn cục các sự kiện mô tả một dãy thực hiện đúng đắn mềm dẻo của các sự kiện. Tồn tại nhiều thuật toán điều khiển đồng thời sử dụng tính chất thứ tự toàn cục của sự kiện dựa trên đồng hồ logic.

Một phần của tài liệu Cơ bản về hệ điều hành (Trang 61 - 62)