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

Deadlock Operating System Concepts

41 549 1
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

Tiêu đề Deadlock Operating System Concepts
Chuyên ngành Hệ Điều Hành
Thể loại Học thuật
Định dạng
Số trang 41
Dung lượng 2,09 MB

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

Nội dung

I.KHÁI NIỆM: Deadlock bắt nguồn từ sự xung đột về tài nguyên của 2 hoặc nhiều tiến trình đang hoạt động đồng thời trên hệ thống... •Tuy nhiên, với những tài nguyên thuộc loại không ch

Trang 1

Operating System Concepts

Trang 2

NỘI DUNG CHÍNH:

I.Khái niệm

II Các điều kiện hình thành Deadlock III Xử lý Deadlock

III.1 Ngăn chặn và tránh Deadlock

III.2 Phát hiện và phục hồi Deadlock

III.3 Bỏ qua Deadlock

Trang 3

Hình ảnh tắc nghẽn trong đời sống thường ngày

Trang 4

I.KHÁI NIỆM:

Deadlock bắt nguồn từ sự xung đột về tài nguyên của

2 hoặc nhiều tiến trình đang hoạt động đồng thời trên

hệ thống

Trang 6

Ví dụ 2:

Giả sử không gian bộ nhớ còn trống là 300Kb, và trong hệ thống có hai tiến trình P1 và P2 hoạt động đồng thời P1 và P2 yêu cầu được sử dụng bộ nhớ như sau:

Trang 7

• Số tài nguyên được yêu cầu không được vượt quá

tổng số tài nguyên sẵn có trong hệ thống Nếu yêu cầu không được đáp ứng tức thì thì tiến trình đó sẽ đi vào trạng thái chờ

Trang 8

II ĐIỀU KIỆN HÌNH THÀNH DEADLOCK:

1 Độc quyền sử dụng: Tồn tại ít nhất 1 tài nguyên không thể chia sẻ và được giữ bởi duy nhất 1 tiến trình.

3 Không đòi lại tài nguyên từ tiến trình đang giữ nó: Không

một tiến trình nào có thể tự giải phóng tài nguyên mà nó đang chiếm giữ

4 Tồn tại chu trình trong đồ thị cấp phát tài nguyên: Một tập

các tiến trình đang ở trong trạng thái chờ {P0, P1, , Pn} mà khi

đó P0 đang chờ 1 tài nguyên được giữ bởi P1, P1 đang chờ tài

nguyên được giữ bởi P2, , Pn đang chờ tài nguyên được giữ

bởi P0

Trang 9

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

Đồ thị có hướng G(V,E) gồm:

V = {P1,P2,P3} U {R1,R2,R3,R4}

E = { (P1,R1), (R1,P2), (P2,R3), (R3,P3), (R2,P1), (R2,P2) }

Trang 10

Tồn tại 2 chu trình:

Chu trình 1: P1R1P2R3P3R2P1Chu trình 2: P2R3P3R2P2

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

Trang 11

Tồn tại chu trình nhưng không xảy ra Deadlock

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

Trang 12

III XỬ LÝ DEADLOCK

1. Sử dụng một giao thức để ngăn chặn hoặc tránh

deadlocks, bảo đảm rằng hệ thống sẽ không bao giờ

đi vào trạng thái deadlock.

2. Cho phép hệ thống đi vào trạng thái deadlock, phát

hiện nó, và phục hồi

3. Bỏ qua vấn đề này và giả thiết rằng deadlock không

bao giờ xảy ra trong hệ thống Giải pháp này được dùng trong nhiều hệ điều hành kể cả UNIX.

Trang 13

III.1.1.NGĂN CHẶN DEADLOCK

Đảm bảo rằng ít nhất một trong bốn điều kiện dẫn

đến deadlock không cùng tồn tại:

1 Độc quyền sử dụng:

•Điều kiện này gần như không tránh khỏi

•Tuy nhiên, với những tài nguyên thuộc loại không chia sẻ được thì hệ điều hành có thể sử dụng kỹ thuật SPOOL để tạo ra nhiều tài nguyên ảo cung cấp cho các tiến trình đồng thời

Trang 14

Giả sử không gian bộ nhớ còn trống là 300Kb, và trong hệ thống có hai tiến trình P1 và P2 hoạt động đồng thời P1 và P2 yêu cầu

được sử dụng bộ nhớ như sau:

Trang 15

2 Giữ và chờ cấp thêm tài nguyên:

Phương pháp 1: Yêu cầu tất cả tài nguyên trước khi thực thi công việc.

Phương pháp 2: Yêu cầu cấp phát tài nguyên trước khi thực hiện, và giải phóng nó trước khi yêu cầu tài nguyên mới.

III.1.1.NGĂN CHẶN DEADLOCK

Trang 16

Nhược điểm:

1 Lãng phí tài nguyên, thời gian.

2 Một tiến trình cần sử dụng nhiều tài nguyên thường được sử dụng có

