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

Tiểu luận môn hệ phân tán TÌM HIỂU XỬ LÝ BẾ TẮC CỦA HỆ PHÂN TÁ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 (470.04 KB, 19 trang )

1
BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
BÀI TIỂU LUẬN
HỆ PHÂN TÁN
Giảng viên: PGS TS. Lê Văn Sơn
Học viên : Võ Đức Hoàng
Lớp: Khoa học máy tính K10
2
Nội dung trình bày
Phần 1
Phần 1
LÝ THUYẾT
Phần 2
Phần 2
BÀI TẬP

Khái quát về bế tắc

Các thuật toán phát hiện và ngăn chặn bế tắc

Trình bày giải pháp kết hợp các bộ tuần tự cho
mỗi tài nguyên găng trên một jeton tuần hoàn
để ngăn chặn bế tắc.
3
Khái quát về bế tắc
Một tập các tiến trình bị bế tắc nếu mỗi tiến trình
trong tập tiến trình chờ một sự kiện mà chỉ có tiến trình
khác trong tập các tiến trình đó tạo ra.
Định nghĩa bế tắc:
Tất cả các tiến trình đều đang chờ, không một tiến trình nào trong


chúng có thể tạo ra bất kỳ một sự kiện nào để có thể đánh thức tiến
trình khác trong tập tiến trình, vì vậy tất cả các tiến trình tiếp tục chờ
mãi mãi.
4
Khái quát về bế tắc
Điều kiện xảy ra bế tắc
1. Có sử dụng tài nguyên không thể chia sẻ (Mutual
exclusion):
2. Sự chiếm giữ và yêu cầu thêm tài nguyên (Wait for)
3. Không thu hồi được tài nguyên từ tiến trình đang giữ
chúng (No preemption):
4. Tồn tại một chu kỳ chờ trong đồ thị cấp phát tài nguyên
(Circular wait)
5
Đồ thị cấp phát tài nguyên

P
P đang giữ R
R

P
P yêu cầu R
R
Một tình huống không bế tắc

R3

P1
R2


P2

P3

R1

R4
Một tình huống bế tắc
6
Các phương pháp xử lý bế tắc

Sử dụng một giao thức (protocol) để hệ thống không
bao giờ xảy ra bế tắc.

Cho phép xảy ra bế tắc và tìm cách sửa chữa bế tắc.

Hoàn toàn bỏ qua bế tắc, xem như hệ thống không bao
giờ xảy ra bế tắc.
7
Ngăn chặn bế tắc
Để bế tắc không xảy ra cần đảm bảo tối thiểu một
trong 4 điều kiện cần không xảy ra
1. Tài nguyên không thể chia sẻ
2. Sự chiếm giữ và yêu cầu thêm tài nguyên
3. Thu hồi tài nguyên
4. Tồn tại một chu kỳ
8
Thuật toán phát hiện bế tắc
Gọi R = { R1, R2, , Rn } là tập các loại tài nguyên
Các loại tài nguyên được phân thứ tự từ 1 – N, thứ tự có thể là thứ

tự logic mà tài nguyên thường yêu cầu. Ký hiệu F(Ri)
Các tiến trình khi yêu cầu tài nguyên phải tuẩn thủ quy định: khi
tiến trình đang bị chiếm giữ tài nguyên Ri thì có thể yêu cầu các tài
nguyên Rj nếu F(Rj) > F(Ri).
1
9
Thuật toán phát hiện bế tắc
Tk là một giao dịch bị chặn .
E(Tk) là tập hợp các chặn của Tk.
B(Tk) là tập hợp các giao dịch bị chặn do 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 Tk:
k: B(Tk) E(Tk) {Tồn tại vòng lặp}
2



10
Thuật toán phát hiện bế tắc
Ví dụ : Cho đồ thị các xung đột hữu hiệu
như sau:
Các giao dịch không chặn là T3, T4, T5
Ta có:
E(T1) = { T2, T3, T4 T5 }
B(T5) = { T1, T2 }
T
1
T
2

T
5
T
3
T
4
11
Thuật toán phát hiện bế tắc
Xét 3 trạm S
1
, S
2
và S
3
. Mỗi trạm S
i
chứa đối tượng e
i
và là
nguồn của giao dịch T
i

