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

Tiểu luận môn hệ phân tán Tài nguyên và chiến lược cung cấp tài nguyên

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 (737.49 KB, 28 trang )


BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
 
BÁO CÁO TIỂU LUẬN
BÁO CÁO TIỂU LUẬN
HỆ TIN HỌC PHÂN TÁN
HỆ TIN HỌC PHÂN TÁN
TÀI NGUYÊN VÀ CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN
THUẬT TOÁN LOMET VÀ MANASCE
Thực hiện : Đào Thị Diệu Nhơn
Giảng dạy: PGS.TS. LÊ VĂN SƠN
Đà Nẵng, 25-07- 2009
ĐỀ TÀI :


Hệ tin học phân tán là một hệ thống xử lý thông tin
bao gồm nhiều bộ xử lý, bộ vi xử lý với bộ nhớ và
đồng hồ nhịp độc lập.

Để khai thác có hiệu quả cao nhất của hệ thống
thông tin, vấn đề hàng đầu là phải tính đến các chiến
lược cung cấp, khai thác, sử dụng tài nguyên.
MỞ ĐẦU


Tài nguyên
Tài nguyên

Các chiến lược cung cấp tài nguyên
Phần 1: Tài nguyên


và các chiến lược cung cấp tài nguyên

1.1.Tài nguyên_Một số khái niệm

Tài nguyên như là một đối tượng mà trong đó các
quy tắc sử dụng và chia sẻ được kết hợp với nhau.
Đó là vấn đề quyền truy cập loại trừ hay truy cập chia
sẻ, có hạn chế người sử dụng hay không,…

Tài nguyên truy cập theo kiểu loại trừ chỉ cung cấp
cho một giao dịch.

Tài nguyên truy cập theo kiểu chia sẻ được cung
cấp cho một tập hợp bất kỳ các giao dịch.

1.1.Tài nguyên_Một số khái niệm

Giao dịch là phép toán hợp thành một logic hoàn
chỉnh mà việc triển khai nó có thể dẫn đến thực hiện
một tiến trình duy nhất hay nhiều tiến trình được định
vị trên các trạm khác nhau.

Một tiến trình nào đó cần sử dụng tài nguyên phải yêu
cầu cung cấp hợp thức bằng cách gởi thông điệp yêu
cầu cho hệ thống.

Bộ cung cấp áp dụng nhiều kiểu cung cấp khác nhau
như tiến trình duy nhất, tập hợp các tiến trình, tập hợp
các thủ tục, để cung cấp tài nguyên cho các trạm.


1.1.Tài nguyên_Một số khái niệm

Tải
là tập hợp các yêu cầu phục tùng các quy tắc của
một bộ cung cấp.

Các tham số của
tải
là:
1.Số lượng các yêu cầu được cung cấp tài nguyên.
2.Bản chất của các yêu cầu.
3.Phân tán theo thời gian các yêu cầu tạo ra nó.

1.1.Tài nguyên_Một số khái niệm

Bế tắc (hay gọi là khóa tương hỗ) là sự kẹt chéo lẫn nhau có
tính chất sống còn của các tiến trình.

Bế tắc diễn ra khi hai tiến trình đang sử dụng tài nguyên lại phát
yêu cầu về nhu cầu sử dụng tài nguyên mà tiến trình kia còn
đang sử dụng.

Thiếu tài nguyên vĩnh viễn là sự chờ đợi bất tận của một tiến
trình mà yêu cầu của nó trể đến mức không thể xác định được.

Ví dụ về sự bế tắc:
T1
T2
T4
T3

Tr1 Tr2 Tr3


Chiến lược cung cấp tài nguyên duy nhất
1.
1.
Truy cập bằng một tiến trình
Truy cập bằng một tiến trình
2.
2.
Truy cập bằng các tiến trình tương tranh
Truy cập bằng các tiến trình tương tranh

Chiến lược cung cấp một tập hợp các tài nguyên
1.Các phương pháp sử dụng trong hệ tập trung
2.Phân tán chức năng cung cấp
3.Các phương pháp sử dụng trạng thái tổng quát
4.Phương pháp cung cấp theo kiểu sử dụng trạng thái
từng phần
1.2.Chiến lược cung cấp tài nguyên

1.2.Chiến lược cung cấp tài nguyên
1.2.1.cung cấp tài nguyên duy nhất

Truy cập bởi server duy nhất
Tr2
Trn
Tr1
D
Sn


S2
S1

T
S1
Tr1
S2
Tr2
Sn
Trn

T
KiÓm tra truy
cËp

