Tải bản đầy đủ (.ppt) (40 trang)

báo cáo tiểu luận lập trình mạng chương trình cho phép đưa một trạm đã khắc phục sự cố vào lại mạng và đồng nhất dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (580.02 KB, 40 trang )

B GIO DC O TO
B GIO DC O TO
I HC NNG
I HC NNG
BAO CAO baứi taọp tieồu luaọn
Mụn hc : Lp trỡnh mng
ti: BI TON S DNG B TUN T
DI CHUYN TRấN VềNG TRềN O


GVHD
GVHD
: PGS.TS Lấ VN SN
: PGS.TS Lấ VN SN


SVTH
SVTH
: H NGC T
: H NGC T


LP : KHMT K24
LP : KHMT K24
2
Nội dung

Phần I: Lý thuyết về bộ tuần tự tuần hoàn

Phần II: Giới thiệu về các phương án có sự cố


Phần III: Lập trình về bộ tuần tự tuần hoàn trên
vòng tròn ảo
3
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
I.Khái niệm bộ tuần tự
Bộ tuần tự là đối tượng đồng bộ cung cấp cho mỗi yêu cầu
một số có giá trị nguyên dương (hay còn gọi là một tíc kê)
nhằm xác lập trật tự. Hai yêu cầu kế tiếp nhau được thể
hiện bởi hai số nguyên liên tiếp, trong đó giá trị 0 được cung
cấp cho yêu cầu đầu tiên.
Giả sử ta có bộ tuần tự S, lúc này một tiến trình muốn nhận
giá trị từ bộ tuần tự S thì nó phải gọi thủ tục hay hàm có tên
là TICKET(S).
Giả sử rằng tất cả các sự kiện được đánh số bởi một bộ tuần
tự duy nhất S. Khi một tiến trình cung cấp cho một sự kiện i
một số thông qua TICKET(S), ta có thể khẳng định như
sau:
4
1. Các sự kiện t bao hàm các giá trị nhỏ hơn t đã đựoc diễn
ra.
2. Số thứ tự sự kiện kề liền sau t phải bằng t +1.
Việc triển khai một bộ tuần tự cần phải mang hai đặc tính sau:

Đặc tính P1: Nếu a và b là hai sự kiện thực hiện trên
cùng hàm TICKET(S), thì ta có a  b hay b  a. Đặc
tính này thể hiện việc loại trừ tương hỗ trên các phép toán
TICKET(S).

Đặc tính P2: Nếu a thực hiện phép t = TICKET(S) thì
giá trị gán cho t là số lượng các phép TICKET(S) đã

được thực hiện trước a. Đặc tính P2 thể hiện tính liên tục
trong khi đánh số có nghĩa là không để lại khoảng trống
khi đánh số.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
5
Bộ tuần tự là đối tượng đồng bộ cung cấp cho mỗi
yêu cầu một số (hay còn gọi là một tíc kê) nhằm xác lập
trật tự tuần hoàn.
Một tiến trình muốn nhận giá trị tự bộ tuần hoàn S
thì nó phải gọi thủ tục (hoặc hàm) có tên là TICKET(S).
Mỗi một giá trị chỉ phục vụ cho một và chỉ một sự kiện
mà thôi.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
6
I.2. Ấn phong
Việc vận dụng tương đối tổng quát bộ tuần tự S
trong hệ phân tán là sự chuyển động giữa các trạm
một đối tượng duy nhất gọi là ấn phong chứa giá trị
hiện hành của bộ tuần tự. Khi một trạm có ấn
phong nó có thể thực hiện hàm TICKET(S).
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
7
I.3. Vòng tròn ảo
Để triển khai một ấn phong có kết quả, đầu tiên
ta cần phải xác định hành trình của nó trong mạng
máy tính như thế nào.
Phương pháp đơn giản nhất là lắp đặt các trạm
nằm trên một vòng tròn theo một chiều xác định.
Mỗi trạm chỉ được liên hệ với hai trạm gần nhất.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN

8
Xét một mạng gồm tập hợp N trạm được nối với
nhau và một trạm bất kỳ trong mạng có thể liên lạc với
các trạm khác trong mạng một cách dễ dàng. Mỗi trạm
trong mạng được phân phối một lần một số duy nhất từ
0 đến N-1. Một trạm i bất kỳ trong mạng sẽ có trạm
hàng xóm bên phải (hay trạm kế tiếp sau) mà số của
trạm đó là suc[i] và trạm hàng xóm bên trái (hay trạm
kề liền trước) mà số của nó là pred[i]. Lúc này
suc[i]=i+1 modulo N và pred[i]=i-1 modulo N. Sự mô tả
này kiến ta hình dung một vòng tròn ảo. Hình vẽ II.1
sau đây mô phỏng vòng tròn ảo giữa các trạm.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
9
3
1
6
07 2
5
4
Trạm đang
giữ ấn phong
(thẻ bài)
Hàng xóm
trái
Hàng xóm
phải
4
2
1

