Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
277,5 KB
Nội dung
ĐỀ TÀI Hãy viết chương trình mô phỏng quá trình phát và nhận thông điệp trong hệ phân tán Xây dựng hệ thống 3 server có khả năng phát nhận thông điệp GVHD : PGS.TS Lê Văn Sơn HVTH : Đặng Ngọc Thắng LỚP : KHMT KHÓA : K24 GIỚI THIỆU ĐỀ TÀI - Phần 1: Phần cơ sở lý thuyết những vấn đề chung nhất của hệ tin học phân tán làm cơ sở cho các phần 2 của đề tài. - Phần 2: Lập trình phân tán - Phần 3: Triển khai chương trình - Phần 4 : Đánh giá kết quả thực hiện được và hướng phát triển ứng dụng LÝ THUYẾT ĐẶT VẤN ĐỀ Trong môi trường hệ phân tán, việc các tiến trình muốn truy cập vào các tài nguyên có số lượng hạn chế hay thông tin dùng chung cùng một lúc là có thể xảy ra, trường hợp này được gọi là tương tranh. Tài nguyên được hệ phân tán chia sẻ cho nhiều tiến trình mà có nguy cơ xảy ra sự tương tranh gọi là tài nguyên găng. ĐẶT VẤN ĐỀ Tài nguyên găng là tài nguyên mà trong một khoảng thời gian nhất định thì chỉ phục vụ hợp lý cho một số hữu hạn các tiến trình. Đoạn mã trong các tiến trình đồng thời sử dụng tài nguyên găng gọi là đoạn găng hay gọi là “chỗ hẹp” trong tiến trình. Tức là đoạn mã để truy cập đến các tài nguyên được chia sẻ. ĐẶT VẤN ĐỀ Việc sắp xếp các thông điệp từ các trạm gởi tới để truy cập đoạn găng theo thứ tự hợp lý để không xảy ra sự tương tranh và hợp lực chính là các chiến lược đồng bộ hóa các tiến trình. Để hiểu tính cấp thiết của việc đồng bộ hóa các tiến trình khi xử lý đoạn găng, ta xét ví dụ nhỏ sau: VÍ DỤ P1 Tienrut = 400 TÀI KHOẢN P2 Tienrut = 500 800 IF (tai khoan – tien rut >=0) THEN tai khoan = tien khoan – tien rut; ELSE thong bao loi; IF (tai khoan – tien rut >=0) THEN tai khoan = tien khoan – tien rut; ELSE thong bao loi; Chi nhánh I Chi nhánh II Trong hệ thống tin học tập trung, vấn đề đồng bộ hóa được giải quyết thông qua cơ chế loại trừ tương hỗ. Tuy nhiên, trong hệ phân tán, việc đồng bộ hóa chỉ đặt ra yêu cầu duy nhất vấn đề thiết lập một trật tự giữa các sự kiện. Giữa các trạm khác nhau, trật tự đó có thể thể hiện được thông qua việc trao đổi các thông điệp với nhau. TRẬT TỰ TỪNG PHẦN Giả sử rằng ta có thể xác định một trật tự giữa các sự kiện của hệ phân tán nhờ vào quan hệ được ký hiệu là → và gọi là “có trước” hay “ở ngay trước”. Quan hệ này tối thiếu phải thoã mãn được ràng buộc thể hiện trong bảng sau đây : C1 : Nếu A và B là hai sự kiện của cùng một trạm và nếu A được thực hiện trước B thì theo trật tự cục bộ của trạm ta có A → B. C2 : Nếu A là phát thông điệp bởi một trạm nào đó và nếu B là thu của thông điệp này thì ta có A → B. SẮP XẾP KIỂU ĐÓNG DẤU Một sự hoạt động gắn bó giữa các chương trình cung cấp phân tán quản lý cùng một tập hợp các tài nguyên chỉ đạt được nếu tuân thủ các quy tắc sau, ở đây thông điệp được hiểu là các yêu cầu hay khuyến nghị giải phóng tài nguyên STT Quy tắc 1 Các bộ cung cấp bắt buộc phải thực hiện cùng một 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ý cùng một trật tự như nhau trong các chương trình cung cấp [...]... Tiến trình vào đoạn găng, cập nhật lại CSDL cho các trạm Giải thuật xử lý khi nhận thông điệp có T=”ACK” TRIỂN KHAI CHƯƠNG TRÌNH PHÁT BiỂU BÀI TOÁN Hãy viết chương trình mô phỏng quá trình phát và nhận thông điệp trong hệ phân tán MÔ HÌNH BÀI TOÁN S2 Mạng TCP/IP S1 S3 Các trạm phải tuân thủ các nguyên tắc sau Mỗi trạm sử dụng bộ nhớ tất thời hoặc đĩa cứng của mình trong quá trình xử lý thông. .. các thông điệp được sắp xếp hoàn toàn bởi quan hệ ⇒ theo cặp của từng thông điệp Mi = (REL, Cinit , i) Thuật toán được mô tả theo sơ đồ sau : Khởi tạo hàng đợi, mỗi máy tự phát thông điệp SẮP XẾP KIỂU ĐÓNG DẤU Trên mỗi trạm, khi nhận được một thông điệp dạng (REQ,Hi,i) hay (REL,Hi,i) thông điệp này thay thế thông điệp Mi bất chấp nó là gì Khi nhận thông điệp loại (ACQ, Hi,i), thông. .. của hệ thống được tiến hành thông qua sự trao đổi thông điệp giữa các trạm với nhau Mỗi khi có sự cố trên một trạm thì các trạm trong hệ đều phải biết MÔ HÌNH BÀI TOÁN Mỗi trạm cài đặt một chương trình gồm hai tiến trình. Trong đó một tiến trình có nhiệm vụ phát đi các thông điệp yêu cầu cung cấp hoặc kiến nghị vị trí tại tài nguyên găng, tiến trình còn lại nhận các thông điệp từ các tiến trình phát. .. 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 Hi, i), trong đó Hi là dấu của thông điệp có nghĩa là đồng hồ lô gích của nó và T có thể nhận một trong ba giá trị REQ, REL, và ACQ SẮP XẾP KIỂU ĐÓNG DẤU STT 1 2 3 Ba giá trị này xác định bản chất của ba loại thông điệp khác nhau Thông điệp Giải thích REQ Thông điệp REQ được phát đi cho tất cả các trạm, khi trạm i muốn vào trong đoạn... TUƠNG HỔ (TT) Bắt đầu Nhận thông điệp M có dạng: M={T,H,Z,I,D} Cập nhật đồng hồ logic của trạm Xem xét giá trị của T Chèn thông điệp vào hàng đợi cục bộ của trạm nhận phụ thuộc H và i Đ Gởi thông điệp trả lời Đ Xóa thông điệp yêu cầu trong hàng đợi Nếu T=”REQ” S Nếu T=”REL” S Nếu T=”ACK” Ra khỏi đoạn găng + cập nhật thông tin trong CSDL S Kết thúc Giải thuật xử lý khi nhận thông điệp vào đoạn găng Đ... một tiến trình i vào đoạn găng THUẬT TOÁN LOẠI TRỪ TUƠNG HỔ (TT) Bắt đầu State:=Released Gởi thông điệp yêu cầu ra khỏi đoạn găng cho trạm j tiếp theo(j=1…n) Trạm j nhận thông điệp đó và xóa thông điệp yêu cầu vào của nó trong hàng đợi cục bộ của trạm j S Nếu trạm j là trạm cuối cùng trong hệ để gởi thông điệp Đ Cập nhật dữ liệu trong cơ sở dữ liệu của các trạm Kết thúc Giải thuật để một tiến trình i... để lưu trữ các thông điệp từ các tiến trình phát Như vậy, tại mỗi trạm nào đó, nếu có một yêu cầu muốn đoạn găng thì tiến trình phát tại trạm này sẽ gởi thông điệp đến các trạm khác và ngay cả chính nó.Những thông điệp này sẽ được tiến trình nhận và đưa vào hàng đợi cục bộ tại trạm Sau đó tùy theo giải thuật xử lý mà ta biết được là nó có thể vào được hay không? MÔ HÌNH BÀI TOÁN Thông báo đã vào được... đã nhận đầy đủ từ các trạm khác trong hệ để tr lời cho nó Nếu đã hội đủ hai vấn đề trên thì cho vào đoạn găng Ngược lại thì bỏ thông điệp vào hành đợi Nếu T= “REL” Xoá thông điệp có T=”REQ” tương đương với nó ra khỏi hàng đợi THUẬT TOÁN LOẠI TRỪ TUƠNG HỖ (TT) Bắt đầu State:=Wanted Gởi thông điệp vào đoạn găng cho trạm j (j=1…n) S Gởi thông điệp trả lời từ các trạm đã gởi yêu cầu Đ Nếu số thông điệp nhận. .. đoạn găng REL Thông điệp 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 Thông điệp ACQ được gửi bởi trạm i cho trạm j đã nhận được từ trạm i thông điệp REQ SẮP XẾP KIỂU ĐÓNG DẤU Khi có một thông điệp được gởi đi bởi trạm i đồng thời nó cũng được ghi trong hàng đợi của trạm này Giả sử rằng mỗi hàng đợi ban đầu chứa các thông điệp : Mi = (REL, Hinit , i) Trong đó, i,... điệp loại (ACQ, Hi,i), thông điệp này thay thế Mi ngoại trừ nếu Mi là một yêu cầu mà trong trường hợp đó ACQ bị bỏ qua Do vậy, ta có thể tiết kiệm việc gởi đi thông điệp ACQ cho trạm i khi trạm này đã gởi một thông điệp REQ và không còn thông điệp REL Trạm i được quyền vào đoạn găng khi thông điệp REQ của nó đến trước theo nghĩa của quan hệ => tất cả các thông điệp khác trong hàng đợi của nó ĐỒNG . ĐỀ TÀI Hãy viết chương trình mô phỏng quá trình phát và nhận thông điệp trong hệ phân tán Xây dựng hệ thống 3 server có khả năng phát nhận thông điệp GVHD : PGS.TS Lê Văn Sơn HVTH. DẤU Trên mỗi trạm, khi nhận được một thông điệp dạng (REQ,Hi,i) hay (REL,Hi,i) thông điệp này thay thế thông điệp Mi bất chấp nó là gì. Khi nhận thông điệp loại (ACQ, Hi,i), thông điệp này thay thế. của ba loại thông điệp khác nhau STT Thông điệp Giải thích 1 REQ Thông điệp 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 2 REL Thông điệp REL được phát đi cho