Công tác phân tán

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

Các QT đồng thời t−ơng tác nhau đòi hỏi cộng tác để đồng bộ hoạt động. Nói chung có 3 kiểu thủ tục đồng bộ:

- Đồng bộ bằng ngăn cấm: Tập QT (hoặc sự kiện) bắt buộc đi tới một điểm đồng

bộ chung tr−ớc khi chúng có thể tiếp tục,

- Cộng tác theo điều kiện: Một QT (hay sự kiện) bắt buộc phải chờ một điều kiện

đ−ợc khởi tạo một cách dị bộ từ các QT t−ơng tác nhằm duy trì thứ tự thực hiện nào đó. - Loại trừ ràng buộc: Các QT đồng thời bắt buộc loại trừ ràng buộc khi truy nhập

tài nguyên đ−ợc chia xẻ tới hạn.

Ngầm hiểu rằng đồng bộ cần tới tri thức liên quan đến thông tin trạng thái về các QT khác. Thông tin trạng thái đầy đủ là điều rất khó khăn vì trong hệ phân tán không có bộ nhớ chia xẻ. Thông tin trạng thái có thể đ−ợc chuyển tới bằng việc gửi TĐ. Tuy nhiên, thời điểm TĐ đ−ợc nhận là không đúng và không đầy đủ do chuyển TĐ bị trễ trên mạng. Quyết định một QT đ−ợc tiếp tục hay không buộc phải dựa vào các giao thức giải pháp phân tán dựa trên TĐ. Một giải pháp th−ờng đi liền tới vấn đề cộng tác phân tán là giao cho một bộ cộng tác tập trung chọn lựa trách nhiệm cộng tác. Vai trò của bộ cộng tác tập trung có thể đ−ợc chuyển từ QT này sang QT khác nhằm làm cho bộ cộng tác không trở thành điểm trung tâm của lỗi. Bằng cách áp dụng cách thức này, buộc tồn tại các điều khoản cho phép một QT đ−ợc chọn trở thành bộ cộng tác mới nếu nh− bộ cộng tác chính thức có lỗi hoặc có quyết định làm nó từ bỏ trách nhiệm của mình.

Một vấn đề khác liên quan mật thiết với tính đồng bộ là sự bế tắc của các QT. T−ơng tự nh− vấn đề bế tắc trong hệ điều hành tập trung, các QT đồng thời có thể chạy đúng đắn, không xâm phạm ràng buộc của bất cứ đồng bộ nào song lại có thể dẫn đến hiện t−ợng bế tắc do gặp phải chu trình chờ lẫn nhau. QT và tài nguyên trong hệ phân tán là rất hỗn tạp. Để phòng tránh và ngăn ngừa bế tắc, đôi khi là không thực tế khi tiến hành việc ngăn cản bế tắc hoặc dùng chiến l−ợc phòng tránh để kiểm soát bế tắc. Chúng ta xem xét khả năng phát hiện bế tắc và thử khôi phục lại nếu có thể. Trong hệ phân tán, vấn đề phát hiện bế tắc lại là vấn đề không tầm th−ờng vì không có đ−ợc thông tin trạng thái toàn cục của hệ phân tán. Tồn tại một số câu hỏi nh− ai là ng−ời đề x−ớng thuật toán phát hiện bế tắc, làm thế nào thuật toán đ−ợc thi hành theo hình thức CTĐ của hệ phân tán, QT nào sẽ là nạn nhân để thoát ra/ giải quyết bế tắc và bằng cách nào nạn nhân đ−ợc khôi phục. Hiệu lực của giải pháp bế tắc và chiến l−ợc khôi phục đ−ợc coi là quan trọng hơn so với phát hiện bế tắc trong hệ phân tán.

Giải pháp phân tán cho vấn đề đồng bộ và bế tắc là cố gắng đối sánh từng phần thông tin trạng thái tổng thể và sử dụng nó để ra quyết định. Nhiều ứng dụng không đòi hỏi thông tin trạng thái tổng thể tuyệt đối mà tiến hành giống nh− các QT phức tạp thỏa thuận theo am hiểu của chúng về hệ thống. Giao thức chấp nhận là thuật toán CTĐ cho phép hành động nhất trí trong hệ phân tán cho phép có thể có lỗi thành phần chấp nhận đ−ợc. Việc đ−a ra sự nhất trí đòi hỏi chuyển đổi các tri thức cục bộ xuyên theo các phía cộng tác. Đây là bài toán không quá khó ngoại trừ việc bộ xử lý nào đó ngả về lỗi hoặc không đáng tin cậy. Tuy nhiên, trực giác có nhận thể thấy rằng hoạt động chấp nhận là không thể làm đ−ợc trong hệ phân tán dị bộ.

Đồng bộ phân tán và nắm giữ bế tắc là hai công cụ cộng tác QT chính yếu để xây dựng dịch vụ phân tán.

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