Truy cập tương tranh có điều khiển:
Truy cập tài nguyên bằng một
chương trình trực duy nhất
Truy cập trực tiếp vào các server
Server
T
Tr1
Tr2
Tr3

1.2.Chiến lược cung cấp tài nguyên
1.2.2.Cung cấp một tập hợp các tài nguyên

Các phương pháp sử dụng trong hệ tập trung:

A.Phương pháp dự phòng
Các tài nguyên được sắp xếp theo các nhóm con,
một tiến trình nào đó chỉ có thể thu hồi các tài
nguyên của nhóm nếu trước đó nó đã thu hồi tất cả
tài nguyên của nhóm cần thiết cho nó.
B.Phương pháp phát hiện và chữa trị:
Sử dụng đồ thị trạng thái định hướng mà các nút là
các tài nguyên hay tiến trình. Khi phát hiện bế tắc
thì vấn đề chữa trị được đặt ra.

1.2.Chiến lược cung cấp tài nguyên
1.2.2.Cung cấp một tập hợp các tài nguyên

Phân tán chức năng cung cấp(mỗi bộ cung cấp chỉ quản lý
các đối tượng cục bộ của mình)
A.Duy trì tính duy nhất của trạng thái tài nguyên:
Tài nguyên được chia sẻ bởi tập hợp các bộ cung cấp và
chúng tuần hoàn giữa các trạm khác nhau dưới dạng một
thông điệp. Các trạm được luân phiên đóng vai trò của bộ
cung cấp các tài nguyên mà mình đang chịu trách nhiệm
quản lý.
B.Phân tán biểu hiện trạng thái và chức năng cung cấp:
Duy trì và phân tán tại mỗi trạm một bản sao trạng thái
tài nguyên tổng quát. Mỗi trạm chỉ có trạng thái tài
nguyên cục bộ của mình và các quyết định đưa ra trên
các trạm phải được phối hợp, gắn bó hữu cơ giữa các bản
sao.

1.2.Chiến lược cung cấp tài nguyên
1.2.2.Cung cấp một tập hợp các tài nguyên


Các phương pháp cung cấp sử dụng trạng thái tổng quát.
Trên cơ sở thực hiện cùng một thuật toán và có cùng
thông tin, mỗi trạm ra quyết định cung cấp căn cứ vào
bản sao trạng thái cục bộ của nó. Việc cung cấp cho tiến
trình đề nghị sẽ được thực hiện ngay trên trạm có tài
nguyên.

Các phương pháp cung cấp theo kiểu sử dụng trạng thái
từng phần:
Mỗi trạm chỉ quản lý tài nguyên cục bộ của mình và các
quyết định cung cấp được đưa ra trên thông tin cục bộ đó
mà thội.


Thuật toán Lomet (dự phòng bế tắc)
Thuật toán Lomet (dự phòng bế tắc)
1.
1.
Các khái niệm
Các khái niệm
2.
2.
Thuật toán
Thuật toán
3.
3.
Ví dụ minh họa
Ví dụ minh họa


Thuật toán Menasce (phát hiện bế tắc)
1.
1.
Các khái niệm
Các khái niệm
2.
2.
Thuật toán
Thuật toán
3.
3.
Ví dụ minh họa
Ví dụ minh họa
Phần 2: Thuật toán Lomet và Menasce nhằm
xử lý cung cấp tài nguyên
(của 2 nhóm tài nguyên: loại trừ và chia xẻ)


Một quan hệ gọi là phụ thuộc thế năng giữa 2 giao dịch
T
j


T
k
, kí hiệu
T
j
>T
k

, nghĩa là tồn tại ít nhất một tài nguyên bị
cài then bởi
T
j
và là thành phần thuộc thông điệp của
T
k
.

Một quan hệ gọi là chặn thế năng

giữa 2 giao dịch
T
j

T
k
,
kí hiệu
T
j
<>

T
k
, nghĩa là tất cả tài nguyên thuộc tập hợp theo
yêu cầu của thông điệp
T
k
đều bị cài then bởi

T
j
.

Hai quan hệ này có thể biểu diễn bằng đồ thị
G
, biến thiên
theo thời gian gọi là đồ thị các xung đột thế năng. Nếu tồn
tại vòng lặp trong đồ thị
G
này thì sẽ sinh ra bế tắc.

Sự xung đột giữa hai giao dịch
T
j

T
k
là sự nhận thông điệp
yêu cầu cung cấp tài nguyên của
T
j