thể phải chờ vô hạn định, vì một trong những tài nguyên mà nó cần lại

có thể được giao cho một số tiến trình khác

Trang 17

3 Không đòi lại được tài nguyên từ tiến trình đang giữ nó

- R1 sẽ bị thu hồi, cấp phát cho P2

- P1 sẽ hoạt động trở lại, sau khi được cung cấp đầy đủ R1,R2

III.1.1.NGĂN CHẶN DEADLOCK

Trang 18

4 Tồn tại chu trình trong đồ thị cấp phát tài nguyên:

III.1.1.NGĂN CHẶN DEADLOCK

Điều kiện này có thể ngăn chặn bằng cách phân lớp tài nguyên của hệ thống Theo đó, nếu một tiến trình được cấp phát tài nguyên ở lớp L, thì sau đó nó chỉ có thể yêu cầu các tài nguyên ở lớp thấp hơn lớp L

Trang 20

Ví dụ:

Xét một hệ thống với 12 ổ băng từ và 3 quá trình: P 0 , P 1 ,

P 2 Quá trình P 0 yêu cầu 10 ổ băng từ, quá trình P 1 có thể cần 4 và quá trình P 2 có thể cần tới 9 ổ băng từ Giả sử rằng tại thời điểm t 0 , quá trình P 0 giữ 5 ổ băng từ, quá trình P 1 giữ 2 và quá trình P 2 giữ 2 ổ băng từ (Do đó, có

Trang 21

Thứ tự <P 1 , P 0 , P 2 > thoả điều kiện an toàn.

- P 1 có thể được cấp phát tức thì tất cả các ổ đĩa từ và sau đó trả lại chúng (sau đó hệ thống có 5 ổ băng từ sẳn dùng).

- P 0 có thể nhận tất cả ổ băng từ và trả lại chúng (sau đó hệ thống

Trang 22

2 Giải thuật cấp phát tài nguyên:

Trang 23

Các bước thực hiện:

+ Xác định thứ tự <P 0 , P 1 , …, P n > thỏa tiêu chuẩn an toàn.

3 Giải thuật Banker:

+ Sử dụng giải thuật yêu cầu tài nguyên để quyết định tài

nguyên (loại TN, số lượng) Pi được cấp phát

+ Sử dụng giải thuật an toàn để xác định trạng thái này có

an toàn không Và đi đến quyết định cấp phát tài nguyên cho tiến trình đang xét

Trang 24

Các CTDL được sử dụng trong thuật toán Banker:

Available: một vector có chiều dài m; Available[j]= k, có

k thể hiện của loại tài nguyên R j sẳn dùng.

Max: một ma trận n x m; Max[ i , j ] = k, P i có thể yêu cầu nhiều nhất k thể hiện của loại tài nguyên R j

Allocation: một ma trận n x m; Allocation[ i, j ] = k, P i

hiện được cấp k thể hiện của loại tài nguyên R j

Need: một ma trận n x m; Need[ i, j ] = k, P i có thể cần thêm k thể hiện của R j

Need[ i, j ] = Max[ i,j ] – Allocation [ i, j ].

Trang 25

1) Work, Finish: các vector có chiều dài m và n tương ứng Khởi tạo Work:=Available và Finish[i]:=false cho i = 1, 2, …,n.

Trang 26

Request i : vector yêu cầu cho P i Nếu Request i [j] = k, P i

muốn k thể hiện của Rj

1) Nếu Request i ≤ Need i , di chuyển tới bước 2 Ngược lại, phát sinh một điều kiện lỗi vì quá trình vượt quá yêu cầu tối đa của nó.

2) Nếu Request i ≤ Available, di chuyển tới bước 3 Ngược lại, P i phải chờ vì tài nguyên không sẳn có.

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

Trang 27

3) Giả sử hệ thống cấp phát các tài nguyên được yêu cầu tới quá trình P i bằng cách thay đổi trạng thái sau: Available := Available – Request i ;

Allocation i := Allocation i + Request i ;

Need i := Need i – Request i ;

Nếu kết quả trạng thái cấp phát tài nguyên là an toàn, thì giao dịch được hoàn thành và quá trình P i được cấp phát tài nguyên của nó Tuy nhiên, nếu trạng thái mới là không an toàn, thì P i phải chờ Request i và

trạng thái cấp phát tài nguyên cũ được phục hồi.

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

Trang 28

Xét một hệ thống với 5 quá trình từ P 0 tới P 4 , và 3 loại tài nguyên A, B, C Tài nguyên A có 10 thể hiện, tài nguyên B có 5 thể hiện và tài nguyên C có 7 thể hiện Giả sử rằng tại thời điểm T 0 trạng thái hiện tại của hệ thống như sau:

A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2

P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3

3.3 Thí dụ minh họa

Trang 29

Need = Max - Allocation

P2 3 0 2 9 0 2

P3 2 1 1 2 2 2

P4 0 0 2 4 3 3