0
7
3
6
5
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
10
Một số nguyên tắc được đặt ra:

Ấn phong được cụ thể hoá trên một vài cấu hình của các
biến trạng thái và quay trên vòng tròn ảo luôn luôn theo
một chiều xác định.

Khi có sự cố xảy ra ở một trạm nào đó (giả sử trạm i) thì
cần xây dựng lại (cấu hình lại) vòng tròn để vòng tròn có
thể hoạt động tốt. Tức là phải cập nhật lại các giá trị của
suc[i] và pred[i] của hàng xóm bên phải và bên trái của
trạm bị sự cố.
Khi một trạm bị sự cố đã được khắc phục và hoạt động trở lại
thì nó có thể tham gia lại vào mạng thông qua phép chèn.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
11
I.4. Hai thuật toán di chuyển ấn phong
I.4.1. Ấn phong bằng biến trạng thái
Một tiến trình Pi được giao nhiệm vụ di chuyển ấn
phong cần tuân thủ các nguyên tắc sau đây:
1. Xét khi các trạm trong mạng không xảy ra sự cố
Một số nguyên K (K>1) được chọn trong tập hợp của hệ.
Trên trạm i với i


{0 N-1}, mỗi tiến trình Pi được giao
nhiệm vụ di chuyển ấn phong phải tuân thủ các quy tắc sau:
- Mỗi tiến trình Pi đều có biến trạng thái S[i]

{0 K-1},
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
12
- Mỗi biến S[i] đều được cấp nhật bởi tiến trình Pi và
có thể đọc bởi trạm kế tiếp sau (hàng xóm phải) của
Pi.
- Thuật toán di chuyển trạng thái ấn phong được thể
hiện như sau:
a. Tiến trình Pi có ấn phong chỉ khi:
S[i]

S[i-1], cho i

0
S[0]=S[N-1], cho i=0
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
13
Khi tiến trình Pi có ấn phong, thì nó phải bỏ ấn phong
sau một khoảng thời gian xác định và thay đổi
trạng thái của nó.
S[i]:=S[i-1], nếu i

0
S[i]:=S[i]+1 mod N, nếu i=0
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
14

Đây là trường hợp duy nhất mà tiến trình có thể cập
nhật các giá trị của mình. Quyền bình đẳng giữa
các trạm được đảm bảo khi tất cả các tiến trình Pi
đều sử dụng thuật toán này. Mỗi tiến trình đều
được nhận ấn phong khi đến phiên mình và vì ấn
phong trong mạng là duy nhất nên nếu một trạm
sau khi nhận được ấn phong nhưng lại không vào
đoạn găng thì phải lập tức giải phóng nó.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
15
Xét khi có xảy ra sự cố ở một trạm nào đó trong mạng.
Để đưa một trạm bị sự cố đã được khắc phục xong vào
mạng, lúc này ta phải định lại cấu hình của vòng tròn ảo.
Sau đó, tiến trình cần phải khởi động lại S[i], miễn là trạm
j=suc[i] không được phép đọc biến S[j] của mình trong thời
gian vào đoạn găng. Có nghĩa là:
Nếu j<i thì S[i]:=S[j] -1 mod K
Ngược lại S[i]:=S[j]
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
16
I.4.2. Jecton tuần hoàn
Ý tưởng: Thuật toán thứ hai [Le Lann], ấn phong được cụ
thể hóa bằng một thông điệp đặc biệt gọi là Jeton (thẻ bài)
tuần hoàn trên vòng tròn. Như thế, việc sự cố trên trạm có
thể dẫn đến mất Jeton. Các biến trạng thái được duy trì trên
mỗi trạm cho phép tái sinh Jeton trong trường hợp bị mất.
Thuật toán được triển khai dựa trên ý tưởng này là:
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
17
1. Jeton mang giá trị là

ν
. Mỗi trạm j có một biến trạng thái
S[j]. Trước khi phát lại một Jeton vào mạng, các tác động
như sau được thực hiện:
S[j]:=
ν
Cho j≠0
ν
:=
ν
+1 mod k; S[j]:=
ν
Cho j=0
2. Mỗi một lần di chuyển jeton trên trạm j, một đồng hồ bảo vệ
được trang bị. Nếu nó được phát động trước khi Jeton đến
thì j tham chiếu đến biến trạng thái S[j] của trạm kề liền
trước i=pred(i) trên vòng tròn.
PHẦN I. LÝ THUYẾT VỀ BỘ TUẦN TỰ TUẦN HOÀN
18
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
I. Giới thiệu về bộ tuần tự trên kênh lan truyền