T
k
đúng vào cùng một
thời điểm. Nếu ta ký hiệu
D
là khoảng cách giữa thời điểm
nhận thông điệp

T
j

T
k
thì sự xung đột sẽ xãy ra khi
D = 0
.
2.1.Thuật toán Lomet _dự phòng bế tắc
2.1.1. Các khái niệm

2.1.Thuật toán Lomet _dự phòng bế tắc
2.1.2. Thuật toán


Xét ba giao dịch
T
1
, T
2
, T
3
sử dụng ba tài nguyên
R
1
, R
2
, R
3
,

các
tài nguyên được bố trí trên ba trạm tương ứng
S
1
, S
2
, S
3
.

Giả sử v_chia_se_th() là phép toán cài then có tính chia sẻ,
v_loai_tru_th() là phép toán cài then có tính loại trừ và
a_th() là yêu cầu cung cấp tài nguyên e hay là phép toán
thông điệp:
2.1.Thuật toán Lomet _dự phòng bế tắc
2.1.3. Ví dụ minh họa

2.1.Thuật toán Lomet _dự phòng bế tắc
2.1.3. Ví dụ minh họa

Tại trạm
S1
có đồ thị
G1
:

Tại trạm
S2
có đồ thị
G2

:

Tại trạm
S3
có đồ thị
G3
:
T3
T1R2
e
e
T1
T2
R3
e
e
T3 R1
T1
T2
s
s
e
Nếu các lệnh thực hiện theo tình tự
t11–t21–t31–t12– t22 – t32
thì ta có ảnh của đồ thị tại các trạm như sau:

2.1.Thuật toán Lomet _dự phòng bế tắc
2.1.3. Ví dụ minh họa
Ba đồ thị trên không phát hiện bế tắc , nhưng nếu ở hệ
tập trung hay trạng thái không từng phần ta có đồ thị bên

và nó đã phát sinh bế tắc
T3 R1
T1
T2
R2 R3
s
s
e
e e
e
e
Ti Rj
RrTs
Cung tiÕn tr×nh ®ang
n¾m gi÷ tµi nguyªn
Cung tiÕn tr×nh ®ang
®îi tµi nguyªn
s: Truy cËp chia sÎ e:Truy cËp lo¹i trõ

2.1.Thuật toán Lomet _dự phòng bế tắc
2.1.3. Ví dụ minh họa
Quá trình vận hành thuật toán được minh họa qua ví dụ
trên như sau:

Khi
T
1
thực hiện
t
12

:
v_loai_tru_th(R
3
), v_chia_se_th(R
1
)
Trong đó có
v_loai_tru_th(R
3
)
yêu cầu này vào xung đột với thông
cáo
a_th(R
3
)
thực hiện bởi
T
2
. Như vậy, cung
T
2
-R
3
-T
1
được thành lập
trong
G
. Lúc này yêu cầu vẫn được chấp nhận, vì giao dịch
T

1
>>T
2
.

Yêu cầu
t
22
: v_chia_se_th(R
1
)
được chấp nhận, vì tài nguyên này
được
T
1
truy cập theo kiểu chia sẻ nên hoàn toàn cho giao dịch khác
truy cập chia sẻ.

Yêu cầu
t
32
: v_loai_tru_th(R
2
)
bị từ chối vì nó tạo ra vòng lặp trên
S
2
. (Nhưng nếu trật tự giao dịch theo dạng
T
1

, T
2
, T
3
thì yêu cầu vừa
nêu có thể được chấp nhận)

2.2.Thuật toán Menasce _phát hiện bế tắc
2.2.1. Các khái niệm

Trong mọi thời điểm giữa hai giao dịch
T
j

T
k
quan hệ
trực tiếp như sau:
T
j
>T
k
,

nghĩa là tồn tại ít nhất một tài
nguyên bị cài then bởi
T
j

và yêu cầu bởi

T
k
nhưng không
được đáp ứng.

Quan hệ này được biểu hiện bằng một đồ thị gọi là
đồ thị
các xung đột hữu hiệu.

Sự tồn tại một vòng lặp trong đồ thị các xung đột hữu
hiệu báo hiệu sẽ có bế tắc diễn ra.

Một giao dịch
“không bị chặn”
, nghĩa là, được biểu diễn
bằng một nút trong đồ thị mà tại đó không có cung nào
dẫn đến.

2.2.Thuật toán Menasce _phát hiện bế tắc
2.2.1. Các khái niệm

Giả sử
T
k
là một giao dịch bị chặn:
-Tập hợp các chặn của
T
k
, ký hiệu:
E(T

k
).
-
Tập hợp các giao dịch bị chặn do
T
k
, kí hiệu:
B(T
k
)


