Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
363,5 KB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG Đề tài : VIẾT CHƯƠNG TRÌNH CÀI ĐẶT VIẾT CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN LAMPORT TRÊN n THUẬT TOÁN LAMPORT TRÊN n SERVER, n>3 SERVER, n>3 GVHD: PGS.TS LÊ VĂN SƠN HVTH: Trần Ngọc Chinh LỚP: KHMT – K17 GVHD: PGS.TS LÊ VĂN SƠN HVTH: Trần Ngọc Chinh LỚP: KHMT – K17 2 Nội dung trình bày Yêu cầu bài toán Yêu cầu bài toán Hướng giải quyết bài toán Hướng giải quyết bài toán Thuật toán loại trừ tương hỗ Thuật toán loại trừ tương hỗ Thuật toán Lamport cải tiến (Ricart- Thuật toán Lamport cải tiến (Ricart- Agrawala) Agrawala) Cách xác định giá trị đồng hồ logic Cách xác định giá trị đồng hồ logic Xây dựng cấu trúc các thông điệp Xây dựng cấu trúc các thông điệp Kết luận Kết luận Demo chương trình Demo chương trình 3 Yêu cầu bài toán Viết chương trình cài đặt thuật toán Viết chương trình cài đặt thuật toán Lamport trên n SERVER, n>3. Lamport trên n SERVER, n>3. Xây dựng đa server theo kiểu ngang hàng Xây dựng đa server theo kiểu ngang hàng và có khả năng phát và nhận thông điệp. và có khả năng phát và nhận thông điệp. Xây dựng cấu trúc các loại thông điệp trao Xây dựng cấu trúc các loại thông điệp trao đổi giữa các server. đổi giữa các server. Xây dựng đoạn chương trình sắp xếp các Xây dựng đoạn chương trình sắp xếp các thông điệp đến căn cứ vào giá trị đồng hồ thông điệp đến căn cứ vào giá trị đồng hồ Lamport. Lamport. Xây dựng chương trình quan sát trình tự Xây dựng chương trình quan sát trình tự sắp xếp tại các server trên màn hình. sắp xếp tại các server trên màn hình. 4 Hướng giải quyết Sử dụng thuật toán loại trừ tương Sử dụng thuật toán loại trừ tương hỗ. hỗ. Sử dụng thuật toán Lamport cải Sử dụng thuật toán Lamport cải tiến (Ricart-Agrawala) tiến (Ricart-Agrawala) Xây dựng cấu trúc thông điệp trao Xây dựng cấu trúc thông điệp trao đổi giữa các Server đổi giữa các Server Viết chương trình demo dựa trên Viết chương trình demo dựa trên nền tảng lý thuyết và ngôn ngữ nền tảng lý thuyết và ngôn ngữ Java Java 5 Thuật toán loại trừ tương hỗ Một tiến trình khi Một tiến trình khi sử dụng xong tài sử dụng xong tài nguyên nguyên , sẽ truyền một , sẽ truyền một thông điệp thông điệp giải phóng giải phóng đến các tiến trình khác. đến các tiến trình khác. Trật tự có được tại Trật tự có được tại trạm cung cấp trạm cung cấp có có thể không giống như trật tự phát. thể không giống như trật tự phát. Nếu Nếu có nhiều thông điệp đến cùng có nhiều thông điệp đến cùng một lúc một lúc thì việc sắp xếp chúng phải thì việc sắp xếp chúng phải theo kiểu theo kiểu loại trừ trương hỗ loại trừ trương hỗ trong trong hàng đợi cục bộ của trạm có chứa hàng đợi cục bộ của trạm có chứa chương trình cung cấp. chương trình cung cấp. 6 Giới thiệu thuật toán Giới thiệu thuật toán Ricart-Agrawala là một thuật toán để loại trừ lẫn nhau trên một hệ phân tán. Là một thuật toán mở rộng và tối ưu hóa của Lamport, bằng cách loại bỏ được sự cần thiết phải phát hành các tin nhắn. Được phát triển bởi Glenn Ricart và Ashok Thuật toán Ricart-Agrawala 7 Thuật toán Ricart-Agrawala (tt) Nội dung thuật toán Nội dung thuật toán Khi Pi yêu cầu tài nguyên: Khi Pi yêu cầu tài nguyên: Tiến trình Pi gửi thông điệp Request(t i ,i) đến tất cả các tiến trình kể cả bản thân nó. Khi một tiến trình Pk nào đó nhận được yêu cầu từ Pi: • Pk sẽ gửi thông điệp Reply cho Pi nếu: tài nguyên đang rỗi hoặc là yêu cầu được phát sinh sớm nhất. • Còn lại yêu cầu sẽ bị trì hoãn (deferred). 8 Thuật toán Ricart-Agrawala (tt) Khi Pi yêu cầu tài nguyên: Khi Pi yêu cầu tài nguyên: P1 P2 P3 Request(P1,8) Request(P1,8) Request(P1,8) 1 1 1 Request(P2,12) Request(P2,12) Request(P2,12) 2 2 2 Tiến trình P1 yêu cầu tài nguyên Tiến trình P2 yêu cầu tài nguyên 9 Thuật toán Ricart-Agrawala (tt) Khi Pi yêu cầu tài nguyên Khi Pi yêu cầu tài nguyên P1 P2 P3 1 1 1 2 2 2 Quá trình phản hồi từ các tiến trình Reply(is OK) Reply(is OK) Reply(is OK) Yêu cầu bị trì hoãn Yêu cầu bị trì hoãn 10 Thuật toán Ricart-Agrawala (tt) Khi nào Pi được sử dụng Khi nào Pi được sử dụng tài nguyên? tài nguyên? Khi và chỉ khi tiến trình đó nhận được thông điệp Reply từ tất cả các trạm. Khi Pi giải phóng tài Khi Pi giải phóng tài nguyên: nguyên: Khi Pi giải phóng tài nguyên, nó sẽ gửi thông điệp Release lại cho các tiến trình đang bị trì hoãn trước đó. [...]... thuyết cơ b n về hệ ph n t n và lập trình mạng ph n t n Tìm hiểu nguy n lý đồng bộ hóa các ti n trình trong hệ tin học ph n t n N m được thuật to n đồng bộ hóa các ti n trình Lamport và thuật to n Ricart-Agrawala Xây dựng cấu trúc của các thông điệp Thiết kế thành công đa server theo kiểu ngang hàng có khả n ng phát và nh n thông điệp Cài đặt chương trình sắp xếp các thông điệp đ n c n cứ vào... giá trị của đồng hồ lamport Giám sát trình tự sắp xếp tại các server 16 Kết lu n H n chế Chưa khắc phục được hi n tượng tr n bộ nhớ khi hoạt động ở chế độ tự động Chưa kiểm soát tối ưu các thông điệp đ n và đi khi đồng thời có nhiều thông điệp phát sinh Hướng phát tri n Khắc phục những h n chế tr n Nghi n cứu thêm các thuật to n tối ưu để đồng bộ hóa các ti n trình Đề tài n y làm cơ sở... đồng thời n Giá trị đồng hồ timestamp Thông điệp 13 Xây dựng cấu trúc các loại thông điệp Thiết kế cấu trúc chung của các thông điệp Lamport @$ ServerRecei "|" ServerSend "|” CodeMess "|” Data $@ Trong đó: Lamport: Trường giá trị của đồng hồ Lamport ServerRecei: Trường t n Server nh n dữ liệu ServerSend: Trường t n Server gửi dữ liệu CodeMess: Trường thể hi n mã loại thông điệp Data: Lưu trữ ph n. .. ph n dữ liệu chính của thông điệp c n gửi (n u có) 14 Xây dựng cấu trúc các loại thông điệp(tt) Các mã loại thông điệp ( CodeMess) CodeMess Chức n ng REQ REQUEST - yêu cầu vào đo n găng REP REPLY – trả lời chấp nh n yêu cầu REL RELEASE – giải phóng các yêu cầu đã bị trì ho n CON CONNECTION – mã yêu cầu kết n i DIS DISCONNECTION – mã yêu cầu ngắt kết n i 15 Kết lu n Kết quả đạt được N m được các lý.. .Thuật to n Ricart-Agrawala (tt) Khi giải phóng tài nguy n P1 2 Release(is OK) P3 P2 2 11 Cách xác định giá trị đồng hồ logic Bước 1: Tất cả các trạm (ti n trình - Pi) sử dụng một bộ đếm (đồng hồ - Ci) với giá trị khởi tạo là 0 Bước 2: Trước khi xử lý một sự ki n (gửi, nh n hoặc ngắt), Pi xử lý như sau: tăng bộ đếm và g n cho mỗi sự ki n, như là thời gian đánh dấu (timestamp) của n Ci =... thường d=1) Bước 3: Mỗi thông điệp mang giá trị đồng hồ của ti n trình gửi n tại thời điểm gửi Khi Pi nh n một thông điệp với timestamp C msg, n xử lý như sau: 1 Ci = Max(Ci, Cmsg) 2 Phát thông điệp 3 Quay về Bước 2 12 Cách xác định giá trị đồng hồ logic (tt) Ví dụ về thời gian logic Lamport Thời gian vật lý Trạm 1 0 2 1 7 1 Trạm 2 Trạm 3 Trạm 4 0 0 8 8 2 3 2 3 0 4 6 3 9 5 4 7 6 5 10 7 Các sự ki n. .. phát tri n Khắc phục những h n chế tr n Nghi n cứu thêm các thuật to n tối ưu để đồng bộ hóa các ti n trình Đề tài n y làm cơ sở để có thể xây dựng các chương trình ứng dụng về hệ ph n t n vào thực tế 17 DEMO CHƯƠNG TRÌNH 18 XIN CH N THÀNH CÁM N !!! 19 . ĐÀ N NG TRƯỜNG ĐẠI HỌC BÁCH KHOA TIỂU LU N M N HỌC LẬP TRÌNH MẠNG Đề tài : VIẾT CHƯƠNG TRÌNH CÀI ĐẶT VIẾT CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TO N LAMPORT TR N n THUẬT TO N LAMPORT TR N n SERVER, n& gt;3 SERVER, . bài to n Viết chương trình cài đặt thuật to n Viết chương trình cài đặt thuật to n Lamport tr n n SERVER, n& gt;3. Lamport tr n n SERVER, n& gt;3. Xây dựng đa server theo kiểu ngang hàng Xây. dựa tr n n n tảng lý thuyết và ng n ngữ n n tảng lý thuyết và ng n ngữ Java Java 5 Thuật to n loại trừ tương hỗ Một ti n trình khi Một ti n trình khi sử dụng xong tài sử dụng xong tài nguy n nguy n ,