T
1
T
2
T1 trên S2 đề nghị cung cấp e2 có trên T2;
S2 gửi (2,1) cho S1 và S2, từ đó ta có:
T2 trên S3 đề nghị cung cấp e3 có trên T3;
S3 gửi (3,2) cho S2 và S3, từ đó ta có :

E(T1) = {T2} B(T1) = 0
B(T2) = {T1} E(T2) = 0
T
3
E(T2) = {T3} B(T2) = {T1}
B(T3) = {T2} E(T3) = 0
S2 gửi (3,1) cho S1 và từ đó sinh ra:
E(T1) = {T2, T3} B(T1) = 0
T3 trên S3 đề nghị cung cấp e1 có trên T1;
S1 sinh ra T3 trong B(T1) và ta ghi nhận là:
E(T1) = {T2, T3} B(T1) = {T3}
Bế tắc
12
Theo phương pháp Le Lann, người ta phối hợp một bộ
tuần tự cho một tài nguyên găng, ví dụ Sa, Sb, Sc, Người ta
nhóm các bộ tuần tự trên một jeton duy nhất.
Bạn hãy chứng minh rằng để triển khai một chiến lược
cung cấp không có rủi ro về bế tắc, người ta chỉ cần rút một số
cho một tài nguyên cần thiết khi jeton chạy qua.
BÀI TẬP
13
Các khái niệm
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ố nhằm xác lập trật tự.
Để cho 2 yêu cầu kế tiếp nhau thì 2 số liên tục nhau được cung
cấp. Giá trị 0 được cấp cho yêu cầu đầu tiên.
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 của 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ự.

2
1
3
4
50
14
Chứng minh
Các bộ tuần tự Si tương ứng cho tài nguyên găng Ri, trong đó i ∈ [1 n], n
là số lượng tài nguyên.
Mỗi bộ tuần tự Si bao gồm :
+ Các tiến trình truy cập tài nguyên này là Pj, trong đó j ∈ [1 k]
+ Tình trạng tài nguyên : TinhTrang(Ri) bao gồm 2 giá trị là (True, Pj) và
(False,0)
• Đang sử dụng (True, Pj) : Giá trị True là đang bị sử dụng và Pj là tiến
trình đang sử dụng tài nguyên Si
• Đang giải phóng (False,0) : Không có tiến trình nào sử dụng
2
1
3
4
50
15
Chứng minh
Bế tắc xảy ra nếu 4 điều kiện sau xuất hiện đồng
thời:
+ C1: Loại trừ lẫn nhau
+ C2: Giữ và chờ
+ C3: Không có đặc quyền
+ C4: Chờ vòng
Ta cần chứng minh khi Jeton chạy qua tài nguyên

Ri chỉ cần rút ra một số thì sẽ được chiến lược cung
cấp không có rủi ro về bế tắc => không xuất hiện
đồng thời C1, C2, C3,C4
16
Chứng minh
Khi Jeton tuần hoàn trên mạng đến tài nguyên Ri thuật toán được thể hiện
như sau :
Kiểm tra tình trạng tài nguyên Ri
+ Nếu TinhTrang(Ri) = (True, Pj) : bỏ qua tài nguyên Ri
+ Nếu TinhTrang(Ri) = (False, 0) : chiếm giữ và sử dụng tài nguyên Ri
Bắt đầu
if Ktra( Ri ) = True bỏ qua không chiếm giữ tài nguyên Ri
else
ChiemGiu( Ri )
TinhTrang(Ri)= (True, Pj )
Kết thúc
17
Trong đó thủ tục Ktra( Ri ) được thực hiện như sau:
Ktra( Ri ) = False
Vòng lặp
Nếu TinhTrang(Ri) = (True, Pj ) thì Ktra(Ri ) = True
j : = j + 1 nếu j < k
Kết thúc vòng lặp
18
Ví dụ
Ta có ba tài nguyên R1, R2, R3 và năm tiến trình đòi hỏi tài
nguyên là P1, P2, P3, P4, P5.
1
1
1

Jeton tuần hoàn trên mạng chứa các bộ tuần tự của tài
nguyên :
- S1 : (P1, P2, P4) và tình trạng (False,0)
- S2 : (P3, P4, P5) và tình trạng (False,0)
- S3 : (P1, P4, P5) và tình trạng (False,0)
19
CẢM ƠN QUÝ THẦY CÔ
VÀ CÁC BẠN ĐÃ CHÚ Ý
LẮNG NGHE!
THE END

×