1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo tiểu luận môn lập trình mạng sử dụng thuật toán lomet để sắp xếp các giao dịch trong mạng phân tán

15 582 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 226,5 KB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TIỂU LUẬN LẬP TRÌNH MẠNG NÂNG CAO GVHD : PGS.TS Lê Văn Sơn HVTH : Nguyễn Thị Quỳnh Trang Lớp : CH. Khoa học máy tính K24 THUẬT TOÁN LOMET THUẬT TOÁN LOMET SẮP XẾP CÁC GIAO DỊCH TRONG SẮP XẾP CÁC GIAO DỊCH TRONG HỆ PHÂN TÁN HỆ PHÂN TÁN Đề tài: NỘI DUNG BÁO CÁO Đặt vấn đề 1 Giải quyết vấn đề 2 Các modules thực hiện 3 Chương trình demo 4 1 2 3 4 Đặt vấn đề  Dùng phương pháp sắp xếp các giao dịch của Lomet hãy xác định cho trạm i thuật toán cập nhật đồ thị cục bộ khi nhận thông điệp mới có đóng dấu H(AN j ) đến từ trạm j.  Ta cần phải đảm bảo rằng một thông điệp AN k nào đó như H(AN j )>H(AN k ) được xếp trước AN j ngay cả khi nó chỉ đến trạm i sau AN j .  Ngoài ra, ta còn giả sử rằng mỗi trạm j có thể gửi cho chính trạm i nhiều thông điệp AN' j , AN'' j , AN''' j , liên quan đến các giao dịch khác nhau Giải quyết vấn đề  Trước khi có thông điệp gửi tới từ trạm j, tại trạm i lúc này duy trì đồ thị cục bộ với nhiệm vụ hình thành trật tự cho các giao dịch.  Các giao dịch trên trạm i tại thời điểm trước khi có thông điệp H(AN j ) được sắp xếp trong hàng đợi, tiêu chí sắp xếp là dấu của các thông điệp.  Trạm phát được gắn một giá trị gọi là dấu. Giá trị này có tính chất thời điểm cho trạm phát thông tin và dựa vào đồng hồ lôgíc cục bộ của chính trạm đó.  Các đồng hồ được lấy thông qua hộp thoại giữa các trạm.  Trạm i của mạng có thể gửi cho các trạm khác thông điệp có dạng (T,H i ,i) trong đó H i là dấu của thông điệp tức là đồng hồ lôgíc của nó và T có thể nhận một trong ba giá trị REQ, REL và ACQ.  REQ : được phát đi cho tất cả các trạm khi trạm i muốn vào trong đoạn găng  REL: được phát đi cho tất cả các trạm khi trạm i đã rời khỏi đoạn găng  ACQ: được gửi bởi trạm j cho trạm i khi trạm j đã nhận được từ trạm i thông điệp REQ  Giả sử rằng, tại thời điểm thông cáo của trạm j gửi tới, đồng hồ thời gian lôgic của trạm i sẽ thực hiện phép toán: Nếu H i thì H i := H j +1; Kết thúc nếu  Và thông điệp H(AN j ) được xếp vào hàng đợi. Giải quyết vấn đề Giải quyết vấn đề  Tại trạm i có tài nguyên e i , phương pháp Lomet nhằm sắp xếp trật tự các giao dịch để chống xung đột xảy ra chứ không áp dụng cho các tài nguyên.  Điều kiện cung cấp tài nguyên là duy trì tình trạng không vòng lặp cho các đồ thị G i  Căn cứ theo cấu trúc, điều kiện này có thể được kiểm tra cục bộ trên từng trạm.  Ta sẽ chỉ ra G có được tình trạng không vòng lặp như thế nào.  Để làm việc đó, ta bắt đầu chỉ ra sự tồn tại của vòng trong G kéo theo sự tồn tại của vòng trong ít nhất một G’ i Giải quyết vấn đề  Để đảm bảo rằng một thông điệp AN k nào đó như H(AN j )>H(AN k ) được xếp trước AN j ngay cả khi nó chỉ đến trạm i sau AN j . Ngoài ra, ta còn giả sử rằng mỗi trạm j có thể gửi cho chính trạm i nhiều thông điệp AN' j , AN'' j , AN''' j , liên quan đến các giao dịch khác nhau:  Do sử dụng đồng hồ logic và mỗi G i là hình ảnh thu nhỏ của G nên mặc dù thông điệp AN k đã phát đi và được đóng dấu H(AN k ), nhưng còn lang thang trên đường và đến trạm i sau thì trạm i vẫn có hình ảnh về thông điệp của AN k . Vì vậy trạm i vẫn sắp xếp AN k vào hàng đợi dựa trên dấu H(AN k ).  Để đảm bảo được như vậy thì phải đảm bảo tính gắn bó dữ liệu mạnh. Tại mọi lúc mọi nơi thì hình ảnh thu nhỏ của G trên i là tức thời, nếu không đảm bảo được tinh gắn bó mạnh thì thông điệp AN k sẽ đến sau AN j hoặc mất thông điệp mặc dù AN k phát thông điệp trước. CÁC MODULES THỰC HIỆN  Mô tả giao diện public interface Server1 extends java.rmi.Remote { public abstract void printQueue() throws java.rmi.RemoteException; public abstract void sendMess() throws java.rmi.RemoteException; public abstract void receiveMess(String R, int H, int I) throws java.rmi.RemoteException; public abstract void setStart(boolean start) throws java.rmi.RemoteException; } CÁC MODULES THỰC HIỆN  Khai báo hàng đợi public class Queue { private boolean start; int max=0; private String Q[]; public boolean change=false; private boolean ready=true; public Queue() { start = false; max=40; Q=new String [max]; for (int i=0;i<max;i++) Q[i]=""; } CÁC MODULES THỰC HIỆN  Thêm vào hàng đợi public void setQueue(String R, int H, int I) { deleteQueue(R, I); int i=0; while (i<max-4 && Q[i].compareToIgnoreCase("")!=0 && H >Integer.parseInt(Q[i+1])) i+=4; if (i<max-4) { for(int j=max-1; j>=i+4; j ) Q[j]=Q[j-4]; Q[i]=R; Q[i+1]=H +""; Q[i+2]=I +""; Q[i+3]=0 +""; change=true; } } [...]... System.out.println("=============================="); System.out.println("=============================="); CÁC MODULES THỰC HIỆN Kiểm tra quyền vào đoạn găng(tt)  Thread.sleep(5000); return 5; } else { return 0; } } i=i+4; } return 0; } catch(java.lang.Exception exception) { System.out.println(exception.getMessage()); System.exit(0); return 0; } } CHƯƠNG TRÌNH DEMO CHƯƠNG TRÌNH DEMO XIN CHÂN THÀNH CẢM ƠN! ...CÁC MODULES THỰC HIỆN  Kiểm tra quyền vào đoạn găng public int checkAccess(int idx) { try { int i=0; while (i . NẴNG TIỂU LUẬN LẬP TRÌNH MẠNG NÂNG CAO GVHD : PGS.TS Lê Văn Sơn HVTH : Nguyễn Thị Quỳnh Trang Lớp : CH. Khoa học máy tính K24 THUẬT TOÁN LOMET THUẬT TOÁN LOMET SẮP XẾP CÁC GIAO DỊCH TRONG SẮP XẾP. XẾP CÁC GIAO DỊCH TRONG HỆ PHÂN TÁN HỆ PHÂN TÁN Đề tài: NỘI DUNG BÁO CÁO Đặt vấn đề 1 Giải quyết vấn đề 2 Các modules thực hiện 3 Chương trình demo 4 1 2 3 4 Đặt vấn đề  Dùng phương pháp sắp xếp. pháp Lomet nhằm sắp xếp trật tự các giao dịch để chống xung đột xảy ra chứ không áp dụng cho các tài nguyên.  Điều kiện cung cấp tài nguyên là duy trì tình trạng không vòng lặp cho các đồ

Ngày đăng: 31/01/2015, 23:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w