Đồ thị các xung đột hữu hiệu chứa vòng lặp nếu và chỉ nếu tồn tại giao dịch
T
k

mà tập hợp chặn của nó chứa một giao dịch bị chặn bởi
T
k
:
∃ k: B(T
k
) ∩ E(T
k
) ≠ ∅

{Tồn tại vòng lặp}
Ví dụ: Cho đồ thị các xung đột hữu hiệu như sau:
Các giao dịch không bị chặn là T
3

, T
4
, T
5
.Ta có:
E(T
1
) = {T
2
, T
3
, T
4
, T
5
}
B(T
5
) = {T
1
, T
2
}
T1
T2
T3
T4
T5

2.2.Thuật toán Menasce _phát hiện bế tắc

2.2.2. Thuật toán

Ký hiệu
S(Tk)
trạm nguồn của giao dịch
Tk
. Việc cập nhật
E(Tk)
cần phải được biểu hiện trên tất
cả các trạm nguồn của các giao dịch thuộc
B(Tk).
sử
T
k
là một giao dịch bị chặn:

Giả sử Tk đã yêu cầu một tài nguyên e của trạm Si nào đó.
Trên trạm này ta thực hiện các
phép toán sau đây:
STT Phép toán
1 Nếu
e
là có sẵn để dùng, yêu cầu được thoả mãn và
ta ghi nhận là
T
k
đang có tài nguyên.
2 Nếu e đã được cung cấp cho giao dịch
T
j

thì thông
điệp
“T
j
chặn T
k

được truyền cho trạm
S(T
j
)

S(T
k
). Sau này
(j,k)
chỉ là một thông điệp như vậy.

2.2.Thuật toán Menasce _phát hiện bế tắc
2.2.2. Thuật toán
Khi nhận một thông điệp (j,k) trên một trạm S, ta thực hiện các động tác:
1. Trên trạm S(T
j
) nguồn của giao dịch chặn T
j
, ta thêm T
k
vào tập hợp B(T
j
) và kiểm

tra rằng không phát sinh bế tắc, nghĩa là:
B(T
j
)

E(T
j
) =


Ta gửi tiếp thông điệp (l,k) về phía các trạm nguồn của các giao dịch T
l
và T
j
để cho
phép các trạm S(T
l
) cập nhật E(T
l
), B(T
l
) của các giao dịch bị chặn bởi T
l
. Song song
với tác động trên, các thông điệp (l,k) được gửi về trạm nguồn của các giao dịch T
k
để
cập nhật E(T
k
) của các giao dịch chặn T

k
.
2.Trên trạm
S(Tk)
nguồn của giao dịch bị chặn
Tk
, ta thêm
Tj
cho tập hợp
E(Tk)
và kiểm tra không có bế tắc, nghĩa là:
B(Tk) ∩ E(Tk) = ∅
Ta gửi tiếp tục thông điệp
(j,m)
về phía các trạm nguồn của các giao dịch
Tm

bị chặn bởi
Tk
nhằm cho phép các trạm
S(Tm)
cập nhật các tập hợp
E(Tm)

của các giao dịch chặn
Tm
.

2.2.Thuật toán Menasce _phát hiện bế tắc
2.2.3. Ví dụ minh họa

T
1
: Trên S
3
đề nghị cung cấp e
3
có trên T
3
; S
3
gửi (3,1) cho S
1
và S
3
, ta có:
E(T
1
)= {T
3
} B(T
1
)=

B(T
3
)= {T
1
} E(T
3
)=


T
2
: Trên S
1
đề nghị cung cấp e
1
có trên T
1
; S
1
gửi (1,2) cho S
1
và S
2
, ta có:
E(T
2
)= {T
1
} B(T
2
)=

E(T
1
)= {T
3
} B(T
1

)= {T
2
}
S
1
gửi (2,3) cho S
3
và từ đó sinh ra:
E(T
2
)= {T
1
,T
3
} B(T
2
)=


2.2.Thuật toán Menasce _phát hiện bế
tắc
2.2.3. Ví dụ minh họa
T
3
: Trên S
2
đề nghị cung cấp e
2
có trên T
2

; S
2
sinh ra T
3
trong B(T
2
) (nghĩa là
B(T
2
)= {T
3
}) và ta ghi nhận là:
B(T
2
)

E(T
2
) = {T
3
}
Như vậy, bế tắc được phát hiện trên S
2
.
T1
T2
T3

×