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
Trang 1BỘ 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
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
Trang 2Nội dung trình bày
Phần 1 LÝ THUYẾT
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.
Trang 3Khá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
Trang 4Khá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)
Trang 5Đồ thị cấp phát tài nguyên
Một tình huống không bế tắc
P1
R2
Một tình huống bế tắc
Trang 6Cá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
Trang 7Ngă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ỳ
Trang 8Thuậ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
Trang 9Thuậ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
Trang 10Thuậ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 }
T1
T2
T5
Trang 11Thuật toán phát hiện bế tắc
Xét 3 trạm S1, S2 và S3 Mỗi trạm Si chứa đối tượng ei và là
nguồn của giao dịch Ti
T1
T2
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
T3
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
Trang 12Theo 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
Trang 13Cá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 5 0
Trang 14Chứ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 5 0
Trang 15Chứ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
Trang 16Chứ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
Trang 17Trong đó 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
Trang 18Ví 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)
Trang 19CẢM ƠN QUÝ THẦY CÔ
VÀ CÁC BẠN ĐÃ CHÚ Ý
LẮNG NGHE!
THE END