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

TÀI NGUYÊN VÀ CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN THUẬT TOÁN LOMET VÀ MANASCE

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 (608.6 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
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
GVHD : PGS. TS. LÊ VĂN SƠN
Học viên : NGUYỄN MINH QUỲNH
Lớp : KHMT.K26
Đà Nẵng, 06/2013
ĐỀ TÀI :
MỞ ĐẦU

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.
Phần 1: Tài nguyên
và các chiến lược cung cấp tài nguyên

Tài nguyên

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à:

Số lượng các yêu cầu được cung cấp tài nguyên.

Bản chất của các yêu cầu.


Phân tán theo thời gian các yêu cầu tạo ra nó.

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:
1.1.Tài nguyên_Một số khái niệm
T1
T2
T4
T3
Tr1 Tr2 Tr3
1.2.Chiến lược cung cấp tài nguyên

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

Truy cập bằng một tiến trình

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

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


Phân tán chức năng cung cấp

Các phương pháp sử dụng trạng thái tổng quát

Phương pháp cung cấp theo kiểu sử dụng trạng thái từng phần
1.2.1.cung cấp tài nguyên duy nhất

Truy cập bởi server duy nhất

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
Tr2
Trn
Tr1
D
Sn

S2
S1

T
S1

Tr1
S2
Tr2
Sn
Trn

T
KiÓm tra truy
cËp
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.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.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.
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 sẽ)

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

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


Một quan hệ gọi là phụ thuộc thế năng giữa 2 giao dịch Tj và Tk, kí
hiệu Tj>Tk, nghĩa là tồn tại ít nhất một tài nguyên bị cài then bởi Tj
và là thành phần thuộc thông điệp của Tk.

Một quan hệ gọi là chặn thế năng giữa 2 giao dịch Tj và Tk , kí hiệu
Tj <> Tk, 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 Tk đều bị cài then bởi Tj .

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 Tj và Tk là sự nhận thông điệp yêu cầu
cung cấp tài nguyên của Tj và Tk đú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 Tj và Tk
thì sự xung đột sẽ xãy ra khi D = 0.
2.1.2. Thuật toán
2.1.3. Ví dụ minh họa

Xét ba giao dịch T1, T2, T3 sử dụng ba tài nguyên R1, R2, R3, các tài
nguyên được bố trí trên ba trạm tương ứng S1, S2, S3.

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.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:
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:
T3 R1
T1
T2
s
s
e
T3
T1R2
e
e
T1
T2
R3
e
e
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
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
T1

thực hiện
t12
:
v_loai_tru_th(R3), v_chia_se_th(R1)
Trong đó có
v_loai_tru_th(R3)
yêu cầu này vào xung đột với thông cáo
a_th(R3)
thực hiện bởi
T2
. Như vậy, cung
T2-R3-T1
đượ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
T1>>T2.

Yêu cầu
t22: v_chia_se_th(R1)
được chấp nhận, vì tài nguyên này được
T1
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
t32: v_loai_tru_th(R2)
bị từ chối vì nó tạo ra vòng lặp trên
S2
.
(Nhưng nếu trật tự giao dịch theo dạng

T1, T2, T3
thì yêu cầu vừa nêu có
thể được chấp nhận)
2.2.1. Các khái niệm

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

Tk
quan hệ trực
tiếp như sau:
Tj>Tk
, nghĩa là tồn tại ít nhất một tài nguyên bị
cài then bởi
Tj
và yêu cầu bởi
Tk
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.1. Các khái niệm

Giả sử
Tk
là một giao dịch bị chặn:

Tập hợp các chặn của
Tk
, ký hiệu:
E(Tk).

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


Đồ 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
Tk
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(Tk) ∩ E(Tk) ≠ ∅

{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à T3, T4, T5.Ta có:

E(T1) = {T2, T3, T4, T5}
B(T5) = {T1, T2}
T1
T2
T3
T4
T5
2.2.2. Thuật toán
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à
Tk
đang có tài nguyên.
2 Nếu e đã được cung cấp cho giao dịch
Tj
thì thông
điệp
“Tj chặn Tk”
được truyền cho trạm
S(Tj)

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

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ử
Tk
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:

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(Tj) nguồn của giao dịch chặn Tj, ta thêm Tk vào tập hợp B(Tj) và
kiểm tra rằng không phát sinh bế tắc, nghĩa là:
B(Tj)

E(Tj) =


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 Tl và Tj để cho
phép các trạm S(Tl) cập nhật E(Tl), B(Tl) của các giao dịch bị chặn bởi Tl. 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 Tk để
cập nhật E(Tk) của các giao dịch chặn Tk.

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.3. Ví dụ minh họa
T1: Trên S3 đề nghị cung cấp e3 có trên T3; S3 gửi (3,1) cho S1 và S3, ta có:
E(T1)= {T3} B(T1)=

B(T3)= {T1} E(T3)=

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

E(T1)= {T3} B(T1)= {T2}
S1 gửi (2,3) cho S3 và từ đó sinh ra:
E(T2)= {T1,T3} B(T2)=

2.2.3. Ví dụ minh họa
T3: Trên S2 đề nghị cung cấp e2 có trên T2; S2 sinh ra T3
trong B(T2) (nghĩa là B(T2)= {T3}) và ta ghi nhận là:
B(T2)

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

T1
T2
T3

×