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 mô phỏng quá trình phát nhận thông điệp trong hệ phân tán

36 698 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 36
Dung lượng 277,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

ĐỀ 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

Trang 2

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

Trang 3

LÝ THUYẾT

Trang 4

ĐẶ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.

Trang 5

ĐẶ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ẻ

Trang 6

ĐẶ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:

Trang 7

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

Trang 8

 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

Trang 9

TRẬT TỰ TỪNG PHẦN

các sự kiện của hệ phân tán nhờ vào quan hệ

ngay trước ”.

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.

Trang 10

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

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

Trang 11

SẮP XẾP KIỂU ĐÓNG DẤU

 Đóng dấu là hành vi gán giá trị nguyên cho một

thông điệp nhằm ghi nhận thời điểm truyền trên cơ

sở tham chiếu đồng hồ logic

 Nội dung cơ bản của phương pháp này là trạm

phát được gắn một giá trị gọi là dấu Giá trị này là tính chất thời điểm cho trạm phát thông tin và dựa vào đồng hồ logic cục bộ của chính trạm Giải

thuật trình bày ở đây là giải thuật Lamport nhằm cho phép ghi lại các sự kiện của hệ phân tán

Trang 12

SẮP XẾP KIỂU ĐÓNG DẤU

 Giải thuật Lamport nhằm giải quyết vấn đề trình tự (vấn đề mấu chốt của hệ phân tán) dựa trên giá trị đồng hồ lo gích để sắp xếp các thông điệp đến

 Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là

Hs Đó chính là đồng hồ lô gích tăng lên giữa hai sự kiện kế tiếp Trạm e phát thông điệp ghi dấu E của mình dựa trên giá trị hiện hành của He Khi nhận được thông điệp, trạm r cập nhật đồng hồ

Hr riêng của mình bằng giải thuật sau đây :

Nếu Hr, thì

Hr := He +1 Chấm dứt nếu

Trang 13

SẮP XẾP KIỂU ĐÓNG DẤU

 Một sự kiện a sinh ra trong trạm i và được đánh dấu bởi đồng hồ cục bộ gọi là Hi(a) Nếu a và b đều là hai sự kiện trên hai trạm i và j, ta luôn luôn

có quan hệ xác định như sau :

 Đó là trật tự không chặt chẽ do vì hai sự kiện trên hai trạm khác nhau có thể đến cùng một thời điểm giống nhau

a  b  Hi(a) < Hi(b)

Trang 15

SẮP XẾP KIỂU ĐÓNG DẤU

Giả thiế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

Trang 16

SẮP XẾP KIỂU ĐÓNG DẤU

 Ba giá trị này xác định bản chất của ba loại thông điệp khác nhau

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 tất cả các trạm, khi trạm i đã rời khỏi đoạn găng

3 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.

Trang 17

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 :

 Trong đó, i, Hinit là thời điểm khởi sự giống nhau cho tất

cả các trạm

Mi = (REL, Hinit , i)

Trang 18

SẮP XẾP KIỂU ĐÓNG DẤU

Tiêu chí để sắp xếp dựa vào Hi

 Mỗi trạm quản lý một hàng đợi các thông điệp được sắp xếp hoàn toàn bởi quan hệ  theo cặp

<thời gian, số> của từng thông điệp

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

Mi = (REL, Cinit , i)

Trang 19

SẮP XẾP KIỂU ĐÓNG DẤU

