1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 5 Deadlock

11 345 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 1,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Hay : Mỗi tiến trình trong tập hợp đều chờ được cấp phát tài nguyên hiện đang bị một quá trình khác cũng ở trạng thái blocked chiếm giữ.. Tồn tại một chu trình trong đồ thị cấp phát tà

Trang 1

C5: DEADLOCK

Nội dung:

Định nghĩa deadlock

Điều kiện để có deadlock

Các phương pháp giải quyết

• Ngăn ngừa deadlock

• Tránh deadlock

• Phát hiện deadlock

• Phục hồi deadlock

Bài tập

Ví dụ

BÀI TOÁN VỀ 5 TRIẾT GIA ĂN TỐI

Năm nhà triết học cùng ngồi ăn tối với món spaghetti nổi tiếng Mỗi nhà triết học dùng 2 cái nĩa để có thể ăn spaghetti Nhưng trên bàn chỉ có tổng cộng 5 cái nĩa để xen kẽ với 5 cái đĩa Nếu 5 nhà triết học đều cầm 5 cái nĩa bên trái cùng lúc, thì sẽ không có ai có cái nĩa bên phải để có thể bắt đầu thưởng thức spaghetti

ĐỊNH NGHĨA

• Mỗi tiến trình trong tập hợp đều chờ đợi một sự kiện mà chỉ có một tiến trình khác trong tập hợp mới có thể phát sinh

• Hay : Mỗi tiến trình trong tập hợp đều chờ được cấp phát tài nguyên hiện đang bị một quá trình khác cũng ở trạng thái blocked chiếm giữ

• Một hệ thống bị deadlock : có tiến trình bị deadlock

Trang 2

VÍ DỤ & BẢN CHẤT DEADLOCK

Process1

P(S1);

P(S2);

Critical

Section;

V(S1);

V(S2);

Process2 P(S2);

P(S1);

Critical Section;

V(S2);

V(S1);

DEADLOCK VÀ TRÌ HOÃN VÔ HẠN ĐỊNH

Deadlock

• Đợi sự kiện không bao giờ xảy ra

• Nguyên nhân ?

Trì hoãn vô hạn định (Indefinite postponement)

• Đợi sự kiện có thể xảy ra nhưng không xác định thời điểm

• Biểu hiện như deadlock

• Nguyên nhân ?

Deadlock có khác vòng lặp vô hạn ?

ĐIỀU KIỆN XẢY RA DEADLOCK

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 tài nguyên từ tiến trình đang giữ chúng (no-preemption)

4 Tồn tại một chu trình trong đồ thị cấp phát tài nguyên (circular-wait)

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN(Resource Allocation Graph)

Process:

Loại tài nguyên với 4 thực thể:

Pi yêu cầu một thực thể của Rj :

Pi đang giữ một thực thể của Rj :

Trang 3

Ví dụ về RAG

RAG và deadlock

• Ví dụ một RAG chứa chu trình nhưng không xảy ra deadlock: P4 có thể trả lại instance của R2

RAG không chứa chu trình (cycle) ⇒ không có deadlock

RAG chứa một (hay nhiều) chu trình :

• Nếu mỗi loại tài nguyên chỉ có một thực thể ⇒ deadlock

• Nếu mỗi loại tài nguyên có nhiều thực thể ⇒ có thể xảy ra deadlock

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN (Resource Allocation Graph)

Có thể sử dụng một đồ thị để mô hình hoá việc cấp phát tài nguyên

CÁC PHƯƠNG PHÁP XỬ LÝ DEADLOK

Có ba hướng tiếp cận để xử lý tắc nghẽn

• Sử dụng phương thức (protocol) để bảo đảm rằng hệ thống không bao giờ xảy ra tắc nghẽn

• Cho phép xảy ra tắc nghẽn và tìm cách sửa chữa tắc nghẽn

• Hoàn toàn bỏ qua việc xử lý tắc nghẽn, xem như hệ thống không bao giờ xảy ra tắc nghẽn

Trang 4

GIẢI QUYẾT DEADLOCK

Ngăn ngừa deadlock (deadlock prevention)

• Qui định cấp, dùng tài nguyên nghiêm ngặt

• Không cho các điều kiện deadlock xảy ra

Tránh deadlock (deadlock avoidance)

• Vẫn cho các điều kiện deadlock tồn tại

• Cấp tài nguyên hợp lý, an toàn

