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

Chapter 5 Deadlock

50 1,4K 4

Đ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 50
Dung lượng 391,5 KB

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ữ.. GIẢI QUYẾT DEADLOCK  Ngăn ngừa deadlock dead

Trang 1

Chapter 5: DEADLOCK

Trang 2

Đ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

Trang 3

15KB buffer

spooler

Tắc nghẽn trong giao thông Tắc nghẽn trong quản lý in ấn

Ví dụ

Trang 4

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.

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

Trang 5

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.

ĐỊNH NGHĨA

Trang 6

Critical Section;

Dạng deadlock:

Trang 7

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 ?

Trang 8

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)

Trang 9

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN

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 12

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

Trang 13

RAG và deadlock (tt)

deadlock

deadlock

Trang 14

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN

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

tài nguyên.

Tiến trình Tài nguyên

P1 yêu cầu n tài nguyên loại R1

Trang 15

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 16

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)

Trang 17

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

Trang 18

NGĂN NGỪA DEADLOCK

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ự đó

Trang 20

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ÁNH DEADLOCK

Trang 21

Trạng thái safe và unsafe

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

sequence).

Trang 22

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

(available)

giữ.

Một trạng thái của hệ thống được gọi là không 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.

Trang 23

Chuỗi an toàn (tt)

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

Trang 24

Chuỗi an toàn (tt)

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

Trang 25

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.

Trang 26

dẫn đến deadlock.

không đi đến trạng thái unsafe

safe unsafe

deadlock

Trang 27

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 28

TRÁNH DEADLOCK

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

Trang 29

TRÁNH DEADLOCK

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

Trang 30

VÍ DỤ

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

Trang 31

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

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

Trang 32

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

Ví dụ Có 5 process P

Allocation Max Available Need

Trang 33

GT kiểm tra trạng thái an toàn – Vd (tt)

Trang 34

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

 Kiểm tra điều kiện Request 1 ≤ 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à <P 1 , P 3 , P 4 , P 0 , P 2 >), vậy có thể cấp phát tài nguyên cho P 1

Allocation Need Available

Trang 35

GT cấp phát tài nguyên – Ví dụ (tt)

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?

Trang 36

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.

Tiến trình Tài nguyên

P1 yêu cầu n tài nguyên loại R1

Trang 37

PHÁT HIỆN DEADLOCK

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

Trang 38

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

P2R1

P1 R2

P3 R3

P4

P2R1

P1 R2

P3 R3

P4

P2R1

P1 R2

P3 R3

P4

P2R1

P1 R2

P3 R3

P4

Trang 40

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 41

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)

Trang 47

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

<P2,P1,P3,P4>

Trang 48

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

Need Đã mượn Hiện còn

Trang 49

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 50

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

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

Xem thêm

HÌNH ẢNH LIÊN QUAN

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊNĐỒ THỊ CẤP PHÁT TÀI NGUYÊN - Chapter 5 Deadlock
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊNĐỒ THỊ CẤP PHÁT TÀI NGUYÊN (Trang 9)
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊNĐỒ THỊ CẤP PHÁT TÀI NGUYÊN ( ( Resource Allocation Graph) Resource Allocation Graph) - Chapter 5 Deadlock
esource Allocation Graph) Resource Allocation Graph) (Trang 14)

TỪ KHÓA LIÊN QUAN

w