Dinh vi thuc the di dong

Màu nền
Font chữ
Font size
Chiều cao dòng

Định vị thực thể di động

Các phương pháp phân cấp

- Xây dựng cây tìm kiếm phân cấp và thực hiện phân miền ở các mức khác nhau:

+ Mỗi miền (domain) được coi là một nút thư mục riêng dir(d)

+ Mỗi thực thể trong miền D tương ứng với một bản ghi định vị

+ Địa chỉ của một thực thể được lưu trong 1 nút là hoặc nút trung gian. Nút trung gian sẽ chứa con trỏ trỏ đến 1 nút con khi và chỉ khi nút con đó là gốc của cây con lưu trữ địa chỉ của thực thể.

- Nguyên lý tìm kiếm :

+Trước tiên client gửi yêu cầu tìm kiếm tới nút thư mục tương ứng với miền mà nó đang thường trú.

+Nhiệm tìm kiếm sẽ chuyển dần lên các nút cha nếu nút cục bộ không lưu trữ thông tin về thực thể. Ngược lại nó sẽ được chuyển xuống các nút con.

+Quá trình tìm kiếm sẽ dừng lại khi khi thực thể được tìm thấy hoặc nút gốc không chứa thông tin về thực thể (đồng nghĩa với việc thực thể không tồn tại trong không gian tên)

Xóa bỏ các thực thể không được tham chiếu tới

- Một đối tượng có thể bị xóa bỏ nếu:

+ Không có tham chiếu từ xa nào tới đối tượng.

+ Hai đối tượng chỉ tham chiếu tới nhau mà không có tham chiếu hoặc không được đối tượng khác tham chiếu.

++++++++++++++++++++++++++++++++++++++++

* Bộ đếm tham chiếu đơn giản

Hạn chế :

- Mỗi khi proxy muốn tạo/hủy một tham chiếu tới đối tượng nó sẽ gửi thông báo tới skeleton và chờ đáp ứng. Sau khi skeleton tăng/giảm bộ đếm nó gửi ACK lại cho proxy. Vì một lý do nào đó ACK không tới được proxy, sau thời giam Time out, proxy gửi lại một bản tin đáp ứng khác tới skeleton. Nếu không có cơ chế phát hiện lỗi lặp bản tin thì dĩ nhiên skeleton tăng/giảm bộ đếm. Điều này tạo ra trạng thái sai cho đối tượng.

- Khi tiến trình P1 truyền tham chiếu cho P2 : nếu P1 kết thúc và hủy tham chiếu ngay sau đó(rất dễ xảy ra khi thực hiện di trú mã) và ngẫu nhiên bộ đếm = 0 thì đối tượng bị xóa bỏ và xảy ra lỗi với P2.

+Khắc phục: P1 báo cho skeleten nó đã truyền tham chiếu lại cho P2.

++++++++++++++++++++++++++++++++++++++++++++++

* Trọng số của tham chiếu (Weighted Reference Counting)

Hạn chế :

- Trọng số là một giá trị hữu hạn và rất khó chọn một giá trị phù hợp cho đối tượng. Thấp quá làm đối tượng bị xóa bỏ trước khi một tiến trình khác muốn tham chiếu đến nó. Cao quá sẽ không thực hiện được loại bỏ đối tượng khi nó không còn được tham chiếu ( vì troọng số <>0 ).

- Khi P1 truyền tham chiếu cho P2 : tương tự phương pháp trên

+++++++++++++++++++++++++++++++++++++++++++++

*Generation Refence Counting

- Mỗi proxy sẽ lưu trữ hai giá trị C = số lần nó được sao chép và GenNum = thế hệ của proxy (tạm dịch từ generation number vì không tìm được từ hay hơn-> nghe như thế hệ lai F1 nhỉ ).

- Khi một proxy p được tạo ra, Cp = 0, GenNump =0

- Khi bản sao p' của p được tạo ra :

+ các tham số của p' : Cp' =0 và GenNump' = GenNump +1.

+ các tham số của p : Cp = Cp + 1

- Skeleton của đối tượng lưu trữ bảng G trong đó thành phần G(i) lưu trữ số lần được sao chép của proxy thế hệ i. Khi một proxy p bị loại bỏ, một bản tin được gửi đến skeleton gồm GenNump = k và Cp = n. Khi đó skeleton thực hiện các phép toán :

G[k] = G[k] -1 thể hiện một tham chiếu bị loại bỏ

G[k+1] = G[k+1] +n proxy thế hệ tiếp theo có n bản sao

- Khi G = 0 với mọi i thì cho em đối tượng đi Văn Điển

+++++++++++++++++++++++++++++++++++++

* Liệt kê tham chiếu

- Skeleton duy trì danh sách các proxy có tham chiếu tới đối tượng.

+Thao tác thêm 1 proxy không được thực hiện khi proxy đó đã tồn tại trong danh sách.

+Thao tác xóa proxy không được thực hiện khi proxy đó không tồn tại trong danh sách.

- Với chính sách trên phương thức này không đòi hỏi truyền thông tin cậy : khi proxy muốn tạo/ngắt tham chiếu tới đối tượng nó sẽ liên tục gửi yêu cầu tới skeleton của đối tượng đó cho tới khi nhận được thông báo chấp nhận của skeleton(đồ dai như đỉa ) .

- Khi danh sách rỗng thì đối tượng được "đưa về nơi xa".

- Khi P1 truyền tham chiếu cho P2 thì trước hết P2 yêu cầu thêm proxy của nó vào danh sách của skeleton. Sau đó P2 mới đặt proxy vào không gian địa chỉ của nó. Vấn đề P1 ngắt tham chiếu trước khi P2 đăng ký lại xuất hiện -> khắc phục như mô hình đơn giản.

- Ưu điểm :danh sách vẫn được duy trì một cách dễ dàng khi giải quyết vấn đề lỗi tiến trình. Skeleton sẽ gửi câu hỏi "mày chưa chết ah?" tới các tiến trình một cách định kỳ để kiểm tra trạng thái của tiến trình (nếu không có trả lời từ các tiến trình nghĩa là thằng tiến trình trả lời "tao ngỏm lâu rồi").

- Hạn chế : Tính co dãn của phương pháp này khá tồi vì nó phải theo dõi nhiều tham chiếu. Khắc phục : skeleton tạo hạn định cho proxy. Sau hạn định nếu proxy không đăng ký tham chiếu trở lại thì nó bị ban nick ( ->Hòa Thân = skeleton). Tất nhiên sẽ nảy sinh vấn đề xác định giá trị hạn định, quản lý đăng ký... và ta không xét ở đây.

Bạn đang đọc truyện trên: Truyen2U.Pro

#study