Phát hiện deadlock (deadlock detection)

Phục hồi deadlock (deadlock recovery)

NGĂN NGỪA DEADLOCK

Cấm điều kiện tài nguyên không thể chia sẻ (multual-exclusion )

Cấm điều kiện Sự chiếm giữ và yêu cầu thêm tài nguyên (hold & wait)

• Tiến trình yêu cầu tất cả tài nguyên một lần

• Chỉ được xử lý khi đã đủ tất cả tài nguyên cần thiết

Cấm điều kiện không thu hồi tài nguyên (no-preemption)

• Nếu yêu cầu tài nguyên không được, tiến trình phải giải phóng tất cả tài nguyên đang giữ

và yêu cầu lại (?) Loại bỏ một chu kỳ (circular-wait)

• Sắp xếp tài nguyên theo trật tự và chung cấp cho tiến trình theo đúng trật tự đó

NGĂN NGỪA DEADLOCK (Havender)

Ví du

TRÁNH DEADLOCK

Một số khái niệm cơ sở

• Trạng thái an toàn

• Một chuỗi cấp phát an toàn

• Chiến lược cấp phát

• Giải thuật xác định trạng thái an toàn

• Giải thuật yêu cầu tài nguyên

• Trạng thái safe và unsafe

Một trạng thái của hệ thống được gọi là an toàn (safe) nếu tồn tại một chuỗi an toàn (safe

sequence)

Trang 5

Chuỗi an toàn

Một chuỗi quá trình <P1, P2,…, Pn > là một chuỗi an toàn nếu

Với mọi i = 1,…,n, yêu cầu tối đa về tài nguyên của Pi có thể được thỏa bởi

• tài nguyên mà hệ thống đang có sẵn sàng (available)

cùng với tài nguyên mà tất cả Pj , j < i, đang giữ.

Một trạng thái của hệ thống được gọi là không an toàn (unsafe) nếu không tồn tại một chuỗi an

toàn

Ví dụ: Hệ thống có 12 tape drives và 3 quá trình P0, P1, P2

 Tại thời điểm t0

• Còn 3 tape drive sẵn sàng

• Chuỗi <P1, P0, P2> là chuỗi an toàn ⇒ hệ thống là an toàn

 Giả sử tại thời điểm t1, P2 yêu cầu và được cấp phát 1 tape drive

• còn 2 tape drive sẵn sàng

Hệ thống trở nên không an toàn

 Khi một process yêu cầu một tài nguyên đang sẵn sàng, hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp phát ngay

Trạng thái safe/unsafe và deadlock

• Nếu hệ thống đang ở trạng thái safe ⇒ không deadlock

• Nếu hệ thống đang ở trạng thái unsafe ⇒ có thể dẫn đến deadlock

• Tránh deadlock bằng cách bảo đảm hệ thống không đi đến trạng thái unsafe

TRÁNH DEADLOCK

Giải thuật banker

• Áp dụng cho hệ thống cấp phát tài nguyên trong đó mỗi loại tài nguyên có thể có nhiều instance

• Bắt chước nghiệp vụ ngân hàng (banking)

Trang 6

Giải thuật nhà băng (Banker’s Algorithm)

• Hệ điều hành = nhà Băng

• Tiến trình = khách hàng

• Tài nguyên = vốn vay

Ràng buộc

• Yêu cầu vay cực đại ≤ vốn nhà băng

• Khách không trả vốn nếu vay chưa đủ yêu cầu cực đại

• Khi vay đủ, khách phải trả đủ vốn sau thời gian hữu hạn

Trạng thái nhà băng

An toàn (Safe): thỏa yêu cầu mọi khách, ngân hàng thu vốn đủ

Không an toàn ( Unsafe) : ngược lại  có thể deadlock

Hệ thống phải cấp phát tài nguyên sao cho không rơi vào trạng thái Unsafe

VÍ DỤ

• Trạng thái sau là an toàn Tại sao ?

Đang mượn Cần tối đa Cần thêm

Vốn 12 , còn lại 2

• Trạng thái sau là không an toàn Tại sao ?

Đang mượn Cần tối đa Cần thêm

Vốân 12 , còn lại 1

Giải thuật kiểm tra trạng thái an toàn – Ví dụ

Có 5 process P0 ,…, P4

Có 3 loại tài nguyên: A (có 10 instance), B (5 instance) và C (7 instance).