Xét trường hợp liên lạc giữa các trạm được thực
hiện bởi một kênh lan truyền duy nhất. Các trạm
được nối với nhau bởi thiết bị truyền thông (TBTT).
Việc cạnh tranh truy cập đường truyền, việc xử lý
các xung đột và việc nhận các thông điệp được thực
hiện thông qua TBTT. Và theo thiết kế, một lúc chỉ
có một thông điệp được truyền.
19


Ta giả sử rằng mỗi TBTT truyền các thông điệp vào
đường truyền theo trình tự mà trạm liên lạc với nó
xác định và truyền lại trạm này các thông điệp từ
đường truyền, kể cả các thông điệp của chính nó.
Ngoài ra, ta còn giả định là đường truyền không hề
làm mất mát thông điệp và các TBTT đều sắp xếp
các thông điệp theo một trật tự giống nhau.
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
20
TBTT
K2
J3
K1
J2
I1
J1
Trạm I
I1
I2
TBTT
J1
J2
J3
Trạm J
K2
J3
K1
J2
I1

J1
TBTT
K1
K2
K3
Trạm K
K2
J3
K2
J2
I1
J1
Trật tự cục
bộ (hàng
đợi vào)
Trật tự
toàn cục
(hàng đợi
ra)
Hình II.1.
Triển khai bộ tuần tự trên kênh truyền
Để thực hiện một bộ tuần tự phân tán S, trạm i nào đó cần phải
duy trì công tơ cục bộ và thực hiện cùng một thuật toán
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
21
II. Thuật toán triển khai phép toán Ticket()
1. Hoạt động của hệ thống không có sự cố
- Khi có một tiến trình trên một trạm muốn gọi phép toán
Ticket(S) thì phải có một yêu cầu đặt vào trong hàng đợi vào
của thiết bị truyền thông (TBTT). Tiến trình yêu cầu đó cần

phải đợi cho đến khi yêu cầu của nó xuất hiện trong hàng
đợi của TBTT: tại thời điểm đó, yêu cầu này đã được lan
truyền và nó được sắp xếp cùng với các yêu cầu khác.
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
22
- Trạm i xử lý tất cả các yêu cầu Ticket(S) đang có
trong hàng đợi của TBTT của nó. Mỗi khi có một
yêu cầu đến từ một trong các trạm khác, thì trạm i
sẵn sàng tăng nội dung công tơ cục bộ của mình
lên. Khi có một yêu cầu nào đó đến từ một trong các
tiến trình của chính trạm i thì tiến trình này nhận
giá trị hiện hành của công tơ cục bộ và công tơ này
tăng lên một số gia.
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
23
2. Xử lý trong trường hợp có sự cố
Sự cố hay gián đoạn vật lý tại một trạm nào đó được
phát hiện sẽ ngay lập tức thông báo đến tất cả các trạm có ý
định liên lạc với nó (trạm bị sự cố sẽ không lien lạc được với
mạng). Chính vì vậy mà sự cố xảy ra với trạm chưa vào
được trong đoạn găng không làm rối loạn hoạt động của
giải thuật với điều kiện là nó gây ra việc truyền thông điệp
vang_mat (vắng) cho việc chuyển tải ở tầng giao vận.
Do có trang bị như thế, việc vào đoạn găng trở nên
không được nhanh chóng và dễ dàng cho các trạm khác.
Nếu trạm có sự cố đã gởi yêu cầu, thì nó kết thúc với lý do
trở thành trước đối với tất cả các trạm khác.
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
24
- Khi một trạm lại được đưa vào trong mạng sau khi đã khắc

phục sự cố, nó cần phải kiến tạo lại trạng thái hiện hành
của các yêu cầu. Để đảm bảo điều đó, nó phát đi thông điệp
vao_lai (xin vào lại) và để trả lời, các trạm gởi hoặc thời
gian của yêu cầu cuối cùng của nó REQ không được thỏa
mãn (nếu có tồn tại một REQ) hoặc một thông điệp REL.
Mạng cần phải bổ khuyết cho các trạm bị sự cố bằng cách
gởi thông điệp vang_mat. Khi nó đã nhận tất cả các trả lời
cho thông điệp vao_lai, trạm vừa đưa vào đó có thể bắt đầu
lại bằng các yêu cầu
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ
25
Để có thể tự tham gia lại công việc trong mạng sau sự cố,
trạm i phải gởi yêu cầu vào lại cho một trạm nào đó
trong số các trạm còn lại, ví dụ như j chẳng hạn và đặt
mình vào trạng thái lắng nghe đường truyền trong
hàng đợi của TBTT của mình. Trạm j sẽ gởi cho nó một
thông điệp đồng bộ để cập nhật. Khi thông điệp này
xuất hiện trong hàng đợi của TBTT, thì:
1. Trạm j là trạm cần phải gởi thông điệp cho i hiểu rằng
nó phải gởi giá trị hiện hành của công tơ của nó.
Phần II. GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ

×