Chuỗi một bảo sao

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

τ Đảo độ − u tiên

6.4.2.Chuỗi một bảo sao

Nếu cả thao tác đọc và ghi là trực tiếp tới bộ quản lí nhân bản thì sự nhân bản là không cần thiết. Tất cả những thao tác phải thực hiện liên tiếp bởi RM gốc. Các RM sau chỉ cần thiết trong tr−ờng hợp bản gốc bị lỗi. Tính nhất quán là dễ dàng đạt đ−ợc nh−ng xung đột không đ−ợc xem xét đến. Để tạo ra đ−ợc sự đồng bộ thao tác đọc sẽ đ−ợc thực hiện tại bất kì RM nào. Tuy nhiên mục này chỉ xét đến tính nhất quán vì việc cập nhật từ RM ban đầu tới RM sau là không liên tục. Chúng ta có thể đ−ợc cho chép một thao tác cập nhật phải đ−ợc chú ý đến. Nếu nh− giao thức cho việc này đã có chúng ta tiến hành từ tại bất kì RM nào đáp ứng yêu cầu của Khách. Đây là giai đoạn đọc- một/ghi-toàn bộ. Tính nhất quán trong nhân bản dữ liệu có thể dùng giao thức điều khiển đồng bộ chuẩn nh− khoá 2 pha hoặc giao thức gói thời gian. Nếu thao tác đọc ghi là không dễ dàng giao thức đọc-một/ghi-toàn bộ dẫn đến sự thực liên tiếp từng bản ghi một, sự thực hiện không phải cùng một đối t−ợng. Ph−ơng thức write-all không thực tế đối với quản lí nhân bản. Đối t−ợng dữ liệu đ−ợc nhân bản dẫn đến sự cố. Vì vậy việc cập nhật chỉ thực hiện trên các bản sao. Thao tác đọc-một/ghi-toàn bộ sẵn có đ−ờng nh− thích hợp hơn. Tuy nhiên ph−ơng thức này sẽ làm cho thao tác liên tục với bản sao trở nên phức tạp hơn. D−ới đây là một ví dụ minh hoạ cho vấn đề này.

t0:b(t) W(x) W(y) et t1: b(t) R(x) W(y) et t2: b(t) R(y) W(x) et

To bắt đầu với x và y với thao tác ghi (W). Nó cho phép 2 QT khác xảy ra đồng thời t1 và t2. Mỗi thao tác đọc đ và thao tác ghi cùng chia xẻ đối t−ợng x và y. Sự thực hiện đúng khi t1 và t2 là thực hiện liên tiếp. Đó là hoặc t1 đọc x đ−ợc ghi bởi t2 hoặc t2 đọc y đ−ợc ghi bởi t1. Nó có thể đ−ợc xem xét nh− không có sự thực hiện liên tiếp đối với 2 QT trừ phi danh mục là thực hiện liên tiếp. Bây giờ giả sử rằng chúng ta sao x tới x và xb và y tới yc và yd. Và lỗi xuất hiện tới xc và

tc. Hai quá trình trở thành: t1: bt R(xc) (yd fails) W(yc) et t2: bt R (yd) (xc fails) W(xb) et

Sau khi sự cố của xc và yd sao tới X và Y và chỉ có Xc và Yc. Nếu chúng ta sử dụng đọc-một/ghi-toàn bộ có sẵn t1 và t2 là liên tiếp vì không ảnh h−ởng từ thao tác đọc và ghi. Có sự không thích ứng với hệ thống một bản sao bởi vì cả t1 và t2 không biết đối

t−ợng đ−ợc ghi bởi thao tác khác. Đó là sự thực hiện không phải theo cách thức một bản sao. Thêm vào đó tham chiếu cần phải đ−ợc thêm vào để đảm bảo tính chất một bản sao. Từ ví dụ trên chúng ta thấy rằng sự cố và phục hồi phải đ−ợc thực hiện liên tiếp. Đối với t2 để đọc Yd nếu Yd lỗi tr−ớc khi t2 hoàn thành. Lỗi của Yd trong t1 làm cho t2 phải dừng và lại quay lại thao tác đọc trên Yd. Thêm vào đó lỗi có thể xuất hiện tr−ớc khi bắt đầu QT. KHi t2 bắt đầu nó sẽ phải liên hệ với Yc vì Yd đã có lỗi rồi. ảnh h−ởng giữa W(Yc) trong t1 và R(Yc) trong t2 là có thể.

Chúng ta xem xét ví dụ trên với ảnh h−ởng giữa t1 và t2 cho việc truy cập Y là không rõ ràng bởi vì đã có sẵn bản sao cho W(Y) trong t1 mà không bao giờ gôm Yd đ−ợc đọc bởi t2. Chúng ta cũng giải quyết vấn đề t2 yêu cầu đ−ợc đọc Yc và Yd khi truy cập Y. Điều này có thể đ−ợc thực hiện nếu việc đọc sẽ tạo ra bản sao của QT cùng với việc ghi của QT khác. Điều này t−ơng ứng với ph−ơng thức đọc-tiêu biểu đ−ợc thảo luận về sau.

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