YÊU CẦU ĐỀ TÀI Viết chương trình tính toán giá trị đồng hồ logic tại mỗi server.. Xây dựng hệ thống 3 server thể hiện khả năng phát nhận thông điệp Xây dựng chương trình tính toán g
Trang 1HỆ THỐNG ĐA SERVER THỂ HIỆN GIÁ TRỊ ĐỒNG HỒ LOGIC VÀ KHẢ NĂNG
Trang 2YÊU CẦU ĐỀ TÀI
Viết chương trình tính toán giá trị đồng hồ logic tại mỗi server.
Xây dựng hệ thống 3 server thể hiện khả năng phát nhận thông điệp
Xây dựng chương trình tính toán giá trị đồng hồ cho server phát và giá trị cho server nhận
Trang 3Nội dung
- Tổng quan về hệ phân tán
- Đồng bộ hóa thời gian trong hệ phân tán - Thuật toán Lamport
- Cài đặt hệ thống đa server thể hiện giá trị đồng hồ
lôgic và khả năng phát nhận thông điệp
Trang 4- Hệ phân tán (Distributed System)
TỔNG QUAN VỀ HỆ PHÂN TÁN
Trang 5 Ví dụ về hệ phân tán - Một Intranet tiêu biểu
Trang 6 Kiến trúc hệ phân tán
Applications, Services
Middleware
Operating System Computer and Network hardware
Platform
Middleware: Cung cấp mô hình lập trình cho các ứng dụng, như RMI, CORBA, DCOM,…
Các lớp dịch vụ phần mềm và phần cứng.
Trang 7Result Result
Mô hình Client/Server.
Trang 8 Không có khái niệm thời gian toàn cục.
Đồng hồ logic: mỗi thông điệp được gán một thời gian đánh dấu (timestamp) phản ánh thứ tự logic của chúng.
Đồng hồ và thứ tự sự kiện
Trang 9ĐỒNG BỘ HÓA THỜI GIAN TRONG HỆ PHÂN TÁN -
THUẬT TOÁN LAMPORT
Thời gian và thứ tự sự kiện.
Trong hệ phân tán mỗi bộ xử lý có một đồng hồ riêng Các thuật toán sử dụng để đồng bộ hóa đồng hồ:
Thuật toán Cristian.
Thuật toán Berkeley.
Trang 10 Trong hệ phân tán, chương trình cung cấp tài nguyên nằm trên một trạm và các tiến trình đề nghị lại nằm trên trạm khác; các yêu cầu và khuyến nghị giải phóng được truyền cho chương trình cung cấp thông qua hình thức thông điệp chuyển đi theo các kênh của hệ thống viễn thông
Vì vậy, nhu cầu sắp xếp các yêu cầu này theo một thứ tự nhất định nào đó luôn luôn được đặt ra
Sự họat động gắn bó với nhau giữa các chương trình cung cấp là rất cần thiết để đảm bảo cho họat động cung cấp được hoàn toàn chính xác
Vấn đề cung cấp tài nguyên trong hệ phân tán:
Trang 11 Quy tắc 3 nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhất trên tập hợp các thông điệp của hệ.
Để thực hiện được điều này sử dụng thuật toán
Lamport
1.Các bộ cung cấp bắt buộc phải thực hiện cùng giải thuật
2.Các bộ cung cấp đều nhận tất cả các thông điệp phát đi từ các tiến trình.
3.Các thông điệp phải được xử lý cung một trật tự như nhau trong các chương trình cung cấp.
Các quy tắc cho các thuật toán cung cấp tài nguyên trên hệ phân tán.
Trang 12Thuật toán Lamport
Tập hợp các sự kiện sản sinh bởi Pi có tổng thứ tự được sắp đặt
theo dãy sự kiện: eix eix+1 ta nói rằng: eix xảy ta trước eix+1
Các sự kiện xảy ra giữa hai tiến trình đồng thời nói chung không
quan hệ, trừ trường hơp:
Đối với mỗi thông điệp m trao đỗi giữa hai tiến trình Pi và Pj,
chúng ta có eix = send(m), eix+1 = receive(m) thì eix eix+1
Trang 132 Những điều kiện đồng hồ :
biệt có một đồng hồ lôgic được áp dụng theo một giao thức
C(e1) < C(e2).
Trong đó: C(ei) là timestamp được gán cho sự kiện ei.
chặt:
nếu C(e1) < C(e2) thì e1 e2.
Thuật toán Lamport (tt)
Trang 143.Cài đặt đồng hồ lôgic :
B1: Tất cả tiến trình Pi, sử dụng đồng hồ lôgic riêng Ci, giá trị khởi
tạo là 0
B2: Trước khi xử lý một sự kiện, Pi thực hiện như sau: tăng giá trị
đồng hồ và gán cho sự kiện như là timestamp của nó
Ci = Ci + d (d>0 thường d=1)B3: Mỗi thông điệp mang giá trị đồng hồ của tiến trình gữi tại thời
điểm gữi Khi Pi nhận một thông điệp với timestamp Cmsg nó xử lý như sau:
1.Ci = Max( Ci, Cmsg)
2.Thực hiện B2
3.Phát thông điệp
Thuật toán Lamport (tt)
Trang 16Cài đặt chương trình
1.Ngôn ngữ cài đặt : Java
2.Các chức năng chính:
Giá trị đồng hồ logic theo thuật toán Lamport
cho server phát và server nhận
Phát/nhận thông điệp trên mỗi server Mỗi thông điệp phát đi bao gồm:
Trang 17DEMO CHƯƠNG TRÌNH
Trang 1803/07/24 18
Trang 1903/07/24 19
Trang 2003/07/24 20
Trang 21KẾT LUẬN
Các kiến thức chung về hệ phân tán.
Các ngôn ngữ cho phép tính toán song song
Thuật toán Lamport và hướng cải tiến
Phát triển đề tài theo hướng CSDL phân tán.
Viết chương trình cài đặt minh họa.
Trang 22Xin chân thành cảm ơn!