(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ế 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.

theo nghĩa của quan hệ => tất cả các thông điệp khác trong hàng đợi của

Trang 20

ĐỒNG HỒ LOGIC LAMPORT

Cài đặt đồng hồ Lamport

 Tất cả các máy (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.

 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à timestamp (thời gian đánh dấu) của nó.

Trang 21

6 8

7

Các sự kiện logic đồng thời

Trang 22

THUẬT TOÁN LARMPORT

TỔNG QUÁT

(a) cả hai tiến trình 0 và 2 yêu cầu vào đoạn găng

(b) tiến trình 0 vào đoạn găng vì nó có yêu cầu đầu tiên(c) tiến trình 0 rời đoạn găng, tiến trình 2 vào đoạn găng

Trang 23

THUẬT TOÁN RICART &

AGRAWALA

2

Process 0 releases resource

 Khi một tiến trình muốn vào đoạn găng

Gửi một thông điệp yêu cầu tới tất cả các tiến trình khác trong nhóm

Trang 24

THUẬT TOÁN TOKEN RING

(a) Nhóm các tiến trình không có trật tự trong một mạng(b) Cấu trúc vòng tròn logic trong phần mềm

Trang 25

THUẬT TOÁN LOẠI TRỪ

TUƠNG HỖ

state := RELEASED;

Để một tiến trình chuẩn bị vào được đoạn găng

state := WANTED;

Gởi thông điệp yêu cầu vào đoạn găng cho N-1 trạm còn lại

H := request’s timestamp; {Thời gian dấu của yêu cầu}

Wait until ( Số lượng các thông điệp trả lời cho nó = (N - 1)); state := HELD;

Để một tiến trình ra khỏi đoạn găng

state := RELEASED;

Gởi thông điệp cho mọi tiến trình khác trong hệ

Trang 26

THUẬT TOÁN LOẠI TRỪ

TUƠNG HỖ

Khi nhận một yêu cầu <T,H,I,D>:

Cập nhật đồng hồ Logic của trạm theo công thức clock_logic=Max(clock_logic,H)+1

Nếu T=”REQ” thì bỏ thông điệp vào hàng đợi của trạm Ở đây là chèn thông điệp vào hàng đợi theo hai giá trị của H và I.

Nếu T= “ACK” thì Tham chiếu vào hàng đợi của mình để xem các thông điệp có giá trị T=”REQ”, IREQ=IACK ở đầu hàng đợi

Các thông điệp có giá trị T=”ACK” đã 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

Trang 27

THUẬT TOÁN LOẠI TRỪ

Gởi thông điệp vào đoạn găng cho trạm j (j=1…n)

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 được để trả lời

nó bằng N-1

State:=Held

Trang 28

THUẬT TOÁN LOẠI TRỪ

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

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 ra khỏi đoạn găng

Trang 29

THUẬT TOÁN LOẠI TRỪ

TUƠNG HỔ (TT)

Đ Đ

S S S

Kết thúc

Nếu T=”REL”

Nếu T=”ACK” Đ (1)

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

Ra khỏi đoạn găng + cập nhật thông tin trong CSDL

Trang 30

THUẬT TOÁN LOẠI TRỪ

TUƠNG HỖ (TT)

Đ S

Đ S

Chèn thông điệp nhận được vào hàng đợi

Đếm số các trạm đang hoạt động, giả sử là so_connec

Nếu thông điệp yêu cầu vào đoạn găng tương ứng thông điệp trả lời cho nó là đang ở đầu hàng đợi

Giải thuật xử lý khi nhận thông điệp có T=”ACK”

(1)

Kiểm tra lượng thông điệp từ các trạm khác gởi về trạm yêu cầu tương ứng, giả sử là so_ACK_Return

Nếu so_Connec=so_ACK_Return+1

Xóa tất cả các thông điệp trả lời tương ứng

Tiến trình vào đoạn găng, cập nhật lại CSDL cho các trạm

Đưa thông điệp yêu cầu vào lại hàng đợi

Kết thúc

Trang 31

TRIỂN KHAI CHƯƠNG

TRÌNH

Trang 32

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

Trang 33

MÔ HÌNH BÀI TOÁN

S3

S1

S2

Mạng TCP/IP

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 tin và cập nhật cơ sở dữ liệu dùng chung cho chính trạm đó.

 Việc trao dữ liệu 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.

Trang 34

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ên mỗi trạm đều có xây dựng một hàng đợi, dùng để 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?

Trang 35

MÔ HÌNH BÀI TOÁN

Queue của Trạm

Ghi Nhận

Trang 36

DEMO CHƯƠNG TRÌNH

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w