Kiến trúc đầy đủ

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

Trong kiến trúc đầy đủ, mỗi QT trong nhóm tham chiếu tới các QT khác trong cùng nhóm chỉ cần gửi một TĐ. TĐ bầu cử đ−ợc gửi theo chế độ điểm-điểm từ QT này đến QT khác. Giả thiết đầu tiên trong môi tr−ờng HĐH là tất cả chỉ số các QT phải duy nhất và mọi QT khác đều biết. Do tiến trình bầu thủ lĩnh đ−ợc khởi x−ớng bằng phát hiện lỗi, giả thiết tiếp theo là về mô hình lỗi và cơ chế phát hiện lỗi. Để đơn giản, giả sử có mô hình lỗi ngây thơ. Giả thiết thứ hai là mạng truyền thông là tin cậy và chỉ có QT truyền thông có thể bị lỗi. Hệ mạng TT tin cậy có nghĩa là TĐ truyền đi không bao giờ bị thất lạc, thay đổi, bị trùng lặp và đ−ợc phân phát đúng thứ tự trong thời gian hữu hạn đã biết. Giả thiết thứ ba liên quan đến lỗi của QT. Một QT nắm giữ TĐ trong một khoảng thời gian hữu hạn đã biết. Lỗi QT ngừng tính toán và không sinh ra TĐ báo lỗi làm hệ thống lẫn lộn. Hơn nữa, khi QT khôi phục, nó có kinh nghiệm về lỗi. Giả thiết thứ hai và thứ ba tạo hợp lý để nhận biết lỗi và gắn lại nút lỗi vào nhóm. Lỗi đ−ợc phát hiện tin cậy bằng khởi tạo một khoảng quá hạn sẽ làm tăng chút ít tổng độ trễ TĐ khứ hồi và thời gian xử lý TĐ. QT bị lỗi đ−ợc gắn vào nhóm bằng bầu cử bắt buộc trong khi khôi phục QT. Nh− một lựa chọn, QT bị lỗi tin t−ởng việc cộng tác bằng việc bầu cử định kỳ đối với các QT đ−ợc khôi phục sẽ đ−ợc gắn với nhóm. Với những giả thiết trên đây, Garcia-Molina đầ xuất thuật toán bầu thủ lĩnh điển hình, đ−ợc gọil à thuật toán kẻ mạnh (bully).

Thuật toán Bully là thuật toán tìm kiếm cực trị. Mỗi QT có độ −u tiên toàn cục (có thể dùng chỉ số QT), QT nào có độ −u tiên cao nhất là thủ lĩnh đ−ợc bầu. Một QT bắt đầu bầu thủ lĩnh nếu nó nghi ngờ bộ phối hợp bị sự cố (ví dụ nh−, phát hiện bằng ng−ỡng quá hạn) hoặc khi nó khôi phục sau sự cố. QT bắt đầu bằng việc gửi một TĐ dò hỏi

are-you-uptới mọi nút có độ −u tiên cao hơn để kiểm tra sự tồn tại của các QT đó. Nếu ít nhất có một TĐ trả lời cho TĐ dò hỏi trên thì QT tự từ bỏ cố gắng ứng cử và chờ nút có độ −u tiên cao hơn ứng cử.

Nếu không có TĐ trả lời nào từ các nút có độ −u tiên cao hơn thì QT tự đặt mình làm thủ lĩnh bằng cách gửi TĐ yêu cầu enter-election tới mọi nút có độ −u tiên thấp hơn. TĐ enter-election báo cho các QT có độ −u tiên thấp hơn biết là tiến trình bầu cử đang xảy ra và các QT này nên chuẩn bị chấp nhận và giao tiếp với nó theo vai trò thủ lĩnh mới. Bầu cử chỉ hoàn thiện cho đến khi kết quả đ−ợc gửi và nhận từ mọi nút đang hoạt động có độ −u tiên thấp hơn.

Tại cùng thời điểm, có thể một vài QT cùng tự ứng cử vai trò thủ lĩnh. Chẳng hạn, QT có độ −u tiên cao bị lỗi đ−ợc khôi phục vào thời điểm đang diễn ra một cuộc bầu cử. Để đảm bảo tính nhất quán, QT chuyển vào trạng thái tạm thời khi nhận TĐ enter-

election. QT ứng cử tự khai báo trở thành thủ lĩnh mới chỉ sau khi đã nhận đ−ợc trả lời của mọi TĐ enter-election hoặc quá hạn thời gian trả lời từ mọi QT có độ −u tiên thấp hơn. Lúc này mọi QT hoặc bị lỗi, thực hiện thủ tục khôi phục, hoặc đang ở trạng thái

tạm thời. Điều này đảm bảo QT khởi tạo khai báo tự là thủ lĩnh, do không còn QT nào khác nghĩ rằng còn có một thủ lĩnh khác.

Cuối cùng, QT khởi tạo phân bố trạng thái mới và thông báo cho mọi QT khác biết nó là thủ lĩnh trong tính toán mới.

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