Trang 30

Chúng ta khẳng định rằng hệ thống hiện ở trong trạng thái an toàn

Thứ tự <P1, P3, P4, P2, P0> thỏa tiêu chuẩn an toàn

P1 3 0 2 0 2 0

P2 3 0 2 6 0 0

P3 2 1 1 0 1 1

P4 0 0 2 4 3 1

- Thực thi giải thuật an toàn để xác định trạng thái mới có an toàn hay không và tìm

thứ tự <P1, P3, P4,P0, P2> thỏa yêu cầu an toàn Chúng ta có thể cấp phát tài nguyên

theo yêu cầu của tiến trình P1.

Trang 31

III.2.1.PHÁT HIỆN DEADLOCK

Nếu một hệ điều hành không sử dùng giải thuật ngăn chặn hay phòng chống deadlock thì hiện tượng này có thể xảy ra.

Trong môi trường này thì hệ điều hành phải chuẩn bị:

Giải thuật kiểm tra tình trạng của hệ thống để xác định có deadlock hay không.

Một giải thuật để phục hồi deadlock.

Trang 32

III.2.1.PHÁT HIỆN DEADLOCK

1 Loại tài nguyên có 1 thể hiện:

Sử dụng đồ thị chờ

Trang 33

III.2.1.PHÁT HIỆN DEADLOCK

1 Loại tài nguyên có nhiều thể hiện:

Sử dụng thuật toán tương tự như Banker

1 Gọi Word và Finish là các vector có chiều dài m và n tương

Trang 34

III.2.1.PHÁT HIỆN DEADLOCK

1 Loại tài nguyên có nhiều thể hiện:

Sử dụng thuật toán tương tự như Banker

Finish[i] = true

Quay trở lại bước 2

4.If Finish[i] == false, cho một vài i, 1 ≤ i ≤ n, thì hệ thống đang

ở trong trạng thái deadlock.

thống có ở trong trạng thái deadlock hay ko ?

Trang 35

III.2.1.PHÁT HIỆN DEADLOCK

1 Loại tài nguyên có nhiều thể hiện:

Ví dụ:

A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2

P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2

-> Trạng thái này là an toàn

Trang 36

III.2.1.PHÁT HIỆN DEADLOCK

1 Loại tài nguyên có nhiều thể hiện:

Request

A B C P0 0 0 0

Trạng thái mới này không an toàn

Trang 37

III.2.2.PHỤC HỒI DEADLOCK

Khi deadlock xảy ra có 2 cách để giải quyết:

- Thông báo cho người điều hành biết,sau đó khắc phục bằng tay

Trang 38

III.2.2.PHỤC HỒI DEADLOCK

Hủy bỏ một tiến trình ở thời điểm hiện tại cho đến

khi chu trình deadlock bị xóa ( hủy bỏ một phần )

Trang 39

III.2.2.PHỤC HỒI DEADLOCK

Các yếu tố xác định tiến trình nào bị hủy:

1 Mức độ ưu tiên của tiến trình

2 Tiến trình đã thực hiện được bao lâu và còn bao lâu nữa thì hoàn thành?

3 Tiến trình đang sử dụng bao nhiêu loại tài nguyên?

4 Tiến trình cần bao nhiêu tài nguyên nữa để hoàn

thành?

5 Bao nhiêu tiến trình sẽ cần được kết thúc

6.Tiến trình độc lập hay liên quan đến các tiến trình khác.

Trang 40

III.2.2.PHỤC HỒI DEADLOCK

2 Đòi lại tài nguyên:

Bước 1: Đòi lại một phần tài nguyên từ các tiến trình

Bước 2: Đưa các tài nguyên này đến các tiến trình khác cho đến khi chu

trình deadlocks bị phá bỏ.

Ba vấn đề cần được xác định khi dùng phương pháp này:

1 Chọn nạn nhân: Những tài nguyên và tiến trình nào bị đòi lại ? Việc

chọn nạn nhân này chủ yếu dựa trên yếu tố chi phí.

2 Quay trở lại: Chúng ta phải quay tiến trình tới một số mức an toàn và

khởi động lại nó từ mức đó.

3 Sự đói tài nguyên: Không cho một tiến trình bị đòi tài nguyên nhiều

lần.

Ngày đăng: 13/05/2014, 00:27

HÌNH ẢNH LIÊN QUAN

Hình ảnh tắc nghẽn trong đời sống thường ngày - Deadlock Operating System Concepts
nh ảnh tắc nghẽn trong đời sống thường ngày (Trang 3)
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: - Deadlock Operating System Concepts
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: (Trang 9)
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: - Deadlock Operating System Concepts
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: (Trang 10)
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: - Deadlock Operating System Concepts
ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: (Trang 11)
Đồ thị cấp phát tài nguyên để - Deadlock Operating System Concepts
th ị cấp phát tài nguyên để (Trang 22)

TỪ KHÓA LIÊN QUAN

w