Sơ đồ cấp phát trong hệ thống tại thời điểm T0

Trang 7

Chuỗi an toàn <P1, P3, P4, P2, P0>

 Yêu cầu (1, 0, 2) của P1 có thỏa được không?

 Kiểm tra điều kiện Request1 ≤ Available:

• (1, 0, 2)  (3, 3, 2) là đúng

 Giả định thỏa yêu cầu, kiểm tra trạng thái mới có phải là safe hay không

 Trạng thái mới là safe (chuỗi an toàn là <P1, P3, P4, P0, P2>), vậy có thể cấp phát tài nguyên cho P1

 P4 yêu cầu (3, 3, 0) hoặc P0 yêu cầu (0, 2, 0) thì có thỏa mãn được hay không?

PHÁT HIỆN DEADLOCK

• Ghi nhận, theo dõi yêu cầu, sự cấp phát tài nguyên cho các quá trình

• Dùng đồ thị cấp phát tài nguyên

Trang 8

• Giản lược đồ thị cấp phát

1 Tài nguyên rảnh  cấp cho quá trình yêu cầu

2 Quá trình đủ tài nguyên  xoá mọi cạnh vào, xoá quá qtrình

3 Lặp lại 1 với các quá trình khác đến khi tối giản

• Khi giải thuật dừng

Đồ thị cấp phát không còn cạnh: không có deadlock Đồ thị cấp phát có chu trình (cycle): deadlock

• Nhận xét

Phí tổn lớn

VÍ DỤ 1 : GIẢN ƯỚC

BÀI TẬP : GIẢN ƯỚC

PHỤC HỒÀI DEADLOCK

• Đình chỉ hoạt động của các quá trình liên quan

• Thu hồi tài nguyên

• Khó có thể giải quyết trọn vẹn

Trang 9

BÀI TẬP

Tìm trạng thái của hệ thống sau

QUÁ

TRÌNH

Nhu cầu tối đa (CẦN CÓ ĐỦ SỐ TÀI NGUYÊN ĐỂ XỬ Lý)

Đã mượn (CẤP PHÁT TÀI

NGUYÊN)

Hiện còn lại (TÀI NGUYÊN CÒN TỰ

DO)

QUÁ TRÌNH Need Đã mượn(CẤP PHÁT TÀI NGUYÊN) Hiện còn lại(TÀI NGUYÊN CÒN TỰ DO)

QUÁ TRÌNH Need Đã mượn

(CẤP PHÁT TÀI NGUYÊN)

Hiện còn lại (TÀI NGUYÊN CÒN TỰ DO)

QUÁ TRÌNH Need Đã mượn(CẤP PHÁT TÀI NGUYÊN) Hiện còn lại(TÀI NGUYÊN CÒN TỰ DO)

QUÁ TRÌNH Need Đã mượn(CẤP PHÁT TÀI NGUYÊN) Hiện còn lại(TÀI NGUYÊN CÒN TỰ DO)

Trang 10

QUÁ TRÌNH

(CẤP PHÁT TÀI NGUYÊN)

Hiện còn lại (TÀI NGUYÊN CÒN TỰ DO)

Chuỗi cấp phát an toàn :

<P2,P1,P3,P4>

Tìm trạng thái của hệ thống sau

Nếu quá trình P2 thay bằng yêu cầu (0,4,2) thì hệ thống cấp phát tức thời cho nó không ?

Chuỗi cấp phát an toàn <P1,P3,P2,P4>

QUÁ

TRÌNH

(CẤP PHÁT TÀI NGUYÊN)

Hiện còn lại (TÀI NGUYÊN CÒN TỰ DO)

Trang 11

P2 0 0 0 0 0 0

Tìm trạng thái của hệ thống sau

Ngày đăng: 12/05/2014, 23:16

HÌNH ẢNH LIÊN QUAN

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN(Resource Allocation Graph) - Chương 5 Deadlock
esource Allocation Graph) (Trang 2)
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN (Resource Allocation Graph) - Chương 5 Deadlock
esource Allocation Graph) (Trang 3)
Đồ thị cấp phát không còn cạnh: không có deadlock Đồ thị cấp phát có chu trình (cycle): deadlock - Chương 5 Deadlock
th ị cấp phát không còn cạnh: không có deadlock Đồ thị cấp phát có chu trình (cycle): deadlock (Trang 8)

TỪ KHÓA LIÊN QUAN

w